?? mvflash.h
字號:
/*******************************************************************************
*
* Copyright 2003,MARVELL SEMICONDUCTOR ISRAEL, LTD.
* THIS CODE CONTAINS CONFIDENTIAL INFORMATION OF MARVELL.
* NO RIGHTS ARE GRANTED HEREIN UNDER ANY PATENT, MASK WORK RIGHT OR COPYRIGHT
* OF MARVELL OR ANY THIRD PARTY. MARVELL RESERVES THE RIGHT AT ITS SOLE
* DISCRETION TO REQUEST THAT THIS CODE BE IMMEDIATELY RETURNED TO MARVELL.
* THIS CODE IS PROVIDED "AS IS". MARVELL MAKES NO WARRANTIES, EXPRESSED,
* IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, COMPLETENESS OR PERFORMANCE.
*
* MARVELL COMPRISES MARVELL TECHNOLOGY GROUP LTD. (MTGL) AND ITS SUBSIDIARIES,
* MARVELL INTERNATIONAL LTD. (MIL), MARVELL TECHNOLOGY, INC. (MTI), MARVELL
* SEMICONDUCTOR, INC. (MSI), MARVELL ASIA PTE LTD. (MAPL), MARVELL JAPAN K.K.
* (MJKK), MARVELL SEMICONDUCTOR ISRAEL. (MSIL), MARVELL TAIWAN, LTD. AND
* SYSKONNECT GMBH.
*
********************************************************************************
* mvFlash.h - FLASH memory interface header file
*
* DESCRIPTION
* None.
*
* DEPENDENCIES:
* None.
*
*******************************************************************************/
#ifndef __INCmvFlashh
#define __INCmvFlashh
/* Supported Flash Manufactures */
#define AMD_FLASH 0x01
#define ST_FLASH 0x20
#define INTEL_FLASH 0x89
#define MICRON_FLASH 0x89
#define ATMEL_FLASH 0x1F
#define SST_FLASH 0xBF
/* Supported Flash Devices */
/* AMD Devices */
#define AM29F400BT 0x2223
#define AM29F400BB 0x22AB
#define AM29LV800BT 0x22DA
#define AM29LV400BT 0x22B9
#define AM29LV400BB 0x22BA
#define AM29LV040B 0x4f
#define AM29LV160DB 0x2249
#define AM29LV160DT 0x22c4
#define AM29LV001BT 0xED
#define AM29LV001BB 0x6D
/* ST Devices */
#define M29W040 0xE3
/* INTEL Devices - We have added I before the name defintion.*/
#define I28F320J3A 0x16
#define I28F640J3A 0x17
#define I28F128J3A 0x18
#define I28F320B3_B 0x8897
#define I28F320B3_T 0x8896
#define I28F160B3_B 0x8891
#define I28F160B3_T 0x8890
/* ATMEL Devices */
#define AT49LV040 0x13
/* SST_FLASH */
#define SST39VF020 0xD6
#define FLASH_POINTER_TO_FLASH mvFlashParametrs[0]
#define FLASH_BASE_ADDR mvFlashParametrs[1]
#define FLASH_WIDTH mvFlashParametrs[2] /* In Bytes */
#define FLASH_MODE mvFlashParametrs[3] /* In bits */
#define FLASH_MANUFACTOR_ID (FLASH_POINTER_TO_FLASH + 0)
#define FLASH_DEVICE_ID (FLASH_POINTER_TO_FLASH + 1)
#define FLASH_NUMBER_OF_SECTORS (FLASH_POINTER_TO_FLASH + 2)
#define FLASH_FIRST_SECTOR_SIZE (FLASH_POINTER_TO_FLASH + 3)
#define FLASH_NUM_OF_DEVICES (FLASH_WIDTH / (FLASH_MODE / 8))
/* typedefs */
/* typedefs */
typedef enum _bool {false,true} bool;
typedef enum _flashDevMode {PURE8,X8 = 8,X16 = 16} FLASH_DEV_MODE;
/* PURE8 - when using a Flash device whice can be configurated only as
8 bit device. */
/* X8 - when using a Flash device which is 16 bit wide but configured to
operate in 8 bit mode. */
/* X16 - when using a Flash device which is 16 bit wide */
void mvFlashReset(void);
bool mvFlashEraseSector(unsigned long sectorNumber);
unsigned long mvFlashInit (unsigned long flashBaseAddress,
unsigned long flashWidth,
FLASH_DEV_MODE flashMode);
unsigned long mvFlashWriteBlock(unsigned long offset,unsigned long numOfByte,
char * blockAddress);
unsigned long mvFlashReadBlock (unsigned long offset,unsigned long numOfByte,
char * blockAddress);
bool mvFlashWriteWord (unsigned long offset,unsigned long data);
bool mvFlashWriteShort (unsigned long offset,unsigned short sdata);
bool mvFlashWriteChar (unsigned long offset,char cdata);
unsigned long mvFlashReadWord (unsigned long offset);
unsigned char mvFlashReadChar (unsigned long offset);
unsigned short mvFlashReadShort (unsigned long offset);
bool mvFlashErase(void);
unsigned long mvFlashInWhichSector(unsigned long offset);
unsigned long mvFlashGetSectorOffset(unsigned long sectorNum);
unsigned char read8bit(unsigned long offset, unsigned long address);
unsigned short read16bit(unsigned long offset, unsigned long address);
unsigned long read32bit(unsigned long offset, unsigned long address);
void write8bit (unsigned long offset, unsigned long address, unsigned char value);
void write16bit (unsigned long offset, unsigned long address, unsigned short value);
void write32bit (unsigned long offset, unsigned long address, unsigned long value);
/* includes */
/* globals */
#define MV_WRITE_CHAR(offset, address, data) write8bit(offset, address, data)
#define MV_WRITE_SHORT(offset, address, data) write16bit(offset, address, data)
#define MV_WRITE_WORD(offset, address, data) write32bit(offset, address, data)
/* Read 32/16/8 bits NonCacheable - returns data in variable. */
#define MV_READ_CHAR(offset, address, pData) *pData = read8bit(offset, address)
#define MV_READ_SHORT(offset, address, pData) *pData = read16bit(offset, address)
#define MV_READ_WORD(offset, address, pData) *pData = read32bit(offset, address)
/* Read 32/16/8 bit NonCacheable - returns data direct. */
#define MV_READCHAR(offset, address) read8bit(offset, address)
#define MV_READSHORT(offset, address) read16bit(offset, address)
#define MV_READWORD(offset, address) read32bit(offset, address)
#endif /* __INCmvFlashh */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -