mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-25 20:43:32 +00:00
7b39e5b53a
The update_firmware script is intended to update the boot firmware but the details including the offset and hardware partition are dependent on the boot device. Specifically: - IMX8MM/IMX8MP (BOOTROM v2) the offset is 32KiB for SD and eMMC user hardware partition and 0KiB for eMMC boot partitions. - IMX8MM the offset is 33KiB for SD and eMMC regardless of hardware partition. Dynamically set soc, dev, bootpart, and bootblk env vars at runtime and use these in the update_firmware script. Remove the splblk env var from config files as its no longer needed. Signed-off-by: Tim Harvey <tharvey@gateworks.com>
33 lines
1.1 KiB
Bash
33 lines
1.1 KiB
Bash
kernel_addr_r=0x48200000
|
|
fdt_addr_r=0x50200000
|
|
scriptaddr=0x50280000
|
|
ramdisk_addr_r=0x50300000
|
|
kernel_comp_addr_r=0x40200000
|
|
script=boot.scr
|
|
bootm_size=0x10000000
|
|
dev=2
|
|
preboot=gsc wd-disable
|
|
console=ttymxc1,115200
|
|
update_firmware=tftpboot $loadaddr $dir/venice-$soc-flash.bin &&
|
|
setexpr blkcnt $filesize + 0x1ff &&
|
|
setexpr blkcnt $blkcnt / 0x200 &&
|
|
mmc dev $dev $bootpart &&
|
|
mmc write $loadaddr $bootblk $blkcnt
|
|
loadfdt=if $fsload $fdt_addr_r $dir/$fdt_file1;
|
|
then echo loaded $fdt_file1;
|
|
elif $fsload $fdt_addr_r $dir/$fdt_file2;
|
|
then echo loaded $fdt_file2;
|
|
elif $fsload $fdt_addr_r $dir/$fdt_file3;
|
|
then echo loaded $fdt_file3;
|
|
elif $fsload $fdt_addr_r $dir/$fdt_file4;
|
|
then echo loaded $fdt_file4;
|
|
elif $fsload $fdt_addr_r $dir/$fdt_file5;
|
|
then echo loaded $fdt_file5;
|
|
fi
|
|
boot_net=setenv fsload tftpboot;
|
|
run loadfdt && tftpboot $kernel_addr_r $dir/Image &&
|
|
booti $kernel_addr_r - $fdt_addr_r
|
|
update_rootfs=tftpboot $loadaddr $image &&
|
|
gzwrite mmc $dev $loadaddr $filesize 100000 1000000
|
|
update_all=tftpboot $loadaddr $image &&
|
|
gzwrite mmc $dev $loadaddr $filesize
|