Boyan Karatotev | dd2600e | 2024-10-25 18:18:17 +0100 | [diff] [blame] | 1 | /* DRAM1 + 0x2000_0000 */ |
| 2 | load_addr=0xa0000000 |
| 3 | /* DRAM1 + 0x0800_0000 */ |
| 4 | initrd_addr_r=0x88000000 |
| 5 | |
| 6 | bootcmd= |
Leo Yan | 0b50abc | 2024-10-25 18:18:19 +0100 | [diff] [blame] | 7 | virtio scan; |
| 8 | if virtio info; then |
| 9 | blk_dev=virtio; |
| 10 | else; |
| 11 | blk_dev=mmc; |
| 12 | fi; |
| 13 | echo block device is ${blk_dev}; |
| 14 | if part number ${blk_dev} 0 vbmeta is_avb; then |
| 15 | echo '${blk_dev} with vbmeta partition detected.'; |
Boyan Karatotev | dd2600e | 2024-10-25 18:18:17 +0100 | [diff] [blame] | 16 | echo 'Starting Android Verified boot...'; |
Leo Yan | 0b50abc | 2024-10-25 18:18:19 +0100 | [diff] [blame] | 17 | avb init ${blk_dev} 0; |
Boyan Karatotev | dd2600e | 2024-10-25 18:18:17 +0100 | [diff] [blame] | 18 | if avb verify; then |
| 19 | set bootargs $bootargs $avb_bootargs; |
Leo Yan | 0b50abc | 2024-10-25 18:18:19 +0100 | [diff] [blame] | 20 | part start ${blk_dev} 0 boot boot_start; |
| 21 | part size ${blk_dev} 0 boot boot_size; |
| 22 | ${blk_dev} read ${load_addr} ${boot_start} ${boot_size}; |
Boyan Karatotev | dd2600e | 2024-10-25 18:18:17 +0100 | [diff] [blame] | 23 | bootm ${load_addr} ${load_addr} ${fdt_addr_r}; |
| 24 | else; |
| 25 | echo 'AVB verification failed.'; |
| 26 | exit; |
| 27 | fi; |
Leo Yan | 0b50abc | 2024-10-25 18:18:19 +0100 | [diff] [blame] | 28 | elif part number ${blk_dev} 0 system is_non_avb_android; then |
Boyan Karatotev | dd2600e | 2024-10-25 18:18:17 +0100 | [diff] [blame] | 29 | echo 'Booting Android non-AVB...'; |
| 30 | booti ${kernel_addr_r} ${initrd_addr_r} ${fdt_addr_r}; |
| 31 | elif iminfo ${load_addr}; then |
| 32 | echo 'Booting FIT image...'; |
| 33 | bootm ${load_addr} ${load_addr} ${fdt_addr_r}; |
Leo Yan | c283740 | 2024-10-25 18:18:20 +0100 | [diff] [blame] | 34 | else; |
| 35 | echo 'Booting Debian...'; |
| 36 | set bootargs $bootargs root=/dev/mmcblk0p1 rw; |
| 37 | booti ${kernel_addr_r} - ${fdt_addr_r}; |
Boyan Karatotev | dd2600e | 2024-10-25 18:18:17 +0100 | [diff] [blame] | 38 | fi; |
| 39 | echo 'ERROR: No valid image to boot the system. Aborting boot sequence.'; |