[PATCH v2] env: ti: boot: Fix Android boot on AM57x EVM

Sam Protsenko joe.skb7 at gmail.com
Mon Feb 24 14:02:55 CET 2020


Hi Lokesh,

On Fri, Feb 21, 2020 at 4:35 PM Sam Protsenko <joe.skb7 at gmail.com> wrote:
>
> When applying DTBO on top of DTB (with "fdt apply" command) on AM57x EVM
> board, there is not enough memory reserved in RAM for DTB blob. Hence,
> DTBO can't be merged in DTB. It leads to inability to boot Android with
> next error message:
>
>     failed on fdt_overlay_apply(): FDT_ERR_NOSPACE
>
> To overcome that issue let's provide 512 KiB of space to keep DTB and
> all merged DTBO blobs. To do so, "length" parameter should be specified
> for "fdt addr" command:
>
>     => fdt addr $fdtaddr 0x80000
>
> 512 KiB is the maximum size we can use for this, because next address
> after $fdtaddr is 512 KiB ahead of it:
>
>     fdtaddr=0x88000000
>     rdaddr=0x88080000
>
> Also add size variables to 'adtimg' command invocations, to avoid
> cluttering the console with DTBO blob sizes.
>
> Signed-off-by: Sam Protsenko <joe.skb7 at gmail.com>
> ---

Can you please review and pull this one?

Thanks!

> Changes in v2:
>   - Reserve 512 KiB for DTB area, not 1 MiB
>
>  include/environment/ti/boot.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/environment/ti/boot.h b/include/environment/ti/boot.h
> index 523c8fc4fe..11a57af0a4 100644
> --- a/include/environment/ti/boot.h
> +++ b/include/environment/ti/boot.h
> @@ -103,18 +103,18 @@
>                 "echo \"  Reading DTB for AM57x EVM RevA3...\"; " \
>                 "abootimg get dtb --index=0 dtb_start dtb_size; " \
>                 "cp.b $dtb_start $fdtaddr $dtb_size; " \
> -               "fdt addr $fdtaddr; " \
> +               "fdt addr $fdtaddr 0x80000; " \
>                 "echo \"  Applying DTBOs for AM57x EVM RevA3...\"; " \
>                 "adtimg addr $dtboaddr; " \
> -               "adtimg get dt --index=0 dtbo0_addr; " \
> +               "adtimg get dt --index=0 dtbo0_addr dtbo0_size; " \
>                 "fdt apply $dtbo0_addr; " \
> -               "adtimg get dt --index=1 dtbo1_addr; " \
> +               "adtimg get dt --index=1 dtbo1_addr dtbo1_size; " \
>                 "fdt apply $dtbo1_addr; " \
>         "elif test $board_name = beagle_x15_revc; then " \
>                 "echo \"  Reading DTB for Beagle X15 RevC...\"; " \
>                 "abootimg get dtb --index=0 dtb_start dtb_size; " \
>                 "cp.b $dtb_start $fdtaddr $dtb_size; " \
> -               "fdt addr $fdtaddr; " \
> +               "fdt addr $fdtaddr 0x80000; " \
>         "else " \
>                 "echo Error: Android boot is not supported for $board_name; " \
>                 "exit; " \
> --
> 2.24.1
>


More information about the U-Boot mailing list