Subject: mezzanine board

From: Richard Hartensveld <[email-masked]>
Date: Thu, 21 Jan 1999 07:37:14 -0800

Hi,

I've got a challenge S with hardhat 5.1 running on it.
This machine is also equiped with a mezzanine board. (2x diff. scsi and
an ethernet port).

Is there any documentation available for this board or are/where there
ever plans to build a
driver for this board ?

Cheers,

Richard

---

From: Honza Pazdziora <[email-masked]>
Date: Thu, 21 Jan 1999 16:44:40 +0100

> I've got a challenge S with hardhat 5.1 running on it.

Sorry for not answering your question in the first place, but:

I didn't know HardHat 5.1 could run on Challenge S. Could you please
send me the specs (hinv) and kernel details (did you compile yourself
or picked it up), so that I can update the www pages?

Thanks,

------------------------------------------------------------------------
 Honza Pazdziora | [email-masked] | http://www.fi.muni.cz/~adelton/
 The total number of bytes in all expressions in the GROUP BY clause is
 limited to the size of a data block minus some overhead. --Oracle SQL Ref.
------------------------------------------------------------------------

---

From: Richard Hartensveld <[email-masked]>
Date: Thu, 21 Jan 1999 08:09:29 -0800

Honza Pazdziora wrote:

> I didn't know HardHat 5.1 could run on Challenge S.

Sure, just hook-up a terminal to the serial port, link /dev/console to
/dev/ttyS1 on your nfs-root, and don't forget to change
setup-1.9.1-2.noarch.rpm to add some securetty's so that
you can log in over the network as root. (Hardhat doesn't add a normal user at
installation, a missing future, i think).

> Could you please

Well, no hinv since i'm not running irix on the machine anymore (i boot  it
over the network), but here's the dmesg from within linux.This is a
self-compiled kernel, using the cvs tree from linus.linux, but the kernel
included with the hardhat package installs just as good.
If you wish, i can send you the rebuild setup...noarch.rpm to put on the
webpage for other people who wish to try linux on a S.

If someone is seriously interested in do some other development on this
machine, i'm more then willing to give away a shell account for this person.

 PROMLIB: SGI ARCS firmware Version 1 Revision 10
PROMLIB: Total free ram 132923392 bytes (129808K,126MB)
ARCH: SGI-IP22
CPU: MIPS-R5000 FPU<MIPS-R5000FPC> ICACHE DCACHE SCACHE
Loading R4000 MMU routines.
CPU revision is: 00002310
Primary instruction cache 32kb, linesize 32 bytes)
Primary data cache 32kb, linesize 32 bytes)
Linux version 2.1.121 (root@wilderness) (gcc version 2.7.2.2) #1 Thu Jan 14
16:06:11 CET 1999
MC: SGI memory controller Revision 3
R4600/R5000 SCACHE size 512K, linesize 32 bytes.
calculating r4koff... 000dbd78(900472)
Calibrating delay loop... 179.81 BogoMIPS
Memory: 125248k/261652k available (1116k kernel code, 3436k data)
Checking for 'wait' instruction...  available.
POSIX conformance testing by UNIFIX
Swansea University Computer Society NET3.039 for Linux 2.1
NET3: Unix domain sockets 0.16 for Linux NET3.038.
Swansea University Computer Society TCP/IP for NET3.037
IP Protocols: ICMP, UDP, TCP
Starting kswapd v 1.5
initialize_kbd: Keyboard reset failed, no ACK
SGI Zilog8530 serial driver version 1.00
tty00 at 0xbfbd9830 (irq = 21) is a Zilog8530
tty01 at 0xbfbd9838 (irq = 21) is a Zilog8530
DS1286 Real Time Clock Driver v1.0
wd33c93-0: chip=WD33c93B/13 no_sync=0xff no_dma=0 debug_flags=0x00
           setup_args=,,,,,,,,,
           Version 1.25 - 09/Jul/1997, Compiled Jan 14 1999 at 16:09:51
scsi0 : SGI WD93
scsi : 1 host.
Keyboard timeout
Keyboard timeout
 sending SDTR 0103013f0csync_xfer=2c  Vendor: SGI       Model: IBM
DORS-32160    Rev: W80D
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 1, lun 0
 sending SDTR 0103013f0csync_xfer=2c  Vendor: IBM       Model:
DCAS-34330        Rev: S65A
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdb at scsi0, channel 0, id 6, lun 0
scsi : detected 2 SCSI disks total.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 4197405 [2049 MB] [2.0 GB]
SCSI device sdb: hdwr sector= 512 bytes. Sectors= 8467200 [4134 MB] [4.1 GB]
sgiseeq.c: David S. Miller ([email-masked])
eth0: SGI Seeq8003 08:00:69:0a:41:7b
Partition check:
 sda: sda1 sda2 sda3 sda4
 sdb: sdb1 sdb2 sdb3 sdb4
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 36k freed
Warning: unable to open an initial console.

Cheers,

Richard

---

From: Honza Pazdziora <[email-masked]>
Date: Thu, 21 Jan 1999 18:50:32 +0100

Richard, thanks you.

> setup-1.9.1-2.noarch.rpm to add some securetty's so that

I've added this to the http://www.linux.sgi.com/manhattan/ page.
A note about Challenge S has also been added to other pages.

> webpage for other people who wish to try linux on a S.

To others on the list: shall we make a new page with setups? Otherwise
I'd just link Richard's setup from /manhattan/.

Yours,

---

From: [email-masked] (Ariel Faigon)
Date: Thu, 21 Jan 1999 11:01:50 -0800 (PST)

:
:
:Well, no hinv since i'm not running irix on the machine anymore (i boot  it
:over the network)
:

Here's an 'hinv' for linux written in perl

---- cut here ----

#!/usr/bin/perl -w

#
# hinv v 1.2
# Changes:
#	1.0 - 1.1
#	---------
#		Fri Nov 28 14:28:31 IST 1997
#	Added support for IDE disks -- Paul Danset ([email-masked]), 
#		Fri Nov 28 14:39:30 IST 1997
#	Changed eth scanning routine to explicitely check for an
#	ethernet-style address in the line. -- Raju Mathur ([email-masked])
#		Fri Nov 28 19:02:22 IST 1997
#	1.1-1.1a
#	--------
#	Small screw-up in the eth code fixed. Thanks, Thomas Gebhardt!
#	1.1a-1.2
#	--------
#		Mon Dec  1 12:06:55 IST 1997
#	Added support for sound devices. I've only checked this out on
#	a commercial OSS system, not with the built-in OSS/Linux/Free.
#	I'm no hotshot Perl programmer, so if the code looks ugly it's
#	your aesthetics which are to blame :-)
#					-- Raju Mathur ([email-masked])
#
# Interim maintainer:	Raju Mathur ([email-masked])
#
# Author:		Larry Mcvoy (Where art thou, Larry?) as per last
#			information received
#
# Try and emulate SGI's hinv command
# We want to figure out the following:
# CPU type, mhz, memory, busses, floppies, disks, tapes, cdroms, ttys,
# networks, graphics.

# indy ~ hinv
# Iris Audio Processor: version A2 revision 4.1.0
# 1 175 MHZ IP22 Processor
# FPU: MIPS R4000 Floating Point Coprocessor Revision: 0.0
# CPU: MIPS R4400 Processor Chip Revision: 6.0
# On-board serial ports: 2
# On-board bi-directional parallel port
# Data cache size: 16 Kbytes
# Instruction cache size: 16 Kbytes
# Secondary unified instruction/data cache size: 1 Mbyte on Processor 0
# Main memory size: 64 Mbytes
# Vino video: unit 0, revision 0
# Integral ISDN: Basic Rate Interface unit 0, revision 1.0
# XPI FDDI controller: xpi0, firmware version 9601221233, SAS
# Integral Ethernet: ec0, version 1
# Integral SCSI controller 0: Version WD33C93B, revision D
#  Disk drive: unit 2 on SCSI controller 0
#  Disk drive: unit 1 on SCSI controller 0
# Graphics board: Indy 24-bit

# i586 ~ hinv
# Main memory size: 24 Mbytes
# 1 GenuineIntel 586 processor
# 1 16450 serial port
# 2 16550A serial ports
# 1 post-1991 82077 floppy controller
# 1 1.44M floppy drive
# 1 vga+ graphics device
# 1 keyboard
# 2 ethernet interfaces
#   eth0: 3Com 3c595 Vortex 100baseTX
#   eth2: 3c509
# 1 SCSI tape 1 SCSI cdrom 2 SCSI disks
#   QUANTUM  EMPIRE_1080S
#   HP       C3725S
#   ARCHIVE  VIPER 150  21531
#   TOSHIBA  CD-ROM XM-3501TA
# Sound devices:
#   1 Audio device
#     Sound Blaster 16 (4.13)
#   1 Synth device
#     Yamaha OPL-3
#   1 Timer
#     System clock
#   1 Mixer
#     Sound Blaster
# PCI bus devices:
#    SCSI storage controller: NCR 53c810 (rev 2).
#    Ethernet controller: 3Com 3C595 100bTX (rev 0).
#    VGA compatible device: S3 Inc. Vision 964-P (rev 0).
#    IDE interface: Intel 82371 Triton PIIX (rev 2).
#    ISA bridge: Intel 82371 Triton PIIX (rev 2).
#    Host bridge: Intel 82437 (rev 2).

open(FD, "dmesg|") || die "no dmesg";
while (<FD>) {
        @_ = split;
        if (/^Memory:/) {
                $_[1] =~ s|.*/||;
                $_[1] =~ s|k$||;
                $_[1] /= 1024;
                $mem = "Main memory size: $_[1] Mbytes\n";
        } elsif (/^tty/) {
                $ttys{$_[$#_]}++;
        } elsif (/^Floppy/) {
                $floppy{$_[$#_]}++;
        } elsif (/^FDC /) {
                s/.*is a //;
                chop;
                $fdc{$_}++;
        } elsif (/^scsi : detected/) {
                $scsi = $_;
        } elsif (/^eth\d.* at .*:..:..:..:..:.*/) {
                s/\s*at .*//;
                push(@eth, $_);
        } elsif (/^hd[a-z].*, /) {
                s/\s*, .*//;
                push(@ide, $_);
        } 
}
open(FD, "/proc/cpuinfo");
while (<FD>) {
        @_ = split;
        if (/cpu/) {
                $cpu = $_[$#_];
        }
        if (/vendor/) {
                $cpus{"$_[$#_] $cpu"}++;
        }
}
open(FD, "/proc/ioports");
while (<FD>) {
        if (/kbd/) {
                $kbd++;
        } elsif (/vga/) {
                @_ = split;
                $graphics{$_[$#_]}++;
        }
}

print $mem if (defined $mem);
foreach $key (keys %cpus) {
        print "$cpus{$key} $key processor";
        print $cpus{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %ttys) {
        print "$ttys{$key} $key serial port";
        print $ttys{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %fdc) {
        print "$fdc{$key} $key floppy controller";
        print $fdc{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %floppy) {
        print "$floppy{$key} $key floppy drive";
        print $floppy{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %graphics) {
        print "$graphics{$key} $key graphics device";
        print $graphics{$key} > 1 ? "s\n" : "\n";
}
if (defined $kbd) {
        print "$kbd keyboard";
        print $kbd > 1 ? "s\n" : "\n";
}
if ($#ide > -1) {
        $n = $#ide + 1;
        print "$n IDE device";
        print $n > 1 ? "s\n" : "\n";
        foreach $ide (@ide) {
                print "  $ide";
        }
}
if ($#eth > -1) {
        $n = $#eth + 1;
        print "$n ethernet interface";
        print $n > 1 ? "s\n" : "\n";
        foreach $eth (@eth) {
                print "  $eth";
        }
}
if (defined $scsi) {
        $scsi =~ s/.*detected //;
        $scsi =~ s/ total.//;
        print $scsi;
        open(FD, "/proc/scsi/scsi");
        $_ = <FD>;
        while (<FD>) {
                next unless /Vendor/;
                s/.*Vendor:\s*//;
                s/\s*Rev:.*//;
                s/Model:\s*//;
                print "  $_";
        }
}
#
# Sound code added by Raju Mathur ([email-masked])
#
if ( open ( FD , "/dev/sndstat" ) )
{
    $done = 0 ;
    while ( <FD> )
    {
	if ( ! $done )
	{
	    print "Sound devices:\n" ;
	    $nAudiodev = 0 ;
	    $nSynthdev = 0 ;
	    $nMIDIdev = 0 ;
	    $nTimer = 0 ;
	    $nMixer = 0 ;
	    $done = 1 ;
	}
	if ( /^Audio devices:/ )
	{
	    while ( <FD> )
	    {
		if ( /^$/ )
		{
		    goto break1 ;
		}
		s/^[0-9]*:\s*// ;
		push @Audiodev , $_ ;
		$nAudiodev++ ;
	    }
	  break1:
	}
	if ( /^Synth devices:/ )
	{
	    while ( <FD> )
	    {
		if ( /^$/ )
		{
		    goto break2 ;
		}
		s/^[0-9]*:\s*// ;
		push @Synthdev , $_ ;
		$nSynthdev++ ;
	    }
	  break2:
	}
	if ( /^Midi devices:/ )
	{
	    while ( <FD> )
	    {
		if ( /^$/ )
		{
		    goto break3 ;
		}
		s/^[0-9]*:\s*// ;
		push @MIDIdev , $_ ;
		$nMIDIdev++ ;
	    }
	  break3:
	}
	if ( /^Timers:/ )
	{
	    while ( <FD> )
	    {
		if ( /^$/ )
		{
		    goto break4 ;
		}
		s/^[0-9]*:\s*// ;
		push @Timer , $_ ;
		$nTimer++ ;
	    }
	  break4:
	}
	if ( /^Mixers:/ )
	{
	    while ( <FD> )
	    {
		if ( /^$/ )
		{
		    goto break5 ;
		}
		s/^[0-9]*:\s*// ;
		push @Mixer , $_ ;
		$nMixer++ ;
	    }
	  break5:
	}
    }
    if ( $nAudiodev )
    {
	printf "  %d Audio device%s\n" , $nAudiodev ,
		$nAudiodev > 1 ? "s" : "" ;
	while ( $val = shift @Audiodev )
	{
	    print "    $val" ;
	}
    }
    if ( $nSynthdev )
    {
	printf "  %d Synth device%s\n" , $nSynthdev ,
		$nSynthdev > 1 ? "s" : "" ;
	while ( $val = shift @Synthdev )
	{
	    print "    $val" ;
	}
    }
    if ( $nMIDIdev )
    {
	printf "  %d MIDI device%s\n" , $nMIDIdev ,
		$nMIDIdev > 1 ? "s" : "" ;
	while ( $val = shift @MIDIdev )
	{
	    print "    $val" ;
	}
    }
    if ( $nTimer )
    {
	printf ( "  %d Timer%s\n" , $nTimer , $nTimer > 1 ? "s" : "" ) ;
	while ( $val = shift @Timer )
	{
	    print "    $val" ;
	}
    }
    if ( $nMixer )
    {
	printf "  %d Mixer%s\n" , $nMixer , $nMixer > 1 ? "s" : "" ;
	while ( $val = shift @Mixer )
	{
	    print "    $val" ;
	}
    }
}

open(FD, "/proc/pci");
$done = 0;
while (<FD>) {
        if (/^\s*Bus/) {
                if ($done == 0) {
                        print "PCI bus devices:\n";
                        $done++;
                }
                $_ = <FD>;
                print;
        }
}