From: Andy P. <at...@us...> - 2001-07-02 12:09:27
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/boot In directory usw-pr-cvs1:/tmp/cvs-serv28164 Modified Files: head.S Log Message: PCB initialisation code prior to VM start. Index: head.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/head.S,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- head.S 2001/06/24 19:34:56 1.10 +++ head.S 2001/07/02 12:09:24 1.11 @@ -3,6 +3,10 @@ # start of boot. entry point # this assumes vmb has does most of the hard work (ie uvax rom vmb) # save useful registers. jump to c in boot.c +# +# TBD: Some of this stuff could do with being rewritten in C +# Some of this stuff could be in .init sections and thrown away. +# #include <asm/mtpr.h> /* Processor register definitions */ #include <asm/mv.h> /* machine vector definitions */ @@ -252,11 +256,21 @@ movl r7, 20(r0) mtpr 16(r0), $PR_SBR # set SBR mtpr r7, $PR_SLR # set SLR +# PCBB +# set up the process control block. Some machines need a valid PCB for +# mm to work properly. +# We should use the pcb for the init task for this, but Since this bit +# should be done in C, rather than hardwiring offsets, I have put a fake +# PCB in a throwaway .init section below. + moval fake_pcb,r9 + movl $PAGE_OFFSET,88(r9) # p1br + mtpr r9, $PR_PCBB # no need to TBIA - memory mapping not enabled +# ready to turn on VM moval msg_starting_vm, r10 jsb printstr jsb crlf - calls $0, VAX_start_mm + calls $0, VAX_start_mm # do that ole black magic # made it moval swapper_pg_dir, r0 addl2 $PAGE_OFFSET, 16(r0) # fix up our reference to the system page tbl. @@ -371,3 +385,8 @@ cpu_type: .int 0x00000000 prom_sidex: .int 0x00000000 +# our dummy pcb +.section .data.init +.globl fake_pcb +fake_pcb: .fill 24,4,0x00000000 + |