summaryrefslogtreecommitdiff
path: root/UefiCpuPkg/Library/BaseArchSupportLib/X86/X86LibSupport.c
blob: 226a1bb1c590696df617b5ed10921787e551a23a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/** @file
  UefiCpu X86 architectures support library for both Ia32 and X64.

  Copyright 2024 Google LLC

  SPDX-License-Identifier: BSD-2-Clause-Patent
**/

#include <Base.h>
#include <Library/BaseLib.h>

UINT8
ArchGetPhysicalAddressBits (
  VOID
  )
{
  UINT32  RegEax;

  AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
  if (RegEax >= 0x80000008) {
    AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL);
    return (UINT8)RegEax;
  }

  return 36;
}