GPMI driver ecc_write_page with oob data problem

Showing results for 
Search instead for 
Did you mean: 

GPMI driver ecc_write_page with oob data problem

Contributor I

I am attempting to mount Yaffs2 on a GPMI controlled NAND flash on IMX6. Unfortunately, I'm not able to mount it with default settings, instead I have to mount it with "inband-tags" which means don't use OOB area on NAND page to store data.

Then I am running into check why yaffs2 can't use OOB area.

We use MICRON MT29F32G08CBADAWP it has 8192 bytes payload and 744 bytes OOB as log show below:

[    0.982938] nand: Micron MT29F32G08CBADAWP
[    0.987056] nand: 4096MiB, MLC, page size: 8192, OOB size: 744
[    0.993508] gpmi-nand 112000.gpmi-nand: enable the asynchronous EDO mode 5

Since the IMX6 only support up to 40bits ECC corrections, we don't want all the OOB used by BCH for ECC correction data. So we enabled "fsl,use-minimum-ecc" which is still use the max 40 bits corrections in BCH, after set_geometry_by_ecc_info does the calculation, its end up following geometry:

page_size = 8762
write_size = 8129
metadat_size = 10
auxiliary_size = 24

oob_free->offset = 570

oob_free->length = 174

Which means we do have 174 bytes free OOB area can be used by file system. After a few days tracing and debugging I've found out the GPMI driver method gpmi_ecc_write_page actually does not write oob data(the 174 bytes area) to NAND flash at all? The flags "oob_required" never been used in the method.

Did anybody else use GPMI with OOB data read/write before? Did it work fine or Am I missing something?

Best regards,


Labels (5)
0 Kudos
1 Reply

NXP TechSupport
NXP TechSupport

Hi Youxin

FSL supports only ubifs on i.MX6 BSPs, for gpmi with yaffs2 one can look below

Can the NAND be mounted with the format of Yaff... | Freescale Community

NAND EDO patches

Best regards



Note: If this post answers your question, please click the Correct Answer button. Thank you!


0 Kudos