Re: [PATCH v1 2/2] arch: imx8qxp: Override weak fb_mmc_get_boot_offset function

Peng Fan
2026-01-26T01:45:15Z

On Sat, Jan 24, 2026 at 06:47:11AM +0100, Heiko Schocher wrote:
>From: Adrian Freihofer <adrian.freihofer@siemens.com>
>
>Add IMX8QXP SoCs specific implementation of fb_mmc_get_boot_offset()
>
>This is needed as bootloader offset is different dependent on SoC
>revision!
>
>For revision B0 the bootloader starts at 32k offset. On offset
>0x0 the bootloaders environment is stored.
>
>On C0 revisions of the SoC bootloader image starts at offset 0x0
>
>Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
>Signed-off-by: Heiko Schocher <hs@nabladev.com>
>---
>
> arch/arm/mach-imx/imx8/cpu.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
>diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
>index 0e112af661c..27c431881b0 100644
>--- a/arch/arm/mach-imx/imx8/cpu.c
>+++ b/arch/arm/mach-imx/imx8/cpu.c
>@@ -899,3 +899,24 @@ bool m4_parts_booted(void)
>
> return false;
> }
>+
>+#ifdef CONFIG_IMX8QXP
>+#include <blk.h>
>+
>+/*
>+ * On B0 revision SoCs the bootloader is on 32k offset
>+ * and at offset 0x0 is the U-Boot Environment stored
>+ *
>+ * So we cannot flash bootloader images to offset 0x0
>+ *
>+ * On C0 revisions of the SoC bootloader image starts
>+ * at offset 0x0 ...
>+ */
>+lbaint_t fb_mmc_get_boot_offset(void)
>+{
>+ if ((get_cpu_rev() & 0xF) == CHIP_REV_C)
>+ return 0;
>+
>+ return 0x40;

There maybe no new chip revisions saying CHIP_REV_D,
but in case.. So below would be better

lbaint_t fb_mmc_get_boot_offset(void)
{
if ((get_cpu_rev() & 0xF) < CHIP_REV_C)
return 0x40;

return 0x0;
}

Regards
Peng
>+#endif
>--
>2.20.1
>