
Using uboot 2013.01, booting from NAND, I am having difficulty understanding how partitions (areas of NAND) work.
I have written to NAND in the following layout: 0x0000000 at91bootstrap1 0x0020000 uboot1 0x0060000 uboot-env1 0x0200000 kernel1 0x0400000 rootfs1 0x8000000 at91bootstrap2 0x8020000 uboot2 0x8060000 uboot-env2 0x8200000 kernel 0x8400000 rootfs2
I hacked at91bootstrap to load into ram a uboot and an environment, and I can stop uboot and 'env print' to see that the proper environment was loaded.
While booted into linux on one rootfs I would like to access the other rootfs.
I try tried to use the mtdparts parameter that describes the partitions of NAND, but this isn't working, and I don't think I understand what it should be.
First problem, or signs that I'm doing something wrong is my mtdparts parameter. If I try to edit on the interactive uboot shell, the line is too long to change, so I have to write flash for each test. That can't be correct? Regardless of which uboot environemnt I use, this is what I am trying to use to describe my NAND layout: mtdparts=at91_nand:128k(bootstrap1)ro,256k(uboot1)ro,128k(env1)ro,1536K(unused),2M(linux1),124M(rootfs1),128k(bootstrap2)ro,256k(uboot2)ro,128k(env2)ro,1536k(unused2),2M(linux2),124M(rootfs2) What should I use here?
Second problem is what to use for root=/dev/mtdblock*. I have tried many things, but most lead to an inability to find the file system, and since each test requires re-writing NAND flash it takes a really long time to debug. What should I use here?