Contributed by marco on from the UltraSparcIII-support-for-all dept.
Within the first couple of days Jason fixed a problem with schizo(4)s iommu code that gave us a working Fibre Channel disk controller. Not much later I found out that Sun had removed a feature from the UltraSPARC III that we used in our TLB flushing code and added a workaround. That made it possible to go multiuser on the Blade 2000. But we still had some horrid hacks (such as disabling the caches) and we joked that the 900MHz Blade 2000 ran at about the same speed as a 140MHz Ultra 1. We cleaned things up a bit and committed most of the code, disabled by a HORRID_III_HACK define. Shortly after that I discovered that enabling the I-cache worked and gained us quite a bit of performance. But the D-cache had to stay disabled. And that's the state I left things when I got on my bike for a tour through beautiful British Columbia.
Shipping a Blade 2000 to Europe proved to be very costly, so I didn't have any hardware to hack on when I came home. I had enough other things to work on, but it frustrated me immensely that we were going to ship 4.0 without UltraSPARC III support. Fortunately about a week ago someone lent me a Sun Fire v210 (thanks Toine!). Finally I had hardware to hack on, but the v210 had its own problems. The onboard bge(4)s didn't work, and the putting a NIC in the machine's PCI slot didn't work either. On top of that the machine didn't even boot a kernel with 1GB of memory. Luckily Theo already had found out that if you took out half of the memory the machine booted fine. And url(4) gave me working net.
I fixed some bugs in schizo(4)'s interrupt handling code, and suddenly dc(4) in the machine's PCI slot worked too. Then I tweaked the HARRID_III_HACK a bit such that it would only disable the D-cache if we were actually running on an UltraSPARC III. This gave us a GENERIC kernel that works on UltraSPARC I, II and III. Now if I only could fix the onboard bge(4)s, I could claim we really supported the v210.
I started digging through OpenSolaris and Linux code, and found some clues that suggested that Sun tried to economize by not fitting the normal EEPROM which would contain things such as MAC addresses. Instead the MAC addresses are stored in the Open Firmware PROM. Unfortunately the missing EEPROM made some checks in our bge(4) fail and the driver wouldn't fully attach. Skipping those checks for onboard Sun chips resulted in working onboard ethernet.
So 4.0 will likely ship with preliminary UlstraSPARC III support. The D-cache is still disabled for these machines, but even without the data cache, these machines are among the fastest sparc64 machines that we currently support. There are some other limitations (vgafb(4) crashes the blade 1000/2000 due to some wierd schizo(4) hardware bug so those machines are serial console only, the v210/v240 only works if only memory bank 0 is filled). The support is included in recent snapshots, so I'd like to encourage people with the opportunity to try OpenBSD on UltraSPARC III machines to do so.
(Comments are closed)
By Anonymous Coward (131.130.1.135) on
By Anonymous Coward (87.194.34.157) on
Comments
By Brad (216.138.195.228) brad at comstyle dot com on
Yes, it means exactly that. Try out a 280R or any other UIII-based system and see what happens. Give some feedback.
Comments
By Anonymous Coward (24.148.72.216) on
>
> Yes, it means exactly that. Try out a 280R or any other UIII-based system and see what happens. Give some feedback.
I have a bunch of 280Rs.
I cannot ship hardware, but I can give full remote access to the machine and to the RSC. Is there any interest by developers in using a remote machine to hack on the US-III?
Comments
By Brad (216.138.195.228) brad at comstyle dot com on
> >
> > Yes, it means exactly that. Try out a 280R or any other UIII-based system and see what happens. Give some feedback.
>
> I have a bunch of 280Rs.
>
> I cannot ship hardware, but I can give full remote access to the machine and to the RSC. Is there any interest by developers in using a remote machine to hack on the US-III?
There would be more interest in you simply booting a snapshot on the system, reporting back on whether it works or not, and if not what happens with any messages, partial dmesg, etc. If it does work then provide a full dmesg.
By Ste Jones (217.205.77.85) on
screen not found.
keyboard not found.
Keyboard not present. Using ttya for input and output.
Sun Fire 280R (2 X UltraSPARC-III) , No Keyboard
Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.2, 4096 MB memory installed, Serial #51378469.
Ethernet address 0:3:ba:f:f9:25, Host ID: 830ff925.
Rebooting with command: boot
Boot device: /pci@8,600000/SUNW,qlc@4/fp@0,0/disk@w21000004cf44a084,0:a File an
d args:
OpenBSD IEEE 1275 Bootblock 1.1
..>> OpenBSD 4.0 (obj) #1: Tue Aug 29 02:39:00 MDT 2006
deraadt@sparc64.openbsd.org:/usr/src/sys/arch/sparc64/stand/ofwboot/obj
: trying bsd...
Booting /pci@8,600000/SUNW,qlc@4/fp@0,0/disk@w21000004cf44a084,0:a/bsd
4757320@0x1000000+177592@0x1800000+4016712@0x182b5b8
symbols @ 0xfef56280 58+279840+167601 start=0x1000000
[ using 448152 bytes of bsd ELF symbol table ]
console is /pci@8,700000/ebus@5/serial@1,400000:a
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights Reserved.
Copyright (c) 1995-2006 OpenBSD. All rights reserved. http://www.OpenBSD.org
OpenBSD 4.0 (GENERIC) #944: Tue Aug 29 04:02:47 MDT 2006
deraadt@sparc64.openbsd.org:/usr/src/sys/arch/sparc64/compile/GENERIC
total memory = 4294967296
avail memory = 3914809344
using 17126 buffers containing 214745088 bytes of memory
bootpath: /pci@8,600000/SUNW,qlc@4,0/fp@0,0/disk@21000004cf44a084,0
mainbus0 (root): Sun Fire 280R (2 X UltraSPARC-III)
cpu0 at mainbus0: SUNW,UltraSPARC-III @ 750 MHz, version 0 FPU
cpu0: physical 128K instruction (32 b/l), 256K data (32 b/l), 8192K external (512 b/l)
memory-controller at mainbus0 not configured
memory-controller at mainbus0 not configured
schizo0 at mainbus0: "Schizo", ign 200, bus B 0 to 0
schizo0: dvma map ff800000-ffffdfff, iotdb 15ad4000-15ad6000
pci0 at schizo0
ebus0 at pci0 dev 5 function 0 "Sun PCIO Ebus2 (US III)" rev 0x01
"flashprom" at ebus0 addr 0-1fffff not configured
"bbc" at ebus0 addr 0-fffff not configured
power0 at ebus0 addr 30002e-30002f, 300600-300607
pcfiic0 at ebus0 addr 2e-2f, 2d-2d ipl 35
iic0 at pcfiic0
"at24c64" at iic0 addr 0xd0 not configured
"at24c64" at iic0 addr 0xd2 not configured
"at24c64" at iic0 addr 0xd4 not configured
"at24c64" at iic0 addr 0xd6 not configured
"at24c64" at iic0 addr 0x50 not configured
pcfiic1 at ebus0 addr 30-31 ipl 35
iic1 at pcfiic1
"at24c64" at iic1 addr 0x50 not configured
admtemp0 at iic1 addr 0x18: max1617
"at24c64" at iic1 addr 0x51 not configured
admtemp1 at iic1 addr 0x4c: max1617
"tda8444" at iic1 addr 0x24 not configured
"at24c64" at iic1 addr 0x54 not configured
"pcf8574" at iic1 addr 0x39 not configured
"pcf8574" at iic1 addr 0x3d not configured
"pcf8574" at iic1 addr 0x3e not configured
"at24c64" at iic1 addr 0x52 not configured
"at24c64" at iic1 addr 0x53 not configured
"at24c64" at iic1 addr 0x55 not configured
"at24c64" at iic1 addr 0x56 not configured
"at24c64" at iic1 addr 0x57 not configured
"ds1307" at iic1 addr 0x68 not configured
"beep" at ebus0 addr 32-37 not configured
rtc0 at ebus0 addr 300070-300071 ipl 36: ds1287
"gpio" at ebus0 addr 300600-300607 not configured
"pmc" at ebus0 addr 300700-300701 not configured
lpt0 at ebus0 addr 300278-300287, 30002e-30002f, 700000-70000f ipl 28: polled
"rsc-control" at ebus0 addr 3062f8-3062ff ipl 46 not configured
"rsc-console" at ebus0 addr 3083f8-3083ff ipl 45 not configured
sab0 at ebus0 addr 400000-40007f ipl 34: rev 3.2
sabtty0 at sab0 port 0: console i/o
sabtty1 at sab0 port 1
gem0 at pci0 dev 5 function 1 "Sun ERI Ether" rev 0x01: ivec 0x21d, address 00:03:ba:0f:f9:25
luphy0 at gem0 phy 0: LU6612 10/100 PHY, rev. 1
luphy1 at gem0 phy 1: LU6612 10/100 PHY, rev. 1
ohci0 at pci0 dev 5 function 3 "Sun USB" rev 0x01: ivec 0x21f, version 1.0, legacy support
usb0 at ohci0: USB revision 1.0
uhub0 at usb0
uhub0: Sun OHCI root hub, rev 1.00/1.00, addr 1
uhub0: 4 ports with 4 removable, self powered
siop0 at pci0 dev 6 function 0 "Symbios Logic 53c875" rev 0x37: ivec 0x218, using 4K of on-board RAM
scsibus0 at siop0: 16 targets
cd0 at scsibus0 targ 6 lun 0: <TOSHIBA, DVD-ROM SD-M1401, 1009> SCSI2 5/cdrom removable
siop1 at pci0 dev 6 function 1 "Symbios Logic 53c875" rev 0x37: ivec 0x219, using 4K of on-board RAM
scsibus1 at siop1: 16 targets
schizo1 at mainbus0: "Schizo", ign 200, bus A 0 to 1
schizo1: dvma map ff800000-ffffdfff, iotdb 15d42000-15d44000
pci1 at schizo1
isp0 at pci1 dev 4 function 0 "QLogic ISP2200" rev 0x05: ivec 0x204
isp0: invalid NVRAM header
scsibus2 at isp0: 256 targets
sd0 at scsibus2 targ 0 lun 0: <SEAGATE, ST336605FSUN36G, 0438> SCSI3 0/direct fixed
sd0: 34732MB, 24622 cyl, 27 head, 107 sec, 512 bytes/sec, 71132959 sec total
sd1 at scsibus2 targ 1 lun 0: <SEAGATE, ST336605FSUN36G, 0438> SCSI3 0/direct fixed
sd1: 34732MB, 24622 cyl, 27 head, 107 sec, 512 bytes/sec, 71132959 sec total
ppb0 at pci1 dev 1 function 0 "DEC 21154 PCI-PCI" rev 0x05
pci2 at ppb0 bus 1
"Sun Cassini" rev 0x01 at pci2 dev 0 function 0 not configured
pcons at mainbus0 not configured
No counter-timer -- using %tick at 750MHz as system clock.
root on sd0a
rootdev=0x700 rrootdev=0x1100 rawdev=0x1102
Automatic boot in progress: starting file system checks.
/dev/rsd0a: file system is clean; not checking
/dev/rsd0f: file system is clean; not checking
/dev/rsd0g: file system is clean; not checking
/dev/rsd0d: file system is clean; not checking
/dev/rsd0e: file system is clean; not checking
setting tty flags
starting network
starting system logger
starting initial daemons: ntpd.
savecore: no core dump
checking quotas: done.
building ps databases: kvm dev.
clearing /tmp
starting pre-securelevel daemons:.
setting kernel security level: kern.securelevel: 0 -> 1
creating runtime link editor directory cache.
preserving editor files
ssh-keygen: generating new DSA host key... done.
ssh-keygen: generating new RSA host key... done.
ssh-keygen: generating new RSA1 host key... done.
openssl: generating new isakmpd RSA key... done.
starting network daemons: sendmail inetd sshd.
starting local daemons:.
standard daemons: cron.
Wed Aug 30 14:39:32 BST 2006
OpenBSD/sparc64 (foo.my.domain) (console)
login: root
Password:
OpenBSD 4.0 (GENERIC) #944: Tue Aug 29 04:02:47 MDT 2006
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
You have mail.
Terminal type? [sun]
Comments
By djm@ (203.217.30.86) on
By No Joy (163.192.21.42) on
Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.2, 4608 MB memory installed, Serial #50507540.
Ethernet address 0:3:ba:X:XX:XX, Host ID: XXXXXXXX.
{0} ok
{0} ok boot cdrom
Boot device: /pci@8,700000/scsi@6/disk@6,0:f File and args:
OpenBSD IEEE 1275 Bootblock 1.1
..>> OpenBSD 4.0 (obj) #1: Tue Aug 29 17:53:44 MDT 2006
deraadt@sparc64.openbsd.org:/usr/src/sys/arch/sparc64/stand/ofwboot/obj
: trying bsd...
Booting /pci@8,700000/scsi@6/disk@6,0:f/bsd
2578928@0x1000000+3252920@0x1800000+941384@0x1b1a2b8
symbols @ 0xfefbc200 42 start=0x1000000
Memory Address not Aligned
{0} ok
This machine does have 4608 MB.
Comments
By Theo (199.185.137.1) on
Other smaller problems are being fixed as we get bug reports. But this is not really the right forum for bug reports. Mail the dmesg reports where they belong (guess) and we will work on it.
Comments
By Anonymous Coward (200.168.74.54) on
>
> Other smaller problems are being fixed as we get bug reports. But this is not really the right forum for bug reports. Mail the dmesg reports where they belong (guess) and we will work on it.
$ host 199.185.137.1
1.137.185.199.in-addr.arpa domain name pointer zeus.theos.com.
Oh, theo@ !
By Anonymous Coward (80.216.84.21) on
I wonder if that SunPCI III card is supported as well... ;)
Good work!
Comments
By Anonymous Coward (80.216.84.21) on
>
> I wonder if that SunPCI III card is supported as well... ;)
>
> Good work!
I found the serial cable. Here is the dmesg:
Boot device: /pci@1e,600000/ide@d/cdrom@2,0:f File and args:
OpenBSD IEEE 1275 Bootblock 1.1
..>> OpenBSD 4.0 (obj) #1: Tue Aug 29 17:53:44 MDT 2006
deraadt@sparc64.openbsd.org:/usr/src/sys/arch/sparc64/stand/ofwboot/obj
: trying bsd...
Booting /pci@1e,600000/ide@d/cdrom@2,0:f/bsd
2463600@0x1000000+3252280@0x1800000+942024@0x1b1a038
symbols @ 0xfeda8200 42 start=0x1000000
console is /pci@1e,600000/isa@7/serial@0,3f8
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 1995-2006 OpenBSD. All rights reserved. http://www.OpenBSD.org
OpenBSD 4.0 (RAMDISK) #710: Tue Aug 29 19:57:16 MDT 2006
deraadt@sparc64.openbsd.org:/usr/src/sys/arch/sparc64/compile/RAMDISK
total memory = 1073741824
avail memory = 972431360
using 6553 buffers containing 53682176 bytes of memory
bootpath: /pci@1e,600000/ide@d,0/cdrom@2,0:f
mainbus0 (root): Sun Blade 1500 (Silver)
cpu0 at mainbus0: SUNW,UltraSPARC-IIIi @ 1503 MHz, version 0 FPU
cpu0: physical 128K instruction (32 b/l), 256K data (32 b/l), 4096K external (6)
memory-controller at mainbus0 not configured
schizo0 at mainbus0: "Tomatillo", ign 780, bus A 0 to 1
schizo0: dvma map c0000000-dfffffff, iotdb 50b2000-5132000
pci0 at schizo0
ebus0 at pci0 dev 7 function 0 vendor 0x10b9 product 0x1533 rev 0x00
"flashprom" at ebus0 addr 0-fffff not configured
rtc0 at ebus0 addr 70-71: m5823
"i2c" at ebus0 addr 320-321 ipl 46 not configured
"power" at ebus0 addr 800-82f ipl 32 not configured
com0 at ebus0 addr 3f8-3ff ipl 44: ns16550a, 16 byte fifo
com0: console
com1 at ebus0 addr 2e8-2ef ipl 44: ns16550a, 16 byte fifo
"dma" at ebus0 addr 0-ffff not configured
vendor 0x10b9 product 0x7101 (class prehistoric subclass miscellaneous, rev 0x0d
vendor 0x10b9 product 0x5451 (class multimedia subclass audio, rev 0x02) at pcid
ohci0 at pci0 dev 10 function 0 vendor 0x10b9 product 0x5237 rev 0x03: ivec 0x7t
usb0 at ohci0: USB revision 1.0
uhub0 at usb0
uhub0: vendor 0x10b9 OHCI root hub, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
ohci1 at pci0 dev 11 function 0 vendor 0x10b9 product 0x5237 rev 0x03: ivec 0x7t
usb1 at ohci1: USB revision 1.0
uhub1 at usb1
uhub1: vendor 0x10b9 OHCI root hub, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
pciide0 at pci0 dev 13 function 0 vendor 0x10b9 product 0x5229 rev 0xc4: DMA, cI
pciide0: using ivec 0x798 for native-PCI interrupt
wd0 at pciide0 channel 0 drive 0: <ST3120026A>
wd0: 16-sector PIO, LBA48, 114473MB, 234441648 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
atapiscsi0 at pciide0 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <TOSHIBA, ODD-DVD SD-R1512, 1010> SCSI0 5/cdrom re
cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2
ppb0 at pci0 dev 2 function 0 vendor 0x104c product 0xac23 rev 0x02
pci1 at ppb0 bus 1
ohci2 at pci1 dev 8 function 0 vendor 0x1033 product 0x0035 rev 0x43: ivec 0x790
usb2 at ohci2: USB revision 1.0
uhub2 at usb2
uhub2: vendor 0x1033 OHCI root hub, rev 1.00/1.00, addr 1
uhub2: 3 ports with 3 removable, self powered
ohci3 at pci1 dev 8 function 1 vendor 0x1033 product 0x0035 rev 0x43: ivec 0x790
usb3 at ohci3: USB revision 1.0
uhub3 at usb3
uhub3: vendor 0x1033 OHCI root hub, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
vendor 0x1033 product 0x00e0 (class serial bus subclass USB, rev 0x04) at pci1 d
vendor 0x104c product 0x8024 (class serial bus subclass Firewire, rev 0x00) at d
vendor 0x8086 product 0xb555 (class bridge subclass miscellaneous, rev 0x03) atd
ppm at mainbus0 not configured
schizo1 at mainbus0: "Tomatillo", ign 7c0, bus B 0 to 0
schizo1: dvma map c0000000-dfffffff, iotdb 5166000-51e6000
pci2 at schizo1
bge0 at pci2 dev 2 function 0 vendor 0x14e4 product 0x1647 rev 0x00, BCM5703 A2t
: failed to read station address
can't disestablish PCI interrupts yet
vendor 0x1002 product 0x5159 (class display subclass VGA, rev 0x00) at pci2 devd
i2c at mainbus0 not configured
pcons at mainbus0 not configured
No counter-timer -- using %tick at 1503MHz as system clock.
rd0: fixed, 6144 blocks
root on rd0a
rootdev=0x500 rrootdev=0x3d00 rawdev=0x3d02
erase ^?, werase ^W, kill ^U, intr ^C, status ^T
(I)nstall, (U)pgrade or (S)hell?
By Inuczu (148.234.15.12) inuczu@gmail.com on http://www.amables.com
( Snapshot 4.0 from ftp.openbsd.org downloaded the 1 of sept 06)
OpenBSD 4.0 (RAMDISK)#712: Thu Aug 31 22:47:52 MDT 2006
deraadt@sparc64.openbsd.org:/usr/src/sys/arch/sparc64/compile/RAMDISK
total memory = 1073741824
avail memory = 971300864
using 6553 buffer containing 53682176 bytes of memory
bootpath: /pci#8,700000/scsi@6,0/disk@6,0:f
mainbus0 (root):Sun Fire 280R (UltraSparc-III+)
cpu0 at mainbus0: SUNW,UltraSparc-III+ @ 1200 Mhz, version 0 FPU
cpu0: physical 128K instruction (32 b/l), 256K data (32 b/l), 16384K external (512 b/l)
memory-controller at mainbus0 not configured
schizo0 at mainbus0: "Schizo", ign 200, bus B 0 to 0
schizo0: dvma map ff800000-ffffdfff, iotdb 4d00000-4d02000
schizo0: pci bus B error
PCIAFSR=0
PCIAFAR=0
PCICTRL=40000010e003f<DTO_INT,SBH_INT,EEN>
panic: schizo0: fatal
halted
Hope this help...
There is no "linux for dummies", linux it is indeed for dummies :P