1 2 .global _start 3 .global _stext 4 5 .global _rambase 6 .global _ramvec 7 .global _ramstart 8 .global _ramend 9 10#ifdef CONFIG_INIT_LCD 11 .global splash_bits 12#endif 13 14 .data 15 16/* 17 * Set up the usable of RAM stuff. Size of RAM is determined then 18 * an initial stack set up at the end. 19 */ 20.align 4 21_ramvec: 22.long 0 23_rambase: 24.long 0 25_ramstart: 26.long 0 27_ramend: 28.long 0 29 30#define RAMEND (CONFIG_RAMBASE + CONFIG_RAMSIZE) 31 32#ifdef CONFIG_INIT_LCD 33splash_bits: 34#include "bootlogo.rh" 35#endif 36 37 .text 38_start: 39_stext: movew #0x2700,%sr 40#ifdef CONFIG_INIT_LCD 41 movel #splash_bits, 0xfffffA00 /* LSSA */ 42 moveb #0x28, 0xfffffA05 /* LVPW */ 43 movew #0x280, 0xFFFFFa08 /* LXMAX */ 44 movew #0x1df, 0xFFFFFa0a /* LYMAX */ 45 moveb #0, 0xfffffa29 /* LBAR */ 46 moveb #0, 0xfffffa25 /* LPXCD */ 47 moveb #0x08, 0xFFFFFa20 /* LPICF */ 48 moveb #0x01, 0xFFFFFA21 /* -ve pol */ 49 moveb #0x81, 0xfffffA27 /* LCKCON */ 50 movew #0xff00, 0xfffff412 /* LCD pins */ 51#endif 52 moveal #RAMEND-CONFIG_MEMORY_RESERVE*0x100000 - 0x10, %sp 53 movew #32767, %d0 /* PLL settle wait loop */ 541: subq #1, %d0 55 bne 1b 56 57 /* Copy data segment from ROM to RAM */ 58 moveal #_etext, %a0 59 moveal #_sdata, %a1 60 moveal #_edata, %a2 61 62 /* Copy %a0 to %a1 until %a1 == %a2 */ 631: movel %a0@+, %a1@+ 64 cmpal %a1, %a2 65 bhi 1b 66 67 moveal #_sbss, %a0 68 moveal #_ebss, %a1 69 /* Copy 0 to %a0 until %a0 == %a1 */ 70 711: 72 clrl %a0@+ 73 cmpal %a0, %a1 74 bhi 1b 75 76 movel #_sdata, %d0 77 movel %d0, _rambase 78 movel #_ebss, %d0 79 movel %d0, _ramstart 80 movel #RAMEND-CONFIG_MEMORY_RESERVE*0x100000, %d0 81 movel %d0, _ramend 82 movel #CONFIG_VECTORBASE, %d0 83 movel %d0, _ramvec 84 85/* 86 * load the current task pointer and stack 87 */ 88 lea init_thread_union, %a0 89 lea 0x2000(%a0), %sp 90 911: jsr start_kernel 92 bra 1b 93_exit: 94 95 jmp _exit 96 97 98putc: 99 moveb %d7,0xfffff907 1001: 101 movew 0xfffff906, %d7 102 andw #0x2000, %d7 103 beq 1b 104 rts 105 106 .data 107env: 108 .long 0 109 .text 110