Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

4Gbit NAND flash driver question

4 views
Skip to first unread message

vincent

unread,
Jun 26, 2008, 10:23:31 PM6/26/08
to
Hi:

we change NAND flash from 1Gbit(128M K9F1G08U0A) to 4Gbit(512M
HY27UF084G2M)
i update souce code fmd.cpp as the following:

========
case 0xADDC: //flash ID
{
NAND2KFMD *nand2K;
nand2K = new NAND2KFMD();
//memcpy(NandSpace,&nand2K,sizeof(nand2K));
Nand = (NandInterface*) nand2K;// NandSpace;
//Nand = (NandInterface*) NandSpace;
Nand->SetNandType(NAND2K);
Nand->SetSectorStartAddr((RESERV_BYTE / 2048 + 63)/ 64 * 64);
Nand->SetLineCycle(3); //row cycle 2->3
Nand->SetNandBlockCount(4096); //total blocks
Nand->SetNandPageCount(64); //pages counts in one block

}
break;
======

i can boot successfully and use bootloader to format nandflash successfully.
but after i download OS image and boot the OS, the error appear as the
following:

========
OAL: + OALIoCtlHalGetRegSecureKeys
OAL: + OALIoCtlHalGetRegSecureKeys
NAND Flash: 0xaddc is found
Enter Function (FMD): FMD_OEMIoControl: 466828
Leave Function (FMD): FMD_OEMIoControl Resule TRUE
Enter Function (FMD): FMD_OEMIoControl: 465956
FMD_OEMIoControl: Unsupport IOControl
Leave Function (FMD): FMD_OEMIoControl Resule FALSE
Exception 004 Thread=8382da38 Proc=2382dc4a 'filesys.exe'
AKY=00000003 PC=03f79a40(coredll.dll+0x00029a40)
RA=03f79de0(coredll.dll+0x00029
de0) BVA=04130ff7
Exception 000 Thread=8382da38 Proc=2382dc4a 'filesys.exe'
AKY=00000003 PC=03f752d4(coredll.dll+0x000252d4)
RA=80009cb8(NK.EXE+0x00008cb8)
BVA=00000000
=======

i traced detailly ,found when the OS check flash ,the block cross after
0x200 sectors
as the following message:(sector count 0,1,2
,3....,1fc,1fd,1fe,1ff,200,300,400,500,....)

b Nand->FMD_ReadSector
NAND2KFMD::FMD_ReadSector =1, startSectorAddr =4d80 Sector_Start=1fb
NandInterface::GetSectorInfo
---NAND2KFMD::FMD_ReadSector =137fc

b Nand->FMD_ReadSector
NAND2KFMD::FMD_ReadSector =1, startSectorAddr =4d80 Sector_Start=1fc
FMD_ReadSector SectorAddr (0x4dff, 1, 0x82c60,0x0)
NAND2KFMD::SendReadSectorAddr
NandInterface::GetEcc
NandInterface::GetSectorInfo
---NAND2KFMD::FMD_ReadSector =137fd

b Nand->FMD_ReadSector
NAND2KFMD::FMD_ReadSector =1, startSectorAddr =4d80 Sector_Start=1fd
NandInterface::GetSectorInfo
---NAND2KFMD::FMD_ReadSector =137fe

b Nand->FMD_ReadSector
NAND2KFMD::FMD_ReadSector =1, startSectorAddr =4d80 Sector_Start=1fe
NandInterface::GetSectorInfo
---NAND2KFMD::FMD_ReadSector =137ff

b Nand->FMD_ReadSector
NAND2KFMD::FMD_ReadSector =1, startSectorAddr =4d80 Sector_Start=1ff
NandInterface::GetSectorInfo
---NAND2KFMD::FMD_ReadSector =13800


b Nand->FMD_GetBlockStatus
NAND2KFMD::FMD_GetBlockStatus
NAND2KFMD::SendReadSectorAddr
NandInterface::GetSectorInfo
b Nand->FMD_ReadSector
NAND2KFMD::FMD_ReadSector =1, startSectorAddr =4d80 Sector_Start=200
FMD_ReadSector SectorAddr (0x4e00, 1, 0x82c60,0x0)
NAND2KFMD::SendReadSectorAddr
NandInterface::GetEcc
NandInterface::GetSectorInfo
---NAND2KFMD::FMD_ReadSector =13801

b Nand->FMD_GetBlockStatus
NAND2KFMD::FMD_GetBlockStatus
NAND2KFMD::SendReadSectorAddr
NandInterface::GetSectorInfo
b Nand->FMD_ReadSector
NAND2KFMD::FMD_ReadSector =1, startSectorAddr =4d80 Sector_Start=300
FMD_ReadSector SectorAddr (0x4e40, 1, 0x82c60,0x0)
NAND2KFMD::SendReadSectorAddr
NandInterface::GetEcc
NandInterface::GetSectorInfo
---NAND2KFMD::FMD_ReadSector =13901

b Nand->FMD_GetBlockStatus
NAND2KFMD::FMD_GetBlockStatus
NAND2KFMD::SendReadSectorAddr
NandInterface::GetSectorInfo
b Nand->FMD_ReadSector
NAND2KFMD::FMD_ReadSector =1, startSectorAddr =4d80 Sector_Start=400
FMD_ReadSector SectorAddr (0x4e80, 1, 0x82c60,0x0)
NAND2KFMD::SendReadSectorAddr
NandInterface::GetEcc
NandInterface::GetSectorInfo
---NAND2KFMD::FMD_ReadSector =13a01

b Nand->FMD_GetBlockStatus
NAND2KFMD::FMD_GetBlockStatus
NAND2KFMD::SendReadSectorAddr
======

should i update something else or what problems happend??

hope to get your response soon.

Thanks and Best Regard.


vincent tsai


0 new messages