提交 dee4d752 编写于 作者: B Bin Meng 提交者: Simon Glass

test: dm: pci: Test more than one PCI host controller

So far there is only one PCI host controller in the sandbox test
configuration. This is normally the case for x86, but it can be
common on other architectures like ARM/PPC to have more than one
PCI host controller in the system.

This updates the case to cover such scenario.
Signed-off-by: NBin Meng <bmeng.cn@gmail.com>
Reviewed-by: NSimon Glass <sjg@chromium.org>
上级 76330ae6
......@@ -14,7 +14,8 @@
i2c0 = "/i2c@0";
mmc0 = "/mmc0";
mmc1 = "/mmc1";
pci0 = &pci;
pci0 = &pci0;
pci1 = &pci1;
remoteproc1 = &rproc_1;
remoteproc2 = &rproc_2;
rtc0 = &rtc_0;
......@@ -295,7 +296,7 @@
compatible = "sandbox,mmc";
};
pci: pci-controller {
pci0: pci-controller0 {
compatible = "sandbox,pci";
device_type = "pci";
#address-cells = <3>;
......@@ -318,6 +319,29 @@
};
};
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 {
......
......@@ -26,6 +26,7 @@ static int dm_test_pci_busdev(struct unit_test_state *uts)
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));
......@@ -35,6 +36,16 @@ static int dm_test_pci_busdev(struct unit_test_state *uts)
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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册