?? seed_dec5502.gel
字號:
/*******************************************************************************/
//
// Filename: GEL file for SEED_DEC5502
//
//******************************************************************************/
/*************************************************/
/* EMIF REGISTERS */
/*************************************************/
#define EMIF_GCTL1 0x800
#define EMIF_GCTL2 0x801
#define EMIF_CE11 0x802
#define EMIF_CE12 0x803
#define EMIF_CE01 0x804
#define EMIF_CE02 0x805
#define EMIF_CE21 0x808
#define EMIF_CE22 0x809
#define EMIF_CE31 0x80A
#define EMIF_CE32 0x80B
#define EMIF_SDCNT1 0x80C
#define EMIF_SDCNT2 0x80D
#define EMIF_SDREF1 0x80E
#define EMIF_SDREF2 0x80F
#define EMIF_SDEXT1 0x810
#define EMIF_SDEXT2 0x811
#define EMIF_CE1SECCTL1 0x822
#define EMIF_CE1SECCTL2 0x823
#define EMIF_CE0SECCTL1 0x824
#define EMIF_CE0SECCTL2 0x825
#define EMIF_CE2SECCTL1 0x828
#define EMIF_CE2SECCTL2 0x829
#define EMIF_CE3SECCTL1 0x82A
#define EMIF_CE3SECCTL2 0x82B
#define EMIF_CECTL1 0x840
#define EMIF_CECTL2 0x841
/*************************************************/
/* PLL REGISTERS */
/*************************************************/
#define PLLCSR 0x1C80
#define CK3SEL 0x1C82
#define PLLM 0x1C88
#define PLLDIV0 0x1C8A
#define PLLDIV1 0x1C8C
#define PLLDIV2 0x1C8E
#define PLLDIV3 0x1C90
#define OSCDIV1 0x1C92
#define WAKEUP 0x1C98
/*************************************************/
/* System I/O control and status registers */
/*************************************************/
#define SYSCNTL1 0x280000
#define SYSCNTL2 0x280001
#define SYSSTAT0 0x280002
#define SYSSTAT1 0x280003
#define WDOG 0x280010
/*************************************************/
/* The Startup() function is executed when the GEL file is loaded. */
StartUp()
{
C5502_Init(); /* 初始化板卡 */
Init_CE1_FLASH(); /* 初始化CE1空間的FLASH和系統I/O空間 */
Init_CE0_ZBTRAM(); /* 初始化CE0空間的ZBTRTAM */
Init_CE23_SDRAM(); /* 初始化CE2,CE3空間的SDRAM */
GEL_TextOut("Gel StartUp Complete.\n");
}
OnReset()
{
Init_CE1_FLASH(); /* 初始化CE1空間的FLASH和系統I/O空間 */
Init_CE0_ZBTRAM(); /* 初始化CE0空間的ZBTRTAM */
Init_CE23_SDRAM(); /* 初始化CE2,CE3空間的SDRAM */
}
menuitem "C5502_Configuration";
hotmenu CPU_Reset()
{
GEL_Reset(); /* 復位目標系統并重裝監視器 */
GEL_TextOut("CPU Reset Complete.\n");
}
/* Memory map based on MP/MC value=0 (BOOTM[2:0]!=0). */
hotmenu C5502_Init()
{
GEL_Reset(); /* 復位目標系統并重裝監視器 */
Init_PLL_byF(); /* 將板卡主頻設置為300Mhz */
GEL_MapOn(); /* 使能存儲器映射 */
GEL_MapReset(); /* 復位存儲器映射,禁止讀寫所有空間 */
/*------------------------- Program Space------------------------------------ */
GEL_MapAdd(0x0000C0u,0,0x00FF40u,1,1); /* DARAM */
GEL_MapAdd(0x010000u,0,0x3F0000u,1,1); /* External CE0 */
GEL_MapAdd(0x400000u,0,0x400000u,1,1); /* External CE1 */
GEL_MapAdd(0x800000u,0,0x400000u,1,1); /* External CE2 */
/* For MP/MC=0 (BOOTM[2:0] != 0) */
GEL_MapAdd(0xC00000u,0,0x3F8000u,1,1); /* External CE3 */
GEL_MapAdd(0xFF8000u,0,0x008000u,1,0); /* PDROM */
/*------------------------- Data Space--------------------------------------- */
GEL_MapAdd(0x000000u,1,0x00005Fu,1,1); /* MMRs */
GEL_MapAdd(0x000060u,1,0x007FA0u,1,1); /* DARAM */
GEL_MapAdd(0x08000u,1,0x1F8000u,1,1); /* External CE0 */
GEL_MapAdd(0x200000u,1,0x200000u,1,1); /* External CE1 */
GEL_MapAdd(0x400000u,1,0x200000u,1,1); /* External CE2 */
/* For MP/MC=0 (BOOTM[2:0] != 0)*/
GEL_MapAdd(0x600000u,1,0x1FC000u,1,1); /* External CE3 */
GEL_MapAdd(0x7FC000u,1,0x004000u,1,0); /* PDROM */
/*------------------------- IO Space------------------------------------------- */
GEL_MapAdd(0x0800u,2,0x0042u,1,1); /* EMIF 1KW */
GEL_MapAdd(0x0C00u,2,0x00B0u,1,1); /* DMA 1KW */
GEL_MapAdd(0x1000u,2,0x0020u,1,1); /* TIMER#0 1KW */
GEL_MapAdd(0x1C80u,2,0x0019u,1,1); /* PLL Control */
GEL_MapAdd(0x2400u,2,0x0014u,1,1); /* TIMER#1 1KW */
GEL_MapAdd(0x1400u,2,0x0004u,1,1); /* ICACHE 1KW */
GEL_MapAdd(0x1C00u,2,0x0400u,1,1); /* CLKGEN 1KW */
GEL_MapAdd(0x2000u,2,0x0055u,1,1); /* TRACE FIFO 1KW */
GEL_MapAdd(0x3400u,2,0x0002u,1,1); /* GPIO 1KW */
GEL_MapAdd(0x3800u,2,0x0008u,1,1); /* ID 1KW */
GEL_MapAdd(0x3C00u,2,0x000Fu,1,1); /* I2C 1KW */
GEL_MapAdd(0x4000u,2,0x0014u,1,1); /* TIMER#2 1KW */
GEL_MapAdd(0x4400u,2,0x0009u,1,1); /* PGPIO 1KW */
GEL_MapAdd(0x6C00u,2,0x0002u,1,1); /* XBSR 1KW */
GEL_MapAdd(0x7800u,2,0x0010u,1,1); /* BIOS Timer 1KW */
GEL_MapAdd(0x8000u,2,0x0002u,1,1); /* Timer Signal Selector 1KW */
GEL_MapAdd(0x8400u,2,0x0002u,1,1); /* CLKOUT selector 1KW */
GEL_MapAdd(0x8800u,2,0x0400u,1,1); /* IOMACRO 1KW */
GEL_MapAdd(0x8c00u,2,0x0002u,1,1); /* CLKMOD0 1KW */
GEL_MapAdd(0x9000u,2,0x0400u,1,1); /* Peri data Mux 1KW */
GEL_MapAdd(0x9C00u,2,0x000Du,1,1); /* UART 1KW */
GEL_MapAdd(0xA000u,2,0x0028u,1,1); /* UHPI 1KW */
EMIF_Init();
GEL_TextOut("C5502_Init Complete.\n");
}
EMIF_Init()
{
/* 配置EMIF寄存器 */
GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */
GEL_MemoryFill(EMIF_GCTL1 ,2,1,0x0764); /* EK1HZ=1, EK1EN=1 */
GEL_MemoryFill(EMIF_GCTL2 ,2,1,0x0003); /* ECLKOUT2=ECLKOUT1,ECLKOUT2 enabled */
}
hotmenu Init_CE0_ZBTRAM()
{
/* 首先配置EMIF */
EMIF_Init();
/* 然后配置系統I/O異步空間以便ZBTRAM使能控制 */
GEL_MemoryFill(EMIF_CE11 ,2,1,0xFF13); /* 16-bit async in CE1 space. */
GEL_MapAdd(0x200000u,1,0x200000u,1,1); /* External CE1 -- data space */
GEL_MapAdd(0x400000u,0,0x400000u,1,1); /* External CE1 -- program space */
GEL_MemoryFill(SYSCNTL2,1,1,0x0020); /* Enable system extended ZBTRAM */
/* 最后配置ZBTRAM空間 */
GEL_MemoryFill(EMIF_CE01 ,2,1,0xFF43); /* 32-bit ZBTRAM in CE0 space. */
GEL_MemoryFill(EMIF_CE0SECCTL1 ,2,1,0x004A);
GEL_MapAdd(0x008000u,1,0x1F8000u,1,1); /* External CE0 -- data space */
GEL_MapAdd(0x010000u,0,0x3F0000u,1,1); /* External CE0 -- program space */
}
hotmenu Init_CE1_FLASH()
{
/* 首先配置EMIF */
EMIF_Init();
/* 然后配置FLASH空間 */
GEL_MemoryFill(EMIF_CE11 ,2,1,0xFF13); /* 16-bit async in CE1 space. */
GEL_MapAdd(0x200000u,1,0x200000u,1,1); /* External CE1 -- data space */
GEL_MapAdd(0x400000u,0,0x400000u,1,1); /* External CE1 -- program space */
}
hotmenu Init_CE23_SDRAM()
{
/* 首先配置EMIF */
EMIF_Init();
/* 然后配置SDRAM空間 */
GEL_MemoryFill(EMIF_CE21 ,2,1,0xFF33); /* 32-bit SDRAM in CE2 space. */
GEL_MemoryFill(EMIF_CE31 ,2,1,0xFF33); /* 32-bit SDRAM in CE3 space. */
GEL_MemoryFill(EMIF_SDCNT1 ,2,1,0x6000);/* TRC=5, disable self-refresh mode */
GEL_MemoryFill(EMIF_SDCNT2 ,2,1,0x4711);/* 4 banks,11 row address, 8 column address, Refresh enabled */
GEL_MemoryFill(EMIF_SDREF1 ,2,1,0x061B);
GEL_MemoryFill(EMIF_SDREF2 ,2,1,0x0300);
GEL_MemoryFill(EMIF_SDEXT1 ,2,1,0xB488);
GEL_MemoryFill(EMIF_SDEXT2 ,2,1,0x0005);
GEL_MapAdd(0x400000u,1,0x200000u,1,1); /* External CE2 -- data space */
GEL_MapAdd(0x800000u,0,0x400000u,1,1); /* External CE2 -- program space */
GEL_MapAdd(0x600000u,1,0x200000u,1,1); /* External CE3 -- data space*/
GEL_MapAdd(0xC00000u,0,0x400000u,1,1); /* External CE3 -- program space*/
}
hotmenu Init_PLL_byF()
{
GEL_MemoryFill(PLLCSR, 2, 1,0x0001); /* PLL enabled */
GEL_MemoryFill(PLLM, 2, 1,0x000F); /* PLL X15 */
}
hotmenu Init_PLL_byA()
{
GEL_MemoryFill(PLLCSR, 2, 1,0x0001); /* PLL enabled */
GEL_MemoryFill(PLLM, 2, 1,0x0008); /* PLL X10 */
}
/*------------------------------------------------------------------------------------*/
// No more
/*-------------------------------------------------------------------------------------*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -