[PATCH v7 0/8] migrate u-boot-rockchip.bin to binman and generate an image for SPI

From: Quentin Schulz quentin.schulz@theobroma-systems.com
This migrates the generation of u-boot-rockchip.bin from Makefile to binman completely.
This also adds support for generating the same kind of image than u-boot-rockchip.bin but for SPI flashes (specifically, a different image type generated by mkimage is necessary, in addition to a different offset in the storage medium).
This has been tested on Puma RK3399 with patch series from https://lore.kernel.org/u-boot/20220722160655.3904213-1-foss+uboot@0leil.net... (plus https://lore.kernel.org/u-boot/20220722113505.3875669-4-foss+uboot@0leil.net...).
Cheers, Quentin
v7: - added missing rockchip-u-boot.dtsi for binman images to fix builds, All Rockchip boards build tested with: #!/bin/sh
for conf in $(ag -Rl ARCH_ROCKCHIP configs); do git clean -ffdx > /dev/null cp ../bl31.elf . echo -n $conf= make $(basename "$conf") > /dev/null if grep -q -E "^CONFIG_ARM64=y" .config; then CROSS_COMPILE="aarch64-linux-gnu-" else CROSS_COMPILE="arm-linux-gnu-" fi make CROSS_COMPILE="ccache $CROSS_COMPILE" -j$(nproc) > /dev/null 2>&1 echo $? done
v6: - rebased on u-boot-dm/master, - added test for mkimage multiple data files with one data file having no content, - added SPDX license for unit tests, - re-ordered tests and renamed test files accordingly, - added Rb,
v5: - rebased on latest master, - added binman test for mkimage multiple data files, - fixed mkimage data files to pass full paths to input files to mkimage,
v4: - added binman test for mkimage filename, - fixed >80 chars line in patch 2/8 binman: allow user-defined filenames for mkimage entry, - fixed wrong location for endif in patch 6/8 simplify binman image dependencies addition to INPUTS,
v3: - removed https://lore.kernel.org/u-boot/20220722113505.3875669-4-foss+uboot@0leil.net..., it'll be added later on in a separate patch series, - added "binman: allow user-defined filenames for mkimage entry," - kept idbloader.img binary creation even with binman as requested by community, - generate idbloader-spi.img binary with binman, - added "rockchip: remove binman temporary files when cleaning"
v2: - removed patch 4/8 rockchip: pad u-boot-rockchip.bin correctly because it would break partitions table, - rebased on top of master, changes to patch 3/7 rockchip: remove unneeded CONFIG_SPL_PAD_TO compared to the RFC 3/8 rockchip: remove unneeded CONFIG_SPL_PAD_TO,
Quentin Schulz (8): binman: add support for skipping file concatenation for mkimage binman: allow user-defined filenames for mkimage entry rockchip: remove binman temporary files when cleaning rockchip: generate idbloader.img content for u-boot-rockchip.bin with binman for ARM rockchip: generate u-boot-rockchip.bin with binman for ARM64 boards rockchip: simplify binman image dependencies addition to INPUTS rockchip: allow to build SPI images even without HAS_ROM option rockchip: add u-boot-rockchip-spi.bin image for booting from SPI-NOR flash
Makefile | 41 +++------------ arch/arm/Kconfig | 2 +- arch/arm/dts/px30-u-boot.dtsi | 2 + arch/arm/dts/rk3288-u-boot.dtsi | 2 +- arch/arm/dts/rk3308-u-boot.dtsi | 2 + arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi | 2 + arch/arm/dts/rk3328-u-boot.dtsi | 2 + arch/arm/dts/rk3368-u-boot.dtsi | 1 + arch/arm/dts/rk3399-u-boot.dtsi | 2 +- arch/arm/dts/rk3568-u-boot.dtsi | 2 + arch/arm/dts/rockchip-u-boot.dtsi | 46 +++++++++++++++- arch/arm/mach-rockchip/Kconfig | 6 +-- tools/binman/entries.rst | 22 ++++++++ tools/binman/etype/mkimage.py | 52 ++++++++++++++++--- tools/binman/ftest.py | 30 +++++++++++ tools/binman/test/252_mkimage_mult_data.dts | 21 ++++++++ .../test/253_mkimage_mult_no_content.dts | 22 ++++++++ tools/binman/test/254_mkimage_filename.dts | 18 +++++++ 18 files changed, 226 insertions(+), 49 deletions(-) create mode 100644 tools/binman/test/252_mkimage_mult_data.dts create mode 100644 tools/binman/test/253_mkimage_mult_no_content.dts create mode 100644 tools/binman/test/254_mkimage_filename.dts

From: Quentin Schulz quentin.schulz@theobroma-systems.com
Some image types handled by mkimage require the datafiles to be passed independently (-d data1:data2) for specific handling of each. A concatenation of datafiles prior to passing them to mkimage wouldn't work.
That is the case for rkspi for example which requires page alignment and only writing 2KB every 4KB.
This adds the ability to tell binman to pass the datafiles without prior concatenation to mkimage, by adding the multiple-data-files boolean property to the mkimage node.
Cc: Quentin Schulz foss+uboot@0leil.net Signed-off-by: Quentin Schulz quentin.schulz@theobroma-systems.com Reviewed-by: Simon Glass sjg@chromium.org ---
v6: - added Rb, - put tests at the end of the file, - added test for multiple data files passed to mkimage with one data file having no content (thanks Simon for the suggestion), - added SPDX license to test files, - renumbered test files,
v5: - changed to use full path from input dir with tools.get_input_filename to make it possible to run the unit tests, - added unit test,
tools/binman/entries.rst | 22 ++++++++++ tools/binman/etype/mkimage.py | 41 +++++++++++++++++-- tools/binman/ftest.py | 23 +++++++++++ tools/binman/test/252_mkimage_mult_data.dts | 21 ++++++++++ .../test/253_mkimage_mult_no_content.dts | 22 ++++++++++ 5 files changed, 125 insertions(+), 4 deletions(-) create mode 100644 tools/binman/test/252_mkimage_mult_data.dts create mode 100644 tools/binman/test/253_mkimage_mult_no_content.dts
diff --git a/tools/binman/entries.rst b/tools/binman/entries.rst index b3613d7cbd..18bd328c5c 100644 --- a/tools/binman/entries.rst +++ b/tools/binman/entries.rst @@ -1175,6 +1175,9 @@ Properties / Entry arguments: - args: Arguments to pass - data-to-imagename: Indicates that the -d data should be passed in as the image name also (-n) + - multiple-data-files: boolean to tell binman to pass all files as + datafiles to mkimage instead of creating a temporary file the result + of datafiles concatenation
The data passed to mkimage via the -d flag is collected from subnodes of the mkimage node, e.g.:: @@ -1205,6 +1208,25 @@ a section, or just multiple subnodes like this:: }; };
+To pass all datafiles untouched to mkimage:: + + mkimage { + args = "-n rk3399 -T rkspi"; + multiple-data-files; + + u-boot-tpl { + }; + + u-boot-spl { + }; + }; + +This calls mkimage to create a Rockchip RK3399-specific first stage +bootloader, made of TPL+SPL. Since this first stage bootloader requires to +align the TPL and SPL but also some weird hacks that is handled by mkimage +directly, binman is told to not perform the concatenation of datafiles prior +to passing the data to mkimage. + To use CONFIG options in the arguments, use a string list instead, as in this example which also produces four arguments::
diff --git a/tools/binman/etype/mkimage.py b/tools/binman/etype/mkimage.py index ddbd9cec65..5f4bc6fa3c 100644 --- a/tools/binman/etype/mkimage.py +++ b/tools/binman/etype/mkimage.py @@ -18,6 +18,9 @@ class Entry_mkimage(Entry): - args: Arguments to pass - data-to-imagename: Indicates that the -d data should be passed in as the image name also (-n) + - multiple-data-files: boolean to tell binman to pass all files as + datafiles to mkimage instead of creating a temporary file the result + of datafiles concatenation
The data passed to mkimage via the -d flag is collected from subnodes of the mkimage node, e.g.:: @@ -51,6 +54,25 @@ class Entry_mkimage(Entry): Note that binman places the contents (here SPL and TPL) into a single file and passes that to mkimage using the -d option.
+ To pass all datafiles untouched to mkimage:: + + mkimage { + args = "-n rk3399 -T rkspi"; + multiple-data-files; + + u-boot-tpl { + }; + + u-boot-spl { + }; + }; + + This calls mkimage to create a Rockchip RK3399-specific first stage + bootloader, made of TPL+SPL. Since this first stage bootloader requires to + align the TPL and SPL but also some weird hacks that is handled by mkimage + directly, binman is told to not perform the concatenation of datafiles prior + to passing the data to mkimage. + To use CONFIG options in the arguments, use a string list instead, as in this example which also produces four arguments::
@@ -96,6 +118,7 @@ class Entry_mkimage(Entry): """ def __init__(self, section, etype, node): super().__init__(section, etype, node) + self._multiple_data_files = fdt_util.GetBool(self._node, 'multiple-data-files') self._mkimage_entries = OrderedDict() self._imagename = None self.align_default = None @@ -122,10 +145,20 @@ class Entry_mkimage(Entry): def ObtainContents(self): # Use a non-zero size for any fake files to keep mkimage happy # Note that testMkimageImagename() relies on this 'mkimage' parameter - data, input_fname, uniq = self.collect_contents_to_file( - self._mkimage_entries.values(), 'mkimage', 1024) - if data is None: - return False + fake_size = 1024 + if self._multiple_data_files: + fnames = [] + uniq = self.GetUniqueName() + for entry in self._mkimage_entries.values(): + if not entry.ObtainContents(fake_size=fake_size): + return False + fnames.append(tools.get_input_filename(entry.GetDefaultFilename())) + input_fname = ":".join(fnames) + else: + data, input_fname, uniq = self.collect_contents_to_file( + self._mkimage_entries.values(), 'mkimage', fake_size) + if data is None: + return False if self._imagename: image_data, imagename_fname, _ = self.collect_contents_to_file( [self._imagename], 'mkimage-n', 1024) diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index 5422940e07..e0850b760b 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -5898,6 +5898,29 @@ fdt fdtmap Extract the devicetree blob from the fdtmap self.assertIn("Node '/binman/u-boot-dtb': The zstd compression " "requires a length header", str(e.exception))
+ def testMkimageMultipleDataFiles(self): + """Test passing multiple files to mkimage in a mkimage entry""" + data = self._DoReadFile('252_mkimage_mult_data.dts') + # Size of files are packed in their 4B big-endian format + expect = struct.pack('>I', len(U_BOOT_TPL_DATA)) + expect += struct.pack('>I', len(U_BOOT_SPL_DATA)) + # Size info is always followed by a 4B zero value. + expect += tools.get_bytes(0, 4) + expect += U_BOOT_TPL_DATA + # All but last files are 4B-aligned + align_pad = len(U_BOOT_TPL_DATA) % 4 + if align_pad: + expect += tools.get_bytes(0, align_pad) + expect += U_BOOT_SPL_DATA + self.assertEqual(expect, data[-len(expect):]) + + def testMkimageMultipleNoContent(self): + """Test passing multiple data files to mkimage with one data file having no content""" + with self.assertRaises(ValueError) as exc: + self._DoReadFile('253_mkimage_mult_no_content.dts') + self.assertIn('Could not complete processing of contents', + str(exc.exception)) +
if __name__ == "__main__": unittest.main() diff --git a/tools/binman/test/252_mkimage_mult_data.dts b/tools/binman/test/252_mkimage_mult_data.dts new file mode 100644 index 0000000000..a092bc39bf --- /dev/null +++ b/tools/binman/test/252_mkimage_mult_data.dts @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0+ + +/dts-v1/; + +/ { + #address-cells = <1>; + #size-cells = <1>; + + binman { + mkimage { + args = "-T script"; + multiple-data-files; + + u-boot-tpl { + }; + + u-boot-spl { + }; + }; + }; +}; diff --git a/tools/binman/test/253_mkimage_mult_no_content.dts b/tools/binman/test/253_mkimage_mult_no_content.dts new file mode 100644 index 0000000000..dd65666c62 --- /dev/null +++ b/tools/binman/test/253_mkimage_mult_no_content.dts @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0+ + +/dts-v1/; + +/ { + #address-cells = <1>; + #size-cells = <1>; + + binman { + mkimage { + args = "-T script"; + multiple-data-files; + + _testing { + return-unknown-contents; + }; + + u-boot-spl { + }; + }; + }; +};

From: Quentin Schulz quentin.schulz@theobroma-systems.com
mkimage entry currently creates a file whose name is derived from the section name containing said entry.
Let's allow the user to define a filename for the mkimage-generated binary by using the 'filename' DT property.
Cc: Quentin Schulz foss+uboot@0leil.net Signed-off-by: Quentin Schulz quentin.schulz@theobroma-systems.com Reviewed-by: Simon Glass sjg@chromium.org ---
v6: - put test at the end of the file, - renumbered test file, - added SPDX license to test file, - added Rb,
v5: - updated unit test filename, - removed _testing section in unit test, - removed -n arg in unit test, - removed size property in binman node,
v4: - added binman test, - fixed >80 chars-long line,
tools/binman/etype/mkimage.py | 11 ++++++++--- tools/binman/ftest.py | 7 +++++++ tools/binman/test/254_mkimage_filename.dts | 18 ++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 tools/binman/test/254_mkimage_filename.dts
diff --git a/tools/binman/etype/mkimage.py b/tools/binman/etype/mkimage.py index 5f4bc6fa3c..c2288c48ee 100644 --- a/tools/binman/etype/mkimage.py +++ b/tools/binman/etype/mkimage.py @@ -21,11 +21,13 @@ class Entry_mkimage(Entry): - multiple-data-files: boolean to tell binman to pass all files as datafiles to mkimage instead of creating a temporary file the result of datafiles concatenation + - filename: filename of output binary generated by mkimage
The data passed to mkimage via the -d flag is collected from subnodes of the mkimage node, e.g.::
mkimage { + filename = "imximage.bin"; args = "-n test -T imximage";
u-boot-spl { @@ -38,8 +40,9 @@ class Entry_mkimage(Entry): mkimage -d <data_file> -n test -T imximage <output_file>
The output from mkimage then becomes part of the image produced by - binman. If you need to put multiple things in the data file, you can use - a section, or just multiple subnodes like this:: + binman but also is written into `imximage.bin` file. If you need to put + multiple things in the data file, you can use a section, or just multiple + subnodes like this::
mkimage { args = "-n test -T imximage"; @@ -121,6 +124,7 @@ class Entry_mkimage(Entry): self._multiple_data_files = fdt_util.GetBool(self._node, 'multiple-data-files') self._mkimage_entries = OrderedDict() self._imagename = None + self._filename = fdt_util.GetString(self._node, 'filename') self.align_default = None
def ReadNode(self): @@ -164,7 +168,8 @@ class Entry_mkimage(Entry): [self._imagename], 'mkimage-n', 1024) if image_data is None: return False - output_fname = tools.get_output_filename('mkimage-out.%s' % uniq) + outfile = self._filename if self._filename else 'mkimage-out.%s' % uniq + output_fname = tools.get_output_filename(outfile)
args = ['-d', input_fname] if self._data_to_imagename: diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index e0850b760b..3ced14b7e9 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -5921,6 +5921,13 @@ fdt fdtmap Extract the devicetree blob from the fdtmap self.assertIn('Could not complete processing of contents', str(exc.exception))
+ def testMkimageFilename(self): + """Test using mkimage to build a binary with a filename""" + retcode = self._DoTestFile('254_mkimage_filename.dts') + self.assertEqual(0, retcode) + fname = tools.get_output_filename('mkimage-test.bin') + self.assertTrue(os.path.exists(fname)) +
if __name__ == "__main__": unittest.main() diff --git a/tools/binman/test/254_mkimage_filename.dts b/tools/binman/test/254_mkimage_filename.dts new file mode 100644 index 0000000000..4483790ae8 --- /dev/null +++ b/tools/binman/test/254_mkimage_filename.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0+ + +/dts-v1/; + +/ { + #address-cells = <1>; + #size-cells = <1>; + + binman { + mkimage { + filename = "mkimage-test.bin"; + args = "-T script"; + + u-boot-spl { + }; + }; + }; +};

From: Quentin Schulz quentin.schulz@theobroma-systems.com
Binman mkimage entry generates temporary files so let's remove them when calling `make clean`.
Fixes: 9b312e26fc77 ("rockchip: Enable building a SPI ROM image on jerry") Cc: Quentin Schulz foss+uboot@0leil.net Reported-by: Johan Jonker jbx6244@gmail.com Signed-off-by: Quentin Schulz quentin.schulz@theobroma-systems.com Reviewed-by: Simon Glass sjg@chromium.org Reviewed-by: Kever Yang kever.yang@rock-chips.com ---
v6: - added Rb,
added in v3
Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile index 541e942ed5..5750a9e4b8 100644 --- a/Makefile +++ b/Makefile @@ -2225,7 +2225,8 @@ CLEAN_FILES += include/bmp_logo.h include/bmp_logo_data.h \ lpc32xx-* bl31.c bl31.elf bl31_*.bin image.map tispl.bin* \ idbloader.img flash.bin flash.log defconfig keep-syms-lto.c \ mkimage-out.spl.mkimage mkimage.spl.mkimage imx-boot.map \ - itb.fit.fit itb.fit.itb itb.map spl.map + itb.fit.fit itb.fit.itb itb.map spl.map mkimage-out.rom.mkimage \ + mkimage.rom.mkimage rom.map simple-bin.map
# Directories & files removed with 'make mrproper' MRPROPER_DIRS += include/config include/generated spl tpl \

From: Quentin Schulz quentin.schulz@theobroma-systems.com
idbloader.img content - currently created by way of Makefile - can be created by binman directly.
So let's do that for Rockchip ARM platforms.
Cc: Quentin Schulz foss+uboot@0leil.net Signed-off-by: Quentin Schulz quentin.schulz@theobroma-systems.com Reviewed-by: Simon Glass sjg@chromium.org Reviewed-by: Kever Yang kever.yang@rock-chips.com ---
v6: - added Rb,
v4: - added Reviewed-by,
v3: - moved spl back into mkimage section, - added filename property so that the idbloader.img binary is still generated,
Makefile | 2 +- arch/arm/dts/rockchip-u-boot.dtsi | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile index 5750a9e4b8..dbe1aa254a 100644 --- a/Makefile +++ b/Makefile @@ -1011,7 +1011,7 @@ endif else ifeq ($(CONFIG_SPL),y) # Generate these inputs for binman which will create the output files -INPUTS-y += idbloader.img u-boot.img +INPUTS-y += u-boot.img endif endif endif diff --git a/arch/arm/dts/rockchip-u-boot.dtsi b/arch/arm/dts/rockchip-u-boot.dtsi index eae3ee715d..ad72ca9700 100644 --- a/arch/arm/dts/rockchip-u-boot.dtsi +++ b/arch/arm/dts/rockchip-u-boot.dtsi @@ -17,8 +17,17 @@ filename = "u-boot-rockchip.bin"; pad-byte = <0xff>;
- blob { + mkimage { filename = "idbloader.img"; + args = "-n", CONFIG_SYS_SOC, "-T", "rksd"; +#ifdef CONFIG_TPL + multiple-data-files; + + u-boot-tpl { + }; +#endif + u-boot-spl { + }; };
u-boot-img {

From: Quentin Schulz quentin.schulz@theobroma-systems.com
This allows to build u-boot-rockchip.bin binary with binman for Rockchip ARM64 boards instead of the legacy Makefile way.
Cc: Quentin Schulz foss+uboot@0leil.net Signed-off-by: Quentin Schulz quentin.schulz@theobroma-systems.com ---
v7: - Removed reviewed-by, - added missing includes for rockchip-u-boot.dtsi so that binman node is always present for 64b Rockchip platforms,
v6: - added Rb,
v4: - added Reviewed-by,
Makefile | 26 +--------------------- arch/arm/Kconfig | 2 +- arch/arm/dts/px30-u-boot.dtsi | 2 ++ arch/arm/dts/rk3308-u-boot.dtsi | 2 ++ arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi | 2 ++ arch/arm/dts/rk3328-u-boot.dtsi | 2 ++ arch/arm/dts/rk3368-u-boot.dtsi | 1 + arch/arm/dts/rk3568-u-boot.dtsi | 2 ++ arch/arm/dts/rockchip-u-boot.dtsi | 5 +++++ 9 files changed, 18 insertions(+), 26 deletions(-)
diff --git a/Makefile b/Makefile index dbe1aa254a..1dee09eb36 100644 --- a/Makefile +++ b/Makefile @@ -1005,8 +1005,7 @@ ifeq ($(CONFIG_ARCH_ROCKCHIP),y) # On ARM64 this target is produced by binman so we don't need this dep ifeq ($(CONFIG_ARM64),y) ifeq ($(CONFIG_SPL),y) -# TODO: Get binman to generate this too -INPUTS-y += u-boot-rockchip.bin +INPUTS-y += u-boot.itb endif else ifeq ($(CONFIG_SPL),y) @@ -1498,29 +1497,6 @@ OBJCOPYFLAGS_u-boot-with-spl.bin = -I binary -O binary \ u-boot-with-spl.bin: $(SPL_IMAGE) $(SPL_PAYLOAD) FORCE $(call if_changed,pad_cat)
-ifeq ($(CONFIG_ARCH_ROCKCHIP),y) - -# TPL + SPL -ifeq ($(CONFIG_SPL)$(CONFIG_TPL),yy) -MKIMAGEFLAGS_u-boot-tpl-rockchip.bin = -n $(CONFIG_SYS_SOC) -T rksd -tpl/u-boot-tpl-rockchip.bin: tpl/u-boot-tpl.bin FORCE - $(call if_changed,mkimage) -idbloader.img: tpl/u-boot-tpl-rockchip.bin spl/u-boot-spl.bin FORCE - $(call if_changed,cat) -else -MKIMAGEFLAGS_idbloader.img = -n $(CONFIG_SYS_SOC) -T rksd -idbloader.img: spl/u-boot-spl.bin FORCE - $(call if_changed,mkimage) -endif - -ifeq ($(CONFIG_ARM64),y) -OBJCOPYFLAGS_u-boot-rockchip.bin = -I binary -O binary \ - --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff -u-boot-rockchip.bin: idbloader.img u-boot.itb FORCE - $(call if_changed,pad_cat) -endif # CONFIG_ARM64 - -endif # CONFIG_ARCH_ROCKCHIP
ifeq ($(CONFIG_ARCH_LPC32XX)$(CONFIG_SPL),yy) MKIMAGEFLAGS_lpc32xx-spl.img = -T lpc32xximage -a $(CONFIG_SPL_TEXT_BASE) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 0b72e4f650..82cd456f51 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1974,7 +1974,7 @@ config ARCH_STM32MP config ARCH_ROCKCHIP bool "Support Rockchip SoCs" select BLK - select BINMAN if SPL_OPTEE || (SPL && !ARM64) + select BINMAN if SPL_OPTEE || SPL select DM select DM_GPIO select DM_I2C diff --git a/arch/arm/dts/px30-u-boot.dtsi b/arch/arm/dts/px30-u-boot.dtsi index f102b2aef4..462eaf68f8 100644 --- a/arch/arm/dts/px30-u-boot.dtsi +++ b/arch/arm/dts/px30-u-boot.dtsi @@ -3,6 +3,8 @@ * (C) Copyright 2019 Rockchip Electronics Co., Ltd */
+#include "rockchip-u-boot.dtsi" + / { aliases { mmc0 = &emmc; diff --git a/arch/arm/dts/rk3308-u-boot.dtsi b/arch/arm/dts/rk3308-u-boot.dtsi index 4bfad31fba..ab5bfc2ce9 100644 --- a/arch/arm/dts/rk3308-u-boot.dtsi +++ b/arch/arm/dts/rk3308-u-boot.dtsi @@ -3,6 +3,8 @@ *(C) Copyright 2019 Rockchip Electronics Co., Ltd */
+#include "rockchip-u-boot.dtsi" + / { aliases { mmc0 = &emmc; diff --git a/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi b/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi index 95f2652494..16c33735eb 100644 --- a/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi +++ b/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi @@ -3,6 +3,8 @@ * Copyright (c) 2020 Theobroma Systems Design und Consulting GmbH */
+#include "rockchip-u-boot.dtsi" + / { chosen { u-boot,spl-boot-order = &sdmmc; diff --git a/arch/arm/dts/rk3328-u-boot.dtsi b/arch/arm/dts/rk3328-u-boot.dtsi index 1633558264..d4a7540a92 100644 --- a/arch/arm/dts/rk3328-u-boot.dtsi +++ b/arch/arm/dts/rk3328-u-boot.dtsi @@ -3,6 +3,8 @@ * (C) Copyright 2019 Rockchip Electronics Co., Ltd */
+#include "rockchip-u-boot.dtsi" + / { aliases { mmc0 = &emmc; diff --git a/arch/arm/dts/rk3368-u-boot.dtsi b/arch/arm/dts/rk3368-u-boot.dtsi index 2767c2678d..811d59ac34 100644 --- a/arch/arm/dts/rk3368-u-boot.dtsi +++ b/arch/arm/dts/rk3368-u-boot.dtsi @@ -4,6 +4,7 @@ */
#include <dt-bindings/memory/rk3368-dmc.h> +#include "rockchip-u-boot.dtsi"
/ { dmc: dmc@ff610000 { diff --git a/arch/arm/dts/rk3568-u-boot.dtsi b/arch/arm/dts/rk3568-u-boot.dtsi index 5a80dda275..fa9b6ae23b 100644 --- a/arch/arm/dts/rk3568-u-boot.dtsi +++ b/arch/arm/dts/rk3568-u-boot.dtsi @@ -3,6 +3,8 @@ * (C) Copyright 2021 Rockchip Electronics Co., Ltd */
+#include "rockchip-u-boot.dtsi" + / { aliases { mmc0 = &sdhci; diff --git a/arch/arm/dts/rockchip-u-boot.dtsi b/arch/arm/dts/rockchip-u-boot.dtsi index ad72ca9700..f90a8bf085 100644 --- a/arch/arm/dts/rockchip-u-boot.dtsi +++ b/arch/arm/dts/rockchip-u-boot.dtsi @@ -30,7 +30,12 @@ }; };
+#ifdef CONFIG_ARM64 + blob { + filename = "u-boot.itb"; +#else u-boot-img { +#endif offset = <CONFIG_SPL_PAD_TO>; }; };

On Fri, 2 Sept 2022 at 07:11, Quentin Schulz foss+uboot@0leil.net wrote:
From: Quentin Schulz quentin.schulz@theobroma-systems.com
This allows to build u-boot-rockchip.bin binary with binman for Rockchip ARM64 boards instead of the legacy Makefile way.
Cc: Quentin Schulz foss+uboot@0leil.net Signed-off-by: Quentin Schulz quentin.schulz@theobroma-systems.com
v7:
- Removed reviewed-by,
- added missing includes for rockchip-u-boot.dtsi so that binman node
is always present for 64b Rockchip platforms,
v6:
- added Rb,
v4:
- added Reviewed-by,
Makefile | 26 +--------------------- arch/arm/Kconfig | 2 +- arch/arm/dts/px30-u-boot.dtsi | 2 ++ arch/arm/dts/rk3308-u-boot.dtsi | 2 ++ arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi | 2 ++ arch/arm/dts/rk3328-u-boot.dtsi | 2 ++ arch/arm/dts/rk3368-u-boot.dtsi | 1 + arch/arm/dts/rk3568-u-boot.dtsi | 2 ++ arch/arm/dts/rockchip-u-boot.dtsi | 5 +++++ 9 files changed, 18 insertions(+), 26 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org

From: Quentin Schulz quentin.schulz@theobroma-systems.com
By factoring SPL check in the first condition, this makes the checks a bit less convoluted and more readable.
Cc: Quentin Schulz foss+uboot@0leil.net Signed-off-by: Quentin Schulz quentin.schulz@theobroma-systems.com Reviewed-by: Kever Yang kever.yang@rock-chips.com Reviewed-by: Simon Glass sjg@chromium.org ---
v6: - added Rb,
v4: - fixed wrong place for endif for ARM32 boards,
Makefile | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile index 1dee09eb36..736c4ad182 100644 --- a/Makefile +++ b/Makefile @@ -1001,19 +1001,14 @@ ifeq ($(CONFIG_MPC85xx)$(CONFIG_OF_SEPARATE),yy) INPUTS-y += u-boot-with-dtb.bin endif
-ifeq ($(CONFIG_ARCH_ROCKCHIP),y) -# On ARM64 this target is produced by binman so we don't need this dep +ifeq ($(CONFIG_ARCH_ROCKCHIP)$(CONFIG_SPL),yy) +# Binman image dependencies ifeq ($(CONFIG_ARM64),y) -ifeq ($(CONFIG_SPL),y) INPUTS-y += u-boot.itb -endif else -ifeq ($(CONFIG_SPL),y) -# Generate these inputs for binman which will create the output files INPUTS-y += u-boot.img endif endif -endif
INPUTS-$(CONFIG_X86) += u-boot-x86-start16.bin u-boot-x86-reset16.bin \ $(if $(CONFIG_SPL_X86_16BIT_INIT),spl/u-boot-spl.bin) \

From: Quentin Schulz quentin.schulz@theobroma-systems.com
This prepares for the creation of a u-boot-rockchip-spi.bin image similar to u-boot-rockchip.bin to the exception it's destined for SPI-NOR flashes instead of MMC storage medium.
Cc: Quentin Schulz foss+uboot@0leil.net Signed-off-by: Quentin Schulz quentin.schulz@theobroma-systems.com Reviewed-by: Simon Glass sjg@chromium.org Reviewed-by: Kever Yang kever.yang@rock-chips.com ---
v6: - added Rb,
arch/arm/dts/rk3288-u-boot.dtsi | 2 +- arch/arm/dts/rk3399-u-boot.dtsi | 2 +- arch/arm/mach-rockchip/Kconfig | 6 ++---- 3 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/arch/arm/dts/rk3288-u-boot.dtsi b/arch/arm/dts/rk3288-u-boot.dtsi index 9eb696b141..e411445ed6 100644 --- a/arch/arm/dts/rk3288-u-boot.dtsi +++ b/arch/arm/dts/rk3288-u-boot.dtsi @@ -56,7 +56,7 @@ }; };
-#ifdef CONFIG_ROCKCHIP_SPI_IMAGE +#if defined(CONFIG_ROCKCHIP_SPI_IMAGE) && defined(CONFIG_HAS_ROM) &binman { rom { filename = "u-boot.rom"; diff --git a/arch/arm/dts/rk3399-u-boot.dtsi b/arch/arm/dts/rk3399-u-boot.dtsi index 716b9a433a..3c1a15fe51 100644 --- a/arch/arm/dts/rk3399-u-boot.dtsi +++ b/arch/arm/dts/rk3399-u-boot.dtsi @@ -60,7 +60,7 @@
};
-#ifdef CONFIG_ROCKCHIP_SPI_IMAGE +#if defined(CONFIG_ROCKCHIP_SPI_IMAGE) && defined(CONFIG_HAS_ROM) &binman { rom { filename = "u-boot.rom"; diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig index c561a77e6a..b46cea2f91 100644 --- a/arch/arm/mach-rockchip/Kconfig +++ b/arch/arm/mach-rockchip/Kconfig @@ -425,12 +425,10 @@ config SPL_MMC
config ROCKCHIP_SPI_IMAGE bool "Build a SPI image for rockchip" - depends on HAS_ROM help Some Rockchip SoCs support booting from SPI flash. Enable this - option to produce a 4MB SPI-flash image (called u-boot.rom) - containing U-Boot. The image is built by binman. U-Boot sits near - the start of the image. + option to produce a SPI-flash image containing U-Boot. The image + is built by binman. U-Boot sits near the start of the image.
config LNX_KRNL_IMG_TEXT_OFFSET_BASE default SYS_TEXT_BASE

From: Quentin Schulz quentin.schulz@theobroma-systems.com
This new image is similar to u-boot-rockchip.bin except that it's destined to be flashed on SPI-NOR flashes.
Cc: Quentin Schulz foss+uboot@0leil.net Signed-off-by: Quentin Schulz quentin.schulz@theobroma-systems.com Reviewed-by: Kever Yang kever.yang@rock-chips.com Reviewed-by: Simon Glass sjg@chromium.org ---
v6: - added Rb,
v3: - added filename property so that idblaoder-spi.img binary is generated by binman, as per community request, - added new temporary files to the list of files to clean up on `make clean`,
Makefile | 3 ++- arch/arm/dts/rockchip-u-boot.dtsi | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile index 736c4ad182..e70e92c947 100644 --- a/Makefile +++ b/Makefile @@ -2197,7 +2197,8 @@ CLEAN_FILES += include/bmp_logo.h include/bmp_logo_data.h \ idbloader.img flash.bin flash.log defconfig keep-syms-lto.c \ mkimage-out.spl.mkimage mkimage.spl.mkimage imx-boot.map \ itb.fit.fit itb.fit.itb itb.map spl.map mkimage-out.rom.mkimage \ - mkimage.rom.mkimage rom.map simple-bin.map + mkimage.rom.mkimage rom.map simple-bin.map simple-bin-spi.map \ + idbloader-spi.img
# Directories & files removed with 'make mrproper' MRPROPER_DIRS += include/config include/generated spl tpl \ diff --git a/arch/arm/dts/rockchip-u-boot.dtsi b/arch/arm/dts/rockchip-u-boot.dtsi index f90a8bf085..584f21eb5b 100644 --- a/arch/arm/dts/rockchip-u-boot.dtsi +++ b/arch/arm/dts/rockchip-u-boot.dtsi @@ -39,5 +39,35 @@ offset = <CONFIG_SPL_PAD_TO>; }; }; + +#ifdef CONFIG_ROCKCHIP_SPI_IMAGE + simple-bin-spi { + filename = "u-boot-rockchip-spi.bin"; + pad-byte = <0xff>; + + mkimage { + filename = "idbloader-spi.img"; + args = "-n", CONFIG_SYS_SOC, "-T", "rkspi"; +#ifdef CONFIG_TPL + multiple-data-files; + + u-boot-tpl { + }; +#endif + u-boot-spl { + }; + }; + +#ifdef CONFIG_ARM64 + blob { + filename = "u-boot.itb"; +#else + u-boot-img { +#endif + /* Sync with u-boot,spl-payload-offset if present */ + offset = <CONFIG_SYS_SPI_U_BOOT_OFFS>; + }; + }; +#endif }; #endif

Hi Quentin,
I got below error for SoCs other than rk3399, eg. rk3308, rk3568, rk3328 and etc.
+binman: Device tree 'u-boot.dtb' does not have a 'binman' node +make[1]: *** [Makefile:1113: all] Error 1 +make: *** [Makefile:177: sub-make] Error 2
Thanks,
- Kever
On 2022/9/2 21:10, Quentin Schulz wrote:
From: Quentin Schulz quentin.schulz@theobroma-systems.com
This migrates the generation of u-boot-rockchip.bin from Makefile to binman completely.
This also adds support for generating the same kind of image than u-boot-rockchip.bin but for SPI flashes (specifically, a different image type generated by mkimage is necessary, in addition to a different offset in the storage medium).
This has been tested on Puma RK3399 with patch series from https://lore.kernel.org/u-boot/20220722160655.3904213-1-foss+uboot@0leil.net... (plus https://lore.kernel.org/u-boot/20220722113505.3875669-4-foss+uboot@0leil.net...).
Cheers, Quentin
v7:
- added missing rockchip-u-boot.dtsi for binman images to fix builds,
All Rockchip boards build tested with: #!/bin/sh
for conf in $(ag -Rl ARCH_ROCKCHIP configs); do git clean -ffdx > /dev/null cp ../bl31.elf . echo -n $conf= make $(basename "$conf") > /dev/null if grep -q -E "^CONFIG_ARM64=y" .config; then CROSS_COMPILE="aarch64-linux-gnu-" else CROSS_COMPILE="arm-linux-gnu-" fi make CROSS_COMPILE="ccache $CROSS_COMPILE" -j$(nproc) > /dev/null 2>&1 echo $? done
v6:
- rebased on u-boot-dm/master,
- added test for mkimage multiple data files with one data file having
no content,
- added SPDX license for unit tests,
- re-ordered tests and renamed test files accordingly,
- added Rb,
v5:
- rebased on latest master,
- added binman test for mkimage multiple data files,
- fixed mkimage data files to pass full paths to input files to
mkimage,
v4:
- added binman test for mkimage filename,
- fixed >80 chars line in patch 2/8 binman: allow user-defined filenames for
mkimage entry,
- fixed wrong location for endif in patch 6/8 simplify binman image
dependencies addition to INPUTS,
v3:
- removed
https://lore.kernel.org/u-boot/20220722113505.3875669-4-foss+uboot@0leil.net..., it'll be added later on in a separate patch series,
- added "binman: allow user-defined filenames for mkimage entry,"
- kept idbloader.img binary creation even with binman as requested by
community,
- generate idbloader-spi.img binary with binman,
- added "rockchip: remove binman temporary files when cleaning"
v2:
- removed patch 4/8 rockchip: pad u-boot-rockchip.bin correctly because
it would break partitions table,
- rebased on top of master, changes to patch 3/7 rockchip: remove
unneeded CONFIG_SPL_PAD_TO compared to the RFC 3/8 rockchip: remove unneeded CONFIG_SPL_PAD_TO,
Quentin Schulz (8): binman: add support for skipping file concatenation for mkimage binman: allow user-defined filenames for mkimage entry rockchip: remove binman temporary files when cleaning rockchip: generate idbloader.img content for u-boot-rockchip.bin with binman for ARM rockchip: generate u-boot-rockchip.bin with binman for ARM64 boards rockchip: simplify binman image dependencies addition to INPUTS rockchip: allow to build SPI images even without HAS_ROM option rockchip: add u-boot-rockchip-spi.bin image for booting from SPI-NOR flash
Makefile | 41 +++------------ arch/arm/Kconfig | 2 +- arch/arm/dts/px30-u-boot.dtsi | 2 + arch/arm/dts/rk3288-u-boot.dtsi | 2 +- arch/arm/dts/rk3308-u-boot.dtsi | 2 + arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi | 2 + arch/arm/dts/rk3328-u-boot.dtsi | 2 + arch/arm/dts/rk3368-u-boot.dtsi | 1 + arch/arm/dts/rk3399-u-boot.dtsi | 2 +- arch/arm/dts/rk3568-u-boot.dtsi | 2 + arch/arm/dts/rockchip-u-boot.dtsi | 46 +++++++++++++++- arch/arm/mach-rockchip/Kconfig | 6 +-- tools/binman/entries.rst | 22 ++++++++ tools/binman/etype/mkimage.py | 52 ++++++++++++++++--- tools/binman/ftest.py | 30 +++++++++++ tools/binman/test/252_mkimage_mult_data.dts | 21 ++++++++ .../test/253_mkimage_mult_no_content.dts | 22 ++++++++ tools/binman/test/254_mkimage_filename.dts | 18 +++++++ 18 files changed, 226 insertions(+), 49 deletions(-) create mode 100644 tools/binman/test/252_mkimage_mult_data.dts create mode 100644 tools/binman/test/253_mkimage_mult_no_content.dts create mode 100644 tools/binman/test/254_mkimage_filename.dts

On 2022/9/3 11:59, Kever Yang wrote:
Hi Quentin,
I got below error for SoCs other than rk3399, eg. rk3308, rk3568, rk3328 and etc.
This patch set do not have this error, it happens in older patch set.
Thanks,
- Kever
+binman: Device tree 'u-boot.dtb' does not have a 'binman' node +make[1]: *** [Makefile:1113: all] Error 1 +make: *** [Makefile:177: sub-make] Error 2
Thanks,
- Kever
On 2022/9/2 21:10, Quentin Schulz wrote:
From: Quentin Schulz quentin.schulz@theobroma-systems.com
This migrates the generation of u-boot-rockchip.bin from Makefile to binman completely.
This also adds support for generating the same kind of image than u-boot-rockchip.bin but for SPI flashes (specifically, a different image type generated by mkimage is necessary, in addition to a different offset in the storage medium).
This has been tested on Puma RK3399 with patch series from https://lore.kernel.org/u-boot/20220722160655.3904213-1-foss+uboot@0leil.net... (plus https://lore.kernel.org/u-boot/20220722113505.3875669-4-foss+uboot@0leil.net...).
Cheers, Quentin
v7: - added missing rockchip-u-boot.dtsi for binman images to fix builds, All Rockchip boards build tested with: #!/bin/sh for conf in $(ag -Rl ARCH_ROCKCHIP configs); do git clean -ffdx > /dev/null cp ../bl31.elf . echo -n $conf= make $(basename "$conf") > /dev/null if grep -q -E "^CONFIG_ARM64=y" .config; then CROSS_COMPILE="aarch64-linux-gnu-" else CROSS_COMPILE="arm-linux-gnu-" fi make CROSS_COMPILE="ccache $CROSS_COMPILE" -j$(nproc) > /dev/null 2>&1 echo $? done
v6: - rebased on u-boot-dm/master, - added test for mkimage multiple data files with one data file having no content, - added SPDX license for unit tests, - re-ordered tests and renamed test files accordingly, - added Rb,
v5: - rebased on latest master, - added binman test for mkimage multiple data files, - fixed mkimage data files to pass full paths to input files to mkimage,
v4: - added binman test for mkimage filename, - fixed >80 chars line in patch 2/8 binman: allow user-defined filenames for mkimage entry, - fixed wrong location for endif in patch 6/8 simplify binman image dependencies addition to INPUTS,
v3: - removed https://lore.kernel.org/u-boot/20220722113505.3875669-4-foss+uboot@0leil.net..., it'll be added later on in a separate patch series, - added "binman: allow user-defined filenames for mkimage entry," - kept idbloader.img binary creation even with binman as requested by community, - generate idbloader-spi.img binary with binman, - added "rockchip: remove binman temporary files when cleaning"
v2: - removed patch 4/8 rockchip: pad u-boot-rockchip.bin correctly because it would break partitions table, - rebased on top of master, changes to patch 3/7 rockchip: remove unneeded CONFIG_SPL_PAD_TO compared to the RFC 3/8 rockchip: remove unneeded CONFIG_SPL_PAD_TO,
Quentin Schulz (8): binman: add support for skipping file concatenation for mkimage binman: allow user-defined filenames for mkimage entry rockchip: remove binman temporary files when cleaning rockchip: generate idbloader.img content for u-boot-rockchip.bin with binman for ARM rockchip: generate u-boot-rockchip.bin with binman for ARM64 boards rockchip: simplify binman image dependencies addition to INPUTS rockchip: allow to build SPI images even without HAS_ROM option rockchip: add u-boot-rockchip-spi.bin image for booting from SPI-NOR flash
Makefile | 41 +++------------ arch/arm/Kconfig | 2 +- arch/arm/dts/px30-u-boot.dtsi | 2 + arch/arm/dts/rk3288-u-boot.dtsi | 2 +- arch/arm/dts/rk3308-u-boot.dtsi | 2 + arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi | 2 + arch/arm/dts/rk3328-u-boot.dtsi | 2 + arch/arm/dts/rk3368-u-boot.dtsi | 1 + arch/arm/dts/rk3399-u-boot.dtsi | 2 +- arch/arm/dts/rk3568-u-boot.dtsi | 2 + arch/arm/dts/rockchip-u-boot.dtsi | 46 +++++++++++++++- arch/arm/mach-rockchip/Kconfig | 6 +-- tools/binman/entries.rst | 22 ++++++++ tools/binman/etype/mkimage.py | 52 ++++++++++++++++--- tools/binman/ftest.py | 30 +++++++++++ tools/binman/test/252_mkimage_mult_data.dts | 21 ++++++++ .../test/253_mkimage_mult_no_content.dts | 22 ++++++++ tools/binman/test/254_mkimage_filename.dts | 18 +++++++ 18 files changed, 226 insertions(+), 49 deletions(-) create mode 100644 tools/binman/test/252_mkimage_mult_data.dts create mode 100644 tools/binman/test/253_mkimage_mult_no_content.dts create mode 100644 tools/binman/test/254_mkimage_filename.dts

Hi Kever,
On September 3, 2022 5:59:26 AM GMT+02:00, Kever Yang kever.yang@rock-chips.com wrote:
Hi Quentin,
I got below error for SoCs other than rk3399, eg. rk3308, rk3568, rk3328 and etc.
+binman: Device tree 'u-boot.dtb' does not have a 'binman' node +make[1]: *** [Makefile:1113: all] Error 1 +make: *** [Makefile:177: sub-make] Error 2
The V7 should fix this. Did you test V6 or V7?
Cheers, Quentin
Thanks,
- Kever
On 2022/9/2 21:10, Quentin Schulz wrote:
From: Quentin Schulz quentin.schulz@theobroma-systems.com
This migrates the generation of u-boot-rockchip.bin from Makefile to binman completely.
This also adds support for generating the same kind of image than u-boot-rockchip.bin but for SPI flashes (specifically, a different image type generated by mkimage is necessary, in addition to a different offset in the storage medium).
This has been tested on Puma RK3399 with patch series from https://lore.kernel.org/u-boot/20220722160655.3904213-1-foss+uboot@0leil.net... (plus https://lore.kernel.org/u-boot/20220722113505.3875669-4-foss+uboot@0leil.net...).
Cheers, Quentin
v7:
- added missing rockchip-u-boot.dtsi for binman images to fix builds,
All Rockchip boards build tested with: #!/bin/sh for conf in $(ag -Rl ARCH_ROCKCHIP configs); do git clean -ffdx > /dev/null cp ../bl31.elf . echo -n $conf= make $(basename "$conf") > /dev/null if grep -q -E "^CONFIG_ARM64=y" .config; then CROSS_COMPILE="aarch64-linux-gnu-" else CROSS_COMPILE="arm-linux-gnu-" fi make CROSS_COMPILE="ccache $CROSS_COMPILE" -j$(nproc) > /dev/null 2>&1 echo $? done
v6:
- rebased on u-boot-dm/master,
- added test for mkimage multiple data files with one data file having
no content,
- added SPDX license for unit tests,
- re-ordered tests and renamed test files accordingly,
- added Rb,
v5:
- rebased on latest master,
- added binman test for mkimage multiple data files,
- fixed mkimage data files to pass full paths to input files to
mkimage,
v4:
- added binman test for mkimage filename,
- fixed >80 chars line in patch 2/8 binman: allow user-defined filenames for
mkimage entry,
- fixed wrong location for endif in patch 6/8 simplify binman image
dependencies addition to INPUTS,
v3:
- removed
https://lore.kernel.org/u-boot/20220722113505.3875669-4-foss+uboot@0leil.net..., it'll be added later on in a separate patch series,
- added "binman: allow user-defined filenames for mkimage entry,"
- kept idbloader.img binary creation even with binman as requested by
community,
- generate idbloader-spi.img binary with binman,
- added "rockchip: remove binman temporary files when cleaning"
v2:
- removed patch 4/8 rockchip: pad u-boot-rockchip.bin correctly because
it would break partitions table,
- rebased on top of master, changes to patch 3/7 rockchip: remove
unneeded CONFIG_SPL_PAD_TO compared to the RFC 3/8 rockchip: remove unneeded CONFIG_SPL_PAD_TO,
Quentin Schulz (8): binman: add support for skipping file concatenation for mkimage binman: allow user-defined filenames for mkimage entry rockchip: remove binman temporary files when cleaning rockchip: generate idbloader.img content for u-boot-rockchip.bin with binman for ARM rockchip: generate u-boot-rockchip.bin with binman for ARM64 boards rockchip: simplify binman image dependencies addition to INPUTS rockchip: allow to build SPI images even without HAS_ROM option rockchip: add u-boot-rockchip-spi.bin image for booting from SPI-NOR flash
Makefile | 41 +++------------ arch/arm/Kconfig | 2 +- arch/arm/dts/px30-u-boot.dtsi | 2 + arch/arm/dts/rk3288-u-boot.dtsi | 2 +- arch/arm/dts/rk3308-u-boot.dtsi | 2 + arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi | 2 + arch/arm/dts/rk3328-u-boot.dtsi | 2 + arch/arm/dts/rk3368-u-boot.dtsi | 1 + arch/arm/dts/rk3399-u-boot.dtsi | 2 +- arch/arm/dts/rk3568-u-boot.dtsi | 2 + arch/arm/dts/rockchip-u-boot.dtsi | 46 +++++++++++++++- arch/arm/mach-rockchip/Kconfig | 6 +-- tools/binman/entries.rst | 22 ++++++++ tools/binman/etype/mkimage.py | 52 ++++++++++++++++--- tools/binman/ftest.py | 30 +++++++++++ tools/binman/test/252_mkimage_mult_data.dts | 21 ++++++++ .../test/253_mkimage_mult_no_content.dts | 22 ++++++++ tools/binman/test/254_mkimage_filename.dts | 18 +++++++ 18 files changed, 226 insertions(+), 49 deletions(-) create mode 100644 tools/binman/test/252_mkimage_mult_data.dts create mode 100644 tools/binman/test/253_mkimage_mult_no_content.dts create mode 100644 tools/binman/test/254_mkimage_filename.dts
participants (4)
-
Kever Yang
-
Quentin Schulz
-
Quentin Schulz
-
Simon Glass