Hi, On Tuesday, April 24, 2012 23:58 CEST, Miod Vallat <m...@online.fr> wrote: > Hello, > > I am happy to announce that the current snapshots of OpenBSD support > the IP20, IP22 and IP24 SGI systems. In other words: > > - R4000 and R4400 Indigo (IP20)
This is great! Since its Friday afternoon, I went on as proposed, removing the dust from my Iris Indigo: >> hinv System: IP20 Processor: R4000 50 Mhz, with FPU Primary I-cache size: 8 Kbytes Primary D-cache size: 8 Kbytes Secondary cache size: 1024 Kbytes Memory size: 80 Mbytes Graphics: GR2-Elan SCSI Disk: scsi(0)disk(1) SCSI Disk: scsi(0)disk(2) SCSI Disk: Controller 0, ID 3, removable media >> version PROM Monitor SGI Version 4.0.5G Rev B IP20, Nov 10, 1992 (BE) >> printenv OSLoader=boot OSLoadFilename=/bsd AutoLoad=Yes TimeZone=PST8PDT console=d diskless=0 dbaud=9600 volume=80 sgilogo=y netaddr=10.0.0.31 eaddr=08:00:69:06:cc:6f ConsoleOut=serial(0) ConsoleIn=serial(0) cpufreq=50 SystemPartition=scsi(0)disk(1)rdisk(0)partition(8) OSLoadPartition=scsi(0)disk(1)rdisk(0)partition(0) So reading the INSTALL.sgi file, I have to boot the bsd.rd.IP22 kernel, after the bootecoff. Then I got this far, until the box froze: >> bootp()bootecoff bootp()bsd.rd.IP22 Setting $netaddr to 10.0.0.31 (from server ) Obtaining bootecoff from server Cannot load bootp()bootecoff. Unable to execute bootp()bootecoff >> bootp()bootecoff bootp()bsd.rd.IP22 Setting $netaddr to 10.0.0.31 (from server ) Obtaining bootecoff from server 38720+208+2080 entry: 0x880020f0 Starting receive DMA in eput() OpenBSD/sgi-IP20 ARCBios boot version 1.1 arg 0: bootp()bootecoff arg 1: bootp()bsd.rd.IP22 arg 2: ConsoleIn=serial(0) arg 3: ConsoleOut=serial(0) arg 4: SystemPartition=scsi(0)disk(1)rdisk(0)partition(8) arg 5: OSLoader=boot arg 6: OSLoadPartition=scsi(0)disk(1)rdisk(0)partition(0) arg 7: OSLoadFilename=/bsd Boot: bootp()bsd.rd.IP22 Setting $netaddr to 10.0.0.31 (from server ) Obtaining bsd.rd.IP22 from server Starting receive DMA in eput() Setting $netaddr to 10.0.0.31 (from server ) Obtaining bsd.rd.IP22 from server 6938992+904080 [91Starting receive DMA in eput() Setting $netaddr to 10.0.0.31 (from server ) Obtaining bsd.rd.IP22 from server +122640+69813]=0x7aa068 Starting receive DMA in eput() ARCS32 Firmware Version 1.10 Found SGI-IP20, setting up. Initial setup done, switching console. [ using 193384 bytes of bsd ELF symbol table ] Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2012 OpenBSD. All rights reserved. http://www.OpenBSD.org uvm_km_kmem_grow: grown to 0xc000000005000000 OpenBSD 5.1-current (RAMDISK-IP22) #14: Thu Apr 26 07:12:21 MDT 2012 dera...@sgi.openbsd.org:/sys/arch/sgi/compile/RAMDISK-IP22 real mem = 83886080 (80MB) rsvd mem = 802816 (1MB) avail mem = 74039296 (70MB) mainbus0 at root: Indigo cpu0 at mainbus0: MIPS R4000 CPU rev 2.2 100 MHz, R4010 FPC rev 0.0 cpu0: cache L1-I 8KB D 8KB direct, L2 1024KB direct clock0 at mainbus0: ticker on int5 using count register int0 at mainbus0 addr 0x1fb801c0 imc0 at mainbus0: revision 3 gio0 at imc0 grtwo0 at gio0 addr 0x1f000000: GR2-Elan grtwo0: device has not been setup by firmware! light0 at gio0 addr 0x1f3f0000 I did let it hanging around here for a couple of minutes, with the hope it might go on, but nothing happens. Tried that two times, to make sure its kind of reproducible. cheers, Sebastian > - R4000, R4400 and R4600 Indigo2 and Challenge M (IP22) > - all Indy and Challenge S (IP24) > > I know that several (many?) of you had been asking in the past, and I > had always intended to work on this (didn't I get an R4000 Indigo, 12 > years ago, for this purpose?). Wait no more! This has eventually > happened. > > This work was helped by the existing NetBSD work, which provided basic > device support (serial, Ethernet and SCSI). Of course running these > systems in 64-bit mode opened quite a large Pandora box-of-problems, but > we have reached a point where the system is running stably and able to > rebuild itself. Oh, did I mention that I stumbled onto a few hardware > bugs, such as extremely important device registers not always returning > their value when being read? > > Anyways, what this really means is that you can wipe the dust off your > system, plug it back, boot the OpenBSD installer and get a working > system in less than half an hour (unless there really is a lot of dust > to clean first). > > > There are still a few rough edges, though. > > > What works: > > - onboard serial, keyboard/mouse, SCSI and Ethernet controllers. Tested > and confirmed to work. > > - all frame buffers are supposed to work, at least in console mode. > However, only Newport (XL/XGE, found on Indy and Indigo2) and > Express/Ultra (XZ/Elan/Extreme, found on Indigo, Indy and Indigo2) > have been tested. The Light/Entry/Starter graphics on Indigo, as well > as Impact on Indigo2, ought to work out of the box, but could not be > tested (donations welcome). There is no X11 server for any of these > frame buffers yet. > > - GIO E++ boards work. GIO32 SCSI boards ought to work too, but could > not be tested. > > - the Challenge S second Ethernet interface (on the IO+ mezzanine) > ought to work. > > > What doesn't work (yet): > > - the extra SCSI controllers (WD33C95) on the Challenge S IO+ mezzanine > are not supported (anyone got a Challenge S to spare?) > > - Fast Ethernet GIO options (Phobos G130 and G160, as well as `Set > Engineering' Fast Ethernet are not supported. There is code to borrow > from NetBSD, but it's not really an option without access to the > hardware. > > - on-board audio on Indigo (hdsp) and Indy/Indigo2 (haltwo). > > - on-board parallel port (honestly, I couldn't care less). > > - L2 cache on R4600SC and R5000SC processor modules. I am working on > this, but need to introduce a few interfaces first, and this takes > time checking I do not break other systems. Coming soon. > > > What sort of works: > > - the EISA bus on the Indigo2 attaches and cards get detected. However I > have only been able to test it with 3Com ep(4) boards; the 10MBit/s > models have abysmal performance, and the 100MBit/s 3C597 (or Phobos > G100) doesn't seem to interrupt. Your mileage may vary. > > > Snapshots are available from OpenBSD FTP mirrors near you; do not > hesistate and play with them! However, please, please, pretty please, do > not expose an R4000 or R4400 based system to the internet. These > processors suffer from unfixed errata which can be used by local users > to gain supervisor privileges. On these systems, you can't trust your > local users - at all. As in, never give me a shell access to the system > or I'll root it without even thinking. R4600 and R5000 based systems do > not suffer from such problems. > > If you have an early R4000 processor (either an 1.x or 2.x version), > other bugs will prevent it from running stably (the so-called ``end of > page'' bugs). The system will run multiuser, but from time to time, some > processes will misbehave. My own Indigo has a revision 2.2 R4000, so I > am experiencing these issues first hand (and this system is currently > not able to rebuild itself because of these processor bugs). However the > processor errata documentation is public, and I am working on designing > a good way to circumvent them (and it's no easy task, especially with > the goal of not affecting the performance of other processors). > > > But enough said. > > > The real reason for this work was to get good device support, in order > to be able to port OpenBSD to the Power Indigo2 systems: both the R8000 > flavour (IP26) and the R10000 flavour (IP28). Those systems come with a > specific memory controller which needs some care in order to operate > properly; and of course the R8000 processor is an odd beast which, to > this day, is not supported by any free operating system. > > I would like to change this state of things, and have IP26 and IP28 > systems be able to run OpenBSD, if only for the sake of it and the joy > of getting my code to run on formerly unsupported hardware. > Unfortunately, I do not own any such system - neither an R8000 Indigo2 > nor an R10000 Indigo2. If you know of such a system collecting dust, > which owner would not mind parting of, please let me know. I'm sure we > can arrange something. > > > Miod > > > PS: If you only have R4k ``PC'' processors, that is, without a secondary > cache... then do yourself a favour and don't try to compile anything on > them... these small caches get blown a few orders of magnitude by gcc 4 > when compiling even the smallest program. This is very hard on the > R4000PC systems, which only have 2x8KB cache (I have such a system, it's > perfectly stable but glacial as soon as you are compiling anything on > it). R4400PC, R4600PC will be a bit more bearable because their cache is > twice larger.