📄 smcfunc.h
字号:
#ifndef _smcfunc_
#define _smcfunc_
/*++
Copyright (c) 2001 Sunplus Technology Co., Ltd.
Module Name:
smcfunc.h
Abstract:
Header file related to smc layer function declaration
Environment:
Keil C51 Compiler
Revision History:
09/04/2001 William Yeo created
--*/
//------------------------------------------------------------------------------
//Function prototype
//------------------------------------------------------------------------------
//-------------------------------------
//smc.c
//-------------------------------------
UCHAR SMC_RedunSram2Card(ULONG startAddress, USHORT blockAddress);
BYTE SMC_GetID(void);
UCHAR SMC_Card2Sram(ULONG phyAddr);
UCHAR SMC_Sram2Card(ULONG phyAddr, WORD blockNum);
UCHAR SMC_Card2Dram(ULONG phyAddr, ULONG ramAddr);
UCHAR SMC_Card2DramByPort(ULONG startAddress, ULONG ramAddr); // HIS101b-0009
UCHAR SMC_Dram2Card(ULONG phyAddr, WORD blockNum, ULONG ramAddr);
UCHAR SMC_Card2Usb(ULONG phyAddr);
UCHAR SMC_EraseOneBlock(ULONG phyAddr);
UCHAR SMC_Sram2CardByPort(ULONG phyAddr, WORD blockNum);
UCHAR SMC_Card2SramByPort(ULONG phyAddr);
UCHAR SMC_Dram2CardByPort(ULONG phyAddr, WORD blockNum,ULONG ramAddr);
UCHAR SMC_Dram2CardByPort2(ULONG phyAddr, WORD blockNum);
UCHAR SMC_VideoFifo2Card(ULONG phyAddr, WORD blockNum);
UCHAR SMC_Card2SramForExt(ULONG phyAddr);
UCHAR SMC_RedunCard2Sram(ULONG phyAddr);
UCHAR SMC_Card2Fifo(BYTE mode, ULONG startAddress); //HIS101a-0023
UCHAR SMC_Fifo2Card(BYTE mode, ULONG phyAddr, WORD blockNum); //HIS101a-0023
void SMC_Dram2Fifo(ULONG ramAddr);
void SMC_Fifo2Dram(ULONG ramAddr);
BYTE SMC_CheckEcc(void);
void SMC_FillRedunArea(USHORT blockAddress);
UCHAR SMC_Dram2CardSram(ULONG startAddress, USHORT blockAddress);
//richie@mi0415
UCHAR SMC_Usb2Card(ULONG startAddress, USHORT blockAddress);
void SMC_SequentialDataInputCommand(ULONG phyAddr);
void SMC_Read1Command_1stHalf(ULONG phyAddr);
void SMC_Read1Command_2ndHalf(ULONG phyAddr);
void SMC_Read2Command(ULONG phyAddr);
void SMC_ReadComplete(void);
void SMC_PageProgramCommand(void);
void SMC_ClearEcc(void);
void SMC_ReadEcc2(void);
void SMC_500ReadEcc(BYTE unit);
void SETMODE_CpuWriteFlash(void);
void SETMODE_CpuReadFlash(void);
void SETMODE_UsbReadFlash(void);
void SMC_Dram2Sram(void);
void SMC_Sram2Dram(void);
UCHAR SMC_Card2Sram(ULONG startAddress);
UCHAR SMC_Sram2Card(ULONG startAddress, USHORT blockAddress);
UCHAR SMC_Card2Sram2(ULONG startAddress);
UCHAR SMC_Sram2Card2(ULONG startAddress, USHORT blockAddress);
void SMC_Fifo2Sram(void);
void SMC_Sram2Fifo(void);
//-------------------------------------
//smccore.c
//-------------------------------------
BYTE SMC_CardDetect(void);
BYTE SMC_Initialize(BYTE doDOSInitial);
BYTE SMC_LCard2Sram(ULONG logAddr);
BYTE SMC_LCard2Dram(ULONG logAddr, ULONG ramAddr, ULONG size);
BYTE SMC_LCard2Usb(ULONG logAddr);
//richie@mi0415
BYTE SMC_LUsb2Card(ULONG logAddr, ULONG size);
BYTE SMC_LDram2Card(ULONG logAddr, ULONG ramAddr, ULONG size);
BYTE SMC_PhysicalTest(void);
BYTE SMC_LogicalTest(void);
BYTE SMC_ReadLpaToPpa(ULONG logAddr, ULONG* phyAddr);
BYTE SMC_WriteLbaToPba(ULONG logAddr, ULONG *oldPhyAddr, ULONG *newPhyAddr, WORD *blockNum);
WORD SMC_CalcLbaField(WORD logBlockAddr);
WORD SMC_SearchNewBlock(void);
BYTE SMC_FormatCheck(void);
BYTE SMC_BlockStsCheck(ULONG phyAddress,BYTE stsData, BYTE stsData2); //HIS101b-0019
BYTE SMC_DataStsCheck(BYTE stsData);
BYTE SMC_CisCheck(void);
void SMC_MakeTable(BYTE bank);
BYTE SMC_ParityCheck(BYTE d1, BYTE d2);
WORD SMC_CalcLba(BYTE d1, BYTE d2);
BYTE SMC_EraseTotalBlock(void); // HIS101b-0017
void SMC_FillExtByte(WORD blockNum);
BYTE SMC_SearchValidBlock(ULONG *pPhyAddr);
BYTE SMC_CisIdi(ULONG phyAddr);
WORD SMC_GetBehavior(void);
void SMC_SetError(WORD errCode);
extern void SMC_ClearError(void);
extern WORD SMC_GetError(void);
void SMC_UpdateBankTable( BYTE bank, BYTE toSram ); // HIS101a-0037
void SMC_BuildBankTable( BYTE bankCount ); // HIS101a-0037
BYTE SMC_CorrectPage(BYTE page, ULONG ramAddr, BYTE doCorrect); // HIS101b-0009
ULONG SMC_Ecc1BitErrCount(void); // HIS101b-0009
//-------------------------------------
//smcdata.h
//-------------------------------------
//-------------------------------------
//smcdef.h
//-------------------------------------
//-------------------------------------
//smcecc.c
//-------------------------------------
void SMC_InitializeEcc(void);
void SMC_CalculateEcc(void);
void SMC_TransformEcc(BYTE unit);
void SMC_TestEcc(void);
//-------------------------------------
//smcecctb.c
//-------------------------------------
//-------------------------------------
//smchw.c
//-------------------------------------
void SMC_HwInitialize(void);
void SMC_InitializeOperation(void);
void SMC_CommandLatchCycle(UCHAR command);
void SMC_IdAddressLatchCycle(void);
void SMC_ReadWriteAddressLatchCycle(ULONG address);
void SMC_EraseAddressLatchCycle(ULONG address);
UCHAR SMC_CheckReady(void);
UCHAR SMC_ReadIdData(void);
BYTE SMC_ReadData2Sram(void); // HIS101b-0009
BYTE SMC_ReadData2Sdram(ULONG ramAddr); // HIS101b-0009
BYTE SMC_ReadData2SramForExt(void); // HIS101b-0009
BYTE SMC_ReadData2Fifo(void); // HIS101b-0009
void SMC_ReadRedunData(void);
void SMC_WriteData(USHORT blockAddress);
void SMC_WriteDataDma(USHORT blockAddress);
void SMC_WriteSdramData(USHORT blockAddress);
UCHAR SMC_ReadStatusData(void);
void SMC_CompleteOperation(void);
void SMC_ReadEcc(void);
void SMC_FillSramData(void);
void B_MD_To_Sdram();
void B_MD_To_Storage();
// 533 start
BYTE SMC_ReadData2UsbDma(void);
void SMC_ReadRedunData2Sram(void);
void SMC_ReadData2DramDma(void);
void SMC_WriteDataFromSram(USHORT blockAddress);
void SMC_WriteDataFromDramDma(USHORT blockAddress);
// 533 end
// wyeo@0514
BYTE NANDF_AccessReserveBlock(BYTE path, BYTE blkNum, BYTE pageNum, BYTE pageCount, ULONG ramAddr);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -