we've just got back our iMX28 board based on the EVK. The only major difference is that we chose to run mDDR rather than DDR2.
I've built the kernel for mDDR and it mostly runs fine with uBoot etc and memory is being tested and read ok.
The problem i have is that the boot up of the kernel flags this problem.
mmc0: new high speed SD card at address 0007
mmcblk0: mmc0:0007 SU02G 1.83 GiB
mmcblk0: p1 p2 p3
mxs-rtc mxs-rtc.0: setting system clock to 1970-01-01 00:00:05 UTC (5)
VFS: Cannot open root device "ubi0:rootfs1" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
b300 1921024 mmcblk0 driver: mmcblk
b301 35084 mmcblk0p1
b302 35112 mmcblk0p2
b303 1849764 mmcblk0p3
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[<c00336c4>] (dump_backtrace+0x0/0x114) from [<c03ba940>] (dump_stack+0x18/0x1c)
r7:c0028a24 r6:00008000 r5:c7c14000 r4:c051b0b8
[<c03ba928>] (dump_stack+0x0/0x1c) from [<c03ba9a4>] (panic+0x60/0xdc)
[<c03ba944>] (panic+0x0/0xdc) from [<c0008fe0>] (mount_block_root+0x1d8/0x218)
r3:00000000 r2:00000000 r1:c7c27f78 r0:c046a025
[<c0008e08>] (mount_block_root+0x0/0x218) from [<c00091b0>] (prepare_namespace+0x94/0x1c4)
[<c000911c>] (prepare_namespace+0x0/0x1c4) from [<c00084e8>] (kernel_init+0x118/0x158)
[<c00083d0>] (kernel_init+0x0/0x158) from [<c004d1bc>] (do_exit+0x0/0x600)
After reviewing i can see that the .config file gets changed from
CONFIG_PKG_BOOT_STREAM_CMDLINE1="noinitrd console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait ip=none gpmi"
CONFIG_PKG_BOOT_STREAM_CMDLINE1="console=ttyAM0,115200 rdinit=/linuxrc rw gpmi"
after i run the ./ltib -p boot_stream.spec –f
If anyone has got the iMX28 working with mDDR i'd happy to hear how they got on or if they had this problem.
ok, that makes sense. It looks like too many people tick the "Build mfg firmware" box thinking it will just build one additional package. In reality it affects system configuration a lot and should only be used on a separate LTIB installation (not the one where you have your development going on) to build a binary used only for updating and nothing else.
thanks, but i found what the problems was, i had the "Build mfg firmware" ticked on, this was causing the issue with the boot stream to be overwritten, removing this and rebuilding, setting the boot stream in the kernel configuration and the board is up and running.
this doesn't have anything to do with mDDR. You just need to adjust the boot parameters that bootstreams will use by default to start the kernel. So:
then edit the bootstream parameters
once ./ltib is done, rebuild bootstream (won't be done automatically when just bootstream parameters are changed) by:
./ltib -p boot_stream.spec -f