I'm adding a new device supporting for Marvell CN9130-CRB.
Because the BootRom of the board checks if there be a Marvell's Magic Pattern and header at the beginning of the BootLoader(UBoot), I can NOT boot normally with the image I built by myself.
If I use the UBoot loader that comes with Marvell's SDK instead of the one comes with OpenWrt, my initramfs kernel can be loaded through TFTP and run. But the uboot loader of Marvell SDK passes a wrong kernel command line argument root=/dev/mmcblk1p1
to the kernel, therefore the kernel is waiting for the rootfs device getting ready forever. I guess that OpenWrt and Marvell SDK have different partition naming schedule.
I tried following values, but they all NOT work:
1. root=/dev/mmcblk1p0
2. root=/dev/mmcblk0p0
3. root=/dev/mmcblk0p1
4. root=/dev/mtd0
5. root=/dev/mtd1
6. root=/dev/mtdblock0
7. root=/dev/mtdblock1
When I run the initramfs version of my kernel (by means of TFTP/NFS), I try to get the name of the rootfs by using lsblk
command.
Although I get two names "mtdblock0 / mtdblock1", but I think they are NOT the answer, because the position of mtdblock0 starts at the 2048th sector of it's parent device, while my actual root partition skips the beginning 32M byts of it's parent. I guess that these two partition is virtualized by the initramfs version kernel, and they are NOT mapped any physical devices.
My questions:
- How to find out the correct kernel argument about rootfs of my new built image?
- Is there a way I can bypass the validating code of the board?
Thanks!
Pls forgive my ugly English.