On 2021/7/4 1:24, Michael Nazzareno Trimarchi wrote:
Hi all

I have some problems that I have understood and fixed but I can not
explain. Right now I have on imx8mn that can boot from boot0 or boot1
partition after remove
a condition in the 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;
+}

means a stream interface but it does not boot.

Boot from boot1 give 131072 that is boot1 this let device boot because

Who gives 131073? Boot from boot1, you mean emmc boot partition0?

is_boot_from_stream_device is 0 and
romapi use spl_romapi_load_image_seekable

Remove boot & 1 condition let me boot from mmcblk0boot0 and
mmcblk0boot1 without any problem

Have you enabled emmc fastboot in fuse?

boot & 1 is checking emmc fastboot. emmc fastboot mode is actually
stream device. If fastboot mode enabled, you need burn your
flash.bin into offset 0. Not 32KB offset.

Regards,
Peng.


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

and the board was fused already.

Any idea why?

Michael

Reply via email to