Micron MT29F NAND driver
|
MT_uint8 NAND_Read_Lock_Status | ( | nand_addr_t | block_addr | ) |
The BLOCK LOCK READ STATUS (7Ah) command is used to determine the protection status of individual blocks.
[in] | nand_addr_t | block_addr: address of block to check (column is ignored) |
MT_uint8 | block_lock_status_reg: value of block status register |
Definition at line 1381 of file nand_MT29F_lld.c.
References __build_cycle_addr(), __is_valid_addr(), CMD_BLOCK_LOCK_READ_STATUS, driver_status, DRIVER_STATUS_INITIALIZED, DRIVER_STATUS_NOT_INITIALIZED, NAND_INVALID_NAND_ADDRESS, NAND_SUCCESS, NUM_OF_ADDR_CYCLE, PLATFORM_Close(), PLATFORM_Open(), PLATFORM_ReadData(), PLATFORM_SendAddr(), and PLATFORM_SendCmd().
{ MT_uint8 block_addr_stream[NUM_OF_ADDR_CYCLE]; MT_uint8 block_lock_status_reg; /* verify if driver is initialized */ if(DRIVER_STATUS_INITIALIZED != driver_status) return DRIVER_STATUS_NOT_INITIALIZED; /* check input parameters */ if(NAND_SUCCESS != __is_valid_addr(block_addr)) return NAND_INVALID_NAND_ADDRESS; /* build address cycles for block address */ __build_cycle_addr(block_addr, block_addr_stream); /* init board transfer */ PLATFORM_Open(); /* send command*/ PLATFORM_SendCmd(CMD_BLOCK_LOCK_READ_STATUS); /* send row address (3rd, 4th, 5th cycle) */ PLATFORM_SendAddr(block_addr_stream[2]); PLATFORM_SendAddr(block_addr_stream[3]); PLATFORM_SendAddr(block_addr_stream[4]); block_lock_status_reg = PLATFORM_ReadData(); /* close board transfer */ PLATFORM_Close(); /* return the value of block status register */ return block_lock_status_reg; }