On 3 November 2015 at 12:56, Leif Lindholm <[email protected]> wrote: > On Tue, Nov 03, 2015 at 11:16:28AM +0100, Ard Biesheuvel wrote: >> The ARM9 ArmLib implementation is not referenced anywhere in the >> tree, and unlikely to be useful going forward, considering that >> ARM9 outdates even ARMv6. So remove it. > > While I agree in principle, I don't think we can safely make too many > assumptions here - we know the majority of 32-bit ARM UEFI platforms > are out of tree. > > Can we break this out from the current set and keep as a separate > discussion, giving people a few weeks to respond? >
Sure. I don't think it makes sense to fix this code in the same way as I fix the other versions in this series. (Note that the ARM9 code does not even get built if you build ArmPkg/ArmPkg.dsc in isolation) -- Ard. >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Ard Biesheuvel <[email protected]> >> --- >> ArmPkg/Library/ArmLib/Arm9/Arm9ArmLib.inf | 43 ----- >> ArmPkg/Library/ArmLib/Arm9/Arm9ArmLibPrePi.inf | 43 ----- >> ArmPkg/Library/ArmLib/Arm9/Arm9CacheInformation.c | 165 -------------------- >> ArmPkg/Library/ArmLib/Arm9/Arm9Lib.c | 134 ---------------- >> ArmPkg/Library/ArmLib/Arm9/Arm9Support.S | 153 ------------------ >> ArmPkg/Library/ArmLib/Arm9/Arm9Support.asm | 153 ------------------ >> 6 files changed, 691 deletions(-) >> >> diff --git a/ArmPkg/Library/ArmLib/Arm9/Arm9ArmLib.inf >> b/ArmPkg/Library/ArmLib/Arm9/Arm9ArmLib.inf >> deleted file mode 100644 >> index e8aa056fbfea..000000000000 >> --- a/ArmPkg/Library/ArmLib/Arm9/Arm9ArmLib.inf >> +++ /dev/null >> @@ -1,43 +0,0 @@ >> -#/** @file >> -# Semihosting serail port lib >> -# >> -# Copyright (c) 2008 - 2010, Apple Inc. 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. >> -# >> -# >> -#**/ >> - >> -[Defines] >> - INF_VERSION = 0x00010005 >> - BASE_NAME = Arm9ArmLib >> - FILE_GUID = 375D70D3-91E0-4374-A540-68BD959EB184 >> - MODULE_TYPE = DXE_DRIVER >> - VERSION_STRING = 1.0 >> - LIBRARY_CLASS = ArmLib >> - >> -[Sources.common] >> - ../Common/Arm/ArmLibSupport.S | GCC >> - ../Common/Arm/ArmLibSupport.asm | RVCT >> - ../Common/ArmLib.c >> - >> - Arm9Support.S | GCC >> - Arm9Support.asm | RVCT >> - >> - Arm9Lib.c >> - Arm9CacheInformation.c >> - >> -[Packages] >> - ArmPkg/ArmPkg.dec >> - MdePkg/MdePkg.dec >> - >> -[LibraryClasses] >> - MemoryAllocationLib >> - >> -[Protocols] >> - gEfiCpuArchProtocolGuid >> diff --git a/ArmPkg/Library/ArmLib/Arm9/Arm9ArmLibPrePi.inf >> b/ArmPkg/Library/ArmLib/Arm9/Arm9ArmLibPrePi.inf >> deleted file mode 100644 >> index 556e3dc5ab2a..000000000000 >> --- a/ArmPkg/Library/ArmLib/Arm9/Arm9ArmLibPrePi.inf >> +++ /dev/null >> @@ -1,43 +0,0 @@ >> -#/** @file >> -# Semihosting serail port lib >> -# >> -# Copyright (c) 2008 - 2010, Apple Inc. 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. >> -# >> -# >> -#**/ >> - >> -[Defines] >> - INF_VERSION = 0x00010005 >> - BASE_NAME = Arm9ArmLibPrePi >> - FILE_GUID = e9b6011f-ee15-4e59-ab8f-a819a081fa54 >> - MODULE_TYPE = DXE_DRIVER >> - VERSION_STRING = 1.0 >> - LIBRARY_CLASS = ArmLib >> - >> -[Sources.common] >> - ../Common/Arm/ArmLibSupport.S | GCC >> - ../Common/Arm/ArmLibSupport.asm | RVCT >> - ../Common/ArmLib.c >> - >> - Arm9Support.S | GCC >> - Arm9Support.asm | RVCT >> - >> - Arm9Lib.c >> - Arm9CacheInformation.c >> - >> -[Packages] >> - ArmPkg/ArmPkg.dec >> - MdePkg/MdePkg.dec >> - >> -[LibraryClasses] >> - PrePiLib >> - >> -[Protocols] >> - gEfiCpuArchProtocolGuid >> diff --git a/ArmPkg/Library/ArmLib/Arm9/Arm9CacheInformation.c >> b/ArmPkg/Library/ArmLib/Arm9/Arm9CacheInformation.c >> deleted file mode 100644 >> index f0b5060249fe..000000000000 >> --- a/ArmPkg/Library/ArmLib/Arm9/Arm9CacheInformation.c >> +++ /dev/null >> @@ -1,165 +0,0 @@ >> -/** @file >> - >> - Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> >> - Copyright (c) 2014, ARM Limited. All rights reserved. >> - >> - 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. >> - >> -**/ >> - >> -#include <Library/ArmLib.h> >> -#include "ArmLibPrivate.h" >> - >> -ARM_CACHE_TYPE >> -EFIAPI >> -ArmCacheType ( >> - VOID >> - ) >> -{ >> - switch (CACHE_TYPE (ArmCacheInfo ())) >> - { >> - case CACHE_TYPE_WRITE_BACK: return ARM_CACHE_TYPE_WRITE_BACK; >> - default: return ARM_CACHE_TYPE_UNKNOWN; >> - } >> -} >> - >> -ARM_CACHE_ARCHITECTURE >> -EFIAPI >> -ArmCacheArchitecture ( >> - VOID >> - ) >> -{ >> - switch (CACHE_ARCHITECTURE (ArmCacheInfo ())) >> - { >> - case CACHE_ARCHITECTURE_UNIFIED: return ARM_CACHE_ARCHITECTURE_UNIFIED; >> - case CACHE_ARCHITECTURE_SEPARATE: return >> ARM_CACHE_ARCHITECTURE_SEPARATE; >> - default: return ARM_CACHE_ARCHITECTURE_UNKNOWN; >> - } >> -} >> - >> -BOOLEAN >> -EFIAPI >> -ArmDataCachePresent ( >> - VOID >> - ) >> -{ >> - switch (DATA_CACHE_PRESENT (ArmCacheInfo ())) >> - { >> - case CACHE_PRESENT: return TRUE; >> - case CACHE_NOT_PRESENT: return FALSE; >> - default: return FALSE; >> - } >> -} >> - >> -UINTN >> -EFIAPI >> -ArmDataCacheSize ( >> - VOID >> - ) >> -{ >> - switch (DATA_CACHE_SIZE (ArmCacheInfo ())) >> - { >> - case CACHE_SIZE_4_KB: return 4 * 1024; >> - case CACHE_SIZE_8_KB: return 8 * 1024; >> - case CACHE_SIZE_16_KB: return 16 * 1024; >> - case CACHE_SIZE_32_KB: return 32 * 1024; >> - case CACHE_SIZE_64_KB: return 64 * 1024; >> - case CACHE_SIZE_128_KB: return 128 * 1024; >> - default: return 0; >> - } >> -} >> - >> -UINTN >> -EFIAPI >> -ArmDataCacheAssociativity ( >> - VOID >> - ) >> -{ >> - switch (DATA_CACHE_ASSOCIATIVITY (ArmCacheInfo ())) >> - { >> - case CACHE_ASSOCIATIVITY_4_WAY: return 4; >> - case CACHE_ASSOCIATIVITY_DIRECT: return 1; >> - default: return 0; >> - } >> -} >> - >> -UINTN >> -EFIAPI >> -ArmDataCacheLineLength ( >> - VOID >> - ) >> -{ >> - switch (DATA_CACHE_LINE_LENGTH (ArmCacheInfo ())) >> - { >> - case CACHE_LINE_LENGTH_32_BYTES: return 32; >> - default: return 0; >> - } >> -} >> - >> -BOOLEAN >> -EFIAPI >> -ArmInstructionCachePresent ( >> - VOID >> - ) >> -{ >> - switch (INSTRUCTION_CACHE_PRESENT (ArmCacheInfo ())) >> - { >> - case CACHE_PRESENT: return TRUE; >> - case CACHE_NOT_PRESENT: return FALSE; >> - default: return FALSE; >> - } >> -} >> - >> -UINTN >> -EFIAPI >> -ArmInstructionCacheSize ( >> - VOID >> - ) >> -{ >> - switch (INSTRUCTION_CACHE_SIZE (ArmCacheInfo ())) >> - { >> - case CACHE_SIZE_4_KB: return 4 * 1024; >> - case CACHE_SIZE_8_KB: return 8 * 1024; >> - case CACHE_SIZE_16_KB: return 16 * 1024; >> - case CACHE_SIZE_32_KB: return 32 * 1024; >> - case CACHE_SIZE_64_KB: return 64 * 1024; >> - case CACHE_SIZE_128_KB: return 128 * 1024; >> - default: return 0; >> - } >> -} >> - >> -UINTN >> -EFIAPI >> -ArmInstructionCacheAssociativity ( >> - VOID >> - ) >> -{ >> - switch (INSTRUCTION_CACHE_ASSOCIATIVITY (ArmCacheInfo ())) >> - { >> - case CACHE_ASSOCIATIVITY_8_WAY: return 8; >> - case CACHE_ASSOCIATIVITY_4_WAY: return 4; >> - case CACHE_ASSOCIATIVITY_DIRECT: return 1; >> - default: return 0; >> - } >> -} >> - >> -UINTN >> -EFIAPI >> -ArmInstructionCacheLineLength ( >> - VOID >> - ) >> -{ >> - switch (INSTRUCTION_CACHE_LINE_LENGTH (ArmCacheInfo ())) >> - { >> - case CACHE_LINE_LENGTH_32_BYTES: return 32; >> - default: return 0; >> - } >> -} >> - >> - >> diff --git a/ArmPkg/Library/ArmLib/Arm9/Arm9Lib.c >> b/ArmPkg/Library/ArmLib/Arm9/Arm9Lib.c >> deleted file mode 100644 >> index 7432f7b678f3..000000000000 >> --- a/ArmPkg/Library/ArmLib/Arm9/Arm9Lib.c >> +++ /dev/null >> @@ -1,134 +0,0 @@ >> -/** @file >> - >> - Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> >> - Copyright (c) 2011 - 2013, ARM Limited. All rights reserved. >> - >> - 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. >> - >> -**/ >> - >> -#include <Chipset/ARM926EJ-S.h> >> -#include <Library/ArmLib.h> >> -#include <Library/BaseMemoryLib.h> >> -#include <Library/MemoryAllocationLib.h> >> -#include <Library/DebugLib.h> >> - >> -VOID >> -FillTranslationTable ( >> - IN UINT32 *TranslationTable, >> - IN ARM_MEMORY_REGION_DESCRIPTOR *MemoryRegion >> - ) >> -{ >> - UINT32 *Entry; >> - UINTN Sections; >> - UINTN Index; >> - UINT32 Attributes; >> - UINT32 PhysicalBase = MemoryRegion->PhysicalBase; >> - >> - switch (MemoryRegion->Attributes) { >> - case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK: >> - Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK; >> - break; >> - case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH: >> - Attributes = TT_DESCRIPTOR_SECTION_WRITE_THROUGH; >> - break; >> - case ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED: >> - Attributes = TT_DESCRIPTOR_SECTION_UNCACHED_UNBUFFERED; >> - break; >> - case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK: >> - case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH: >> - case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_UNCACHED_UNBUFFERED: >> - ASSERT(0); // Trustzone is not supported on ARMv5 >> - default: >> - Attributes = TT_DESCRIPTOR_SECTION_UNCACHED_UNBUFFERED; >> - break; >> - } >> - >> - Entry = TRANSLATION_TABLE_ENTRY_FOR_VIRTUAL_ADDRESS(TranslationTable, >> MemoryRegion->VirtualBase); >> - Sections = MemoryRegion->Length / TT_DESCRIPTOR_SECTION_SIZE; >> - >> - // The current code does not support memory region size that is not >> aligned on TT_DESCRIPTOR_SECTION_SIZE boundary >> - ASSERT (MemoryRegion->Length % TT_DESCRIPTOR_SECTION_SIZE == 0); >> - >> - for (Index = 0; Index < Sections; Index++) >> - { >> - *Entry++ = TT_DESCRIPTOR_SECTION_BASE_ADDRESS(PhysicalBase) | >> Attributes; >> - PhysicalBase += TT_DESCRIPTOR_SECTION_SIZE; >> - } >> -} >> - >> -RETURN_STATUS >> -EFIAPI >> -ArmConfigureMmu ( >> - IN ARM_MEMORY_REGION_DESCRIPTOR *MemoryTable, >> - OUT VOID **TranslationTableBase OPTIONAL, >> - OUT UINTN *TranslationTableSize OPTIONAL >> - ) >> -{ >> - VOID *TranslationTable; >> - >> - // Allocate pages for translation table. >> - TranslationTable = AllocatePages (EFI_SIZE_TO_PAGES >> (TRANSLATION_TABLE_SIZE + TRANSLATION_TABLE_ALIGNMENT)); >> - if (TranslationTable == NULL) { >> - return RETURN_OUT_OF_RESOURCES; >> - } >> - TranslationTable = (VOID *)(((UINTN)TranslationTable + >> TRANSLATION_TABLE_ALIGNMENT_MASK) & ~TRANSLATION_TABLE_ALIGNMENT_MASK); >> - >> - if (TranslationTableBase != NULL) { >> - *TranslationTableBase = TranslationTable; >> - } >> - >> - if (TranslationTableBase != NULL) { >> - *TranslationTableSize = TRANSLATION_TABLE_SIZE; >> - } >> - >> - ZeroMem(TranslationTable, TRANSLATION_TABLE_SIZE); >> - >> - ArmCleanInvalidateDataCache(); >> - ArmInvalidateInstructionCache(); >> - ArmInvalidateTlb(); >> - >> - ArmDisableDataCache(); >> - ArmDisableInstructionCache(); >> - ArmDisableMmu(); >> - >> - // Make sure nothing sneaked into the cache >> - ArmCleanInvalidateDataCache(); >> - ArmInvalidateInstructionCache(); >> - >> - while (MemoryTable->Length != 0) { >> - FillTranslationTable(TranslationTable, MemoryTable); >> - MemoryTable++; >> - } >> - >> - ArmSetTTBR0(TranslationTable); >> - >> - ArmSetDomainAccessControl(DOMAIN_ACCESS_CONTROL_NONE(15) | >> - DOMAIN_ACCESS_CONTROL_NONE(14) | >> - DOMAIN_ACCESS_CONTROL_NONE(13) | >> - DOMAIN_ACCESS_CONTROL_NONE(12) | >> - DOMAIN_ACCESS_CONTROL_NONE(11) | >> - DOMAIN_ACCESS_CONTROL_NONE(10) | >> - DOMAIN_ACCESS_CONTROL_NONE( 9) | >> - DOMAIN_ACCESS_CONTROL_NONE( 8) | >> - DOMAIN_ACCESS_CONTROL_NONE( 7) | >> - DOMAIN_ACCESS_CONTROL_NONE( 6) | >> - DOMAIN_ACCESS_CONTROL_NONE( 5) | >> - DOMAIN_ACCESS_CONTROL_NONE( 4) | >> - DOMAIN_ACCESS_CONTROL_NONE( 3) | >> - DOMAIN_ACCESS_CONTROL_NONE( 2) | >> - DOMAIN_ACCESS_CONTROL_NONE( 1) | >> - DOMAIN_ACCESS_CONTROL_MANAGER(0)); >> - >> - ArmEnableInstructionCache(); >> - ArmEnableDataCache(); >> - ArmEnableMmu(); >> - >> - return RETURN_SUCCESS; >> -} >> diff --git a/ArmPkg/Library/ArmLib/Arm9/Arm9Support.S >> b/ArmPkg/Library/ArmLib/Arm9/Arm9Support.S >> deleted file mode 100644 >> index c708d212a9a8..000000000000 >> --- a/ArmPkg/Library/ArmLib/Arm9/Arm9Support.S >> +++ /dev/null >> @@ -1,153 +0,0 @@ >> -#------------------------------------------------------------------------------ >> -# >> -# Copyright (c) 2008 - 2009, Apple Inc. 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. >> -# >> -#------------------------------------------------------------------------------ >> - >> -.text >> -.align 2 >> -GCC_ASM_EXPORT(ArmCleanInvalidateDataCache) >> -GCC_ASM_EXPORT(ArmCleanDataCache) >> -GCC_ASM_EXPORT(ArmInvalidateDataCache) >> -GCC_ASM_EXPORT(ArmInvalidateInstructionCache) >> -GCC_ASM_EXPORT(ArmInvalidateDataCacheEntryByMVA) >> -GCC_ASM_EXPORT(ArmCleanDataCacheEntryByMVA) >> -GCC_ASM_EXPORT(ArmCleanInvalidateDataCacheEntryByMVA) >> -GCC_ASM_EXPORT(ArmEnableMmu) >> -GCC_ASM_EXPORT(ArmDisableMmu) >> -GCC_ASM_EXPORT(ArmMmuEnabled) >> -GCC_ASM_EXPORT(ArmEnableDataCache) >> -GCC_ASM_EXPORT(ArmDisableDataCache) >> -GCC_ASM_EXPORT(ArmEnableInstructionCache) >> -GCC_ASM_EXPORT(ArmDisableInstructionCache) >> -GCC_ASM_EXPORT(ArmEnableBranchPrediction) >> -GCC_ASM_EXPORT(ArmDisableBranchPrediction) >> -GCC_ASM_EXPORT(ArmDataMemoryBarrier) >> -GCC_ASM_EXPORT(ArmDataSyncronizationBarrier) >> -GCC_ASM_EXPORT(ArmInstructionSynchronizationBarrier) >> - >> - >> -.set DC_ON, (1<<2) >> -.set IC_ON, (1<<12) >> - >> -#------------------------------------------------------------------------------ >> - >> -ASM_PFX(ArmInvalidateDataCacheEntryByMVA): >> - mcr p15, 0, r0, c7, c6, 1 @ invalidate single data cache line >> - bx lr >> - >> -ASM_PFX(ArmCleanDataCacheEntryByMVA): >> - mcr p15, 0, r0, c7, c10, 1 @ clean single data cache line >> - bx lr >> - >> -ASM_PFX(ArmCleanInvalidateDataCacheEntryByMVA): >> - mcr p15, 0, r0, c7, c14, 1 @ clean and invalidate single data cache >> line >> - bx lr >> - >> -ASM_PFX(ArmEnableInstructionCache): >> - ldr r1,=IC_ON >> - mrc p15,0,r0,c1,c0,0 @Read control register configuration data >> - orr r0,r0,r1 @Set I bit >> - mcr p15,0,r0,c1,c0,0 @Write control register configuration data >> - bx LR >> - >> -ASM_PFX(ArmDisableInstructionCache): >> - ldr r1,=IC_ON >> - mrc p15,0,r0,c1,c0,0 @Read control register configuration data >> - bic r0,r0,r1 @Clear I bit. >> - mcr p15,0,r0,c1,c0,0 @Write control register configuration data >> - bx LR >> - >> -ASM_PFX(ArmInvalidateInstructionCache): >> - mov r0,#0 >> - mcr p15,0,r0,c7,c5,0 @Invalidate entire Instruction cache. >> - @Also flushes the branch target cache. >> - mov r0,#0 >> - mcr p15,0,r0,c7,c10,4 @Data write buffer >> - bx LR >> - >> -ASM_PFX(ArmEnableMmu): >> - mrc p15,0,R0,c1,c0,0 >> - orr R0,R0,#1 >> - mcr p15,0,R0,c1,c0,0 >> - bx LR >> - >> -ASM_PFX(ArmMmuEnabled): >> - mrc p15,0,R0,c1,c0,0 >> - and R0,R0,#1 >> - bx LR >> - >> -ASM_PFX(ArmDisableMmu): >> - mrc p15,0,R0,c1,c0,0 >> - bic R0,R0,#1 >> - mcr p15,0,R0,c1,c0,0 >> - mov R0,#0 >> - mcr p15,0,R0,c7,c10,4 @Drain write buffer >> - bx LR >> - >> -ASM_PFX(ArmEnableDataCache): >> - ldr R1,=DC_ON >> - mrc p15,0,R0,c1,c0,0 @Read control register configuration data >> - orr R0,R0,R1 @Set C bit >> - mcr p15,0,r0,c1,c0,0 @Write control register configuration data >> - bx LR >> - >> -ASM_PFX(ArmDisableDataCache): >> - ldr R1,=DC_ON >> - mrc p15,0,R0,c1,c0,0 @Read control register configuration data >> - bic R0,R0,R1 @Clear C bit >> - mcr p15,0,r0,c1,c0,0 @Write control register configuration data >> - bx LR >> - >> -ASM_PFX(ArmCleanDataCache): >> - mrc p15,0,r15,c7,c10,3 >> - bne ASM_PFX(ArmCleanDataCache) >> - mov R0,#0 >> - mcr p15,0,R0,c7,c10,4 @Drain write buffer >> - bx LR >> - >> -ASM_PFX(ArmInvalidateDataCache): >> - mov R0,#0 >> - mcr p15,0,R0,c7,c6,0 @Invalidate entire data cache >> - mov R0,#0 >> - mcr p15,0,R0,c7,c10,4 @Drain write buffer >> - bx LR >> - >> -ASM_PFX(ArmCleanInvalidateDataCache): >> - mrc p15,0,r15,c7,c14,3 >> - bne ASM_PFX(ArmCleanInvalidateDataCache) >> - mov R0,#0 >> - mcr p15,0,R0,c7,c10,4 @Drain write buffer >> - bx LR >> - >> -ASM_PFX(ArmEnableBranchPrediction): >> - bx LR @Branch prediction is not supported. >> - >> -ASM_PFX(ArmDisableBranchPrediction): >> - bx LR @Branch prediction is not supported. >> - >> -ASM_PFX(ArmDataMemoryBarrier): >> - mov R0, #0 >> - mcr P15, #0, R0, C7, C10, #5 @ check if this is OK? >> - bx LR >> - >> -ASM_PFX(ArmDataSyncronizationBarrier): >> - mov R0, #0 >> - mcr P15, #0, R0, C7, C10, #4 @ check if this is OK? >> - bx LR >> - >> -ASM_PFX(ArmInstructionSynchronizationBarrier): >> - mov R0, #0 >> - mcr P15, #0, R0, C7, C5, #4 @ check if this is OK? >> - bx LR >> - >> -ASM_FUNCTION_REMOVE_IF_UNREFERENCED >> - >> diff --git a/ArmPkg/Library/ArmLib/Arm9/Arm9Support.asm >> b/ArmPkg/Library/ArmLib/Arm9/Arm9Support.asm >> deleted file mode 100644 >> index 4aaa546ca0c8..000000000000 >> --- a/ArmPkg/Library/ArmLib/Arm9/Arm9Support.asm >> +++ /dev/null >> @@ -1,153 +0,0 @@ >> -//------------------------------------------------------------------------------ >> -// >> -// Copyright (c) 2008 - 2009, Apple Inc. 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. >> -// >> -//------------------------------------------------------------------------------ >> - >> - EXPORT ArmCleanInvalidateDataCache >> - EXPORT ArmCleanDataCache >> - EXPORT ArmInvalidateDataCache >> - EXPORT ArmInvalidateInstructionCache >> - EXPORT ArmInvalidateDataCacheEntryByMVA >> - EXPORT ArmCleanDataCacheEntryByMVA >> - EXPORT ArmCleanInvalidateDataCacheEntryByMVA >> - EXPORT ArmEnableMmu >> - EXPORT ArmDisableMmu >> - EXPORT ArmMmuEnabled >> - EXPORT ArmEnableDataCache >> - EXPORT ArmDisableDataCache >> - EXPORT ArmEnableInstructionCache >> - EXPORT ArmDisableInstructionCache >> - EXPORT ArmEnableBranchPrediction >> - EXPORT ArmDisableBranchPrediction >> - EXPORT ArmDataMemoryBarrier >> - EXPORT ArmDataSyncronizationBarrier >> - EXPORT ArmInstructionSynchronizationBarrier >> - >> - >> -DC_ON EQU ( 0x1:SHL:2 ) >> -IC_ON EQU ( 0x1:SHL:12 ) >> - >> - AREA ArmCacheLib, CODE, READONLY >> - PRESERVE8 >> - >> - >> -ArmInvalidateDataCacheEntryByMVA >> - MCR p15, 0, r0, c7, c6, 1 ; invalidate single data cache line >> - BX lr >> - >> - >> -ArmCleanDataCacheEntryByMVA >> - MCR p15, 0, r0, c7, c10, 1 ; clean single data cache line >> - BX lr >> - >> - >> -ArmCleanInvalidateDataCacheEntryByMVA >> - MCR p15, 0, r0, c7, c14, 1 ; clean and invalidate single data cache >> line >> - BX lr >> - >> -ArmEnableInstructionCache >> - LDR R1,=IC_ON >> - MRC p15,0,R0,c1,c0,0 ;Read control register configuration data >> - ORR R0,R0,R1 ;Set I bit >> - MCR p15,0,r0,c1,c0,0 ;Write control register configuration data >> - BX LR >> - >> -ArmDisableInstructionCache >> - LDR R1,=IC_ON >> - MRC p15,0,R0,c1,c0,0 ;Read control register configuration data >> - BIC R0,R0,R1 ;Clear I bit. >> - MCR p15,0,r0,c1,c0,0 ;Write control register configuration data >> - BX LR >> - >> -ArmInvalidateInstructionCache >> - MOV R0,#0 >> - MCR p15,0,R0,c7,c5,0 ;Invalidate entire instruction cache >> - MOV R0,#0 >> - MCR p15,0,R0,c7,c10,4 ;Drain write buffer >> - BX LR >> - >> -ArmEnableMmu >> - mrc p15,0,R0,c1,c0,0 >> - orr R0,R0,#1 >> - mcr p15,0,R0,c1,c0,0 >> - bx LR >> - >> -ArmMmuEnabled >> - mrc p15,0,R0,c1,c0,0 >> - and R0,R0,#1 >> - bx LR >> - >> -ArmDisableMmu >> - mrc p15,0,R0,c1,c0,0 >> - bic R0,R0,#1 >> - mcr p15,0,R0,c1,c0,0 >> - mov R0,#0 >> - mcr p15,0,R0,c7,c10,4 ;Drain write buffer >> - bx LR >> - >> -ArmEnableDataCache >> - LDR R1,=DC_ON >> - MRC p15,0,R0,c1,c0,0 ;Read control register configuration data >> - ORR R0,R0,R1 ;Set C bit >> - MCR p15,0,r0,c1,c0,0 ;Write control register configuration data >> - BX LR >> - >> -ArmDisableDataCache >> - LDR R1,=DC_ON >> - MRC p15,0,R0,c1,c0,0 ;Read control register configuration data >> - BIC R0,R0,R1 ;Clear C bit >> - MCR p15,0,r0,c1,c0,0 ;Write control register configuration data >> - BX LR >> - >> -ArmCleanDataCache >> - MRC p15,0,r15,c7,c10,3 >> - BNE ArmCleanDataCache >> - MOV R0,#0 >> - MCR p15,0,R0,c7,c10,4 ;Drain write buffer >> - BX LR >> - >> -ArmInvalidateDataCache >> - MOV R0,#0 >> - MCR p15,0,R0,c7,c6,0 ;Invalidate entire data cache >> - MOV R0,#0 >> - MCR p15,0,R0,c7,c10,4 ;Drain write buffer >> - BX LR >> - >> -ArmCleanInvalidateDataCache >> - MRC p15,0,r15,c7,c14,3 >> - BNE ArmCleanInvalidateDataCache >> - MOV R0,#0 >> - MCR p15,0,R0,c7,c10,4 ;Drain write buffer >> - BX LR >> - >> -ArmEnableBranchPrediction >> - bx LR ;Branch prediction is not supported. >> - >> -ArmDisableBranchPrediction >> - bx LR ;Branch prediction is not supported. >> - >> -ASM_PFX(ArmDataMemoryBarrier): >> - mov R0, #0 >> - mcr P15, #0, R0, C7, C10, #5 ; Check to see if this is correct >> - bx LR >> - >> -ASM_PFX(ArmDataSyncronizationBarrier): >> - mov R0, #0 >> - mcr P15, #0, R0, C7, C10, #4 ; Check to see if this is correct >> - bx LR >> - >> -ASM_PFX(ArmInstructionSynchronizationBarrier): >> - MOV R0, #0 >> - MCR P15, #0, R0, C7, C5, #4 ; Check to see if this is correct >> - bx LR >> - >> - END >> -- >> 1.9.1 >> _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

