This series of patch commits moves a number of modules and libraries around in 
order
to better un-silo the Arm-specific code. Unnecessary abstractions were removed, 
some
duplicate code was abstracted, and generally things were cleaned up so that 
common
code (e.g. MdePkg, MdeModulePkg, StandaloneMmPkg) does not require ArmPkg or
ArmPlatformPkg.

Also, some things that were previously hidden away under ArmPkg are now located
with the core functionality or build tooling that makes sense for it.

Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org>
Cc: Bob Feng <bob.c.f...@intel.com>
Cc: Jiaxin Wu <jiaxin...@intel.com>
Cc: Jiewen Yao <jiewen....@intel.com>
Cc: Leif Lindholm <l...@nuviainc.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
Cc: Maciej Rabeda <maciej.rab...@linux.intel.com>
Cc: Michael D Kinney <michael.d.kin...@intel.com>
Cc: Ray Ni <ray...@intel.com>
Cc: Sami Mujawar <sami.muja...@arm.com>
Cc: Sean Brogan <sean.bro...@microsoft.com>
Cc: Siyuan Fu <siyuan...@intel.com>
Cc: Supreeth Venkatesh <supreeth.venkat...@arm.com>
Cc: Yuwei Chen <yuwei.c...@intel.com>
Cc: Zhichao Gao <zhichao....@intel.com>
Cc: Zhiguang Liu <zhiguang....@intel.com>
Signed-off-by: Bret Barkelew <bret.barke...@microsoft.com>

Bret Barkelew (13):
  ArmPkg/ArmMmuBaseLib: Disallow STANDALONE_MM
  ArmPkg/ArmMmuStandaloneMmLib: Update to match ArmMmuLib
  ArmPkg/StandaloneMmCoreEntryPoint: Swap to ArmMmuLib
  ArmPkg: Disavow StandaloneMmMmuLib. It's just ArmMmuLib
  ArmPkg and MdePkg: Move the Arm CompilerIntrinsicsLib to MdePkg
  ArmPkg and BaseTools: Move the GccLto binaries from ArmPkg to
    BaseTools
  ArmPkg and MdePkg: Move the AsmMacroIoLib from ArmPkg to MdePkg
  MdePkg: Create the MMU access lib to abstract memory protection
    settings
  MdeModulePkg: Swap to MmuLib instead of Arm-specific lib
  StandaloneMmPkg: Switch to the MmuLib abstraction
  ArmPkg: Move the StandaloneMmCpu driver to ArmPkg
  StandaloneMmPkg: Add StandaloneMmCoreEntryNull to satisfy CI on all
    archs
  ArmPkg: Create an Arm-specific version of StandaloneMmCoreEntryPoint

Sean Brogan (1):
  ArmPkg: Add Basic MMU Lib for Arm silicon

 {StandaloneMmPkg => ArmPkg}/Drivers/StandaloneMmCpu/EventHandle.c              
                     |   0
 {StandaloneMmPkg => ArmPkg}/Drivers/StandaloneMmCpu/StandaloneMmCpu.c          
                     |   0
 ArmPkg/Library/MmuLib/MmuLib.c                                                 
                     | 120 ++++++++++++++++++++
 {StandaloneMmPkg => 
ArmPkg}/Library/StandaloneMmCoreEntryPoint/Arm/CreateHobList.c                  
|   0
 {StandaloneMmPkg => 
ArmPkg}/Library/StandaloneMmCoreEntryPoint/Arm/SetPermissions.c                 
|   0
 {StandaloneMmPkg => 
ArmPkg}/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMmCoreEntryPoint.c     
|   0
 ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c                      
                     |  67 +++++++++++
 MdeModulePkg/Core/DxeIplPeim/Arm/DxeLoadFunc.c                                 
                     |   4 +-
 MdePkg/Library/BaseMmuLibNull/BaseMmuLibNull.c                                 
                     |  86 ++++++++++++++
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memcmp_ms.c                   
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memcpy.c                      
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memcpy_ms.c                   
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memmove_ms.c                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memset.c                      
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memset_ms.c                   
                     |   0
 
StandaloneMmPkg/Library/StandaloneMmCoreEntryPointNull/StandaloneMmCoreEntryPointNull.c
             |  51 +++++++++
 
StandaloneMmPkg/Library/StandaloneMmPeCoffExtraActionLib/AArch64/StandaloneMmPeCoffExtraActionLib.c
 |  82 ++++++++++++-
 ArmPkg/ArmPkg.ci.yaml                                                          
                     |   3 +-
 ArmPkg/ArmPkg.dec                                                              
                     |   4 -
 ArmPkg/ArmPkg.dsc                                                              
                     |  14 ++-
 ArmPkg/Drivers/ArmCrashDumpDxe/ArmCrashDumpDxe.dsc                             
                     |   2 +-
 {StandaloneMmPkg => ArmPkg}/Drivers/StandaloneMmCpu/StandaloneMmCpu.h          
                     |   0
 {StandaloneMmPkg => ArmPkg}/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf        
                     |   0
 ArmPkg/Include/Library/StandaloneMmMmuLib.h                                    
                     |  36 ------
 ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf                                     
                     |   2 +-
 ArmPkg/Library/MmuLib/BaseMmuLib.inf                                           
                     |  30 +++++
 {StandaloneMmPkg => 
ArmPkg}/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf       
|   8 +-
 ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf                    
                     |   2 +-
 ArmPlatformPkg/ArmPlatformPkg.dsc                                              
                     |   2 +-
 ArmVirtPkg/ArmVirt.dsc.inc                                                     
                     |   2 +-
 {ArmPkg/Library => BaseTools/Bin}/GccLto/liblto-aarch64.a                      
                     | Bin
 {ArmPkg/Library => BaseTools/Bin}/GccLto/liblto-aarch64.s                      
                     |   0
 {ArmPkg/Library => BaseTools/Bin}/GccLto/liblto-arm.a                          
                     | Bin
 {ArmPkg/Library => BaseTools/Bin}/GccLto/liblto-arm.s                          
                     |   0
 BaseTools/Conf/tools_def.template                                              
                     |  19 ++--
 CryptoPkg/CryptoPkg.dsc                                                        
                     |   2 +-
 DynamicTablesPkg/DynamicTablesPkg.dsc                                          
                     |   2 +-
 EmbeddedPkg/EmbeddedPkg.dsc                                                    
                     |   2 +-
 FatPkg/FatPkg.dsc                                                              
                     |   2 +-
 FmpDevicePkg/FmpDevicePkg.dsc                                                  
                     |   2 +-
 MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf                                        
                     |   4 +-
 MdeModulePkg/MdeModulePkg.dsc                                                  
                     |   5 +-
 {ArmPkg/Include => MdePkg/Include/AArch64}/AsmMacroIoLibV8.h                   
                     |   0
 {ArmPkg/Include => MdePkg/Include/Arm}/AsmMacroIoLib.h                         
                     |   0
 MdePkg/Include/Library/MmuLib.h                                                
                     |  75 ++++++++++++
 MdePkg/Library/BaseMmuLibNull/BaseMmuLibNull.inf                               
                     |  28 +++++
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/AArch64/Atomics.S             
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ashldi3.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ashrdi3.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/clzsi2.S                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ctzsi2.S                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/div.S                     
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/div.asm                   
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/divdi3.S                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/divsi3.S                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/lasr.S                    
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/lasr.asm                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ldivmod.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ldivmod.asm               
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsl.S                    
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsl.asm                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsr.S                    
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsr.asm                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/lshrdi3.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/memmove.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/memmove.asm               
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/moddi3.S                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/modsi3.S                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/muldi3.S                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/mullu.S                   
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/mullu.asm                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/sourcery.S                
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch.asm                
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch16.S                
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch32.S                
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch8.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switchu8.S                
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/udivdi3.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S              
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/udivsi3.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uldiv.S                   
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uldiv.asm                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/umoddi3.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/umodsi3.S                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uread.S                   
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uread.asm                 
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uwrite.S                  
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uwrite.asm                
                     |   0
 {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf     
                     |   1 -
 MdePkg/MdePkg.dec                                                              
                     |   5 +
 MdePkg/MdePkg.dsc                                                              
                     |   3 +
 NetworkPkg/NetworkPkg.dsc                                                      
                     |   2 +-
 RedfishPkg/RedfishPkg.dsc                                                      
                     |   2 +-
 SecurityPkg/SecurityPkg.dsc                                                    
                     |   2 +-
 ShellPkg/ShellPkg.dsc                                                          
                     |   2 +-
 SignedCapsulePkg/SignedCapsulePkg.dsc                                          
                     |   2 +-
 
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
                   |  25 ----
 
StandaloneMmPkg/Library/StandaloneMmCoreEntryPointNull/StandaloneMmCoreEntryPointNull.inf
           |  32 ++++++
 
StandaloneMmPkg/Library/StandaloneMmPeCoffExtraActionLib/StandaloneMmPeCoffExtraActionLib.inf
       |   3 +-
 StandaloneMmPkg/StandaloneMmPkg.dsc                                            
                     |  14 ++-
 StandaloneMmPkg/{StandaloneMmPkg.dsc => StandaloneMmPkg.dsc.orig}              
                     |  20 +++-
 UnitTestFrameworkPkg/UnitTestFrameworkPkgTarget.dsc.inc                        
                     |   2 +-
 103 files changed, 649 insertions(+), 122 deletions(-)
 rename {StandaloneMmPkg => ArmPkg}/Drivers/StandaloneMmCpu/EventHandle.c (100%)
 rename {StandaloneMmPkg => ArmPkg}/Drivers/StandaloneMmCpu/StandaloneMmCpu.c 
(100%)
 create mode 100644 ArmPkg/Library/MmuLib/MmuLib.c
 rename {StandaloneMmPkg => 
ArmPkg}/Library/StandaloneMmCoreEntryPoint/Arm/CreateHobList.c (100%)
 rename {StandaloneMmPkg => 
ArmPkg}/Library/StandaloneMmCoreEntryPoint/Arm/SetPermissions.c (100%)
 rename {StandaloneMmPkg => 
ArmPkg}/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMmCoreEntryPoint.c 
(100%)
 create mode 100644 MdePkg/Library/BaseMmuLibNull/BaseMmuLibNull.c
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memcmp_ms.c (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memcpy.c (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memcpy_ms.c (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memmove_ms.c (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memset.c (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memset_ms.c (100%)
 create mode 100644 
StandaloneMmPkg/Library/StandaloneMmCoreEntryPointNull/StandaloneMmCoreEntryPointNull.c
 rename {StandaloneMmPkg => ArmPkg}/Drivers/StandaloneMmCpu/StandaloneMmCpu.h 
(100%)
 rename {StandaloneMmPkg => ArmPkg}/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf 
(100%)
 delete mode 100644 ArmPkg/Include/Library/StandaloneMmMmuLib.h
 create mode 100644 ArmPkg/Library/MmuLib/BaseMmuLib.inf
 copy {StandaloneMmPkg => 
ArmPkg}/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf (84%)
 rename {ArmPkg/Library => BaseTools/Bin}/GccLto/liblto-aarch64.a (100%)
 rename {ArmPkg/Library => BaseTools/Bin}/GccLto/liblto-aarch64.s (100%)
 rename {ArmPkg/Library => BaseTools/Bin}/GccLto/liblto-arm.a (100%)
 rename {ArmPkg/Library => BaseTools/Bin}/GccLto/liblto-arm.s (100%)
 rename {ArmPkg/Include => MdePkg/Include/AArch64}/AsmMacroIoLibV8.h (100%)
 rename {ArmPkg/Include => MdePkg/Include/Arm}/AsmMacroIoLib.h (100%)
 create mode 100644 MdePkg/Include/Library/MmuLib.h
 create mode 100644 MdePkg/Library/BaseMmuLibNull/BaseMmuLibNull.inf
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/AArch64/Atomics.S 
(100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ashldi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ashrdi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/clzsi2.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ctzsi2.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/div.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/div.asm (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/divdi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/divsi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/lasr.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/lasr.asm (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ldivmod.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ldivmod.asm (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsl.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsl.asm (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsr.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsr.asm (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/lshrdi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/memmove.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/memmove.asm (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/moddi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/modsi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/muldi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/mullu.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/mullu.asm (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/sourcery.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch.asm (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch16.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch32.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch8.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switchu8.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/udivdi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/udivsi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uldiv.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uldiv.asm (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/umoddi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/umodsi3.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uread.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uread.asm (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uwrite.S (100%)
 rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uwrite.asm (100%)
 rename {ArmPkg => 
MdePkg}/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf (95%)
 create mode 100644 
StandaloneMmPkg/Library/StandaloneMmCoreEntryPointNull/StandaloneMmCoreEntryPointNull.inf
 copy StandaloneMmPkg/{StandaloneMmPkg.dsc => StandaloneMmPkg.dsc.orig} (90%)

-- 
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#83612): https://edk2.groups.io/g/devel/message/83612
Mute This Topic: https://groups.io/mt/86971549/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to