34#define EBI0_BASE_ADDR 0x60000000
35#define EBI0_MAX_SIZE 0x400000
37#define EBI0_READ_DATA8(Addr) *((volatile unsigned char *)(EBI0_BASE_ADDR+Addr))
38#define EBI0_WRITE_DATA8(Addr, Data) *((volatile unsigned char *)(EBI0_BASE_ADDR+Addr))=Data
39#define EBI0_READ_DATA16(Addr) *((volatile unsigned short *)(EBI0_BASE_ADDR+Addr))
40#define EBI0_WRITE_DATA16(Addr, Data) *((volatile unsigned short *)(EBI0_BASE_ADDR+Addr))=Data
41#define EBI0_READ_DATA32(Addr) *((volatile unsigned int *)(EBI0_BASE_ADDR+Addr))
42#define EBI0_WRITE_DATA32(Addr, Data) *((volatile unsigned int *)(EBI0_BASE_ADDR+Addr))=Data
45#define EBI1_BASE_ADDR 0x64000000
46#define EBI1_MAX_SIZE 0x400000
48#define EBI1_READ_DATA8(Addr) *((volatile unsigned char *)(EBI1_BASE_ADDR+Addr))
49#define EBI1_WRITE_DATA8(Addr, Data) *((volatile unsigned char *)(EBI1_BASE_ADDR+Addr))=Data
50#define EBI1_READ_DATA16(Addr) *((volatile unsigned short *)(EBI1_BASE_ADDR+Addr))
51#define EBI1_WRITE_DATA16(Addr, Data) *((volatile unsigned short *)(EBI1_BASE_ADDR+Addr))=Data
52#define EBI1_READ_DATA32(Addr) *((volatile unsigned int *)(EBI1_BASE_ADDR+Addr))
53#define EBI1_WRITE_DATA32(Addr, Data) *((volatile unsigned int *)(EBI1_BASE_ADDR+Addr))=Data
56#define EBI2_BASE_ADDR 0x68000000
57#define EBI2_MAX_SIZE 0x400000
59#define EBI2_READ_DATA8(Addr) *((volatile unsigned char *)(EBI2_BASE_ADDR+Addr))
60#define EBI2_WRITE_DATA8(Addr, Data) *((volatile unsigned char *)(EBI2_BASE_ADDR+Addr))=Data
61#define EBI2_READ_DATA16(Addr) *((volatile unsigned short *)(EBI2_BASE_ADDR+Addr))
62#define EBI2_WRITE_DATA16(Addr, Data) *((volatile unsigned short *)(EBI2_BASE_ADDR+Addr))=Data
63#define EBI2_READ_DATA32(Addr) *((volatile unsigned int *)(EBI2_BASE_ADDR+Addr))
64#define EBI2_WRITE_DATA32(Addr, Data) *((volatile unsigned int *)(EBI2_BASE_ADDR+Addr))=Data
67#define EBI3_BASE_ADDR 0x6C000000
68#define EBI3_MAX_SIZE 0x400000
70#define EBI3_READ_DATA8(Addr) *((volatile unsigned char *)(EBI3_BASE_ADDR+Addr))
71#define EBI3_WRITE_DATA8(Addr, Data) *((volatile unsigned char *)(EBI3_BASE_ADDR+Addr))=Data
72#define EBI3_READ_DATA16(Addr) *((volatile unsigned short *)(EBI3_BASE_ADDR+Addr))
73#define EBI3_WRITE_DATA16(Addr, Data) *((volatile unsigned short *)(EBI3_BASE_ADDR+Addr))=Data
74#define EBI3_READ_DATA32(Addr) *((volatile unsigned int *)(EBI3_BASE_ADDR+Addr))
75#define EBI3_WRITE_DATA32(Addr, Data) *((volatile unsigned int *)(EBI3_BASE_ADDR+Addr))=Data
85#define EBI_CS_ACTIVE_HIGH 1
86#define EBI_CS_ACTIVE_LOW 0
89#define EBI_BUSWIDTH_8BIT 8
90#define EBI_BUSWIDTH_16BIT 16
93#define EBI_SEPARATEMODE_ENABLE 0x1
94#define EBI_SEPARATEMODE_DISABLE 0
97#define EBI_MCLKDIV_1 0
98#define EBI_MCLKDIV_2 0x1
99#define EBI_MCLKDIV_4 0x2
100#define EBI_MCLKDIV_8 0x3
101#define EBI_MCLKDIV_16 0x4
102#define EBI_MCLKDIV_32 0x5
104#define EBI_TIMING_FASTEST 0x0
105#define EBI_TIMING_VERYFAST 0x1
106#define EBI_TIMING_FAST 0x2
107#define EBI_TIMING_NORMAL 0x3
108#define EBI_TIMING_SLOW 0x4
109#define EBI_TIMING_VERYSLOW 0x5
110#define EBI_TIMING_SLOWEST 0x6
118void EBI_Open(uint32_t u32Bank, uint32_t u32DataWidth, uint32_t u32TimingClass, uint32_t u32BusMode, uint32_t u32CSActiveLevel);
120void EBI_SetBusTiming(uint32_t u32Bank, uint32_t u32TimingConfig, uint32_t u32MclkDiv);
void EBI_EnableCrypto(uint32_t u32Bank, uint32_t *u32Key)
Enable encrypt/decrypt function and set key for EBI bank 0~3.
void EBI_Close(uint32_t u32Bank)
Disable EBI for bank 0~3.
void EBI_Open(uint32_t u32Bank, uint32_t u32DataWidth, uint32_t u32TimingClass, uint32_t u32BusMode, uint32_t u32CSActiveLevel)
Initialize EBI for Bank 0~3.
void EBI_SetBusTiming(uint32_t u32Bank, uint32_t u32TimingConfig, uint32_t u32MclkDiv)
Set EBI bus timings.
void EBI_DisbleCrypto(uint32_t u32Bank)
Disable encrypt/decrypt function for EBI bank 0~3.