Binman construct images consisting of multiple binary files. These files
sometimes need to know (at run timme) where their peers are located. For
example, SPL may want to know where U-Boot is located in the image, so
that it can jump to U-Boot correctly on boot.

This series implements this, allowing binaries within the image to become
aware of each other without any significant run-time overhead.

It can be used for:
   - SPL jumping to the correct location for U-Boot
   - SPL finding an FPGA image to program
   - U-Boot locating some configuration data (e.g. serial #) in the image

A way to handle this with binman was requested by Marek Vasut some weeks
ago.

As a demonstration, this converts Tegra to use binman to find U-Boot from
within SPL.


Simon Glass (13):
  binman: Add a function to read ELF symbols
  binman: Add support for including spl/u-boot-spl.dtb
  binman: Add support for including spl/u-boot-spl-nodtb.bin
  binman: Drop a stale comment about the 'board' feature
  binman: Add tests binaries with binman symbols
  binman: Adjust size of test SPL binary
  binman: Support enabling debug in tests
  binman: Support accessing binman tables at run time
  binman: arm: Include the binman symbol table
  binman: Add binman symbol support to SPL
  binman: Add binman support to spl_ram.c
  binman: Add documentation for the symbol feature
  binman: tegra: Convert to use binman

 Makefile                                     |   6 ++
 arch/arm/config.mk                           |   6 +-
 arch/arm/cpu/u-boot-spl.lds                  |   7 ++
 arch/arm/dts/tegra-u-boot.dtsi               |  40 +++++++++
 arch/arm/dts/tegra114-u-boot.dtsi            |   3 +
 arch/arm/dts/tegra124-nyan-big-u-boot.dtsi   |   2 +
 arch/arm/dts/tegra124-u-boot.dtsi            |   3 +
 arch/arm/dts/tegra20-u-boot.dtsi             |  11 +--
 arch/arm/dts/tegra210-u-boot.dtsi            |   3 +
 arch/arm/dts/tegra30-u-boot.dtsi             |   3 +
 arch/arm/mach-tegra/Kconfig                  |   1 +
 common/spl/spl.c                             |  16 +++-
 common/spl/spl_ram.c                         |  19 +++-
 include/binman_sym.h                         |  80 +++++++++++++++++
 include/spl.h                                |  11 +++
 tools/binman/README                          |  32 ++++++-
 tools/binman/binman.py                       |  11 ++-
 tools/binman/control.py                      |   3 +
 tools/binman/elf.py                          | 129 +++++++++++++++++++++++++++
 tools/binman/elf_test.py                     | 122 +++++++++++++++++++++++++
 tools/binman/etype/entry.py                  |   8 ++
 tools/binman/etype/u_boot_spl.py             |   6 ++
 tools/binman/etype/u_boot_spl_bss_pad.py     |   7 +-
 tools/binman/etype/u_boot_spl_dtb.py         |  17 ++++
 tools/binman/etype/u_boot_spl_nodtb.py       |  17 ++++
 tools/binman/etype/u_boot_with_ucode_ptr.py  |   9 +-
 tools/binman/ftest.py                        |  68 +++++++++++---
 tools/binman/image.py                        |  79 +++++++++++++++-
 tools/binman/image_test.py                   |  46 ++++++++++
 tools/binman/test/21_image_pad.dts           |   2 +-
 tools/binman/test/24_sorted.dts              |   4 +-
 tools/binman/test/28_pack_4gb_outside.dts    |   4 +-
 tools/binman/test/29_x86-rom.dts             |   6 +-
 tools/binman/test/51_u_boot_spl_dtb.dts      |  13 +++
 tools/binman/test/52_u_boot_spl_nodtb.dts    |  11 +++
 tools/binman/test/53_symbols.dts             |  20 +++++
 tools/binman/test/Makefile                   |  18 +++-
 tools/binman/test/bss_data.c                 |   2 +-
 tools/binman/test/u_boot_binman_syms         | Bin 0 -> 4921 bytes
 tools/binman/test/u_boot_binman_syms.c       |  14 +++
 tools/binman/test/u_boot_binman_syms.lds     |  30 +++++++
 tools/binman/test/u_boot_binman_syms_bad     | Bin 0 -> 4890 bytes
 tools/binman/test/u_boot_binman_syms_bad.c   |   1 +
 tools/binman/test/u_boot_binman_syms_bad.lds |  29 ++++++
 tools/binman/test/u_boot_binman_syms_size    | Bin 0 -> 4825 bytes
 tools/binman/test/u_boot_binman_syms_size.c  |  12 +++
 tools/binman/test/u_boot_ucode_ptr.c         |   2 +-
 47 files changed, 880 insertions(+), 53 deletions(-)
 create mode 100644 arch/arm/dts/tegra-u-boot.dtsi
 create mode 100644 arch/arm/dts/tegra114-u-boot.dtsi
 create mode 100644 arch/arm/dts/tegra124-u-boot.dtsi
 create mode 100644 arch/arm/dts/tegra210-u-boot.dtsi
 create mode 100644 arch/arm/dts/tegra30-u-boot.dtsi
 create mode 100644 include/binman_sym.h
 create mode 100644 tools/binman/elf.py
 create mode 100644 tools/binman/elf_test.py
 create mode 100644 tools/binman/etype/u_boot_spl_dtb.py
 create mode 100644 tools/binman/etype/u_boot_spl_nodtb.py
 create mode 100644 tools/binman/image_test.py
 create mode 100644 tools/binman/test/51_u_boot_spl_dtb.dts
 create mode 100644 tools/binman/test/52_u_boot_spl_nodtb.dts
 create mode 100644 tools/binman/test/53_symbols.dts
 create mode 100755 tools/binman/test/u_boot_binman_syms
 create mode 100644 tools/binman/test/u_boot_binman_syms.c
 create mode 100644 tools/binman/test/u_boot_binman_syms.lds
 create mode 100755 tools/binman/test/u_boot_binman_syms_bad
 create mode 120000 tools/binman/test/u_boot_binman_syms_bad.c
 create mode 100644 tools/binman/test/u_boot_binman_syms_bad.lds
 create mode 100755 tools/binman/test/u_boot_binman_syms_size
 create mode 100644 tools/binman/test/u_boot_binman_syms_size.c

-- 
2.15.0.448.gf294e3d99a-goog

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to