Hello Genodians
While debugging https://github.com/genodelabs/genode/issues/4538, I'm having trouble using the new `platfomr_drv` for the PC platform. From the release notes of 22.05, it seems that the new component `pci_decode` should be used to create the list of PCI devices.
Searching for this on master and staging I only find the component's source and its mention in the release notes - but not how it's used. I therefore extended my search. In the repository of skalk, I have found the branch `nvme_drv`, which adapts the NVMe driver for the new platform driver.
When I execute the run-script from this branch on different platforms (x86_64 qemu, an Intel 8th gen up-xtreme and my Intel 11700), `pci_decode` doesn't report any PCI devices.
Are there any further requirements to use the new platform driver on PC?
Best regards Pirmin
Hello Pirmin,
On Tue, Jun 28, 2022 at 09:06:46AM +0200, Duss Pirmin wrote:
Hello Genodians
While debugging https://github.com/genodelabs/genode/issues/4538, I'm having trouble using the new `platfomr_drv` for the PC platform. From the release notes of 22.05, it seems that the new component `pci_decode` should be used to create the list of PCI devices.
Searching for this on master and staging I only find the component's source and its mention in the release notes - but not how it's used. I therefore extended my search. In the repository of skalk, I have found the branch `nvme_drv`, which adapts the NVMe driver for the new platform driver.
You're right. Although, the new PCI decode component is already in place, it is not actively used until now, except in development. Therefore, please do not wonder if it is not working on a wide range of machines for the moment.
When I execute the run-script from this branch on different platforms (x86_64 qemu, an Intel 8th gen up-xtreme and my Intel 11700), `pci_decode` doesn't report any PCI devices.
Are there any further requirements to use the new platform driver on PC?
No there are no further requirements.
The 'nvme.run' script in the mentioned topic branch is showcasing the configuration of the pci_decode component. It only needs to consume the report from the acpi_drv as well as the platform_info ROM module from core. Moreover, it needs access to I/O memory to parse the PCI bus. Then it should deliver a devices report.
I mainly used hardware while developing pci_decode, but it worked at least in the past on Qemu too. Anyway, I can confirm it fails right now to report anything on Qemu, but works on my reference hardware. I've opened an issue in our issue tracker, and will investigate why nothing gets reportes on Qemu soon:
https://github.com/genodelabs/genode/issues/4539
For the time being, you're the first user of the platform_drv + pci_decode component conglomerat. As part of the upcoming release we plan to switch most PCI drivers to use it as well. So please, do not resign while using it ;-), and thank you for reporting the issue.
Best regards Stefan
Best regards Pirmin
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Hello Stefan
On 28.06.22 11:38, Stefan Kalkowski wrote
The 'nvme.run' script in the mentioned topic branch is showcasing the configuration of the pci_decode component. It only needs to consume the report from the acpi_drv as well as the platform_info ROM module from core. Moreover, it needs access to I/O memory to parse the PCI bus. Then it should deliver a devices report.
I mainly used hardware while developing pci_decode, but it worked at least in the past on Qemu too. Anyway, I can confirm it fails right now to report anything on Qemu, but works on my reference hardware. I've opened an issue in our issue tracker, and will investigate why nothing gets reportes on Qemu soon:
Many thanks for the information and creating the issue. With the discoveries you shared there, I was able to produce a device report.
Best regards, Pirmin