Download raw body.
riscv64: efiboot: Fix DTB path for Banana PI BPI F3 board
On Sun, Jul 12, 2026 at 07:38:09PM +0000, Miguel Landaeta wrote:
> Hi,
>
> I recently installed -current on this board and I noticed the following
> error at boot time because it was broking the installer (since no DTB
> was loaded, nothing started after devices discovery)
>
> > cannot open sd0a:/etc/firmware/dtb/k1-bananapi-f3.dtb
>
> You can workaround this by just copying the dtb to the expected path but
> I think the proper fix should be to correct the location in the bootloader.
Indeed. I'll commit it soonish unless kettenis@ beats me to it (ok jca@).
> diff --git a/sys/arch/riscv64/stand/efiboot/efiboot.c b/sys/arch/riscv64/stand/efiboot/efiboot.c
> index cc1034d8f4c..f79cc151803 100644
> --- a/sys/arch/riscv64/stand/efiboot/efiboot.c
> +++ b/sys/arch/riscv64/stand/efiboot/efiboot.c
> @@ -991,7 +991,7 @@ struct fdt_dtb {
> { "Milk-V(M1) Jupiter",
> "spacemit/k1-milkv-jupiter.dtb" },
> { "spacemit k1-x deb1 board",
> - "k1-bananapi-f3.dtb" },
> + "spacemit/k1-bananapi-f3.dtb" },
> { "spacemit k1-x evb board",
> "spacemit/k1-milkv-jupiter.dtb" },
> };
>
>
> If useful, you can see the full dmesg after successful installation below:
dmesg is always useful!
>
> OpenBSD 7.9-current (GENERIC.MP) #35: Fri Jul 10 12:52:59 MDT 2026
> deraadt@riscv64.openbsd.org:/usr/src/sys/arch/riscv64/compile/GENERIC.MP
> real mem = 2147483648 (2048MB)
> avail mem = 2013499392 (1920MB)
> SBI: OpenSBI v1.3, SBI Specification Version 1.0
> random: good seed from bootblocks
> mainbus0 at root: Banana Pi BPI-F3
> cpu0 at mainbus0: SpacemiT X60 imp 1000000049772200
> intc0 at cpu0
> cpu0: 32KB 64b/line 128-way L1 I-cache, 32KB 64b/line 128-way L1 D-cache
> cpu0: 512KB 64b/line 512-way L2 cache
> cpu1 at mainbus0: SpacemiT X60 imp 1000000049772200
> cpu1: 32KB 64b/line 128-way L1 I-cache, 32KB 64b/line 128-way L1 D-cache
> cpu1: 512KB 64b/line 512-way L2 cache
> cpu2 at mainbus0: SpacemiT X60 imp 1000000049772200
> cpu2: 32KB 64b/line 128-way L1 I-cache, 32KB 64b/line 128-way L1 D-cache
> cpu2: 512KB 64b/line 512-way L2 cache
> cpu3 at mainbus0: SpacemiT X60 imp 1000000049772200
> cpu3: 32KB 64b/line 128-way L1 I-cache, 32KB 64b/line 128-way L1 D-cache
> cpu3: 512KB 64b/line 512-way L2 cache
> cpu4 at mainbus0: SpacemiT X60 imp 1000000049772200
> cpu4: 32KB 64b/line 128-way L1 I-cache, 32KB 64b/line 128-way L1 D-cache
> cpu4: 512KB 64b/line 512-way L2 cache
> cpu5 at mainbus0: SpacemiT X60 imp 1000000049772200
> cpu5: 32KB 64b/line 128-way L1 I-cache, 32KB 64b/line 128-way L1 D-cache
> cpu5: 512KB 64b/line 512-way L2 cache
> cpu6 at mainbus0: SpacemiT X60 imp 1000000049772200
> cpu6: 32KB 64b/line 128-way L1 I-cache, 32KB 64b/line 128-way L1 D-cache
> cpu6: 512KB 64b/line 512-way L2 cache
> cpu7 at mainbus0: SpacemiT X60 imp 1000000049772200
> cpu7: 32KB 64b/line 128-way L1 I-cache, 32KB 64b/line 128-way L1 D-cache
> cpu7: 512KB 64b/line 512-way L2 cache
> "clocks" at mainbus0 not configured
> simplebus0 at mainbus0: "soc"
> smtclock0 at simplebus0
> smtpinctrl0 at simplebus0
> smtclock1 at simplebus0
> plic0 at simplebus0
> "system-controller" at simplebus0 not configured
> "system-controller" at simplebus0 not configured
> smtiic0 at simplebus0
> iic0 at smtiic0
> "atmel,24c02" at iic0 addr 0x50 not configured
> "phy" at simplebus0 not configured
> smtcomphy0 at simplebus0
> smtcomphy1 at simplebus0
> smtcomphy2 at simplebus0
> smtgpio0 at simplebus0
> smtiic1 at simplebus0
> iic1 at smtiic1
> smtpmic0 at iic1 addr 0x41
> "system-controller" at simplebus0 not configured
> "clock-controller" at simplebus0 not configured
> "timer" at simplebus0 not configured
> "system-controller" at simplebus0 not configured
> simplebus1 at simplebus0: "camera-bus"
> simplebus2 at simplebus0: "dma-bus"
> "dma-controller" at simplebus2 not configured
> com0 at simplebus2: pxa2x0, 32 byte fifo
> com0: console
> "spi" at simplebus2 not configured
> simplebus3 at simplebus0: "multimedia-bus"
> simplebus4 at simplebus0: "network-bus"
> smte0 at simplebus4: address fe:fe:fe:xx:xx:xx
> rgephy0 at smte0 phy 1: RTL8169S/8110S/8211, rev. 6
> smte1 at simplebus4: address fe:fe:fe:yy:yy:yy
> rgephy1 at smte1 phy 1: RTL8169S/8110S/8211, rev. 6
So your bpi also doesn't have its mac addresses written into its
eeprom, or your u-boot version doesn't know how to access it. On my
machine, the u-boot version from bianbu attempts to save the
random-ish mac address(es) to u-boot env, which I then saved
to get stable addresses.
> simplebus5 at simplebus0: "pcie-bus"
> dwpcie0 at simplebus5
> dwpcie1 at simplebus5
> pci0 at dwpcie0
> ppb0 at pci0 dev 0 function 0 "SpacemiT K1" rev 0x00
> pci1 at ppb0 bus 1
> nvme0 at pci1 dev 0 function 0 "Samsung PM991" rev 0x00: msix, NVMe 1.4
> nvme0: Samsung SSD 980 1TB, firmware 3B4QFXO7, serial ZZZZZZZZZZZZZZZ
> scsibus0 at nvme0: 2 targets, initiator 0
> sd0 at scsibus0 targ 1 lun 0: <NVMe, Samsung SSD 980, 3B4Q>
> sd0: 953869MB, 512 bytes/sector, 1953525168 sectors
> pci2 at dwpcie1
> ppb1 at pci2 dev 0 function 0 "SpacemiT K1" rev 0x00
> pci3 at ppb1 bus 1
> simplebus6 at simplebus0: "storage-bus"
> xhci0 at simplebus6, xHCI 1.10
> xhci0: reset timeout
> xhci0: init failed, error=5
> "mmc" at simplebus6 not configured
> gpioleds0 at mainbus0: "sys-led" (trigger)
> "regulator-pcie-vcc3v3" at mainbus0 not configured
> "regulator-dc-in-12v" at mainbus0 not configured
> "regulator-vcc5v0-sys" at mainbus0 not configured
> "regulator-vcc-4v" at mainbus0 not configured
> "regulator-usb3-vbus-5v" at mainbus0 not configured
> "regulator-usb3-hub-5v" at mainbus0 not configured
> "framebuffer" at mainbus0 not configured
> vscsi0 at root
> scsibus1 at vscsi0: 256 targets
> softraid0 at root
> scsibus2 at softraid0: 256 targets
> root on sd0a (3eb3671fda512163.a) swap on sd0b dump on sd0b
>
--
jca
riscv64: efiboot: Fix DTB path for Banana PI BPI F3 board