Re: [PATCH 0/6] Add support for the root PCI bus device-tree node creation.

Herve Codina
2024-11-06T13:33:27Z

Hi Rob,

On Tue, 5 Nov 2024 13:59:40 -0600
Rob Herring <robh@kernel.org> wrote:

> On Tue, Nov 5, 2024 at 11:44 AM Herve Codina <herve.codina@bootlin.com> wrote:
> >
> > Hi Rob,
> >
> > On Mon, 4 Nov 2024 14:15:07 -0600
> > Rob Herring <robh@kernel.org> wrote:
> >
> > ...
> > > > With those modifications, the LAN966x PCI device is working on x86 systems.
> > >
> > > That's nice, but I don't have a LAN966x device nor do I want one. We
> > > already have the QEMU PCI test device working with the existing PCI
> > > support. Please ensure this series works with it as well.
> > >
> >
> > I will check.
> >
> > Can you confirm that you are talking about this test:
> > https://elixir.bootlin.com/linux/v6.12-rc6/source/drivers/of/unittest.c#L4188
> >
> > The test needs QEMU with a specific setup and I found this entry point:
> > https://lore.kernel.org/all/fa208013-7bf8-80fc-2732-814f380cebf9@amd.com/
>
> Yes, that's it.
>
> > Do you have an "official" QEMU setup on your side to run the test or any
> > other pointers related to the QEMU command/setup you use?
>
> No, it's just something based on what you linked. Here's what I have:
>
> qemu-system-aarch64 -machine virt -cpu cortex-a72 -machine type=virt
> -nographic -smp 1 -m 2048 -kernel ../linux.git/arch/arm64/boot/Image
> --append console=ttyAMA0 -device
> pcie-root-port,port=0x10,chassis=9,id=pci.9,bus=pcie.0,multifunction=on,addr=0x3
> -device pcie-root-port,port=0x11,chassis=10,id=pci.10,bus=pcie.0,addr=0x3.0x1
> -device x3130-upstream,id=pci.11,bus=pci.9,addr=0x0 -device
> xio3130-downstream,port=0x0,chassis=11,id=pci.12,bus=pci.11,multifunction=on,addr=0x0
> -device i82801b11-bridge,id=pci.13,bus=pcie.0,addr=0x4 -device
> pci-bridge,chassis_nr=14,id=pci.14,bus=pci.13,addr=0x0 -device
> pci-testdev,bus=pci.12,addr=0x0
>
> Of course, you'll need a few changes to use ACPI.
>

I ran the OF kunit tests with the following command:
qemu-system-x86_64 -machine q35 -nographic \
-kernel arch/x86_64/boot/bzImage --append console=ttyS0 \
-device pcie-root-port,port=0x10,chassis=9,id=pci.9,bus=pcie.0,multifunction=on,addr=0x3 \
-device pcie-root-port,port=0x11,chassis=10,id=pci.10,bus=pcie.0,addr=0x3.0x1 \
-device x3130-upstream,id=pci.11,bus=pci.9,addr=0x0 \
-device xio3130-downstream,port=0x0,chassis=11,id=pci.12,bus=pci.11,multifunction=on,addr=0x0 \
-device i82801b11-bridge,id=pci.13,bus=pcie.0,addr=0x4 \
-device pci-bridge,chassis_nr=14,id=pci.14,bus=pci.13,addr=0x0 \
-device pci-testdev,bus=pci.12,addr=0x0

Same -device options as the ones present in your command.

Tests are successful:
[ 0.000000] DMI: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-1.fc39 04/01/2014
...
[ 0.030500] ACPI: Early table checksum verification disabled
[ 0.030771] ACPI: RSDP 0x00000000000F5250 000014 (v00 BOCHS )
[ 0.030993] ACPI: RSDT 0x0000000007FE4068 000038 (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.031438] ACPI: FACP 0x0000000007FE3E60 0000F4 (v03 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.031920] ACPI: DSDT 0x0000000007FE0040 003E20 (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.031993] ACPI: FACS 0x0000000007FE0000 000040
[ 0.032036] ACPI: APIC 0x0000000007FE3F54 000078 (v03 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.032060] ACPI: HPET 0x0000000007FE3FCC 000038 (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.032084] ACPI: MCFG 0x0000000007FE4004 00003C (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.032105] ACPI: WAET 0x0000000007FE4040 000028 (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.032171] ACPI: Reserving FACP table memory at [mem 0x7fe3e60-0x7fe3f53]
[ 0.032206] ACPI: Reserving DSDT table memory at [mem 0x7fe0040-0x7fe3e5f]
[ 0.032215] ACPI: Reserving FACS table memory at [mem 0x7fe0000-0x7fe003f]
[ 0.032220] ACPI: Reserving APIC table memory at [mem 0x7fe3f54-0x7fe3fcb]
[ 0.032226] ACPI: Reserving HPET table memory at [mem 0x7fe3fcc-0x7fe4003]
[ 0.032231] ACPI: Reserving MCFG table memory at [mem 0x7fe4004-0x7fe403f]
[ 0.032236] ACPI: Reserving WAET table memory at [mem 0x7fe4040-0x7fe4067]
...
[ 3.466693] ### dt-test ### pass of_unittest_pci_node():4202
[ 3.466887] ### dt-test ### pass of_unittest_pci_node_verify():4155
[ 3.467133] ### dt-test ### pass of_unittest_pci_node_verify():4162
[ 3.467278] ### dt-test ### pass of_unittest_pci_node_verify():4169
[ 3.467442] ### dt-test ### pass of_unittest_pci_node():4214
[ 3.467572] ### dt-test ### pass of_unittest_pci_node():4216
[ 3.469993] ### dt-test ### pass of_unittest_pci_node_verify():4155
[ 3.470273] ### dt-test ### pass of_unittest_pci_node_verify():4175
[ 3.470577] ### dt-test ### pass of_unittest_pci_node_verify():4177
...
[ 3.513309] ### dt-test ### end of unittest - 387 passed, 0 failed

Best regards,
Hervé