Subject: Re: -4/470?
To: None <port-sparc@NetBSD.ORG>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: port-sparc
Date: 02/21/1997 13:20:56
>> The 1.2 INSTALL document states that the -4/400 series is not fully
>> supported, and indeed, here's what I see on a 470: [Watchdog reset
>> before even the copyright message comes out]
> For the record, you need a kernel built with `options MMU_3L' to get
> 4/400 support.
Okay, I've tried this.
>> Has this changed in -current? Is anyone working on it? What more
>> is needed to get it functioning (not necessarily well)?
> Last time I booted NetBSD on a 4/490 it would properly complete
> auto-configuration. I had no root filesystem to go any further; an
> attempt to boot diskless failed on `DMA underrun' errors from `ie0',
> probably because it needs IOCACHE support.
I just tried playing with it on a 4/470. Initially it fell over during
autoconfig thusly
....
vmel0 at mainbus0
vmes0 at mainbus0
ie2 at vmes0 addr 0xff31ff02 vec 0x76data fault: pc=f80ed838 addr=fe024742 ser=80<INVAL>
panic: kernel fault
Stopped at _Debugger+0x4: jmpl [%o7 + 0x8], %g0
db>
When I yanked ie2 (ie1-ie4, actually) out of the kernel config file and
tried again, it got farther:
[twirler, copyright, blah blah, scrolled off screen before I could
ten-finger copy it]
real mem = 33529856
avail mem = 28082176
using 409 buffers containing 3350528 bytes of memory
bootpath: /vmes0/si0/sd@0,0
mainbus0 (root)
cpu0 at mainbus0: SUN-4/400 series (L64812 or ACT8847 FPU)
cpu0: 131072 byte write-back, 32 bytes/line, sw flush cache enabled
obio0 at mainbus0
clock0 at obio0 addr 0xf2000000: mk48t02 (eeprom)
timer0 at obio0 addr 0xef000000 delay constant 14
memreg0 at obio0 addr 0xf4000000
zs0 at obio0 addr 0xf1000000 pri 12, softpri 6
zs0a: console i/o
zs1 at obio0 addr 0xf0000000 pri 12, softpri 6
ie0 at obio0 addr 0xf6000000 pri 6 address 08:00:20:09:d9:1a, type onboard
vmel0 at mainbus0
vmes0 at mainbus0
si0 at vmes0 addr 0xff200000 vec 0x40 pri 3
si0: options=1<DMA>
scsibus0 at si0
sd0 at scsibus0 targ 0 lun 0: <FUJITSU, M2266S-512, 001F> SCSI2 0/direct fixed
sd0: 1029MB, 1658 cyl, 15 head, 84 sec, 512 bytes/sec x 2107704 sectors
root device (default sd0a):
swap device (default sd0b):
root on sd0a
init: copying out flags `-s' 3
init: copying out path `/sbin/init' 11
panic: region_free: pm != me_pmap
Stopped at _Debugger+0x4: jmpl [%o7 + 0x8], %g0
db>
So I typed "trace" and "ps", and got
db> trace
_region_free
_pmap_page_protect4_4c
_vm_fault
_mem_access_fault
normal_mem_fault
_copyout(f9ef0098, f8158ca8, f861a000, 0, 0, 0)
_trap(5, 11100085, 3670, f9ef1fb0, 11100085, f9ef1fb0)
slowtrap(2a000, ffffffff, 24d94, f8020598, 0, f9ef1fb0)
db> ps
pid proc addr uid ppid pgrp flag stat em comm wchan
3 0xf8625e00 0xf9ef4000 0 1 1 000004 2 netbsd init
2 0xf8602400 0xf9ef2000 0 0 0 000204 3 netbsd pagedaemon thrd_sleep 0xf81506e4
1 0xf8602600 0xf9ef0000 0 0 1 004004 2 netbsd init
0 0xf8152c88 0xf8133fe0 0 -1 0 000204 3 netbsd swapper scheduler 0xf8152c88
db>
I dunno if seeing this helps anyone any; I'll be investigating a bit
more myself, but in case this says anything to anyone....
I'm working with a basically 1.2 system. The MMU_3L code is clearly
not well tested; I had to add a couple of lines to sparc/pmap.c to even
get it to compile:
--- OLD/sys/arch/sparc/sparc/pmap.c Thu Jan 1 00:00:00 1970
+++ NEW/sys/arch/sparc/sparc/pmap.c Thu Jan 1 00:00:00 1970
@@ -3653,8 +3653,10 @@
#ifdef MMU_3L
TAILQ_INIT(&pm->pm_reglist);
if (mmu_3l)
+{ int i;
for (i = NUREG; --i >= 0;)
pm->pm_regmap[i].rg_smeg = reginval;
+}
#endif
}
#if defined(SUN4M)
so it's probably just a matter of debugging...but I would take a while
over it, since I've got zero familiarity with the SPARC pmap stuff.
der Mouse
mouse@rodents.montreal.qc.ca
7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B