I'm trying to develop a coreboot+seabios for motherboard MB-7573 by LANNER, CPU Intel(R) Atom(TM) CPU C2758. PCI root port 4 configured as x4. PCIe Switch (Asmedia ASM1182e) connected to root port 4. Two more devices are connected to ASM1182e - Xillinx network device and RDC C6139(PCI bridge & VGA). How to describe the PCIe Switch (Asmedia ASM1182e) and devices connected after it for devicetree.cb?
Link to Asmedia ASM1182e: http://www.asmedia.com.tw/eng/e_show_products.php?cate_index=168&item=13...
My version of devicetree.cb not work and coreboot hangs on post code 0x75 (POST_BS_DEV_INIT):
device domain 0 on device pci 00.0 on end # host bridge device pci 1.0 on end # PCIe Port #1 x4 device pci 2.0 on end # PCIe Port #2 x4 device pci 3.0 on end # PCIe Port #3 x4 device pci 4.0 on subsystemid 1b21 1182 device pci 0.0 on subsystemid 1b21 1182 device pci 03.0 on subsystemid 10ee 2012 end subsystemid 1b21 1182 device pci 07.0 on subsystemid 17f3 1035 device pci 0.0 on subsystemid 17f3 2200 end end end end # PCIe Port #4 x4
Hangs on init_link function (POST_BS_DEV_INIT=0x75). coreboot/src/device/device.c
static void init_link(struct bus *link) { struct device *dev; struct bus *c_link;
for (dev = link->children; dev; dev = dev->sibling) { post_code(POST_BS_DEV_INIT); post_log_path(dev); init_dev(dev); }
for (dev = link->children; dev; dev = dev->sibling) { for (c_link = dev->link_list; c_link; c_link = c_link->next) init_link(c_link); } }
More visually device tree so:
+-04.0-[04-08]----00.0-[05-08]--+-03.0-[06]----00.0 10ee:2012 | -07.0-[07-08]----00.0-[08]----00.0 RDC Semiconductor, Inc. Device 2200
Full lspci output:
[root@localhost ~]# lspci 00:00.0 Host bridge: Intel Corporation Atom processor C2000 SoC Transaction Router (rev 02) 00:01.0 PCI bridge: Intel Corporation Atom processor C2000 PCIe Root Port 1 (rev 02) 00:02.0 PCI bridge: Intel Corporation Atom processor C2000 PCIe Root Port 2 (rev 02) 00:03.0 PCI bridge: Intel Corporation Atom processor C2000 PCIe Root Port 3 (rev 02) 00:04.0 PCI bridge: Intel Corporation Atom processor C2000 PCIe Root Port 4 (rev 02) 00:0b.0 Co-processor: Intel Corporation Atom processor C2000 QAT (rev 02) 00:0e.0 Host bridge: Intel Corporation Atom processor C2000 RAS (rev 02) 00:0f.0 IOMMU: Intel Corporation Atom processor C2000 RCEC (rev 02) 00:13.0 System peripheral: Intel Corporation Atom processor C2000 SMBus 2.0 (rev 02) 00:14.0 Ethernet controller: Intel Corporation Ethernet Connection I354 (rev 03) 00:14.1 Ethernet controller: Intel Corporation Ethernet Connection I354 (rev 03) 00:14.2 Ethernet controller: Intel Corporation Ethernet Connection I354 (rev 03) 00:14.3 Ethernet controller: Intel Corporation Ethernet Connection I354 (rev 03) 00:16.0 USB controller: Intel Corporation Atom processor C2000 USB Enhanced Host Controller (rev 02) 00:17.0 SATA controller: Intel Corporation Atom processor C2000 AHCI SATA2 Controller (rev 02) 00:18.0 SATA controller: Intel Corporation Atom processor C2000 AHCI SATA3 Controller (rev 02) 00:1f.0 ISA bridge: Intel Corporation Atom processor C2000 PCU (rev 02) 00:1f.3 SMBus: Intel Corporation Atom processor C2000 PCU SMBus (rev 02) 01:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) 02:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) 04:00.0 PCI bridge: ASMedia Technology Inc. Device 1182 05:03.0 PCI bridge: ASMedia Technology Inc. Device 1182 05:07.0 PCI bridge: ASMedia Technology Inc. Device 1182 06:00.0 Network controller: Xilinx Corporation Device 2012 (rev 0a) 07:00.0 PCI bridge: RDC Semiconductor, Inc. Device 1035 (rev 02) 08:00.0 VGA compatible controller: RDC Semiconductor, Inc. Device 2200
[root@localhost ~]# lspci -ntvvv -[0000:00]-+-00.0 8086:1f08 +-01.0-[01]----00.0 8086:1533 +-02.0-[02]----00.0 8086:1533 +-03.0-[03]---- | +-04.0-[04-08]----00.0-[05-08]--+-03.0-[06]----00.0 10ee:2012 | -07.0-[07-08]----00.0-[08]----00.0 17f3:2200 +-0b.0 8086:1f18 +-0e.0 8086:1f14 +-0f.0 8086:1f16 +-13.0 8086:1f15 +-14.0 8086:1f41 +-14.1 8086:1f41 +-14.2 8086:1f41 +-14.3 8086:1f41 +-16.0 8086:1f2c +-17.0 8086:1f22 +-18.0 8086:1f32 +-1f.0 8086:1f38 -1f.3 8086:1f3c
Fedora boot log:
[ 1.579482] PCI host bridge to bus 0000:00 [ 1.583065] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window] [ 1.590063] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window] [ 1.597062] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window] [ 1.604062] pci_bus 0000:00: root bus resource [mem 0x80000000-0xdfffffff window] [ 1.612063] pci_bus 0000:00: root bus resource [mem 0x280000000-0xfffffffff window] [ 1.619063] pci_bus 0000:00: root bus resource [bus 00-ff] [ 1.625070] pci 0000:00:00.0: [8086:1f08] type 00 class 0x060000 [ 1.625214] pci 0000:00:01.0: [8086:1f10] type 01 class 0x060400 [ 1.625239] pci 0000:00:01.0: reg 0x10: [mem 0xdfc00000-0xdfc1ffff 64bit] [ 1.625254] pci 0000:00:01.0: enabling Extended Tags [ 1.630099] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold [ 1.630242] pci 0000:00:02.0: [8086:1f11] type 01 class 0x060400 [ 1.630266] pci 0000:00:02.0: reg 0x10: [mem 0xdfbe0000-0xdfbfffff 64bit] [ 1.630281] pci 0000:00:02.0: enabling Extended Tags [ 1.635099] pci 0000:00:02.0: PME# supported from D0 D3hot D3cold [ 1.635236] pci 0000:00:03.0: [8086:1f12] type 01 class 0x060400 [ 1.635260] pci 0000:00:03.0: reg 0x10: [mem 0xdfbc0000-0xdfbdffff 64bit] [ 1.635276] pci 0000:00:03.0: enabling Extended Tags [ 1.640100] pci 0000:00:03.0: PME# supported from D0 D3hot D3cold [ 1.640237] pci 0000:00:04.0: [8086:1f13] type 01 class 0x060400 [ 1.640261] pci 0000:00:04.0: reg 0x10: [mem 0xdfba0000-0xdfbbffff 64bit] [ 1.640276] pci 0000:00:04.0: enabling Extended Tags [ 1.646098] pci 0000:00:04.0: PME# supported from D0 D3hot D3cold [ 1.646244] pci 0000:00:0b.0: [8086:1f18] type 00 class 0x0b4000 [ 1.646277] pci 0000:00:0b.0: reg 0x18: [mem 0xdfb80000-0xdfb9ffff 64bit] [ 1.646289] pci 0000:00:0b.0: reg 0x20: [mem 0xdfc30000-0xdfc33fff 64bit] [ 1.646459] pci 0000:00:0e.0: [8086:1f14] type 00 class 0x060000 [ 1.646610] pci 0000:00:0f.0: [8086:1f16] type 00 class 0x080600 [ 1.646667] pci 0000:00:0f.0: PME# supported from D0 D3hot D3cold [ 1.646803] pci 0000:00:13.0: [8086:1f15] type 00 class 0x088000 [ 1.646827] pci 0000:00:13.0: reg 0x10: [mem 0xdfc38000-0xdfc383ff 64bit] [ 1.647029] pci 0000:00:14.0: [8086:1f41] type 00 class 0x020000 [ 1.647051] pci 0000:00:14.0: reg 0x10: [mem 0xdfb60000-0xdfb7ffff 64bit] [ 1.647057] pci 0000:00:14.0: reg 0x18: [io 0xe0c0-0xe0df] [ 1.647077] pci 0000:00:14.0: reg 0x20: [mem 0xdfc2c000-0xdfc2ffff 64bit] [ 1.647130] pci 0000:00:14.0: PME# supported from D0 D3hot D3cold [ 1.647266] pci 0000:00:14.1: [8086:1f41] type 00 class 0x020000 [ 1.647288] pci 0000:00:14.1: reg 0x10: [mem 0xdfb40000-0xdfb5ffff 64bit] [ 1.647296] pci 0000:00:14.1: reg 0x18: [io 0xe0a0-0xe0bf] [ 1.647313] pci 0000:00:14.1: reg 0x20: [mem 0xdfc28000-0xdfc2bfff 64bit] [ 1.647365] pci 0000:00:14.1: PME# supported from D0 D3hot D3cold [ 1.647505] pci 0000:00:14.2: [8086:1f41] type 00 class 0x020000 [ 1.647528] pci 0000:00:14.2: reg 0x10: [mem 0xdfb20000-0xdfb3ffff 64bit] [ 1.647536] pci 0000:00:14.2: reg 0x18: [io 0xe080-0xe09f] [ 1.647552] pci 0000:00:14.2: reg 0x20: [mem 0xdfc24000-0xdfc27fff 64bit] [ 1.647604] pci 0000:00:14.2: PME# supported from D0 D3hot D3cold [ 1.647739] pci 0000:00:14.3: [8086:1f41] type 00 class 0x020000 [ 1.647762] pci 0000:00:14.3: reg 0x10: [mem 0xdfb00000-0xdfb1ffff 64bit] [ 1.647770] pci 0000:00:14.3: reg 0x18: [io 0xe060-0xe07f] [ 1.647786] pci 0000:00:14.3: reg 0x20: [mem 0xdfc20000-0xdfc23fff 64bit] [ 1.647838] pci 0000:00:14.3: PME# supported from D0 D3hot D3cold [ 1.647980] pci 0000:00:16.0: [8086:1f2c] type 00 class 0x0c0320 [ 1.648008] pci 0000:00:16.0: reg 0x10: [mem 0xdfc37000-0xdfc373ff] [ 1.648115] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold [ 1.648243] pci 0000:00:17.0: [8086:1f22] type 00 class 0x010601 [ 1.648262] pci 0000:00:17.0: reg 0x10: [io 0xe150-0xe157] [ 1.648270] pci 0000:00:17.0: reg 0x14: [io 0xe140-0xe143] [ 1.648278] pci 0000:00:17.0: reg 0x18: [io 0xe130-0xe137] [ 1.648286] pci 0000:00:17.0: reg 0x1c: [io 0xe120-0xe123] [ 1.648294] pci 0000:00:17.0: reg 0x20: [io 0xe040-0xe05f] [ 1.648302] pci 0000:00:17.0: reg 0x24: [mem 0xdfc36000-0xdfc367ff] [ 1.648342] pci 0000:00:17.0: PME# supported from D3hot [ 1.648466] pci 0000:00:18.0: [8086:1f32] type 00 class 0x010601 [ 1.648485] pci 0000:00:18.0: reg 0x10: [io 0xe110-0xe117] [ 1.648493] pci 0000:00:18.0: reg 0x14: [io 0xe100-0xe103] [ 1.648501] pci 0000:00:18.0: reg 0x18: [io 0xe0f0-0xe0f7] [ 1.648509] pci 0000:00:18.0: reg 0x1c: [io 0xe0e0-0xe0e3] [ 1.648516] pci 0000:00:18.0: reg 0x20: [io 0xe020-0xe03f] [ 1.648524] pci 0000:00:18.0: reg 0x24: [mem 0xdfc35000-0xdfc357ff] [ 1.648565] pci 0000:00:18.0: PME# supported from D3hot [ 1.648696] pci 0000:00:1f.0: [8086:1f38] type 00 class 0x060100 [ 1.648878] pci 0000:00:1f.3: [8086:1f3c] type 00 class 0x0c0500 [ 1.648897] pci 0000:00:1f.3: reg 0x10: [mem 0xdfc34000-0xdfc3401f] [ 1.648928] pci 0000:00:1f.3: reg 0x20: [io 0xe000-0xe01f] [ 1.649153] pci 0000:01:00.0: [8086:1533] type 00 class 0x020000 [ 1.649190] pci 0000:01:00.0: reg 0x10: [mem 0xdf900000-0xdf9fffff] [ 1.649228] pci 0000:01:00.0: reg 0x1c: [mem 0xdfa00000-0xdfa03fff] [ 1.649267] pci 0000:01:00.0: reg 0x30: [mem 0xdf800000-0xdf8fffff pref] [ 1.649365] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold [ 1.649507] pci 0000:00:01.0: PCI bridge to [bus 01] [ 1.654067] pci 0000:00:01.0: bridge window [mem 0xdf800000-0xdfafffff] [ 1.654160] pci 0000:02:00.0: [8086:1533] type 00 class 0x020000 [ 1.654197] pci 0000:02:00.0: reg 0x10: [mem 0xdf600000-0xdf6fffff] [ 1.654235] pci 0000:02:00.0: reg 0x1c: [mem 0xdf700000-0xdf703fff] [ 1.654274] pci 0000:02:00.0: reg 0x30: [mem 0xdf500000-0xdf5fffff pref] [ 1.654371] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold [ 1.654512] pci 0000:00:02.0: PCI bridge to [bus 02] [ 1.659066] pci 0000:00:02.0: bridge window [mem 0xdf500000-0xdf7fffff] [ 1.659136] pci 0000:00:03.0: PCI bridge to [bus 03] [ 1.664146] pci 0000:04:00.0: [1b21:1182] type 01 class 0x060400 [ 1.664200] pci 0000:04:00.0: enabling Extended Tags [ 1.670124] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold [ 1.670249] pci 0000:00:04.0: PCI bridge to [bus 04-08] [ 1.675064] pci 0000:00:04.0: bridge window [io 0xd000-0xdfff] [ 1.675068] pci 0000:00:04.0: bridge window [mem 0xdf000000-0xdf4fffff] [ 1.675144] pci 0000:05:03.0: [1b21:1182] type 01 class 0x060400 [ 1.675198] pci 0000:05:03.0: enabling Extended Tags [ 1.680124] pci 0000:05:03.0: PME# supported from D0 D3hot D3cold [ 1.680226] pci 0000:05:07.0: [1b21:1182] type 01 class 0x060400 [ 1.680280] pci 0000:05:07.0: enabling Extended Tags [ 1.685123] pci 0000:05:07.0: PME# supported from D0 D3hot D3cold [ 1.685238] pci 0000:04:00.0: PCI bridge to [bus 05-08] [ 1.691068] pci 0000:04:00.0: bridge window [io 0xd000-0xdfff] [ 1.691073] pci 0000:04:00.0: bridge window [mem 0xdf000000-0xdf4fffff] [ 1.691131] pci 0000:05:03.0: PCI bridge to [bus 06] [ 1.696148] pci 0000:07:00.0: [17f3:1035] type 01 class 0x060400 [ 1.696316] pci 0000:07:00.0: PME# supported from D0 D3hot D3cold [ 1.696418] pci 0000:07:00.0: disabling ASPM on pre-1.1 PCIe device. You can enable it with 'pcie_aspm=force' [ 1.706074] pci 0000:05:07.0: PCI bridge to [bus 07-08] [ 1.711071] pci 0000:05:07.0: bridge window [io 0xd000-0xdfff] [ 1.711076] pci 0000:05:07.0: bridge window [mem 0xdf000000-0xdf4fffff] [ 1.711145] pci_bus 0000:08: extended config space not accessible [ 1.717098] pci 0000:08:00.0: [17f3:2200] type 00 class 0x030000 [ 1.717131] pci 0000:08:00.0: reg 0x10: [mem 0xdf000000-0xdf3fffff] [ 1.717149] pci 0000:08:00.0: reg 0x14: [mem 0xdf400000-0xdf41ffff] [ 1.717167] pci 0000:08:00.0: reg 0x18: [io 0xd000-0xd07f] [ 1.717230] pci 0000:08:00.0: reg 0x30: [mem 0xdf420000-0xdf42ffff pref] [ 1.717288] pci 0000:08:00.0: supports D1 D2 [ 1.717415] pci 0000:07:00.0: PCI bridge to [bus 08] [ 1.723067] pci 0000:07:00.0: bridge window [io 0xd000-0xdfff] [ 1.723074] pci 0000:07:00.0: bridge window [mem 0xdf000000-0xdf4fffff] [ 1.723080] pci 0000:07:00.0: bridge window [mem 0x00000000-0x000fffff pref] [ 1.723321] ACPI: PCI Interrupt Link [LNKA] (IRQs 6 7 10 *11 12 15) [ 1.729169] ACPI: PCI Interrupt Link [LNKB] (IRQs 6 7 *10 11 12 15) [ 1.736169] ACPI: PCI Interrupt Link [LNKC] (IRQs 6 *7 10 11 12 15) [ 1.742168] ACPI: PCI Interrupt Link [LNKD] (IRQs 6 7 10 11 12 *15) [ 1.748168] ACPI: PCI Interrupt Link [LNKE] (IRQs 6 7 10 11 12 *15) [ 1.755169] ACPI: PCI Interrupt Link [LNKF] (IRQs 6 7 *10 11 12 15) [ 1.761167] ACPI: PCI Interrupt Link [LNKG] (IRQs 6 7 10 *11 12 15) [ 1.767169] ACPI: PCI Interrupt Link [LNKH] (IRQs 6 *7 10 11 12 15) [ 1.775172] pci 0000:08:00.0: vgaarb: setting as boot VGA device [ 1.776057] pci 0000:08:00.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none [ 1.790065] pci 0000:08:00.0: vgaarb: bridge control possible