Hi,
We are working with a custom i.MX8M Plus DDR4 board that includes 32 MB QSPI NOR flash.
Our objective is to boot U-Boot, Linux kernel, device tree, and initramfs (rootfs.img) entirely from QSPI flash, without using SD/eMMC.
We are able to successfully boot up to U-Boot (flash.bin) from QSPI flash in custom but it is hangs in kernel.
Generated images for I.MX8MPLUS LPDDR4 EVK (flash.bin,image.gz ,imx8mp-evk.dtb and rootfs.img) that's working fine.
U-Boot Environment Setup
After booting into U-Boot from QSPI, we configure the following environment variables to load the kernel, device tree, and initramfs from flash:
sf probe 0
setenv loadaddr 0x40480000 // kernel
setenv fdt_addr 0x43000000 //dtb
setenv initrd_addr 0x43800000 //rootfs (minimal initramfs)
setenv kernel_comp_addr_r 0x50000000
setenv kernel_comp_size 0x04000000
Reading Images from QSPI Flash
sf read ${loadaddr} 0x0024D000 0x00E59A6F
sf read ${fdt_addr} 0x010A6B00 0x00014BBA
sf read ${initrd_addr} 0x010BB800 0x00C04DB0
Boot Command
setenv bootargs setenv bootargs "console=ttymxc1,115200 earlycon root=/dev/ram0 rw rdinit=/sbin/init loglevel=8"
booti ${loadaddr} ${initrd_addr} ${fdt_addr}
After this kernel starting But getting error also attaching the error logs:
Unable to handle kernel paging request at virtual address ffffffffd034001f
but sometimes we are able to get till initramfs.
Attaching the defconfig and dts in kernel (linux-imx) also attaching the logs that hangs in kernel.