Linux MIPS Architecture development
 help / color / mirror / Atom feed
* hardware independent hinv
@ 1997-05-28 15:17 Ariel Faigon
  1997-05-28 15:17 ` Ariel Faigon
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Ariel Faigon @ 1997-05-28 15:17 UTC (permalink / raw)
  To: linux

Just forwarding since it sounds someone hopes that Linux/MIPS
will some day have a HW independent hinv... - Ariel

----- Forwarded message from Dave Olson -----

>From olson@anchor  Mon May 12 13:50:21 1997
Date: Mon, 12 May 1997 13:50:18 -0700
From: olson@anchor (Dave Olson)
Message-Id: <199705122050.NAA26767@anchor.engr.sgi.com>
To: olson@anchor (Dave Olson), scotth@sgi.com
Subject: Re: missing machfile
Cc: swmgr@swmgr, breyer@swmgr, ariel@cthulhu
References: <199705121525.IAA23143@swmgr.engr.sgi.com>
    <199705121714.KAA23773@anchor.engr.sgi.com>
    <199705121854.LAA18312@anchor.engr.sgi.com>

|  I would assume that hinv is hardware-dependent, because of the
|  mapping issues?  Or is it table driven off of an analogue of the machtab?

Still all compiled in.  Bug/rfe open for years now about making it table
driven.

|  Unfortunately, nothing better is generally available across
|  platforms and releases.

Yes, and that's something that would be nice to fix.  Maybe linux will
do it, and we can copy them.

|  D> Lots, for any non-trivial app.  They don't have to, but often want to.
|  
|  ???  Non-trivial as in "big and powerful", or as in "gets close to
|  the hardware"?  I would argue that emacs and perl both fit the

Both/either.  Not all  big apps, of course.

|  I was looking at the options to uname, specifically "-p".  Based
|  upon the man page, shouldn't `uname -p` return "mips3" instead of
|  "mips" for my IP22?  That is one obvious meaning for:

Yes, but then you break even more of the configure scripts.  Again,
a no-win situation.

|  I was just curious is there was somehow we could make life easier
|  for configure scripts to port software for IRIX...  On the other
|  hand, we generally only get bad comments about /bin/install, and at
|  least we *don't* get comments like:

|  # AIX cpp loses on an empty file, so make sure it contains at least a newline.
Using cpp is a horrible solution...

|  It is hard to add functionality without breaking stuff.

A programmer's lament, if I ever heard one!

Dave Olson, Silicon Graphics   Guru and busybody at large
http://reality.sgi.com/olson   olson@sgi.com

----- End of forwarded message from Dave Olson -----

-- 
Peace, Ariel

^ permalink raw reply	[flat|nested] 17+ messages in thread
* Re: hardware independent hinv
@ 1997-05-28 19:12 Larry McVoy
  1997-05-28 19:12 ` Larry McVoy
  1997-05-28 19:19 ` Mike Shaver
  0 siblings, 2 replies; 17+ messages in thread
From: Larry McVoy @ 1997-05-28 19:12 UTC (permalink / raw)
  To: Ariel Faigon; +Cc: linux, olson, scotth, swmgr, breyer

: Just forwarding since it sounds someone hopes that Linux/MIPS
: will some day have a HW independent hinv... - Ariel

Here's my first pass at it.  It certainly isn't complete but it is a 
start.  We could evolve Linux' /proc to fully handle this.

#!/usr/bin/perl -w

# 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
# 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, $_);
	} 
}
open(FD, "/proc/cpuinfo");
while (<FD>) {
	@_ = split;
	if (/cpu/) {
		$cpu = $_[$#_];
	}
	if (/vendor/) {
		$cpus{"$_[$#_] $cpu"}++;
	}
}
open(FD, "/proc/ioports");
while (<FD>) {
	if (/kbd/ || /keyboard/) {
		$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 ($#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 "  $_";
	}
}

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

^ permalink raw reply	[flat|nested] 17+ messages in thread
* Re: hardware independent hinv
@ 1997-05-29  2:26 Dave Olson
  1997-05-29  2:26 ` Dave Olson
  1997-05-30  9:56 ` Raj Mathur
  0 siblings, 2 replies; 17+ messages in thread
From: Dave Olson @ 1997-05-29  2:26 UTC (permalink / raw)
  To: Larry McVoy, Mike Shaver; +Cc: breyer, swmgr, scotth, linux, ariel

The info definitely isn't in /proc on irix.

Doesn't dmesg have the problem on linux that it has on Sun systems; that is,
it only works until enough kernel printfs have happened that the circular
buffer wraps?

Dave Olson, Silicon Graphics   Guru and busybody at large
http://reality.sgi.com/olson   olson@sgi.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~1997-06-12  1:22 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
1997-05-28 15:17 hardware independent hinv Ariel Faigon
1997-05-28 15:17 ` Ariel Faigon
1997-05-28 15:35 ` Mike Shaver
1997-05-28 17:42   ` Miguel de Icaza
1997-05-28 18:18     ` David S. Miller
1997-05-28 19:49       ` Miguel de Icaza
1997-05-30  7:14     ` Martin Knoblauch
1997-05-28 16:03 ` Ralf Baechle
1997-06-12  1:10   ` My first project on the Indy Miguel de Icaza
  -- strict thread matches above, loose matches on Subject: below --
1997-05-28 19:12 hardware independent hinv Larry McVoy
1997-05-28 19:12 ` Larry McVoy
1997-05-28 19:19 ` Mike Shaver
1997-05-28 19:19   ` Mike Shaver
1997-05-29  2:26 Dave Olson
1997-05-29  2:26 ` Dave Olson
1997-05-30  9:56 ` Raj Mathur
1997-05-30  9:56   ` Raj Mathur

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox