[U-Boot] rk3288: firefly: flashing emmc from maskrom using USB

I'm having issues flashing the emmc on my firefly board using USB. For some reason it seems as though trying to write to the emmc flash sector 0x40 for uboot spl+proper from the Maskrom/Loader doesn't work. Can anyone elaborate on what I'm doing wrong, or another way I could achieve this?
The current state of the emmc is empty, so it boots into the maskrom on reset.
I've tried with the Rockchip Loader binary as shown below:
$ tools/mkimage -n rk3288 -T rksd -d \ spl/u-boot-spl-dtb.bin out && \ cat u-boot-dtb.bin >> out
$ rkdeveloptool db RK3288Loader_uboot_V2.17.02.bin
$ rkdeveloptool wl 64 out
$ rkdeveloptool rd
This just loads back into the maskrom as if nothing was written to the emmc.
I've used the same method but writing to an sd card:
$ tools/mkimage -n rk3288 -T rksd -d \ spl/u-boot-spl-dtb.bin out && \ cat u-boot-dtb.bin >> out
$ dd if=out of=/dev/sdc seek=64
This works fine and boots into full uboot as I would expect, but from the sd card rather than the emmc.
I have then flashed the emmc from the sd card running uboot, which then enables me to boot uboot from the emmc.
I can also use rockusb from the sd card uboot to flash uboot to the emmc using the following commands:
uboot> rockusb 0 mmc 0
$ rkdeveloptool wl 64 out
$ rkdeveloptool rd
This also works. However both working methods require me starting uboot from an sd card in the first instance. How can I successfully flash the emmc using just USB? Any input would be appreciated.
Regards, Jack.

HI Jack,
On 01/15/2019 01:28 AM, Jack Mitchell wrote:
I'm having issues flashing the emmc on my firefly board using USB. For some reason it seems as though trying to write to the emmc flash sector 0x40 for uboot spl+proper from the Maskrom/Loader doesn't work. Can anyone elaborate on what I'm doing wrong, or another way I could achieve this?
The current state of the emmc is empty, so it boots into the maskrom on reset.
I've tried with the Rockchip Loader binary as shown below:
$ tools/mkimage -n rk3288 -T rksd -d \ spl/u-boot-spl-dtb.bin out && \ cat u-boot-dtb.bin >> out
$ rkdeveloptool db RK3288Loader_uboot_V2.17.02.bin
Where did you get this loader? I think you may need to update it for write emmc correctly with 'wl' command, eg. you can merge the loader from latest rockchip rkbin with below command: tools/boot_merger --replace tools/rk_tools/ . RKBOOT/RK3288MINIALL.ini
Thanks, - Kever
$ rkdeveloptool wl 64 out
$ rkdeveloptool rd
This just loads back into the maskrom as if nothing was written to the emmc.
I've used the same method but writing to an sd card:
$ tools/mkimage -n rk3288 -T rksd -d \ spl/u-boot-spl-dtb.bin out && \ cat u-boot-dtb.bin >> out
$ dd if=out of=/dev/sdc seek=64
This works fine and boots into full uboot as I would expect, but from the sd card rather than the emmc.
I have then flashed the emmc from the sd card running uboot, which then enables me to boot uboot from the emmc.
I can also use rockusb from the sd card uboot to flash uboot to the emmc using the following commands:
uboot> rockusb 0 mmc 0
$ rkdeveloptool wl 64 out
$ rkdeveloptool rd
This also works. However both working methods require me starting uboot from an sd card in the first instance. How can I successfully flash the emmc using just USB? Any input would be appreciated.
Regards, Jack.

On 15/01/2019 02:05, Kever Yang wrote:
HI Jack,
On 01/15/2019 01:28 AM, Jack Mitchell wrote:
I'm having issues flashing the emmc on my firefly board using USB. For some reason it seems as though trying to write to the emmc flash sector 0x40 for uboot spl+proper from the Maskrom/Loader doesn't work. Can anyone elaborate on what I'm doing wrong, or another way I could achieve this?
The current state of the emmc is empty, so it boots into the maskrom on reset.
I've tried with the Rockchip Loader binary as shown below:
$ tools/mkimage -n rk3288 -T rksd -d \ spl/u-boot-spl-dtb.bin out && \ cat u-boot-dtb.bin >> out
$ rkdeveloptool db RK3288Loader_uboot_V2.17.02.bin
Where did you get this loader? I think you may need to update it for write emmc correctly with 'wl' command, eg. you can merge the loader from latest rockchip rkbin with below command: tools/boot_merger --replace tools/rk_tools/ . RKBOOT/RK3288MINIALL.ini
Thanks,
- Kever
Hi Kever,
Many thanks, that worked perfectly. Could you point me to where this is documented as I don't believe I've seen any references to using the merge tool in the rkbin git repo.
Regards,
Jack.
$ rkdeveloptool wl 64 out
$ rkdeveloptool rd
This just loads back into the maskrom as if nothing was written to the emmc.
I've used the same method but writing to an sd card:
$ tools/mkimage -n rk3288 -T rksd -d \ spl/u-boot-spl-dtb.bin out && \ cat u-boot-dtb.bin >> out
$ dd if=out of=/dev/sdc seek=64
This works fine and boots into full uboot as I would expect, but from the sd card rather than the emmc.
I have then flashed the emmc from the sd card running uboot, which then enables me to boot uboot from the emmc.
I can also use rockusb from the sd card uboot to flash uboot to the emmc using the following commands:
uboot> rockusb 0 mmc 0
$ rkdeveloptool wl 64 out
$ rkdeveloptool rd
This also works. However both working methods require me starting uboot from an sd card in the first instance. How can I successfully flash the emmc using just USB? Any input would be appreciated.
Regards, Jack.
participants (2)
-
Jack Mitchell
-
Kever Yang