Instructions/tips for anyone struggling to get started with the radxa zero (USB boot mode and erasing/writing to eMMC)

For anyone else struggling to get the radxa zero into usb mode (on Windows 10 specifically), make sure you are holding the USB boot button BEFORE you plug it in to your computer. Essentially, you need to be holding that USB boot button as it powers on.

If you try to plug it in, then hold the USB boot button, it won’t work.

Took me a while to figure out what i was doing wrong.

After you get that working, follow all the steps on this page to erase the eMMC: (won’t let me post a link but search on the radxa wiki site for erasing the eMMC)

One thing to note: on the page above explaining how to erase the eMMC, they left out the final and most important step:

  • download the rz-udisk-loader.bin file. Just type the filename in on google and it will be the 2nd link.
  • Use the RZ USB boot helper program to load that file on to the radxa zero.
  • after doing that, your radxa zero will show up as a USB storage device.
  • You will also probably need to format the radxa zero’s USB storage device like I did (fat32).

After you’ve successfully erased the eMMC and got it to show up as a USB storage device, simply use Etcher or win32diskimager to flash an image to it.

Feel free to reply with your own tips, I want to keep adding to this post! Lots of conflicting information out there and not a lot of helpful forum posts for beginners.

3 Likes

Hopefully Radxa are receiving the message that pre-installed OS on eMMC are a complete pain in the arse for the majority of users who want to run something other than Android. Flash u-boot only or leave eMMC blank and it becomes much easier for users to install their OS of choice from an SD card or USB stick.

4 Likes

Agreed. Thanks for the info, but i am trying to flash LineageOS and when i use Nexustools on Linux as directed, the ./flash-all.sh flashes all the partitions for Android, despite me putting the Lineage single RAW image in the same directory. What am i doing wrong?

hi @chewitt? i’m having trouble for boot debian buster either from emmc or sd card. can u provide me some hint since u mention about flask u-boot only

1b8e:c003 means you are at maskrom mode. You then need to load emmc erase bin so you can have a USB storage device showing up. You can then flash Linux.

Just follow the Wiki guide and you should get it flashed. Let me know what did not work for you.

Thank you for pointing this out.

My confusion was that in the Wiki guide, under the Enable Maskrom section, it says

“Hold the button while plug Zero into your computer.”

I thought this meant that the Zero should be plugged in already.

I think it would be better if it said

“Hold the button while plugging Zero into your computer.”

1 Like

Updated. Thanks for your feedback.

i figures out that i needed to use the u-disk loader, did that, put ubuntu on it and i had zero output from the micro hdmi port. multiple moniters and tvs nothing. so i tried to start from scratch. now none of my compuiters can see it as a usb drive. cant format it cant do anything. did i just brick 45 bucks?

The board is basically unbreakable from a software point of view. Hold USB boot button, then plug the USB cable. You should be able to use boot-g12.py to load erase-emmc blob, which will give you a USB storage device by itself (no need for u-disk loader ).

If the above doesn’t work for you, let us know the output of lsusb , and if possible the output from your serial port.

lsusb :
Bus 002 Device 003: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0bda:8771 Realtek Semiconductor Corp.
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 011: ID 1b8e:c003 Amlogic, Inc. GX-CHIP
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
it shows its there but when i use lsblk or fdisk -l its nowhere to be found.

using: sudo boot-g12.py radxa-zero-erase-emmc.bin
Firmware Version :
ROM: 3.2 Stage: 0.0
Need Password: 0 Password OK: 1
Writing radxa-zero-erase-emmc.bin at 0xfffa0000…
[DONE]
Running at 0xfffa0000…
[DONE]
AMLC dataSize=16384, offset=65536, seq=0…
[DONE]
AMLC dataSize=49152, offset=393216, seq=1…
[DONE]
AMLC dataSize=16384, offset=229376, seq=2…
[DONE]
AMLC dataSize=49152, offset=245760, seq=3…
[DONE]
AMLC dataSize=16384, offset=65536, seq=4…
[DONE]
AMLC dataSize=49152, offset=393216, seq=5…
[DONE]
AMLC dataSize=16384, offset=229376, seq=6…
[DONE]
AMLC dataSize=49152, offset=245760, seq=7…
[DONE]
AMLC dataSize=49152, offset=294912, seq=8…
[DONE]
AMLC dataSize=16384, offset=65536, seq=9…
[DONE]
AMLC dataSize=1324400, offset=81920, seq=10…
[DONE]
[BL2 END]

ill have my serial console cable later today so once i get that ill update this

G12A:BL:0253b8:61aa2d;FEAT:E0F83180:2000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:?
1
bl2_stage_init 0x81
hw id: 0x0001 - pwm id 0x00
bl2_stage_init 0xc0
bl2_stage_init 0x02

L0:00000000
L1:00000703
L2:00008067
L3:04000000
S1:00000000
B2:00002000
B1:e0f83180

TE: 177440

BL2 Built : 15:21:48, Aug 28 2019. g12a g1bf2b53 - luan.yuan@droid15-sz

Board ID = 2
Set cpu clk to 24M
Set clk81 to 24M
CPU clk: 1200 MHz
Set clk81 to 166.6M
eMMC boot @ 1
sw8 s
DDR driver_vesion: LPDDR4_PHY_V_0_1_18 build time: Aug 28 2019 15:21:45
board id: 2
Load FIP HDR from eMMC, src: 0x00010200, des: 0xfffd0000, size: 0x00004000, par1
fw parse done
Load ddrfw from eMMC, src: 0x00060200, des: 0xfffd0000, size: 0x0000c000, part:1
Load ddrfw from eMMC, src: 0x00038200, des: 0xfffd0000, size: 0x00004000, part:1
PIEI prepare done
fastboot data load
00000000
emmc switch 2 ok
ddr saved addr:00016000
Load ddr parameter from eMMC, src: 0x02c00000, des: 0xfffd0000, size: 0x00001000
00000000
emmc switch 0 ok
fastboot data verify
verify result: 267
Cfg max: 2, cur: 1. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 792MHz
Load ddrfw from eMMC, src: 0x0003c200, des: 0xfffd0000, size: 0x0000c000, part:1
00000000
emmc switch 1 ok

dmc_version 0000
Check phy result
INFO : ERROR : Training has failed!
1D training failed
Cfg max: 2, cur: 2. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 792MHz
Load ddrfw from eMMC, src: 0x0003c200, des: 0xfffd0000, size: 0x0000c000, part:1

dmc_version 0000
Check phy result
INFO : End of CA training
INFO : End of initialization
INFO : Training has run successfully!
Check phy result
INFO : End of initialization
INFO : End of read enable training
INFO : End of fine write leveling
INFO : End of Write leveling coarse delay
INFO : Training has run successfully!
Check phy result
INFO : End of initialization
INFO : End of read dq deskew training
INFO : End of MPR read delay center optimization
INFO : End of write delay center optimization
INFO : End of read delay center optimization
INFO : End of max read latency training
INFO : Training has run successfully!
1D training succeed
Load ddrfw from eMMC, src: 0x00048200, des: 0xfffd0000, size: 0x0000c000, part:1
Check phy result
INFO : End of initialization
INFO : End of 2D read delay Voltage center optimization
INFO : End of 2D read delay Voltage center optimization
INFO : End of 2D write delay Voltage center optimization
INFO : End of 2D write delay Voltage center optimization
INFO : Training has run successfully!

channel==0
RxClkDly_Margin_A0==236 ps 12
TxDqDly_Margin_A0==256 ps 13
RxClkDly_Margin_A1==0 ps 0
TxDqDly_Margin_A1==0 ps 0
TrainedVREFDQ_A0==74
TrainedVREFDQ_A1==0
VrefDac_Margin_A0==31
DeviceVref_Margin_A0==40
VrefDac_Margin_A1==0
DeviceVref_Margin_A1==0

channel==1
RxClkDly_Margin_A0==256 ps 13
TxDqDly_Margin_A0==256 ps 13
RxClkDly_Margin_A1==0 ps 0
TxDqDly_Margin_A1==0 ps 0
TrainedVREFDQ_A0==74
TrainedVREFDQ_A1==0
VrefDac_Margin_A0==31
DeviceVref_Margin_A0==40
VrefDac_Margin_A1==0
DeviceVref_Margin_A1==0

dwc_ddrphy_apb_wr((0<<20)|(2<<16)|(0<<12)|(0xb0):0004

soc_vref_reg_value 0x 0000001a 00000019 0000001c 0000001b 0000001a 00000016 0003
2D training succeed
aml_ddr_fw_vesion: LPDDR4_PHY_V_0_1_18 build time: Aug 28 2019 13:53:31
auto size-- 65535DDR cs0 size: 2048MB
DDR cs1 size: 0MB
DMC_DDR_CTRL: 00c0002cDDR size: 2048MB
cs0 DataBus test pass
cs0 AddrBus test pass

100bdlr_step_size ps== 460
result report
boot times 0Enable ddr reg access
00000000
emmc switch 3 ok
Authentication key not yet programmed
get rpmb counter error 0x00000007
00000000
emmc switch 1 ok
Load FIP HDR from eMMC, src: 0x00010200, des: 0x01700000, size: 0x00004000, par1
Load BL3X from eMMC, src: 0x00078200, des: 0x01768000, size: 0x000b0000, part: 1
bl2z: ptr: 05129330, size: 00001e40
0.0;M3 CHK:0;cm4_sp_mode 0
MVN_1=0x00000000
MVN_2=0x00000000
[Image: g12a_v1.1.3390-6ac5299 2019-09-26 14:09:46 luan.yuan@droid15-sz]
OPS=0x30
ring efuse init
28 0b 30 00 01 2d 0e 00 00 09 38 38 34 55 30 50
[0.017150 Inits done]
secure task start!
high task start!
low task start!
run into bl31
NOTICE: BL31: v1.3(release):4fc40b1
NOTICE: BL31: Built : 15:57:33, May 22 2019
NOTICE: BL31: G12A normal boot!
NOTICE: BL31: BL33 decompress pass
ERROR: Error initializing runtime service opteed_fast

U-Boot 2015.01-g7386aaa (Aug 22 2021 - 11:36:23)

DRAM: 2 GiB
Relocation Offset is: 76e8e000
spi_post_bind(spifc): req_seq = 0
register usb cfg[0][1] = 0000000077f4b628
NAND: MMC: aml_priv->desc_buf = 0x0