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

📄 flash_nand_parts.h

📁 某个ARM9板子的实际bootloader 对裁剪
💻 H
字号:
#ifndef _FLASH_NAND_PARTS_H#define _FLASH_NAND_PARTS_H#define FLASH_DEBUG  0#define FLASHWORD(x)			(x & 0xff)//----------------------------------------------------------------------------// Common device details.#define FLASH_Read_ID                   FLASHWORD(0x90)#define FLASH_Reset                     FLASHWORD(0xFF)#define FLASH_Read_Mode1                FLASHWORD(0x00)#define FLASH_Read_Mode2                FLASHWORD(0x01)#define FLASH_Read_Mode3                FLASHWORD(0x50)#define FLASH_Program                   FLASHWORD(0x10)#define FLASH_Send_Data                 FLASHWORD(0x80)#define FLASH_Status                    FLASHWORD(0x70)#define FLASH_Block_Erase               FLASHWORD(0x60)#define FLASH_Start_Erase               FLASHWORD(0xD0)//#define CYGNUM_FLASH_ID_MANUFACTURER    FLASHWORD(0x98)#define CYGNUM_FLASH_VENDOR_TOSHIBA    FLASHWORD(0x98)#define CYGNUM_FLASH_VENDOR_SAMSUNG    FLASHWORD(0xec)//--> storlink define#define	FLASH_WORD_ID		        0x00000000#define	FLASH_STATUS		        0x00000008#define	FLASH_TYPE		        0x0000000C#define	NFLASH_ACCESS		        0x00000030#define	NFLASH_COUNT		        0x00000034#define	NFLASH_COMMAND_ADDRESS         	0x00000038#define	NFLASH_ADDRESS            	0x0000003C#define	NFLASH_DATA		        0x00000040#define	NFLASH_TIMING 	            	0x0000004C   #define	NFLASH_ECC_STATUS		0x00000050#define	NFLASH_ECC_CONTROL		0x00000054#define	NFLASH_ECC_OOB			0x0000005c#define	NFLASH_ECC_CODE_GEN0		0x00000060#define	NFLASH_ECC_CODE_GEN1		0x00000064#define	NFLASH_ECC_CODE_GEN2		0x00000068#define	NFLASH_ECC_CODE_GEN3		0x0000006C#define	NFLASH_FIFO_CONTROL		0x00000070#define	NFLASH_FIFO_STATUS		0x00000074#define	NFLASH_FIFO_ADDRESS		0x00000078#define	NFLASH_FIFO_DATA		0x0000007c#define NFLASH_CHIP0_EN            	0x00000000  // 16th bit = 0#define NFLASH_CHIP1_EN            	0x00010000  // 16th bit = 1#define	NFLASH_WiDTH8              	0x00000000#define	NFLASH_WiDTH16             	0x00000400#define	NFLASH_WiDTH32             	0x00000800#define	NFLASH_DIRECT              	0x00004000 //0x00004000 0x00044000#define	NFLASH_INDIRECT            	0x00000000/* DMA Registers */#define	DMA_MAIN_CFG 		   		0x00000024#define	DMA_INT_TC_CLR				0x00000008#define	DMA_TC						0x00000014#define	DMA_CH0_CSR    				0x00000100#define	DMA_CH0_CFG    				0x00000104#define	DMA_CH0_SRC_ADDR    		0x00000108#define	DMA_CH0_DST_ADDR    		0x0000010c#define	DMA_CH0_LLP    				0x00000110#define	DMA_CH0_SIZE    			0x00000114#define PASS	   1#define FAIL       2#define ECCERROR   3#define Sequential_Data_Input_cmd  0x80#define Read1_cmd    0x00#define Read2_cmd    0x50#define ReadID_cmd   0x90#define Reset_cmd    0xff#define Page_Program_cmd  0x10#define Block_Erase_cmd   0x60#define Block_Erase_Confirm_cmd  0xd0#define Read_Status_cmd   0x70#define FLASH_INTERLEAVE 1// <--//typedef unsigned long long UINT64;typedef struct flash_dev_info {    UINT8	device_id;    UINT32	block_size;    UINT32	page_size;    UINT32  block_count;    UINT32  base_mask;    UINT32  device_size;} flash_dev_info_t;static const flash_dev_info_t supported_devices[] = {{  // 8Mb (1MB)    device_id  : FLASHWORD(0x6e),    block_size : 0x1000 * FLASH_INTERLEAVE,    page_size  : 0x100 * FLASH_INTERLEAVE,    block_count: 256,    device_size: 0x100000 * FLASH_INTERLEAVE,    base_mask  : ~(0x100000 * FLASH_INTERLEAVE - 1),},{  // 8Mb (1MB)    device_id  : FLASHWORD(0xec),    block_size : 0x1000 * FLASH_INTERLEAVE,    page_size  : 0x100 * FLASH_INTERLEAVE,    block_count: 256,    device_size: 0x100000 * FLASH_INTERLEAVE,    base_mask  : ~(0x100000 * FLASH_INTERLEAVE - 1),},{  // 16Mb (2MB)    device_id  : FLASHWORD(0xea),    block_size : 0x1000 * FLASH_INTERLEAVE,    page_size  : 0x100 * FLASH_INTERLEAVE,    block_count: 512,    device_size: 0x200000 * FLASH_INTERLEAVE,    base_mask  : ~(0x200000 * FLASH_INTERLEAVE - 1),},{  // 16Mb (2MB)    device_id  : FLASHWORD(0x64),    block_size : 0x1000 * FLASH_INTERLEAVE,    page_size  : 0x100 * FLASH_INTERLEAVE,    block_count: 512,    device_size: 0x200000 * FLASH_INTERLEAVE,    base_mask  : ~(0x200000 * FLASH_INTERLEAVE - 1),},{  // 32Mb (4MB)    device_id  : FLASHWORD(0xe3),    block_size : 0x2000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 512,    device_size: 0x400000 * FLASH_INTERLEAVE,    base_mask  : ~(0x400000 * FLASH_INTERLEAVE - 1),},{  // 32Mb (4MB)    device_id  : FLASHWORD(0xe5),    block_size : 0x2000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 512,    device_size: 0x400000 * FLASH_INTERLEAVE,    base_mask  : ~(0x400000 * FLASH_INTERLEAVE - 1),},{  // 32Mb (4MB)    device_id  : FLASHWORD(0x6b),    block_size : 0x2000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 512,    device_size: 0x400000 * FLASH_INTERLEAVE,    base_mask  : ~(0x400000 * FLASH_INTERLEAVE - 1),},{  // 64Mb (8MB)    device_id  : FLASHWORD(0xe6),    block_size : 0x2000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 1024,    device_size: 0x800000 * FLASH_INTERLEAVE,    base_mask  : ~(0x800000 * FLASH_INTERLEAVE - 1),},{  // 64Mb (8MB)    device_id  : FLASHWORD(0x6d),    block_size : 0x2000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 1024,    device_size: 0x800000 * FLASH_INTERLEAVE,    base_mask  : ~(0x800000 * FLASH_INTERLEAVE - 1),},{  // 64Mb (8MB)    device_id  : FLASHWORD(0x70),    block_size : 0x2000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 1024,    device_size: 0x800000 * FLASH_INTERLEAVE,    base_mask  : ~(0x800000 * FLASH_INTERLEAVE - 1),},{  // 64Mb (8MB)    device_id  : FLASHWORD(0x39),    block_size : 0x2000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 1024,    device_size: 0x800000 * FLASH_INTERLEAVE,    base_mask  : ~(0x800000 * FLASH_INTERLEAVE - 1),},{  // 128Mb (16MB)    device_id  : FLASHWORD(0x73),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 1024,    device_size: 0x1000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x1000000 * FLASH_INTERLEAVE - 1),},{  // 128Mb (16MB)    device_id  : FLASHWORD(0xf2),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 1024,    device_size: 0x1000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x1000000 * FLASH_INTERLEAVE - 1),},{  // 128Mb (16MB)    device_id  : FLASHWORD(0x33),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 1024,    device_size: 0x1000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x1000000 * FLASH_INTERLEAVE - 1),},{  // 128Mb (16MB)    device_id  : FLASHWORD(0x53),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 1024,    device_size: 0x1000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x1000000 * FLASH_INTERLEAVE - 1),},{  // 256Mb (32MB)    device_id  : FLASHWORD(0xf4),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 2048,    device_size: 0x2000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x2000000 * FLASH_INTERLEAVE - 1),},{  // 256Mb (32MB)    device_id  : FLASHWORD(0x75),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 2048,    device_size: 0x2000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x2000000 * FLASH_INTERLEAVE - 1),},{  // 256Mb (32MB)    device_id  : FLASHWORD(0x35),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 2048,    device_size: 0x2000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x2000000 * FLASH_INTERLEAVE - 1),},{  // 256Mb (32MB)    device_id  : FLASHWORD(0x45),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 2048,    device_size: 0x2000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x2000000 * FLASH_INTERLEAVE - 1),},{  // 256Mb (32MB)    device_id  : FLASHWORD(0x55),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 2048,    device_size: 0x2000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x2000000 * FLASH_INTERLEAVE - 1),},{  // 512Mb (64MB)    device_id  : FLASHWORD(0xf7),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 4096,    device_size: 0x4000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x4000000 * FLASH_INTERLEAVE - 1),},{  // 512Mb (64MB)    device_id  : FLASHWORD(0x76),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 4096,    device_size: 0x4000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x4000000 * FLASH_INTERLEAVE - 1),},{  // 512Mb (64MB)    device_id  : FLASHWORD(0x36),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 4096,    device_size: 0x4000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x4000000 * FLASH_INTERLEAVE - 1),},{  // 512Mb (64MB)    device_id  : FLASHWORD(0x56),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 4096,    device_size: 0x4000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x4000000 * FLASH_INTERLEAVE - 1),},{  // 1024Mb (128MB) small page    device_id  : FLASHWORD(0xf8),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 8192,    device_size: 0x8000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x8000000 * FLASH_INTERLEAVE - 1),},{  // 1024Mb (128MB) small page    device_id  : FLASHWORD(0x79),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 8192,    device_size: 0x8000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x8000000 * FLASH_INTERLEAVE - 1),},{  // 1024Mb (128MB) small page    device_id  : FLASHWORD(0x78),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 8192,    device_size: 0x8000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x8000000 * FLASH_INTERLEAVE - 1),},{  // 1024Mb (128MB) small page    device_id  : FLASHWORD(0x74),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 8192,    device_size: 0x8000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x8000000 * FLASH_INTERLEAVE - 1),},{  // 1024Mb (128MB) small page    device_id  : FLASHWORD(0xb1),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 8192,    device_size: 0x8000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x8000000 * FLASH_INTERLEAVE - 1),},{  // 1024Mb (128MB) small page    device_id  : FLASHWORD(0xc1),    block_size : 0x4000 * FLASH_INTERLEAVE,    page_size  : 0x200 * FLASH_INTERLEAVE,    block_count: 8192,    device_size: 0x8000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x8000000 * FLASH_INTERLEAVE - 1),},{  // 1024Mb (128MB) large page    device_id  : FLASHWORD(0xA1),    block_size : 0x20000 * FLASH_INTERLEAVE,    page_size  : 0x800 * FLASH_INTERLEAVE,    block_count: 1024,    device_size: 0x8000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x8000000 * FLASH_INTERLEAVE - 1),},{  // 1024Mb (128MB) large page    device_id  : FLASHWORD(0xf1),    block_size : 0x20000 * FLASH_INTERLEAVE,    page_size  : 0x800 * FLASH_INTERLEAVE,    block_count: 1024,    device_size: 0x8000000 * FLASH_INTERLEAVE,    base_mask  : ~(0x8000000 * FLASH_INTERLEAVE - 1),},};void flash_delay(void);#endif // ifndef CYGONCE_DEVS_FLASH_TOSHIBA_TC58XXX_PARTS_INL

⌨️ 快捷键说明

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