⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataflash.h

📁 u-boot-1.1.6 源码包
💻 H
字号:
/* * (C) Copyright 2003 * Data Flash Atmel Description File * Author : Hamid Ikdoumi (Atmel) * * See file CREDITS for list of people who contributed to this * project. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA *//* File Name		: dataflash.h					*//* Object		: Data Flash Atmel Description File		*//* Translator		:						*//*									*//* 1.0 03/04/01 HI	: Creation					*//* 1.2 20/10/02 FB	: Adapatation Service and Lib v3		*//*----------------------------------------------------------------------*/#ifndef _DataFlash_h#define _DataFlash_h#include <asm/arch/hardware.h>#include "config.h"/*number of protected area*/#define NB_DATAFLASH_AREA	4/*define the area structure*/typedef struct {	unsigned long start;	unsigned long end;	unsigned char protected;} dataflash_protect_t;typedef unsigned int AT91S_DataFlashStatus;/*----------------------------------------------------------------------*//* DataFlash Structures							*//*----------------------------------------------------------------------*//*---------------------------------------------*//* DataFlash Descriptor Structure Definition   *//*---------------------------------------------*/typedef struct _AT91S_DataflashDesc {	unsigned char *tx_cmd_pt;	unsigned int tx_cmd_size;	unsigned char *rx_cmd_pt;	unsigned int rx_cmd_size;	unsigned char *tx_data_pt;	unsigned int tx_data_size;	unsigned char *rx_data_pt;	unsigned int rx_data_size;	volatile unsigned char state;	volatile unsigned char DataFlash_state;	unsigned char command[8];} AT91S_DataflashDesc, *AT91PS_DataflashDesc;/*---------------------------------------------*//* DataFlash device definition structure       *//*---------------------------------------------*/typedef struct _AT91S_Dataflash {	int pages_number;			/* dataflash page number */	int pages_size;				/* dataflash page size */	int page_offset;			/* page offset in command */	int byte_mask;				/* byte mask in command */	int cs;	dataflash_protect_t area_list[NB_DATAFLASH_AREA]; /* area protection status */} AT91S_DataflashFeatures, *AT91PS_DataflashFeatures;/*---------------------------------------------*//* DataFlash Structure Definition	       *//*---------------------------------------------*/typedef struct _AT91S_DataFlash {	AT91PS_DataflashDesc pDataFlashDesc;	/* dataflash descriptor */	AT91PS_DataflashFeatures pDevice;	/* Pointer on a dataflash features array */} AT91S_DataFlash, *AT91PS_DataFlash;typedef struct _AT91S_DATAFLASH_INFO {	AT91S_DataflashDesc Desc;	AT91S_DataflashFeatures Device; /* Pointer on a dataflash features array */	unsigned long logical_address;	unsigned int id;			/* device id */} AT91S_DATAFLASH_INFO, *AT91PS_DATAFLASH_INFO;/*-------------------------------------------------------------------------------------------------*/#define AT45DB161	0x2c#define AT45DB321	0x34#define AT45DB642	0x3c#define AT45DB128	0x10#define AT91C_DATAFLASH_TIMEOUT		10000	/* For AT91F_DataFlashWaitReady *//* DataFlash return value */#define DATAFLASH_BUSY			0x00#define DATAFLASH_OK			0x01#define DATAFLASH_ERROR			0x02#define DATAFLASH_MEMORY_OVERFLOW	0x03#define DATAFLASH_BAD_COMMAND		0x04#define DATAFLASH_BAD_ADDRESS		0x05/* Driver State */#define IDLE		0x0#define BUSY		0x1#define ERROR		0x2/* DataFlash Driver State */#define GET_STATUS	0x0F/*-------------------------------------------------------------------------------------------------*//* Command Definition										   *//*-------------------------------------------------------------------------------------------------*//* READ COMMANDS */#define DB_CONTINUOUS_ARRAY_READ	0xE8	/* Continuous array read */#define DB_BURST_ARRAY_READ		0xE8	/* Burst array read */#define DB_PAGE_READ			0xD2	/* Main memory page read */#define DB_BUF1_READ			0xD4	/* Buffer 1 read */#define DB_BUF2_READ			0xD6	/* Buffer 2 read */#define DB_STATUS			0xD7	/* Status Register *//* PROGRAM and ERASE COMMANDS */#define DB_BUF1_WRITE			0x84	/* Buffer 1 write */#define DB_BUF2_WRITE			0x87	/* Buffer 2 write */#define DB_BUF1_PAGE_ERASE_PGM		0x83	/* Buffer 1 to main memory page program with built-In erase */#define DB_BUF1_PAGE_ERASE_FASTPGM	0x93	/* Buffer 1 to main memory page program with built-In erase, Fast program */#define DB_BUF2_PAGE_ERASE_PGM		0x86	/* Buffer 2 to main memory page program with built-In erase */#define DB_BUF2_PAGE_ERASE_FASTPGM	0x96	/* Buffer 1 to main memory page program with built-In erase, Fast program */#define DB_BUF1_PAGE_PGM		0x88	/* Buffer 1 to main memory page program without built-In erase */#define DB_BUF1_PAGE_FASTPGM		0x98	/* Buffer 1 to main memory page program without built-In erase, Fast program */#define DB_BUF2_PAGE_PGM		0x89	/* Buffer 2 to main memory page program without built-In erase */#define DB_BUF2_PAGE_FASTPGM		0x99	/* Buffer 1 to main memory page program without built-In erase, Fast program */#define DB_PAGE_ERASE			0x81	/* Page Erase */#define DB_BLOCK_ERASE			0x50	/* Block Erase */#define DB_PAGE_PGM_BUF1		0x82	/* Main memory page through buffer 1 */#define DB_PAGE_FASTPGM_BUF1		0x92	/* Main memory page through buffer 1, Fast program */#define DB_PAGE_PGM_BUF2		0x85	/* Main memory page through buffer 2 */#define DB_PAGE_FastPGM_BUF2		0x95	/* Main memory page through buffer 2, Fast program *//* ADDITIONAL COMMANDS */#define DB_PAGE_2_BUF1_TRF		0x53	/* Main memory page to buffer 1 transfert */#define DB_PAGE_2_BUF2_TRF		0x55	/* Main memory page to buffer 2 transfert */#define DB_PAGE_2_BUF1_CMP		0x60	/* Main memory page to buffer 1 compare */#define DB_PAGE_2_BUF2_CMP		0x61	/* Main memory page to buffer 2 compare */#define DB_AUTO_PAGE_PGM_BUF1		0x58	/* Auto page rewrite throught buffer 1 */#define DB_AUTO_PAGE_PGM_BUF2		0x59	/* Auto page rewrite throught buffer 2 *//*-------------------------------------------------------------------------------------------------*/extern int size_dataflash (AT91PS_DataFlash pdataFlash, unsigned long addr, unsigned long size);extern int prot_dataflash (AT91PS_DataFlash pdataFlash, unsigned long addr);extern int dataflash_real_protect (int flag, unsigned long start_addr, unsigned long end_addr);extern int addr_dataflash (unsigned long addr);extern int read_dataflash (unsigned long addr, unsigned long size, char *result);extern int write_dataflash (unsigned long addr, unsigned long dest, unsigned long size);extern void dataflash_print_info (void);extern void dataflash_perror (int err);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -