Check OBP magic: if no match then assume an Openfirmware PROM.
This commit is contained in:
parent
1e5bf77774
commit
a8456f4e8a
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: locore.s,v 1.108 1998/11/26 22:36:43 mycroft Exp $ */
|
/* $NetBSD: locore.s,v 1.109 1999/02/14 12:33:55 pk Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1996 Paul Kranenburg
|
* Copyright (c) 1996 Paul Kranenburg
|
||||||
|
@ -3437,6 +3437,13 @@ dostart:
|
||||||
#if defined(SUN4C) || defined(SUN4M)
|
#if defined(SUN4C) || defined(SUN4M)
|
||||||
mov %o0, %g7 ! save prom vector pointer
|
mov %o0, %g7 ! save prom vector pointer
|
||||||
|
|
||||||
|
/* First, check `romp->pv_magic' */
|
||||||
|
ld [%g7 + PV_MAGIC], %o0 ! v = pv->pv_magic
|
||||||
|
set OBP_MAGIC, %o1
|
||||||
|
cmp %o0, %o1 ! if ( v != OBP_MAGIC) {
|
||||||
|
bne is_openfirm ! assume this is an OPENFIRM machine
|
||||||
|
nop ! }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* are we on a sun4c or a sun4m?
|
* are we on a sun4c or a sun4m?
|
||||||
*/
|
*/
|
||||||
|
@ -3467,6 +3474,10 @@ dostart:
|
||||||
call %o1
|
call %o1
|
||||||
nop
|
nop
|
||||||
|
|
||||||
|
is_openfirm:
|
||||||
|
mov %o3, %g7 ! OPENFIRMWARE entry point is in %o3
|
||||||
|
/* FALLTHROUGH to sun4m case */
|
||||||
|
|
||||||
is_sun4m:
|
is_sun4m:
|
||||||
#if defined(SUN4M)
|
#if defined(SUN4M)
|
||||||
set trapbase_sun4m, %g6
|
set trapbase_sun4m, %g6
|
||||||
|
@ -3787,8 +3798,8 @@ startmap_done:
|
||||||
* (which we just zeroed).
|
* (which we just zeroed).
|
||||||
* This depends on the fact that bzero does not use %g7.
|
* This depends on the fact that bzero does not use %g7.
|
||||||
*/
|
*/
|
||||||
sethi %hi(_promvec), %l0
|
sethi %hi(_romp), %l0
|
||||||
st %g7, [%l0 + %lo(_promvec)]
|
st %g7, [%l0 + %lo(_romp)]
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Step 3: compute number of windows and set up tables.
|
* Step 3: compute number of windows and set up tables.
|
||||||
|
@ -6266,6 +6277,6 @@ _intrcnt:
|
||||||
_eintrcnt:
|
_eintrcnt:
|
||||||
|
|
||||||
.comm _nwindows, 4
|
.comm _nwindows, 4
|
||||||
.comm _promvec, 4
|
.comm _romp, 4
|
||||||
.comm _qs, 32 * 8
|
.comm _qs, 32 * 8
|
||||||
.comm _whichqs, 4
|
.comm _whichqs, 4
|
||||||
|
|
Loading…
Reference in New Issue