Issue #612 has been updated by Walter Sonius. File zbox-ci320nano-mmio-pm02-patch-force-pciec.zip added
Thanks for hinting this file `src/soc/intel/baytrail/pcie.c`, by looking at line 125 I now understand that there are just 4 lanes available... it could be setup in a way by the vendor that its not using the original bus names/locations for each of the 4 root ports using 1 lane, so other options are available that may block other slots because of the use of more lanes for one slot...etc etc After searching for `reg_script_run` I edited line 182 and 186 `dev->enabled = 0;` to `dev->enabled = 1;`. Now in the OS the 4 Rootports 1c.0-3 are listed with `lspci` and miniPCIe 1c.2 intel wifi works again and is correctly listed as PCI device 3 (with your recent MMIO 4G PM02 patch included). However the onboard Realtek NIC is still not listed... but this is offcourse just still a hack. Besides these PCIe bus setup issue I'm starting to think the Realtek may also has some GPIO / resetpin issue itself? Uploaded some more logs to show this forced rootport enabling. ---------------------------------------- Bug #612: coreboot blocks PCIe root port: reg_script_run_step / P.m CAP (Baytrail) https://ticket.coreboot.org/issues/612#change-2164 * Author: Walter Sonius * Status: New * Priority: Normal * Category: chipset configuration * Target version: none * Start date: 2025-10-13 * Affected versions: main * Affected hardware: ZOTAC ZBOX-CI320NANO series ---------------------------------------- The ZBOX-CI320NANO series from ZOTAC see code [CB:89528](https://review.coreboot.org/c/coreboot/+/89528) behaves different concerning enabling PCIe root ports via devicetree.cb compared to earlier Baytrail ports from Lenovo H500s [CB:89170](https://review.coreboot.org/c/coreboot/+/89170) and Jetway NF9N-2930 [CB:89279](https://review.coreboot.org/c/coreboot/+/89279). Although devicetree.cb lists all PCIe root ports for enabling 1c.0, 1c.1 1c.2, and 1c.3, coreboot first enables each device during early init: ``` ... [SPEW ] PCI: 00:00:1c.0: enabled 1 [SPEW ] PCI: 00:00:1c.1: enabled 1 [SPEW ] PCI: 00:00:1c.2: enabled 1 [SPEW ] PCI: 00:00:1c.3: enabled 1 ... [SPEW ] PCI: 00:00:1c.0: enabled 1 [SPEW ] PCI: 00:00:00.0: enabled 1 #force eth as builtin also tried without it? [SPEW ] PCI: 00:00:1c.1: enabled 1 [SPEW ] PCI: 00:00:1c.2: enabled 1 [SPEW ] PCI: 00:00:1c.3: enabled 1 ... ``` Later on disables each device except 1c.2 which contains miniPCIe wifi: ``` ... [SPEW ] PCI: 00:00:1c.0 [8086/0000] bus ops [DEBUG] No PCIe device present. [WARN ] reg_script_run_step: POLL timeout waiting for 0x328 to be 0x1000000, got 0x0 [DEBUG] PCI: 00:00:1c.0: Disabling device: 1c.0 [DEBUG] Power management CAP offset 0xa0. [DEBUG] PCI: 00:00:1c.0 [8086/0f48] disabled [SPEW ] PCI: 00:00:1c.1 [8086/0000] bus ops [DEBUG] No PCIe device present. [WARN ] reg_script_run_step: POLL timeout waiting for 0x328 to be 0x1000000, got 0x0 [DEBUG] PCI: 00:00:1c.1: Disabling device: 1c.1 [DEBUG] Power management CAP offset 0xa0. [DEBUG] PCI: 00:00:1c.1 [8086/0f4a] disabled [SPEW ] PCI: 00:00:1c.2 [8086/0000] bus ops [DEBUG] PCI: 00:00:1c.2 [8086/0f4c] enabled [SPEW ] PCI: 00:00:1c.3 [8086/0000] bus ops [DEBUG] No PCIe device present. [WARN ] reg_script_run_step: POLL timeout waiting for 0x328 to be 0x1000000, got 0x0 [DEBUG] PCI: 00:00:1c.3: Disabling device: 1c.3 [DEBUG] Power management CAP offset 0xa0. [DEBUG] PCI: 00:00:1c.3 [8086/0f4e] disabled ... [SPEW ] PCI: 00:00:1c.0: enabled 0 [SPEW ] PCI: 00:00:1c.1: enabled 0 [SPEW ] PCI: 00:00:1c.2: enabled 1 [SPEW ] PCI: 00:00:1c.3: enabled 0 ... ``` While the 1c.2 root port stays enabled it is not listed in the OS using lspci, however the miniPCIe WIFI device behind it does list and works. A Realtek RTL8111F Gb NIC on the PCIe 1c.0 root port remains undetected! This only misbehaves on the ZBOX, Lenovo and Jetway boards enable and do list their PCIe root ports including the devices on those root ports. The coreboot log mentions the following lines while unintentionally disabling a PCIe root port: ``` [WARN ] reg_script_run_step: POLL timeout waiting for 0x328 to be 0x1000000, got 0x0 [DEBUG] Power management CAP offset 0xa0. ``` Besides using devicetree.cb as a method to enable / disable devices, are there special GPIO values that may override this or Power management CAP offset values that I haven't yet set up correctly? Could this be an issue with the Realtek Gb adapter that needs a special gpio/reset pin and Kconfig option like the Asrock H110M-DVS (which also doesn't seem to have a working NIC)? Tried two coreboot code revisions including a older one that works fine on the earlier Baytrail Lenovo and Jetway ports and different EDK2 revs: ``` coreboot-25.06-77-g812d0e2f626d coreboot-25.09-70-g98a54453284e-dirty EDK2 (MrChromebox-2502/2505/2508) ``` Also tried disabling libgfxinit, removing VBT and following options: ``` CONFIG_RESOURCE_ALLOCATION_TOP_DOWN=n CONFIG_PCIEXP_COMMON_CLOCK=n CONFIG_PCIEXP_ASPM=n CONFIG_PCIEXP_L1_SUB_STATE=n CONFIG_PCIEXP_CLK_PM=n ``` It doesn't make a difference except that disabling TOP_DOWN breaks the miniPCIe which contradicts this recent patch[CB:89464](https://review.coreboot.org/c/coreboot/+/89464) and [BUG 611](https://ticket.coreboot.org/issues/611). Comparing the build .config of the Jetway with this ZOTAC only reveals this obvious difference which I still need to rule out, besides some uart/serial/sio options: ``` < CONFIG_USE_DDR3=y > CONFIG_DRAM_SUPPORT_DDR3=y #both boards use DDR3L SODIMM(s) (Jetway uses 2) ``` More and complete logs are available in the attachment zotac_zbox-ci320nano.zip. ---Files-------------------------------- zotac_zbox-ci320nano.zip (179 KB) zbox-ci320nano-mmio-pm02-patch.zip (79.6 KB) ONE_PAGE_SUMMARY.md (4.24 KB) zbox-ci320nano-mmio-pm02-patch-no000.zip (59.8 KB) zbox-ci320nano-mmio-pm02-patch-force-pciec.zip (41.3 KB) -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: https://ticket.coreboot.org/my/account _______________________________________________ coreboot mailing list -- [email protected] To unsubscribe send an email to [email protected]

