supported (non SGI) PCI gigabit cards?

SGI hardware problems, solutions, tips, hacks, etc.
Forum rules
Any posts concerning pirated software or offering to buy/sell/trade commercial software are subject to removal.
User avatar
nekonoko
Site Admin
Site Admin
Posts: 8001
Joined: Thu Jan 23, 2003 2:31 am
Location: Pleasanton, California
Contact:

Unread postby nekonoko » Mon Aug 02, 2004 11:52 am

I picked up an old Alteon ACENIC 10/100/1000 copper card on for $24.50 to play around with. IRIX doesn't recognize it of course.

I think there may be a couple of problems getting one to work, depending on how these cards are set up. First off the driver needs to be aware of the card so it will show up in a 'hinv' as eg0 - this may be possible using the same method as the Indigo2 ethernet hack. The second problem would be the firmware - from the egconfig man page:

Code: Select all

DESCRIPTION
     egconfig is executed at system startup time to download the firmware for
     each gigabit Ethernet (''egN'') interface configured into the system.
     After egconfig executes, it is still necessary to use ifconfig(1M) to
     configure protocol addresses and other parameters.

     egconfig is run automatically at system startup.  It is also used to turn
     flow control and link negotiation on and off.


I'm interpreting this to mean that some of the driver itself is stored in firmware and downloaded into IRIX via this command, sort of like how OpenFirmware enabled cards work on Macintosh and Sun platforms. (Edit: Seems to not be the case after all)

Anyway, as an FYI just in case here is the 'hinv' output on the raw PCI device:

Code: Select all

PCI Adapter ID (vendor 0x12ae, device 0x0002) PCI slot 1


Vendor ID 0x12ae Device 0x0002 describes the 3C986-T Alteon Copper Gigabit Ethernet Adapter according to this page:

http://www.pcidatabase.com/vendor_details.php?id=1209

It would be interesting to see what the SGI version of this card reports.

Edit: Small update - digging through the source for the Linux driver, I found the SGI device IDs:

Code: Select all

#define PCI_VENDOR_ID_SGI               0x10a9
#define PCI_DEVICE_ID_SGI_ACENIC        0x0009


http://www.pcidatabase.com/vendor_details.php?id=553

Vendor/device IDs for other brands of the Alteon ACENIC can be found in the driver source as well.
Last edited by nekonoko on Mon Aug 02, 2004 2:03 pm, edited 2 times in total.
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.

User avatar
nekonoko
Site Admin
Site Admin
Posts: 8001
Joined: Thu Jan 23, 2003 2:31 am
Location: Pleasanton, California
Contact:

Unread postby nekonoko » Mon Aug 02, 2004 1:21 pm

Okay, it seems to be up and working now. I'll do some testing to make certain there aren't any issues with it.

Here's what I did:

The Alteon driver file for IP30 is:

/usr/cpu/sysgen/IP30/IP30boot/if_eg.o

This location will vary of course depending on your machine arch. I'll probably be modifying this driver on IP27 so I can run Nekochan off the gigabit in the near future.

First, locate the PCI IDs as described above:

Code: Select all

[Koyori:cpu/sysgen/IP30boot] neko 22% od -x if_eg.o | grep 10a9
0017360 665f 6567 2e6f 0000 2404 10a9 2405 0009


Aha, both the SGI vendor ID 10a9 and ACENIC device ID 0009; pretty obvious (note the 2405 between them). Edit these two values to 12ae and 0002 if you have an original Alteon; these IDs will be different for the 3com, Netgear and Farallon versions of this card. The PCI vendor/device IDs for all of these can be pulled from the acenic.c Linux driver or gleaned from hinv -vm if you install the card beforehand. I used HexEdit under Mac OS X to edit the file for convenience.

Reboot twice - first time around will reconfigure the kernel with the new module, second boot will load it.

Code: Select all

[Koyori:~] neko 17# hinv -vm
Location: /hw/node
      PM20250MHZ Board: barcode GRB946     part 030-1286-002 rev  B
Location: /hw/node/xtalk/15
            IP30 Board: barcode LMB370     part 030-1467-001 rev  D
Location: /hw/node/xtalk/15/pci/2
    PWR.SPPLY.ER Board: barcode AAE1240501 part 060-0035-003 rev  A
             FP1 Board: barcode LZN649     part 030-0891-003 rev  H
Location: /hw/node/xtalk/13
        XTALKPCI Board: barcode HPT350     part 030-0952-005 rev  D
Location: /hw/node/xtalk/11
          ODY128 Board: barcode LKA451     part 030-1404-003 rev  A
2 300 MHZ IP30 Processors
Heart ASIC: Revision F
CPU: MIPS R12000 Processor Chip Revision: 2.4
FPU: MIPS R12010 Floating Point Chip Revision: 0.0
Main memory size: 2048 Mbytes
Xbow ASIC: Revision 1.4
Instruction cache size: 32 Kbytes
Data cache size: 32 Kbytes
Secondary unified instruction/data cache size: 1 Mbyte
Integral SCSI controller 0: Version QL1040B (rev. 2), single ended
  Disk drive: unit 1 on SCSI controller 0 (unit 1)
  Disk drive: unit 2 on SCSI controller 0 (unit 2)
Integral SCSI controller 1: Version QL1040B (rev. 2), single ended
  CDROM: unit 6 on SCSI controller 1
Integral SCSI controller 3: Version QL1080, low voltage differential
Integral SCSI controller 4: Version QL1080, low voltage differential
IOC3/IOC4 serial port: tty1
IOC3/IOC4 serial port: tty2
IOC3 parallel port: plp1
Graphics board: V8
Integral Fast Ethernet: ef0, version 1, pci 2
Gigabit Ethernet: eg0, PCI slot 1, firmware version 12.4.10
Iris Audio Processor: version RAD revision 12.0, number 1
  PCI Adapter ID (vendor 0x10a9, device 0x0003) PCI slot 2
  PCI Adapter ID (vendor 0x1077, device 0x1020) PCI slot 0
  PCI Adapter ID (vendor 0x1077, device 0x1020) PCI slot 1
  PCI Adapter ID (vendor 0x10a9, device 0x0005) PCI slot 3
  PCI Adapter ID (vendor 0x12ae, device 0x0002) PCI slot 1
  PCI Adapter ID (vendor 0x1077, device 0x1080) PCI slot 2
  PCI Adapter ID (vendor 0x1077, device 0x1080) PCI slot 3


And finally:

Code: Select all

[Koyori:~] neko 1% ifconfig -v eg0
eg0: flags=8c15c43<UP,BROADCAST,RUNNING,FILTMULTI,MULTICAST,CKSUM,DRVRLOCK,LINK0,IPALIAS,HIGHBW,IPV6>
        inet 64.81.247.23 netmask 0xffffff00 broadcast 64.81.247.255
        recvspace 196608 sendspace 196608
        speed 1000.00 Mbit/s full-duplex


Does it work? Seems to - have to do more testing with it. I emphasize this was done with an original Alteon which is more likely to match the older SGI OEM hardware - the newer 3com, etc. revisions may or may not work. Hope this helps someone.
Last edited by nekonoko on Tue Aug 03, 2004 12:03 am, edited 2 times in total.
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.

User avatar
lewis
Posts: 547
Joined: Thu Nov 27, 2003 1:30 pm
Location: london
Contact:

Unread postby lewis » Mon Aug 02, 2004 2:11 pm

I'm interpreting this to mean that some of the driver itself is stored in firmware and downloaded into IRIX via this command, sort of like how OpenFirmware enabled cards work on Macintosh and Sun platforms. (Edit: Seems to not be the case after all)


More likely the other way around - IRIX pushes some stuff onto the card. NICs seem to be getting more and more programmable, proper hardware multicast filters etc. The graphics drivers do this kind of thing too, of course. Good work!

User avatar
The Keeper
Posts: 1622
Joined: Mon Nov 17, 2003 10:23 pm
Location: Buffalo, NY
Contact:

Unread postby The Keeper » Mon Aug 02, 2004 2:49 pm

Good show!

The next question is how well one of those non-SGI cards will hold up when you start hammering on them... That's why SGI made their proprietary one, according to what I've heard recently, anyway.

Chris

User avatar
nekonoko
Site Admin
Site Admin
Posts: 8001
Joined: Thu Jan 23, 2003 2:31 am
Location: Pleasanton, California
Contact:

Unread postby nekonoko » Mon Aug 02, 2004 2:50 pm

lewis wrote:
I'm interpreting this to mean that some of the driver itself is stored in firmware and downloaded into IRIX via this command, sort of like how OpenFirmware enabled cards work on Macintosh and Sun platforms. (Edit: Seems to not be the case after all)


More likely the other way around - IRIX pushes some stuff onto the card. NICs seem to be getting more and more programmable, proper hardware multicast filters etc. The graphics drivers do this kind of thing too, of course. Good work!


That's what I was hoping, but the man page wording is a bit vague. It does indeed seem to push firmware to the card as the firmware version changed from 0.0.0 to 12.4.10 once I set up networking on the card.
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.

User avatar
jan-jaap
Posts: 3984
Joined: Thu Jun 17, 2004 11:35 am
Location: Wijchen, The Netherlands

Unread postby jan-jaap » Tue Aug 03, 2004 2:42 am

The topic of non-SGI branded gigbit adapters was discussed on comp.sys.sgi a few times:

http://www.google.com/groups?hl=en&lr=& ... 26rnum%3D6
and

http://www.google.com/groups?hl=en&lr=& ... 26rnum%3D6
Quoting:

Code: Select all

> I know it's unlikely, but has anyone managed to use a non-sgi AceNIC based
> Gigabit card under Irix?

I can assure you there are already enough problems getting IRIX to jump
around firmware/hardware quirks in these NICs when you *do* have control
over which spin of boards and firmware you have --

-- i.e., in my experience, very unlike what you'd expect from having
seen other PCI cards for which the generic variant more or less works,
you could very well *really* end up with something that not only is
unsupported, but also doesn't work (or at least not unless you want to
tolerate silent data corruption under certain conditions).

--
Alexis Cousein    Senior Systems Engineer
SGI Belgium and Luxemburg  al@brussels.sgi.com


I also remember somebody commenting on how certain revs. of some boards had hardware/firmware endian issues. So, they wouldn't work on an mips/irix because they had been developed/tested only on peecees.

So, it appears to work for you, and I guess you don't care about a lack of support, but you'd better stress test it thoroughly before you put it into production...

PS: How do I keep the width of this page reasonable without breaking the URL's :?:

EDIT: url wrap -- thanks Neko.
Last edited by jan-jaap on Wed Aug 04, 2004 2:38 am, edited 1 time in total.

User avatar
ducks
Posts: 81
Joined: Mon May 19, 2003 11:10 am
Location: Amsterdam, The Netherlands
Contact:

Unread postby ducks » Tue Aug 03, 2004 3:56 am

I have done some digging as wel but neko beat me to it. The firmware for the card in loaded onto the card by the driver. So you are actualy running the sgi firmware.

Both card look exactly the same. I suspect that all sgi did is change the pci vendor id.

User avatar
The Keeper
Posts: 1622
Joined: Mon Nov 17, 2003 10:23 pm
Location: Buffalo, NY
Contact:

Unread postby The Keeper » Tue Aug 03, 2004 5:31 am

Neko, could I (and others that are looking to do the same thing would like to know too, I'm sure) impose on you to post a close-up shot of the front and back of the card, so we can see which cheapo card you were able to get working?

Thanks in advance, and good luck with the testing! Have any multi-gigabyte gz'd files you can throw around and run integrity checks on after they've been transferred?



Chris

User avatar
nekonoko
Site Admin
Site Admin
Posts: 8001
Joined: Thu Jan 23, 2003 2:31 am
Location: Pleasanton, California
Contact:

Unread postby nekonoko » Tue Aug 03, 2004 6:15 am

Sure, I'll try and get high res images done as soon as I can - I posted a couple of 640x480 shots of the card in the hardware gallery under 'Third Party Hardware'.

I'll be testing it heavily once I get back from vacation in a couple weeks - I'm kind of in a holding pattern until then.
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.

User avatar
wolflord
Posts: 603
Joined: Thu Apr 03, 2003 12:31 pm
Location: Maryland
Contact:

Unread postby wolflord » Tue Aug 03, 2004 6:27 am

With this new info I'm going to try and get the GigE cards that I have recognized in my O200. It's the same as the SGI branded one in the Third Party Hardware Gallery (the fibre one). I've got a couple sitting around and will hopefully be able to test them tonight. I let you all know what I find.
WolfLord - :4D70G: :Octane2:

"Two Minus Three Equals Negative Fun" - Troy McClure

User avatar
ducks
Posts: 81
Joined: Mon May 19, 2003 11:10 am
Location: Amsterdam, The Netherlands
Contact:

Unread postby ducks » Tue Aug 03, 2004 6:57 am

Tried it with 3com 1000Base-SX (3c985).. It detects the card, but does not load the firmware. :?

smharr4
Posts: 77
Joined: Sun Jan 18, 2004 4:15 pm
Location: Seattle, WA
Contact:

Unread postby smharr4 » Thu Aug 05, 2004 10:31 am

I too tried with a 3C985 1000Base-SX card - I was able to alter if_eg.o so and hinv now recognises it as a gigabit ethernet card, but the firmware levels remain at 0.0.0 even after configuring it.

The Netgear version of this card is the GA620, and the Farallon card is the PN9000SX - anyone have those they can plug in and try to configure?

smharr4
Posts: 77
Joined: Sun Jan 18, 2004 4:15 pm
Location: Seattle, WA
Contact:

Unread postby smharr4 » Thu Aug 05, 2004 11:43 am

I hate replying to my own postings, but I did get the firmware uploaded - ifconfig doesn't upload the firmware when you configure the IP address and netmask, but does when you run 'ifconfig eg0 up'.

I now have the firmware uploaded onto the card:

Code: Select all

Gigabit Ethernet: eg0, PCI slot 3, firmware version 12.4.10

If only I had a fibre gigabit ethernet switch to test it with :(

Does the same hack work with the tigon3-class devices using the if_tg.o file?

User avatar
nekonoko
Site Admin
Site Admin
Posts: 8001
Joined: Thu Jan 23, 2003 2:31 am
Location: Pleasanton, California
Contact:

Unread postby nekonoko » Thu Aug 05, 2004 12:07 pm

smharr4 wrote:Does the same hack work with the tigon3-class devices using the if_tg.o file?


It shouldn't be necessary, but the reality seems to be a bit tougher.

warerat wrote:I've been thinking about the same thing lately. On a Tezro (with the built in tg0 interface), here's what "tgcmd inventory" reports:

Chip Chip Sybsys Subsys Board
I/F Vendor Device Vendor Device Rev
=== ====== ====== ====== ====== ======
tg0 0x14e4 0x1645 0x10a9 0x8010 0x0000 SGI 5701 Copper


So you have Vendor ID 0x14e4 Device ID 0x1645 which is a standard Broadcom NetXtreme Gigabit Ethernet according to:

http://www.pcidatabase.com/vendor_details.php?id=767

However, they created a special patch (Patch 4958) that apparently does a bit more checking. My guess is the Subsys vendor/device listed above are queried as well.

Code: Select all

[Koyori:cpu/sysgen/IP30boot] neko 7% od -x if_tg.o | grep 10a9
...
0223060 14e4 1645 10a9 8010 0001 0100 0000 0000
0223100 14e4 1645 10a9 8011 0001 0100 0000 0000
0223120 14e4 1645 10a9 8012 0100 0000 0000 0000
0223140 14e4 1648 10a9 8013 0001 0000 0000 0000
0223160 14e4 16a8 10a9 8014 0100 0000 0000 0000
...


What we see above are Broadcom (vendor ID 14e4) chipsets with device IDs 1645 (BCM5701 NetXtreme Gigabit Ethernet), 1648 (BCM5704 NetXtreme Dual Gigabit Adapter) and 16a8 (BCM5704 NetXtreme Gigabit Ethernet) followed by 10a9 (Subsys Vendor: SGI) 8010-8014 (Subsys Device). The trick would be finding out what subsys device/vendor a commodity card would report (if anything) and replace those digits with that information. 'hinv' doesn't report anything like this so it's pretty much up in the air as to how to go about getting it.

Another possibility is copying a 6.5.19 if_tg.o (without Patch 4958) into a newer kernel.
Last edited by nekonoko on Thu Aug 05, 2004 1:12 pm, edited 1 time in total.
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.

schleusel
Posts: 495
Joined: Mon Oct 20, 2003 6:49 am
Location: NRW, Germany
Contact:

Unread postby schleusel » Thu Aug 05, 2004 1:12 pm

nekonoko wrote:What we see above are Broadcom (vendor ID 14e4) chipsets with device IDs 1645 (BCM5701 NetXtreme Gigabit Ethernet), 1648 (BCM5704 NetXtreme Dual Gigabit Adapter) and 16a8 (BCM5704 NetXtreme Gigabit Ethernet) followed by 10a9 (Subsys Vendor: SGI) 8010-8014 (Subsys Device). The trick would be finding out what subsys device/vendor a commodity card would have and replace those digits. 'hinv' doesn't report that so it's pretty much up in the air.


Or not.. here is a list of the subsys device/vender ids for different NetXtreme versions:
http://pciids.sourceforge.net/iii/?i=14e41645

so long,
Timo


Return to “SGI: Hardware”

Who is online

Users browsing this forum: No registered users and 1 guest