For the series, Acked-by: Sunil V L <suni...@ventanamicro.com> On Fri, Oct 13, 2023 at 11:01:09AM +0800, caiyuqing...@163.com wrote: > From: caiyuqing379 <caiyuqing...@outlook.com> > > Description: > Deploy EDK2 to run on 64-core CPU under RISC-V architecture, and > successfully boot to OS. > Implementation can be seen at: > > https://github.com/AII-SDU/edk2-platforms/tree/devel-Sophgo/SG2042Pkg/Platform/Sophgo. > > Current status: > 1) Adopted the scheme of separating OpenSBI and EDK2. It follows PEI less > design. > 2) The boot flow is: ZSBL + FSBL + OpenSBI + EDK2 + GRUB2 + Linux OS. > ZSBL initializes DDR and loads OpenSBI and EDK2 into memory from the SD > card. > Boot Linux from SD Card, NVMe SSD. > 3) Clang toolchain support > Build the port using the CLANGDWARF toolchain and the built binary can > boot Linux OS. > 4) Milk-V Pioneer board support > The latest firmware type of opensbi provided by Sophgo is replaced from > fw_jump.bin > to fw_dynamic.bin. Currently, Sophgo/SG2042_EVB_Board has been tested > and proven > to be compatible with Milk-V Pioneer board. > > Work in progress: > 1) Add PCIe driver support > Sophgo's engineer have added PCIe drivers, NVMe SSD over PCIe has been > tested on EVB > and Milk-V with no problems, and other PCIe devices are doing > workaround. The PCIe > driver should be upstreamed by Sophgo after completion of this patch > series submission. > 4) Enable MMU > Currently, set PcdCpuRiscVMmuMaxSatpMode to bare mode to avoid memory > map issues. > > Revision History: > Patch v5: > This patch series provides the changes: > 1) Dropped PlatformUpdateMmuDxe patch. > We tested Tuan's patch and currently set PcdCpuRiscVMmuMaxSatpMode to > bare mode. > 2) Currently add memory nodes to zsbl's code, which makes the memory > node's in the > dt reverse-ordered by address. So add only lowest memory node in SEC > module. > > Patch v4: > The patch series can be seen at: > https://edk2.groups.io/g/devel/message/108756 > (Between message 108756 and message 108764, total of nine patches) > The patch series provides the changes: > 1) The patch 3&4 fix INF_VERSION to 1.27. > 2) Some of the code in patch 3&4 is based on the open source code > provided by Sophgo, > which is licensed under BDS-3. The patch 3&4 change license from BDS-3 > to BDS-2 by > confirming with Sophgo. > 3) Add comments to the patch 5 indicates that OpenSBI 1.3/1.3.1 should be > used, which > fixed the no-mapping issue. The current OpenSBI provided by Sophgo is > v1.2, and the > dt provided by Sophgo does not use no-map, v1.3 is being actively > upgraded. > 4) This version already supports Clang toolchain, which can be seen at > README.md. > > Patch v3: > The patch series can be seen at: > https://edk2.groups.io/g/devel/message/108376 > (Between message 108376 and message 108384, total of nine patches) > The patch series provides the changes: > 1) Remove firmware context > Reference to Andrei's branch, in the SEC module, the patch 5 avoids > getting the FDT > pointer from the firmware. > 2) Blurb > The patch 0 adds some descriptions in Blurb to explain the current > status, testing > situation, and limitations of the project. > 3) Milk-V Pioneer board > Running EDK2 on the Milk-V Pioneer board boots into UEFI shell > normally, but the SD > driver can't recognize all the partitions correctly and can't boot > Linux OS. > 4) Layout > Based on Leif's comment, we moved most of the code in the port from > Platform/Sophgo/SG2042Pkg/ > to > Silicon/Sophgo/SG2042Pkg/ > 5) Clang toolchain support > Our team tried to build the port using the CLANGDWARF toolchain (clang > version 18.0.0), > and updated README.md for CLANGDWARF support. It's able to build > successfully but the > built binary is not fully work. > > Patch v2: > The patch series can be seen at: > https://edk2.groups.io/g/devel/message/108216 > (Between message 108210 and message 108218, total of nine patches) > The patch series provides the following changes: > 1) To avoid further duplication, the patch 2 adds a PlatformUpdateMmuDxe > which contains two > main features. The first feature is to change the page attributes > corresponding to memory. > The second feature is to introduce a PCD variable PcdForceNoMMU to > disable MMU. Currently, > enabling MMU results in a timeout for reading data blocks from the SD > card, so MMU is > disabled by default. > 2) No change in patch 5's memory initialization method. It's not > guaranteed that you won't > hit grub relocation overflow error with this method, but using this > method at least masks > the problem for the time being. > > Patch v1: > The patch series can be seen at: > https://edk2.groups.io/g/devel/message/107885 > (Between message 107885 and message 107893, total of nine patches) > The patch series provides the features: > 1) The patch 1 use standard SMBIOS modules. > 2) The patch 2 copy RISC-V MMU Library. > SG2042 (Xuantie C920) MMU can be enabled in SV39 mode, but there are > bugs with exception > handling and MMC that need to be fixed, so MMU is disabled. Add this > library is to ensure > build successfully. So the RiscVConfigureMmu function was modified in > patch 2 to set the > satp mode to SATP_MODE_OFF. > 3) The SEC module in patch 5 has made a few changes compared to RiscVVirt. > The memory space size of SG2042 EVB is determined by the number and > size of DDRs inserted > on the board. All memory in RiscVVirt is added in the SEC moudle, > using InitializeRamRegions > to initialize the system memory space for each memory node separately, > but the actual > MemoryLength is only the size of the first memory node. Therefore, > InitializeRamRegions > is called only once to initialize the total system memory. > 4) Use opensbi v1.2 instead of the latest v1.3. > The opensbi for SG2042 is maintained by Sophgo and there are issues > with using opensbi v1.3. > Currently, v1.3 is being actively upgraded. > > caiyuqing379 (7): > Sophgo/SG2042Pkg: Add SmbiosPlatformDxe module. > Sophgo/SG2042Pkg: Add Sophgo SDHCI driver. > Sophgo/SG2042Pkg: Add base MMC driver. > Sophgo/SG2042Pkg: Add SEC module. > Sophgo/SG2042_EVB_Board: Add Sophgo SG2042 platform. > Sophgo/SG2042Pkg: Add SG2042Pkg. > Sophgo/SG2042Pkg: Add platform readme and document. > > Platform/Sophgo/SG2042_EVB_Board/SG2042.dec | 19 + > Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec | 34 + > Platform/Sophgo/SG2042_EVB_Board/SG2042.dsc | 557 +++++++++++ > Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf | 248 +++++ > .../SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf | 46 + > .../SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf | 48 + > .../SmbiosPlatformDxe/SmbiosPlatformDxe.inf | 39 + > Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf | 68 ++ > Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.h | 513 ++++++++++ > .../SG2042Pkg/Drivers/SdHostDxe/SdHci.h | 309 ++++++ > Silicon/Sophgo/SG2042Pkg/Include/MmcHost.h | 225 +++++ > Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h | 104 ++ > .../SG2042Pkg/Drivers/MmcDxe/ComponentName.c | 156 +++ > .../SG2042Pkg/Drivers/MmcDxe/Diagnostics.c | 323 ++++++ > Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.c | 527 ++++++++++ > .../SG2042Pkg/Drivers/MmcDxe/MmcBlockIo.c | 646 ++++++++++++ > .../SG2042Pkg/Drivers/MmcDxe/MmcDebug.c | 194 ++++ > .../Drivers/MmcDxe/MmcIdentification.c | 719 ++++++++++++++ > .../SG2042Pkg/Drivers/SdHostDxe/SdHci.c | 929 ++++++++++++++++++ > .../SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.c | 449 +++++++++ > .../SmbiosPlatformDxe/SmbiosPlatformDxe.c | 805 +++++++++++++++ > Silicon/Sophgo/SG2042Pkg/Sec/Cpu.c | 29 + > Silicon/Sophgo/SG2042Pkg/Sec/Memory.c | 327 ++++++ > Silicon/Sophgo/SG2042Pkg/Sec/Platform.c | 130 +++ > Silicon/Sophgo/SG2042Pkg/Sec/SecMain.c | 115 +++ > Platform/Sophgo/About_Sophgo_platform.md | 55 ++ > .../Documents/Media/EDK2_SDU_Programme.png | Bin 0 -> 59830 bytes > .../Sophgo/Documents/Media/SG2042_CPU.png | Bin 0 -> 806062 bytes > .../Documents/Media/Sophgo_SG2042_EVB.png | Bin 0 -> 1445528 bytes > Platform/Sophgo/Maintainers.md | 105 ++ > Platform/Sophgo/SG2042_EVB_Board/Readme.md | 103 ++ > .../Sophgo/SG2042_EVB_Board/SG2042.fdf.inc | 61 ++ > .../Sophgo/SG2042_EVB_Board/VarStore.fdf.inc | 77 ++ > Silicon/Sophgo/SG2042Pkg/SG2042Pkg.uni | 13 + > Silicon/Sophgo/SG2042Pkg/SG2042PkgExtra.uni | 12 + > Silicon/Sophgo/SG2042Pkg/Sec/SecEntry.S | 18 + > 36 files changed, 8003 insertions(+) > create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.dec > create mode 100644 Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec > create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.dsc > create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf > create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf > create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf > create mode 100644 > Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf > create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf > create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.h > create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.h > create mode 100644 Silicon/Sophgo/SG2042Pkg/Include/MmcHost.h > create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h > create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/ComponentName.c > create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Diagnostics.c > create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.c > create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcBlockIo.c > create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDebug.c > create mode 100644 > Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcIdentification.c > create mode 100755 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.c > create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.c > create mode 100644 > Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c > create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/Cpu.c > create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/Memory.c > create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/Platform.c > create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.c > create mode 100644 Platform/Sophgo/About_Sophgo_platform.md > create mode 100644 Platform/Sophgo/Documents/Media/EDK2_SDU_Programme.png > create mode 100644 Platform/Sophgo/Documents/Media/SG2042_CPU.png > create mode 100644 Platform/Sophgo/Documents/Media/Sophgo_SG2042_EVB.png > create mode 100644 Platform/Sophgo/Maintainers.md > create mode 100644 Platform/Sophgo/SG2042_EVB_Board/Readme.md > create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf.inc > create mode 100644 Platform/Sophgo/SG2042_EVB_Board/VarStore.fdf.inc > create mode 100644 Silicon/Sophgo/SG2042Pkg/SG2042Pkg.uni > create mode 100644 Silicon/Sophgo/SG2042Pkg/SG2042PkgExtra.uni > create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecEntry.S > > -- > 2.34.1 >
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109712): https://edk2.groups.io/g/devel/message/109712 Mute This Topic: https://groups.io/mt/101944463/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-