1. WINCE600\PLATFORM\SMDKV210\SRC\COMMON\NANDFLASH\FMD\cfnand.h中只需要在这个数组里面增加K9F4G08U0A相关的参数
static NAND_FLASH_SPEC g_supportedNAND[] =
{
{0xEC, 0xDC, SLC_NAND, 4096, 64, 2112, 2048, 64, 7, 7, 7},//K9F4G08U0A
{0xEC, 0xDA, SLC_NAND, 2048, 64, 2112, 2048, 64, 7, 7, 7},//K9F2G08U0A
{0xEC, 0xF1, SLC_NAND, 1024, 64, 2112, 2048, 64, 7, 7, 7},//K91FG08U0C
{0x00, 0x00, SLC_NAND, 0, 0, 0, 0, 0}
};
2. WINCE600\PLATFORM\SMDKV210\SRC\BOOTLOADER\STEPLDR\nand.c中,做如下修改:
void NAND_Init(void)
{
DWORD ReadID;
BYTE cMID, cDID;
// Configure BUS Width and Chip Select for NAND Flash
// Initialize NAND Flash Controller
rNFCONF = (TACLS << 12) | (TWRPH0 << 8) | (TWRPH1 << 4) | (0<<0);
rNFCONT = (0<<17)|(0<<16)|(0<<10)|(0<<9)|(0<<8)|(1<<7)|(1<<6)|(1<<5)|(1<<4)|(0x3<<1)|(1<<0);
rNFSTAT = (1<<4);
NF_Reset();
// Get manufacturer and device codes.
if (!ReadFlashID(&ReadID))
{
//Uart_SendString("ID Err\n");
//Uart_SendDWORD(ReadID,1);
//Uart_SendString("!\n");
}
cMID = NF_GET_MID(ReadID);
cDID = NF_GET_DID(ReadID);
switch(cMID)
{
case 0xEC:
{
switch(cDID)
{
case 0xDA: // Samsung 2Gbit SLC - K9F2G08U0A
{
g_bLargeBlock = TRUE;
NEED_EXT_ADDR = TRUE;
break;
}
case 0xDC: // Samsung 4Gbit SLC - K9F4G08U0A, Brian Liu
{
g_bLargeBlock = TRUE;
NEED_EXT_ADDR = TRUE;
break;
}
case 0xF1: // Samsung 1Gbit SLC - K91FG08U0C
{
g_bLargeBlock = TRUE;
NEED_EXT_ADDR = FALSE;
break;
}
default:
// Not supported NAND
while(1);
break;
}
break;
}
default:
// Not supported NAND
while(1);
break;
}
}
完毕。