...
|- Source - Driver source files
Features Supported
Controller
The following features are supported in
Complies with the
Polled
Supports interleaving operations
Supports BCH error correction code (ECC) data widths of 4, 8, 12, and
All ONFI 3.1 commands
PIO and MDMA support
...
and NVDDR 8-bit
supports only 8-bit bus support
Hardware ECC (Hamming code and BCH)
Page size up to 16K
Programmable timing modes
64-bit dma support.
Supported ONFI 3.1 Commands:
The Ronaldo NAND Standalone driver implements basic functionality like PAGE_READ, PAGE_PROGRAM and BLOCK_ERASE. These commands are required
Supports multiple chip selects (up to
Driver Features:
Supports only the
The following list of
Reset
Read Status
Read ID
Read Paramater Page
Read Page
Program Page
Erase Block
Set Features
Get
Supports SDR/DDR modes
Supports timing modes 0-5
Supports PIO and MDMA support
Support for multiple chip selection
Support BBT management
Bad Block management
Bad block management implementation is same as Linux MTD bad block management with the exception of reserving number of blocks to store Bad Block Table (BBT) from default 4 blocks to 64 blocks. This is because one of the Micron flash part MT29F32G08ABCDB has last 32 blocks as bad most of the times. Since it was difficult to store bad block table in last 4 blocks, the number of blocks are increased to 64 blocks.
Known issues and Limitations
Driver supports polled mode only
No support for interleaved and all optional ONFI 3.1 commands
Test cases
Nandpsu example:
https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/nandpsu/examples/xnandpsu_example.c
It verifies the nand data integrity by programing the known data pattern and verify the same by reading the data back.
In this process erase, program, read, read ID, Read Parameter Page, Reset, read status, get/set features and bbt management are covered
Output:code Xilinx Zynq MP First Stage Boot Loader Release 2016.3 Sep 27 2016 - 00:23:11 Nand Flash Read Write Example Test Manufacturer: MICRON MT29F32G08ABCDBJ4 , Device Model: MT29F32G08ABCDBJ4 , Jedec ID: 0x2C Bytes Per Page: 0x4000 Spare Bytes Per Page: 0x4C0 Pages Per Block: 0x100 Blocks Per LUN: 0x418 Number of LUNs: 0x1 Number of bits per cell: 0x1 Number of ECC bits: 0xFF Block Size: 0x400000 Number of Target Blocks: 0x418 Number of Target Pages: 0x41800 ECC: addr 0x4220 size 0x2A0 numbits 24 codesz 10 XNandPsu_ReadBbt: Bad block table found Successfully ran Nand Flash Read Write Example Test code
Related Links
Title 1 & Link 1