[PATCH][MIPS][2/7] AR7: mtd partition map
Matteo Croce
technoboy85 at gmail.com
Thu Sep 20 14:34:21 EDT 2007
Il Thursday 20 September 2007 19:52:05 hai scritto:
> > +#include <linux/squashfs_fs.h>
>
> As Ralf mentioned this is not in mainline, so you can't include it.
> Fortunately for you including it seems to be a rather dumb idea anyway,
> see below for further comments.
You're right, i'll move the magic into linux/magic.h
> > +static struct mtd_partition ar7_parts[5];
>
> Can we please get a symbolic name for that 5? Then again we only
> seems to use 3 anyway, and create_mtd_partitions returns 4..
we use 4, and bootloader is right, it returns 4
The fourth partition is empty, the kernel formats it as jffs2
when mounting
> > + unsigned int root_offset = 0xe0000;
>
> Please provide a symbolic name for this one.
Ok
> > + printk(KERN_INFO "Parsing AR7 partition map...\n");
>
> Do we really need this printk?
No?
> > + if (header.checksum == 0xfeedfa42)
> > + break;
> > + if (header.checksum == 0xfeed1281)
> > + break;
>
> These two want symbolic names, please:
>
> enum {
> /* some comment */
> FOO_PART_MAGIC = 0xfeedfa42,
>
> /* more comment */
> BAR_PART_MAGIC = 0xfeed1281,
> };
>
> > + switch (header.checksum) {
> > + case 0xfeedfa42:
> > + while (header.length) {
> > + offset += sizeof(header) + header.length;
> > + master->read(master, offset, sizeof(header),
> > + &len, (u_char *)&header);
> > + }
> > + root_offset = offset + sizeof(header) + 4;
> > + break;
> > + case 0xfeed1281:
>
> Especially as you use them here again.
Right, will do
> > + default:
> > + printk(KERN_WARNING "Unknown magic: %08x\n", header.checksum);
> > + break;
> > + }
> > +
> > + master->read(master, root_offset,
> > + sizeof(header), &len, (u_char *)&header);
> > + if (header.checksum != SQUASHFS_MAGIC) {
> > + root_offset += master->erasesize - 1;
> > + root_offset &= ~(master->erasesize - 1);
> > + }
>
> And after this I'm pretty sure either of the two hex constants above
> is SQUASHFS_MAGIC. But not actually the magic in the squashfs
> superblock, but someone decided to reuse it for the partitions magic.
> So one of the comments for *_PART_MAGIC becomes:
>
> /* same as SQUASHFS_MAGIC for some odd reason.. */
No. There are MIPS instructions. We look for the loader
start offset since it is in the first partition
More information about the linux-mtd
mailing list