Problem on imx: add rom api support on imx8mn

Peng Fan (OSS) peng.fan at oss.nxp.com
Thu Jul 15 08:47:32 CEST 2021



On 2021/7/8 17:15, Michael Nazzareno Trimarchi wrote:
> Hi Peng
> 
> On Thu, Jul 8, 2021 at 9:12 AM Peng Fan (OSS) <peng.fan at oss.nxp.com> wrote:
>>
>> 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.
> 
> The offset is correct and the spl is starting on boot0 but then it
> should load the rest from
> boot0 block and not from usb. And why in case of boot1 the 1 is not
> present. I flash both
> on offset 0. Anyway I sent a patch

I suspect you have eMMC fastboot enabled for boot0, but not for boot1.

Regards,
Peng.

> 
> Michael
> 
>>
>> 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
>>>
> 
> 
> 


More information about the U-Boot mailing list