mtd partitions limited to 4 GB?
wmb at firmworks.com
Mon Jun 16 20:04:06 EDT 2008
In drivers/mtd/mtdpart.c, struct mtd_part has "u_int32_t offset", thus
(apparently) limiting the partition start offset to 4 GiB. Similarly,
struct mtd_partition in include/linux/mtd/partititions.h has "u_int32_t
size" and "u_int32_offset".
Now that NAND FLASH device sizes have exceeded that, this appears to be
a significant limitation.
Is anyone in the mtd community already addressing this?
Fixing the core infrastructure might be as simple as using "loff_t"
instead of "u_int32_t" for those fields. However, all of the existing
partition map parsers appear to have the same 32-bit limitation, so
partitioning a >4GiB device will require a new or modified partition map
More information about the linux-mtd