I have noticed what appears to be a 128MB limit on the size of the FAT16
partition containing the MLO executed by the Cortex A8 prior to U-Boot.
Can someone confirm for me that such a size limitation exists? It's not
a huge problem since there are plenty of ways to load kernels, and 128MB
is enough space to store a few. I have wondered though if it might be
prudent - in a "general purpose" OS install like Debian to create a
separate small boot1 partition that just house the MLO and U-Boot
binaries, then store the kernels on a much larger partition U-Boot can
read later on. Doing that would satisfy size limitations and prevent the
user from doing something silly with the MLO binary (e.g. moving it and
thereby breaking boot because it must be in the first blocks of fat).
I have noticed what appears to be a 128MB limit on the size of the FAT16
partition containing the MLO executed by the Cortex A8 prior to U-Boot.
Can someone confirm for me that such a size limitation exists? It's not
a huge problem since there are plenty of ways to load kernels, and 128MB
is enough space to store a few. I have wondered though if it might be
prudent - in a "general purpose" OS install like Debian to create a
separate small boot1 partition that just house the MLO and U-Boot
binaries, then store the kernels on a much larger partition U-Boot can
read later on. Doing that would satisfy size limitations and prevent the
user from doing something silly with the MLO binary (e.g. moving it and
thereby breaking boot because it must be in the first blocks of fat).
Anyway. Is there a size limit?
no.
FAT16 partitions are limited to 2GB, larger ones will have to use FAT32
Well, if I create a 64MB active boot partition and shove MLO as the
first file on it, all is well. Same for 128MB. But if I do *exactly* the
same thing (and ensure MLO is the first thing laid down, ensuring I do a
sync after performing the copy operation) with 256MB...boom. I get weird
terminal corruption akin with the board not finding the MLO. I suspect
what happens is that the on-chip loader is spewing out some error code
at a different baud rate when such an error occurs.
So there's some kind of limitation there. I specified the same geometry
in the partition tables every time, of course.
Jon Masters wrote:
> Hello,
>
> I have noticed what appears to be a 128MB limit on the size of the FAT16
> Anyway. Is there a size limit?
no.
FAT16 partitions are limited to 2GB, larger ones will have to use FAT32
where is this 128MB limit stated?
Well, if I create a 64MB active boot partition and shove MLO as the
first file on it, all is well. Same for 128MB. But if I do *exactly* the
same thing (and ensure MLO is the first thing laid down, ensuring I do a
sync after performing the copy operation) with 256MB...boom. I get weird
terminal corruption akin with the board not finding the MLO. I suspect
what happens is that the on-chip loader is spewing out some error code
at a different baud rate when such an error occurs.
So there's some kind of limitation there. I specified the same geometry
in the partition tables every time, of course.
I have just reviewed the (sadly) non-public TI rom code docs and i could
not find any such limitation... OF course, it could be a "bug"
I will try to use a larger partition here...
A 2GB card with this configuration works here (not formatted by me):
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 248 1984992+ c W95 FAT32 (LBA)
Partition 1 has different physical/logical endings:
phys=(246, 254, 63) logical=(247, 31, 40)
# dosfsck -nv /dev/sdb1
Boot sector contents:
System ID "MSDOS5.0"
Media byte 0xf8 (hard disk)
512 bytes per logical sector
4096 bytes per cluster
454 reserved sectors
First FAT starts at byte 232448 (sector 454)
2 FATs, 32 bit entries
1980928 bytes per FAT (= 3869 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 4194304 (sector 8192)
495224 data clusters (2028437504 bytes)
63 sectors/track, 255 heads
63 hidden sectors
3969985 sectors total
Hmm...well either it's mkfs produced something weird when I upped the
size or the geometry is somehow unacceptable to MLO. I don't suppose
there are any (public) diagnostic information? For example, when it
fails I get what looks like output at a different baud rate. I seem to
recall seeing various characters when I would decrease the baud down to
something nearer 9600. Does it output diagnostic codes of value?