CCStudio_v3.1ccgelc5502.gel
/*************************************************/ /* 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 0x1C81 #define PLLM 0x1C88 #define PLLDIV0 0x1C8A #define PLLDIV1 0x1C8C #define PLLDIV2 0x1C8E #define PLLDIV3 0x1C90 #define OSCDIV1 0x1C92 #define WAKEUP 0x1C98 /*************************************************/
/* The Startup() function is executed when the GEL file is loaded. */
StartUp() { }
OnTargetConnect() { C5502_Init();
Init_CE1_SBSRAM_5502CPUBoard(); Init_CE0_SDRAM_5502CPUBoard(); }
OnReset() { Init_CE1_SBSRAM_5502CPUBoard(); Init_CE0_SDRAM_5502CPUBoard(); }
menuitem "C5502_Configuration"; hotmenu CPU_Reset() { /*GEL_Reset();*/
GEL_TextOut("CPU Reset Complete.
"); }
/* Memory map based on MP/MC value=1 (BOOTM[2:0]=0). */
hotmenu C5502_Init() { GEL_Reset();
GEL_MapOn(); GEL_MapReset(); /* Program Space */ GEL_MapAdd(0x0000C0u,0,0x00FF40u,1,1); /* DARAM */ /* GEL_MapAdd(0x050000u,0,0x3B0000u,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=1 (BOOTM[2:0] = 0) */ /* GEL_MapAdd(0xC00000u,0,0x400000u,1,1);*/ /* External CE3 */ /* 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,0x000050u,1,1); /* MMRs */ GEL_MapAdd(0x000060u,1,0x007FA0u,1,1); /* DARAM */ GEL_MapAdd(0x08000u,1,0x1D8000u,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=1 (BOOTM[2:0] = 0) */ GEL_MapAdd(0x600000u,1,0x200000u,1,1); /* External CE3 */ /* 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 */ /* Removed certain I/O locations due to emulation access problems */ /* GEL_MapAdd(0x0000u,2,0x0012u,1,1); */ /* RHEA 1KW */ GEL_MapAdd(0x0400u,2,0x0300u,1,1); /* EMULATION */ GEL_MapAdd(0x0800u,2,0x0042u,1,1); /* EMIF 1KW */ /* GEL_MapAdd(0x0C00u,2,0x00B0u,1,1); */ /* DMA 1KW */ GEL_MapAdd(0x1000u,2,0x0014u,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(0x2800u,2,0x0020u,1,1); */ /* SERIAL PORT#0 1KW */ /* GEL_MapAdd(0x2C00u,2,0x0020u,1,1); */ /* SERIAL PORT#1 1KW */ /* GEL_MapAdd(0x3000u,2,0x0020u,1,1); */ /* SERIAL PORT#2 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(0x9400u,2,0x0004u,1,1); */ /* IDLE 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.
"); }
emif_init() { /* EMIF REGISTER values */ GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */ GEL_MemoryFill(EMIF_GCTL1 ,2,1,0x0060); GEL_MemoryFill(EMIF_GCTL2 ,2,1,0x0009); GEL_MemoryFill(EMIF_CE01 ,2,1,0xFF03); }
hotmenu Init_CE0_Async() { GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */ GEL_MemoryFill(EMIF_CE01 ,2,1,0xFF23); /* 32-bit async in CE0 space. */ GEL_MapAdd(0x010000u,0,0x3B0000u,1,1); /* External CE0 */ GEL_MapAdd(0x08000u,1,0x1D8000u,1,1); /* External CE0 */ }
hotmenu Init_CE0_Async_Fast() { GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */ GEL_MemoryFill(EMIF_CE01 ,2,1,0x0121); /* 32-bit async in CE0 space. */ GEL_MemoryFill(EMIF_CE02 ,2,1,0x1051); /* 32-bit async in CE0 space. */ /* GEL_MemoryFill(EMIF_CE02 ,2,1,0x0000); */ /* 32-bit async in CE0 space. */ GEL_MapAdd(0x010000u,0,0x3B0000u,1,1); /* External CE0 - program space */ GEL_MapAdd(0x08000u,1,0x1D8000u,1,1); /* External CE0 - data space */ }
hotmenu Init_CE1_Async_32() { GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */ GEL_MemoryFill(EMIF_CE11 ,2,1,0xFF23); /* 32-bit async in CE1 space. */ GEL_MapAdd(0x400000u,0,0x400000u,1,1); /* External CE1 */ GEL_MapAdd(0x200000u,1,0x200000u,1,1); /* External CE1 */ }
hotmenu Init_CE1_Async_16() { GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */ GEL_MemoryFill(EMIF_CE11 ,2,1,0xFF13); /* 16-bit async in CE1 space. */ GEL_MapAdd(0x400000u,0,0x400000u,1,1); /* External CE1 */ GEL_MapAdd(0x200000u,1,0x200000u,1,1); /* External CE1 */ }
hotmenu Init_CE0_SDRAM_5502CPUBoard() /* For MT48LC2M32B2 Micron Memory use. (C5502 CPU Board) */ { GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */ GEL_MemoryFill(EMIF_CE01 ,2,1,0xFF33); /* 32-bit SDRAM in CE0 space. */ GEL_MemoryFill(EMIF_SDCNT1 ,2,1,0xF000);/* ?5000*/ GEL_MemoryFill(EMIF_SDCNT2 ,2,1,0x4748);/* ?4711*/ GEL_MemoryFill(EMIF_SDREF1 ,2,1,0x0001); GEL_MemoryFill(EMIF_SDREF2 ,2,1,0x0000); GEL_MapAdd(0x010000u,0,0x3B0000u,1,1); /* External CE0 - program space */ GEL_MapAdd(0x08000u,1,0x1D8000u,1,1); /* External CE0 - data space */ }
hotmenu Init_CE1_SDRAM() /* For MT48LC2M32B2 Micron Memory use. */ { GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */ GEL_MemoryFill(EMIF_CE11 ,2,1,0xFF33); /* 32-bit SDRAM in CE0 space. */ GEL_MemoryFill(EMIF_SDCNT1 ,2,1,0xF000);/* ?5000*/ GEL_MemoryFill(EMIF_SDCNT2 ,2,1,0x4748);/* ?4711*/ GEL_MemoryFill(EMIF_SDREF1 ,2,1,0x0001); GEL_MemoryFill(EMIF_SDREF2 ,2,1,0x0000); GEL_MapAdd(0x400000u,0,0x400000u,1,1); /* External CE1 - program space */ GEL_MapAdd(0x200000u,1,0x200000u,1,1); /* External CE1 - data space */ }
hotmenu Init_CE1_SBSRAM_5502CPUBoard() /* For MT58L25632PS Micron Memory use. (C5502 CPU Board) */ { GEL_MemoryFill(0x6c00 ,2,1,0x0001); /* Enable EMIF bus. */ GEL_MemoryFill(EMIF_CE11 ,2,1,0xFF43); /* 32-bit SBSRAM in CE1 space. */ GEL_MemoryFill(EMIF_CE1SECCTL1 ,2,1,0x0002);
GEL_MapAdd(0x0400000u,0,0x3FFFFFu,1,1); /* External CE1 - program space */ GEL_MapAdd(0x0200000u,1,0x1FFFFFu,1,1); /* External CE1 - data space */ }
hotmenu Init_PLL_by15() { GEL_MemoryFill(PLLCSR, 2, 1,0x0001); /* PLL enabled */ GEL_MemoryFill(PLLM, 2, 1,0x000E); /* PLL X15 */ }
hotmenu Init_PLL_by16() { GEL_MemoryFill(PLLCSR, 2, 1,0x0001); /* PLL enabled */ GEL_MemoryFill(PLLM, 2, 1,0x000F); /* PLL X16 */ } |