📄 flash.h
字号:
#ifndef FLASH_LIB_H#define FLASH_LIB_H#include <common.h>/* PIO operations max */#define FLASH_PROGRAM_POLLS 100000/* 10 Seconds default */#define FLASH_ERASE_SECTOR_TIMEOUT (10*1000 /*SEC*/ )/* Flash device info structure */typedef struct flash_dev_s { char name[24]; /* Bank Name */ int bank; /* Bank 0 or 1 */ unsigned int base; /* Base address */ int sectors; /* Sector count */ int lgSectorSize; /* Log2(usable bytes/sector) */ int vendorID; /* Expected vendor ID */ int deviceID; /* Expected device ID */ int found; /* Set if found by flashLibInit */ int swap; /* Set for bank 1 if byte swap req'd */} flash_dev_t;#define FLASH_MAX_POS(dev) \ ((dev)->sectors << (dev)->lgSectorSize)#define FLASH_SECTOR_POS(dev, sector) \ ((sector) << (dev)->lgSectorSize)/* AMD 29F040 */#define FLASH0_BANK 0#define FLASH0_VENDOR_ID 0x01#define FLASH0_DEVICE_ID 0x49/* AMD29LV160DB */#define FLASH1_BANK 1#define FLASH1_VENDOR_ID 0x0001#define FLASH1_DEVICE_ID 0x2249extern flash_dev_t flashDev[];extern int flashDevCount;/* * Device pointers * * These must be kept in sync with the table in flashLib.c. */#define FLASH_DEV_BANK0_SA0 (&flashDev[0])#define FLASH_DEV_BANK0_SA1 (&flashDev[1])#define FLASH_DEV_BANK0_SA2 (&flashDev[2])#define FLASH_DEV_BANK0_LOW (&flashDev[3]) /* 960K */#define FLASH_DEV_BANK0_BOOT (&flashDev[4]) /* PLCC */#define FLASH_DEV_BANK0_HIGH (&flashDev[5]) /* 512K PLCC shadow */unsigned long flash_init(void);int flashEraseSector(flash_dev_t *dev, int sector);int flashErase(flash_dev_t *dev);int flashRead(flash_dev_t *dev, int pos, char *buf, int len);int flashWrite(flash_dev_t *dev, int pos, char *buf, int len);int flashWritable(flash_dev_t *dev, int pos, int len);int flashDiag(flash_dev_t *dev);int flashDiagAll(void);ulong flash_get_size (vu_long *addr, flash_info_t *info);void flash_print_info (flash_info_t *info);int flash_erase (flash_info_t *info, int s_first, int s_last);int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt);/* * Flash info indices. */#define FLASH_BANK_KERNEL 0#define FLASH_BANK_BOOT 1#define FLASH_BANK_AUX 2#define FIRST_SECTOR 0#endif /* !FLASH_LIB_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -