NAND Flash ctrl access interface definition.
This file contains ctrl access interface functions of NAND Flash module.
Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
#include "nand_flash_mem.h"
#include "nand_flash_translation.h"
#include <string.h>
#include "udi_msc.h"
Macros | |
#define | MODEL(translated) ((struct nand_flash_model *)translated) |
Functions | |
Ctrl_status | nand_flash_mem_2_ram (uint32_t addr, void *ram) |
This function tranfers 1 data sector from memory to RAM. More... | |
Ctrl_status | nand_flash_ram_2_mem (uint32_t addr, const void *ram) |
This function tranfers 1 data sector from RAM to memory. More... | |
Ctrl_status | nand_flash_read_capacity (uint32_t *nb_sector) |
This function returns the address of the last valid sector. More... | |
bool | nand_flash_removal (void) |
This function informs about the memory type. More... | |
Ctrl_status | nand_flash_test_unit_ready (void) |
This function tests memory state, and starts memory initialization. More... | |
bool | nand_flash_unload (bool unload) |
This function unloads/loads the memory. More... | |
Ctrl_status | nand_flash_usb_read_10 (uint32_t addr, uint16_t nb_sector) |
This function transfers the memory data to the USB MSC interface. More... | |
Ctrl_status | nand_flash_usb_write_10 (uint32_t addr, uint16_t nb_sector) |
This function transfers the USB MSC data to the memory. More... | |
bool | nand_flash_wr_protect (void) |
This function returns the write-protected mode. More... | |
Variables | |
static uint32_t | addr_address = BOARD_NF_ADDRESS_ADDR |
static uint32_t | cmd_address = BOARD_NF_COMMAND_ADDR |
static uint32_t | data_address = BOARD_NF_DATA_ADDR |
static uint32_t | nand_flash_status = NAND_FLASH_NOT_INIT |
static uint8_t | nand_flash_usb_buffer [NAND_COMMON_MAX_PAGE_SIZE] |
Global NAND Flash temp buffer. More... | |
static struct nand_flash_translation | nf_translation |
static uint8_t | page_read_buffer [NAND_COMMON_MAX_PAGE_SIZE] |
static uint8_t | page_write_buffer [NAND_COMMON_MAX_PAGE_SIZE] |
#define MODEL | ( | translated | ) | ((struct nand_flash_model *)translated) |
Referenced by nand_flash_usb_read_10(), and nand_flash_usb_write_10().
Ctrl_status nand_flash_mem_2_ram | ( | uint32_t | addr, |
void * | ram | ||
) |
This function tranfers 1 data sector from memory to RAM.
This function transfers 1 data sector from memory to RAM.
addr | Sector address to start read |
ram | Address of RAM buffer |
References CTRL_BUSY, CTRL_FAIL, CTRL_GOOD, nand_flash_read(), NAND_FLASH_READY, nand_flash_status, and SECTOR_SIZE.
Ctrl_status nand_flash_ram_2_mem | ( | uint32_t | addr, |
const void * | ram | ||
) |
This function tranfers 1 data sector from RAM to memory.
This function transfers 1 data sector from RAM to memory.
addr | Sector address to start write |
ram | Address of RAM buffer |
References CTRL_BUSY, CTRL_FAIL, CTRL_GOOD, NAND_FLASH_READY, nand_flash_status, nand_flash_write(), and SECTOR_SIZE.
Ctrl_status nand_flash_read_capacity | ( | uint32_t * | nb_sector | ) |
This function returns the address of the last valid sector.
nb_sector | Pointer to number of sectors (sector=512 bytes) |
References addr_address, cmd_address, CTRL_BUSY, CTRL_GOOD, CTRL_NO_PRESENT, data_address, NAND_FLASH_NOT_INIT, NAND_FLASH_READY, nand_flash_status, nand_flash_translation_get_device_size_in_byte(), nand_flash_translation_initialize(), NAND_FLASH_UNLOADED, nf_translation, page_read_buffer, page_write_buffer, and SECTOR_SIZE.
bool nand_flash_removal | ( | void | ) |
This function informs about the memory type.
Ctrl_status nand_flash_test_unit_ready | ( | void | ) |
This function tests memory state, and starts memory initialization.
References addr_address, cmd_address, CTRL_BUSY, CTRL_GOOD, CTRL_NO_PRESENT, data_address, NAND_FLASH_BUSY, nand_flash_flush(), NAND_FLASH_NOT_INIT, NAND_FLASH_READY, nand_flash_status, nand_flash_translation_initialize(), NAND_FLASH_UNLOADED, nf_translation, page_read_buffer, and page_write_buffer.
This function unloads/loads the memory.
References nand_flash_flush(), NAND_FLASH_NOT_INIT, NAND_FLASH_READY, nand_flash_status, and NAND_FLASH_UNLOADED.
Ctrl_status nand_flash_usb_read_10 | ( | uint32_t | addr, |
uint16_t | nb_sector | ||
) |
This function transfers the memory data to the USB MSC interface.
addr | Sector address to start read |
nb_sector | Number of sectors to transfer (sector=512 bytes) |
References CTRL_BUSY, CTRL_FAIL, CTRL_GOOD, min, MODEL, nand_flash_model_get_page_data_size(), nand_flash_read(), NAND_FLASH_READY, nand_flash_status, nand_flash_usb_buffer, nf_translation, SECTOR_SIZE, and udi_msc_trans_block().
Ctrl_status nand_flash_usb_write_10 | ( | uint32_t | addr, |
uint16_t | nb_sector | ||
) |
This function transfers the USB MSC data to the memory.
addr | Sector address to start write |
nb_sector | Number of sectors to transfer (sector=512 bytes) |
References CTRL_BUSY, CTRL_FAIL, CTRL_GOOD, min, MODEL, nand_flash_model_get_page_data_size(), NAND_FLASH_READY, nand_flash_status, nand_flash_usb_buffer, nand_flash_write(), nf_translation, SECTOR_SIZE, and udi_msc_trans_block().
bool nand_flash_wr_protect | ( | void | ) |
This function returns the write-protected mode.
|
static |
Referenced by nand_flash_read_capacity(), and nand_flash_test_unit_ready().
|
static |
Referenced by nand_flash_read_capacity(), and nand_flash_test_unit_ready().
|
static |
Referenced by nand_flash_raw_initialize(), nand_flash_read_capacity(), and nand_flash_test_unit_ready().
|
static |
|
static |
Global NAND Flash temp buffer.
Referenced by nand_flash_usb_read_10(), and nand_flash_usb_write_10().
|
static |
|
static |
Referenced by nand_flash_read_capacity(), and nand_flash_test_unit_ready().
|
static |
Referenced by nand_flash_read_capacity(), and nand_flash_test_unit_ready().