Hello all,
I recently ordered a rockpro64 with a few accessories, one of which is an emmc module (https://ameridroid.com/collections/stora...dule-blank).
However, I am unable to get the rockpro64 to boot with just the emmc module plugged in. I used the usb->emmc adapter to dd the Debian stretch image (version 0.7.9) to it. When it wouldn't boot with that image, I tried an SD card and that worked perfectly. Not only that, but the emmc is visible in /dev/ when booted off the SD so the SBC does recognize the emmc....it just won't boot from it.
After that, I tried a plethora of things to try to get emmc to boot:
1. dd the image to the emmc while booted off the SD with the emmc plugged in to the rockpro64.
2. dd the android emmc image to the emmc.
3. Changed every combination of mmc boot partition enable/disable/ack along with the various boot bus options.
4. Plugged in a serial adapter to view the boot process. The attempted emmc boot showed nothing on serial while the SD boot showed the whole process as expected.
A few things to note:
1. Before flashing anything to the emmc, I noticed it was already loaded with an odroid XU3 image, despite the emmc module I ordered stating it's supposed to be empty. Could this be a problem? I know the Odroids use the boot0 boot partition and I guess rockchip doesnt, so I enabled rw on the boot parts and zero'd them out.
2. The Linux mmc tool and dmesg showes the emmc module as hs200 as opposed to the hs400 that the ameridroid site says. The mmc version is 5.1 as confirmed by the linux mmc tool.
3. The linux kernel reports the emmc model number as DG4032 if that helps.
Looks like you have tried most things. I presume you got the card & USB adapter from ameridroid?
Your note 2: yup, my official Pine64 ForeSee card also shows as HS200 in dmesg, dont panic.
I see the no 1 thing you tried was dd from the running SDcard - if you did that the same way I did here
then I worry as much as you about the card. (IIRC there have been mutterings, possibly on IRC, about timing issues with some USB adapters which has caused grief? So avoiding using the adapter would be my strategy.)
A long shot - make sure the 2 pins next to the eMMC card and SPI do NOT have a jumper on - this would stop the boot from eMMC. (But I think would also stop the eMMC being recognised at all even after boot so doubt it.)
ROCKPro64 v2.1 2GB, 16Gb eMMC for rootfs, SX8200Pro 512GB NVMe for /home, HDMI video & sound, Bluetooth keyboard & mouse. Arch (6.2 kernel, Openbox desktop) for general purpose daily PC.
PinePhone Pro Explorer Edition, daily driver, rk2aw & U-boot on SPI, Arch/SXMO & Arch/phosh on eMMC
PinePhone BraveHeart now v1.2b 3/32Gb, Tow-boot with Arch/SXMO on eMMC
Yup. Got it all from Ameridroid.
It's funny, I actually used your post as a guide after the USB reader method didn't work, plus it's the most efficient as I never have to remove the emmc to flash it.
And yea, those pins are open. Since that jumper would tie the emmc clock to ground, it would cause the emmc to not be detected at all as you mentioned.
I sent an email to ameridroid with the content of my post to see what they think. I'll post their reply.
You could try
/usr/local/sbin/rockpro64_reset_emmc.sh
I have absolutely no idea what it does but figure you have little to lose! (It is an Ayufan script.)
The XU3 stuff would also indicate to me pre-owned (and previous owner had a problem, returned it ...). I also thought XU3 & XU4 eMMC were different and XU4 was same as RockPro64? (Guessing here, a while since I set up my brothers XU3). Stabbing round my rootfs I couldnt find my model number, but did find
/sys/bus/mmc/devices/mmc1:0001/date - in my case 02/2018 which is some indicator of how old the stock was (but actually doesnt prove anything?)
ROCKPro64 v2.1 2GB, 16Gb eMMC for rootfs, SX8200Pro 512GB NVMe for /home, HDMI video & sound, Bluetooth keyboard & mouse. Arch (6.2 kernel, Openbox desktop) for general purpose daily PC.
PinePhone Pro Explorer Edition, daily driver, rk2aw & U-boot on SPI, Arch/SXMO & Arch/phosh on eMMC
PinePhone BraveHeart now v1.2b 3/32Gb, Tow-boot with Arch/SXMO on eMMC
I sent the eMMC module back to ameridroid to be tested and they had no issues getting it to boot on a rockpro64. They sent it back already imaged with a know working flash and it wouldn't boot in my rockpro64. This leads me to believe there is an issue with my board...
So I figured I'd just setup the spi flash so it can boot from pretty much anything and hopefully bypass whatever problem it's having with the eMMC and just load kernel and user space from the eMMC. That didn't work. It can now boot from everything BUT eMMC...
I have attached a log of serial booting spi flash with only the eMMC module plugged in.
I was hoping somebody could look at it and see if it looks right. Thanks.
Sorry, dont have serial adapter so cant comment on log.
Mine just worked - it has to be the board then. Bizarre you can see the eMMC if you boot from SDcard - I would guess there is something dodgy and even if you get data onto it you may land up with the hardware "defect" biting you later.
Last hope would be to inspect the eMMC connector on the board under a magnifying glass.
Or even better: go NVMe on the PCIe - much faster than eMMC anyway. I have today rebuilt my config and ditched my eMMC as I cant get it recognised by 4.18 kernel.
ROCKPro64 v2.1 2GB, 16Gb eMMC for rootfs, SX8200Pro 512GB NVMe for /home, HDMI video & sound, Bluetooth keyboard & mouse. Arch (6.2 kernel, Openbox desktop) for general purpose daily PC.
PinePhone Pro Explorer Edition, daily driver, rk2aw & U-boot on SPI, Arch/SXMO & Arch/phosh on eMMC
PinePhone BraveHeart now v1.2b 3/32Gb, Tow-boot with Arch/SXMO on eMMC
Did you update the on-board U-Boot using the u-boot-flash-spi-rockpro64.img.xz image ? I make an sdcard from this image, boot the board with it let it do what it wants, shutdown, remove this sdcard, and then I can boot off eMMC images. Instructions for this are NOT clear. I have had to do this on both of my RockPro64's.
I am having the same problem. Can boot from sd but not from emmc. Tried several images. Even tried the "u-boot-flash-spi-rockpro64.img.xz" mentioned above, but I can't see what going on when I boot that from the sd. It has no hdmi output, but I do see some flashing led lights after a minute or so. None the less, still could not boot from the emmc.
I did find somewhat of a strange work around to get my emmc somewhat usable. Although I am not happy with the work solution. I found it completely by accident.
I flashed the spi to enable booting from usb. I flashed the dietpi distro to a usb pendrive I had laying around. It booted just fine from the usb3 port. I shutdown and plugged in my emmc which had openmediavault installed. To my surprise, it booted before dietpi did. Removing the usb pendrive, and rebooting, and I am back to not being able to boot the emmc. As long as I have the pendrive with dietpi on it, it will boot from emmc. Can anyone explain why this works? Is it pulling a (boot) partition from usb, and then loading the rootfs fromm the emmc?