OpenSBI can now use a generic platform implementation. The platform
specific behavior is derived from the device tree.
This patchset updates OpenSBI, adds and builds the device tree and does
a lot of deduplication as a result.
Because OpenSBI has done quite a few other changes, Abner will send out
another patchset to adapt the rest of EDK2 RISC-V code for that.
This generic implementation not only works for the current U540 and U500
implementations but also upcoming QEMU virt platform and possibly others
like BeagleV or Allwinner Nezha board.
Abner Chang (4):
Silicon/RISC-V: Introduce FirmwareContext library
Silicon/RISC-V: PeiServiceTableLib uses RiscVFirmwareContextLib
SiFive/U5SeriesPkg: Use FirmwareContext library
RISC-V/PlatformPkg: Add FdtPeim to pass DTB from PEI to DXE via HOB
Daniel Schaefer (10):
U5SeriesPkg: Deduplicate PlatformPei
RISC-V: Split SMBIOS out of PlatformPei
RISC-V: Use U5 SMBIOS library only for those platforms
U540: Add and build device tree
RISC-V/PlatformPkg: Build DeviceTree and use that in SEC
RISC-V/PlatformPkg: Fixup FDT from HOB and install into config table
U5SeriesPkg: Switch to generic OpenSBI platform
RISC-V: Switch to latest OpenSBI
RISC-V: Implement ResetSystem RT call
Move OpenSbiPlatformLib to RISC-V/PlatformPkg
Platform/{SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard =>
RISC-V/PlatformPkg}/Library/OpensbiPlatformLib/OpensbiPlatformLib.inf | 2 +
Platform/RISC-V/PlatformPkg/Library/OpensbiPlatformLib/Platform.c
| 224 ++++++++++++++
Platform/RISC-V/PlatformPkg/Library/OpensbiPlatformLib/PlatformOverride.h
| 30 ++
Platform/RISC-V/PlatformPkg/Library/OpensbiPlatformLib/SifiveFu540.c
| 47 +++
Platform/RISC-V/PlatformPkg/Library/OpensbiPlatformLibNull/Platform.c
| 27 +-
Platform/RISC-V/PlatformPkg/Library/PeiCoreInfoHobLibNull/CoreInfoHob.c
| 37 +++
Platform/RISC-V/PlatformPkg/Library/PeiCoreInfoHobLibNull/PeiCoreInfoHobLib.inf
| 43 +++
Platform/RISC-V/PlatformPkg/Library/ResetSystemLib/ResetSystemLib.c
| 128 ++++++++
Platform/RISC-V/PlatformPkg/Library/ResetSystemLib/ResetSystemLib.inf
| 33 +++
Platform/RISC-V/PlatformPkg/RiscVPlatformPkg.dec
| 4 +
Platform/RISC-V/PlatformPkg/Universal/FdtPeim/FdtPeim.c
| 70 +++++
Platform/RISC-V/PlatformPkg/Universal/FdtPeim/FdtPeim.inf
| 49 ++++
Platform/{SiFive/U5SeriesPkg/FreedomU500VC707Board =>
RISC-V/PlatformPkg}/Universal/Pei/PlatformPei/Fv.c
| 0
Platform/{SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard =>
RISC-V/PlatformPkg}/Universal/Pei/PlatformPei/MemDetect.c | 11 +-
Platform/{SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard =>
RISC-V/PlatformPkg}/Universal/Pei/PlatformPei/Platform.c | 21 +-
Platform/{SiFive/U5SeriesPkg/FreedomU500VC707Board =>
RISC-V/PlatformPkg}/Universal/Pei/PlatformPei/Platform.h
| 0
Platform/{SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard =>
RISC-V/PlatformPkg}/Universal/Pei/PlatformPei/PlatformPei.inf | 6 +-
Platform/RISC-V/PlatformPkg/Universal/Sec/Riscv64/SecEntry.S
| 24 +-
Platform/RISC-V/PlatformPkg/Universal/Sec/SecMain.c
| 54 +++-
Platform/RISC-V/PlatformPkg/Universal/Sec/SecMain.inf
| 2 +
Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/Library/OpensbiPlatformLib/Platform.c
| 29 +-
Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.dsc
| 16 +-
Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.fdf
| 2 +-
Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.fdf.inc
| 6 +-
Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/Universal/Pei/PlatformPei/MemDetect.c
| 74 -----
Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/Universal/Pei/PlatformPei/Platform.c
| 310 --------------------
Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/Universal/Pei/PlatformPei/PlatformPei.inf
| 73 -----
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree.fdf.inc
| 35 +++
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree/U540DeviceTree.inf
| 25 ++
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree/fu540-c000.dtsi
| 287 ++++++++++++++++++
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree/gpio.h
| 42 +++
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree/hifive-unleashed-a00.dts
| 106 +++++++
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree/sifive-fu540-prci.h
| 18 ++
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/Library/OpensbiPlatformLib/Platform.c
| 216 --------------
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/U540.dsc
| 29 +-
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/U540.fdf
| 10 +-
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/U540.fdf.inc
| 14 +-
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/Universal/Pei/PlatformPei/Fv.c
| 51 ----
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/Universal/Pei/PlatformPei/Platform.h
| 86 ------
Platform/SiFive/U5SeriesPkg/Include/SiFiveU5MCCoreplex.h
| 33 +--
Platform/SiFive/U5SeriesPkg/Library/PeiCoreInfoHobLib/CoreInfoHob.c
| 32 +-
Platform/SiFive/U5SeriesPkg/Library/PeiCoreInfoHobLib/PeiCoreInfoHobLib.inf
| 4 +-
Platform/SiFive/U5SeriesPkg/Library/SerialIoLib/SerialPortLib.c
| 81 ++++-
Silicon/RISC-V/ProcessorPkg/Include/IndustryStandard/RiscV.h
| 3 +-
Silicon/RISC-V/ProcessorPkg/Include/IndustryStandard/RiscVOpensbi.h
| 1 +
Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVCpuLib.h
| 14 +-
Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVEdk2SbiLib.h
| 39 ++-
Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVFirmwareContextLib.h
| 43 +++
Silicon/RISC-V/ProcessorPkg/Include/OpensbiTypes.h
| 1 +
Silicon/RISC-V/ProcessorPkg/Library/PeiServicesTablePointerLibOpenSbi/PeiServicesTablePointerLibOpenSbi.inf
| 4 +-
Silicon/RISC-V/ProcessorPkg/Library/PeiServicesTablePointerLibOpenSbi/PeiServicesTablePointerOpenSbi.c
| 8 +-
Silicon/RISC-V/ProcessorPkg/Library/RiscVCpuLib/Cpu.S
| 34 ++-
Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.c
| 44 ++-
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSbiLib/RiscVFirmwareContextSbiLib.c
| 52 ++++
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSbiLib/RiscVFirmwareContextSbiLib.inf
| 34 +++
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSscratchLib/RiscVFirmwareContextSscratchLib.c
| 48 +++
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSscratchLib/RiscVFirmwareContextSscratchLib.inf
| 33 +++
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextStvecLib/RiscVFirmwareContextStvecLib.c
| 48 +++
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextStvecLib/RiscVFirmwareContextStvecLib.inf
| 34 +++
Silicon/RISC-V/ProcessorPkg/Library/RiscVOpensbiLib/RiscVOpensbiLib.inf
| 13 +-
Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dec
| 1 +
Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dsc
| 7 +-
Silicon/RISC-V/ProcessorPkg/Universal/FdtDxe/FdtDxe.c
| 116 ++++++++
Silicon/RISC-V/ProcessorPkg/Universal/FdtDxe/FdtDxe.inf
| 53 ++++
64 files changed, 2055 insertions(+), 966 deletions(-)
rename Platform/{SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard =>
RISC-V/PlatformPkg}/Library/OpensbiPlatformLib/OpensbiPlatformLib.inf (94%)
create mode 100644
Platform/RISC-V/PlatformPkg/Library/OpensbiPlatformLib/Platform.c
create mode 100644
Platform/RISC-V/PlatformPkg/Library/OpensbiPlatformLib/PlatformOverride.h
create mode 100644
Platform/RISC-V/PlatformPkg/Library/OpensbiPlatformLib/SifiveFu540.c
create mode 100644
Platform/RISC-V/PlatformPkg/Library/PeiCoreInfoHobLibNull/CoreInfoHob.c
create mode 100644
Platform/RISC-V/PlatformPkg/Library/PeiCoreInfoHobLibNull/PeiCoreInfoHobLib.inf
create mode 100644
Platform/RISC-V/PlatformPkg/Library/ResetSystemLib/ResetSystemLib.c
create mode 100644
Platform/RISC-V/PlatformPkg/Library/ResetSystemLib/ResetSystemLib.inf
create mode 100644 Platform/RISC-V/PlatformPkg/Universal/FdtPeim/FdtPeim.c
create mode 100644 Platform/RISC-V/PlatformPkg/Universal/FdtPeim/FdtPeim.inf
rename Platform/{SiFive/U5SeriesPkg/FreedomU500VC707Board =>
RISC-V/PlatformPkg}/Universal/Pei/PlatformPei/Fv.c (100%)
rename Platform/{SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard =>
RISC-V/PlatformPkg}/Universal/Pei/PlatformPei/MemDetect.c (79%)
rename Platform/{SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard =>
RISC-V/PlatformPkg}/Universal/Pei/PlatformPei/Platform.c (89%)
rename Platform/{SiFive/U5SeriesPkg/FreedomU500VC707Board =>
RISC-V/PlatformPkg}/Universal/Pei/PlatformPei/Platform.h (100%)
rename Platform/{SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard =>
RISC-V/PlatformPkg}/Universal/Pei/PlatformPei/PlatformPei.inf (87%)
delete mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/Universal/Pei/PlatformPei/MemDetect.c
delete mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/Universal/Pei/PlatformPei/Platform.c
delete mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/Universal/Pei/PlatformPei/PlatformPei.inf
create mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree.fdf.inc
create mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree/U540DeviceTree.inf
create mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree/fu540-c000.dtsi
create mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree/gpio.h
create mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree/hifive-unleashed-a00.dts
create mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/DeviceTree/sifive-fu540-prci.h
delete mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/Library/OpensbiPlatformLib/Platform.c
delete mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/Universal/Pei/PlatformPei/Fv.c
delete mode 100644
Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/Universal/Pei/PlatformPei/Platform.h
create mode 100644
Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVFirmwareContextLib.h
create mode 100644
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSbiLib/RiscVFirmwareContextSbiLib.c
create mode 100644
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSbiLib/RiscVFirmwareContextSbiLib.inf
create mode 100644
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSscratchLib/RiscVFirmwareContextSscratchLib.c
create mode 100644
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSscratchLib/RiscVFirmwareContextSscratchLib.inf
create mode 100644
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextStvecLib/RiscVFirmwareContextStvecLib.c
create mode 100644
Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextStvecLib/RiscVFirmwareContextStvecLib.inf
create mode 100644 Silicon/RISC-V/ProcessorPkg/Universal/FdtDxe/FdtDxe.c
create mode 100644 Silicon/RISC-V/ProcessorPkg/Universal/FdtDxe/FdtDxe.inf
--
2.33.0
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#81535): https://edk2.groups.io/g/devel/message/81535
Mute This Topic: https://groups.io/mt/86117287/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-