W dniu 4.03.2024 o 11:25, Fei Wu pisze:
The RISC-V Server Platform specification[1] defines a standardized
set of hardware and software capabilities, that portable system
software, such as OS and hypervisors can rely on being present in a
RISC-V server platform. This patchset provides a RISC-V Server
Platform (RVSP) reference implementation on qemu which is in
compliance with the spec as faithful as possible.
I am working on sbsa-ref which is AArch64 Standard Server Platform
implementation. Will not go through details of rvsp-ref but give some
potential hints from my work with our platform.
1. Consider versioning the platform.
We have 'platform_version'.'major/minor' exported in
DeviceTree-formatted data. This allows for firmware to know which of
non-discoverable hardware features exists and which not. We use it to
disable XHCI controller on older platform version.
2. If specification allows to have non-discoverable devices then add some.
This will require you to handle them in firmware in some way. Sooner or
later some physical hardware will be in same situation so they can use
your firmware code as reference. We have AHCI and XHCI on system bus
(hardcoded in firmware).
3. You are going to use EDK2 with ACPI. Hide DT from code there with
some hardware information library.
For sbsa-ref we created SbsaHardwareInfoLib in
https://openfw.io/edk2-devel/20240306-no-dt-for-cpu-v6-0-acd8727a1...@linaro.org/
patchset.