From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from loongson.cn (loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web11.5265.1646210694731470308 for ; Wed, 02 Mar 2022 00:45:08 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: loongson.cn, ip: 114.242.206.163, mailfrom: lixianglai@loongson.cn) Received: from localhost.localdomain (unknown [10.2.5.185]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9Dxn89_Lh9i7TkBAA--.6283S2; Wed, 02 Mar 2022 16:44:47 +0800 (CST) From: "xianglai" To: devel@edk2.groups.io Subject: [edk2-platforms][PATCH V1 00/15] Platform: Add Loongson support Date: Wed, 2 Mar 2022 03:44:32 -0500 Message-Id: <20220302084447.2991355-1-lixianglai@loongson.cn> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 X-CM-TRANSID: AQAAf9Dxn89_Lh9i7TkBAA--.6283S2 X-Coremail-Antispam: 1UD129KBjvJXoW3Zw17Jry3KFy3GFykuF1DAwb_yoWkGFyfpr 4Uu3WfKr1UJFW2vws3ta4UWF4Yy3Z5KrZ8GrsI9r13uas7Xwn8C34jvFWrArW3Za47try0 q3yvgw4UuFn8WFJanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnUUvcSsGvfC2KfnxnUUI43ZEXa7xR_UUUUUUUUU== X-CM-SenderInfo: 5ol0xt5qjotxo6or00hjvr0hdfq/ Content-Transfer-Encoding: 8bit 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/. xianglai li (15): 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 BpiLib. 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 .../LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.c | 382 +++++++++ .../LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.h | 153 ++++ .../Drivers/CpuDxe/CpuDxe.inf | 56 ++ .../Drivers/CpuDxe/LoongArch64/Exception.c | 337 ++++++++ .../Drivers/CpuDxe/LoongArch64/Fpu.S | 67 ++ .../Drivers/CpuDxe/LoongArch64/LoongArch.S | 288 +++++++ .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c | 548 ++++++++++++ .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.h | 219 +++++ .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf | 40 + .../Drivers/StableTimerDxe/Timer.c | 405 +++++++++ .../Drivers/StableTimerDxe/Timer.h | 166 ++++ .../Drivers/StableTimerDxe/TimerDxe.inf | 40 + .../Include/IndustryStandard/QemuFwCfg.h | 95 +++ .../LoongArchQemuPkg/Include/Library/Bpi.h | 77 ++ .../LoongArchQemuPkg/Include/Library/Cpu.h | 344 ++++++++ .../LoongArchQemuPkg/Include/Library/MmuLib.h | 85 ++ .../Include/Library/QemuFwCfgLib.h | 179 ++++ .../Include/Library/StableTimer.h | 42 + .../Include/LoongArchAsmMacro.h | 23 + .../Include/LoongArchQemuPlatform.h | 103 +++ .../LoongArchQemuPkg/Library/BpiLib/Bpi.c | 492 +++++++++++ .../Library/BpiLib/BpiLib.inf | 38 + .../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 | 45 + .../Library/MmuLib/MmuLibCore.c | 790 ++++++++++++++++++ .../Library/MmuLib/MmuLibCore.h | 39 + .../Library/MmuLib/MmuLibCorePei.c | 237 ++++++ .../LoongArchQemuPkg/Library/MmuLib/mmu.h | 101 +++ .../LoongArchQemuPkg/Library/MmuLib/page.h | 267 ++++++ .../LoongArchQemuPkg/Library/MmuLib/pte.h | 57 ++ .../PeiServicesTablePointer.c | 78 ++ .../PeiServicesTablePointerLib.inf | 32 + .../PlatformBootManagerLib/PlatformBm.c | 761 +++++++++++++++++ .../PlatformBootManagerLib/PlatformBm.h | 126 +++ .../PlatformBootManagerLib.inf | 78 ++ .../PlatformBootManagerLib/QemuKernel.c | 449 ++++++++++ .../Library/QemuFwCfgLib/QemuFwCfg.c | 119 +++ .../Library/QemuFwCfgLib/QemuFwCfgLib.c | 477 +++++++++++ .../Library/QemuFwCfgLib/QemuFwCfgLib.inf | 44 + .../QemuFwCfgLib/QemuFwCfgLibInternal.h | 64 ++ .../Library/ResetSystemLib/ResetSystemLib.c | 155 ++++ .../Library/ResetSystemLib/ResetSystemLib.inf | 40 + .../Library/SerialPortLib/SerialPortLib.c | 614 ++++++++++++++ .../Library/SerialPortLib/SerialPortLib.inf | 36 + .../Library/StableTimerLib/Count.S | 26 + .../Library/StableTimerLib/TimerLib.c | 262 ++++++ .../Library/StableTimerLib/TimerLib.inf | 28 + .../Loongson/LoongArchQemuPkg/Loongson.dec | 72 ++ .../Loongson/LoongArchQemuPkg/Loongson.dsc | 578 +++++++++++++ .../Loongson/LoongArchQemuPkg/Loongson.fdf | 345 ++++++++ .../LoongArchQemuPkg/Loongson.fdf.inc | 62 ++ .../LoongArchQemuPkg/PlatformPei/Fv.c | 61 ++ .../LoongArchQemuPkg/PlatformPei/MemDetect.c | 116 +++ .../LoongArchQemuPkg/PlatformPei/Platform.c | 264 ++++++ .../LoongArchQemuPkg/PlatformPei/Platform.h | 87 ++ .../PlatformPei/PlatformPei.inf | 72 ++ Platform/Loongson/LoongArchQemuPkg/Readme.md | 53 ++ .../LoongArchQemuPkg/Sec/LoongArch64/Start.S | 76 ++ .../Loongson/LoongArchQemuPkg/Sec/SecMain.c | 510 +++++++++++ .../Loongson/LoongArchQemuPkg/Sec/SecMain.inf | 49 ++ .../LoongArchQemuPkg/VarStore.fdf.inc | 64 ++ Readme.md | 9 + 66 files changed, 12017 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/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/Bpi.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/BpiLib/Bpi.c create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/BpiLib/BpiLib.inf 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/QemuFwCfg.c create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/QemuFwCfgLib/QemuFwCfgLibInternal.h create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemLib/ResetSystemLib.c create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemLib/ResetSystemLib.inf 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.27.0