Comments

In gmane.linux.drivers.mtd David Woodhouse <dwmw2@infradead.org> wrote:
>> On Sun, 2010-01-03 at 21:17 +0100, Florian Fainelli wrote:>> This patch modifies the physmap-flash driver to include>> the ar7part partition parser in the list of parsers to>> use when a physmap-flash driver is registered. This is>> required for AR7 to create partitions correctly.> > Hrm, perhaps we'd do better to allow the probe types to be specified in> the platform physmap_flash_data?>
I am not completely convinced the ar7part approach is the best way as
you are:
1) not actually reading a partition table and instead using a bunch of
'magic' values to try to work out the partition layout
2) it bears no resemble to what is seen by the ADAM2 bootloader
3) regardless of whether you would actually want to, the user is unable
to amend the partition table and have Linux automagically set
the table apprioately
I chatted with Florian a while back about this but we never continued
with it (Real Life[tm] seemed to get in the way) but I had cobbled the
following together:
----
----
It simply pulls apart the 'PROM' (aka ADAM2) config and uses that to
build the partition table.
Work's For Me[tm].
Just my thoughts.
Cheers

In gmane.linux.ports.mips.general Florian Fainelli <florian@openwrt.org> wrote:
>>> [snipped]>> >> It simply pulls apart the 'PROM' (aka ADAM2) config and uses that to>> build the partition table.> > This is indeed simple but if I recall right the rationale behind ar7part was > to create a sane partition layout no matter if the bootloader was ADAM2 or > PSPBoot and the root filesystem type. JFFS2 and squashfs do not have the same > erase-block size alignment constraints, ar7part deals with that too.>
I am not convinced that is a good idea, one main reason is ar7part.c has
gotten terribly wrong the partition table ('loader' is too small[1] and
'rootfs' overlaps with the 'linux' partition').
This is what I have from ADAM2's perspective:
----
Adam2_AR7WRD > printenv
[snipped]
mtd0 0x900e0000,0x903f0000 <-- rootfs
mtd1 0x90020000,0x900e0000 <-- kernel
mtd2 0x90000000,0x90020000 <-- adam2 bootloader
mtd3 0x903f0000,0x90400000 <-- configuration
mtd4 0x90020000,0x903f0000 <-- kernel + rootfs
----
Linux spits out:
----
physmap platform flash device: 00800000 at 10000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
physmap-flash.0: Swapping erase regions for broken CFI table.
number of CFI chips: 1
cmdlinepart partition parsing not available
RedBoot partition parsing not available
4 ar7part partitions found on MTD device physmap-flash.0
Creating 4 MTD partitions on "physmap-flash.0":
0x000000000000-0x000000010000 : "loader"
0x0000003f0000-0x000000400000 : "config"
0x000000020000-0x0000003f0000 : "linux"
0x0000000d0000-0x0000003f0000 : "rootfs"
----
My patch munched on whatever prom_getenv() returned, which from what I
can tell looking at arch/mips/ar7/prom.c will work for both PSPBoot and
ADAM2?
Are there some strange mtd environment variables I am yet to see out in
the wild or does my patch simply not work for PSPBoot primed kit? If
not can you give me some 'spiel' to play around with?
Cheers
[1] okay, ADAM2 weighs in at less than 64kiB however it is not outside
the realm of possibility someone will port u-boot to AR7 which
would benefit from the full 128kiB of space?