#ifndef _spi_h #define _spi_h #include #include #include #include "drv_spi_flashalloc_external.h" #if (CONFIG_CHIPID != 0x330) #ifdef CONFIG_SUPPORT_DEBUG_MESSAGE #define SPI_DBG 1 #else #define SPI_DBG 0 #endif #if SPI_DBG #define DBG_SPI( args... ) printf( args ) #else #define DBG_SPI( args... ) #endif #endif #define SPI_OPERATION 0xbe0a0020 #define SPI_ADDR_START 0xbe0a0040 #define SPI_DRAM_ADDR 0xbe0a0060 #define SPI_STATUS 0xbe0a0080 #define DFLASH_ADDRBASE 0xbf000000 #define SPIDMA_CPYSIZE (0x100) /* 256 byte per SPI-DMA action */ #define SPIDMA_MAXSIZE (0x400000) /* Max-size for SPI-DMA action */ #define TAG_LENGTH 12 #define Max_BINsz_SP 16384 //16M typedef struct _mtab_array_s { char sys_tag[TAG_LENGTH]; /* ascii */ unsigned int size; unsigned int addr; }mtab_array_s; #define boot_flashaddr 0x9c000000 #define boot_flashsizeaddr 0x9c000008 #define option_flashaddr Transform_addr(0x9c000000+SPI_OPTION_DATA_ADDR) #define Option_IRset_flashaddr (option_flashaddr + 72) // 0~71 Aus GPIO table extern u32 Transform_addr(u32 addr); extern void spi_dma_read(char *dest, char *source, unsigned int size); extern bool spi_dmawrite(unsigned int dest, unsigned int src, unsigned int size); extern int spi_erase(unsigned int addr, int erase_size); #endif //_spi_h