> on my x86 based desktop and laptop and booting has always just "worked".
bios firmware has been around 40 years now, even now as the "csm" module in UEFI firmware
U-boot has existed ~20 years, but it is a lot more work supporting dozens of devices and several architectures
Both mrfixit and manjaro's bsp uboot are patched rockchip bsp uboot, slightly different patches?
Right now, my emmc uboot area is blank, using manjaro 19.10 uboot on SD, unaltered
all I can say is sleep is OK, suggests that it is bsp (19.10)
While I have used "strings" to "dig thru" various uboots, it's hard to get an idea of version numbers,
About dd, a little background first
default bs is 512 bytes, 1 sector,,, DON'T use this when writing more than a very few megs
(quite slow, 1/4 speed or slower, a little hard on nand). I try to use bs=1M, don't have to think much
& when writing an image, don't have to use count=, it will stop at end of if= (input file)
Because different distros have different mmcblkX number, you have to check,, X HAS to be right
lsblk,,, boot0,boot1 always on emmc,,, / will be what you booted from
When I use /dev/SD & /dev/emmc replace with right /dev/mmcblkX
All of uboot is in 1st 16M ,, none of this is mounted
The mbr is 1st sector, or if gpt partitioned first 34 sectors (gpt is not very common, only Ayufan?)
run gdisk /dev/emmc to check,, then q (quit)
If you copy 1st 16M the mbr will almost certainly be wrong, so save original, restore at very end
cd ; mkdir uboot-sav ; cd uboot-sav (shell interprets ";" as <enter>,, a blank directory to work in)
become root/use sudo
dd if=/dev/emmc of=emmc.mbr count=1 (save emmc mbr, 512B)
??? save original emmc uboot???
dd if=/dev/emmc of=1st-16.distro.orig bs=1M count=16
dd if=/dev/SD of=/dev/emmc bs=1M count=16 (to blank,, use if=/dev/zero)
dd if=emmc.mbr of=/dev/emmc (since emmc.mbr is only 512 bytes no need for count or bs)
You will notice, no need for seek or skip or complicated calculations, hardly could be simpler
Just be SURE that X,,mmcblkX is right
BTW, seek is for output, skip for input,,,, man dd (and konqueror is best man pg viewer,, #dd)
One last thought,writing images,, do use xzcat OR zcat (for gz files)... so... xzcat xz-image |dd (no if=)
dd is smart enough to NOT need dd if=- ,,, "-" equals standard input
Also xzcat won't erase original once file is extracted
bios firmware has been around 40 years now, even now as the "csm" module in UEFI firmware
U-boot has existed ~20 years, but it is a lot more work supporting dozens of devices and several architectures
Both mrfixit and manjaro's bsp uboot are patched rockchip bsp uboot, slightly different patches?
Right now, my emmc uboot area is blank, using manjaro 19.10 uboot on SD, unaltered
all I can say is sleep is OK, suggests that it is bsp (19.10)
While I have used "strings" to "dig thru" various uboots, it's hard to get an idea of version numbers,
About dd, a little background first
default bs is 512 bytes, 1 sector,,, DON'T use this when writing more than a very few megs
(quite slow, 1/4 speed or slower, a little hard on nand). I try to use bs=1M, don't have to think much
& when writing an image, don't have to use count=, it will stop at end of if= (input file)
Because different distros have different mmcblkX number, you have to check,, X HAS to be right
lsblk,,, boot0,boot1 always on emmc,,, / will be what you booted from
When I use /dev/SD & /dev/emmc replace with right /dev/mmcblkX
All of uboot is in 1st 16M ,, none of this is mounted
The mbr is 1st sector, or if gpt partitioned first 34 sectors (gpt is not very common, only Ayufan?)
run gdisk /dev/emmc to check,, then q (quit)
If you copy 1st 16M the mbr will almost certainly be wrong, so save original, restore at very end
cd ; mkdir uboot-sav ; cd uboot-sav (shell interprets ";" as <enter>,, a blank directory to work in)
become root/use sudo
dd if=/dev/emmc of=emmc.mbr count=1 (save emmc mbr, 512B)
??? save original emmc uboot???
dd if=/dev/emmc of=1st-16.distro.orig bs=1M count=16
dd if=/dev/SD of=/dev/emmc bs=1M count=16 (to blank,, use if=/dev/zero)
dd if=emmc.mbr of=/dev/emmc (since emmc.mbr is only 512 bytes no need for count or bs)
You will notice, no need for seek or skip or complicated calculations, hardly could be simpler
Just be SURE that X,,mmcblkX is right
BTW, seek is for output, skip for input,,,, man dd (and konqueror is best man pg viewer,, #dd)
One last thought,writing images,, do use xzcat OR zcat (for gz files)... so... xzcat xz-image |dd (no if=)
dd is smart enough to NOT need dd if=- ,,, "-" equals standard input
Also xzcat won't erase original once file is extracted