[edk2-devel] [staging/LoongArch PATCH v1 00/33] Add a new architecture

Chao Li posted 33 patches 2 years, 2 months ago
Only 12 patches received!
.azurepipelines/Ubuntu-GCC5.yml               |   3 +-
.pytool/CISettings.py                         |   5 +-
.pytool/Plugin/SpellCheck/cspell.base.yaml    |   4 +-
...gcc_loongarch64_unknown_linux_ext_dep.yaml |  22 ++
BaseTools/Conf/tools_def.template             |  43 ++-
.../LinuxGcc5ToolChain/LinuxGcc5ToolChain.py  |  31 +++
BaseTools/Source/C/Common/BasePeCoff.c        |  15 +-
BaseTools/Source/C/Common/PeCoffLoaderEx.c    |  76 ++++++
BaseTools/Source/C/GNUmakefile                |   3 +
BaseTools/Source/C/GenFv/GenFvInternalLib.c   | 128 ++++++++-
BaseTools/Source/C/GenFw/Elf64Convert.c       | 153 ++++++++++-
BaseTools/Source/C/GenFw/elf_common.h         |  58 ++++
.../C/Include/IndustryStandard/PeImage.h      |  57 ++--
.../C/Include/LoongArch64/ProcessorBind.h     |  80 ++++++
BaseTools/Source/Python/Common/DataType.py    |  21 +-
.../Source/Python/UPT/Library/DataType.py     |  24 +-
BaseTools/Source/Python/build/buildoptions.py |   3 +-
CryptoPkg/CryptoPkg.dsc                       |   3 +-
.../Library/BaseCryptLib/BaseCryptLib.inf     |   6 +-
.../Library/BaseCryptLib/RuntimeCryptLib.inf  |   4 +
.../BaseCryptLibNull/BaseCryptLibNull.inf     |   3 +-
.../BaseCryptLibOnProtocolPpi/DxeCryptLib.inf |   3 +-
.../BaseCryptLibOnProtocolPpi/PeiCryptLib.inf |   3 +-
CryptoPkg/Library/Include/CrtLibSupport.h     |   3 +-
CryptoPkg/Library/OpensslLib/OpensslLib.inf   |   2 +
.../Library/OpensslLib/OpensslLibCrypto.inf   |   2 +
CryptoPkg/Library/TlsLib/TlsLib.inf           |   3 +-
CryptoPkg/Library/TlsLibNull/TlsLibNull.inf   |   3 +-
FatPkg/FatPkg.dsc                             |   3 +-
FmpDevicePkg/FmpDevicePkg.dsc                 |   3 +-
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf       |   6 +-
.../Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c |  61 +++++
MdeModulePkg/Logo/Logo.inf                    |   3 +-
MdeModulePkg/MdeModulePkg.dsc                 |   4 +-
.../CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf   |   9 +-
MdePkg/Include/IndustryStandard/Dhcp.h        |  41 +--
MdePkg/Include/IndustryStandard/PeImage.h     |   9 +
MdePkg/Include/Library/BaseLib.h              |  24 ++
MdePkg/Include/LoongArch64/ProcessorBind.h    | 121 +++++++++
MdePkg/Include/Protocol/DebugSupport.h        |  65 ++++-
MdePkg/Include/Protocol/PxeBaseCode.h         |   3 +
MdePkg/Include/Uefi/UefiBaseType.h            |  14 +
MdePkg/Include/Uefi/UefiSpec.h                |  16 +-
.../BaseCacheMaintenanceLib.inf               |   4 +
.../BaseCacheMaintenanceLib/LoongArchCache.c  | 253 ++++++++++++++++++
MdePkg/Library/BaseCpuLib/BaseCpuLib.inf      |   7 +-
MdePkg/Library/BaseCpuLib/BaseCpuLib.uni      |   5 +-
.../BaseCpuLib/LoongArch/CpuFlushTlb.S        |  15 ++
.../Library/BaseCpuLib/LoongArch/CpuSleep.S   |  15 ++
.../BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf |  10 +-
MdePkg/Library/BaseIoLibIntrinsic/IoLibNoIo.c |   3 +-
MdePkg/Library/BaseLib/BaseLib.inf            |  13 +
.../BaseLib/LoongArch64/CpuBreakpoint.S       |  24 ++
MdePkg/Library/BaseLib/LoongArch64/CpuPause.S |  31 +++
.../BaseLib/LoongArch64/DisableInterrupts.S   |  21 ++
.../BaseLib/LoongArch64/EnableInterrupts.S    |  21 ++
.../BaseLib/LoongArch64/GetInterruptState.S   |  35 +++
.../BaseLib/LoongArch64/InternalSwitchStack.c |  58 ++++
.../Library/BaseLib/LoongArch64/MemoryFence.S |  19 ++
.../BaseLib/LoongArch64/SetJumpLongJump.S     |  49 ++++
.../Library/BaseLib/LoongArch64/SwitchStack.S |  39 +++
.../Library/BaseLib/LoongArch64/Unaligned.c   | 244 +++++++++++++++++
MdePkg/Library/BasePeCoffLib/BasePeCoff.c     |   3 +-
.../Library/BasePeCoffLib/BasePeCoffLib.inf   |   5 +
.../Library/BasePeCoffLib/BasePeCoffLib.uni   |   2 +
.../BasePeCoffLib/LoongArch/PeCoffLoaderEx.c  | 132 +++++++++
.../Library/BaseSafeIntLib/BaseSafeIntLib.inf |   9 +-
.../BaseSynchronizationLib.inf                |   5 +
.../LoongArch64/Synchronization.c             | 239 +++++++++++++++++
.../Library/DxeServicesLib/DxeServicesLib.inf |   4 +-
MdePkg/MdePkg.dec                             |   4 +
MdePkg/MdePkg.dsc                             |   3 +-
NetworkPkg/HttpBootDxe/HttpBootDhcp4.h        |   3 +
NetworkPkg/Network.dsc.inc                    |   3 +-
NetworkPkg/NetworkPkg.dsc                     |   3 +-
ReadMe.md                                     |  17 ++
SecurityPkg/SecurityPkg.dsc                   |   3 +-
ShellPkg/ShellPkg.dsc                         |   3 +-
UnitTestFrameworkPkg/UnitTestFrameworkPkg.dsc |   3 +-
79 files changed, 2340 insertions(+), 110 deletions(-)
create mode 100644 BaseTools/Bin/gcc_loongarch64_unknown_linux_ext_dep.yaml
create mode 100644 BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h
create mode 100644 MdeModulePkg/Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c
create mode 100644 MdePkg/Include/LoongArch64/ProcessorBind.h
create mode 100644 MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCache.c
create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/CpuFlushTlb.S
create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/CpuSleep.S
create mode 100644 MdePkg/Library/BaseLib/LoongArch64/CpuBreakpoint.S
create mode 100644 MdePkg/Library/BaseLib/LoongArch64/CpuPause.S
create mode 100644 MdePkg/Library/BaseLib/LoongArch64/DisableInterrupts.S
create mode 100644 MdePkg/Library/BaseLib/LoongArch64/EnableInterrupts.S
create mode 100644 MdePkg/Library/BaseLib/LoongArch64/GetInterruptState.S
create mode 100644 MdePkg/Library/BaseLib/LoongArch64/InternalSwitchStack.c
create mode 100644 MdePkg/Library/BaseLib/LoongArch64/MemoryFence.S
create mode 100644 MdePkg/Library/BaseLib/LoongArch64/SetJumpLongJump.S
create mode 100644 MdePkg/Library/BaseLib/LoongArch64/SwitchStack.S
create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Unaligned.c
create mode 100644 MdePkg/Library/BasePeCoffLib/LoongArch/PeCoffLoaderEx.c
create mode 100644 MdePkg/Library/BaseSynchronizationLib/LoongArch64/Synchronization.c
create mode 100644 ReadMe.md
[edk2-devel] [staging/LoongArch PATCH v1 00/33] Add a new architecture
Posted by Chao Li 2 years, 2 months ago
This new Arch should go through the EDK II Code First Process and then
the USWG can review our ECR. This commit contains 34 patchs, patch 0 is
the cover, patch 33 is Readme modification, and the others are the new
Arch support.

Modified modules: FatPkg, FmpDevicePkg, NetworkPkg,
NetworkPkg/HttpBootDxe, CryptoPkg, MdePkg/Include, SecurityPkg,
ShellPkg, UnitTestFrameworkPkg, MdePkg/DxeServicesLib, MdeModulePkg,
.python/SpellCheck, BaseTools, .azurepipelines, .pytool, MdePkg,
MdeModulePkg.


Chao Li (33):
  FatPkg: Add LOONGARCH64 architecture for EDK2 CI.
  FmpDevicePkg: Add LOONGARCH64 architecture for EDK2 CI.
  NetworkPkg: Add LOONGARCH64 architecture for EDK2 CI.
  NetworkPkg/HttpBootDxe: Add LOONGARCH64 architecture for EDK2 CI.
  CryptoPkg: Add LOONGARCH64 architecture for EDK2 CI.
  MdePkg/Include: Add LOONGARCH related definitions EDK2 CI.
  SecurityPkg: Add LOONGARCH64 architecture for EDK2 CI.
  ShellPkg: Add LOONGARCH64 architecture for EDK2 CI.
  UnitTestFrameworkPkg: Add LOONGARCH64 architecture for EDK2 CI.
  MdePkg/DxeServicesLib: Add LOONGARCH64 architecture
  MdeModulePkg: Use LockBoxNullLib for LOONGARCH64
  .python/SpellCheck: Add "Loongson" and "LOONGARCH" to "words" section
  BaseTools: BaseTools changes for LoongArch platform.
  BaseTools: BaseTools changes for LoongArch platform.
  BaseTools: BaseTools changes for LoongArch platform.
  BaseTools: Enable LoongArch64 architecture for LoongArch64 EDK2 CI.
  .azurepipelines: Add LoongArch64 architecture on LoongArch64 EDK2 CI.
  .pytool: Add LoongArch64 architecture on LoongArch64 EDK2 CI.
  MdePkg: Add LoongArch LOONGARCH64 binding
  MdePkg/Include: LoongArch definitions.
  MdePkg/BaseLib: BaseLib for LOONGARCH64 architecture.
  MdePkg/BaseCacheMaintenanceLib: LoongArch cache maintenance
    implementation.
  MdePkg/BaseIoLibIntrinsic: IoLibNoIo for LoongArch architecture.
  MdePkg/BasePeCoff: Add LoongArch PE/Coff related code.
  MdePkg/BaseCpuLib: LoongArch Base CPU library implementation.
  MdePkg/BaseSynchronizationLib: LoongArch cache related code.
  MdePkg/BaseSafeIntLib: Add LoongArch64 architecture for
    BaseSafeIntLib.
  MdeModulePkg/Logo: Add LoongArch64 architecture.
  MdeModulePkg/CapsuleRuntimeDxe: Add LoongArch64 architecture.
  MdeModulePkg/DxeIplPeim : LoongArch DxeIPL implementation.
  NetworkPkg: Add LoongArch64 architecture.
  BaseTools: Add LoongArch64 binding.
  Readme: Update the readme

 .azurepipelines/Ubuntu-GCC5.yml               |   3 +-
 .pytool/CISettings.py                         |   5 +-
 .pytool/Plugin/SpellCheck/cspell.base.yaml    |   4 +-
 ...gcc_loongarch64_unknown_linux_ext_dep.yaml |  22 ++
 BaseTools/Conf/tools_def.template             |  43 ++-
 .../LinuxGcc5ToolChain/LinuxGcc5ToolChain.py  |  31 +++
 BaseTools/Source/C/Common/BasePeCoff.c        |  15 +-
 BaseTools/Source/C/Common/PeCoffLoaderEx.c    |  76 ++++++
 BaseTools/Source/C/GNUmakefile                |   3 +
 BaseTools/Source/C/GenFv/GenFvInternalLib.c   | 128 ++++++++-
 BaseTools/Source/C/GenFw/Elf64Convert.c       | 153 ++++++++++-
 BaseTools/Source/C/GenFw/elf_common.h         |  58 ++++
 .../C/Include/IndustryStandard/PeImage.h      |  57 ++--
 .../C/Include/LoongArch64/ProcessorBind.h     |  80 ++++++
 BaseTools/Source/Python/Common/DataType.py    |  21 +-
 .../Source/Python/UPT/Library/DataType.py     |  24 +-
 BaseTools/Source/Python/build/buildoptions.py |   3 +-
 CryptoPkg/CryptoPkg.dsc                       |   3 +-
 .../Library/BaseCryptLib/BaseCryptLib.inf     |   6 +-
 .../Library/BaseCryptLib/RuntimeCryptLib.inf  |   4 +
 .../BaseCryptLibNull/BaseCryptLibNull.inf     |   3 +-
 .../BaseCryptLibOnProtocolPpi/DxeCryptLib.inf |   3 +-
 .../BaseCryptLibOnProtocolPpi/PeiCryptLib.inf |   3 +-
 CryptoPkg/Library/Include/CrtLibSupport.h     |   3 +-
 CryptoPkg/Library/OpensslLib/OpensslLib.inf   |   2 +
 .../Library/OpensslLib/OpensslLibCrypto.inf   |   2 +
 CryptoPkg/Library/TlsLib/TlsLib.inf           |   3 +-
 CryptoPkg/Library/TlsLibNull/TlsLibNull.inf   |   3 +-
 FatPkg/FatPkg.dsc                             |   3 +-
 FmpDevicePkg/FmpDevicePkg.dsc                 |   3 +-
 MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf       |   6 +-
 .../Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c |  61 +++++
 MdeModulePkg/Logo/Logo.inf                    |   3 +-
 MdeModulePkg/MdeModulePkg.dsc                 |   4 +-
 .../CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf   |   9 +-
 MdePkg/Include/IndustryStandard/Dhcp.h        |  41 +--
 MdePkg/Include/IndustryStandard/PeImage.h     |   9 +
 MdePkg/Include/Library/BaseLib.h              |  24 ++
 MdePkg/Include/LoongArch64/ProcessorBind.h    | 121 +++++++++
 MdePkg/Include/Protocol/DebugSupport.h        |  65 ++++-
 MdePkg/Include/Protocol/PxeBaseCode.h         |   3 +
 MdePkg/Include/Uefi/UefiBaseType.h            |  14 +
 MdePkg/Include/Uefi/UefiSpec.h                |  16 +-
 .../BaseCacheMaintenanceLib.inf               |   4 +
 .../BaseCacheMaintenanceLib/LoongArchCache.c  | 253 ++++++++++++++++++
 MdePkg/Library/BaseCpuLib/BaseCpuLib.inf      |   7 +-
 MdePkg/Library/BaseCpuLib/BaseCpuLib.uni      |   5 +-
 .../BaseCpuLib/LoongArch/CpuFlushTlb.S        |  15 ++
 .../Library/BaseCpuLib/LoongArch/CpuSleep.S   |  15 ++
 .../BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf |  10 +-
 MdePkg/Library/BaseIoLibIntrinsic/IoLibNoIo.c |   3 +-
 MdePkg/Library/BaseLib/BaseLib.inf            |  13 +
 .../BaseLib/LoongArch64/CpuBreakpoint.S       |  24 ++
 MdePkg/Library/BaseLib/LoongArch64/CpuPause.S |  31 +++
 .../BaseLib/LoongArch64/DisableInterrupts.S   |  21 ++
 .../BaseLib/LoongArch64/EnableInterrupts.S    |  21 ++
 .../BaseLib/LoongArch64/GetInterruptState.S   |  35 +++
 .../BaseLib/LoongArch64/InternalSwitchStack.c |  58 ++++
 .../Library/BaseLib/LoongArch64/MemoryFence.S |  19 ++
 .../BaseLib/LoongArch64/SetJumpLongJump.S     |  49 ++++
 .../Library/BaseLib/LoongArch64/SwitchStack.S |  39 +++
 .../Library/BaseLib/LoongArch64/Unaligned.c   | 244 +++++++++++++++++
 MdePkg/Library/BasePeCoffLib/BasePeCoff.c     |   3 +-
 .../Library/BasePeCoffLib/BasePeCoffLib.inf   |   5 +
 .../Library/BasePeCoffLib/BasePeCoffLib.uni   |   2 +
 .../BasePeCoffLib/LoongArch/PeCoffLoaderEx.c  | 132 +++++++++
 .../Library/BaseSafeIntLib/BaseSafeIntLib.inf |   9 +-
 .../BaseSynchronizationLib.inf                |   5 +
 .../LoongArch64/Synchronization.c             | 239 +++++++++++++++++
 .../Library/DxeServicesLib/DxeServicesLib.inf |   4 +-
 MdePkg/MdePkg.dec                             |   4 +
 MdePkg/MdePkg.dsc                             |   3 +-
 NetworkPkg/HttpBootDxe/HttpBootDhcp4.h        |   3 +
 NetworkPkg/Network.dsc.inc                    |   3 +-
 NetworkPkg/NetworkPkg.dsc                     |   3 +-
 ReadMe.md                                     |  17 ++
 SecurityPkg/SecurityPkg.dsc                   |   3 +-
 ShellPkg/ShellPkg.dsc                         |   3 +-
 UnitTestFrameworkPkg/UnitTestFrameworkPkg.dsc |   3 +-
 79 files changed, 2340 insertions(+), 110 deletions(-)
 create mode 100644 BaseTools/Bin/gcc_loongarch64_unknown_linux_ext_dep.yaml
 create mode 100644 BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h
 create mode 100644 MdeModulePkg/Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c
 create mode 100644 MdePkg/Include/LoongArch64/ProcessorBind.h
 create mode 100644 MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCache.c
 create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/CpuFlushTlb.S
 create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/CpuSleep.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/CpuBreakpoint.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/CpuPause.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/DisableInterrupts.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/EnableInterrupts.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/GetInterruptState.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/InternalSwitchStack.c
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/MemoryFence.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/SetJumpLongJump.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/SwitchStack.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Unaligned.c
 create mode 100644 MdePkg/Library/BasePeCoffLib/LoongArch/PeCoffLoaderEx.c
 create mode 100644 MdePkg/Library/BaseSynchronizationLib/LoongArch64/Synchronization.c
 create mode 100644 ReadMe.md

-- 
2.27.0



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86481): https://edk2.groups.io/g/devel/message/86481
Mute This Topic: https://groups.io/mt/89016745/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-