1 #include <linux/config.h>
17 #define ROM_OFFSET 0x10C00000
18 #define STACK_GAURD 0x10
24 movew #0x2700, %sr /* Exceptions off! */
27 /* Init chip registers. uCsimm specific */
28 moveb #0x00, 0xfffffb0b /* Watchdog off */
29 moveb #0x10, 0xfffff000 /* SCR */
31 movew #0x2400, 0xfffff200 /* PLLCR */
32 movew #0x0123, 0xfffff202 /* PLLFSR */
34 moveb #0x00, 0xfffff40b /* enable chip select */
35 moveb #0x00, 0xfffff423 /* enable /DWE */
36 moveb #0x08, 0xfffffd0d /* disable hardmap */
37 moveb #0x07, 0xfffffd0e /* level 7 interrupt clear */
39 movew #0x8600, 0xfffff100 /* FLASH at 0x10c00000 */
40 movew #0x018b, 0xfffff110 /* 2Meg, enable, 0ws */
42 movew #0x8f00, 0xfffffc00 /* DRAM configuration */
43 movew #0x9667, 0xfffffc02 /* DRAM control */
44 movew #0x0000, 0xfffff106 /* DRAM at 0x00000000 */
45 movew #0x068f, 0xfffff116 /* 8Meg, enable, 0ws */
47 moveb #0x40, 0xfffff300 /* IVR */
48 movel #0x007FFFFF, %d0 /* IMR */
55 moveb #0x08, 0xfffff907 /* Ignore CTS */
56 movew #0x010b, 0xfffff902 /* BAUD to 9600 */
57 movew #0xe100, 0xfffff900 /* enable */
60 movew #16384, %d0 /* PLL settle wait loop */
65 moveq #70, %d7 /* 'F' */
66 moveb %d7,0xfffff907 /* No absolute addresses */
73 #ifdef CONFIG_RELOCATE
75 moveal #__rom_start, %a0
76 moveal #__ram_start, %a1
79 /* Copy %a0 to %a1 until %a1 == %a2 */
87 moveq #74, %d7 /* 'J' */
88 moveb %d7,0xfffff907 /* No absolute addresses */
94 /* jump into the RAM copy */
98 #endif /* CONFIG_RELOCATE */
101 moveq #82, %d7 /* 'R' */
102 moveb %d7,0xfffff907 /* No absolute addresses */
104 movew 0xfffff906, %d7
108 moveal #0x007ffff0, %ssp
112 /* Copy 0 to %a0 until %a0 >= %a1 */
119 moveq #67, %d7 /* 'C' */
129 moveq #70, %d7 /* 'F' */
148 movew 0xfffff906, %d7
157 * Set up the usable of RAM stuff. Size of RAM is determined then
158 * an initial stack set up at the end.