From: Frieder Schrempf Date: Tue, 4 Nov 2025 10:30:07 +0000 (+0100) Subject: imx: kontron-sl-mx8mm: Adjust offset for U-Boot proper in case of eMMC fastboot X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=03584081047df5b5f24f4a0f6c1b0645036bf73e;p=thirdparty%2Fu-boot.git imx: kontron-sl-mx8mm: Adjust offset for U-Boot proper in case of eMMC fastboot The image offset on SD/MMC devices is 33 KiB, except for eMMC boot if fastboot is enabled. In this case it is 1 KiB. In order to make the the bootloader universal, check the fastboot OTP boot fuse and adjust the offset. Signed-off-by: Frieder Schrempf --- diff --git a/board/kontron/sl-mx8mm/spl.c b/board/kontron/sl-mx8mm/spl.c index e3b029752b8..50eb0eb13e1 100644 --- a/board/kontron/sl-mx8mm/spl.c +++ b/board/kontron/sl-mx8mm/spl.c @@ -186,6 +186,26 @@ static int power_init_board(void) return 0; } +unsigned long board_spl_mmc_get_uboot_raw_sector(struct mmc *mmc, unsigned long raw_sect) +{ + /* + * The image offset on SD/MMC devices is 33 KiB, except for eMMC boot if + * fastboot is enabled. In this case it is 1 KiB. In order to make the + * bootloader universal, check the fastboot OTP boot fuse and adjust + * the offset. + */ + if (!IS_SD(mmc) && (readl(OCOTP_BASE_ADDR + 0x470) & 0x80)) { + switch (EXT_CSD_EXTRACT_BOOT_PART(mmc->part_config)) { + case EMMC_BOOT_PART_BOOT1: + case EMMC_BOOT_PART_BOOT2: + raw_sect -= 32 * 2; + break; + } + } + + return raw_sect; +} + void board_init_f(ulong dummy) { int ret;