Altera HWLIB  16.0
The Altera HW Manager API Reference Manual
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups
alt_nand_flash.h File Reference
#include "hwlib.h"

Go to the source code of this file.

Detailed Description

Altera - NAND Flash Controller Module

Data Structures

struct  ALT_NAND_FLASH_ECC_STATUS_s
 

Macros

#define ALT_NAND_INVALID_FLASH_ADDR   0xffffffff
 
#define ALT_NAND_BAD_BLOCK_MARKER   0
 

Typedefs

typedef void(* alt_nand_callback_t )(ALT_STATUS_CODE status, void *callback_arg)
 
typedef ALT_STATUS_CODE(* alt_nand_flash_custom_init_t )(void *user_arg)
 
typedef enum
ALT_NAND_ECC_CORRECTION_e 
ALT_NAND_ECC_CORRECTION_t
 
typedef struct
ALT_NAND_FLASH_ECC_STATUS_s 
ALT_NAND_FLASH_ECC_STATUS_t
 
typedef enum ALT_NAND_INT_STATUS_e ALT_NAND_INT_STATUS_t
 
typedef uint32_t * alt_nand_bad_block_table_t
 

Enumerations

enum  ALT_NAND_ECC_CORRECTION_e { ALT_NAND_ECC_4_BIT_CORRECTION = 4, ALT_NAND_ECC_8_BIT_CORRECTION = 8, ALT_NAND_ECC_16_BIT_CORRECTION = 16, ALT_NAND_ECC_24_BIT_CORRECTION = 24 }
 
enum  ALT_NAND_INT_STATUS_e {
  ALT_NAND_INT_STATUS_PAGE_XFER_INC = (1 << 15), ALT_NAND_INT_STATUS_PIPE_CMD_ERR = (1 << 14), ALT_NAND_INT_STATUS_RST_COMP = (1 << 13), ALT_NAND_INT_STATUS_INT_ACT = (1 << 12),
  ALT_NAND_INT_STATUS_UNSUP_CMD = (1 << 11), ALT_NAND_INT_STATUS_LOCKED_BLK = (1 << 10), ALT_NAND_INT_STATUS_PIPE_CPYBCK_CMD_COMP = (1 << 9), ALT_NAND_INT_STATUS_ERASE_COMP = (1 << 8),
  ALT_NAND_INT_STATUS_PROGRAM_COMP = (1 << 7), ALT_NAND_INT_STATUS_LOAD_COMP = (1 << 6), ALT_NAND_INT_STATUS_ERASE_FAIL = (1 << 5), ALT_NAND_INT_STATUS_PROGRAM_FAIL = (1 << 4),
  ALT_NAND_INT_STATUS_TIME_OUT = (1 << 3), ALT_NAND_INT_STATUS_DMA_CMD_COMP = (1 << 2), ALT_NAND_INT_STATUS_ECC_UNCOR_ERR = (1 << 0)
}
 

Functions

ALT_STATUS_CODE alt_nand_flash_init (const bool load_block0_page0, const bool page_size_512, alt_nand_flash_custom_init_t custom_init, void *user_arg)
 
ALT_STATUS_CODE alt_nand_flash_uninit (void)
 
uint32_t alt_nand_block_address_get (const uint32_t addr)
 
uint32_t alt_nand_page_address_get (const uint32_t addr)
 
uint32_t alt_nand_flash_addr_compose (const uint32_t block_num, const uint32_t page_num)
 
ALT_STATUS_CODE alt_nand_flash_block_erase (const uint32_t block_addr, alt_nand_callback_t completion_callback, void *completion_arg)
 
ALT_STATUS_CODE alt_nand_flash_page_read (const uint32_t page_addr, const uint32_t num_pages, void *dest, const uint32_t dest_size)
 
ALT_STATUS_CODE alt_nand_flash_page_write (const uint32_t page_addr, const uint32_t num_pages, const void *src, const uint32_t src_size)
 
ALT_STATUS_CODE alt_nand_flash_page_dma_read (const uint32_t page_addr, const uint32_t num_pages, void *dest, const uint32_t dest_size, alt_nand_callback_t completion_callback, void *completion_arg)
 
ALT_STATUS_CODE alt_nand_flash_page_dma_write (const uint32_t page_addr, const uint32_t num_pages, const void *src, const uint32_t src_size, alt_nand_callback_t completion_callback, void *completion_arg)
 
ALT_STATUS_CODE alt_nand_flash_ecc_enable (const ALT_NAND_ECC_CORRECTION_t ecc_correction)
 
ALT_STATUS_CODE alt_nand_flash_ecc_disable (void)
 
ALT_STATUS_CODE alt_nand_flash_ecc_status_get (ALT_NAND_FLASH_ECC_STATUS_t *ecc_status)
 
uint32_t alt_nand_int_status_get (void)
 
ALT_STATUS_CODE alt_nand_int_clear (const uint32_t mask)
 
ALT_STATUS_CODE alt_nand_int_disable (const uint32_t mask)
 
ALT_STATUS_CODE alt_nand_int_enable (const uint32_t mask)
 
uint32_t alt_nand_num_planes_get (void)
 
uint32_t alt_nand_num_blocks_get (void)
 
uint32_t alt_nand_num_pages_per_block_get (void)
 
uint32_t alt_nand_sector_size_get (void)
 
uint32_t alt_nand_spare_size_get (void)
 
bool alt_nand_block_is_bad (const uint32_t block_addr)
 
ALT_STATUS_CODE alt_nand_bad_block_table_get (alt_nand_bad_block_table_t bad_block_table, const uint32_t bad_block_table_len)