All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm: imx: Fix spl imx romapi for imx8mn
@ 2021-07-04 19:46 Michael Trimarchi
  0 siblings, 0 replies; only message in thread
From: Michael Trimarchi @ 2021-07-04 19:46 UTC (permalink / raw)
  To: Stefano Babic, Fabio Estevam; +Cc: uboot-imx, u-boot

We experimenting problems with imx8mn family cpu. We try to support
boot0 and boot1 fallback.
The condition to decide what function the bootrom should choose
come from is_boot_from_stream_device

This is a boot from mmcblk0boot0 with some debug

U-Boot SPL 2020.04-5.4.70-2.3.2+gf3bcbdfc62 (Jul 03 2021 - 17:00:27 +0000)
power_bd71837_init
DDRINFO: start DRAM init
DDRINFO: DRAM rate 1600MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
ROM API interface 2 from boot 131073

Interface is 2 MMC and boot is 131073 and according to this

static int is_boot_from_stream_device(u32 boot)
+{
+       u32 interface;
+
+       interface = boot >> 16;
+       if (interface >= BT_DEV_TYPE_USB)
+               return 1;
+
+       if (interface == BT_DEV_TYPE_MMC && (boot & 1))
+               return 1;
+
+       return 0;
+}

the return is 1, that does not allow us to boot.

Boot from boot1 give 131072 that is boot1 this let device boot because
is_boot_from_stream_device is 0 and
romapi use spl_romapi_load_image_seekable

Adjust the bootcondition let us boot from mmcblk0boot0 and
mmcblk0boot1 without any problem

mmc partconf 0
EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x0
BOOT_PARTITION_ENABLE: 0x1
PARTITION_ACCESS: 0x0

and the board was fused already.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
---
 arch/arm/mach-imx/spl_imx_romapi.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-imx/spl_imx_romapi.c b/arch/arm/mach-imx/spl_imx_romapi.c
index 7e6a05a6f3..36f8848d45 100644
--- a/arch/arm/mach-imx/spl_imx_romapi.c
+++ b/arch/arm/mach-imx/spl_imx_romapi.c
@@ -18,10 +18,11 @@ static int is_boot_from_stream_device(u32 boot)
 	u32 interface;
 
 	interface = boot >> 16;
+
 	if (interface >= BT_DEV_TYPE_USB)
 		return 1;
 
-	if (interface == BT_DEV_TYPE_MMC && (boot & 1))
+	if (!is_imx8mn() && interface == BT_DEV_TYPE_MMC && (boot & 1))
 		return 1;
 
 	return 0;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2021-07-04 19:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-04 19:46 [PATCH] arm: imx: Fix spl imx romapi for imx8mn Michael Trimarchi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.