The SPI bootloader was bad, which prevented booting. You can use a female to male jumper cable, with female end plugged in the ground on 40-pin. Then with one hand hold the male end touching the CLK pin to temporarily disable SPI boot. Use your other hand to connect the power, and you should be able to boot from microSD. Disconnect the connection when you see U-Boot is launched, so the Linux can later detect the SPI flash.
Thanks for the explanation!
Fortunately (or unfortunately?) I have experience in clearing the flash. I spent quite a few hours trying to get this to work, flashing and clearing again. I always shorted pin 1 and 4 of the flash chip with pliers when applying power, which then let me boot from sd-card again.
From the back of the PCB it looked like this:
ā¦
CAREFUL: the pinout you draw is wrong! You might want to correct that. Pin 6 happens to be in the correct place though.
Is this just an issue with the W25Q128JWPIM chip? Or isnāt the GD25LQ128EWIGR chip not working as well? Can you tell how long it will take to work over the code?
Thanks. I was thinking about our 40-pin header when I label the chip pin. I have thus corrected it.
Right now with U-Boot 2023.07.02 I was not able to get NVMe working, so Iām thinking about revert back to 2023.04. GD25LQ128 should work with the bootloader shipped with the system though.
Fantastic, itās working!
Thanks so much for your help and support.
Great, you could implement the W25Q128JWPIM IC that fast.
Very much appreciated!
Quick question, I was also building the u-boot myself from https://github.com/radxa-repo/bsp. It spits out 2 files, u-boot-latest_2023.07.02-1_arm64.deb and u-boot-rock-3c_2023.07.02-1_all.deb. What is the difference between these 2 files?
Run rsetup (in command line or in Applications menu select Settings - rsetup). Select System Maintenance, and Update Bootloader, then Update SPI Bootloader (it will take some time).
Now you need to flash the system image again, but on NVMe drive, and this time from Rock 3C. Download and install Etcher for arm64: https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/tag/v1.7.9 (balena-etcher-electron_1.7.9+5945ab1f_arm64.deb). Download the system image (b36) and flash it on NVMe drive using Etcher.
Turn off Rock 3C. Unplug it. Eject the MicroSD card. Plug the power back and thatās it.
u-boot-latest_2023.07.02-1_arm64.deb is the real package containing the bootloader. u-boot-rock-3c_2023.07.02-1_all.deb is the meta package that link the product (ROCK 3C) to the real package, so the image builder doesnāt have to hardcode which product uses which bootloader.
System upgrade is not necessary if using the latest system image. It is only for user of older image who wish to upgrade.
Can also be done from a computer if you have the hardware to write the drive.
The update and install process seems to go as described without any problem. But when I try turning it on with just the updated NVMe drive, nothing happens. No flashing blue led as when I boot from micro-sd.
I had the same issue, but after i repeated the process, it worked. Canāt explain how.
Also, donāt forget to update both bootloader, and SPI bootloader in rsetup.
No need to add any SPI flash to the board. Just flash the latest version of Debian or Ubuntu (I used Debian) for Rock 3C from the official repository (look for b36) on a MicroSD card, update the SPI bootloader using rsetup (you can find it in the Applications menu). Then flash the same image of Linux to the NVMe drive, remove the MicroSD card (because it has higher priority for booting) and boot from NVMe
But my board donāt have SPI flash soldered on the bottom, so how can I update it? (already tried it, it failed, becuase thereās no memory to update, when I boot without SD card, device doesnāt even output anything on serial console)