nandps
Vitis Drivers API Documentation
|
Data Structures | |
struct | XNandPs_Config |
This typedef contains configuration information for the flash device. More... | |
struct | XNandPs_Geometry |
Flash geometry. More... | |
struct | XNandPs_Features |
ONFI Features and Optional commands supported See parameter page byte 6-7 and 8-9. More... | |
struct | XNandPs_BbtDesc |
Bad block table descriptor. More... | |
struct | XNandPs_BadBlockPattern |
Bad block pattern. More... | |
struct | XNandPs_EccConfig |
ECC configuration structure. More... | |
struct | XNandPsTag |
The XNandPs driver instance data. More... | |
struct | XNandPs_CommandFormat |
NAND Command format structures. More... | |
Macros | |
#define | XNANDPS_MAX_TARGETS 1 |
Max number of targets supported. More... | |
#define | XNANDPS_MAX_BLOCKS 32768 |
Max number of Blocks. More... | |
#define | XNANDPS_MAX_PAGE_SIZE 16384 |
Max page size of NAND flash. More... | |
#define | XNANDPS_MAX_SPARE_SIZE 512 |
Max spare bytes of a NAND flash page. More... | |
#define | XNANDPS_MAX_LUNS 8 |
Max number of LUNs. More... | |
#define | XNANDPS_MAX_PAGES_PER_BLOCK 512 |
Max number pages per block. More... | |
#define | XNANDPS_ECC_BLOCK_SIZE 512 |
ECC block size. More... | |
#define | XNANDPS_ECC_BYTES 3 |
ECC bytes per ECC block. More... | |
#define | XNANDPS_PAGE_SIZE_512 512 |
Page size 512. More... | |
#define | XNANDPS_PAGE_SIZE_1024 1024 |
Page size 1024. More... | |
#define | XNANDPS_PAGE_SIZE_2048 2048 |
Page size 2048. More... | |
#define | XNANDPS_PAGE_SIZE_4096 4096 |
Page size 4096. More... | |
#define | XNANDPS_PAGE_SIZE_8192 8192 |
Page size 8192. More... | |
#define | XNANDPS_SPARE_SIZE_8 8 |
Spare bytes size 8. More... | |
#define | XNANDPS_SPARE_SIZE_16 16 |
Spare bytes size 16. More... | |
#define | XNANDPS_SPARE_SIZE_32 32 |
Spare bytes size 32. More... | |
#define | XNANDPS_SPARE_SIZE_64 64 |
Spare bytes size 64. More... | |
#define | XNANDPS_SPARE_SIZE_128 128 |
Spare bytes size 128. More... | |
#define | XNANDPS_SPARE_SIZE_256 256 |
Spare bytes size 256. More... | |
#define | XNANDPS_FLASH_WIDTH_8 8 |
NAND Flash width 8-bit. More... | |
#define | XNANDPS_FLASH_WIDTH_16 16 |
NAND Flash width 16-bit. More... | |
#define | XNANDPS_END_CMD_NONE 0 |
No End command. More... | |
#define | XNANDPS_END_CMD_INVALID 0 |
End command invalid. More... | |
#define | XNANDPS_CMD_PHASE 1 |
End command in command phase. More... | |
#define | XNANDPS_DATA_PHASE 2 |
End command in data phase. More... | |
#define | XNANDPS_PAGE_NOT_VALID -1 |
Page is not valid in command phase. More... | |
#define | XNANDPS_COLUMN_NOT_VALID -1 |
Column is not valid in command phase. More... | |
#define | XNANDPS_AXI_DATA_WIDTH 4 |
AXI Data width for last transaction while reading and writing. More... | |
#define | XNANDPS_START_CMD_SHIFT 3 |
Start command shift. More... | |
#define | XNANDPS_END_CMD_SHIFT 11 |
End command shift. More... | |
#define | XNANDPS_END_CMD_VALID_SHIFT 20 |
End command valid shift. More... | |
#define | XNANDPS_ADDR_CYCLES_SHIFT 21 |
Address cycles shift. More... | |
#define | XNANDPS_CHIP_ADDR_SHIFT 24 |
Chip address shift. More... | |
#define | XNANDPS_ECC_LAST_SHIFT 10 |
Ecc last shift. More... | |
#define | XNANDPS_CLEAR_CS_SHIFT 21 |
clear chip select shift More... | |
#define | XNANDPS_COMMAND_PHASE_MASK 0x00000000 |
Command phase mask. More... | |
#define | XNANDPS_DATA_PHASE_MASK 0x00080000 |
Data phase mask. More... | |
#define | XNANDPS_ECC_CORRECT_BYTE_MASK 0x1FF |
ECC error correction byte position mask, bits[11:3] of error code. More... | |
#define | XNANDPS_ECC_CORRECT_BIT_MASK 0x7 |
ECC error correction bit position mask, bits[0:2] of error code. More... | |
#define | XNANDPS_CLR_CONFIG |
Interrupt settings. More... | |
#define | XNANDPS_ECC_MEMCFG |
ECC memory configuration settings. More... | |
#define | XNANDPS_ECC_CMD1 |
ECC command 1 settings. More... | |
#define | XNANDPS_ECC_CMD2 |
ECC command 2 settings. More... | |
#define | XNANDPS_CLR_CS (0x1 << XNANDPS_CLEAR_CS_SHIFT) |
set Clear chip select More... | |
#define | XNANDPS_ECC_LAST (0x1 << XNANDPS_ECC_LAST_SHIFT) |
set Ecc last More... | |
#define | OneHot(Value) (!((Value) & (Value - 1))) |
OneHot is used to check if one and only one bit is set. More... | |
Typedefs | |
typedef struct XNandPsTag | XNandPs |
The XNandPs driver instance data. More... | |
Enumerations | |
enum | XNandPs_EccMode { XNANDPS_ECC_NONE = 0, XNANDPS_ECC_SW, XNANDPS_ECC_HW, XNANDPS_ECC_ONDIE } |
Functions | |
XNandPs_Config * | XNandPs_LookupConfig (u16 DeviceId) |
This function looks up the device configuration based on the unique device ID. More... | |
int | XNandPs_CfgInitialize (XNandPs *InstancePtr, XNandPs_Config *ConfigPtr, u32 SmcBaseAddr, u32 FlashBaseAddr) |
This function initializes a specific XNandPs device/instance. More... | |
int | XNandPs_Read (XNandPs *InstancePtr, u64 Offset, u32 Length, void *DestPtr, u8 *UserSparePtr) |
This function reads the data from the Flash device and copies it into the specified user buffer. More... | |
int | XNandPs_ReadCache (XNandPs *InstancePtr, u64 Offset, u32 Length, void *DestPtr, u8 *UserSparePtr) |
This function reads the data from the Flash device using read page cache command and copies it into the specified user buffer. More... | |
int | XNandPs_Write (XNandPs *InstancePtr, u64 Offset, u32 Length, void *SrcPtr, u8 *UserSparePtr) |
This function programs the flash device(s) with data specified in the user buffer. More... | |
int | XNandPs_WriteCache (XNandPs *InstancePtr, u64 Offset, u32 Length, void *SrcPtr, u8 *UserSparePtr) |
This function programs the flash device(s) with data specified in the user buffer using program cache command. More... | |
int | XNandPs_ReadSpareBytes (XNandPs *InstancePtr, u32 Page, u8 *Buf) |
This function reads the spare area of a page. More... | |
int | XNandPs_WriteSpareBytes (XNandPs *InstancePtr, u32 Page, u8 *Buf) |
This function write to the spare area of a page. More... | |
int | XNandPs_EraseBlock (XNandPs *InstancePtr, u32 BlockNum) |
This function erases a specific block in the NAND device. More... | |