BPI-R4-Lite - building 25.12.0 RC5 SD card image to support 2 PCI, 1Lane (CN13, CN11)

In my BPI-R4-Lite I have a NVMe card (CN13) and an Intel WiFi card (CN11) in the two mini PCIe slots

The BPI-R3-Lite docs (Banana Pi BPI-R4 Lite design with Mediatek MT7987 chip | BananaPi Docs) shows two SD Card images for 24.10

  1. OpenWRT-24.10 MT76 OpenSource wifi driver wifi SDK for BE14000 Wifi Card (1 PCIE,2 Lane)
  2. OpenWRT-24.10 MT76 OpenSource wifi driver wifi SDK (2 PCIE, both have 1 Lane)

I have installed the image from link #2 and it shows the NVme card as well as WiFi cards in CN13 and CN11 respectively. However, this image is standalone with no repos to add other packages (not useful to me)

Given that 25.12.0 supports BPI-R4-Lite, I built a 25.12.0 RC5 SD card image but it defaults to 1 PCIE, 2 Lanes. The NVMe card (CN13) is detected but the WiFi card (CN11) is not.

Search shows that to enable 2 mini PCIe slots with 1-lane each, one must use the mt7987a-bananapi-bpi-r4-lite-2pcie-1L device tree overlay. This overlay configures the MT7987 SoC to split the PCIe interface into two independent 1-lane ports (PCIE0 and PCIE1), enabling both mPCIe slots (CN11 and CN13).

No specific kernel config is needed — the PCIe layout is defined entirely by the device tree. The OpenWrt build must have the correct device tree blob (mt7987a-bananapi-bpi-r4-lite-2pcie-1L.dtb).

However, the official image builder tar ball has the 1 PCIe, 2 Lane device tree blob only. ./target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7987a-bananapi-bpi-r4-lite.dtb

Where do I find or how to do I create a device tree blob for 2PCIe,1Lane (mt7987a-bananapi-bpi-r4-lite-2pcie-1L.dtb)?

The person who built the 24.10 images, please share the procedure on how you built the 2PCI, 1Lane image.

Thanks for your help.

Imho it is no separate image. The dtbo should be part of the fit image (itb) which is part of the sdcard image,but also built separately as initramfs-recovery (for testing).

I guess daniel builds it in same manner like R3/R4,so you can define bootconf_extra in uboot to apply the overlay.

edit: seems you have to change bootconf_base (see package/boot/uboot-mediatek/patches/470-add-bpi-r4-lite.patch)

bootconf_base=config-mt7987a-bananapi-bpi-r4-lite#mt7987a-bananapi-bpi-r4-lite-1pcie-2L

overlay target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-2pcie-1L.dtso is there and added in filogic.mk

Thanks for your reply. Indeed, looking at the file size of the SD card images (1PCIe/2L and 2PCIe/1L) they are the same but cmp shows they are different.

from ls -l
100532228 Sep 28 11:56 ./BPI-R4Lite-BE13500-WIFI_OpenWRT-24.10-SDK-V10-2PCIe-1L/openwrt-mediatek-filogic-bananapi_bpi-r4-lite-sdcard.img
100532228 Sep 28 11:56 ./BPI-R4Lite-BE13500-WIFI_OpenWRT-24.10-SDK-V10-1PCIe-2L/openwrt-mediatek-filogic-bananapi_bpi-r4-lite-sdcard.img

cmp results:
./BPI-R4Lite-BE13500-WIFI_OpenWRT-24.10-SDK-V10-2PCIe-1L/openwrt-mediatek-filogic-bananapi_bpi-r4-lite-sdcard.img ./BPI-R4Lite-BE13500-WIFI_OpenWRT-24.10-SDK-V10-1PCIe-2L/openwrt-mediatek-filogic-bananapi_bpi-r4-lite-sdcard.img differ: *byte 43446, line 59*

My exposure to building custom images is limited to using the OpenWrt imagebuilder procedure with larger root partitions and a list of packages specific to my needs.

The above is uncharted territory for me :melting_face:

The 25.12.0 RC5 imagebuilder tree does have a filogik.mk file

./openwrt-imagebuilder-25.12.0-rc5-mediatek-filogic.Linux-x86_64/target/linux/mediatek/image/filogic.mk

But it’s content looks different. Please guide me with the change(s) to make in the OpenWrt imagebuilder tree.

Thanks so much.

You do not need to rebuild openwrt. Just set the variable in uboot.

bootconf_base=config-mt7987a-bananapi-bpi-r4-lite#mt7987a-bananapi-bpi-r4-lite-1pcie-2L

This is the default,to see and change it temporary got into uboot console by choosing “exit” in the uboot menu (debug uart connection required).

printenv bootconf_base

or to set (for next boot)

setenv bootconf_base config-mt7987a-bananapi-bpi-r4-lite#mt7987a-bananapi-bpi-r4-lite-2pcie-1L

Then use “bootmenu” command to get back to menu and use the default entry for continue boot…now check in openwrt if your cards are detected.

Thanks for your guidance. I built a 25.12.0 RC5 SD Card image and set the bootconf_base variable several ways. Only 1 of the two cards is detected. Sharing the results below:

uboot
MT7987> printenv bootconf_base
bootconf_base=config-mt7987a-bananapi-bpi-r4-lite#mt7987a-bananapi-bpi-r4-lite-1pcie-2L

In openwrt
# lspci
00:00.0 PCI bridge: MEDIATEK Corp. Device 7987 (rev 01)
01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9C1a (DRAM-less)

uboot
MT7987> setenv bootconf_base config-mt7987a-bananapi-bpi-r4-lite#mt7987a-bananapi-bpi-r4-lite-2pcie-1L

MT7987> printenv bootconf_base                                                                        
bootconf_base=config-mt7987a-bananapi-bpi-r4-lite#mt7987a-bananapi-bpi-r4-lite-2pcie-1L

In openwrt
# lspci
00:00.0 PCI bridge: MEDIATEK Corp. Device 7987 (rev 01)
01:00.0 Network controller: Intel Corporation Wi-Fi 6E(802.11ax) AX210/AX1675* 2x2 [Typhoon Peak] (rev 1a)

uboot
MT7987> printenv bootconf_base
bootconf_base=config-mt7987a-bananapi-bpi-r4-lite#mt7987a-bananapi-bpi-r4-lite-1pcie-2L
MT7987> setenv bootconf_base config-mt7987a-bananapi-bpi-r4-lite
MT7987> printenv bootconf_base                                  
bootconf_base=config-mt7987a-bananapi-bpi-r4-lite

In openwrt
# lspci00:00.0 PCI bridge: MEDIATEK Corp. Device 7987 (rev 01)
01:00.0 Network controller: Intel Corporation Wi-Fi 6E(802.11ax) AX210/AX1675* 2x2 [Typhoon Peak] (rev 1a)

Only one of the two cards is detected irrespective of how the device tree overlay in bootcong_base is configured.

Whereas booting with the Banana PI BPI-R4Lite-BE13500-WIFI_OpenWRT-24.10-SDK-V10-2PCIe-1L SD card Image this is what I get

uboot
MT7987> printenv bootconf_base
bootconf_base=config-mt7987a-bananapi-bpi-r4-lite

# lspci
0000:00:00.0 PCI bridge: MEDIATEK Corp. Device 7987 (rev 01)
0000:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9C1a (DRAM-less)
0001:00:00.0 PCI bridge: MEDIATEK Corp. Device 7987 (rev 01)
0001:01:00.0 Network controller: Intel Corporation Wi-Fi 6E(802.11ax) AX210/AX1675* 2x2 [Typhoon Peak] (rev 1a)

I am guessing the BPI image is built with a “custom” DTS for the 2PCIe,1L config. I would appreciate any further guidance to detect the NVMe and WiFi cards in 25.12.0 RC5.

Second one should be right. Can you please post complete bootlog of this?

And maybe post result of printing content of related sysfs entries?

Should be in /sys/firmware/devicetree/base…cannot look atm

I am providing the bootlog (minicom capture) for both the images.

  1. My OpenWrt 25.12.0 RC5 (bootconf_base 2PCIe,1L) - build using the openwrt-imagebuilder-25.12.0-rc5-mediatek-filogic.Linux-x86_64.tar.zst

    Please check the bootlog in attachment file minicom-bpir4lite-25.12.rc5-2pcie-1l.txt minicom-bpir4lite-25.12.rc5-2pcie-1l.cap (54.3 KB)

  2. BananaPi OpenWrt 24.10-Snapshot (2 PCIe, 1L)

    Please check the bootlog in attachment minicom-bpir4lite-24.10-snapshot-2pcie-1l.txt minicom-bpir4lite-24.10-snapshot-2pcie-1l.cap (57.1 KB)

I could not find anything like the DTS file excerpt you show in /sys/ dir tree

Here is a list of directories that show PCI information

/sys/firmware/devicetree/base/soc/pcie@11280000
/sys/firmware/devicetree/base/soc/pcie@11290000
# ls -l /sys/firmware/devicetree/base/soc/pcie@11280000
-r--r--r--    1 root     root             4 Mar  3 00:24 #address-cells
-r--r--r--    1 root     root             4 Mar  3 00:24 #interrupt-cells
-r--r--r--    1 root     root             4 Mar  3 00:24 #size-cells
-r--r--r--    1 root     root             8 Mar  3 00:24 bus-range
-r--r--r--    1 root     root            43 Mar  3 00:24 clock-names
-r--r--r--    1 root     root            40 Mar  3 00:24 clocks
-r--r--r--    1 root     root            42 Mar  3 00:24 compatible
-r--r--r--    1 root     root             4 Mar  3 00:24 device_type
drwxr-xr-x    2 root     root             0 Mar  3 00:24 interrupt-controller
-r--r--r--    1 root     root            96 Mar  3 00:24 interrupt-map
-r--r--r--    1 root     root            16 Mar  3 00:24 interrupt-map-mask
-r--r--r--    1 root     root            12 Mar  3 00:24 interrupts
-r--r--r--    1 root     root             4 Mar  3 00:24 linux,pci-domain
-r--r--r--    1 root     root             5 Mar  3 00:24 name
-r--r--r--    1 root     root             4 Mar  3 00:24 phandle
-r--r--r--    1 root     root             4 Mar  3 00:24 pinctrl-0
-r--r--r--    1 root     root             8 Mar  3 00:24 pinctrl-names
-r--r--r--    1 root     root            56 Mar  3 00:24 ranges
-r--r--r--    1 root     root            16 Mar  3 00:24 reg
-r--r--r--    1 root     root             9 Mar  3 00:24 reg-names
-r--r--r--    1 root     root             5 Mar  3 00:24 status

and

# ls -l /sys/firmware/devicetree/base/soc/pcie@11290000
-r--r--r--    1 root     root             4 Mar  3 00:25 #address-cells
-r--r--r--    1 root     root             4 Mar  3 00:25 #interrupt-cells
-r--r--r--    1 root     root             4 Mar  3 00:25 #size-cells
-r--r--r--    1 root     root             8 Mar  3 00:25 bus-range
-r--r--r--    1 root     root            43 Mar  3 00:25 clock-names
-r--r--r--    1 root     root            40 Mar  3 00:25 clocks
-r--r--r--    1 root     root            84 Mar  3 00:25 compatible
-r--r--r--    1 root     root             4 Mar  3 00:25 device_type
drwxr-xr-x    2 root     root             0 Mar  3 00:25 interrupt-controller
-r--r--r--    1 root     root            96 Mar  3 00:25 interrupt-map
-r--r--r--    1 root     root            16 Mar  3 00:25 interrupt-map-mask
-r--r--r--    1 root     root            12 Mar  3 00:25 interrupts
-r--r--r--    1 root     root             4 Mar  3 00:25 linux,pci-domain
-r--r--r--    1 root     root             5 Mar  3 00:25 name
-r--r--r--    1 root     root             4 Mar  3 00:25 phandle
-r--r--r--    1 root     root             4 Mar  3 00:25 pinctrl-0
-r--r--r--    1 root     root             8 Mar  3 00:25 pinctrl-names
-r--r--r--    1 root     root            56 Mar  3 00:25 ranges
-r--r--r--    1 root     root            16 Mar  3 00:25 reg
-r--r--r--    1 root     root             9 Mar  3 00:25 reg-names
-r--r--r--    1 root     root             5 Mar  3 00:25 status

The imagebuilder tar ball contains bpi-r4-lite device tree files:

$ find -iname '*-bpi-r4-lite-*.d*'
./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-sd.dtso
./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-emmc.dtso
./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-nand.dtso
./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-2pcie-1L.dtso
./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-1pcie-2L.dtso
./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-mikrobus.dtsi
./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-nor.dtso
./build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7987a-bananapi-bpi-r4-lite-sd.dtbo
./build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7987a-bananapi-bpi-r4-lite-1pcie-2L.dtbo
./build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7987a-bananapi-bpi-r4-lite-nor.dtbo
./build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7987a-bananapi-bpi-r4-lite-2pcie-1L.dtbo
./build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7987a-bananapi-bpi-r4-lite-nand.dtbo
./build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7987a-bananapi-bpi-r4-lite-emmc.dtbo

File: ./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-1pcie-2L.dtso

$ cat ./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-1pcie-2L.dtso

// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright (C) 2025 MediaTek Inc.
 * Author: Sam.Shih <[email protected]>
 */

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>

/ {
        compatible = "bananapi,bpi-r4-lite",
                     "mediatek,mt7987a", "mediatek,mt7987";
};

/ {
        fragment@0 {
                target-path = "/soc/pinctrl@1001f000";
                __overlay__ {
                        pcie_sel: aw35710qnr_sel {
                                gpio-hog;
                                gpios = <11 GPIO_ACTIVE_HIGH>;
                                output-high;
                        };
                };
        };

        fragment@1 {
                target-path = "/soc/pcie@11290000";
                __overlay__ {
                        status = "disabled";
                };
        };
};

File: ./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-2pcie-1L.dtso

$ cat ./target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite-2pcie-1L.dtso
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright (C) 2025 MediaTek Inc.
 * Author: Sam.Shih <[email protected]>
 */

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>

/ {
        compatible = "bananapi,bpi-r4-lite",
                     "mediatek,mt7987a", "mediatek,mt7987";
};

/ {
        fragment@0 {
                target-path = "/soc/pinctrl@1001f000";
                __overlay__ {
                        pcie_sel: aw35710qnr_sel {
                                gpio-hog;
                                gpios = <11 GPIO_ACTIVE_HIGH>;
                                output-low;
                        };
                };
        };

        fragment@1 {
                target-path = "/soc/pcie@11290000";
                __overlay__ {
                        status = "okay";
                };
        };
};

Please let me know what else to look for and debug. Thanks ()

Both logs show the

Trying ‘fdt-mt7987a-bananapi-bpi-r4-lite-2pcie-1L’ fdt subimage

Without error so it looks llike correct.

In sysfs try to find the gpio-hog property and check its value with cat or better hexdump. Afair gpio is supported by generic of-gpio driver (in uboot there is a gpio hog driver).

You can also look in /sys/kernel/debug/gpio if aw35710qnr_sel is defined and and out-low

This is what I was able to get from OpenWrt 25.12.0 RC5 BPI-R4-Lite build using the Imagebuilder toolkit (details posted below)

  1. gpio_hog - no content
  2. /sys/kernel/debug/gpio - no content

# find /sys -iname '*gpio-hog*'
/sys/firmware/devicetree/base/soc/pinctrl@1001f000/aw35710qnr_sel/gpio-hog

# du /sys/firmware/devicetree/base/soc/pinctrl@1001f000/aw35710qnr_sel/gpio-hog
0       /sys/firmware/devicetree/base/soc/pinctrl@1001f000/aw35710qnr_sel/gpio-ho

hexdump /sys/firmware/devicetree/base/soc/pinctrl@1001f000/aw35710qnr_sel/gpio-hog
<no content>

find /sys -iname '*aw35710qnr_sel*'

# find /sys -iname '*aw35710qnr_sel*'
/sys/firmware/devicetree/base/soc/pinctrl@1001f000/aw35710qnr_sel

# ls -1 /sys/firmware/devicetree/base/soc/pinctrl@1001f000/aw35710qnr_sel/
gpio-hog
gpios
name
output-low
phandle

# du /sys/firmware/devicetree/base/soc/pinctrl@1001f000/aw35710qnr_sel/output-low
0       /sys/firmware/devicetree/base/soc/pinctrl@1001f000/aw35710qnr_sel/output-low
root@OpenWrt: ~ >
# hexdump /sys/firmware/devicetree/base/soc/pinctrl@1001f000/aw35710qnr_sel/output-low
<no content>

# du /sys/kernel/debug/gpio
0       /sys/kernel/debug/gpio

The data from the BPI 24.10 Snapshot image looks the same as above so I haven’t posted it here.

Sysfs with devicetree gpio-hog looks good so far…maybe somehow not bound to driver.

please do

cat /sys/kernel/debug/gpio

Learnt something new - a zero byte storage device file has information :wink:

Hopefully, this can shed some light on the issue

# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 512-561, parent: platform/1001f000.pinctrl, pinctrl_moore:
 gpio-512 (                    |wps                 ) in  hi IRQ ACTIVE LOW
 gpio-513 (                    |reset               ) in  hi IRQ ACTIVE LOW
 gpio-514 (                    |interrupt           ) in  hi IRQ 
 gpio-520 (                    |tx-disable          ) out hi 
 gpio-521 (                    |mod-def0            ) in  lo IRQ ACTIVE LOW
 gpio-522 (                    |los                 ) in  hi IRQ 
 gpio-523 (                    |aw35710qnr_sel      ) out lo 
 gpio-532 (                    |cd                  ) in  lo IRQ ACTIVE LOW
 gpio-553 (                    |interrupt           ) in  lo IRQ 
 gpio-554 (                    |reset               ) out hi 

gpiochip1: GPIOs 562-577, parent: i2c/4-0020, 4-0020, can sleep:
 gpio-571 (                    |regulator-usb-5v    ) out hi 
 gpio-573 (                    |green:sfp           ) out hi ACTIVE LOW
 gpio-574 (                    |tx-fault            ) in  lo IRQ 
 gpio-575 (                    |rate-select0        ) in  hi 
 gpio-576 (                    |rate-select1        ) in  lo 

It is a virtual file…similar to a socket,just as interface to kernel or like procfs (/proc/).

Looks good so far,so overlay applied and gpio set. pcie@11290000 is also enabled…so looked back in dmesg and saw this:

[    0.590624] /soc/pcie@11290000: Failed to get clk index: 0 ret: -517
[    0.597005] mtk-pcie-gen3 11290000.pcie: failed to get clocks

found clk driver located in current openwrt/main:

But pcie clocks seem to miss definition,or am i wrong? Only see const and const 2 string mapping,but not more…

@dangowrt

@frank-w I sincerely appreciate your time and effort in helping debug this issue. It’s been a while since I have coded (last time c. 1993) and I completely missed the fact /sys is a virtual file system - thanks for refreshing my mind.

Re the .dtsi file and the .patch file you have referenced, please advise the next steps.

FWIW here is the debug/gpio content for the BPI 24.10 BPI-R4-Lite 2PCIe,1L image.

# 
# cat /sys/kernel/debug/gpio 
gpiochip0: GPIOs 512-561, parent: platform/1001f000.pinctrl, pinctrl_moore:
 gpio-512 (                    |wps                 ) in  hi IRQ ACTIVE LOW
 gpio-513 (                    |reset               ) in  hi IRQ ACTIVE LOW
 gpio-520 (                    |tx-disable          ) out hi 
 gpio-521 (                    |mod-def0            ) in  lo IRQ ACTIVE LOW
 gpio-522 (                    |los                 ) in  hi IRQ 
 gpio-523 (                    |aw35710qnr_sel      ) in  lo
 gpio-554 (                    |reset               ) out hi 

gpiochip1: GPIOs 562-577, parent: i2c/4-0020, 4-0020, can sleep:

Here the gpio-523 is in lo whereas for the 25.12.0 RC5 image it is out lo

Looking at the dmesg (minicom capture files) both images report the failed to get clocks

BPI 24.10 Snapshot image 2PCIe,1L

[    0.076523] mtk-pcie-gen3 11280000.pcie: host bridge /soc/pcie@11280000 ranges:
[    0.076557] mtk-pcie-gen3 11280000.pcie: Parsing ranges property...
[    0.076573] mtk-pcie-gen3 11280000.pcie:       IO 0x0020000000..0x00201fffff -> 0x0020000000
[    0.076586] mtk-pcie-gen3 11280000.pcie:      MEM 0x0020200000..0x002fffffff -> 0x0020200000
[    0.076624] /soc/pcie@11280000: Failed to get clk index: 0 ret: -517
[    0.076633] mtk-pcie-gen3 11280000.pcie: failed to get clocks
[    0.076725] mtk-pcie-gen3 11290000.pcie: host bridge /soc/pcie@11290000 ranges:
[    0.076736] mtk-pcie-gen3 11290000.pcie: Parsing ranges property...
[    0.076747] mtk-pcie-gen3 11290000.pcie:       IO 0x0030000000..0x00301fffff -> 0x0030000000
[    0.076757] mtk-pcie-gen3 11290000.pcie:      MEM 0x0030200000..0x003fffffff -> 0x0030200000
[    0.076775] /soc/pcie@11290000: Failed to get clk index: 0 ret: -517
[    0.076784] mtk-pcie-gen3 11290000.pcie: failed to get clocks

Openwrt 25.12.0 rc5 image

[    0.517463] mtk-pcie-gen3 11280000.pcie: host bridge /soc/pcie@11280000 ranges:
[    0.524847] mtk-pcie-gen3 11280000.pcie: Parsing ranges property...
[    0.531146] mtk-pcie-gen3 11280000.pcie:       IO 0x0020000000..0x00201fffff -> 0x0020000000
[    0.539629] mtk-pcie-gen3 11280000.pcie:      MEM 0x0020200000..0x002fffffff -> 0x0020200000
[    0.548156] /soc/pcie@11280000: Failed to get clk index: 0 ret: -517
[    0.554540] mtk-pcie-gen3 11280000.pcie: failed to get clocks
[    0.560438] mtk-pcie-gen3 11290000.pcie: host bridge /soc/pcie@11290000 ranges:
[    0.567792] mtk-pcie-gen3 11290000.pcie: Parsing ranges property...
[    0.574091] mtk-pcie-gen3 11290000.pcie:       IO 0x0030000000..0x00301fffff -> 0x0030000000
[    0.582565] mtk-pcie-gen3 11290000.pcie:      MEM 0x0030200000..0x003fffffff -> 0x0030200000
[    0.591063] /soc/pcie@11290000: Failed to get clk index: 0 ret: -517
[    0.597446] mtk-pcie-gen3 11290000.pcie: failed to get clocks

Bpi imaged works with clock error and gpio “in lo” (should be wrong)? Clock error itself is -517 which is EProbeDefer,meaning something is not ready (here infracfg clock device) and should be tried again (but i did not see this final attempt in the logs).

In the BPI provided 24.10 snapshot image, apart from seeing the NVMe and WiFi cards being detected, I am unable to test. The image does not have the kmods for NVMe and my WiFi card.

For the 25.12 RC5, I want to get both cards detected before testing their respective functionality. I’ll have to test them by placing each in the CN13 slot one at a time.