i2c0 = "/i2c@0";
mmc0 = "/mmc0";
mmc1 = "/mmc1";
- pci0 = &pci;
+ pci0 = &pci0;
+ pci1 = &pci1;
remoteproc1 = &rproc_1;
remoteproc2 = &rproc_2;
rtc0 = &rtc_0;
compatible = "sandbox,mmc";
};
- pci: pci-controller {
+ pci0: pci-controller0 {
compatible = "sandbox,pci";
device_type = "pci";
#address-cells = <3>;
};
};
+ pci1: pci-controller1 {
+ compatible = "sandbox,pci";
+ device_type = "pci";
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges = <0x02000000 0 0x30000000 0x30000000 0 0x2000
+ 0x01000000 0 0x40000000 0x40000000 0 0x2000>;
+ pci@8,0 {
+ compatible = "pci-generic";
+ reg = <0x4000 0 0 0 0>;
+ emul@8,0 {
+ compatible = "sandbox,swap-case";
+ };
+ };
+ pci@c,0 {
+ compatible = "pci-generic";
+ reg = <0x6000 0 0 0 0>;
+ emul@c,0 {
+ compatible = "sandbox,swap-case";
+ };
+ };
+ };
+
probing {
compatible = "simple-bus";
test1 {
struct udevice *bus;
struct udevice *emul, *swap;
+ /* Test bus#0 and its devices */
ut_assertok(uclass_get_device_by_seq(UCLASS_PCI, 0, &bus));
ut_assertok(uclass_get_device(UCLASS_PCI_EMUL, 0, &emul));
ut_assertok(dm_pci_bus_find_bdf(PCI_BDF(0, 0x1f, 0), &swap));
ut_assert(device_active(swap));
+ /* Test bus#1 and its devices */
+ ut_assertok(uclass_get_device_by_seq(UCLASS_PCI, 1, &bus));
+
+ ut_assertok(uclass_get_device(UCLASS_PCI_EMUL, 2, &emul));
+ ut_assertok(dm_pci_bus_find_bdf(PCI_BDF(1, 0x08, 0), &swap));
+ ut_assert(device_active(swap));
+ ut_assertok(uclass_get_device(UCLASS_PCI_EMUL, 3, &emul));
+ ut_assertok(dm_pci_bus_find_bdf(PCI_BDF(1, 0x0c, 0), &swap));
+ ut_assert(device_active(swap));
+
return 0;
}
DM_TEST(dm_test_pci_busdev, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);