Rock 4B+ 1.72 Boot Issues?

Hi, I ordered 4x 4B+ SBCs. I got what I believe is the latest revision, 1.72.

My question - is anyone having like, major issues with this revision? I can’t get anything to boot reliably. I thought it was a power issue, then I thought it was an OS issue, then I thought it was a uSD issue… I’ve swapped everything. PD, 5V, PoE, PoE+, 5V straight to the pins. Multiple SD cards. Tried DietPi, then tried Armbian. Same issue.

In all cases, it’s like 25% chance it’ll actually boot. The other times, it’ll get stuck somewhere in the boot process. Either a black screen, uboot logo, or something along the lines of “Loading, please wait…”.

If I unplug the SBC and plug it back in enough times, eventually it’ll boot up just fine like nothing is wrong. Other times, I’ll get a solid green light but no activity. Power draw is constant around 2.5-3W. Other times, the green light flashes every 3 seconds and judging by the power draw, it seems to be rebooting.

Someone please tell me I’m crazy and doing something wrong? I’ve used SBCs for years but this is the first time I’ve used Rock Pi. We’d like to use these en masse for a production deployment, but I’m not confident in them with this issue.

Hi, Taylor

Can you please try the Radxa image with Rockchip loader?

https://github.com/radxa/debos-radxa/releases/download/20220728-0218/rockpi-4b-debian-buster-xfce4-arm64-20220728-0444-gpt.img.xz

Please always use a PD power adapter.

If you have USB to TTL power adapter, you can attach a serial console to check the booting log:

https://wiki.radxa.com/Rockpi4/dev/serial-console

Hi Jack,

I just tried that image. Burned successfully with balena. Still having trouble booting. With the Rock PoE HAT and PoE+ 802.3at injector, I get a solid green light, no blue light, and no output over HDMI. Same issue with a 802.3af injector.

We can test with PD but our production environment requires PoE, so we’re trying our best to just use that in testing. The others (5V/PD) were out of desperation because we couldn’t get anything working, but even those seemed to have issues.

I will order a USB to TTL adapter today and see if I can get any useful info from that console.

Hi,

Today I removed the uSD from the picture entirely and went to eMMC only just to rule that out. I got the RKDevTool working and was able to get the device into maskrom mode, and write a new loader (rk3399_loader_v1.20.119.bin) and image (Armbian_22.08.0-trunk_Rockpi-4b_bullseye_current_5.15.51_minimal.img). Unfortunately, when powered via PoE the result is always the same. See image attached. I get the DDR version printout, then it hangs at “OUT”.

When powering via USB-C the results are different, but still inconsistent. Sometimes I get to the Armbian command line / login. Other times, I get “Ramdisk image is corrupt or invalid” and then dropped to a console. If I type “reboot” after a successful boot, it is likely that I will get the Ramdisk error again. So still not stable. See log attached.

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2022.08.02 15:39:29 =~=~=~=~=~=~=~=~=~=~=~=
DDR Version 1.20 20190314
In
soft reset
SRX
channel 0
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 400MHz 0,1
channel 0
CS = 0
MR0=0x98
MR4=0x82
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x82
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
Channel 0: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Channel 1: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
256B stride
ch 0 ddrconfig = 0x101, ddrsize = 0x20
ch 1 ddrconfig = 0x101, ddrsize = 0x20
pmugrf_os_reg[2] = 0x3281F281, stride = 0x9
OUT
Boot1 Release Time: May 29 2020 17:36:36, version: 1.26
CPUId = 0x0
ChipType = 0x10, 437
SdmmcInit=2 0
BootCapSize=100000
UserCapSize=14800MB
FwPartOffset=2000 , 100000
mmc0:cmd8,20
mmc0:cmd5,20
mmc0:cmd55,20
mmc0:cmd1,20
mmc0:cmd8,20
mmc0:cmd5,20
mmc0:cmd55,20
mmc0:cmd1,20
mmc0:cmd8,20
mmc0:cmd5,20
mmc0:cmd55,20
mmc0:cmd1,20
SdmmcInit=0 1
StorageInit ok = 68341
SecureMode = 0
SecureInit read PBA: 0x4
SecureInit read PBA: 0x404
SecureInit read PBA: 0x804
SecureInit read PBA: 0xc04
SecureInit read PBA: 0x1004
SecureInit read PBA: 0x1404
SecureInit read PBA: 0x1804
SecureInit read PBA: 0x1c04
SecureInit ret = 0, SecureMode = 0
atags_set_bootdev: ret:(0)
GPT 0x3335db8 signature is wrong
recovery gpt...
GPT 0x3335db8 signature is wrong
recovery gpt fail!
Trust Addr:0x4000, 0x58334c42
No find bl30.bin
No find bl32.bin
Load uboot, ReadLba = 2000
Load OK, addr=0x200000, size=0xd7838
RunBL31 0x40000 @ 92277 us
NOTICE:  BL31: v1.3(release):845ee93
NOTICE:  BL31: Built : 15:51:11, Jul 22 2020
NOTICE:  BL31: Rockchip release version: v1.1
INFO:    GICv3 with legacy support detected. ARM GICV3 driver initialized in EL3
INFO:    Using opteed sec cpu_context!
INFO:    boot cpu mask: 0
INFO:    If lpddr4 need support multi frequency,
INFO:    please update loader!
INFO:    Current ctl index[0] freq=400MHz
INFO:    Current ctl index[1] freq=800MHz
INFO:    plat_rockchip_pmu_init(1196): pd status 3e
INFO:    BL31: Initializing runtime services
WARNING: No OPTEE provided by BL2 boot loader, Booting device without OPTEE initialization. SMC`s destined for OPTEE will return SMC_UNK
ERROR:   Error initializing runtime service opteed_fast
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2022.04-armbian (Jul 01 2022 - 02:34:17 +0000)

SoC: Rockchip rk3399
Reset cause: RST
Model: Radxa ROCK Pi 4B
DRAM:  2 GiB
PMIC:  RK808 
Core:  275 devices, 28 uclasses, devicetree: separate
MMC:   mmc@fe310000: 2, mmc@fe320000: 1, mmc@fe330000: 0
Loading Environment from SPIFlash... SF: Detected XT25F32B with page size 256 Bytes, erase size 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Model: Radxa ROCK Pi 4B
Net:   eth0: ethernet@fe300000
Hit any key to stop autoboot:  0 
starting USB...
Bus usb@fe380000: USB EHCI 1.00
Bus usb@fe3c0000: USB EHCI 1.00
Bus usb@fe800000: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
Bus usb@fe900000: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb@fe380000 for devices... 1 USB Device(s) found
scanning bus usb@fe3c0000 for devices... 1 USB Device(s) found
scanning bus usb@fe800000 for devices... 1 USB Device(s) found
scanning bus usb@fe900000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device
Card did not respond to voltage select! : -110
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot/boot.scr
3185 bytes read in 16 ms (194.3 KiB/s)
## Executing script at 00500000
Boot script loaded from mmc 0
201 bytes read in 13 ms (14.6 KiB/s)
11367538 bytes read in 1092 ms (9.9 MiB/s)
30540288 bytes read in 2911 ms (10 MiB/s)
76240 bytes read in 42 ms (1.7 MiB/s)
2698 bytes read in 29 ms (90.8 KiB/s)
Applying kernel provided DT fixup script (rockchip-fixup.scr)
## Executing script at 09000000
Moving Image from 0x2080000 to 0x2200000, end=3fc0000
## Loading init Ramdisk from Legacy Image at 06000000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    11367474 Bytes = 10.8 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... Bad Data CRC
Ramdisk image is corrupt or invalid
SCRIPT FAILED: continuing...
e7e[re[999;999He[6ne8Card did not respond to voltage select! : -110
Scanning disk mmc@fe310000.blk...
Disk mmc@fe310000.blk not ready
Card did not respond to voltage select! : -110
Scanning disk mmc@fe320000.blk...
Disk mmc@fe320000.blk not ready
Scanning disk mmc@fe330000.blk...
Found 2 disks
No EFI system partition
BootOrder not defined
EFI boot manager: Cannot load any image
rockchip_pcie pcie@f8000000: PCIe link training gen1 timeout!

Device 0: unknown device
rockchip_pcie pcie@f8000000: failed to find ep-gpios property
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: pxeuuid
Retrieving file: pxelinux.cfg/01-a2-00-cd-ae-fb-9c
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/00000000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/0000000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/000000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/00000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/0000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/00
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/0
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/default-arm-rk3399-evb_rk3399
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/default-arm-rk3399
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/default-arm
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/default
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Config file not found
rockchip_pcie pcie@f8000000: failed to find ep-gpios property
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
SF: Detected XT25F32B with page size 256 Bytes, erase size 4 KiB, total 4 MiB
Offset exceeds device limit
sf - SPI flash sub-system

Usage:
sf probe [[bus:]cs] [hz] [mode]	- init flash device on given SPI bus
				  and chip select
sf read addr offset|partition len	- read `len' bytes starting at
				          `offset' or from start of mtd
					  `partition'to memory at `addr'
sf write addr offset|partition len	- write `len' bytes from memory
				          at `addr' to flash at `offset'
					  or to start of mtd `partition'
sf erase offset|partition [+]len	- erase `len' bytes from `offset'
					  or from start of mtd `partition'
					 `+len' round up `len' to block size
sf update addr offset|partition len	- erase and write `len' bytes from memory
					  at `addr' to flash at `offset'
					  or to start of mtd `partition'
sf protect lock/unlock sector len	- protect/unprotect 'len' bytes starting
					  at address 'sector'
## Executing script at 00500000
Boot script loaded from sf 0
Couldn't find partition sf 0
Couldn't find partition sf 0
Can't set block device
Couldn't find partition sf 0
Can't set block device
Couldn't find partition sf 0
Can't set block device
Couldn't find partition sf 0
Can't set block device
Couldn't find partition sf 0
Moving Image from 0x2080000 to 0x2200000, end=3fc0000
## Loading init Ramdisk from Legacy Image at 06000000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    11367474 Bytes = 10.8 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... Bad Data CRC
Ramdisk image is corrupt or invalid
SCRIPT FAILED: continuing...
=>

Hi, did you solve this problem? I have the same problem when I’m trying to run android. I have the same message

“Loading Environment from SPIFlash… SF: Detected XT25F32B with page size 256 Bytes, erase size 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment”

But, with anothers images like Lakka, Debian, Ubuntu, Armbian, all ok. What can I do?

Thanks

Thanks

I don’t remember the exact cause, but I believe it was along the lines of certain OSes wanting to use SPI flash as part of the boot process? Try clearing SPI flash by shorting pins 23 and 25 (read a guide to double check before shorting pins) and see if it helps.

Hi buddy. Thank you. I’m going to try empty SPI Flash.

Nothing buddy, I do everything to erase SPI Flash. I connect USB male A , connect to PC
Also, I short cut the pin 23 and 25 AND connect PC
Also I used the RKdevtools to erase and nothing. I need help

Are you certain the image is compatible with your board? Looking back at my notes, the issues seemed to be caused by a certain image, and were resolved after both switching to a different image and clearing SPI.

Yes, it’s compatible. It’s a image by imo 123. I’ll try another official. I have a rock pi 4 B. I don’t have eMMC. Can you try it in a rock pi 4 without eMMC just for attend for another way. There is few information in internet or YouTube about it. Just cut video with android installed like magic, it’s is suspicious for me.

I did run Android when I shorted the pins, just version 9. I didn’t can erase the SPI Flash by the way. I followed the steps, but the flash doesn’t erase. I used RKdevtools in Windows 10.

I did short pins 23 and 25, then connect USB A then power USB c, run RKdevtools, it Said maskrom, then I disconneted the cables in shorts all on, then I downloaded the .bin flash, clic erase all and reset. But nothing.