Problem on imx: add rom api support on imx8mn

Michael Nazzareno Trimarchi michael at amarulasolutions.com
Thu Jul 8 11:15:30 CEST 2021


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

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



-- 
Michael Nazzareno Trimarchi
Co-Founder & Chief Executive Officer
M. +39 347 913 2170
michael at amarulasolutions.com
__________________________________

Amarula Solutions BV
Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
T. +31 (0)85 111 9172
info at amarulasolutions.com
www.amarulasolutions.com


More information about the U-Boot mailing list