Access entire device with mtdblock0
Adam Yergovich
ayergo at jkmicro.com
Fri Jan 30 19:08:08 EST 2009
Wolfgang Wegner wrote:
> On Wed, Jan 14, 2009 at 05:58:43AM -0500, Mike Frysinger wrote:
>> On Wed, Jan 14, 2009 at 04:00, Peter Korsgaard wrote:
>>> "Mike" == Mike Frysinger <writes:
>>>>> Any recommendations on a simple way to create a partition using the
>>>>> entirety of flash?
>>>> looks like no one responded. i'm pretty sure the answer is to use
>>>> add_mtd_device() even in face of add_mtd_partitions().
>>> Why not just add a partition spanning the entire device in addition to
>>> the other partitions?
>> i was not aware partition tables allowed for overlaps. if that's
>> true, then the answer is obvious and easy to implement in boards ...
>
> They are allowed, but I have not been able yet to do a correct query
> for erase_size in case of a partition covering a whole device having
> multiple different-sized erase regions.
>
> Regards,
> Wolfgang
Hello All,
Sorry for the delay in trying this out, I have been exceptionally busy.
The short story is: i got it all to work.
The long story is:
In reviewing the code i found that add_mtd_device was already being
called after the partitioning. As it wasn't giving mtdblock0 as the
entire region it didn't seem to be the solution.
I played around some more, and found disabling the mtd partitioning
would give me one partition including all of flash. If you'll note in
the code (which has been present in physmap.c for some time i believe)
it was getting to the add_mtd_device and adding it if and only if the
redboot section was not called.
I moved the add_mtd_device() call to before the redboot partitioning and
it all worked brilliantly.
I would like to suggest that this is perhaps a better construct overall
as it adds a nice feature.
Hopefully this is at very least useful to someone who looks at this in
the future. I thank you all for your help in this.
-Adam
More information about the linux-mtd
mailing list