u-boot/tools
Samuel Holland e9e87ec47c tools: mkimage: Add Allwinner TOC0 support
Most Allwinner sunxi SoCs have separate boot ROMs in non-secure and
secure mode. The "non-secure" or "normal" boot ROM (NBROM) uses the
existing sunxi_egon image type. The secure boot ROM (SBROM) uses a
completely different image type, known as TOC0.

A TOC0 image is composed of a header and two or more items. One item
is the firmware binary. The others form a chain linking the firmware
signature to the root-of-trust public key (ROTPK), which has its hash
burned in the SoC's eFuses. Signatures are made using RSA-2048 + SHA256.

The pseudo-ASN.1 structure is manually assembled; this is done to work
around bugs/quirks in the boot ROM, which vary between SoCs. This TOC0
implementation has been verified to work with the A50, A64, H5, H6,
and H616 SBROMs, and it may work with other SoCs.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Acked-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2022-04-04 23:24:17 +01:00
..
binman binman: Allow different operations in FIT generator nodes 2022-02-22 10:05:44 -07:00
buildman tools: buildman: Fix doc path in warning message 2022-03-20 11:03:05 +01:00
concurrencytest concurrencytest: Fix Python3 warning 2021-01-05 12:26:35 -07:00
docker Dockfile, CI: Update to latest focal tag and build 2022-02-03 12:15:32 -05:00
dtoc dtoc: Support reading a list of arguments 2022-02-22 10:05:44 -07:00
env fw_env: simplify logic & code paths in the fw_env_open() 2022-02-11 11:29:23 -05:00
gdb SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
kermit SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
libfdt libfdt: migrate fdt_ro.c to a wrapper of scripts/dtc/libfdt/fdt_ro.c 2020-04-26 14:23:39 -06:00
logos video: theadorable: Use RGB565 for BMP blitting 2021-12-26 23:23:52 +01:00
omap SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
patman patman: Convert camel case in terminal.py 2022-02-09 12:30:13 -07:00
scripts tools: fix define2mk.sed to not add quotes around negative integers 2016-06-13 07:46:29 +09:00
.gitignore tools: add mkeficapsule to .gitignore 2021-01-29 20:22:40 +01:00
aisimage.c tool: aisimage: use ALIGN instead of self defiend macro 2020-04-24 10:10:00 -04:00
aisimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
asn1_compiler.c WS cleanup: remove trailing white space 2021-09-30 08:08:56 -04:00
atmel_pmecc_params.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
atmelimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bmp_logo.c bmp_logo: support CONFIG_DM_VIDEO 2019-07-29 00:20:31 +02:00
default_image.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
dumpimage.c tools: mkimage/dumpimage: Allow to use -l with -T 2022-02-28 10:33:11 -05:00
dumpimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
eficapsule.h tools: mkeficapsule: add firmware image signing 2022-02-11 20:07:55 +01:00
efivar.py tools: efivar.py unused variable 2021-01-13 02:38:00 +01:00
endian-swap.py tools: add script for byte endianness swapping 2020-06-29 22:36:35 +02:00
envcrc.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
fdt_host.h tools: Improve comments in signing functions 2022-01-26 08:50:43 -07:00
fdtgrep.c fdtgrep: Correct alignment of struct section 2021-12-17 09:44:59 -07:00
file2include.c tools/file2include: don't use malloc.h for malloc 2018-11-26 22:52:12 -05:00
fit_check_sign.c fit_check_sign: Update help to mention the key is in a dtb 2022-01-26 08:50:42 -07:00
fit_common.c tools: mkimage: Show where signatures/keys are written 2022-01-26 08:50:44 -07:00
fit_common.h tools: mkimage: Show where signatures/keys are written 2022-01-26 08:50:44 -07:00
fit_image.c tools: mkimage: Show where signatures/keys are written 2022-01-26 08:50:44 -07:00
fit_info.c tools: use read-only mmap in fit_check_sign 2019-05-18 12:32:02 -04:00
gen_eth_addr.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gen_ethaddr_crc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
genboardscfg.py genboardscfg: limit to 240 jobs 2022-01-13 09:13:41 -07:00
getline.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
getline.h getline: split out for darwin systems 2010-01-26 00:07:13 +01:00
gpheader.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gpimage-common.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gpimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ifdtool.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
ifdtool.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ifwitool.c tool: Move ALIGN_MASK to header as common MACRO 2020-04-24 10:10:00 -04:00
image-host.c tools: mkimage: Show where signatures/keys are written 2022-01-26 08:50:44 -07:00
image-sig-host.c rsa: adds rsa3072 algorithm 2022-01-28 17:58:41 -05:00
imagetool.c tools: mkimage/dumpimage: Allow to use -l with -T 2022-02-28 10:33:11 -05:00
imagetool.h mkimage: add a flag to describe whether -A is specified 2022-04-04 23:24:17 +01:00
img2srec.c treewide: remove unneeded semicolons 2017-06-16 10:11:38 -04:00
imx8image.c tools: imx image: fix write warning 2021-04-08 09:18:29 +02:00
imx8m_image.sh tools: imx8m_image: Support ddr3 firmware 2021-10-21 13:59:26 +02:00
imx8mimage.c tools: imx8mimage: not abort when mmap fail 2021-10-07 17:45:00 +02:00
imx_cntr_image.sh tools: improve portability of imx_cntr_image.sh 2019-01-01 14:12:18 +01:00
imximage.c tools/imximage: fix DCD Blocks message output order 2020-08-18 10:10:25 +02:00
jtagconsole Blackfin: jtagconsole: disable output processing 2010-07-25 15:17:23 -04:00
k3_fit_atf.sh tools: k3_fit_atf: Fix DM binary FIT load addresses 2021-09-10 20:10:20 -04:00
k3_gen_x509_cert.sh tools: k3_gen_x509_cert: Set default early HS JTAG access to disabled 2020-06-13 23:12:17 +05:30
Kconfig tools: build mkeficapsule with tools-only_defconfig 2022-02-11 20:07:55 +01:00
kwbimage.c tools: kwbimage: Add me as an author of kwbimage 2022-02-17 14:17:07 +01:00
kwbimage.h tools: kwbimage: Add support for dumping extended and binary v0 headers 2022-02-17 14:17:07 +01:00
kwboot.c tools: kwboot: Allow to mix positional arguments with option -b 2022-03-14 14:04:18 +01:00
lpc32xximage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile tools: mkimage: Add Allwinner TOC0 support 2022-04-04 23:24:17 +01:00
microcode-tool x86: Add a script to process Intel microcode files 2014-12-18 17:26:08 -07:00
microcode-tool.py microcode_tool: Convert to Python 3 2019-11-04 18:15:32 -07:00
mips-relocs.c MIPS: make size of relocation table fixed but configurable 2018-11-02 22:39:07 +01:00
mkeficapsule.c tools: mkeficapsule: remove duplicated code 2022-02-26 07:37:00 +01:00
mkenvimage.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
mkexynosspl.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mkimage.c mkimage: add a flag to describe whether -A is specified 2022-04-04 23:24:17 +01:00
mkimage.h image: Adjust the workings of fit_check_format() 2021-02-15 22:31:52 -05:00
mksunxiboot.c tools: mksunxiboot: Use sunxi_image header directly 2021-10-25 14:49:58 +01:00
moveconfig.py moveconfig: Allow regex matches when finding combinations 2022-02-22 10:05:44 -07:00
mrvl_uart.sh SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mtk_image.c tools: mtk_image: add an option to set device header offset 2021-03-20 16:24:27 -04:00
mtk_image.h tools: mtk_image: add support for booting ARM64 images 2021-01-18 14:59:29 -05:00
mxsboot.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mxsimage.c tools/mxsimage: Remove fclose on empty FILE pointer 2022-02-05 13:38:39 +01:00
mxsimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ncb.c ncb: Check return value of write() 2009-04-28 01:16:46 +02:00
netconsole tools/netconsole: Add support for socat 2021-12-02 08:34:01 +02:00
omapimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
omapimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
os_support.c tools: Remove the out-of-date MinGW support codes 2020-04-24 10:51:56 -04:00
os_support.h tools: Remove the out-of-date MinGW support codes 2020-04-24 10:51:56 -04:00
pbl_crc32.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
pbl_crc32.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pblimage.c tools: pblimage: fix image header verification function 2022-02-28 12:01:02 +05:30
pblimage.h tools: pblimage: fix image header verification function 2022-02-28 12:01:02 +05:30
prelink-riscv.c riscv: tools: Add big endian target support to prelink-riscv 2019-08-15 13:42:28 +08:00
prelink-riscv.inc riscv: tools: Handle addend to absolute reloc in prelink-riscv 2019-09-03 09:30:32 +08:00
proftool.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
relocate-rela.c arm64: relocate-rela: Add support for ld.lld 2021-11-15 14:33:32 -05:00
rkcommon.c rockchip: mkimage: Add support for rk3568 SoC 2021-12-24 18:30:08 +08:00
rkcommon.h doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
rkimage.c rockchip: mkimage: fix wrong range of rc4 encoding for boot image 2019-12-27 15:17:07 +08:00
rkmux.py rkmux: Convert to Python 3 2019-11-04 18:15:32 -07:00
rksd.c rockchip: mkimage: support packing optional second level boot-loader 2019-12-27 15:17:07 +08:00
rkspi.c rockchip: mkimage: support packing optional second level boot-loader 2019-12-27 15:17:07 +08:00
rmboard.py patman: Convert camel case in command.py 2022-02-09 12:26:12 -07:00
socfpgaimage.c tools: socfpgaimage: update padding flow 2021-01-15 17:48:39 +08:00
spl_size_limit.c imx: replace CONFIG_SECURE_BOOT with CONFIG_IMX_HAB 2019-10-08 16:36:37 +02:00
stm32image.c tools: mkimage: fix STM32 image format for big endian hosts 2020-02-13 17:32:09 +01:00
sunxi-spl-image-builder.c tools: sunxi: avoid read after end of string 2017-05-05 16:45:57 -04:00
sunxi_egon.c mkimage: sunxi_egon: add support for riscv 2022-04-04 23:24:17 +01:00
sunxi_toc0.c tools: mkimage: Add Allwinner TOC0 support 2022-04-04 23:24:17 +01:00
termios_linux.h tools: termios_linux.h: Fix tcsendbreak() implementation 2021-10-21 07:39:05 +02:00
ublimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ublimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ubsha1.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
update_octeon_header.c mips: octeon: tools: Add update_octeon_header tool 2020-11-30 18:32:09 +01:00
vybridimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
xway-swap-bytes.c MIPS: INCA-IP: rename inca-swap-bytes host tool 2011-07-31 23:25:41 +09:00
zynqimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp_pm_cfg_obj_convert.py tools/zynqmp_pm_cfg_obj_convert.py: fix build with Vivado 2021.x 2022-02-15 12:41:00 +01:00
zynqmp_psu_init_minimize.sh arm64: zynqmp: Do not remove dpll_prog from psu_init 2019-10-24 13:37:02 +02:00
zynqmpbif.c tools: zynqmpbif: Use compiler builtin instead of linux-specific __swab32 2019-10-28 13:32:51 -04:00
zynqmpimage.c tools: zynqmpimage: Add bif support 2018-05-11 09:23:44 +02:00
zynqmpimage.h SPDX: Correct SPDX tags from recent xilinx merge 2018-05-11 14:54:57 -04:00