[U-Boot-Users] DiskOnChip, filesystems, and other booting options
u-boot-users at udif.com
Fri Apr 25 01:37:53 CEST 2003
I've finished porting U-boot 0.3.0 to my MPX823 board. It contains a 512KB
29LV040 that boots u-boot, an extra 8MB DiskOnChip Millenium, and an Ethernet
controller (it contains other hardware as well, but that's not relevant).
I can now successfully boot the board into Linux by tftp'ing the kernel, and
using root nfs (exported NFS is /opt/eldk/ppc_8xx - thanks Worlfgang!).
I compiled my own kernel based on the latest linuxppc_2_4 CVS branch.
I can successfully access my DiskOnchip under both u-boot and Linux.
I now want to boot my board from the on-board Flash.
In an ideal world, I would like the DiskOnChip to be:
1. Partition into one or more partitions
2. Boot the kernel from a file in one of the partitions (could be FAT)
3. mount root from separate partition, (if kernel is on FAT), or same
partition as the kernel (if possible).
I'm slightly confused as to the status of JFFS2, DOS partitioning, DOS
FAT/VFAT, and the DiskOnChip support. More specifically:
1. As far as I can tell, the only DiskOnChip support are the "doc read" and
"doc write" commands, therefore if I use these commands I must load the kernel
directly off the raw sectors - no filesystem support whatsoever. Am I correct?
2. Does the "doc read" and "doc write" use the NFTL layer, or do they access
the raw device sectors?
3. As far as I can tell, the FAT support is hardwired to the floppy controller
device, and the DOS partition support is wired to the IDE support. Am I right?
It seems to me it is quite trivial to construct a simple interface (a struct
containing the block device geometry, plus a pointer to sector read function),
and have both the partitioning and the DOS FAT code access this. This could
help support DOS filesystems on D.O.C, floppies and IDE devices.
4. What is the best way to achieve my requirements above? (booting a kernel
from a filesystem on the D.O.C). Can JFFS2 help me in any way?
5. Failing all the above, can I partition the device under Linux into 2
partitions, write down the sector range for the 1st partition, and use it to
read/write the kernel using the "doc read" and "doc write interface"?
I would then mount the 2nd partition after booting the kernel.
More information about the U-Boot