Adjust this a bit so that the primary entry point is 0x200, not 0x0a.

This commit is contained in:
matt 2000-06-17 01:00:17 +00:00
parent 4343326b78
commit 94956e7869
1 changed files with 16 additions and 14 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: start.s,v 1.5 2000/05/22 15:54:53 matt Exp $ */
/* $NetBSD: start.s,v 1.6 2000/06/17 01:00:17 matt Exp $ */
/*
* Copyright (c) 1995 Ludd, University of Lule}, Sweden.
* All rights reserved.
@ -60,26 +60,18 @@ _start: .globl _start # this is the symbolic name for the start
.org 0x08 #
brb from_0x08 # skip ...
.org 0x0A # uVAX booted from disk starts here
brb from_0x0A # skip ...
.org 0x0C # 11/750 & 8200 starts here
movzbl $1,_from # We booted from "old" rom.
brw cont_750
from_0x00: # uVAX from TK50
from_0x0A: # uVAX from disk
movzbl $2,_from # Booted from subset-VMB
brw start_uvax # all uVAXen continue there
from_0x08: # Any machine from VMB
movzbl $4,_from # Booted from full VMB
halt # Cannot handle this...
_from: .long 0 # boot prog type
.globl _from
# the complete area reserved for label
# must be empty (i.e. filled with zeroes).
# disklabel(8) checks that before installing
@ -88,10 +80,10 @@ _from: .long 0 # boot prog type
/*
* Parameter block for uVAX boot.
*/
#define VOLINFO 0 /* 1=single-sided 81=double-sided volumes */
#define SISIZE 16 /* size in blocks of secondary image */
#define SILOAD 0 /* load offset (usually 0) from the default */
#define SIOFF 0x0A /* byte offset into secondary image */
#define VOLINFO 0 /* 1=single-sided 81=double-sided volumes */
#define SISIZE 16 /* size in blocks of secondary image */
#define SILOAD 0 /* load offset (usually 0) from the default */
#define SIOFF 0x200 /* byte offset into secondary image */
.org LABELOFFSET + d_end_
.byte 0x18 # must be 0x18
@ -110,6 +102,7 @@ _from: .long 0 # boot prog type
.long SIOFF # byte offset into secondary image
.long (SISIZE + SILOAD + SIOFF) # sum of previous 3
/*
* After bootblock (LBN0) has been loaded into the first page
* of good memory by 11/750's ROM-code (transfer address
@ -130,7 +123,6 @@ _from: .long 0 # boot prog type
*
* cont_750 reads in LBN1-15 for further execution.
*/
.align 2
cont_750:
movl $_start, sp # move stack to avoid clobbering the code
pushr $0x131 # save clobbered registers
@ -150,10 +142,20 @@ cont_750:
popr $0x131 # restore clobbered registers
brw start_all # Ok, continue...
/* uVAX main entry is at the start of the second disk block. This is
* needed for multi-arch CD booting where multiple architecture need
* to shove stuff in boot block 0.
*/
.org 0x200 # uVAX booted from disk starts here
start_uvax:
movzbl $2,_from # Booted from subset-VMB
brb start_all
.align 2
.globl _from
_from: .long 0
/*
* start_all: stack already at RELOC, we save registers, move ourself
* to RELOC and loads boot.