From: "xianglai" <lixianglai@loongson.cn>
To: devel@edk2.groups.io
Cc: quic_llindhol@quicinc.com, michael.d.kinney@intel.com,
kraxel@redhat.com, ardb@kernel.org, maobibo@loongson.cn
Subject: [edk2-platforms][PATCH V3 00/16] Platform: Add Loongson support.
Date: Fri, 14 Oct 2022 12:01:13 +0800 [thread overview]
Message-ID: <cover.1665719826.git.lixianglai@loongson.cn> (raw)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4054
The uploaded code generates firmware to support Linux launching on the LoongArch platform under qemu,
So it will run in a virtual machine.
LoongArch is the general processor architecture of Loongson.
You can get the latest LoongArch documents or LoongArch tools at https://github.com/loongson/.
You can also view the code through the Loongson community.
The edk2 code in Loongson community:
https://github.com/loongson/edk2/tree/LoongArch
The edk2-platform code in Loonson community:
https://github.com/loongson/edk2-platforms
The qemu code in Loongson community:
https://gitlab.com/qemu-project/qemu.git
The LoongArch Documentation in Loongson community:
https://github.com/loongson/LoongArch-Documentation/tree/main/docs
The all patches at:
https://github.com/loongson/edk2-platforms/tree/devel-LoongArch-patch
v2 changes:
- Remove the inline assembly from StableTimerLib.
- troubleshoot TAB strings, convert TAB characters to spaces.
- remove smm related code, loongarch has no smm mode.
v3 changes:
- delete ExtractHandler related code.
- Boot UEFI with low 256M memory.
- Modify common interrupt handling.
xianglai li (16):
Platform/Loongson: Add Serial Port library
Platform/Loongson: Support SEC And Add Readme.md
Platform/Loongson: Add PeiServicesTablePointerLib.
Platform/Loongson: Add QemuFwCfgLib.
Platform/Loongson: Add MmuLib.
Platform/Loongson: Add StableTimerLib.
Platform/Loongson: Support PEI phase.
Platform/Loongson: Add CPU DXE driver.
Platform/Loongson: Add PciCpuIoDxe driver.
Platform/Loongson: Add timer Dxe driver.
Platform/Loongson: Add RealTime Clock lib.
Platform/Loongson: Add Platform Boot Manager Lib.
Platform/Loongson: Add Reset System Lib.
Platform/Loongson: Support Dxe
Platform/Loongson: Add QemuFlashFvbServicesRuntimeDxe driver.
Platform/Loongson: Support for saving variables to flash.
Maintainers.txt | 4 +
.../LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.c | 382 ++++++
.../LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.h | 151 +++
.../Drivers/CpuDxe/CpuDxe.inf | 56 +
.../Drivers/CpuDxe/LoongArch64/Exception.c | 338 +++++
.../Drivers/CpuDxe/LoongArch64/Fpu.S | 67 +
.../Drivers/CpuDxe/LoongArch64/LoongArch.S | 292 +++++
.../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c | 548 ++++++++
.../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.h | 219 ++++
.../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf | 40 +
.../QemuFlashFvbServicesRuntimeDxe/FvbInfo.c | 115 ++
.../FvbServicesRuntimeDxe.inf | 73 ++
.../FwBlockService.c | 1158 +++++++++++++++++
.../FwBlockService.h | 178 +++
.../FwBlockServiceDxe.c | 152 +++
.../QemuFlash.c | 251 ++++
.../QemuFlash.h | 86 ++
.../QemuFlashDxe.c | 21 +
.../Drivers/StableTimerDxe/Timer.c | 405 ++++++
.../Drivers/StableTimerDxe/Timer.h | 165 +++
.../Drivers/StableTimerDxe/TimerDxe.inf | 40 +
.../Include/IndustryStandard/QemuFwCfg.h | 95 ++
.../LoongArchQemuPkg/Include/Library/Cpu.h | 387 ++++++
.../LoongArchQemuPkg/Include/Library/MmuLib.h | 85 ++
.../Include/Library/QemuFwCfgLib.h | 193 +++
.../Include/Library/StableTimer.h | 43 +
.../Include/LoongArchAsmMacro.h | 23 +
.../Include/LoongArchQemuPlatform.h | 97 ++
.../LsRealTimeClockLib/LsRealTimeClock.h | 41 +
.../LsRealTimeClockLib/LsRealTimeClockLib.c | 343 +++++
.../LsRealTimeClockLib/LsRealTimeClockLib.inf | 41 +
.../LoongArchQemuPkg/Library/MmuLib/Mmu.S | 35 +
.../Library/MmuLib/MmuBaseLib.inf | 35 +
.../Library/MmuLib/MmuBaseLibPei.inf | 42 +
.../Library/MmuLib/MmuLibCore.c | 908 +++++++++++++
.../Library/MmuLib/MmuLibCore.h | 39 +
.../Library/MmuLib/MmuLibCorePei.c | 236 ++++
.../LoongArchQemuPkg/Library/MmuLib/mmu.h | 104 ++
.../LoongArchQemuPkg/Library/MmuLib/page.h | 267 ++++
.../LoongArchQemuPkg/Library/MmuLib/pte.h | 57 +
.../PeiServicesTablePointer.c | 78 ++
.../PeiServicesTablePointerLib.inf | 32 +
.../PlatformBootManagerLib/PlatformBm.c | 760 +++++++++++
.../PlatformBootManagerLib/PlatformBm.h | 112 ++
.../PlatformBootManagerLib.inf | 78 ++
.../PlatformBootManagerLib/QemuKernel.c | 81 ++
.../QemuFwCfgLib/QemuFwCfgLibInternal.h | 64 +
.../Library/QemuFwCfgLib/QemuFwCfgPei.c | 119 ++
.../Library/QemuFwCfgLib/QemuFwCfgPeiLib.c | 477 +++++++
.../Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf | 44 +
.../BaseResetSystemAcpiGed.c | 155 +++
.../BaseResetSystemAcpiGedLib.inf | 42 +
.../DxeResetSystemAcpiGed.c | 270 ++++
.../DxeResetSystemAcpiGedLib.inf | 47 +
.../ResetSystemAcpiLib/ResetSystemAcpiGed.c | 128 ++
.../ResetSystemAcpiLib/ResetSystemAcpiGed.h | 20 +
.../Library/SerialPortLib/SerialPortLib.c | 612 +++++++++
.../Library/SerialPortLib/SerialPortLib.inf | 36 +
.../Library/StableTimerLib/Count.S | 35 +
.../Library/StableTimerLib/TimerLib.c | 242 ++++
.../Library/StableTimerLib/TimerLib.inf | 28 +
.../Loongson/LoongArchQemuPkg/Loongson.dec | 76 ++
.../Loongson/LoongArchQemuPkg/Loongson.dsc | 606 +++++++++
.../Loongson/LoongArchQemuPkg/Loongson.fdf | 361 +++++
.../LoongArchQemuPkg/Loongson.fdf.inc | 74 ++
.../LoongArchQemuPkg/PlatformPei/Fv.c | 61 +
.../LoongArchQemuPkg/PlatformPei/MemDetect.c | 108 ++
.../LoongArchQemuPkg/PlatformPei/Platform.c | 264 ++++
.../LoongArchQemuPkg/PlatformPei/Platform.h | 87 ++
.../PlatformPei/PlatformPei.inf | 71 +
Platform/Loongson/LoongArchQemuPkg/Readme.md | 59 +
.../LoongArchQemuPkg/Sec/LoongArch64/Start.S | 76 ++
.../Loongson/LoongArchQemuPkg/Sec/SecMain.c | 510 ++++++++
.../Loongson/LoongArchQemuPkg/Sec/SecMain.inf | 47 +
.../LoongArchQemuPkg/VarStore.fdf.inc | 64 +
Readme.md | 9 +
76 files changed, 13745 insertions(+)
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/LoongArch64/Exception.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/LoongArch64/Fpu.S
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/LoongArch64/LoongArch.S
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntimeDxe/FvbInfo.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntimeDxe/FwBlockService.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceDxe.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/StableTimerDxe/Timer.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/StableTimerDxe/Timer.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/StableTimerDxe/TimerDxe.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/IndustryStandard/QemuFwCfg.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Library/Cpu.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Library/MmuLib.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Library/QemuFwCfgLib.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Library/StableTimer.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/LoongArchAsmMacro.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/LoongArchQemuPlatform.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/LsRealTimeClockLib/LsRealTimeClock.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/LsRealTimeClockLib/LsRealTimeClockLib.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/LsRealTimeClockLib/LsRealTimeClockLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/Mmu.S
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuBaseLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuBaseLibPei.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuLibCore.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuLibCore.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuLibCorePei.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/mmu.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/page.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/pte.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointer.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PlatformBootManagerLib/PlatformBm.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PlatformBootManagerLib/PlatformBm.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PlatformBootManagerLib/QemuKernel.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgLibInternal.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGed.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGedLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGed.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/ResetSystemAcpiGed.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/ResetSystemAcpiGed.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/SerialPortLib/SerialPortLib.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/SerialPortLib/SerialPortLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/StableTimerLib/Count.S
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/StableTimerLib/TimerLib.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/StableTimerLib/TimerLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.dec
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.dsc
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.fdf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc
create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/Fv.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/MemDetect.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/Platform.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/Platform.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Readme.md
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/LoongArch64/Start.S
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/VarStore.fdf.inc
--
2.31.1
next reply other threads:[~2022-10-14 4:01 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-14 4:01 xianglai [this message]
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 01/16] Platform/Loongson: Add Serial Port library xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 02/16] Platform/Loongson: Support SEC And Add Readme.md xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 03/16] Platform/Loongson: Add PeiServicesTablePointerLib xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 04/16] Platform/Loongson: Add QemuFwCfgLib xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 05/16] Platform/Loongson: Add MmuLib xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 06/16] Platform/Loongson: Add StableTimerLib xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 07/16] Platform/Loongson: Support PEI phase xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 08/16] Platform/Loongson: Add CPU DXE driver xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 09/16] Platform/Loongson: Add PciCpuIoDxe driver xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 10/16] Platform/Loongson: Add timer Dxe driver xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 11/16] Platform/Loongson: Add RealTime Clock lib xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 12/16] Platform/Loongson: Add Platform Boot Manager Lib xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 13/16] Platform/Loongson: Add Reset System Lib xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 14/16] Platform/Loongson: Support Dxe xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 15/16] Platform/Loongson: Add QemuFlashFvbServicesRuntimeDxe driver xianglai
2022-10-17 11:00 ` Ard Biesheuvel
2022-10-17 12:56 ` xianglai
2022-10-18 8:47 ` xianglai
2022-10-14 4:01 ` [edk2-platforms][PATCH V3 16/16] Platform/Loongson: Support for saving variables to flash xianglai
-- strict thread matches above, loose matches on Subject: below --
2022-09-29 7:07 [edk2-platforms][PATCH V3 00/16] Platform: Add Loongson support xianglai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1665719826.git.lixianglai@loongson.cn \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox