Friendlyelec NanoPi M5
Simon Glass
sjg at chromium.org
Sat May 23 02:41:43 CEST 2026
Hi Alexey,
On Fri, 22 May 2026 at 00:24, Alexey Charkov <alchark at flipper.net> wrote:
>
> Hi Simon,
>
> On Fri, May 22, 2026 at 3:22 AM Simon Glass <sjg at chromium.org> wrote:
> >
> > Hi,
> >
> > I am trying to make Friendlyelec NanoPi M5 (RK3576) work with
> > mainline. I found the note about needing a workaround so have tried
> > kwiboo/rk3576 at
> >
> > https://github.com/Kwiboo/u-boot-rockchip.git
> >
> > I am building like this:
> >
> > $ ROCKCHIP_TPL=~/dev/rkbin/bin/rk35/rk3576_ddr_lp4_2112MHz_lp5_2736MHz_v1.09.bin
> > BL31=~/dev/rkbin/bin/rk35/rk3576_bl31_v1.20.elf um build
> > nanopi-m5-rk3576
>
> FWIW, upstream TF-A master branch works well as BL31 on RK3576, though
> it's most probably unrelated to the issue you're seeing
OK, thanks.
>
> > Image 'simple-bin' is missing optional external blobs but is still
> > functional: tee-os
> >
> > /binman/simple-bin/fit/images/@tee-SEQ/tee-os (tee-os):
> > See the documentation for your board. You may need to build Open Portable
> > Trusted Execution Environment (OP-TEE) and build with TEE=/path/to/tee.bin
> >
> > Image 'simple-bin-spi' is missing optional external blobs but is still
> > functional: tee-os
> >
> > /binman/simple-bin-spi/fit/images/@tee-SEQ/tee-os (tee-os):
> > See the documentation for your board. You may need to build Open Portable
> > Trusted Execution Environment (OP-TEE) and build with TEE=/path/to/tee.bin
> >
> > $ dd if=/tmp/b/nanopi-m5-rk3576/u-boot-rockchip.bin of=/dev/sda seek=64
> > 18579+0 records in
> > 18579+0 records out
> > 9512448 bytes (9.5 MB, 9.1 MiB) copied, 1.99658 s, 4.8 MB/s
> >
> > I get no serial output at all booting from SD card. Is there a special
> > trick I am missing? I have confirmed that the Alpine Linux image works
> > OK.
>
> Dumb question: did you flip the switch on the back side of the board
> from FSPI1 to UFS/SD?
Yes it is set to UFS/SC.
>
> If yes, then having no serial output at all most likely means the
> boost.bin trick from Jonas' WIP patch didn't apply, because the DDR
> trainer unconditionally spits out some logs on the debug UART during
> early init.
>
> The SD card might also be finicky, so if you happen to have an SPI
> flash equipped board then you can flash U-boot there instead via
> Maskrom. Just remove all other storage, connect a USB A-A cable to the
> top USB 3.0 port, and power it up while holding the maskrom button.
I am not sure how to power the board other than through the
>
> Then:
> rockusb download-boot rk3576_loader_fspi1_v1.13.100.bin
> # note the zero below, because u-boot-rockchip-spi.bin already has a
> 64-sector offset baked in, unlike u-boot-rockchip.bin:
> rockusb write-file 0 u-boot-rockchip-spi.bin
> rockusb reset-device
With this I was able to get it to SPL:
DDR 2f85f4b2d4 cym 24/11/07-19:07:28,fwver: v1.09
In
ch0 ttot6
ch1 ttot6
ch0 ttot7
LPDDR5, 2736MHz
channel[0] BW=16 Col=10 Bk=16 CS0 Row=16 CS=1 Die BW=16 Size=1536MB
ch1 ttot7
channel[1] BW=16 Col=10 Bk=16 CS0 Row=16 CS=1 Die BW=16 Size=1536MB
Manufacturer ID:0xff
CH0 RX Vref:24.1%, RX DQS Vref:29.6%, TX Vref:19.0%,0.0%
DQ roc:
p4 n2, p6 n7, p5 n0, p1 n0, p0 n0, p0 n4, p3 n0, p7 n0, p3 n0,
p4 n2, p5 n0, p2 n2, p0 n2, p7 n0, p2 n0, p6 n0, p7 n0, p6 n4,
DQ rds:l0 l0 h1 l0 l0 l0 l0 l0, l0 l0 h1 l0 l0 l0 l0 l0
DQS roc: p2, n0, p1, n0
CH1 RX Vref:25.7%, RX DQS Vref:29.2%, TX Vref:20.0%,0.0%
DQ roc:
p2 n0, p7 n0, p2 n0, p1 n0, p2 n0, p0 n1, p3 n0, p5 n0, p7 n0,
p6 n0, p3 n2, p3 n0, p2 n0, p2 n0, p6 n0, p0 n0, p0 n2, p0 n0,
DQ rds:l0 h2 l0 l0 l0 l0 l0 h1, l0 l0 l0 l0 h1 l0 h1 l0
DQS roc: p2, n0, p2, n0
stride=0x3, ddr_config=0x2
hash bank_mask0-3 0x0 0x2100 0x44200 0x88400, rank_mask0 0x0
change to F1: 534MHz
ch0 ttot6
ch1 ttot6
change to F2: 1320MHz
ch0 ttot8
ch1 ttot8
change to F3: 1968MHz
ch0 ttot6
ch1 ttot6
change to F0: 2736MHz
ch0 ttot7
ch1 ttot7
out
U-Boot SPL 2026.01-00014-gf6f1066339a5 (May 22 2026 - 18:32:58 -0600)
Trying to boot from MMC1
Card did not respond to voltage select! : -110
spl: mmc init failed with error: -95
Error: -95
SPL: Unsupported Boot Device!
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
It seems to boot from SPI but then try to switch to MMC?
I also found that if I 'dd if=/tmp/image of=/dev/sda count=2000' from
the good Alpine image, it ends up in the U-Boot I built (although of
course I have not built the earlier parts).
>
> Loader binary can be assembled from rkbin blobs, or alternatively
> taken from e.g. here:
> https://dl-linux-images.flipp.dev/u-boot/u%3D1afdc52186635bb599642064ee7c23f539b73e3c/rk%3D495eec7a93220b1269e915e684c5667250462a3d__tfa%3Dfc3691b5022abd9feba6c37330005b7437cccf9f/nanopi-m5/rk3576_loader_fspi1_v1.13.100.bin
>
> rockusb tool: cargo install rockusb --example rockusb --features=nusb
Thanks very much for taking the time to help with this!
Regards,
Simon
More information about the U-Boot
mailing list