All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/49] rockchip: x86: Support building ROM files automatically with binman
@ 2020-06-14  2:56 Simon Glass
  2020-06-14  2:56 ` [PATCH v2 01/49] dm: core Fix long line in device_bind_common() Simon Glass
                   ` (48 more replies)
  0 siblings, 49 replies; 93+ messages in thread
From: Simon Glass @ 2020-06-14  2:56 UTC (permalink / raw)
  To: u-boot

Rockchip-based Chromebooks support booting from SPI flash. It is annoying
to have to manually build the SPI image when the SD image is built
automatically.

This feature is already available for x86 devices, so the existing
mechanism is reused. Briefly, this allows a BUILD_ROM environment variable
to be provided to indicate that any required binary blobs are present and
it is safe to build the ROM.

A new 'mkimage' type is added to binman to support building binaries
containing mkimagem using a binman definition to configure it. This avoids
Makefile/shell/Python code to do the same thing.

This series also migrates some rockchip boards to use binman to produce
their FIT as well, resulting in removing the fit_spl_optee.sh script.

Other archs and the rest of rockchip could be migrated too.

This series uses binman to produce a ROM image on two selected
Chromebooks, Bob (RK3399) and Jerry (RK3388).

Changes in v2:
- Add new binman patch to output errors to stderr
- Leave the old (object-directory) path in place
- Add patches to partially migrate rockchip to use binman

Simon Glass (49):
  dm: core Fix long line in device_bind_common()
  .gitignore: Ignore Python 3 cache directories
  binman: Output errors to stderr
  binman: cbfs: Fix IFWI typo
  binman: Correct the search patch for pylibfdt
  binman: Specify the toolpath when running test coverage
  binman: Add support for calling mkimage
  binman: Fix a few typos in the entry docs
  binman: Adjust pylibfdt for incremental build
  binman: Re-enable concurrent tests
  binman: Use super() instead of specifying parent type
  binman: Add an etype for external binary blobs
  binman: Convert existing binary blobs to blob_ext
  binman: Allow external binaries to be missing
  patman: Update errors and warnings to use stderr
  binman: Detect when valid images are not produced
  binman: Allow missing Intel blobs
  binman: Allow zero-length entries to overlap
  mkimage: Allow updating the FIT timestamp
  dtoc: Allow adding variable-sized data to a dtb
  binman: Add support for generating a FIT
  x86: rockchip: Change how selection of ROMs works
  rockchip: Allow Bob to use SPI boot
  Makefile: Allow building .rom files for non-x86 boards
  rockchip: jerry: Add serial support
  rockchip: bob: Support SPI-flash booting
  rockchip: Enable building a SPI ROM image on jerry
  rockchip: Enable building a SPI ROM image on bob
  tegra: Drop the unused non-binman code
  tegra: Don't enable binman on ARMv8 SoCs
  Makefile: Rename ALL-y to INPUTS-y
  powerpc: mpc85xx: Only enable binman when it is needed
  x86: Makefile: Drop explicit targets built by binman
  x86: Drop CONFIG_BUILD_ROM and repurpose BUILD_ROM
  sunxi: Makefile: Drop explicit targets built by binman
  tegra: Makefile: Drop explicit targets built by binman
  mediatek: Makefile: Drop explicit targets built by binman
  rockchip: Makefile: Drop explicit targets built by binman
  Makefile: Move CONFIG_TOOLS_DEBUG check to later
  Makefile: Fix a long line in cmd_mkfitimage
  Makefile: Allow CONFIG_SPL_FIT_GENERATOR to be empty
  Makefile: Warn against using CONFIG_SPL_FIT_GENERATOR
  rockchip: Convert evb-rk3288 over to use binman
  rockchip: Convert evb-rk3229 over to use binman
  rockchip: Drop the fit_spl_optee.sh script
  x86: Move the fdtmap away from the binary blobs
  x86: chromebook_link64: Correct the image layout
  x86: chromebook_panther: Correct the image layout
  x86: chromebook_samus_tpl: Correct the image layout

 .gitignore                                    |   3 +
 Kconfig                                       |  29 ++-
 Makefile                                      | 170 ++++++++----------
 arch/Kconfig                                  |   1 +
 arch/arm/config.mk                            |  10 +-
 arch/arm/dts/rk322x-u-boot.dtsi               |  72 ++++++++
 arch/arm/dts/rk322x.dtsi                      |   1 +
 arch/arm/dts/rk3288-u-boot.dtsi               |  25 +++
 arch/arm/dts/rk3399-gru-u-boot.dtsi           |   4 +
 arch/arm/dts/rk3399-gru.dtsi                  |   2 +-
 arch/arm/dts/rk3399-u-boot.dtsi               |  27 +++
 arch/arm/dts/rockchip-u-boot.dtsi             |  10 +-
 arch/arm/mach-at91/config.mk                  |   2 +-
 arch/arm/mach-davinci/config.mk               |   2 +-
 arch/arm/mach-k3/config.mk                    |  10 +-
 arch/arm/mach-keystone/config.mk              |   4 +-
 arch/arm/mach-omap2/config.mk                 |  28 +--
 arch/arm/mach-rmobile/Makefile                |   2 +-
 arch/arm/mach-rockchip/fit_spl_optee.sh       |  84 ---------
 arch/arm/mach-rockchip/rk3288/Kconfig         |   1 +
 arch/arm/mach-rockchip/rk3399/Kconfig         |   1 +
 arch/arm/mach-rockchip/spl.c                  |   3 +-
 arch/arm/mach-stm32mp/config.mk               |   4 +-
 arch/arm/mach-tegra/Kconfig                   |   2 +-
 arch/powerpc/Kconfig                          |   2 +-
 arch/x86/Kconfig                              |  11 +-
 arch/x86/cpu/baytrail/Kconfig                 |   1 +
 arch/x86/cpu/quark/Kconfig                    |   1 +
 arch/x86/dts/u-boot.dtsi                      |  10 +-
 board/BuR/brppt1/config.mk                    |   4 +-
 board/BuR/brppt2/config.mk                    |   4 +-
 board/BuR/brsmarc1/config.mk                  |   6 +-
 board/imgtec/boston/config.mk                 |   2 +-
 board/intel/edison/config.mk                  |   2 +-
 configs/am335x_evm_defconfig                  |   1 +
 configs/am335x_hs_evm_defconfig               |   1 +
 configs/am335x_hs_evm_uart_defconfig          |   1 +
 configs/am43xx_evm_defconfig                  |   1 +
 configs/am43xx_evm_rtconly_defconfig          |   1 +
 configs/am43xx_evm_usbhost_boot_defconfig     |   1 +
 configs/am43xx_hs_evm_defconfig               |   1 +
 configs/am57xx_evm_defconfig                  |   1 +
 configs/am57xx_hs_evm_defconfig               |   1 +
 configs/am57xx_hs_evm_usb_defconfig           |   1 +
 configs/am65x_evm_a53_defconfig               |   1 +
 configs/am65x_evm_r5_defconfig                |   1 +
 configs/am65x_hs_evm_a53_defconfig            |   1 +
 configs/am65x_hs_evm_r5_defconfig             |   1 +
 configs/chromebook_bob_defconfig              |   4 +-
 configs/chromebook_jerry_defconfig            |   1 +
 configs/chromebook_link64_defconfig           |   2 +
 configs/chromebook_samus_tpl_defconfig        |   2 +-
 configs/chromebox_panther_defconfig           |   2 +
 configs/dh_imx6_defconfig                     |   1 +
 configs/display5_defconfig                    |   1 +
 configs/display5_factory_defconfig            |   1 +
 configs/dra7xx_evm_defconfig                  |   1 +
 configs/dra7xx_hs_evm_defconfig               |   1 +
 configs/dra7xx_hs_evm_usb_defconfig           |   1 +
 configs/evb-rk3229_defconfig                  |   2 +-
 configs/evb-rk3288_defconfig                  |   2 +-
 configs/imx6qdl_icore_mipi_defconfig          |   1 +
 configs/imx6qdl_icore_mmc_defconfig           |   1 +
 configs/imx6qdl_icore_rqs_defconfig           |   1 +
 configs/j721e_evm_a72_defconfig               |   1 +
 configs/j721e_evm_r5_defconfig                |   1 +
 configs/j721e_hs_evm_a72_defconfig            |   1 +
 configs/j721e_hs_evm_r5_defconfig             |   1 +
 configs/ls1046ardb_qspi_spl_defconfig         |   1 +
 configs/mccmon6_nor_defconfig                 |   1 +
 configs/mccmon6_sd_defconfig                  |   1 +
 configs/mx6sabreauto_defconfig                |   1 +
 configs/mx6sabresd_defconfig                  |   1 +
 configs/pico-imx6_defconfig                   |   1 +
 configs/qemu-x86_64_defconfig                 |   2 +-
 configs/qemu-x86_defconfig                    |   1 -
 configs/sandbox_spl_defconfig                 |   1 +
 configs/socfpga_arria10_defconfig             |   1 +
 configs/stm32mp15_dhcom_basic_defconfig       |   1 +
 configs/stm32mp15_dhcor_basic_defconfig       |   1 +
 configs/wandboard_defconfig                   |   1 +
 configs/xilinx_zynq_virt_defconfig            |   1 +
 doc/mkimage.1                                 |   9 +
 drivers/core/device.c                         |   3 +-
 scripts/Makefile.spl                          |  24 +--
 scripts/dtc/pylibfdt/Makefile                 |   3 +
 tools/binman/README                           |   2 +-
 tools/binman/README.entries                   |  80 ++++++++-
 tools/binman/cmdline.py                       |   2 +
 tools/binman/control.py                       |  19 +-
 tools/binman/entry.py                         |  21 +++
 tools/binman/etype/_testing.py                |   9 +-
 tools/binman/etype/blob.py                    |   2 +-
 tools/binman/etype/blob_dtb.py                |   6 +-
 tools/binman/etype/blob_ext.py                |  39 ++++
 tools/binman/etype/blob_named_by_arg.py       |   2 +-
 tools/binman/etype/cbfs.py                    |  16 +-
 tools/binman/etype/cros_ec_rw.py              |   4 +-
 tools/binman/etype/fdtmap.py                  |   2 +-
 tools/binman/etype/files.py                   |   2 +-
 tools/binman/etype/fill.py                    |   4 +-
 tools/binman/etype/fit.py                     | 164 +++++++++++++++++
 tools/binman/etype/fmap.py                    |   2 +-
 tools/binman/etype/gbb.py                     |   2 +-
 tools/binman/etype/image_header.py            |   4 +-
 tools/binman/etype/intel_cmc.py               |   7 +-
 tools/binman/etype/intel_descriptor.py        |  15 +-
 tools/binman/etype/intel_fit.py               |   8 +-
 tools/binman/etype/intel_fit_ptr.py           |   8 +-
 tools/binman/etype/intel_fsp.py               |   7 +-
 tools/binman/etype/intel_fsp_m.py             |   7 +-
 tools/binman/etype/intel_fsp_s.py             |   7 +-
 tools/binman/etype/intel_fsp_t.py             |   7 +-
 tools/binman/etype/intel_ifwi.py              |  25 ++-
 tools/binman/etype/intel_me.py                |   7 +-
 tools/binman/etype/intel_mrc.py               |   7 +-
 tools/binman/etype/intel_refcode.py           |   7 +-
 tools/binman/etype/intel_vbt.py               |   7 +-
 tools/binman/etype/intel_vga.py               |   7 +-
 tools/binman/etype/mkimage.py                 |  62 +++++++
 .../etype/powerpc_mpc85xx_bootpg_resetvec.py  |   3 +-
 tools/binman/etype/section.py                 |  53 ++++--
 tools/binman/etype/text.py                    |   2 +-
 tools/binman/etype/u_boot.py                  |   2 +-
 tools/binman/etype/u_boot_dtb.py              |   2 +-
 tools/binman/etype/u_boot_dtb_with_ucode.py   |   4 +-
 tools/binman/etype/u_boot_elf.py              |   4 +-
 tools/binman/etype/u_boot_img.py              |   2 +-
 tools/binman/etype/u_boot_nodtb.py            |   2 +-
 tools/binman/etype/u_boot_spl.py              |   2 +-
 tools/binman/etype/u_boot_spl_bss_pad.py      |   2 +-
 tools/binman/etype/u_boot_spl_dtb.py          |   2 +-
 tools/binman/etype/u_boot_spl_elf.py          |   2 +-
 tools/binman/etype/u_boot_spl_nodtb.py        |   2 +-
 .../binman/etype/u_boot_spl_with_ucode_ptr.py |   2 +-
 tools/binman/etype/u_boot_tpl.py              |   2 +-
 tools/binman/etype/u_boot_tpl_dtb.py          |   2 +-
 .../binman/etype/u_boot_tpl_dtb_with_ucode.py |   2 +-
 tools/binman/etype/u_boot_tpl_elf.py          |   2 +-
 .../binman/etype/u_boot_tpl_with_ucode_ptr.py |   2 +-
 tools/binman/etype/u_boot_ucode.py            |   2 +-
 tools/binman/etype/u_boot_with_ucode_ptr.py   |   2 +-
 tools/binman/etype/vblock.py                  |   2 +-
 tools/binman/etype/x86_reset16.py             |   2 +-
 tools/binman/etype/x86_reset16_spl.py         |   2 +-
 tools/binman/etype/x86_reset16_tpl.py         |   2 +-
 tools/binman/etype/x86_start16.py             |   2 +-
 tools/binman/etype/x86_start16_spl.py         |   2 +-
 tools/binman/etype/x86_start16_tpl.py         |   2 +-
 tools/binman/ftest.py                         | 140 ++++++++++++++-
 tools/binman/image.py                         |  12 +-
 tools/binman/main.py                          |  13 +-
 tools/binman/test/156_mkimage.dts             |  23 +++
 tools/binman/test/157_blob_ext.dts            |  14 ++
 tools/binman/test/158_blob_ext_missing.dts    |  16 ++
 .../binman/test/159_blob_ext_missing_sect.dts |  23 +++
 tools/binman/test/160_pack_overlap_zero.dts   |  18 ++
 tools/binman/test/161_fit.dts                 |  62 +++++++
 tools/binman/test/162_fit_external.dts        |  64 +++++++
 tools/dtoc/fdt.py                             |  17 +-
 tools/dtoc/test_fdt.py                        |   4 +
 tools/fit_image.c                             |   2 +-
 tools/imagetool.h                             |   1 +
 tools/mkimage.c                               |   5 +-
 tools/patman/test_util.py                     |  13 +-
 tools/patman/tools.py                         |   8 +-
 tools/patman/tout.py                          |   6 +-
 167 files changed, 1350 insertions(+), 411 deletions(-)
 create mode 100644 arch/arm/dts/rk322x-u-boot.dtsi
 delete mode 100755 arch/arm/mach-rockchip/fit_spl_optee.sh
 create mode 100644 tools/binman/etype/blob_ext.py
 create mode 100644 tools/binman/etype/fit.py
 create mode 100644 tools/binman/etype/mkimage.py
 create mode 100644 tools/binman/test/156_mkimage.dts
 create mode 100644 tools/binman/test/157_blob_ext.dts
 create mode 100644 tools/binman/test/158_blob_ext_missing.dts
 create mode 100644 tools/binman/test/159_blob_ext_missing_sect.dts
 create mode 100644 tools/binman/test/160_pack_overlap_zero.dts
 create mode 100644 tools/binman/test/161_fit.dts
 create mode 100644 tools/binman/test/162_fit_external.dts

-- 
2.27.0.290.gba653c62da-goog

^ permalink raw reply	[flat|nested] 93+ messages in thread

end of thread, other threads:[~2020-07-10  0:35 UTC | newest]

Thread overview: 93+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-14  2:56 [PATCH v2 00/49] rockchip: x86: Support building ROM files automatically with binman Simon Glass
2020-06-14  2:56 ` [PATCH v2 01/49] dm: core Fix long line in device_bind_common() Simon Glass
2020-06-29  6:21   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 02/49] .gitignore: Ignore Python 3 cache directories Simon Glass
2020-06-29  6:21   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 03/49] binman: Output errors to stderr Simon Glass
2020-06-29  6:21   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 04/49] binman: cbfs: Fix IFWI typo Simon Glass
2020-06-29  6:21   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 05/49] binman: Correct the search patch for pylibfdt Simon Glass
2020-06-29  6:21   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 06/49] binman: Specify the toolpath when running test coverage Simon Glass
2020-06-14  2:56 ` [PATCH v2 07/49] binman: Add support for calling mkimage Simon Glass
2020-06-14  2:56 ` [PATCH v2 08/49] binman: Fix a few typos in the entry docs Simon Glass
2020-06-29  6:21   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 09/49] binman: Adjust pylibfdt for incremental build Simon Glass
2020-06-29  6:21   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 10/49] binman: Re-enable concurrent tests Simon Glass
2020-06-14  2:56 ` [PATCH v2 11/49] binman: Use super() instead of specifying parent type Simon Glass
2020-06-29  6:54   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 12/49] binman: Add an etype for external binary blobs Simon Glass
2020-06-29  6:54   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 13/49] binman: Convert existing binary blobs to blob_ext Simon Glass
2020-06-29  6:54   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 14/49] binman: Allow external binaries to be missing Simon Glass
2020-06-29  6:54   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 15/49] patman: Update errors and warnings to use stderr Simon Glass
2020-06-29  6:54   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 16/49] binman: Detect when valid images are not produced Simon Glass
2020-06-29  6:54   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 17/49] binman: Allow missing Intel blobs Simon Glass
2020-06-29  6:54   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 18/49] binman: Allow zero-length entries to overlap Simon Glass
2020-06-29  6:54   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 19/49] mkimage: Allow updating the FIT timestamp Simon Glass
2020-06-29  6:54   ` Bin Meng
2020-06-14  2:56 ` [PATCH v2 20/49] dtoc: Allow adding variable-sized data to a dtb Simon Glass
2020-06-14  2:57 ` [PATCH v2 21/49] binman: Add support for generating a FIT Simon Glass
2020-06-14  2:57 ` [PATCH v2 22/49] x86: rockchip: Change how selection of ROMs works Simon Glass
2020-06-29  7:30   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 23/49] rockchip: Allow Bob to use SPI boot Simon Glass
2020-06-14  2:57 ` [PATCH v2 24/49] Makefile: Allow building .rom files for non-x86 boards Simon Glass
2020-06-29  7:30   ` Bin Meng
2020-07-10  0:35     ` Simon Glass
2020-06-14  2:57 ` [PATCH v2 25/49] rockchip: jerry: Add serial support Simon Glass
2020-06-14  2:57 ` [PATCH v2 26/49] rockchip: bob: Support SPI-flash booting Simon Glass
2020-06-14  2:57 ` [PATCH v2 27/49] rockchip: Enable building a SPI ROM image on jerry Simon Glass
2020-06-14  2:57 ` [PATCH v2 28/49] rockchip: Enable building a SPI ROM image on bob Simon Glass
2020-06-14  2:57 ` [PATCH v2 29/49] tegra: Drop the unused non-binman code Simon Glass
2020-06-15 22:02   ` Stephen Warren
2020-06-16 13:44     ` Simon Glass
2020-06-17 22:32       ` Stephen Warren
2020-06-14  2:57 ` [PATCH v2 30/49] tegra: Don't enable binman on ARMv8 SoCs Simon Glass
2020-06-14  2:57 ` [PATCH v2 31/49] Makefile: Rename ALL-y to INPUTS-y Simon Glass
2020-06-29  7:44   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 32/49] powerpc: mpc85xx: Only enable binman when it is needed Simon Glass
2020-06-29  7:44   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 33/49] x86: Makefile: Drop explicit targets built by binman Simon Glass
2020-06-29  7:44   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 34/49] x86: Drop CONFIG_BUILD_ROM and repurpose BUILD_ROM Simon Glass
2020-06-29  7:44   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 35/49] sunxi: Makefile: Drop explicit targets built by binman Simon Glass
2020-06-29  7:44   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 36/49] tegra: " Simon Glass
2020-06-29  7:45   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 37/49] mediatek: " Simon Glass
2020-06-29  7:45   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 38/49] rockchip: " Simon Glass
2020-06-29  7:45   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 39/49] Makefile: Move CONFIG_TOOLS_DEBUG check to later Simon Glass
2020-06-29  7:45   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 40/49] Makefile: Fix a long line in cmd_mkfitimage Simon Glass
2020-06-29  7:45   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 41/49] Makefile: Allow CONFIG_SPL_FIT_GENERATOR to be empty Simon Glass
2020-06-14  2:57 ` [PATCH v2 42/49] Makefile: Warn against using CONFIG_SPL_FIT_GENERATOR Simon Glass
2020-06-29  8:01   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 43/49] rockchip: Convert evb-rk3288 over to use binman Simon Glass
2020-07-07 11:56   ` Kever Yang
2020-07-10  0:35     ` Simon Glass
2020-07-08  1:03   ` Kever Yang
2020-07-10  0:35     ` Simon Glass
2020-06-14  2:57 ` [PATCH v2 44/49] rockchip: Convert evb-rk3229 " Simon Glass
2020-06-29  8:01   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 45/49] rockchip: Drop the fit_spl_optee.sh script Simon Glass
2020-06-29  8:01   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 46/49] x86: Move the fdtmap away from the binary blobs Simon Glass
2020-06-29  8:01   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 47/49] x86: chromebook_link64: Correct the image layout Simon Glass
2020-06-29  8:01   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 48/49] x86: chromebook_panther: " Simon Glass
2020-06-29  8:01   ` Bin Meng
2020-06-14  2:57 ` [PATCH v2 49/49] x86: chromebook_samus_tpl: " Simon Glass
2020-06-29  8:01   ` Bin Meng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.