CCStudio_v3.1ccgelc5502.gel<br /><br />/*************************************************/<br />/* EMIF REGISTERS */<br />/*************************************************/<br /> #define EMIF_GCTL1 0x800<br /> #define EMIF_GCTL2 0x801<br /> #define EMIF_CE11 0x802<br /> #define EMIF_CE12 0x803<br /> #define EMIF_CE01 0x804<br /> #define EMIF_CE02 0x805<br /> #define EMIF_CE21 0x808<br /> #define EMIF_CE22 0x809<br /> #define EMIF_CE31 0x80A<br /> #define EMIF_CE32 0x80B<br /> #define EMIF_SDCNT1 0x80C<br /> #define EMIF_SDCNT2 0x80D<br /> #define EMIF_SDREF1 0x80E<br /> #define EMIF_SDREF2 0x80F<br /> #define EMIF_SDEXT1 0x810<br /> #define EMIF_SDEXT2 0x811<br /> #define EMIF_CE1SECCTL1 0x822<br /> #define EMIF_CE1SECCTL2 0x823<br /> #define EMIF_CE0SECCTL1 0x824<br /> #define EMIF_CE0SECCTL2 0x825<br /> #define EMIF_CE2SECCTL1 0x828<br /> #define EMIF_CE2SECCTL2 0x829<br /> #define EMIF_CE3SECCTL1 0x82A<br /> #define EMIF_CE3SECCTL2 0x82B<br /> #define EMIF_CECTL1 0x840<br /> #define EMIF_CECTL2 0x841<br />/*************************************************/<br />/* PLL REGISTERS */<br />/*************************************************/<br /> #define PLLCSR 0x1C80<br /> #define CK3SEL 0x1C81<br /> #define PLLM 0x1C88<br /> #define PLLDIV0 0x1C8A<br /> #define PLLDIV1 0x1C8C<br /> #define PLLDIV2 0x1C8E<br /> #define PLLDIV3 0x1C90<br /> #define OSCDIV1 0x1C92<br /> #define WAKEUP 0x1C98<br />/*************************************************/<br /><br /><br />/* The Startup() function is executed when the GEL file is loaded. */<br /><br />StartUp()<br />{<br />}<br /><br />OnTargetConnect()<br />{<br /> C5502_Init(); <br /><br /> Init_CE1_SBSRAM_5502CPUBoard();<br /> Init_CE0_SDRAM_5502CPUBoard();<br />}<br /><br />OnReset()<br />{<br /> Init_CE1_SBSRAM_5502CPUBoard();<br /> Init_CE0_SDRAM_5502CPUBoard();<br />}<br /><br />menuitem "C5502_Configuration";<br />hotmenu CPU_Reset()<br />{<br /> /*GEL_Reset();*/<br /><br /> GEL_TextOut("CPU Reset Complete.
");<br />}<br /><br /><br />/* Memory map based on MP/MC value=1 (BOOTM[2:0]=0). */<br /><br />hotmenu C5502_Init()<br />{<br /> GEL_Reset();<br /><br /> GEL_MapOn();<br /> GEL_MapReset();<br /> <br /> /* Program Space */<br /> GEL_MapAdd(0x0000C0u,0,0x00FF40u,1,1); /* DARAM */<br />/* GEL_MapAdd(0x050000u,0,0x3B0000u,1,1);*/ /* External CE0 */<br />/* GEL_MapAdd(0x400000u,0,0x400000u,1,1);*/ /* External CE1 */<br />/* GEL_MapAdd(0x800000u,0,0x400000u,1,1);*/ /* External CE2 */<br /> /* For MP/MC=1 (BOOTM[2:0] = 0) */<br />/* GEL_MapAdd(0xC00000u,0,0x400000u,1,1);*/ /* External CE3 */<br /> /* For MP/MC=0 (BOOTM[2:0] != 0) */<br /> /*GEL_MapAdd(0xC00000u,0,0x3F8000u,1,1);*/ /* External CE3 */<br /> GEL_MapAdd(0xFF8000u,0,0x008000u,1,0); /* PDROM */<br /><br /><br /> /* Data Space */<br /> GEL_MapAdd(0x000000u,1,0x000050u,1,1); /* MMRs */<br /> GEL_MapAdd(0x000060u,1,0x007FA0u,1,1); /* DARAM */<br /> GEL_MapAdd(0x08000u,1,0x1D8000u,1,1); /* External CE0 */<br /> GEL_MapAdd(0x200000u,1,0x200000u,1,1); /* External CE1 */<br /> GEL_MapAdd(0x400000u,1,0x200000u,1,1); /* External CE2 */<br /> /* For MP/MC=1 (BOOTM[2:0] = 0) */<br /> GEL_MapAdd(0x600000u,1,0x200000u,1,1); /* External CE3 */<br /> /* For MP/MC=0 (BOOTM[2:0] != 0)*/<br /> /*GEL_MapAdd(0x600000u,1,0x1FC000u,1,1); /* External CE3 */<br /> /*GEL_MapAdd(0x7FC000u,1,0x004000u,1,0); /* PDROM */<br /> <br /> /* IO Space */<br /> /* Removed certain I/O locations due to emulation access problems */<br />/* GEL_MapAdd(0x0000u,2,0x0012u,1,1); */ /* RHEA 1KW */<br /> GEL_MapAdd(0x0400u,2,0x0300u,1,1); /* EMULATION */<br /> GEL_MapAdd(0x0800u,2,0x0042u,1,1); /* EMIF 1KW */<br />/* GEL_MapAdd(0x0C00u,2,0x00B0u,1,1); */ /* DMA 1KW */<br /> GEL_MapAdd(0x1000u,2,0x0014u,1,1); /* TIMER#0 1KW */<br /> GEL_MapAdd(0x1C80u,2,0x0019u,1,1); /* PLL Control */<br /> GEL_MapAdd(0x2400u,2,0x0014u,1,1); /* TIMER#1 1KW */<br /> GEL_MapAdd(0x1400u,2,0x0004u,1,1); /* ICACHE 1KW */<br /> GEL_MapAdd(0x1C00u,2,0x0400u,1,1); /* CLKGEN 1KW */<br /> GEL_MapAdd(0x2000u,2,0x0055u,1,1); /* TRACE FIFO 1KW */<br />/* GEL_MapAdd(0x2800u,2,0x0020u,1,1); */ /* SERIAL PORT#0 1KW */<br />/* GEL_MapAdd(0x2C00u,2,0x0020u,1,1); */ /* SERIAL PORT#1 1KW */<br />/* GEL_MapAdd(0x3000u,2,0x0020u,1,1); */ /* SERIAL PORT#2 1KW */<br /> GEL_MapAdd(0x3400u,2,0x0002u,1,1); /* GPIO 1KW */<br /> GEL_MapAdd(0x3800u,2,0x0008u,1,1); /* ID 1KW */<br /> GEL_MapAdd(0x3C00u,2,0x000Fu,1,1); /* I2C 1KW */<br /> GEL_MapAdd(0x4000u,2,0x0014u,1,1); /* TIMER#2 1KW */<br /> GEL_MapAdd(0x4400u,2,0x0009u,1,1); /* PGPIO 1KW */<br /> GEL_MapAdd(0x6C00u,2,0x0002u,1,1); /* XBSR 1KW */<br /> GEL_MapAdd(0x7800u,2,0x0010u,1,1); /* BIOS Timer 1KW */<br /> GEL_MapAdd(0x8000u,2,0x0002u,1,1); /* Timer Signal Selector 1KW */<br /> GEL_MapAdd(0x8400u,2,0x0002u,1,1); /* CLKOUT selector 1KW */<br /> GEL_MapAdd(0x8800u,2,0x0400u,1,1); /* IOMACRO 1KW */<br /> GEL_MapAdd(0x8c00u,2,0x0002u,1,1); /* CLKMOD0 1KW */<br /> GEL_MapAdd(0x9000u,2,0x0400u,1,1); /* Peri data Mux 1KW */<br />/* GEL_MapAdd(0x9400u,2,0x0004u,1,1); */ /* IDLE 1KW */<br /> GEL_MapAdd(0x9C00u,2,0x000Du,1,1); /* UART 1KW */<br /> GEL_MapAdd(0xA000u,2,0x0028u,1,1); /* UHPI 1KW */<br /><br /> /*emif_init();*/<br /><br /> GEL_TextOut("C5502_Init Complete.
");<br />}<br /><br /><br />emif_init()<br />{<br /> /* EMIF REGISTER values */<br /> GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */<br /> GEL_MemoryFill(EMIF_GCTL1 ,2,1,0x0060);<br /> GEL_MemoryFill(EMIF_GCTL2 ,2,1,0x0009);<br /> GEL_MemoryFill(EMIF_CE01 ,2,1,0xFF03);<br />}<br /><br />hotmenu Init_CE0_Async()<br />{<br /> GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */<br /> GEL_MemoryFill(EMIF_CE01 ,2,1,0xFF23); /* 32-bit async in CE0 space. */<br /> GEL_MapAdd(0x010000u,0,0x3B0000u,1,1); /* External CE0 */<br /> GEL_MapAdd(0x08000u,1,0x1D8000u,1,1); /* External CE0 */<br />}<br /><br />hotmenu Init_CE0_Async_Fast()<br />{<br /> GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */<br /> GEL_MemoryFill(EMIF_CE01 ,2,1,0x0121); /* 32-bit async in CE0 space. */<br /> GEL_MemoryFill(EMIF_CE02 ,2,1,0x1051); /* 32-bit async in CE0 space. */<br />/* GEL_MemoryFill(EMIF_CE02 ,2,1,0x0000); */ /* 32-bit async in CE0 space. */ <br /> GEL_MapAdd(0x010000u,0,0x3B0000u,1,1); /* External CE0 - program space */<br /> GEL_MapAdd(0x08000u,1,0x1D8000u,1,1); /* External CE0 - data space */<br />}<br /><br />hotmenu Init_CE1_Async_32()<br />{<br /> GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */<br /> GEL_MemoryFill(EMIF_CE11 ,2,1,0xFF23); /* 32-bit async in CE1 space. */<br /> GEL_MapAdd(0x400000u,0,0x400000u,1,1); /* External CE1 */<br /> GEL_MapAdd(0x200000u,1,0x200000u,1,1); /* External CE1 */<br />}<br /><br />hotmenu Init_CE1_Async_16()<br />{<br /> GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */<br /> GEL_MemoryFill(EMIF_CE11 ,2,1,0xFF13); /* 16-bit async in CE1 space. */<br /> GEL_MapAdd(0x400000u,0,0x400000u,1,1); /* External CE1 */<br /> GEL_MapAdd(0x200000u,1,0x200000u,1,1); /* External CE1 */<br />}<br /><br />hotmenu Init_CE0_SDRAM_5502CPUBoard() /* For MT48LC2M32B2 Micron Memory use. (C5502 CPU Board) */<br />{ <br /> GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */<br /> GEL_MemoryFill(EMIF_CE01 ,2,1,0xFF33); /* 32-bit SDRAM in CE0 space. */<br /> GEL_MemoryFill(EMIF_SDCNT1 ,2,1,0xF000);/* ?5000*/<br /> GEL_MemoryFill(EMIF_SDCNT2 ,2,1,0x4748);/* ?4711*/<br /> GEL_MemoryFill(EMIF_SDREF1 ,2,1,0x0001);<br /> GEL_MemoryFill(EMIF_SDREF2 ,2,1,0x0000); <br /> GEL_MapAdd(0x010000u,0,0x3B0000u,1,1); /* External CE0 - program space */<br /> GEL_MapAdd(0x08000u,1,0x1D8000u,1,1); /* External CE0 - data space */<br />}<br /><br />hotmenu Init_CE1_SDRAM() /* For MT48LC2M32B2 Micron Memory use. */<br />{ <br /> GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */<br /> GEL_MemoryFill(EMIF_CE11 ,2,1,0xFF33); /* 32-bit SDRAM in CE0 space. */<br /> GEL_MemoryFill(EMIF_SDCNT1 ,2,1,0xF000);/* ?5000*/<br /> GEL_MemoryFill(EMIF_SDCNT2 ,2,1,0x4748);/* ?4711*/<br /> GEL_MemoryFill(EMIF_SDREF1 ,2,1,0x0001);<br /> GEL_MemoryFill(EMIF_SDREF2 ,2,1,0x0000); <br /> GEL_MapAdd(0x400000u,0,0x400000u,1,1); /* External CE1 - program space */<br /> GEL_MapAdd(0x200000u,1,0x200000u,1,1); /* External CE1 - data space */<br />}<br /><br />hotmenu Init_CE1_SBSRAM_5502CPUBoard() /* For MT58L25632PS Micron Memory use. (C5502 CPU Board) */<br />{ <br /> GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */<br /> GEL_MemoryFill(EMIF_CE11 ,2,1,0xFF43); /* 32-bit SBSRAM in CE1 space. */<br /> GEL_MemoryFill(EMIF_CE1SECCTL1 ,2,1,0x0002); <br /><br /> GEL_MapAdd(0x0400000u,0,0x3FFFFFu,1,1); /* External CE1 - program space */<br /> GEL_MapAdd(0x0200000u,1,0x1FFFFFu,1,1); /* External CE1 - data space */<br />}<br /><br /><br />hotmenu Init_PLL_by15()<br />{<br /> GEL_MemoryFill(PLLCSR, 2, 1,0x0001); /* PLL enabled */<br /> GEL_MemoryFill(PLLM, 2, 1,0x000E); /* PLL X15 */<br />}<br /><br />hotmenu Init_PLL_by16()<br />{<br /> GEL_MemoryFill(PLLCSR, 2, 1,0x0001); /* PLL enabled */<br /> GEL_MemoryFill(PLLM, 2, 1,0x000F); /* PLL X16 */<br />}<br />
|