A lot of questions about the Rock 5B! Anyone know?

Greetings all!

I am very happy I found Radxa, and specifically about the Rock 5B board! I think once software support matures it will make an excellent machine (how long will that take, though??)!!! But the wiki is very bare on information, and I have a lot of questions (arguably TOO many)!! So I am hoping someone who has insider info about this board will be able to answer.

Let’s start:

What is make/model of SPI flash on underside of the board? This is where U-Boot (and ATF?) is stored? Can we write to the entire contents of the Flash chip via SPI? It is SOIC-8 package, correct? I actually just made a post in the dev forum asking questions about the boot process on this board. I don’t know if it is annoying to paste it again here, so I will just link to the post (the Rock 5B-related questions are at the bottom long paragraph):

Speaking of writing to SPI, I see the Rock Pi 4 can do this via USB-OTG (after you short out a couple pins to tell maskrom code to ignore SPI flash entirely, but what is SPI Flash is empty/corrupted, do you still need to short this out?). How does the rk3399_loader_v1.20.119.bin work to help boot the SOC, is there source for this? I do not see OTG mentioned in Rock 5B GPIO pins or on the labeled PCB pictures. Does Rock 5B have an OTG port? What about GPIO pins to short out the SPI Flash to boot in “maskrom mode”? Without these two features, I do not know how to write to eMMC (or NVMe SSD?) via USB… actually you could probably do it via the network, PXE, right? I read this page:


And it is not entirely clear to me when it says “we must install uboot on spi flash or emmc or microSD”, as I understand it U-Boot is required to already BE installed on the Rock Pi somewhere in order to connect to the TFTP server, so it should not say “we must install uboot” but rather “U-Boot must already be installed”, is this right? Next it says to “enter uboot” and run setenv commands so it seems aparent this requires a functioning U-Boot to be somewhere the maskrom knows how to load with PXE support. Important here: what method do you use to enter the commands and see output from early stage U-Boot on the Rock 5B? The page continues to confuse me with a new heading called “Diskless start”… but I thought the process avove was precisely FOR diskless start, at least assuming the U-Boot was on the SPI Flash… Obviously the diskless start goes further to have an NFS mount for / filesystem so you can have usable OS via a network share, but what was the point higher up in the page to just load kernel, DTBs, and initrd via TFTP and not do anything else? No userland…? If there is no OTG on Rock 5B, will PXE be the only method of going straight from U-Boot --> fresh system image on internal storage?

What is the maximum capacity and speed of the microSD card? It supports some kind of microSDXC? I’m guessing no microSDUC cards are not supported? Does it support UHS-I, UHS-II, UHS-III, or SD Express? A definite bus speed in MB/s would be appreciated.

The Wifi slot is E Key… how unlikely is it to plug an A+E Key card or even a mini pci express card into this slot with some kind of adapter? Is this E Key slot really only PCI Express 2.0 (×1 link)? This is max 5 Gbit/s (500 MB/s) but the specs advertise 802.11ax support which can theoretically hit max 11 Gbit/s (1375 MB/s). If this is right, the bus on this slot is 6 Gbit/s too slow for the advertised 802.11ax support. Can anyone confirm these numbers? Might as well get an older card if so… What other devices can be plugged into this E Key slot besides Wifi?

Will the board ship with a heatsink over the SOC? Is this recommended if we plan on utilising all the cores?

Is there any in progress enclosures/cases for this board? Who would be making them and where? Obviously I/O ports and LEDs should be exposed, but what about 3 SMA ports for internal Wifi?

The specs say the max NVMe SSD speed is 2,000MB/s but the bus should support 3.94 GB/s (32 Gbit/s) because it is PCIe 3.0 x4, why do the specs say it maxes out at 2,000MB/s?

I know the GPU is not supported by Panfrost yet, but heard someone tell me other Rockchip SOCs required binary firmware blobs to output the highest resolution. Is it too early to know if this is the case for the RK3588? I have not used Panfrost driver yet so I have not begun to study how it works, so if people with experience with it can say if there are blobs required for highest-res/refresh rate/bit depth output or some kinds of HDCP blobs required to boot and get video output, I would love to hear how this works in practise (especially for recent ‘Valhall’ microarch with Mali G57 support as the G610MC4 (or is it actually G610 MP4?) GPU on the Rock 5B seems to be a new type of the same microarch, so comparing them would be helpful.) Aside from OpenGL/OpenGL ES, does Panfrost require blobs to take advantage of hardware video decoding (or encoding but the format choices for encoding are quite small)? What about OpenCL support?

Aside from the GPU support, what is preventing this board from having mainline Linux support? Or is it only lack of Panfrost drivers?

On the topic of mainline, what about upstream U-Boot support? Is there U-Boot sources available for this board and progress mainlining it? Are there any blobs in the boot process (including ATF and DDR init)?

I cannot tell what the audio port is from the picture, is it standard 3.55mm TRS jack? How many pins (does it support output and input in same jack?)… If so, both are stereo?

I have not had socketed eMMC board before, but I have seen they exist… what determines the max capacity eMMC chip we can use? What is the max on the ROCK 5B? 128GB? If so is this a limitation of module availability or bus/addressing concerns?

Okay thanks for bearing through all these questions (did you make it this far)? If someone answers them, I do not mind helping write the info on the wiki in a sane manner, because this board looks really awesome (assuming we get mainline support!).

Thanks all, and glad to have found this community! :slight_smile:


also interested

Hi @RK3588fan
According the the schematic posted here (Fixed voltage power supply options) the SPI flash should be a 16MiB QSPI flash (XT25F128B)

Here is a budget 32gb of a 3 pack I got https://www.mymemory.co.uk/mymemory-plus-32gb-micro-sd-card-sdhc-4k-a1-uhs-1-v30-u3-adapter-100mb-s-3-pack.html

fio Disk Speed Tests (Mixed R/W 50/50):
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 3.25 MB/s      (814) | 19.20 MB/s     (300)
Write      | 3.27 MB/s      (819) | 19.77 MB/s     (309)
Total      | 6.53 MB/s     (1.6k) | 38.98 MB/s     (609)
           |                      |
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 24.95 MB/s      (48) | 25.68 MB/s      (25)
Write      | 27.09 MB/s      (52) | 28.66 MB/s      (27)
Total      | 52.04 MB/s     (100) | 54.34 MB/s      (52)
fio Disk Speed Tests (Mixed R/W 50/50):
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 3.25 MB/s      (814) | 19.20 MB/s     (300)
Write      | 3.27 MB/s      (819) | 19.77 MB/s     (309)
Total      | 6.53 MB/s     (1.6k) | 38.98 MB/s     (609)

SD/MMC Interface
Compatible with SD3.0, MMC ver4.51
Data bus width is 4bits

The SD card details.

1 Like

The spi flash chip is MX25U12832F 128Mbit spi flash from MXIC(旺宏电子). The package of this chip is WSON-8.
Since it has only 16 MByte of space, it can only store the uboot binary.
You can write the binary to the spi flash via the RK flash tool, or use the dd command to write to the spi flash on a linux system running on the board.

There is no PXE support on 5b right now. If you are going to use PXE, you should write a PXE capable uboot to spi flash.

You can follow the “How to use serial console” guide form wiki to read logs and control it.

M2 E-key solt only support PCIE2.0 on 1 lane.

I recommend using an external SOC heatsink. If there is no heatsink, the SOC will automatically underclock to ensure that it will not burn out. At this point, the CPU portion of the SOC runs at a frequency lower than 1.4GHz. The above data is tested at an ambient temperature of 30 degrees Celsius.

The speed of M2 M-key you can follow this link to see the speed I tested with PM9a1.