Subject: Re: Does NetBSD 2.0 work with the Raq2?
To: None <port-cobalt@NetBSD.org>
From: John Klos <john@ziaspace.com>
List: port-cobalt
Date: 01/07/2005 15:18:44
(I decided to cc: the author of CoLo, to see if there's any interest in us 
poor no-two-stage-bootloader NetBSD users)


> I guess 2.0's (GENERIC) kernel is too big (> 1000000 Bytes). I've
> (cross) compiled a reduced (nfs) kernel for this purposes...

Ok. I can boot a kernel than compresses to less than 1000000 bytes. But, 
while I can leave SCSI in and take IP Filter out and have it boot, I can't 
boot with IP Filter in even without SCSI and ddb... Strange...

Also, while I'm booting from the disk just fine, I still can't boot via 
NFS even with the 1.6.2 kernel. Any ideas, anyone?

I suppose port-cobalt is an excellent candidate for a two-stage 
bootloader. I looked around, and there is one:

http://www.colonel-panic.org/cobalt-mips/

It's a replacement bootloader called "CoLo", which is a mini-Linux kernel 
and tools which can load larger kernels. It has a chain mode, so it can be 
loaded without flashing the firmware, and after it loads, it can read a 
script and then load another kernel.

When I tried to load a full kernel with IP Filter, SCSI, ddb, ntp, and a 
bunch of other things, it got to where it says "Waiting 2 seconds for the 
SCSI bus...", then hung.

I think that using this bootloader would be a natural way to run a useful 
2.0 system, and I'd be happy to make a diff for the FAQ once I get it 
going. But the lack of a working system and the lack of a way (that I know 
about) to get into the debugger leaves me with little clue about what this 
bootloader might be doing differently that the NetBSD kernel expects.

Thanks,
John Klos



The full boot log follows:

Cobalt Microserver Diagnostics - 'We serve it, you surf it'
Built Wed Mar  3 21:26:25 PST 1999

  1.LCD Test................................PASS
  2.Controller Test.........................PASS
  5.Bank 0:.................................64M
  6.Bank 1:.................................64M
  7.Bank 2:.................................0M
  8.Bank 3:.................................0M
  9.Serial Test.............................PASS
10.PCI Expansion Slot....................**EMPTY**
12.IDE Test................................PASS
13.Ethernet Test...........................PASS
16.RTC Test................................PASS
BOOTLOADER: trying to boot from partition /dev/hda1
Decompressing  done
Decompressing \ done.

[ "CoLo" v1.16 ]
stage2: 87fa0000-88000000
cpu: clock 250.000MHz
pci: unit type <RaQ2>
tulip: #0 device 21143
tulip: #1 device 21143
tulip: {00:10:e0:00:3f:58}
ide: resetting
boot: running boot menu
1> lcd 'Booting...'
1> mount
ide: {WDC AC313000R}
ide: LBA 25429824
ide: supports PIO mode 4
ide: mode 4 timing
ide: partition 1
ext2: revision 0
1> lcd 'Booting...' /dev/{mounted-volume}
1> -load /boot/default.colo
0000005f 95t
1> -script
2> mount hda1
ext2: revision 0
2> load /boot/netbsdfull.gz
00117d28 1146152t
2> execute
elf32: 00001000 - 0028a1af (80001000) (ffffffff.80000000)
elf32: 80001000 (80001000) 2385664t + 273072t
invalid bootinfo (standalone boot?)
[ Kernel symbol table missing! ]
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.0 (RAQ2FULL-$Revision: 2.0.0.0 $) #0: Thu Jan  6 16:59:45 PST 2005
         john@shiva.ziaspace.com:/usr/obj/sys/arch/cobalt/compile/RAQ2FULL
total memory = 128 MB
avail memory = 122 MB
mainbus0 (root)
com0 at mainbus0 addr 0x1c800000 level 3: st16650a, working fifo
com0: console
cpu0 at mainbus0: QED RM5200 CPU (0x28a0) Rev. 10.0 with built-in FPU Rev. 10.0
cpu0: 32KB/32B 2-way set-associative L1 Instruction cache, 48 TLB entries
cpu0: 32KB/32B 2-way set-associative write-back L1 Data cache
panel0 at mainbus0 addr 0x1f000000
gt0 at mainbus0 addr 0x14000000
pci0 at gt0
pci0: i/o space, memory space enabled, rd/line, wr/inv ok
pchb0 at pci0 dev 0 function 0: Galileo GT-64111 System Controller, rev 1
tlp0 at pci0 dev 7 function 0: DECchip 21143 Ethernet, pass 4.1
tlp0: interrupting at level 1
tlp0: Ethernet address 00:10:e0:00:3f:58
lxtphy0 at tlp0 phy 1: LXT970 10/100 media interface, rev. 3
lxtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
siop0 at pci0 dev 8 function 0: Symbios Logic 53c860 (ultra scsi)
siop0: interrupting at irq 4
scsibus0 at siop0: 8 targets, 8 luns per target
pcib0 at pci0 dev 9 function 0
pcib0: VIA Technologies VT82C586 (Apollo VP) PCI-ISA Bridge, rev 39
viaide0 at pci0 dev 9 function 1
viaide0: VIA Technologies VT82C586 (Apollo VP) ATA33 controller
viaide0: bus-master DMA support present
viaide0: primary channel configured to compatibility mode
viaide0: primary channel interrupting at irq 14
atabus0 at viaide0 channel 0
viaide0: secondary channel configured to compatibility mode
viaide0: secondary channel interrupting at irq 15
atabus1 at viaide0 channel 1
VIA Technologies VT83C572 USB Controller (USB serial bus, revision 0x02) at pci
tlp1 at pci0 dev 12 function 0: DECchip 21143 Ethernet, pass 4.1
tlp1: interrupting at level 2
tlp1: Ethernet address 00:10:e0:00:3f:7d
lxtphy1 at tlp1 phy 1: LXT970 10/100 media interface, rev. 3
lxtphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
scsibus0: waiting 2 seconds for devices to settle...