@ -162,6 +162,16 @@ void nand_init(void)
NFC_CTL_RESET , MAX_RETRIES ) ) {
printf ( " Couldn't initialize nand \n " ) ;
}
/* reset NAND */
writel ( NFC_SEND_CMD1 | NFC_WAIT_FLAG | NAND_CMD_RESET ,
SUNXI_NFC_BASE + NFC_CMD ) ;
if ( ! check_value ( SUNXI_NFC_BASE + NFC_ST , NFC_CMD_INT_FLAG ,
MAX_RETRIES ) ) {
printf ( " Error timeout waiting for nand reset \n " ) ;
return ;
}
}
static void nand_read_page ( unsigned int real_addr , dma_addr_t dst ,
@ -223,16 +233,6 @@ static void nand_read_page(unsigned int real_addr, dma_addr_t dst,
return ;
}
/* set CMD */
writel ( NFC_SEND_CMD1 | NFC_WAIT_FLAG | NAND_CMD_RESET ,
SUNXI_NFC_BASE + NFC_CMD ) ;
if ( ! check_value ( SUNXI_NFC_BASE + NFC_ST , NFC_CMD_INT_FLAG ,
MAX_RETRIES ) ) {
printf ( " Error while initilizing command interrupt \n " ) ;
return ;
}
page = real_addr / CONFIG_NAND_SUNXI_SPL_PAGE_SIZE ;
column = real_addr % CONFIG_NAND_SUNXI_SPL_PAGE_SIZE ;