Re: [PATCH v3 00/21] lib: Rust implementation of SPDM
From: Jonathan Cameron
Date: Wed Sep 23 2026 - 20:40:26 EST
>
> qemu-system-x86_64 \
> -nic none \
> -object rng-random,filename=/dev/urandom,id=rng0 \
> -device virtio-rng-pci,rng=rng0 \
> -drive file=deploy/images/qemux86-64/core-image-pcie-qemux86-64.rootfs.ext4,if=virtio,format=raw \
> -usb -device usb-tablet -usb -device usb-kbd \
> -cpu Skylake-Client \
> -machine q35,i8042=off \
> -smp 4 -m 2G \
> -drive file=blknvme,if=none,id=mynvme,format=raw \
> -device nvme,drive=mynvme,serial=deadbeef,spdm_port=2323,spdm_trans=doe \
> -snapshot \
> -serial mon:stdio -serial null -nographic \
> -kernel deploy/images/qemux86-64/bzImage \
> -append 'root=/dev/vda rw console=ttyS0 console=ttyS1 oprofile.timer=1 tsc=reliable no_timer_check rcupdate.rcu_expedited=1 swiotlb=0 '
>
Looking at this because of discussion about RCiEPs.
For the test I'd do something more realistic and throw in a root port and put your
device on that rather than as currently where I think it'll is presented as
a Root Complex Integrated Endpoint.
You don't want a particularly complex setup for this but those ones in
the qemu tests tend to provide syntax to copy.
I like the HMAT bios table tests
https://elixir.bootlin.com/qemu/v11.1.1/source/tests/qtest/bios-tables-test.c#L2058
And that suggests you want something like:
-device pcie-root-port,chassis=1,id=pci.1"
-device nvme,drive=mynvme,serial=deadbeef,spdm_port=2323,spdm_trans=doe,bus=pci.1"
Then you'll have a normal looking direct connected NVMe pcie express devices.
Shouldn't make any real difference in practice beyond paths changing and it
smelling more normal for something you might want to attest!