Rock960c won't boot from eMMC or SD card - always goes into maskrom

I’m using the provided debian, ubuntu and android images from the downloads section, but the board won’t boot from any medium that I give it. I’ve tried two eMMC modules and a variety of microSD cards.

I’m using either dd or etcher to write to the SD cards.

For the eMMC, I’m loading a GPT image through rkdeveloptool:

$ lsusb -d 2207:330c                     
Bus 001 Device 026: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode
$ rkdeveloptool db rk3399_loader_v1.12.112.bin
Downloading bootloader succeeded.
$ lsusb -d 2207:330c                     
Bus 001 Device 027: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode
$ rkdeveloptool ul rk3399_loader_v1.12.112.bin
Upgrading loader succeeded.
$ rkdeveloptool wl 0 rock960c_debian_stretch_lxde_armhf_20180920-gpt.img
Write LBA from file (100%)
$ rkdeveloptool rd
Reset Device OK.
$ lsusb -d 2207:330c
Bus 001 Device 028: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode

Try to boot the sdcard with the eMMC removed.

$ rkdeveloptool ul rk3399_loader_v1.12.112.bin
Upgrading loader succeeded.

You don’t need this, please refer our how-to on the documents.

https://www.96boards.org/documentation/consumer/rock/installation/linux-mac-rkdeveloptool.md.html

I removed the eMMC and powered the board with a freshly burnt SD card as the only boot medium. Went into maskrom. (repeated 3 times on different cards of varying brands and speeds)

Cool, I saw in some places the documentation says I could use ul, not sure if it made a difference.

I tried again (I repeated these steps with 2 different eMMC modules and 3 different USB controllers):

$ lsusb -d 2207:330c
Bus 005 Device 003: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode
$ rkdeveloptool ld
DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=501    Maskrom
$ rkdeveloptool db rk3399_loader_v1.12.112.bin 
Downloading bootloader succeeded.
$ lsusb -d 2207:330c
Bus 005 Device 004: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode
$ rkdeveloptool wl 0 rock960c_debian_stretch_lxde_armhf_20180920-gpt.img 
Write LBA from file (100%)
$ rkdeveloptool rd
Reset Device OK.
$ lsusb -d 2207:330c
Bus 005 Device 005: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode

After rd, the device stays in maskrom mode, but even so, I can’t run the db command again until I power cycle the board. So, while the device number increments, it doesn’t feel like it fully resets.

The steps look right. Can you attach a serial and check the output when writing with the rkdeveloptool?

https://www.96boards.org/documentation/consumer/rock/guides/serial-console.md.html

Here’s the serial output. It only spits out data after the running the db command.

There is this set of messages near the end of it:

mmc: ERROR: Tuning procedure failed, falling back to fixed sampling clock
mmc: ERROR: tuning execution failed
emmc reinit
mmc: ERROR: Tuning procedure failed, falling back to fixed sampling clock
mmc: ERROR: tuning execution failed
emmc reinit
mmc: ERROR: Tuning procedure failed, falling back to fixed sampling clock
mmc: ERROR: tuning execution failed

I tested it with the two eMMC modules I have and got the same messages, so I’m not sure if it’s the eMMC modules or the board’s bringup.

If you boot from SDcard and attach the empty eMMC, do you have /dev/mmcblk1 device?

I’ve tried all three OS images (Android, Debian and Ubuntu) on multiple SD cards and on power up the board immediately goes into maskrom mode.

It’s highly like a hardware issue. I suggest you ask the distributor for an RMA.

I would suggest just one more experiment before declaring it hardware defective.
Follow these instructions PRECISELY:

  1. Remove eMMC module and unplug EVERYTHING EXCEPT HDMI from rock960C.
  2. insert microsd card in your WORKSTATION and run following;
$ wget https://github.com/96rocks/manifests/releases/download/ROCK960-RK3399-android9-20190723_1429/rock960-model-c-rk3399_box-android9-20190723_1429_aa0834e-gpt.zip
$ unzip rock960-model-c-rk3399_box-android9-20190723_1429_aa0834e-gpt.zip
$ su
# umount /dev/mmcblk0p*
# dd of=/dev/mmcblk0 bs=1M status=progress if=rock960-model-c-rk3399_box-android9-20190723_1429_aa0834e-gpt.img

** Substitute as appropriate for /dev/mmcblk0 if the sdcard appears as something else on your system.

  1. When the command completes, move sdcard to rock960, and power it up.

What you SHOULD observe is;
a) rockchip kernel splash screen,
b) a circle with a label “erasing” (could last a few minutes if your sdcard is very large),
c) rockchip kernel splash screen again,
d) 4 dots bootanimation (this will last a few minutes),
e) blank screen for several seconds,
f) Android TV launcher.

If following those instructions precisely doesn’t work, then your board must be defective.

Thanks for all of the suggestions.

I unplugged everything except the HDMI cable and tried that image on a couple of cards (modifying the commands as appropriate), however nothing came through the HDMI video.

I’ll look to get an RMA.

Thanks again.