Search code examples
embedded-linuxu-bootbuildrootimx6bsp

ROM doesn't load U-Boot on imx6solo


I'm trying to upgrade my u-boot from 2009 to 2020 using buildroot, but when I build the new one it doesn't boot (and I don't have JTAG).

When I load it with imx_usb_loader it works but when I flash it on the Nand, it doesn't boot on it. As u-boot files, I use mx6sabreauto.c, mx6solo.cfg and mx6sabreauto.h I don't use SPL or DTS, I only generate u-boot.imx

Boot logs with imx_usb_loader :

U-Boot 2020.04 (Feb 11 2023 - 15:41:38 +0100)

CPU:   i.MX6SOLO rev1.3 at 792MHz
CPU:   Industrial temperature grade (-40C to 105C) at 50C
Reset cause: POR
Model: i.MX6 DualLite/Solo SABRE Automotive Board
Board: MX6Q-Sabreauto rev@
DRAM:  2 GiB
NAND:  nand_base: device found, Manufacturer ID: 0x2c, Chip ID: 0xd3
nand_base: Micron NAND 1GiB 3,3V 8-bit
nand_base: Micron NAND 1GiB 3,3V 8-bit
nand_base: 1024 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 128
use legacy bch geometry
1024 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 2
Loading Environment from MMC... MMC: no card present
mmc_init: -123, time 2
Warning - No block device, using default environment

Loading Environment from NAND... Scanning device for bad blocks
Warning - bad CRC, using default environment

No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In:    serial
Out:   serial
Err:   serial
Net:   FEC [PRIME]
Warning: FEC (eth0) using random MAC address - ea:37:e5:51:c1:86

Boot from USB for mfgtools
Warning - Use default environment for
using default environment

Hit any key to stop autoboot:  0 

Flash logs :

=> nand erase 0x0 0x40000000

NAND erase: device 0 whole chip
Erasing at 0x3ffc0000 -- 100% complete.
OK
=> tftp 0x10800000 u-boot.imx
Using FEC device
TFTP from server 192.168.30.30; our IP address is 192.168.30.10
Filename 'u-boot.imx'.
Load address: 0x10800000
Loading: #####################################################
         3.9 MiB/s
done
Bytes transferred = 777216 (bdc00 hex)
=> nand read 0x10800000 0x00000000 777216

NAND read: device 0 offset 0x0, size 0x777216
 7827990 bytes read: OK
=> reset
resetting ...

Solution

  • It worked when I flashed from the Linux rootfs using these commands :

    $ flash_erase /dev/mtd0 0 0

    $ kobs-ng init -x u-boot.imx --search_exponent=1 -v

    It seems that the "search-exponent" option did the trick.