I am currently evaluating a new LS1046A-RDB board for consideration in our next product. We are working through getting the different LSDKs loaded into QSPI and eMMC with mixed success. While we've been able to flash and boot to the Ubuntu-based LSDK, we are currently unable to flash and boot from either QSPI, eMMC, or SD Card for OpenWRT. I've tried both upstream latest stable OpenWRT (v21.02.3), as well as the Layerscape 20.09 fork. Attempting to boot either builds (as well as reference build from OpenWRT's website) results in the following error:
//////////////////////////////////////////////////////////////////
NOTICE: UDIMM 18ADF2G72AZ-2G6E1
ERROR: Board parameters no match.
ERROR: Failed matching board timing.
ERROR: Found training error(s): 0x2100
ERROR: Error: Waiting for D_INIT timeout.
ERROR: Writing DDR register(s) failed
ERROR: Programing DDRC error
ERROR: DDR init failed.
NOTICE: Incorrect DRAM0 size is defined in platfor_def.h
ERROR: mmap_add_region_check() failed. error -22
ERROR: mmap_add_region_check() failed. error -22
NOTICE: BL2: v1.5(release):layerscape-20.09
NOTICE: BL2: Built : 03:57:39, Sep 24 2020
ERROR: SD read error - DMA error = 10000000
ERROR: Read error = fffffffb
ERROR: BL2: Failed to load image (-2)
Authentication failure
//////////////////////////////////////////////////////////////////
I built OpenWRT with the following menuconfig options:
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make menuconfig
- Target System: NXP Layerscape
- Subtarget: ARMv8 64-bit based boards
- Target Profile: NXP LS1046A-RDB SD Card Boot
make -j1 V=s
Any assistance would be greatly appreciate as we work through our trade study.
Something to note, I did compare the ddr_init.c and platform_def.h files in the OpenWRT repo vs the flexbuild NXP Ubuntu repo and did confirm that the files in OpenWRT are older and have some significant changes.