📄 sun3-head.s
字号:
#include <linux/linkage.h>#include <asm/entry.h>#include <asm/page.h>#include <asm/contregs.h>#include <asm/sun3-head.h>PSL_HIGHIPL = 0x2700NBSG = 0x20000ICACHE_ONLY = 0x00000009CACHES_OFF = 0x00000008 | actually a clear and disable --m#define MAS_STACK INT_STACKROOT_TABLE_SIZE = 128PAGESIZE = 8192SUN3_INVALID_PMEG = 255.globl bootup_user_stack.globl bootup_kernel_stack.globl pg0.globl swapper_pg_dir.globl kernel_pmd_table.globl availmem.global m68k_pgtable_cachemode.global kpt| todo: all these should be in bss!swapper_pg_dir: .skip 0x2000pg0: .skip 0x2000kernel_pmd_table: .skip 0x2000.globl kernel_pg_dir.equ kernel_pg_dir,kernel_pmd_table .section .headENTRY(_stext)ENTRY(_start)/* Firstly, disable interrupts and set up function codes. */ movew #PSL_HIGHIPL, %sr moveq #FC_CONTROL, %d0 movec %d0, %sfc movec %d0, %dfc/* Make sure we're in context zero. */ moveq #0, %d0 movsb %d0, AC_CONTEXT/* map everything the bootloader left us into high memory, clean up the excess later */ lea (AC_SEGMAP+0),%a0 lea (AC_SEGMAP+KERNBASE),%a11: movsb %a0@, %d1 movsb %d1, %a1@ cmpib #SUN3_INVALID_PMEG, %d1 beq 2f addl #NBSG,%a0 addl #NBSG,%a1 jmp 1b2:/* Disable caches and jump to high code. */ moveq #ICACHE_ONLY,%d0 | Cache disabled until we're ready to enable it movc %d0, %cacr | is this the right value? (yes --m) jmp 1f:l/* Following code executes at high addresses (0xE000xxx). */1: lea init_task,%curptr | get initial thread... lea init_thread_union+THREAD_SIZE,%sp | ...and its stack./* copy bootinfo records from the loader to _end */ lea _end, %a1 lea BI_START, %a0 /* number of longs to copy */ movel %a0@, %d01: addl #4, %a0 movel %a0@, %a1@ addl #4, %a1 dbf %d0, 1b/* Point MSP at an invalid page to trap if it's used. --m */ movl #(PAGESIZE),%d0 movc %d0,%msp moveq #-1,%d0 movsb %d0,(AC_SEGMAP+0x0) jbsr sun3_init jbsr base_trap_init jbsr start_kernel trap #15 .data .evenkpt: .long 0availmem: .long 0| todo: remove next two. --mis_medusa: .long 0m68k_pgtable_cachemode: .long 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -