RISC-V 服务器平台参考板(riscv-server-ref)
RISC-V 服务器平台规范 spec 定义了一组标准化的硬件和软件能力,操作系统、虚拟机监控器等可移植系统软件可以依赖这些能力在 RISC-V 服务器平台上存在。此机器旨在模拟该规范,为固件和操作系统开发及测试提供环境。
此板引入时,spec 的版本为 1.0。新规范版本可能会促使模拟实现修订;该实现将尽力始终匹配最新规范。如果模拟变化不向后兼容,将引入版本控制机制(可能通过机器属性),允许旧软件使用旧规范版本运行。
riscv-server-ref 板的主要功能包括:
IOMMU 平台设备(riscv-iommu-sys)
AIA
PCIe AHCI
PCIe 网卡
没有 virtio mmio 总线
没有 fw_cfg 设备
没有 ACPI 表
最小化的设备树节点
此参考板有多种使用方式。符合规范的方式是使用 EDK2 镜像和 TPM 设备。此板已使用依赖外部 swtpm 模拟器的 tpm-tis TPM 设备进行测试。有关此设备的更多使用信息,请参阅 tpm。
要将此板与 tpm-tis 设备配合使用,首先在 shell 中启动 swtpm 进程(log 参数可选):
$ mkdir /tmp/mytpm1
$ swtpm socket --tpmstate dir=/tmp/mytpm1 \
--ctrl type=unixio,path=/tmp/mytpm1/swtpm-sock \
--tpm2 \
--log level=20
然后启动 QEMU:
qemu-system-riscv64 -M riscv-server-ref \
-bios fw_dynamic.bin \
-kernel EDK2.fd \
-drive file=nvme_disk.ext2,format=raw,id=hd0,if=none \
-device ahci,id=ahci \
-device ide-hd,drive=hd0,bus=ahci.0 \
-chardev socket,id=chrtpm,path=/tmp/mytpm1/swtpm-sock \
-tpmdev emulator,id=tpm0,chardev=chrtpm \
-device tpm-tis-device,tpmdev=tpm0 \
-nographic