307 lines
17 KiB
C
307 lines
17 KiB
C
#ifndef __FLASHPARTITION_H__
|
|
#define __FLASHPARTITION_H__
|
|
|
|
/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
|
|
|
|
FlashPartition.h
|
|
|
|
|
|
GENERAL DESCRIPTION
|
|
|
|
This file is for FLash layout.
|
|
|
|
EXTERNALIZED FUNCTIONS
|
|
|
|
INITIALIZATION AND SEQUENCING REQUIREMENTS
|
|
|
|
Copyright (c) 2013 by Marvell, Incorporated. All Rights Reserved.
|
|
*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
|
|
|
|
*===========================================================================
|
|
|
|
EDIT HISTORY FOR MODULE
|
|
|
|
This section contains comments describing changes made to the module.
|
|
Notice that changes are listed in reverse chronological order.
|
|
|
|
|
|
when who what, where, why
|
|
-------- ------ ----------------------------------------------------------
|
|
03/18/2013 zhoujin Created module
|
|
===========================================================================*/
|
|
|
|
/*===========================================================================
|
|
|
|
LOCAL MACRP DEFINITIONS FOR MODULE
|
|
|
|
===========================================================================*/
|
|
|
|
/* The nand sector size */
|
|
#define NAND_SECTOR_SIZE 512
|
|
|
|
/* The nand sector shit bit */
|
|
#define FLASH_SECTOR_BITSHIFT 9
|
|
|
|
/* The unused flash address */
|
|
#define UNUSED 0xFFFFFFFF
|
|
|
|
/*===========================================================================
|
|
|
|
TYPE DEFINITIONS FOR MODULE
|
|
|
|
===========================================================================*/
|
|
#if 0
|
|
/*Flash Zone IDs*/
|
|
typedef enum
|
|
{
|
|
FLASHZONE_LUN_0 = 0,
|
|
FLASHZONE_LUN_1 = 1,
|
|
FLASHZONE_LUN_2 = 2,
|
|
FLASHZONE_LUN_MAX = 0x7FFFFFFF
|
|
} FLASH_ZoneID;
|
|
#endif
|
|
/* Flash block cache type. */
|
|
typedef struct FlashBlkCacheType
|
|
{
|
|
unsigned int blocknum;
|
|
unsigned int dirty;
|
|
unsigned char *BlockBuf;
|
|
} FlashBlkCacheType;
|
|
|
|
/* Flash partition struct. */
|
|
typedef struct FlashLayoutConfInfo {
|
|
unsigned int OBMStartAddress;
|
|
unsigned int OBMEndAddress;
|
|
unsigned int CPStartAddress;
|
|
unsigned int CPEndAddress;
|
|
unsigned int MSAStartAddress;
|
|
unsigned int MSAEndAddress;
|
|
unsigned int MRDStartAddress;
|
|
unsigned int WEBStartAddress;
|
|
unsigned int WEBEndAddress;
|
|
unsigned int WIFIFirmAddress;
|
|
unsigned int WIFICalFirmAddress;
|
|
unsigned int PORRFStartAddress;
|
|
unsigned int PORRFEndAddress;
|
|
unsigned int SbliStartAddress;
|
|
unsigned int MoggStartAddress;
|
|
unsigned int ParaStartAddress;
|
|
unsigned int APNListStartAddress;
|
|
unsigned int FSysMapTabAddress;
|
|
unsigned int FATStartAddress;
|
|
unsigned int FATEndAddress;
|
|
unsigned int PSMStartAddress;
|
|
unsigned int PSMEndAddress;
|
|
unsigned int BackupPSMStartAddress;
|
|
unsigned int BackupPSMEndAddress;
|
|
unsigned int FlashFsysAddress;
|
|
unsigned int MSC0StartAddress;
|
|
unsigned int MSC0EndAddress;
|
|
unsigned int MSC1StartAddress;
|
|
unsigned int MSC1EndAddress;
|
|
unsigned int MSC2StartAddress;
|
|
unsigned int MSC2EndAddress;
|
|
unsigned int FBFStartAddress;
|
|
unsigned int FBFEndAddress;
|
|
} FlashLayoutConfInfo;
|
|
|
|
/* block properties */
|
|
typedef struct FlashBlockProperties
|
|
{
|
|
unsigned int SectorMaxCount;
|
|
unsigned int FlashBlockSize;
|
|
unsigned int MapTabStartBlock;
|
|
unsigned int FatSysStartBlock;
|
|
unsigned int FatSysEndBlock;
|
|
unsigned int FatSysResvBlock;
|
|
unsigned int BlockCacheCount;
|
|
FlashBlkCacheType * BlockCacheArray;
|
|
} FlashBlockProperties;
|
|
|
|
/*===========================================================================
|
|
|
|
EXTERN DECLARATIONS FOR MODULE
|
|
|
|
===========================================================================*/
|
|
|
|
/*===========================================================================
|
|
|
|
EXTERN FUNCTION DECLARATIONS
|
|
|
|
===========================================================================*/
|
|
/*************************************************************************/
|
|
/* */
|
|
/* FUNCTION */
|
|
/* */
|
|
/* GetFlashLayoutConfig */
|
|
/* */
|
|
/* DESCRIPTION */
|
|
/* */
|
|
/* The function get the configuration of flash layout. */
|
|
/* */
|
|
/* CALLED BY */
|
|
/* */
|
|
/* Application */
|
|
/* */
|
|
/* CALLS */
|
|
/* */
|
|
/* Application The application function */
|
|
/* */
|
|
/* INPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/* OUTPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/*************************************************************************/
|
|
FlashLayoutConfInfo *GetFlashLayoutConfig(void);
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* FUNCTION */
|
|
/* */
|
|
/* GetFlashBlockProperties */
|
|
/* */
|
|
/* DESCRIPTION */
|
|
/* */
|
|
/* The function get the block properties. */
|
|
/* */
|
|
/* CALLED BY */
|
|
/* */
|
|
/* Application */
|
|
/* */
|
|
/* CALLS */
|
|
/* */
|
|
/* Application The application function */
|
|
/* */
|
|
/* INPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/* OUTPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/*************************************************************************/
|
|
FlashBlockProperties *GetFlashBlockProperties(void);
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* FUNCTION */
|
|
/* */
|
|
/* FlashLayoutConfigure */
|
|
/* */
|
|
/* DESCRIPTION */
|
|
/* */
|
|
/* The function initialize flash layout configuration. */
|
|
/* */
|
|
/* CALLED BY */
|
|
/* */
|
|
/* Application */
|
|
/* */
|
|
/* CALLS */
|
|
/* */
|
|
/* Application The application function */
|
|
/* */
|
|
/* INPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/* OUTPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/*************************************************************************/
|
|
void FlashLayoutConfigure(void);
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* FUNCTION */
|
|
/* */
|
|
/* FlashInitBlockProperties */
|
|
/* */
|
|
/* DESCRIPTION */
|
|
/* */
|
|
/* The function initialize flash block properties. */
|
|
/* */
|
|
/* CALLED BY */
|
|
/* */
|
|
/* Application */
|
|
/* */
|
|
/* CALLS */
|
|
/* */
|
|
/* Application The application function */
|
|
/* */
|
|
/* INPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/* OUTPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/*************************************************************************/
|
|
void FlashInitBlockProperties(void);
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* FUNCTION */
|
|
/* */
|
|
/* CheckIf32MNOR */
|
|
/* */
|
|
/* DESCRIPTION */
|
|
/* */
|
|
/* If Manfactur ID = 0xXX19, this is 32M Nor Flash. */
|
|
/* */
|
|
/* CALLED BY */
|
|
/* */
|
|
/* Application */
|
|
/* */
|
|
/* CALLS */
|
|
/* */
|
|
/* Application The application function */
|
|
/* */
|
|
/* INPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/* OUTPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/*************************************************************************/
|
|
BOOL CheckIf32MNOR(void);
|
|
|
|
/*************************************************************************/
|
|
/* */
|
|
/* FUNCTION */
|
|
/* */
|
|
/* DumpFileToSDEnable */
|
|
/* */
|
|
/* DESCRIPTION */
|
|
/* */
|
|
/* This function check whether dump bin to sd card is enbale or not.*/
|
|
/* */
|
|
/* CALLED BY */
|
|
/* */
|
|
/* Application */
|
|
/* */
|
|
/* CALLS */
|
|
/* */
|
|
/* Application The application function */
|
|
/* */
|
|
/* INPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/* OUTPUTS */
|
|
/* */
|
|
/* None N/A */
|
|
/* */
|
|
/*************************************************************************/
|
|
BOOL DumpFileToSDEnable(void);
|
|
|
|
#endif /*__FLASHPARTITION_H__*/
|