Remove useless msgbufmapped definition.

Two cases of incorrect addressing while not mapped at KERNBASE.
Some more sun4m stuff.
This commit is contained in:
pk 1995-05-30 20:29:42 +00:00
parent e9f4bff2cc
commit ff6265b288
1 changed files with 38 additions and 18 deletions

View File

@ -182,7 +182,7 @@ _cputypval:
.asciz "sun4c"
.ascii " "
_cputypvar:
.asciz "compatibility"
.asciz "compatible"
_cputypvallen = _cputypvar - _cputypval
ALIGN
#endif
@ -587,10 +587,6 @@ _trapbase:
*/
.skip 4096
/* the message buffer is always mapped */
_msgbufmapped:
.word 1
#ifdef DEBUG
/*
* A hardware red zone is impossible. We simulate one in software by
@ -2490,14 +2486,15 @@ dostart:
ld [%o4 + NO_NEXTNODE], %o4
call %o4
mov 0, %o0 ! node
set _cputypvar, %o1 ! name = "compatibility"
set _cputypval, %o2 ! buffer ptr (assume buffer long enough)
mov %o0, %l0
set _cputypvar-KERNBASE, %o1 ! name = "compatible"
set _cputypval-KERNBASE, %o2 ! buffer ptr (assume buffer long enough)
ld [%g7 + PV_NODEOPS], %o4 ! (void)pv->pv_nodeops->no_getprop(...)
ld [%o4 + NO_GETPROP], %o4
call %o4
nop
set _cputypval, %o2 ! buffer ptr
set _cputypval-KERNBASE, %o2 ! buffer ptr
ldub [%o2 + 4], %o0 ! which is it... "sun4c", "sun4m", "sun4d"?
cmp %o0, 'c'
beq is_sun4c
@ -2691,21 +2688,43 @@ remap_done:
mov IE_ALLIE, %l1
nop; nop ! paranoia
stb %l1, [%l0]
b startmap_done
nop
b,a startmap_done
#endif /* SUN4 */
2:
#if defined(SUN4M)
cmp %g4, CPU_SUN4M ! skip for sun4m!
bne 3f
set _mapme-KERNBASE, %o0
! rominterpret("0 0 f8000000 15c6a0 map-pages");
ld [%g7 + PV_EVAL], %o1
call %o1 ! forth eval
nop
b startmap_done
nop
/*
* On entry:
* %l0: first VA in current map
* %l1: first VA to be mapped
* %l2: last VA to be mapped
*/
set 1 << 24, %l3 ! region size in bytes
set SRMMU_CXTPTR, %o0 !
lda [%o0] ASI_SRMMU, %o0 ! read CTPR
sll %o0, (8-4), %o0
! assume ctx==0
lda [%o0] ASI_BYPASS, %o0 ! load root-level PTP using MMU by-pass
srl %o0, 4, %o0 ! to get at 1st level PTP
sll %o0, 8, %o0 ! shift bits into position
srl %l0, 24-2, %l0 ! RGSHIFT-2: word entry in PTP
add %l0, %o0, %o1
srl %l1, 24-2, %l0
add %l0, %o0, %o2
0:
lda [%o1] ASI_BYPASS, %l4 ! regmap[highva] = regmap[lowva];
sta %l4, [%o2] ASI_BYPASS
add %o1, 4, %o1
add %o2, 4, %o2
add %l3, %l1, %l1 ! highva += regsiz;
cmp %l1, %l2 ! done?
blu 0b ! no, loop
add %l3, %l0, %l0 ! (and lowva += regsz)
b,a startmap_done
#endif /* SUN4M */
3:
! botch! We should blow up.
@ -2815,6 +2834,7 @@ noplab: nop
wr %l0, 0, %tbr
nop; nop; nop ! paranoia
/*
* Ready to run C code; finish bootstrap.
*/