Forum Discussion

altera33's avatar
altera33
Icon for New Contributor rankNew Contributor
6 years ago

How 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 *)&param);
 
    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;
    	}

3 Replies