SGI: Hardware

Dual Port Ethernet Hack?

Hey Nekochaners,

Long time no post. Luckily I found my login info. I have been lurking a bit though, and excelent reading as always. I plan on some interesting posts in near future, on getting origin/onyx cards to go into Octanes (again, but I have new techniques now...). Plus I might be selling some EFS compatible CD ROM drives(toshiba, internal), too.

As much as I'd like to enjoy in the homecoming, and we will later (!), I do have a question:

I have read again and again the post(s) on non-sgi Ethernet cards, and was hoping to apply the same hack to a dual port card. I was able to buy an SGI (single) card for $20 last year for my Octane2, but now I need to go faster. There don't seem to be any SGI dual port Ethernet (PCI-X) cards around. "Vendors", shudder the thought, have quoted C. $700 US. This is not going to happen.

So, does anyone know what Broadcom chipset, or what chipset in general was used in the SGI dual port PCI ethernet cards? Will the same driver tweak work? Has anyone tried?

There does not seem to be any NetExtream BCM5701 dual port cards made. There must be something, though. The other option is to try and put two single port cards into the cardcarge, but this would leave me no slots left at all, and does not sound as good as a single dual port solution. I might be wrong on that, so feel free to correct.

Has anyone got a non-sgi dual port PCI Ethernet card to work in Octane2?

Any help appreciated,
--------CTM
One solution is the Menet IO card, it has 4 10/100 ports and fits into an XIO, giving you a total of five interfaces including the native one.

From Techpubs

The downside is it's not gigabit, which sounds like what you're looking at. The trick, as you've noted then, is to figure out what SGI used, and hack the driver which should work fine. Note that the Octane is not PCI bridge-chip friendly...

So, a quick look first for the card:

SGI Dual Port Gigabit card

looks a heckuva lot like:

PXG2 Dual-Port Gigabit Copper PCI-X NIC

which leads to this:

Silcom PXG2 info

Then it's just a matter of finding either a PXG2 card, or something compatible. Looks like a BCM5704 chipset, there seems to be a lot of them on eBay, but they all appear to be a slightly different model, but for $70 or so the answer can be had...

Also note that any of the PCI options for Octane utilize a bridge chip that tops out at about 170MB/sec, so a fully-loaded dual-port gigabit card would probably saturate the PCI bridge, or come close. If it's in a card-cage with 3 slots this could be an issue, but should work OK in a single-slot shoehorn. You'd be limited to 64-bits/33 Mhz.
:O3000: <> :O3000: :O2000: :Tezro: :Fuel: x2+ :Octane2: :Octane: x3 :1600SW: x2 :O2: x2+ :Indigo2IMP: :Indigo2: x2 :Indigo: x3 :Indy: x2+

Once you step up to the big iron, you learn all about physics, electrical standards, and first aid - usually all in the same day
And I'm sitting with two BCM5703-based GbE cards that I'd absolutely love to stick into my Octane + Origin2k.
Hmmm.
:O3200: :Fuel: :Indy: :O3x02L:
Dr. Dave wrote: The trick, as you've noted then, is to figure out what SGI used, and hack the driver which should work fine.
Don't hack the driver, hack the card. There's a thread somewhere here where at least two methods are described to do this, and there's also a list of "acceptable" PCI ids (and there's only one for the 5704):
http://forums.nekochan.net/viewtopic.php?p=22940#p22940
canavan wrote: and there's also a list of "acceptable" PCI ids (and there's only one for the 5704):
http://forums.nekochan.net/viewtopic.php?p=22940#p22940


Thank YOU!
Browsed through the list and found this link for the BCM5703:
http://pci-ids.ucw.cz/iii//?i=14e41647

It mentions SGI IO9 which sounds like IP35-territory to me?
Google results post IO9 as a ISP12160A adapter, which is SCSI... Further results points at this being a combined board in the Tezro for a complete SCSI, LAN + others board.
:O3200: :Fuel: :Indy: :O3x02L:
Apparently I wasn't looking carefully enough, so I missed the part where Linux 'lspci -vv' reported my card as a BCM5703X (notice the 'X'), which maps to no SGI hardware in the Linux pci.ids database. The BCM5701, BCM5703 and BCM5704 chips are equivalent to SGI IO9 hardware.
I did however changed the PCI-ID to 10a9:8010, but no card seems to show up in hinv on the Origin2k+shoehorn.

Looks like this NC7771 (DEGXA-TA) card is a dead end. I'd better hunt down a proper NC7770 (BCM5703 chip) and start over from there.
:O3200: :Fuel: :Indy: :O3x02L:
Thanks folks,

Dr. Dave wrote: The downside is it's not gigabit, which sounds like what you're looking at. The trick, as you've noted then, is to figure out what SGI used, and hack the driver which should work fine. Note that the Octane is not PCI bridge-chip friendly...

Dr. Dave, your R&D method are quite smooth, I tried to get where you got but didn't think to scour SGi's web site.
Good call about the non bridge-friendlyPCI slots, reinforces my single-card dual-port theory. Plus, I don't have any open XIO slots, only two PCI left in the caardcage.

So, after reading the posts, here is the plan: I have bought a NetXtreme31P6401 PCI-X card from serversupply.com. This was cheaper than Ebay, really. It should arrive next week sometime. It is a dual port card based on the BCM5701 chipset. I will then mod the driver to accept the vendor ID string, and add a dash of hope.

I'm not expecting too much performance increase, as I have a fibre channel card in the PCI cardcage also, so I assume that the cardcage to XIO bridge, which I understand to be 3 PCI cards to one XIO slot, will most likely peak out on bandwidth.
I can't say for sure how much each card is pulling right now, though one day I'd like to measure them. If I had to guess, I'd say FC card is getting ~60MB/sec. and the Gbit single about 40. I will soon put a dual port FC card in along with the dual port Ethernet.

At this stage in my life, an extra 30MB/Sec. would be worth $60 ;-)

Anyone know how much data can squeeze through a cardcage in an Octane2, in theory and practice?

Thanks all,
--------CTM
For fibre channel, around 170MB/sec - so this is likely in and around the top end for the bridge chip.
:O3000: <> :O3000: :O2000: :Tezro: :Fuel: x2+ :Octane2: :Octane: x3 :1600SW: x2 :O2: x2+ :Indigo2IMP: :Indigo2: x2 :Indigo: x3 :Indy: x2+

Once you step up to the big iron, you learn all about physics, electrical standards, and first aid - usually all in the same day
Well,
Dr. Dave wrote: For fibre channel, around 170MB/sec - so this is likely in and around the top end for the bridge chip.

That feels about right. I recall getting about that through my shoehorn FC card. Yet I have worked on Octanes that can grab HD video (~200 MB/s w audio), so I'm figuring that the bridge chip tops out a little less than a 'pure' XIO.

In any case, I will do some tests after the new kit is in, and report back.

Thanks,
--------CTM
Well, I'm back. I dropped out for a while to go to IBC in Amsterdam, then took some time off, then had to work for a bit, and finally I am now ready to try to install the dual port Ethernet card.

OK, tried it, and seem to have the problem of ID-ing the vendor SUB string. From my research (so far), it looks like it should drop right in. It didn't, not surprised. One problem I have, is no PC with a long PCI bus, this card has the old-style long form factor. Droops right in the card cage, though, and gets power, and I can see the link light, too. Just no hinv.
So now to try and figure out which subsys values to put into if_tg.o. Who makes the card? Good question, there is "BCM95704CA40-I" printed on the PCB, and the one that came out had "3com" silk screened on it. Can't find subsys numbers anywhere on the web, yet. This link may answer my own question, when I get back, though I already know 14E4 and 1648 are the vendor and chip, it's the SUBsys I'm missing.
http://moon.hanya-n.org/comp/alpha/hct/GbE.html
Damn, gotta run just now, but will hack on this later today, and report. I think I can find it. Meantime, if anyone recognizes the chip (pic attached), please do tell. Or is the seller/vendor/card itself important?
[EDIT]
Well, al least I'm editing my posts, as opposed to answering my own. I don't get out much, but I recall this sort of thing is frowned upon. So, I was mostly in traffic today, instead of testing my NIC. Harsh, I was mugged by stalled cars.
The R&D from my end is a little depressing, the most comprehensive list of vendor subsys codes I could find, nowhere does they list a card similar to mine. Puzzling, this. Mine is for sure 5704 chip, made for IBM by Broadcom, hence the "-I" at the end of the printed part number on the card. Dell cards have a "-D" appended to it, etc. The problem exists that the amalgamation of ID strings I pu together has no IBM subsys code. Here is a snippet from http://pciids.sourceforge.net/v2.2/pci.ids --the comments at the end [are mine]
------------------------------------------------------------------
1648 NetXtreme BCM5704 Gigabit Ethernet
0e11 00cf NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T)[compaq]
0e11 00d0 NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) [compaq]
0e11 00d1 NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T) [compaq]
1028 014a PowerEdge 1750 [DELL]
103c 310f NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) [HP]
10a9 8013 Dual Port Gigabit Ethernet (PCI-X,Copper) [SGI]
10a9 8018 Dual Port Gigabit Ethernet (A330) [SGI]
10a9 801a Dual Port Gigabit Ethernet (IA-blade) [SGI]
10a9 801b Quad Port Gigabit Ethernet (PCI-E,Copper) [nahhh]
10b7 2000 3C998-T Dual Port 10/100/1000 PCI-X [3COM]
10b7 3000 3C999-T Quad Port 10/100/1000 PCI-X [3COM]
1166 1648 NetXtreme CIOB-E 1000Base-T [broadcom / serverWorks]
1734 100b PRIMERGY RX/TX series onboard LAN [??? this is odd, Fujitsu-Siemens Computers GmbH makes that.]
--------------------------------------------------------------------
Separately, IBM is "International Business Machines Corp.", and their ID is 1014. Now why can't they make their vendor subsys secret known, I don't know. So this puts me close, but missing only the Board Device code. I may hazard a guess tomorrow, something like:

Code: Select all

Chip   Chip          Sybsys   Subsys   Board
I/F   Vendor   Device   Vendor   Device       Rev
===   ======   ======   ======   ======   ======
tg0   0x14e4   0x1648   0x1014   0x????   0x0000    TucanNet Extreme Copper ;-)
to maybe
tg0   0x14e4   0x1648   0x1014   0x1648   0x0000    (That's how Broadcom does it)


On the other hand, I could re-double my efforts to find a PC with a PCI-X slot in it!
Question to forum: Is there a way to query, from Irix, the EEPROM of an installed card, if hinv does not see it? Some kind of micro app? A testing tool someone might know about?
TAI for that, and I'll report back progress.


Bye for now,


--------CTM
--------CTM
You don't need PCI-X, a bog standard 32bit PCI slot is enough, assuming there are no components physically blocking the space behind the slot.
I just converted an IBM dual port netxtreme 1000t to a SGI 5704. It's rather straightforward if you have read the instructions for modding a 3c996B. In linux,I could see that the chp and subsys vendor and device ids were both 14e4:1648, just like the values ar a0..a7 in the eeprom of both devices (eth3 and eth4 for me). To make both ports usable in IRIX, I had to run thte following for eth3 and eth4:

Code: Select all

ethtool -E eth4 magic 0x669955aa offset 0xa4 value 0x80
ethtool -E eth4 magic 0x669955aa offset 0xa5 value 0x13
ethtool -E eth4 magic 0x669955aa offset 0xa6 value 0x10
ethtool -E eth4 magic 0x669955aa offset 0xa7 value 0xa9

After a reboot, lspci listed the card as:

Code: Select all

00:12.0 0200: 14e4:1648 (rev 03)
Subsystem: 10a9:8013
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort
- <MAbort- >SERR- <PERR- INTx-
Latency: 32 (16000ns min), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 10
Region 0: Memory at d4800000 (64-bit, non-prefetchable) [size=64K]
Region 2: Memory at d4000000 (64-bit, non-prefetchable) [size=64K]
[virtual] Expansion ROM at 20100000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: tg3
Kernel modules: tg3

00:12.1 0200: 14e4:1648 (rev 03)
Subsystem: 10a9:8013
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort
- <MAbort- >SERR- <PERR- INTx-
Latency: 32 (16000ns min), Cache Line Size: 32 bytes
Interrupt: pin B routed to IRQ 5
Region 0: Memory at d3800000 (64-bit, non-prefetchable) [size=64K]
Region 2: Memory at d3000000 (64-bit, non-prefetchable) [size=64K]
Expansion ROM at <ignored> [disabled]
Capabilities: <access denied>
Kernel driver in use: tg3
Kernel modules: tg3

Finally, in IRIX, tgcmd inventory shows:

Code: Select all

Chip   Chip   Sybsys Subsys Board
I/F     Vendor Device Vendor Device Rev
===     ====== ====== ====== ====== ======
tg3     0x14e4 0x1648 0x10a9 0x8013 0x0103 SGI 5704 Copper
tg4     0x14e4 0x1648 0x10a9 0x8013 0x0103 SGI 5704 Copper

And hinv -v lists it as

Code: Select all

Gigabit Ethernet: tg3, module 001c01, PCI bus 2 slot 1 port 0
Gigabit Ethernet: tg4, module 001c01, PCI bus 2 slot 1 port 1
[...]
PCI Adapter ID (vendor 0x14e4, device 0x1648) PCI slot 1
PCI Adapter ID (vendor 0x14e4, device 0x1648) PCI slot 1

Does anyone know how to renumber this card so that it appears as tg0 and tg1?
No "UNSUPPORTED" messages showing up?
:O3200: :Fuel: :Indy: :O3x02L:
canavan wrote: Does anyone know how to renumber this card so that it appears as tg0 and tg1?


Yep, that's set in /etc/ioconfig.conf. Either delete it and let IRIX regenerate it next boot (it will pull the stale entries), or edit it manually.
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.
No "UNSUPPORTED" messages showing up?
No, but that problem has been solved for the 3com cards that were affected.
Yep, that's set in /etc/ioconfig.conf. Either delete it and let IRIX regenerate it next boot (it will pull the stale entries), or edit it manually.
That almost does it - this card starts as tg1 and tg2, but that's good enough for me.