Subject: IP12 support in-tree
To: None <port-sgimips@netbsd.org>
From: Antti Kantee <pooka@cs.hut.fi>
List: port-sgimips
Date: 04/11/2004 16:28:32
I've just finished pushing Steve Rumble's IP12 (4D/30, 4D/35, Indigo
R3k) code into -current (hopefully the changes will make it also into
NetBSD 2.0).  Machines should be able to boot to multiuser at least using
a NFS root now (sd0 root untested, probably some funnies hiding there).

Things seem to work mostly okay, the only big issue is with nfs root
going berzerk if you try to use the default fragment sizes.  Steve hinted
that using small read and write fragment sizes might do the trick,
and at least it's a working workaround for me:
    dm:/m/dm/nfs/4lom   /           nfs     rw,-w=1024,-r=1024      0 0

A kernel config file is not yet available due to changes that are going to
(hopefully!) happen before NetBSD 2.0.  But for the millions of people
out there who can't just wait to run NetBSD on their IP12's, it's pretty
easy to mop GENERIC32_IP2x into a good IP12 kernel conf:
  * change TEXTADDR from 0x88069000 to 0x80002000
  * replace MIPS3 with MIPS1 (yes, replace, needs investigation)
  * add: pic0 at mainbus0 addr 0x1fa00000
  * add: gio0 at pic0

Thanks go naturally to Steve Rumble for writing most of the code and an
endless stream of answers to questions about SGI hardware, and also to
Chris Sekiya for shipping me a battery to replace the dead one on my IP12
(.. and answering questions.. and working on abstracting sgimips enough
for support to be easily dropped in.. and ..).

Enjoy!  Obligatory bootlog follows.

>> hinv
              Memory size: 32 Mbytes
   Instruction cache size: 32 Kbytes
          Data cache size: 32 Kbytes
            System option: Audio processor, revision 3
                CPU board: IP12 33 MHz, with FPU
            System option: Audio processor, revision 3
>> boot
Setting $netaddr to 10.181.181.183 (from server dm)
Obtaining netbsd from server dm
1434800+0+170476 entry: 0x80069000
argv[0]: bootp()netbsd
[ Kernel symbol table missing! ]
Mem block 1: type 0, base 0x0000, size 0x0001
Mem block 2: type 2, base 0x0001, size 0x0fff
Mem block 3: type 2, base 0x1000, size 0x0800
Mem block 4: type 2, base 0x1800, size 0x0800
Mem block 5: type 4, base 0xfc00, size 0x0000
Loading cluster 1 (before kernel): 0x1 / 0x68
Loading cluster 1 (after kernel): 0x1f1 / 0x1000
Loading cluster 2: 0x1000 / 0x1800
Loading cluster 3: 0x1800 / 0x2000
zs channel 0 had address 0xbfb80d10
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 2.0C (4LOM) #367: Sun Apr 11 15:15:22 EEST 2004
         pooka@brain-damage.localhost.fi:/sys/arch/sgimips/compile/obj/4LOM
total memory = 32768 KB
(0 reserved for ARCS)
avail memory = 30308 KB
mainbus0 (root): SGI-IP12 [SGI, IP12], 1 processor
cpu0 at mainbus0: MIPS R3000A CPU (0x230) Rev. 3.0 with MIPS R3010 FPC Rev. 4.0
cpu0: 32KB/4B direct-mapped Instruction cache, 64 TLB entries
cpu0: 32KB/4B direct-mapped write-through Data cache
int0 at mainbus0 addr 0x1fb801c0
pic0 at mainbus0 addr 0x1fa00000
pic0: Revision B: dblk (0x2), iblk (0x8)
pic0: cache disabled, store partial, bus drive
gio0 at pic0
Synchronous ISDN (product 0x04 revision 0x00) at gio0 slot 2 addr 0x1f000000 not configured
hpc0 at gio0 addr 0x1fb80000: SGI HPC1
zsc0 at hpc0 offset 0xd10
zstty0 at zsc0 channel 1 (console i/o)
zstty1 at zsc0 channel 0
zsc1 at hpc0 offset 0xd00
zsc1:  channel 1 not configured
zsc1:  channel 0 not configured
int0: cannot share interrupts yet.
sq0 at hpc0 offset 0x100: SGI Seeq 8003
sq0: Ethernet address 08:00:69:06:2b:01
wdsc0 at hpc0 offset 0x11f: WD33C93A SCSI, rev=0, target 0
scsibus0 at wdsc0: 8 targets, 8 luns per target
dpclock0 at hpc0 offset 0xe00
biomask 0b netmask 0b ttymask 1b clockmask 7f
scsibus0: waiting 2 seconds for devices to settle...
sd0 at scsibus0 target 1 lun 0: <CONNER, CP3500-540MB-3.5, 3236> disk fixed
sd0: drive offline
sd0: sync (200.00ns offset 12), 8-bit (5.000MB/s) transfers
boot device: <unknown>
root device: sq0
dump device: 
file system (default generic): nfs
root on sq0
nfs_boot: trying DHCP/BOOTP
nfs_boot: DHCP next-server: 10.181.181.1
nfs_boot: my_domain=localhost.fi
nfs_boot: my_addr=10.181.181.183
nfs_boot: my_mask=255.255.255.0
nfs_boot: gateway=10.181.181.1
root on dm:/m/dm/nfs/4lom
root time: 0x4079371b
readclock: 2004/4/11/12/16/9
time.tv_sec = 1081685769, time.tv_usec = 960000
init path (default /sbin/init):  
init: copying out flags `-s' 3
init: copying out path `/sbin/init' 11
Enter pathname of shell or RETURN for /bin/sh: 
Terminal type? [unknown] 
Terminal type is unknown.
We recommend creating a non-root account and using su(1) for root access.
# Sun Apr 11 12:17:30 UTC 2004
Starting file system checks:
Setting tty flags.
Setting sysctl variables:
Starting network.
Hostname: 4LOM.localhost.fi
Configuring network interfaces: sq0.
add net default: gateway 10.181.181.1
Adding interface aliases:
Building databases...
Starting syslogd.
Checking for core dump...
savecore: /netbsd: kvm_openfiles: /netbsd: No such file or directory
Apr 11 12:18:00 4LOM savecore: /netbsd: kvm_openfiles: /netbsd: No such file or directory
Setting date via ntp.
setclock: 2004/4/11/12/18/24
Starting rpcbind.
Apr 11 12:18:25 4LOM rpcbind: cannot create socket for udp6
Apr 11 12:18:25 4LOM rpcbind: cannot create socket for tcp6
Mounting all filesystems...
Clearing /tmp.
Checking quotas: done.
Setting securelevel: kern.securelevel: 0 -> 1
Starting virecover.
Starting local daemons:.
Updating motd.
Starting sshd.
Starting inetd.
Starting cron.
Sun Apr 11 12:19:11 UTC 2004

NetBSD/sgimips (4LOM.localhost.fi) (console)

login: pooka
Last login: Sat Apr 10 23:38:25 2004 from brain-damage on ttyp0
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 2.0C (4LOM) #367: Sun Apr 11 15:15:22 EEST 2004

Welcome to NetBSD!

$ ps aux
USER  PID %CPU %MEM VSZ  RSS TT STAT STARTED    TIME COMMAND
root  271 68.3  4.9 528 1600 ?? Rs   12:18PM 0:16.82 /usr/sbin/sshd 
pooka 305 13.7  2.4 232  772 Z0 Ss   12:19PM 0:01.71 -sh 
root    1  1.3  2.5  68  800 ?? Ss   12:16PM 1:07.59 init -s 
root  279  1.6  2.7  80  880 ?? Ss   12:19PM 0:00.43 /usr/sbin/inetd -l 
root    0  0.0  6.6   0 2168 ?? DKs  12:16PM 0:00.00 [swapper]
root    2  0.0  6.6   0 2168 ?? DK   12:16PM 0:00.00 [scsibus0]
root    3  0.4  6.6   0 2168 ?? SK   12:16PM 0:01.29 [nfsio]
root    4  0.4  6.6   0 2168 ?? SK   12:16PM 0:00.75 [nfsio]
root  308  1.3  2.5 236  800 ?? Ss   12:19PM 0:00.26 /usr/sbin/cron 
root    5  0.0  6.6   0 2168 ?? SK   12:16PM 0:00.17 [nfsio]
root    6  0.0  6.6   0 2168 ?? SK   12:16PM 0:00.09 [nfsio]
root    7  0.0  6.6   0 2168 ?? DK   12:16PM 0:00.00 [pagedaemon]
root    8  0.0  6.6   0 2168 ?? DK   12:16PM 0:00.00 [ioflush]
root    9  0.0  6.6   0 2168 ?? DK   12:16PM 0:00.01 [aiodoned]
root   95  0.0  2.5 168  804 ?? Is   12:17PM 0:00.98 /usr/sbin/syslogd -s 
root  139  0.0  2.6 144  856 ?? Is   12:18PM 0:00.25 /usr/sbin/rpcbind -l 
pooka 307  0.0  1.9  88  600 Z0 R+   12:19PM 0:00.18 ps aux 
$

-- 
Antti Kantee <pooka@iki.fi>                     Of course he runs NetBSD
http://www.iki.fi/pooka/                          http://www.NetBSD.org/
                 "connoisseurs do not chill their malts."