gpmi-nand driver and jffs2 support
Hector Palacios
hector.palacios at digi.com
Fri Aug 30 11:23:34 EDT 2013
On 08/31/2013 04:53 AM, Huang Shijie wrote:
> On Fri, Aug 30, 2013 at 04:24:53PM +0200, Hector Palacios wrote:
>> >Dear Huang,
>> >
>> >On 08/30/2013 11:55 AM, Huang Shijie wrote:
>>> > >于 2013年08月30日 17:15, Hector Palacios 写道:
>>>> > >>Hello,
>>>> > >>
>>>> > >>Working on my custom platform based on i.MX28 (and also with the
>>>> > >>MX28EVK) I checked that I cannot mount JFFS2 nand partitions because
>>>> > >>I'm getting this error:
>>>> > >>
>>>> > >>jffs2: inconsistent device description
>>>> > >>
>>>> > >>which seems to have to do with the OOB area of the NAND.
>>>> > >>I saw patchset [1] from Huang Shijie which seems to be related to the
>>>> > >>issue. I just wanted to confirm if other people has the same problem
>>>> > >>and if the patchset really aims to solve this, or mine is a different
>>>> > >>issue.
>>>> > >>
>>> > >yes, this patch set aims to solve this.
>>> > >
>>> > >You can try the SLC on the imx28.
>>> > >
>>> > >I only tested the SLC On the imx6q.
>> >
>> >I applied the patchset but I still get the same error when trying to
>> >mount a JFFS2 filesystem. My nand is:
>> >
>> >[ 0.819654] ONFI param page 0 valid
>> >[ 0.823179] ONFI flash detected
>> >[ 0.826344] NAND device: Manufacturer ID: 0x2c,Chip ID: 0xaa (Micron MT29F2G08ABBEAH4)
>> >[ 0.834455] NAND device: 256MiB, SLC, page size: 2048, OOB size: 64
>> >
> Could you print out the spare bytes of the oob area?
>
> ---
> drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> index cc0306b..5461189 100644
> --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> @@ -217,6 +217,7 @@ static bool set_geometry_by_ecc_info(struct gpmi_nand_data *this)
> if (geo->page_size < mtd->writesize + mtd->oobsize) {
> of->offset = geo->page_size - mtd->writesize;
> of->length = mtd->oobsize - of->offset;
> + printk("[ %s ] %d, %d\n", __func__, of->offset, of->length);
> }
>
> geo->payload_size = mtd->writesize;
Sorry, what repo/branch did you base your original patchset on? The patchset did not
apply correctly and this one you sent won't apply either because the function
set_geometry_by_ecc_info() does not exist. Instead, it is called
common_nfc_set_geometry(). I'm using a v3.10 kernel but this driver has not changed
since then (at least in the vanilla kernel).
I took a dump in U-Boot of the first sector of the JFFS2 partition, in case it helps:
Page 07c00000 dump:
e0 ff ff ff ff ff ff ff ff ff 85 19 01 e0 2b 00
00 00 e6 6e 26 7d 01 00 00 00 00 00 00 00 02 00
00 00 e9 07 98 4f 03 04 00 00 99 f9 4e ee ff 83
66 55 62 69 6e ff 85 19 02 e0 44 00 00 00 1d fb
f7 98 02 00 00 00 01 00 00 00 ed 41 00 00 00 00
00 00 00 00 00 00 e9 07 98 4f e9 07 98 4f e9 07
98 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 b0 3a 0f 4f 85 19 01 e0 2b 00
00 00 e6 6e 26 7d 01 00 00 00 01 00 00 00 03 00
00 00 e9 07 98 4f 03 04 00 00 67 24 83 db 17 28
32 ee 64 65 76 ff 85 19 02 e0 44 00 00 00 1d fb
f7 98 03 00 00 00 01 00 00 00 ed 41 00 00 00 00
00 00 00 00 00 00 e9 07 98 4f e9 07 98 4f e9 07
98 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 6c d6 be 72 85 19 01 e0 2b 00
00 00 e6 6e 26 7d 01 00 00 00 02 00 00 00 04 00
00 00 e9 07 98 4f 03 04 00 00 1a 79 d3 86 db 85
f4 d1 65 74 63 ff 85 19 02 e0 44 00 00 00 1d fb
f7 98 04 00 00 00 01 00 00 00 ed 41 00 00 00 00
00 00 00 00 00 00 e9 07 98 4f e9 07 98 4f e9 07
98 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 78 50 ab c2 85 19 01 e0 2c 00
00 00 5f 56 f1 e0 01 00 00 00 03 00 00 00 05 00
00 00 e9 07 98 4f 04 04 00 00 5d 9c c9 2e cc d3
92 50 68 6f 6d 65 85 19 02 e0 44 00 00 00 1d fb
f7 98 05 00 00 00 01 00 00 00 ed 41 00 00 00 00
00 00 00 00 00 00 e9 07 98 4f e9 07 98 4f e9 07
98 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 a4 bc 1a ff 85 19 01 e0 2b 00
00 00 e6 6e 26 7d 01 00 00 00 04 00 00 00 06 00
00 00 e9 07 98 4f 03 04 00 00 61 8e 79 39 de e2
4e 56 6c 69 62 ff 85 19 02 e0 44 00 00 00 1d fb
f7 98 06 00 00 00 01 00 00 00 4e 8f 5f dd be 9a
44 2a 69 14 9a f9 70 ed 41 00 00 00 00 00 00 00
00 00 00 e9 07 98 4f e9 07 98 4f e9 07 98 4f 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 c0 89 c8 b9 85 19 01 e0 2d 00 00 00 3a
31 4d 58 01 00 00 00 05 00 00 00 07 00 00 00 e9
07 98 4f 05 0a 00 00 49 21 41 23 11 56 0e ac 6d
65 64 69 61 ff ff ff 85 19 02 e0 4e 00 00 00 79
1b 4a f7 07 00 00 00 01 00 00 00 ff a1 00 00 00
00 00 00 0a 00 00 00 e9 07 98 4f e9 07 98 4f e9
07 98 4f 00 00 00 00 0a 00 00 00 0a 00 00 00 00
00 00 00 37 4e 6b ee 40 15 33 ba 2f 74 6d 70 2f
6d 65 64 69 61 ff ff 85 19 01 e0 2b 00 00 00 e6
6e 26 7d 01 00 00 00 06 00 00 00 08 00 00 00 e9
07 98 4f 03 0a 00 00 16 55 76 5d 7f ab 19 ec 6d
6e 74 ff 85 19 02 e0 4c 00 00 00 f2 d3 43 5d 08
00 00 00 01 00 00 00 ff a1 00 00 00 00 00 00 08
00 00 00 e9 07 98 4f e9 07 98 4f e9 07 98 4f 00
00 00 00 08 00 00 00 08 00 00 00 00 00 00 00 9e
6c 81 61 02 67 03 aa 2f 74 6d 70 2f 6d 6e 74 85
19 01 e0 2b 00 00 00 e6 6e 26 7d 01 00 00 00 07
00 00 00 09 00 00 00 e9 07 98 4f 03 04 00 00 e2
a5 25 62 8d 0a e2 b8 6e 66 73 ff 85 19 02 e0 44
00 00 00 1d fb f7 98 09 00 00 00 01 00 00 00 ed
41 00 00 00 00 00 00 00 00 00 00 e9 07 98 4f e9
07 98 4f e9 07 98 4f 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 75 6f 23 3f 85
19 01 e0 2b 00 00 00 e6 6e 26 7d 01 00 00 00 08
00 00 00 0a 00 00 00 e9 07 98 4f 03 04 00 00 28
10 51 9b ce 40 dc 3b 6f 70 74 ff 85 19 02 e0 44
00 00 00 1d fb f7 98 0a 00 00 00 01 00 00 00 ed
41 00 00 00 00 00 00 00 00 00 00 e9 07 98 4f e9
07 98 4f e9 07 98 4f 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 95 88 e4 f6 31 f1 40 28 74
8d 60 34 21 00 00 00 00 11 5a f1 79 85 19 01 e0
2c 00 00 00 5f 56 f1 e0 01 00 00 00 09 00 00 00
0b 00 00 00 e9 07 98 4f 04 04 00 00 6f f5 4b 33
28 5b 94 0a 70 72 6f 63 85 19 02 e0 44 00 00 00
1d fb f7 98 0b 00 00 00 01 00 00 00 ed 41 00 00
00 00 00 00 00 00 00 00 e9 07 98 4f e9 07 98 4f
e9 07 98 4f 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 cd b6 40 44 85 19 01 e0
2c 00 00 00 5f 56 f1 e0 01 00 00 00 0a 00 00 00
0c 00 00 00 e9 07 98 4f 04 04 00 00 12 a8 1b 6e
47 26 b0 37 72 6f 6f 74 85 19 02 e0 44 00 00 00
1d fb f7 98 0c 00 00 00 01 00 00 00 ed 41 00 00
00 00 00 00 00 00 00 00 e9 07 98 4f e9 07 98 4f
e9 07 98 4f 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 d9 30 55 f4 85 19 01 e0
2c 00 00 00 5f 56 f1 e0 01 00 00 00 0b 00 00 00
0d 00 00 00 e9 07 98 4f 04 04 00 00 ec 75 d6 5b
8d 8c ec 2c 73 62 69 6e 85 19 02 e0 44 00 00 00
1d fb f7 98 0d 00 00 00 01 00 00 00 ed 41 00 00
00 00 00 00 00 00 00 00 e9 07 98 4f e9 07 98 4f
e9 07 98 4f 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 05 dc e4 c9 85 19 01 e0
2b 00 00 00 e6 6e 26 7d 01 00 00 00 0c 00 00 00
0e 00 00 00 e9 07 98 4f 03 04 00 00 d0 67 66 4c
30 34 46 61 73 79 73 ff 85 19 02 e0 44 00 00 00
1d fb f7 98 0e 00 00 00 01 00 00 00 ed 41 00 00
00 00 00 00 00 00 00 00 e9 07 98 4f e9 07 98 4f
e9 07 98 4f 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 61 e9 36 8f 85 19 01 e0
2b 00 00 00 e6 6e 26 7d 01 00 00 00 0d 00 00 00
0f 00 00 00 e9 07 98 4f 03 04 00 00 2e ba ab 79
5a a4 ae d3 74 6d 70 ff 85 19 02 e0 44 00 00 00
1d fb f7 98 db 2f 59 39 36 e7 c5 d4 f2 38 50 52
52 0f 00 00 00 01 00 00 00 ed 41 00 00 00 00 00
00 00 00 00 00 e9 07 98 4f e9 07 98 4f e9 07 98
4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 bd 05 87 b2 85 19 01 e0 2b 00 00
00 e6 6e 26 7d 01 00 00 00 0e 00 00 00 10 00 00
00 e9 07 98 4f 03 04 00 00 51 7c ef 2e 9e 90 23
e8 75 73 72 ff 85 19 02 e0 44 00 00 00 1d fb f7
98 10 00 00 00 01 00 00 00 ed 41 00 00 00 00 00
00 00 00 00 00 e9 07 98 4f e9 07 98 4f e9 07 98
4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 4a 22 90 59 85 19 01 e0 2b 00 00
00 e6 6e 26 7d 01 00 00 00 0f 00 00 00 11 00 00
00 e9 07 98 4f 03 0a 00 00 a5 8c bc 11 14 5e 91
92 76 61 72 ff 85 19 02 e0 4c 00 00 00 f2 d3 43
5d 11 00 00 00 01 00 00 00 ff a1 00 00 00 00 00
00 08 00 00 00 e9 07 98 4f e9 07 98 4f e9 07 98
4f 00 00 00 00 08 00 00 00 08 00 00 00 00 00 00
00 f5 99 09 1f 3d 2a b0 cc 2f 74 6d 70 2f 76 61
72 85 19 01 e0 30 00 00 00 78 be 3e fa 02 00 00
00 10 00 00 00 12 00 00 00 e9 07 98 4f 08 0a 00
00 3a cd 47 76 47 36 3f 5b 61 64 64 67 72 6f 75
70 85 19 02 e0 4b 00 00 00 4b eb 94 c0 12 00 00
00 01 00 00 00 ff a1 00 00 00 00 00 00 07 00 00
00 e9 07 98 4f e9 07 98 4f e9 07 98 4f 00 00 00
00 07 00 00 00 07 00 00 00 00 00 00 00 9f 25 6b
18 45 b4 57 7a 62 75 73 79 62 6f 78 ff 85 19 01
e0 2f 00 00 00 b1 f9 44 f2 02 00 00 00 11 00 00
00 13 00 00 00 e9 07 98 4f 07 0a 00 00 92 00 e9
1b c5 d2 c1 7e 61 64 64 75 73 65 72 ff 85 19 02
OOB:
ff 4b 00 00 00 4b eb 94
c0 13 00 00 00 01 00 00
00 ff a1 00 00 00 00 00
00 07 00 00 00 e9 07 98
4f e9 07 98 4f e9 07 98
4f 00 00 00 00 07 00 00
00 d6 88 4e 30 17 e5 05
72 4a c6 25 4e 8e 00 00
Best regards,
--
Hector Palacios
More information about the linux-mtd
mailing list