On Sat, Jan 24, 2026 at 06:47:11AM +0100, Heiko Schocher wrote:
>From: Adrian Freihofer <[email protected]>
>
>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 <[email protected]>
>Signed-off-by: Heiko Schocher <[email protected]>
>---
>
> 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
>

Reply via email to