| /* DRAM1 + 0x2000_0000 */ |
| load_addr=0xa0000000 |
| /* DRAM1 + 0x0800_0000 */ |
| initrd_addr_r=0x88000000 |
| |
| bootcmd= |
| virtio scan; |
| if virtio info; then |
| blk_dev=virtio; |
| else; |
| blk_dev=mmc; |
| fi; |
| echo block device is ${blk_dev}; |
| if part number ${blk_dev} 0 vbmeta is_avb; then |
| echo '${blk_dev} with vbmeta partition detected.'; |
| echo 'Starting Android Verified boot...'; |
| avb init ${blk_dev} 0; |
| if avb verify; then |
| set bootargs $bootargs $avb_bootargs; |
| part start ${blk_dev} 0 boot boot_start; |
| part size ${blk_dev} 0 boot boot_size; |
| ${blk_dev} read ${load_addr} ${boot_start} ${boot_size}; |
| bootm ${load_addr} ${load_addr} ${fdt_addr_r}; |
| else; |
| echo 'AVB verification failed.'; |
| exit; |
| fi; |
| elif part number ${blk_dev} 0 system is_non_avb_android; then |
| echo 'Booting Android non-AVB...'; |
| booti ${kernel_addr_r} ${initrd_addr_r} ${fdt_addr_r}; |
| elif iminfo ${load_addr}; then |
| echo 'Booting FIT image...'; |
| bootm ${load_addr} ${load_addr} ${fdt_addr_r}; |
| else; |
| echo 'Booting Debian...'; |
| set bootargs $bootargs root=/dev/mmcblk0p1 rw; |
| booti ${kernel_addr_r} - ${fdt_addr_r}; |
| fi; |
| echo 'ERROR: No valid image to boot the system. Aborting boot sequence.'; |