Hi On Thu, Jul 15, 2021 at 8:47 AM Peng Fan (OSS) <peng....@oss.nxp.com> wrote: > > > > 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....@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.
I think that was fuse this way # Alternative Boot ("Fast boot") # =>[BT_FUSE_SEL | eMMC boot | USDHC1 EMMC] FB: ucmd fuse prog -y 1 3 0x10002A00 # =>[Fast boot | 8-bit DDR | MMC High speed | 1.8V | eMMC reset enable] FB: ucmd fuse prog -y 2 1 0x000000E7 # =>[Fast Boot Ack enable] FB: ucmd fuse prog -y 2 2 0x00000001 # boot_bus_width: 2 (8-bit), reset_boot_bus_width: 0, boot_mode: 2 (use dual data rate (DDR)) FB: ucmd mmc bootbus 0 2 0 2 # boot_ack: 1, boot_partition: 1 (Boot partition 1), 7 (User area), partition_access: No access to boot partition (default) FB: ucmd mmc partconf 0 1 1 0 How is it supposed to work in this case? Michael > > 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 > >>> > > > > > > -- Michael Nazzareno Trimarchi Co-Founder & Chief Executive Officer M. +39 347 913 2170 mich...@amarulasolutions.com __________________________________ Amarula Solutions BV Joop Geesinkweg 125, 1114 AB, Amsterdam, NL T. +31 (0)85 111 9172 i...@amarulasolutions.com www.amarulasolutions.com