Hi Heiko,

Thank you for the patch.

On Sat, Jan 24, 2026 at 06:47, Heiko Schocher <[email protected]> wrote:

> Not for all SoCs the bootloader start at offset 0x0,
> in a hardware partition of an emmc. So we need the possibility to
> set the correct offset, where bootloader starts.
>
> Example:
>
> imx8qxp revision C0 emmc Partition layout
>
> | eMMC block / partition | Offset     | Size  | Purpose                       
>  |
> | ---------------------- | ---------- | ----- | 
> ------------------------------ |
> | /dev/mmcblk0boot0      | 0x0        | 2MB   | imx-boot-container A          
>  |
> |                        | 0x00220000 | 128kB | secure boot signature rootfs 
> A |
> | /dev/mmcblk0boot1      | 0x0        | 2MB   | imx-boot-container B          
>  |
> |                        | 0x00200000 | 8kB   | U-Boot env 0                  
>  |
> |                        | 0x00202000 | 8kB   | U-Boot env 1                  
>  |
> |                        | 0x00220000 | 128kB | secure boot signature rootfs 
> B |
>
> imx8qxp rev B0 emmc Partition layout
>
> | eMMC block / partition | Offset     | Size  | Purpose                       
>  |
> | ---------------------- | ---------- | ----- | 
> ------------------------------ |
> | /dev/mmcblk0boot0      | 0x00008000 | 2MB   | imx-boot-container A          
>  |
> |                        | 0x00220000 | 128kB | secure boot signature rootfs 
> A |
> | /dev/mmcblk0boot1      | 0x0        | 8kB   | U-Boot env 0                  
>  |
> |                        | 0x00002000 | 8kB   | U-Boot env 1                  
>  |
> |                        | 0x00008000 | 2MB   | imx-boot-container B          
>  |
>

Why can't we use raw partition descriptors for this?

See:
https://docs.u-boot.org/en/latest/android/fastboot.html#raw-partition-descriptors

> If we flash now the bootloader image flash.bin on a B0 revision with
>
> uuu FB: flash bootloader flash.bin
>
> we overwrite the environment and board does not boot at all, as offset
> is wrong.
>
> To prevent any API change in the above command we propose
> the following implementation from this series:
>
> We add a new weak function fb_mmc_get_boot_offset() in 
> drivers/fastboot/fb_block.c
> which returns 0 and call this function instead of passing 0 for
> the offset where offset is used/passed.
>
> In SoC specific code (currently for IMX8QXP only) we implement this function
> that it returns on B0 SoCs the 32k offset and on other SoC revisions the
> offset 0.
>
> This is tested on B0 and C0 based boards from siemens.
>
> This patch should have no effect for other SoCs.
>
>
> Adrian Freihofer (2):
>   fastboot: mmc: make boot partition offset configurable
>   arch: imx8qxp: Override weak fb_mmc_get_boot_offset function
>
>  arch/arm/mach-imx/imx8/cpu.c | 21 +++++++++++++++++++++
>  drivers/fastboot/fb_block.c  | 15 +++++++++++----
>  2 files changed, 32 insertions(+), 4 deletions(-)
>
> Azure build (series is in a bunch of siemens patches sending
> now to mainline):
> https://dev.azure.com/hs0298/hs/_build/results?buildId=202&view=results
>
>
> -- 
> 2.20.1
>
> base-commit: 547e4ff610d72169a2a8c72ffe9741046abd1b2e

Reply via email to