From 20105bddd633e877c32192823298b763b17b9042 Mon Sep 17 00:00:00 2001 From: Bob Mottram <bob@robotics.uk.to> Date: Fri, 11 Jan 2019 17:08:14 +0000 Subject: [PATCH] Enable uboot from usb --- src/freedombone-image-hardware-setup | 35 +++++++++++++++++++--------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/src/freedombone-image-hardware-setup b/src/freedombone-image-hardware-setup index 1b3f676bd..aaef7cb0a 100755 --- a/src/freedombone-image-hardware-setup +++ b/src/freedombone-image-hardware-setup @@ -155,12 +155,23 @@ arm_setup_boot() { arm_initrd_addr='0x48000000' arm_fdtaddr='0x47000000' arm_boot_script=/boot/boot.cmd + arm_boot_device=mmc + arm_boot_start= + arm_boot_dev= case "$dtb" in "am"*) arm_loadaddr='0x82000000' arm_initrd_addr='0x88080000' arm_fdtaddr='0x88000000' arm_boot_script=/boot/uEnv.txt + if [ "$EXTERNAL_DRIVE" ]; then + arm_boot_dev='bootdev=0:1' + arm_boot_device=usb + arm_loadaddr='0x80300000' + arm_initrd_addr='0x81600000' + arm_fdtaddr='0x815f0000' + arm_boot_start='usb start; ' + fi ;; esac @@ -169,6 +180,7 @@ arm_setup_boot() { mmcroot=/dev/${arm_root_device} ro mmcrootfstype=$fstype rootwait fixrtc mmcrootflags=subvol=@ +${arm_boot_dev} console=ttyO0,115200n8 @@ -182,14 +194,14 @@ fdtaddr=$arm_fdtaddr initrd_high=0xffffffff fdt_high=0xffffffff -loadkernel=load mmc \${mmcdev}:\${mmcpart} \${loadaddr} \${kernel_file} -loadinitrd=load mmc \${mmcdev}:\${mmcpart} \${initrd_addr} \${initrd_file}; setenv initrd_size \${filesize} -loadfdt=load mmc \${mmcdev}:\${mmcpart} \${fdtaddr} /dtbs/\${fdtfile} +loadkernel=load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${loadaddr} \${kernel_file} +loadinitrd=load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${initrd_addr} \${initrd_file}; setenv initrd_size \${filesize} +loadfdt=load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${fdtaddr} /dtbs/\${fdtfile} loadfiles=run loadkernel; run loadinitrd; run loadfdt mmcargs=setenv bootargs init=/lib/systemd/systemd console=tty0 console=\${console} root=\${mmcroot} rootfstype=\${mmcrootfstype} rootflags=\${mmcrootflags} ifnames=0 slub_debug=FZP slab_nomerge page_poison=1 -uenvcmd=run loadfiles; run mmcargs; bootz \${loadaddr} \${initrd_addr}:\${initrd_size} \${fdtaddr} +uenvcmd=${arm_boot_start}run loadfiles; run mmcargs; bootz \${loadaddr} \${initrd_addr}:\${initrd_size} \${fdtaddr} EOF ;; *) cat >> $arm_boot_script <<EOF @@ -199,6 +211,7 @@ setenv mmcpart 1 setenv mmcroot /dev/${arm_root_device} ro setenv mmcrootfstype $fstype rootwait fixrtc setenv mmcrootflags subvol=@ +${arm_boot_dev} setenv console ttyS0,115200n8 @@ -206,21 +219,21 @@ setenv kernel_file $vmlinuz setenv initrd_file $initRd setenv fdtfile $dtb -setenv loadaddr 0x46000000 -setenv initrd_addr 0x48000000 -setenv fdtaddr 0x47000000 +setenv loadaddr $arm_loadaddr +setenv initrd_addr $arm_initrd_addr +setenv fdtaddr $arm_fdtaddr setenv initrd_high 0xffffffff setenv fdt_high 0xffffffff -setenv loadkernel load mmc \${mmcdev}:\${mmcpart} \${loadaddr} \${kernel_file} -setenv loadinitrd load mmc \${mmcdev}:\${mmcpart} \${initrd_addr} \${initrd_file}\\; setenv initrd_size \\\${filesize} -setenv loadfdt load mmc \${mmcdev}:\${mmcpart} \${fdtaddr} /dtbs/\${fdtfile} +setenv loadkernel load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${loadaddr} \${kernel_file} +setenv loadinitrd load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${initrd_addr} \${initrd_file}\\; setenv initrd_size \\\${filesize} +setenv loadfdt load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${fdtaddr} /dtbs/\${fdtfile} setenv loadfiles run loadkernel\\; run loadinitrd\\; run loadfdt setenv mmcargs setenv bootargs init=/lib/systemd/systemd console=\${console} root=\${mmcroot} rootfstype=\${mmcrootfstype} rootflags=\${mmcrootflags} ifnames=0 slub_debug=FZP slab_nomerge page_poison=1 -run loadfiles; run mmcargs; bootz \${loadaddr} \${initrd_addr}:\${initrd_size} \${fdtaddr} +${arm_boot_start}run loadfiles; run mmcargs; bootz \${loadaddr} \${initrd_addr}:\${initrd_size} \${fdtaddr} EOF ;; esac -- GitLab