u-boot/board/gateworks/venice/venice.env
Tim Harvey 7b39e5b53a board: gateworks: venice: dynamically update the update_firmware script
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>
2023-07-11 14:40:03 +02:00

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