altera33
New Contributor
6 years agoHow to use NAND in HPS baremetal program?
is there any c-code examples for HPS HWLib NAND API? My simple code is reading 0xFF whatever i wrote.
I'm using MT29F8G08ABACAH4-IT. The linux driver is able to read/write this FLASH.
ALT_PRINTF("NAND: Initializing NAND.\n");
status = alt_nand_init(ALT_NAND_BOOTSTRAP_INHIBIT_B0P0_LOAD_DISABLE,
ALT_NAND_BOOTSTRAP_512B_DEVICE_DISABLE,
init_nand,
(void *)¶m);
if (status != ALT_E_SUCCESS) ALT_PRINTF("NAND: Error initializing NAND.\n");
//alt_nand_ecc_enable(ALT_NAND_ECC_8_BIT_CORRECTION);
alt_nand_ecc_disable();
for(int k=0;k<NAND_PAGE_SZ;k++)
nand_buf[k]=k;
status = alt_nand_write_page(0, 1, (uint32_t *)nand_buf);
if (status != ALT_E_SUCCESS) ALT_PRINTF("NAND: Error writing NAND.\n");
memset(nand_buf,0,NAND_PAGE_SZ);
status = alt_nand_read_page(0, 1, (uint32_t *)nand_buf);
if (status != ALT_E_SUCCESS) ALT_PRINTF("NAND: Error reading NAND.\n");
else
for(int k=0;k<NAND_PAGE_SZ;k++)
if(nand_buf[k]!=k)
{
ALT_PRINTF("NAND:R/W Error @%d.\n",k);
break;
}