mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 13:43:28 +00:00
mach-imx: Add i.MX93 binman support.
Add dedicated Makefile targets for the i.MX93 and a new imx93-u-boot.dtsi device-tree to create binman images. Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com>
This commit is contained in:
parent
da96f93cda
commit
f637dfe8c4
5 changed files with 165 additions and 1 deletions
88
arch/arm/dts/imx93-u-boot.dtsi
Normal file
88
arch/arm/dts/imx93-u-boot.dtsi
Normal file
|
@ -0,0 +1,88 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2023 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
*/
|
||||
|
||||
/ {
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
};
|
||||
|
||||
&binman {
|
||||
u-boot-spl-ddr {
|
||||
align = <4>;
|
||||
align-size = <4>;
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
pad-byte = <0xff>;
|
||||
|
||||
u-boot-spl {
|
||||
align-end = <4>;
|
||||
filename = "u-boot-spl.bin";
|
||||
};
|
||||
|
||||
ddr-1d-imem-fw {
|
||||
filename = "lpddr4_imem_1d_v202201.bin";
|
||||
align-end = <4>;
|
||||
type = "blob-ext";
|
||||
};
|
||||
|
||||
ddr-1d-dmem-fw {
|
||||
filename = "lpddr4_dmem_1d_v202201.bin";
|
||||
align-end = <4>;
|
||||
type = "blob-ext";
|
||||
};
|
||||
|
||||
ddr-2d-imem-fw {
|
||||
filename = "lpddr4_imem_2d_v202201.bin";
|
||||
align-end = <4>;
|
||||
type = "blob-ext";
|
||||
};
|
||||
|
||||
ddr-2d-dmem-fw {
|
||||
filename = "lpddr4_dmem_2d_v202201.bin";
|
||||
align-end = <4>;
|
||||
type = "blob-ext";
|
||||
};
|
||||
};
|
||||
|
||||
spl {
|
||||
filename = "spl.bin";
|
||||
|
||||
mkimage {
|
||||
args = "-n spl/u-boot-spl.cfgout -T imx8image -e 0x2049A000";
|
||||
|
||||
blob {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
u-boot-container {
|
||||
filename = "u-boot-container.bin";
|
||||
|
||||
mkimage {
|
||||
args = "-n u-boot-container.cfgout -T imx8image -e 0x0";
|
||||
|
||||
blob {
|
||||
filename = "u-boot.bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imx-boot {
|
||||
filename = "flash.bin";
|
||||
pad-byte = <0x00>;
|
||||
|
||||
spl: blob-ext@1 {
|
||||
filename = "spl.bin";
|
||||
offset = <0x0>;
|
||||
align-size = <0x400>;
|
||||
align = <0x400>;
|
||||
};
|
||||
|
||||
uboot: blob-ext@2 {
|
||||
filename = "u-boot-container.bin";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -129,6 +129,9 @@ DEPFILE_EXISTS := $(shell $(CPP) $(cpp_flags) -x c -o u-boot-dtb.cfgout $(srctre
|
|||
else ifeq ($(CONFIG_ARCH_IMX8M), y)
|
||||
IMAGE_TYPE := imx8mimage
|
||||
DEPFILE_EXISTS := 0
|
||||
else ifeq ($(CONFIG_ARCH_IMX9), y)
|
||||
IMAGE_TYPE := imx8image
|
||||
DEPFILE_EXISTS := 0
|
||||
else
|
||||
IMAGE_TYPE := imximage
|
||||
DEPFILE_EXISTS := 0
|
||||
|
@ -213,7 +216,29 @@ endif
|
|||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_IMX9), y)
|
||||
SPL:
|
||||
|
||||
quiet_cmd_imx9_check = CHECK $@
|
||||
cmd_imx9_check = $(srctree)/tools/imx9_image.sh $@
|
||||
|
||||
SPL: spl/u-boot-spl.bin spl/u-boot-spl.cfgout u-boot-container.cfgout FORCE
|
||||
|
||||
MKIMAGEFLAGS_flash.bin = -n spl/u-boot-spl.cfgout -T $(IMAGE_TYPE) -e $(CONFIG_SPL_TEXT_BASE)
|
||||
flash.bin: MKIMAGEOUTPUT = flash.log
|
||||
|
||||
spl/u-boot-spl.cfgout: $(IMX_CONFIG) FORCE
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(call if_changed_dep,cpp_cfg)
|
||||
$(call if_changed,imx9_check)
|
||||
|
||||
spl/u-boot-spl-ddr.bin: spl/u-boot-spl.bin spl/u-boot-spl.cfgout FORCE
|
||||
|
||||
u-boot-container.cfgout: $(IMX_CONTAINER_CFG) FORCE
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(call if_changed_dep,cpp_cfg)
|
||||
$(call if_changed,imx9_check)
|
||||
|
||||
flash.bin: spl/u-boot-spl-ddr.bin container.cfgout FORCE
|
||||
$(call if_changed,mkimage)
|
||||
endif
|
||||
|
||||
else
|
||||
|
|
10
arch/arm/mach-imx/imx9/container.cfg
Normal file
10
arch/arm/mach-imx/imx9/container.cfg
Normal file
|
@ -0,0 +1,10 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2023 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
*/
|
||||
|
||||
BOOT_FROM SD 0x400
|
||||
SOC_TYPE IMX9
|
||||
CONTAINER
|
||||
IMAGE A55 bl31.bin 0x204E0000
|
||||
IMAGE A55 u-boot.bin CONFIG_TEXT_BASE
|
10
arch/arm/mach-imx/imx9/imximage.cfg
Normal file
10
arch/arm/mach-imx/imx9/imximage.cfg
Normal file
|
@ -0,0 +1,10 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2023 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
*/
|
||||
|
||||
BOOT_FROM SD 0x400
|
||||
SOC_TYPE IMX9
|
||||
APPEND mx93a0-ahab-container.img
|
||||
CONTAINER
|
||||
IMAGE A55 u-boot-spl-ddr.bin 0x2049A000
|
31
tools/imx9_image.sh
Executable file
31
tools/imx9_image.sh
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# Script to check whether the file exists in mkimage cfg files for the i.MX9.
|
||||
#
|
||||
# usage: $0 <file.cfg>
|
||||
|
||||
file=$1
|
||||
|
||||
blobs=`awk '/^APPEND/ {print $2} /^IMAGE/ || /^DATA/ {print $3}' $file`
|
||||
for f in $blobs; do
|
||||
tmp=$srctree/$f
|
||||
if [ $f = "u-boot-spl-ddr.bin" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ -f $f ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ ! -f $tmp ]; then
|
||||
echo "WARNING '$tmp' not found, resulting binary is not-functional" >&2
|
||||
|
||||
# Comment-out the lines for un-existing files. This way,
|
||||
# mkimage can keep working. This allows CI tests to pass even
|
||||
# if the resulting binary won't boot.
|
||||
sed -in "/$f/ s/./#&/" $file
|
||||
fi
|
||||
done
|
||||
|
||||
exit 0
|
Loading…
Reference in a new issue