mirror of
https://github.com/smaeul/u-boot.git
synced 2025-09-11 20:46:00 +01:00
TOC1 is an container format used by Allwinner's boot0 that can hold multiple images. It supports encryption and signatures, but that functionality is not implemented, only the basic "non-secure" subset. A config file is used to provide the list of data files to include. Its path is passed as the argument to "-d". It contains sections of the following form: [name] file = /path/to/file addr = 0x12345678 Specific well-known names, such as "dtb", "opensbi", and "u-boot", are used by the bootloader to distinguish the items inside the image. Cover-letter: tools: mkimage: Add Allwinner TOC1 support The SPL port for the Allwinner D1 RISC-V SoC will probably take a while longer than porting U-Boot proper, as none of the relevant drivers are set up for DM in SPL. In the meantime, we are using[1][2] a fork[3] of Allwinner's boot0 loader, which they also call "spl" in their BSP. boot0 uses this TOC1 image format. The vendor tools for generating TOC1 images require a binary config file generated by their FEX compiler. Instead of trying to support that, I made up a simple human-readable config file format. I didn't see any existing platform-agnostic parser for multi-image containers in mkimage. I am sending this as RFC because it is only of temporary/limited use. It only works with one specific fork of boot0 which was modified to "behave" (the the original vendor version monkey-patches a custom header inside the U-Boot image during boot). So it will be obsolete once U-Boot SPL is ported. And it is Yet Another Image Format. On the other hand, it does work, and it is currently being used. [1]: https://linux-sunxi.org/Allwinner_Nezha#U-Boot [2]: https://fedoraproject.org/wiki/Architectures/RISC-V/Allwinner [3]: https://github.com/smaeul/sun20i_d1_spl END Series-prefix: RFC Series-to: sunxi Signed-off-by: Samuel Holland <samuel@sholland.org>