From: "Pali Rohár" <pali@kernel.org>
To: u-boot@lists.denx.de
Cc: Stefan Roese <sr@denx.de>, Tony Dinh <mibodhi@gmail.com>,
Josua Mayer <josua@solid-run.com>
Subject: [PATCH RFC u-boot-mvebu 14/59] tools: kwboot: Add image type documentation
Date: Tue, 21 Feb 2023 21:18:40 +0100 [thread overview]
Message-ID: <20230221201925.9644-15-pali@kernel.org> (raw)
In-Reply-To: <20230221201925.9644-1-pali@kernel.org>
Add information of all available image types and where they should be
stored. Storage location offsets where documented from the disassembly of
the A385 BootROM image dump.
Signed-off-by: Pali Rohár <pali@kernel.org>
---
tools/kwboot.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
diff --git a/tools/kwboot.c b/tools/kwboot.c
index aae7393aeef6..7a7dd5bf3d7b 100644
--- a/tools/kwboot.c
+++ b/tools/kwboot.c
@@ -54,6 +54,68 @@
* https://github.com/MarvellEmbeddedProcessors/u-boot-marvell/blob/u-boot-2013.01-armada-18.06/tools/marvell/doimage_mv/hdrparser.c
* - "Marvell doimage Tool", Marvell U-Boot 2013.01, version 18.06. August 30, 2015.
* https://github.com/MarvellEmbeddedProcessors/u-boot-marvell/blob/u-boot-2013.01-armada-18.06/tools/marvell/doimage_mv/doimage.c
+ *
+ * Storage location / offset of different image types:
+ * - IBR_HDR_SPI_ID (0x5A):
+ * SPI image can be stored at any 2 MB aligned offset in the first 16 MB of
+ * SPI-NOR or parallel-NOR. Despite the type name it really can be stored on
+ * parallel-NOR and cannot be stored on other SPI devices, like SPI-NAND.
+ * So it should have been named NOR image, not SPI image. This image type
+ * supports XIP - Execute In Place directly from NOR memory.
+ *
+ * - IBR_HDR_NAND_ID (0x8B):
+ * NAND image can be stored either at any 2 MB aligned offset in the first
+ * 16 MB of SPI-NAND or at any blocksize aligned offset in the first 64 MB
+ * of parallel-NAND.
+ *
+ * - IBR_HDR_PEX_ID (0x9C):
+ * PEX image is used for booting from PCI Express device. Source address
+ * stored in image is ignored by BootROM. It is not the BootROM who parses
+ * or loads data part of the PEX image. BootROM just configures SoC to the
+ * PCIe endpoint mode and let the PCIe device on the other end of the PCIe
+ * link (which must be in Root Complex mode) to load kwbimage into SoC's
+ * memory and tell BootROM physical address.
+ *
+ * - IBR_HDR_UART_ID (0x69):
+ * UART image can be transfered via xmodem protocol over first UART.
+ *
+ * - IBR_HDR_I2C_ID (0x4D):
+ * It is unknown for what kind of storage is used this image. It is not
+ * specified in any document from References section.
+ *
+ * - IBR_HDR_SATA_ID (0x78):
+ * SATA image can be stored at sector 1 (after the MBR table), sector 34
+ * (after the GPT table) or at any next sector which is aligned to 2 MB and
+ * is in the first 16 MB of SATA disk. Note that source address in SATA image
+ * is stored in sector unit and not in bytes like for any other images.
+ * Unfortunately sector size is disk specific, in most cases it is 512 bytes
+ * but there are also Native 4K SATA disks which have 4096 bytes long sectors.
+ *
+ * - IBR_HDR_SDIO_ID (0xAE):
+ * SDIO image can be stored on different medias:
+ * - SD(SC) card
+ * - SDHC/SDXC card
+ * - eMMC HW boot partition
+ * - eMMC user data partition / MMC card
+ * It cannot be stored on SDIO card despite the image name.
+ *
+ * For SD(SC)/SDHC/SDXC cards, image can be stored at the same locations as
+ * the SATA image (sector 1, sector 34 or any 2 MB aligned sector) but within
+ * the first 64 MB. SDHC and SDXC cards have fixed 512 bytes long sector size.
+ * Old SD(SC) cards unfortunately can have also different sector sizes, mostly
+ * 1024 bytes long sector sizes and also can be changed at runtime.
+ *
+ * For MMC-compatible devices, image can be stored at offset 0 or at offset
+ * 2 MB. If MMC device supports HW boot partitions then image must be stored
+ * on the HW partition as is configured in the EXT_CSC register (it can be
+ * either boot or user data).
+ *
+ * Note that source address for SDIO image is stored in byte unit, like for
+ * any other images (except SATA). Marvell Functional Specifications for
+ * A38x and A39x SoCs say that source address is in sector units, but this
+ * is purely incorrect information. A385 BootROM really expects source address
+ * for SDIO images in bytes and also Marvell tools generate SDIO image with
+ * source address in byte units.
*/
#include "kwbimage.h"
--
2.20.1
next prev parent reply other threads:[~2023-02-21 20:34 UTC|newest]
Thread overview: 143+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-21 20:18 [PATCH RFC u-boot-mvebu 00/59] arm: mvebu: Various fixes Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 01/59] tools: kwbimage: Fix generating, verifying and extracting SDIO kwbimage Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 02/59] tools: kwboot: Fix parsing " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 03/59] arm: mvebu: spl: " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 04/59] cmd: mvebu/bubt: " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 05/59] tools: kwbimage: Fix generating, verifying and extracting SATA kwbimage Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 06/59] tools: kwboot: Fix parsing " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 07/59] arm: mvebu: spl: " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 08/59] cmd: mvebu/bubt: " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 09/59] arm: mvebu: spl: Remove checks for BOOT_DEVICE_MMC2 and BOOT_DEVICE_MMC2_2 Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 10/59] arm: mvebu: spl: Load proper U-Boot from selected eMMC boot partition Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 11/59] spl: mmc: Allow to disable SYS_MMCSD_FS_BOOT_PARTITION Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 12/59] arm: mvebu: spl: Fix support for loading U-Boot proper from SD card Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 13/59] tools: kwboot: Add more documentation references Pali Rohár
2023-02-21 20:18 ` Pali Rohár [this message]
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 15/59] tools: kwboot: Fix parsing UART image without data checksum Pali Rohár
2023-02-23 5:23 ` Tony Dinh
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 16/59] tools: kwboot: Validate optional kwbimage v1 headers Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 17/59] tools: kwboot: Add check that kwbimage contains DDR init code Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 18/59] tools: kwboot: Fix patching of SPI/NOR XIP images Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 19/59] tools: kwboot: Show image type and error parsing reasons Pali Rohár
2023-02-22 5:51 ` Tony Dinh
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 20/59] cmd: mvebu/bubt: Add support for selecting eMMC HW partition Pali Rohár
2023-02-22 9:55 ` Stefan Roese
2023-02-22 18:06 ` Pali Rohár
2023-02-23 6:17 ` Stefan Roese
2023-02-23 7:55 ` Pali Rohár
2023-02-23 8:15 ` Stefan Roese
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 21/59] cmd: mvebu/bubt: Add support for writing image to SATA disk Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 22/59] cmd: mvebu/bubt: Add support for reading image from the SATA disk partition Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 23/59] cmd: mvebu/bubt: Rename variable image_size to hdr_size Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 24/59] cmd: mvebu/bubt: Mark all local symbols as static Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 25/59] cmd: mvebu/bubt: Do not modify image in A8K check_image_header() Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 26/59] cmd: mvebu/bubt: Check also A8K boot image checksum Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 27/59] cmd: mvebu/bubt: Set correct default image name for 32-bit Armada SoCs Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 28/59] cmd: mvebu/bubt: Better guess default MVEBU_*_BOOT option Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 29/59] cmd: mvebu/bubt: Fix warnings: unused variable 'secure_mode' and 'fuse_read_u64' defined but not used Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 30/59] cmd: mvebu/bubt: Enable command by default Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 31/59] tools: kwbimage: Fix dumping register set / DATA commands Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 32/59] tools: kwbimage: Fix endianity when dumping NAND_PAGE_SIZE Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 33/59] tools: kwbimage: Fix dumping NAND_BADBLK_LOCATION Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 34/59] tools: kwbimage: Fix dumping NAND_BLKSZ Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 35/59] tools: kwbimage: Fix generating of kwbimage v0 header checksum Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 36/59] tools: kwbimage: Fix endianity when printing kwbimage header Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 37/59] tools: kwbimage: Reject mkimage -F option Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 38/59] tools: kwbimage: Add support for dumping NAND_BLKSZ for v0 images Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 39/59] tools: kwbimage: Print binary image offset as size Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 40/59] tools: kwbimage: Print image data offset when printing kwbimage header Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 41/59] tools: kwbimage: Simplify add_secure_header_v1() Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 42/59] tools: kwbimage: Rename imagesz to dataoff Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 43/59] tools: kwbimage: Fix generating secure boot data image signature Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 44/59] tools: kwbimage: Fix invalid secure boot header signature Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 45/59] tools: mkimage: Do not fill legacy_img_hdr for non-legacy XIP images Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 46/59] tools: kwbimage: Add support for XIP SPI/NOR images Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 47/59] tools: mkimage: Print human readable error when -d is not specified Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 48/59] tools: mkimage: Do not try to open datafile when it is skipped Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 49/59] tools: kwbimage: Add support for creating an image with no data Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 50/59] arm: mvebu: Add support for generating NAND kwbimage Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 51/59] arm: mvebu: Add support for generating PEX kwbimage Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 52/59] arm: mvebu: Fix description of MVEBU_SPL_BOOT_DEVICE_(SPI|MMC) options Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 53/59] arm: mvebu: db-88f6820-amc: Add defconfig for NAND booting Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 54/59] arm: mvebu: clearfog: Add defconfig for SATA booting Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 55/59] arm: mvebu: Remove A39x relicts Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 56/59] arm: mvebu: Fix comment about CPU_ATTR_BOOTROM mapping Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 57/59] arm: mvebu: Define env_sf_get_env_addr() also for Proper U-Boot Pali Rohár
2023-02-25 3:58 ` Tony Dinh
2023-02-25 21:13 ` Pali Rohár
2023-02-25 22:37 ` Tony Dinh
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 58/59] arm: mvebu: Define SPL memory maps Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 59/59] doc/kwboot.1: Update example description Pali Rohár
2023-02-21 23:06 ` [PATCH RFC u-boot-mvebu 00/59] arm: mvebu: Various fixes Tony Dinh
2023-02-21 23:14 ` Pali Rohár
2023-02-22 5:45 ` Tony Dinh
2023-02-22 7:58 ` Pali Rohár
2023-02-22 11:59 ` Martin Rowe
2023-02-22 18:03 ` Pali Rohár
2023-02-22 21:20 ` Martin Rowe
2023-02-22 21:23 ` Pali Rohár
2023-02-23 12:11 ` Martin Rowe
2023-02-23 18:02 ` Pali Rohár
2023-02-24 6:27 ` Martin Rowe
2023-02-24 15:07 ` Martin Rowe
2023-02-24 22:34 ` Pali Rohár
2023-02-25 1:18 ` Martin Rowe
2023-02-25 21:16 ` Pali Rohár
2023-02-26 1:56 ` Martin Rowe
2023-02-26 8:14 ` Pali Rohár
2023-03-08 20:36 ` kwbimage config file documentation (Was: Re: [PATCH RFC u-boot-mvebu 00/59] arm: mvebu: Various fixes) Pali Rohár
2023-02-24 22:33 ` [PATCH RFC u-boot-mvebu 00/59] arm: mvebu: Various fixes Pali Rohár
2023-02-24 15:07 ` Martin Rowe
2023-02-24 15:22 ` Stefan Roese
2023-02-24 15:41 ` Martin Rowe
2023-02-23 7:56 ` Pali Rohár
2023-02-22 22:16 ` Tony Dinh
2023-02-22 23:06 ` Pali Rohár
2023-02-22 23:16 ` Tony Dinh
2023-02-22 23:39 ` Pali Rohár
2023-02-23 0:17 ` Tony Dinh
2023-02-23 7:46 ` Pali Rohár
2023-02-25 1:42 ` [PATCH 0/2] arm: mvebu: clearfog: defconfig updates Martin Rowe
2023-02-25 1:42 ` [PATCH 1/2] arm: mvebu: clearfog: Fix MMC detection Martin Rowe
2023-02-25 21:49 ` Pali Rohár
2023-02-25 22:14 ` Pali Rohár
2023-02-26 1:45 ` Martin Rowe
2023-02-26 11:18 ` Pali Rohár
2023-02-26 11:28 ` Martin Rowe
2023-02-25 1:42 ` [PATCH 2/2] arm: mvebu: clearfog: Add defconfig for SPI booting Martin Rowe
2023-02-25 7:41 ` Pali Rohár
2023-02-25 9:48 ` Martin Rowe
2023-02-25 10:51 ` Josua Mayer
2023-02-25 11:47 ` Martin Rowe
2023-02-25 13:41 ` Pali Rohár
2023-02-25 22:46 ` Tony Dinh
2023-02-26 2:17 ` Martin Rowe
2023-02-26 4:56 ` Tony Dinh
2023-02-26 10:52 ` Pali Rohár
2023-02-27 0:11 ` Tony Dinh
2023-02-27 7:40 ` Stefan Roese
2023-02-27 21:57 ` Tony Dinh
2023-02-27 23:41 ` Tony Dinh
2023-02-28 0:42 ` Tony Dinh
2023-02-28 1:17 ` Tony Dinh
2023-02-28 9:48 ` Pali Rohár
2023-02-28 18:51 ` Pali Rohár
2023-02-28 21:51 ` Tony Dinh
2023-02-28 22:19 ` Pali Rohár
2023-03-01 1:32 ` Tony Dinh
2023-03-03 1:28 ` Tony Dinh
2023-02-25 21:55 ` Pali Rohár
2023-02-25 22:00 ` [PATCH RFC u-boot-mvebu 00/59] arm: mvebu: Various fixes Pali Rohár
2023-02-27 7:44 ` Stefan Roese
2023-02-27 8:04 ` Pali Rohár
2023-02-27 11:29 ` Martin Rowe
2023-02-28 7:03 ` Stefan Roese
2023-02-28 9:16 ` Stefan Roese
2023-02-28 9:54 ` Pali Rohár
2023-02-28 10:01 ` Stefan Roese
2023-02-28 10:10 ` Pali Rohár
2023-02-28 10:16 ` Stefan Roese
2023-02-28 22:41 ` Pali Rohár
2023-03-01 6:01 ` Stefan Roese
2023-02-28 10:22 ` Pali Rohár
2023-03-01 15:48 ` Stefan Roese
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230221201925.9644-15-pali@kernel.org \
--to=pali@kernel.org \
--cc=josua@solid-run.com \
--cc=mibodhi@gmail.com \
--cc=sr@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox