summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib
diff options
context:
space:
mode:
authorGuo Mang <mang.guo@intel.com>2017-08-02 09:54:47 +0800
committerGuo Mang <mang.guo@intel.com>2017-09-05 19:45:08 +0800
commit6c128c65b5ec0e5b8b5a0ccb165f3afd29e485f8 (patch)
tree444372d92a0ae8991fe4d15eb3937df43690dfda /EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib
parentb207c6434d7a5a4502975d322312e07017e8a8cb (diff)
downloadedk2-platforms-6c128c65b5ec0e5b8b5a0ccb165f3afd29e485f8.tar.xz
Remove core packages since we can get them from edk2 repository
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang <mang.guo@intel.com>
Diffstat (limited to 'EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib')
-rw-r--r--EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib.inf42
-rw-r--r--EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib_Edk2.inf47
-rw-r--r--EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/EfiCpuVersion.c74
-rw-r--r--EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.S225
-rw-r--r--EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.asm202
-rw-r--r--EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.c179
-rw-r--r--EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/X64/Cpu.S209
-rw-r--r--EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/X64/Cpu.asm215
8 files changed, 0 insertions, 1193 deletions
diff --git a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib.inf b/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib.inf
deleted file mode 100644
index cdbd4a7474..0000000000
--- a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib.inf
+++ /dev/null
@@ -1,42 +0,0 @@
-#/*++
-#
-# Copyright (c) 2004 - 2005, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-# CpuIA32Lib.inf
-#
-# Abstract:
-#
-# Component description file for the Cpu IA32 library.
-#
-#--*/
-
-[defines]
-BASE_NAME = CpuIA32Lib
-COMPONENT_TYPE = LIBRARY
-
-[sources.common]
- EfiCpuVersion.c
-
-[sources.ia32]
- IA32/CpuIA32.c
-
-[sources.x64]
- X64/Cpu.asm
-[includes.common]
- $(EDK_SOURCE)/Foundation/Efi
- $(EDK_SOURCE)/Foundation/Efi/Include
- $(EDK_SOURCE)/Foundation/Framework/Include
- .
- $(EDK_SOURCE)/Foundation/Cpu/Pentium/Include
- $(EDK_SOURCE)/Foundation/Include
-
-[nmake.common]
diff --git a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib_Edk2.inf b/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib_Edk2.inf
deleted file mode 100644
index 3c4cb4813a..0000000000
--- a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib_Edk2.inf
+++ /dev/null
@@ -1,47 +0,0 @@
-#/*++
-#
-# Copyright (c) 2004 - 2005, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-# CpuIA32Lib.inf
-#
-# Abstract:
-#
-# Component description file for the Cpu IA32 library.
-#
-#--*/
-
-[defines]
-BASE_NAME = CpuIA32Lib
-COMPONENT_TYPE = LIBRARY
-
-[sources.common]
- EfiCpuVersion.c
-
-[sources.ia32]
- IA32/CpuIA32.c | MSFT
- IA32/CpuIA32.asm | INTEL
- IA32/CpuIA32.S | GCC
-
-[sources.x64]
- X64/Cpu.asm | MSFT
- X64/Cpu.asm | INTEL
- X64/Cpu.S | GCC
-
-[includes.common]
- $(EDK_SOURCE)/Foundation/Efi
- $(EDK_SOURCE)/Foundation/Efi/Include
- $(EDK_SOURCE)/Foundation/Framework/Include
- .
- $(EDK_SOURCE)/Foundation/Cpu/Pentium/Include
- $(EDK_SOURCE)/Foundation/Include
-
-[nmake.common]
diff --git a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/EfiCpuVersion.c b/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/EfiCpuVersion.c
deleted file mode 100644
index f1c3c38bd4..0000000000
--- a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/EfiCpuVersion.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*++
-
-Copyright (c) 2004 - 2006, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
- EfiCpuVersion.c
-
-Abstract:
-
- Provide cpu version extract considering extended family & model ID.
---*/
-
-#include "CpuIA32.h"
-
-VOID
-EFIAPI
-EfiCpuVersion (
- IN OUT UINT16 *FamilyId, OPTIONAL
- IN OUT UINT8 *Model, OPTIONAL
- IN OUT UINT8 *SteppingId, OPTIONAL
- IN OUT UINT8 *Processor OPTIONAL
- )
-/*++
-
-Routine Description:
- Extract CPU detail version infomation
-
-Arguments:
- FamilyId - FamilyId, including ExtendedFamilyId
- Model - Model, including ExtendedModel
- SteppingId - SteppingId
- Processor - Processor
-
---*/
-{
- EFI_CPUID_REGISTER Register;
- UINT8 TempFamilyId;
-
- EfiCpuid (EFI_CPUID_VERSION_INFO, &Register);
-
- if (SteppingId != NULL) {
- *SteppingId = (UINT8) (Register.RegEax & 0xF);
- }
-
- if (Processor != NULL) {
- *Processor = (UINT8) ((Register.RegEax >> 12) & 0x3);
- }
-
- if (Model != NULL || FamilyId != NULL) {
- TempFamilyId = (UINT8) ((Register.RegEax >> 8) & 0xF);
-
- if (Model != NULL) {
- *Model = (UINT8) ((Register.RegEax >> 4) & 0xF);
- if (TempFamilyId == 0x6 || TempFamilyId == 0xF) {
- *Model = (UINT8) (*Model | ((Register.RegEax >> 12) & 0xF0));
- }
- }
-
- if (FamilyId != NULL) {
- *FamilyId = TempFamilyId;
- if (TempFamilyId == 0xF) {
- *FamilyId = (UINT8 ) (*FamilyId + (UINT16) ((Register.RegEax >> 20) & 0xFF));
- }
- }
- }
-}
diff --git a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.S b/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.S
deleted file mode 100644
index acc2b2e9c9..0000000000
--- a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.S
+++ /dev/null
@@ -1,225 +0,0 @@
-#/*++
-#
-#Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
-#This program and the accompanying materials
-#are licensed and made available under the terms and conditions of the BSD License
-#which accompanies this distribution. The full text of the license may be found at
-#http://opensource.org/licenses/bsd-license.php
-#
-#THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#Module Name:
-#
-# CpuIA32.c
-#
-#Abstract:
-#
-#--*/
-
-##include "CpuIA32.h"
-#include "EfiBind.h"
-
-#---------------------------------------------------------------------------
- .586p:
- #.MODEL flat,C
- .code:
-
-#---------------------------------------------------------------------------
-
-.globl ASM_PFX(EfiHalt)
-.globl ASM_PFX(EfiWbinvd)
-.globl ASM_PFX(EfiInvd)
-.globl ASM_PFX(EfiCpuid)
-.globl ASM_PFX(EfiReadMsr)
-.globl ASM_PFX(EfiWriteMsr)
-.globl ASM_PFX(EfiReadTsc)
-.globl ASM_PFX(EfiDisableCache)
-.globl ASM_PFX(EfiEnableCache)
-.globl ASM_PFX(EfiGetEflags)
-.globl ASM_PFX(EfiDisableInterrupts)
-.globl ASM_PFX(EfiEnableInterrupts)
-.globl ASM_PFX(EfiCpuidExt)
-
-
-#VOID
-#EfiHalt (
-# VOID
-#)
-ASM_PFX(EfiHalt):
- hlt
- ret
-#EfiHalt ENDP
-
-#VOID
-#EfiWbinvd (
-# VOID
-#)
-ASM_PFX(EfiWbinvd):
- wbinvd
- ret
-#EfiWbinvd ENDP
-
-#VOID
-#EfiInvd (
-# VOID
-#)
-ASM_PFX(EfiInvd):
- invd
- ret
-#EfiInvd ENDP
-
-#VOID
-#EfiCpuid (IN UINT32 RegisterInEax,
-# OUT EFI_CPUID_REGISTER *Reg OPTIONAL)
-ASM_PFX(EfiCpuid):
- pushl %ebp
- movl %esp, %ebp
- pushl %ebx
- pushl %esi
- pushl %edi
- pushal
-
- movl 8(%ebp), %eax #RegisterInEax
- cpuid
- cmpl $0, 0xC(%ebp) # Reg
- je L1
- movl 0xC(%ebp), %edi # Reg
-
- movl %eax, (%edi) # Reg->RegEax
- movl %ebx, 4(%edi) # Reg->RegEbx
- movl %ecx, 8(%edi) # Reg->RegEcx
- movl %edx, 0xC(%edi) # Reg->RegEdx
-
-L1:
- popal
- popl %edi
- popl %esi
- popl %ebx
- popl %ebp
-
- ret
-#EfiCpuid ENDP
-
-
-#UINT64
-#EfiReadMsr (
-# IN UINT32 Index
-# );
-ASM_PFX(EfiReadMsr):
- movl 4(%esp), %ecx # Index
- rdmsr
- ret
-#EfiReadMsr ENDP
-
-#VOID
-#EfiWriteMsr (
-# IN UINT32 Index,
-# IN UINT64 Value
-# );
-ASM_PFX(EfiWriteMsr):
- movl 4(%esp), %ecx # Index
- movl 8(%esp), %eax # DWORD PTR Value[0]
- movl 0xC(%esp), %edx # DWORD PTR Value[4]
- wrmsr
- ret
-#EfiWriteMsr ENDP
-
-#UINT64
-#EfiReadTsc (
-# VOID
-# )
-ASM_PFX(EfiReadTsc):
- rdtsc
- ret
-#EfiReadTsc ENDP
-
-#VOID
-#EfiDisableCache (
-# VOID
-#)
-ASM_PFX(EfiDisableCache):
- movl %cr0, %eax
- bswapl %eax
- andb $0x60, %al
- cmpb $0x60, %al
- je L2
- movl %cr0, %eax
- orl $0x60000000, %eax
- movl %eax, %cr0
- wbinvd
-L2:
- ret
-#EfiDisableCache ENDP
-
-#VOID
-#EfiEnableCache (
-# VOID
-# )
-ASM_PFX(EfiEnableCache):
- wbinvd
- movl %cr0, %eax
- andl $0x9fffffff, %eax
- movl %eax, %cr0
- ret
-#EfiEnableCache ENDP
-
-#UINT32
-#EfiGetEflags (
-# VOID
-# )
-ASM_PFX(EfiGetEflags):
- pushfl
- popl %eax
- ret
-#EfiGetEflags ENDP
-
-#VOID
-#EfiDisableInterrupts (
-# VOID
-# )
-ASM_PFX(EfiDisableInterrupts):
- cli
- ret
-#EfiDisableInterrupts ENDP
-
-#VOID
-#EfiEnableInterrupts (
-# VOID
-# )
-ASM_PFX(EfiEnableInterrupts):
- sti
- ret
-#EfiEnableInterrupts ENDP
-
-#VOID
-#EfiCpuidExt (
-# IN UINT32 RegisterInEax,
-# IN UINT32 CacheLevel,
-# OUT EFI_CPUID_REGISTER *Regs
-# )
-ASM_PFX(EfiCpuidExt):
- push %ebx
- push %edi
- push %esi
- pushal
-
- movl 0x30(%esp), %eax # RegisterInEax
- movl 0x34(%esp), %ecx # CacheLevel
- cpuid
- movl 0x38(%esp), %edi # DWORD PTR Regs
-
- movl %eax, (%edi) # Reg->RegEax
- movl %ebx, 4(%edi) # Reg->RegEbx
- movl %ecx, 8(%edi) # Reg->RegEcx
- movl %edx, 0xC(%edi) # Reg->RegEdx
-
- popal
- pop %esi
- pop %edi
- pop %ebx
- ret
-#EfiCpuidExt ENDP
-
-
-
diff --git a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.asm b/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.asm
deleted file mode 100644
index 878be4d80a..0000000000
--- a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.asm
+++ /dev/null
@@ -1,202 +0,0 @@
-;/*++
-;
-;Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
-;This program and the accompanying materials
-;are licensed and made available under the terms and conditions of the BSD License
-;which accompanies this distribution. The full text of the license may be found at
-;http://opensource.org/licenses/bsd-license.php
-;
-;THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-;WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-;
-;Module Name:
-;
-; CpuIA32.c
-;
-;Abstract:
-;
-;--*/
-
-;#include "CpuIA32.h"
-
-;---------------------------------------------------------------------------
- .586p
- .model flat,C
- .code
-
-;---------------------------------------------------------------------------
-;VOID
-;EfiHalt (
-; VOID
-;)
-EfiHalt PROC C PUBLIC
- hlt
- ret
-EfiHalt ENDP
-
-;VOID
-;EfiWbinvd (
-; VOID
-;)
-EfiWbinvd PROC C PUBLIC
- wbinvd
- ret
-EfiWbinvd ENDP
-
-;VOID
-;EfiInvd (
-; VOID
-;)
-EfiInvd PROC C PUBLIC
- invd
- ret
-EfiInvd ENDP
-
-;VOID
-;EfiCpuid (IN UINT32 RegisterInEax,
-; OUT EFI_CPUID_REGISTER *Reg OPTIONAL)
-EfiCpuid PROC C PUBLIC
- push ebp
- mov ebp, esp
- push ebx
- push esi
- push edi
- pushad
-
- mov eax, dword ptr[ebp + 8] ;egisterInEax
- cpuid
- cmp dword ptr[ebp + 0Ch], 0 ; Reg
- je @F
- mov edi,dword ptr [ebp+0Ch] ; Reg
-
- mov dword ptr [edi],eax ; Reg->RegEax
- mov dword ptr [edi+4],ebx ; Reg->RegEbx
- mov dword ptr [edi+8],ecx ; Reg->RegEcx
- mov dword ptr [edi+0Ch],edx ; Reg->RegEdx
-
-@@:
- popad
- pop edi
- pop esi
- pop ebx
- pop ebp
-
- ret
-EfiCpuid ENDP
-
-
-;UINT64
-;EfiReadMsr (
-; IN UINT32 Index
-; );
-EfiReadMsr PROC C PUBLIC
- mov ecx, dword ptr [esp + 4]; Index
- rdmsr
- ret
-EfiReadMsr ENDP
-
-;VOID
-;EfiWriteMsr (
-; IN UINT32 Index,
-; IN UINT64 Value
-; );
-EfiWriteMsr PROC C PUBLIC
- mov ecx, dword ptr [esp+4]; Index
- mov eax, dword ptr [esp+8]; DWORD PTR Value[0]
- mov edx, dword ptr [esp+0Ch]; DWORD PTR Value[4]
- wrmsr
- ret
-EfiWriteMsr ENDP
-
-;UINT64
-;EfiReadTsc (
-; VOID
-; )
-EfiReadTsc PROC C PUBLIC
- rdtsc
- ret
-EfiReadTsc ENDP
-
-;VOID
-;EfiDisableCache (
-; VOID
-;)
-EfiDisableCache PROC C PUBLIC
- mov eax, cr0
- bswap eax
- and al, 60h
- cmp al, 60h
- je @F
- mov eax, cr0
- or eax, 060000000h
- mov cr0, eax
- wbinvd
-@@:
- ret
-EfiDisableCache ENDP
-
-;VOID
-;EfiEnableCache (
-; VOID
-; )
-EfiEnableCache PROC C PUBLIC
- wbinvd
- mov eax, cr0
- and eax, 09fffffffh
- mov cr0, eax
- ret
-EfiEnableCache ENDP
-
-;UINT32
-;EfiGetEflags (
-; VOID
-; )
-EfiGetEflags PROC C PUBLIC
- pushfd
- pop eax
- ret
-EfiGetEflags ENDP
-
-;VOID
-;EfiDisableInterrupts (
-; VOID
-; )
-EfiDisableInterrupts PROC C PUBLIC
- cli
- ret
-EfiDisableInterrupts ENDP
-
-;VOID
-;EfiEnableInterrupts (
-; VOID
-; )
-EfiEnableInterrupts PROC C PUBLIC
- sti
- ret
-EfiEnableInterrupts ENDP
-
-;VOID
-;EfiCpuidExt (
-; IN UINT32 RegisterInEax,
-; IN UINT32 CacheLevel,
-; OUT EFI_CPUID_REGISTER *Regs
-; )
-EfiCpuidExt PROC C PUBLIC USES ebx edi esi
- pushad
-
- mov eax, dword ptr [esp + 30h] ; RegisterInEax
- mov ecx, dword ptr [esp + 34h] ; CacheLevel
- cpuid
- mov edi, dword ptr [esp + 38h] ; DWORD PTR Regs
-
- mov dword ptr [edi], eax ; Reg->RegEax
- mov dword ptr [edi + 4], ebx ; Reg->RegEbx
- mov dword ptr [edi + 8], ecx ; Reg->RegEcx
- mov dword ptr [edi + 0Ch], edx ; Reg->RegEdx
-
- popad
- ret
-EfiCpuidExt ENDP
-
- END
-
diff --git a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.c b/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.c
deleted file mode 100644
index b4dc7e0b22..0000000000
--- a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/IA32/CpuIA32.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*++
-
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
- CpuIA32.c
-
-Abstract:
-
---*/
-
-#include "CpuIA32.h"
-
-VOID
-EfiHalt (VOID)
-{
- __asm {
- hlt
- }
-}
-
-VOID
-EfiWbinvd (VOID)
-{
- __asm {
- wbinvd
- }
-}
-
-VOID
-EfiInvd (VOID)
-{
- __asm {
- invd
- }
-}
-
-VOID
-EfiCpuid (IN UINT32 RegisterInEax,
- OUT EFI_CPUID_REGISTER *Reg OPTIONAL)
-{
- __asm {
- pushad
-
- mov eax, RegisterInEax
- cpuid
- cmp Reg, 0
- je _Exit
- mov edi, DWORD PTR Reg
-
- mov DWORD PTR [edi].RegEax, eax ; Reg->RegEax
- mov DWORD PTR [edi].RegEbx, ebx ; Reg->RegEbx
- mov DWORD PTR [edi].RegEcx, ecx ; Reg->RegEcx
- mov DWORD PTR [edi].RegEdx, edx ; Reg->RegEdx
-
-_Exit:
- popad
- }
-}
-
-UINT64
-EfiReadMsr (IN UINT32 Index)
-{
- __asm {
- mov ecx, Index
- rdmsr
- }
-}
-
-VOID
-EfiWriteMsr (
- IN UINT32 Index,
- IN UINT64 Value
- )
-{
- __asm {
- mov ecx, Index
- mov eax, DWORD PTR Value[0]
- mov edx, DWORD PTR Value[4]
- wrmsr
- }
-}
-
-UINT64
-EfiReadTsc (VOID)
-{
- __asm {
- rdtsc
- }
-}
-
-VOID
-EfiDisableCache (VOID)
-{
- __asm {
- mov eax, cr0
- bswap eax
- and al, 60h
- cmp al, 60h
- je Exit
- mov eax, cr0
- or eax, 060000000h
- mov cr0, eax
- wbinvd
-Exit:
- }
-}
-
-VOID
-EfiEnableCache (VOID)
-{
- __asm {
- wbinvd
- mov eax, cr0
- and eax, 09fffffffh
- mov cr0, eax
- }
-}
-
-UINT32
-EfiGetEflags (
- VOID
- )
-{
- __asm {
- pushfd
- pop eax
- }
-}
-
-VOID
-EfiDisableInterrupts (VOID)
-{
- __asm {
- cli
- }
-}
-
-VOID
-EfiEnableInterrupts (
- VOID
- )
-{
- __asm {
- sti
- }
-}
-
-VOID
-EfiCpuidExt (
- IN UINT32 RegisterInEax,
- IN UINT32 CacheLevel,
- OUT EFI_CPUID_REGISTER *Regs
- )
-{
- __asm {
- pushad
-
- mov eax, RegisterInEax
- mov ecx, CacheLevel
- cpuid
- mov edi, DWORD PTR Regs
-
- mov DWORD PTR [edi].RegEax, eax ; Reg->RegEax
- mov DWORD PTR [edi].RegEbx, ebx ; Reg->RegEbx
- mov DWORD PTR [edi].RegEcx, ecx ; Reg->RegEcx
- mov DWORD PTR [edi].RegEdx, edx ; Reg->RegEdx
-
- popad
- }
-}
diff --git a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/X64/Cpu.S b/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/X64/Cpu.S
deleted file mode 100644
index 065f614689..0000000000
--- a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/X64/Cpu.S
+++ /dev/null
@@ -1,209 +0,0 @@
-#------------------------------------------------------------------------------
-#*
-#* Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
-#* This program and the accompanying materials
-#* are licensed and made available under the terms and conditions of the BSD License
-#* which accompanies this distribution. The full text of the license may be found at
-#* http://opensource.org/licenses/bsd-license.php
-#*
-#* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#*
-#* Module Name:
-#*
-#* Cpu.asm
-#*
-#* Abstract:
-#*
-#------------------------------------------------------------------------------
-#include <EfiBind.h>
-
-.globl ASM_PFX(EfiHalt)
-.globl ASM_PFX(EfiWbinvd)
-.globl ASM_PFX(EfiInvd)
-.globl ASM_PFX(EfiCpuid)
-.globl ASM_PFX(EfiReadTsc)
-.globl ASM_PFX(EfiDisableCache)
-.globl ASM_PFX(EfiEnableCache)
-.globl ASM_PFX(EfiReadMsr)
-.globl ASM_PFX(EfiWriteMsr)
-.globl ASM_PFX(EfiGetEflags)
-.globl ASM_PFX(EfiDisableInterrupts)
-.globl ASM_PFX(EfiEnableInterrupts)
-.globl ASM_PFX(EfiCpuidExt)
-
-.text
-
-
-#------------------------------------------------------------------------------
-# VOID
-# EfiHalt (
-# VOID
-# )
-#------------------------------------------------------------------------------
-ASM_PFX(EfiHalt):
- hlt
- retq
-
-
-#------------------------------------------------------------------------------
-# VOID
-# EfiWbinvd (
-# VOID
-# )
-#------------------------------------------------------------------------------
-ASM_PFX(EfiWbinvd):
- wbinvd
- retq
-
-
-#------------------------------------------------------------------------------
-# VOID
-# EfiInvd (
-# VOID
-# )
-#------------------------------------------------------------------------------
-ASM_PFX(EfiInvd):
- invd
- retq
-
-#------------------------------------------------------------------------------
-# VOID
-# EfiCpuid (
-# IN UINT32 RegisterInEax, // rcx
-# OUT EFI_CPUID_REGISTER *Reg OPTIONAL // rdx
-# )
-#------------------------------------------------------------------------------
-ASM_PFX(EfiCpuid):
- push %rbx
- mov %rdx,%r8
- mov %rcx,%rax
- cpuid
- cmp $0x0,%r8
- je _Exit
- mov %eax,(%r8)
- mov %ebx,0x4(%r8)
- mov %ecx,0x8(%r8)
- mov %edx,0xc(%r8)
-_Exit:
- pop %rbx
- retq
-
-#------------------------------------------------------------------------------
-# UINT64
-# EfiReadMsr (
-# IN UINT32 Index, // rcx
-# )
-#------------------------------------------------------------------------------
-ASM_PFX(EfiReadMsr):
- rdmsr
- shl $0x20,%rdx
- or %rdx,%rax
- retq
-
-#------------------------------------------------------------------------------
-# VOID
-# EfiWriteMsr (
-# IN UINT32 Index, // rcx
-# IN UINT64 Value // rdx
-# )
-#------------------------------------------------------------------------------
-ASM_PFX(EfiWriteMsr):
- mov %rdx,%rax
- sar $0x20,%rdx
- wrmsr
- retq
-
-#------------------------------------------------------------------------------
-# UINT64
-# EfiReadTsc (
-# VOID
-# );
-#------------------------------------------------------------------------------
-ASM_PFX(EfiReadTsc):
- rdtsc
- shl $0x20,%rax
- shrd $0x20,%rdx,%rax
- retq
-
-#------------------------------------------------------------------------------
-# VOID
-# EfiDisableCache (
-# VOID
-# );
-#------------------------------------------------------------------------------
-ASM_PFX(EfiDisableCache):
-# added a check to see if cache is already disabled. If it is, then skip.
- mov %cr0,%rax
- and $0x60000000,%rax
- cmp $0x0,%rax
- jne 1f
- mov %cr0,%rax
- or $0x60000000,%rax
- mov %rax,%cr0
- wbinvd
-1:
- retq
-
-#------------------------------------------------------------------------------
-# VOID
-# EfiEnableCache (
-# VOID
-# );
-#------------------------------------------------------------------------------
-ASM_PFX(EfiEnableCache):
- wbinvd
- mov %cr0,%rax
- and $0xffffffff9fffffff,%rax
- mov %rax,%cr0
- retq
-
-#------------------------------------------------------------------------------
-# UINTN
-# EfiGetEflags (
-# VOID
-# );
-#------------------------------------------------------------------------------
-ASM_PFX(EfiGetEflags):
- pushfq
- pop %rax
- retq
-
-#------------------------------------------------------------------------------
-# VOID
-# EfiDisableInterrupts (
-# VOID
-# );
-#------------------------------------------------------------------------------
-ASM_PFX(EfiDisableInterrupts):
- cli
- ret
-
-#------------------------------------------------------------------------------
-# VOID
-# EfiEnableInterrupts (
-# VOID
-# );
-#------------------------------------------------------------------------------
-ASM_PFX(EfiEnableInterrupts):
- sti
- ret
-#------------------------------------------------------------------------------
-# VOID
-# EfiCpuidExt (
-# IN UINT32 RegisterInEax,
-# IN UINT32 CacheLevel,
-# OUT EFI_CPUID_REGISTER *Regs
-# )
-#------------------------------------------------------------------------------
-ASM_PFX(EfiCpuidExt):
- push %rbx
- mov %rcx,%rax
- mov %rdx,%rcx
- cpuid
- mov %eax,(%r8)
- mov %ebx,0x4(%r8)
- mov %ecx,0x8(%r8)
- mov %edx,0xc(%r8)
- pop %rbx
- retq
diff --git a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/X64/Cpu.asm b/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/X64/Cpu.asm
deleted file mode 100644
index adb0fa73f3..0000000000
--- a/EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/X64/Cpu.asm
+++ /dev/null
@@ -1,215 +0,0 @@
-TITLE Cpu.asm: Assembly code for the x64 resources
-
-;------------------------------------------------------------------------------
-;*
-;* Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.<BR>
-;* This program and the accompanying materials
-;* are licensed and made available under the terms and conditions of the BSD License
-;* which accompanies this distribution. The full text of the license may be found at
-;* http://opensource.org/licenses/bsd-license.php
-;*
-;* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-;* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-;*
-;* Module Name:
-;*
-;* Cpu.asm
-;*
-;* Abstract:
-;*
-;------------------------------------------------------------------------------
-
-text SEGMENT
-
-
-;------------------------------------------------------------------------------
-; VOID
-; EfiHalt (
-; VOID
-; )
-;------------------------------------------------------------------------------
-EfiHalt PROC PUBLIC
- hlt
- ret
-EfiHalt ENDP
-
-
-;------------------------------------------------------------------------------
-; VOID
-; EfiWbinvd (
-; VOID
-; )
-;------------------------------------------------------------------------------
-EfiWbinvd PROC PUBLIC
- wbinvd
- ret
-EfiWbinvd ENDP
-
-
-;------------------------------------------------------------------------------
-; VOID
-; EfiInvd (
-; VOID
-; )
-;------------------------------------------------------------------------------
-EfiInvd PROC PUBLIC
- invd
- ret
-EfiInvd ENDP
-
-;------------------------------------------------------------------------------
-; VOID
-; EfiCpuid (
-; IN UINT32 RegisterInEax, // rcx
-; OUT EFI_CPUID_REGISTER *Reg OPTIONAL // rdx
-; )
-;------------------------------------------------------------------------------
-EfiCpuid PROC PUBLIC
- push rbx
-
- mov r8, rdx ; r8 = *Reg
- mov rax, rcx ; RegisterInEax
- cpuid
- cmp r8, 0
- je _Exit
- mov [r8 + 0], eax ; Reg->RegEax
- mov [r8 + 4], ebx ; Reg->RegEbx
- mov [r8 + 8], ecx ; Reg->RegEcx
- mov [r8 + 12], edx ; Reg->RegEdx
-
-_Exit:
- pop rbx
- ret
-EfiCpuid ENDP
-
-;------------------------------------------------------------------------------
-; UINT64
-; EfiReadMsr (
-; IN UINT32 Index, // rcx
-; )
-;------------------------------------------------------------------------------
-EfiReadMsr PROC PUBLIC
- rdmsr
- sal rdx, 32 ; edx:eax -> rax
- or rax, rdx ; rax = edx:eax
- ret
-EfiReadMsr ENDP
-
-;------------------------------------------------------------------------------
-; VOID
-; EfiWriteMsr (
-; IN UINT32 Index, // rcx
-; IN UINT64 Value // rdx
-; )
-;------------------------------------------------------------------------------
-EfiWriteMsr PROC PUBLIC
- mov rax, rdx ; rdx = Value
- sar rdx, 32 ; convert rdx to edx upper 32-bits
- wrmsr ; wrmsr[ecx] result = edx:eax
- ret
-EfiWriteMsr ENDP
-
-
-;------------------------------------------------------------------------------
-; UINT64
-; EfiReadTsc (
-; VOID
-; );
-;------------------------------------------------------------------------------
-EfiReadTsc PROC PUBLIC
- rdtsc
- shl rax, 32
- shrd rax, rdx, 32
- ret
-EfiReadTsc ENDP
-
-;------------------------------------------------------------------------------
-; VOID
-; EfiDisableCache (
-; VOID
-; );
-;------------------------------------------------------------------------------
-EfiDisableCache PROC PUBLIC
-; added a check to see if cache is already disabled. If it is, then skip.
- mov rax, cr0
- and rax, 060000000h
- cmp rax, 0
- jne @f
- mov rax, cr0
- or rax, 060000000h
- mov cr0, rax
- wbinvd
-@@:
- ret
-EfiDisableCache ENDP
-
-;------------------------------------------------------------------------------
-; VOID
-; EfiEnableCache (
-; VOID
-; );
-;------------------------------------------------------------------------------
-EfiEnableCache PROC PUBLIC
- wbinvd
- mov rax, cr0
- and rax, 09fffffffh
- mov cr0, rax
- ret
-EfiEnableCache ENDP
-
-;------------------------------------------------------------------------------
-; UINTN
-; EfiGetEflags (
-; VOID
-; );
-;------------------------------------------------------------------------------
-EfiGetEflags PROC PUBLIC
- pushfq
- pop rax
- ret
-EfiGetEflags ENDP
-
-;------------------------------------------------------------------------------
-; VOID
-; EfiDisableInterrupts (
-; VOID
-; );
-;------------------------------------------------------------------------------
-EfiDisableInterrupts PROC PUBLIC
- cli
- ret
-EfiDisableInterrupts ENDP
-
-;------------------------------------------------------------------------------
-; VOID
-; EfiEnableInterrupts (
-; VOID
-; );
-;------------------------------------------------------------------------------
-EfiEnableInterrupts PROC PUBLIC
- sti
- ret
-EfiEnableInterrupts ENDP
-;------------------------------------------------------------------------------
-; VOID
-; EfiCpuidExt (
-; IN UINT32 RegisterInEax,
-; IN UINT32 CacheLevel,
-; OUT EFI_CPUID_REGISTER *Regs
-; )
-;------------------------------------------------------------------------------
-EfiCpuidExt PROC PUBLIC
- push rbx
- mov rax, rcx ; rax = RegisterInEax
- mov rcx, rdx ; rcx = CacheLevel
-
- cpuid
- mov [r8 + 0 ], eax ; Reg->RegEax
- mov [r8 + 4 ], ebx ; Reg->RegEbx
- mov [r8 + 8 ], ecx ; Reg->RegEcx
- mov [r8 + 12], edx ; Reg->RegEdx
-
- pop rbx
- ret
-EfiCpuidExt ENDP
-END