So I believe the options are:
- Bootm - uImage format
- Booti - Image format (newest version of U-Boot has Booti support Image.gz)
- Bootz - zImage format
So I tried just unzipping my Image.gz after reading this. So now my commands are:
env default -f -a; saveenv
usb start
run setup
setenv fdt_file imx8qm-apalis-v1.1-eval.dtb
setenv boot_file Image.gz
saveenv
load usb 0:1 ${ramdisk_addr_r} initramfs.img #load the initrd into RAM
load mmc 0:1 ${fdt_addr_r} ${fdt_file} #load the fdt file into RAM
fatload mmc 0:1 ${loadaddr} ${boot_file} #load the Image.gz file
unzip ${loadaddr} ${kernel_addr_r} #unzip the Image.gz file into RAM since booti can't do Image.gz
setenv boot_file Image #change back just in case
saveenv
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
However, I get:
Apalis iMX8 # booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
## Loading init Ramdisk from Legacy Image at 8a000000 ...
Image Name: Initial Ram Disk
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 2004343 Bytes = 1.9 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Loading Ramdisk to fd466000, end fd64f577 ... OK
ERROR: Failed to allocate 0x2bb97 bytes below 0xffe00000.
device tree - allocation error
FDT creation failed! hanging...### ERROR ### Please RESET the board ###
Did I run out of RAM?
Loading Ramdisk to fd466000, end fd64f577 ... OK
which in decimal is (0xFD466000) 4,249,247,744 to (0xFD64F577) 4,251,252,087.
And 4,251,252,087 - 4,249,247,744 = 2,004,343 Bytes. This makes sense since U-Boot outputted
2004407 bytes read in 127 ms (15.1 MiB/s)
After the "load usb 0:1 ${ramdisk_addr_r} initramfs.img " command.
Now 0x2BB97 is 179,095 Bytes, and it says “ERROR: Failed to allocate 0x2bb97 bytes below 0xffe00000” where 0xFFE00000 is 4,292,870,144 Bytes.
I wonder if the bootm_size and bootm_low parameters could be modified to solve this.