Partitions not created following 2.6.28 -> 2.6.31 update

Arno Steffen arno.steffen at googlemail.com
Mon Feb 8 06:38:43 EST 2010


Same for me on a OMAP design. The flash partitons has been set in
arch/arm/mach-omap2/<boardname<-flash.c, but this is not available in 2.6.32.

How to deal with that?

Arno

2010/2/1 Ryan Thompson <i at ry.ca>:
> Hi all,
>
> I'm in the process of updating my kernel to 2.6.31 from 2.6.28. I am
> running custom PowerPC 4xx hardware with CFI NOR flash. Flash itself
> works, but after the kernel update, my partitions are no longer being
> created. Detailed info below:
>
> My device tree (dts) is set up roughly like this:
>
>  FLASH: flash at f0000000 {
>     /* ...snip hw params... */
>     uboot at 0 {
>         reg = <0x0 0xE0000>;
>         label = "uboot";
>     };
>
>     ubootenv at e0000 {
>         reg = <0xE0000 0x20000>;
>         label = "ubootenv";
>     };
>
>     /* Other similar partitions */
>  };
>
> Under 2.6.28, this would give me the following kernel messages on boot:
>
>  f0000000.flash: Found 1 x16 devices at 0x0 in 16-bit bank
>  Intel/Sharp Extended Query Table at 0x010A
>  Intel/Sharp Extended Query Table at 0x010A
>  Intel/Sharp Extended Query Table at 0x010A
>  Intel/Sharp Extended Query Table at 0x010A
>  erase region 0: offset=0x0,size=0x20000,blocks=1024
>  cmdlinepart partition parsing not available
>  RedBoot partition parsing not available
>  Creating 10 MTD partitions on "f0000000.flash":
>  0x00000000-0x000e0000 : "uboot"
>  0x000e0000-0x00100000 : "ubootenv"
>  .
>  .
>
> And there would be corresponding mtd(block)? devices for each partition.
>
> Under 2.6.31, the flash itself is still probed, but the output is
> slightly different, and the partitions are not created:
>
>  f0000000.flash: Found 1 x16 devices at 0x0 in 16-bit bank
>  Intel/Sharp Extended Query Table at 0x010A
>  Intel/Sharp Extended Query Table at 0x010A
>  Intel/Sharp Extended Query Table at 0x010A
>  Intel/Sharp Extended Query Table at 0x010A
>  Intel/Sharp Extended Query Table at 0x010A
>  Using buffer write method
>  Using auto-unlock on power-up/resume
>  cfi_cmdset_0001: Erase suspend on write enabled
>  erase region 0: offset=0x0,size=0x20000,blocks=1024
>  cmdlinepart partition parsing not available
>  RedBoot partition parsing not available
>
> I have not changed the device tree.
>
> In my kernel .config, I have (still) enabled CONFIG_MTD_{PARTITIONS,
> PHYSMAP, PHYSMAP_OF, OF_PARTS, CHAR, BLOCK}, and have not changed
> these options. The only MTD or flash options that make config changed
> when I ran it on 2.6.31 were the new MTD_TESTS, and MTD_LPDDR, both of
> which are disabled.
>
> mtd_debug used to say:
>  mtd.type = MTD_NORFLASH
>  mtd.flags = MTD_WRITEABLE | MTD_BIT_WRITEABLE
>  mtd.size = 917504 (896K)
>  mtd.erasesize = 131072 (128K)
>  mtd.writesize = 1
>  mtd.oobsize = 0
>  mtd.ecctype = (unknown ECC type - new MTD API maybe?)
>  regions = 0
>
> Now it outputs:
>  mtd.type = MTD_NORFLASH
>  mtd.flags = MTD_WRITEABLE | MTD_BIT_WRITEABLE
>  mtd.size = 134217728 (128M)
>  mtd.erasesize = 131072 (128K)
>  mtd.writesize = 1
>  mtd.oobsize = 0
>  mtd.ecctype = (unknown ECC type - new MTD API maybe?)
>  regions = 1
>
>  region[0].offset = 0x00000000
>  region[0].erasesize = 131072 (128K)
>  region[0].numblocks = 1024
>  region[0].regionindex = 0
>
> If I read from /dev/mtdblock0, I see my u-boot image, so flash itself
> still works. The problem is, the kernel isn't splitting it into
> separate mtd devices per the DTB like it did before the update.
>
> The char/block device nodes 1..n all return ENODEV on open(), which is
> no great surprise given the above information.
>
> Any advice on how to get my partitions back would be appreciated!
> Hopefully I'm missing something obvious.
>
> Thanks,
> - R
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>



More information about the linux-mtd mailing list