image: android: allow booting lz4-compressed kernels
authorEugeniu Rosca <erosca@de.adit-jv.com>
Mon, 8 Apr 2019 15:35:27 +0000 (17:35 +0200)
committerTom Rini <trini@konsulko.com>
Wed, 24 Apr 2019 11:27:32 +0000 (07:27 -0400)
commit829ceb28215a1b6178bf690182def5ad56842f49
tree2dbfc2ea6f426284576ca4bb4b0d47c01ceb3a75
parent0efe2b8f9ee2f459a2161e19ae1e66918c9f5c3b
image: android: allow booting lz4-compressed kernels

According to Android image format [1], kernel image resides at 1 page
offset from the boot image address. Grab the magic number from there
and allow U-Boot to handle LZ4-compressed KNL binaries instead of
hardcoding compression type to IH_COMP_NONE. Other compression types,
if needed, can be added later.

Tested on H3ULCB-KF using the image detailed in [2].

[1] Excerpt from include/android_image.h
    +-----------------+
    | boot header     | 1 page
    +-----------------+
    | kernel          | n pages
    +-----------------+
    | ramdisk         | m pages
    +-----------------+
    | second stage    | o pages
    +-----------------+

[2] => iminfo 4c000000
    ## Checking Image at 4c000000 ...
    Android image found
    kernel size:      85b9d1
    kernel address:   48080000
    ramdisk size:     54ddbc
    ramdisk addrress: 4a180000
    second size:      0
    second address:   48000800
    tags address:     48000100
    page size:        800
    os_version:       1200012a (ver: 0.9.0, level: 2018.10)
    name:
    cmdline:          buildvariant=userdebug

Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
common/bootm.c
common/image-android.c
include/image.h
lib/lz4_wrapper.c