Discussion:
adding the 82546 Gigabith Ethernet Controller
(too old to reply)
samiam
2007-01-19 20:09:54 UTC
Permalink
Is anyone successfully using this under vxWorks?
Bill
2007-01-22 06:37:04 UTC
Permalink
Post by samiam
Is anyone successfully using this under vxWorks?
What ***VERSION*** of VxWorks?

Which ***CPU ARCHITECTURE*** are you running it on?

What ***BOARD/BSP*** are you using?

People! When you post questions, PLEASE PROVIDE THIS BASIC INFORMATION!

Now, I happen to know that the 82546 is a dual port NIC, and I bet what
you really meant to say was:

"Hey, when I plug in this card, only the first port works. How do I use
the second one?"

The answer is that the second port appears as a second PCI function.
That is, the first port is pci bus0/device0/function0 and the second is
bus0/device0/function1. However, in many BSPs, the probe/initialization
stub code for various drivers doesn't handle multifunction devices
correctly. I've had problems with this in the past. You may have to
twiddle your BSP a bit to get over this hurdle, but once you do, your
card should work with the gei82543End driver.

-Bill
samiam
2007-01-24 00:37:45 UTC
Permalink
Post by Bill
What ***VERSION*** of VxWorks?
5.5
Post by Bill
Which ***CPU ARCHITECTURE*** are you running it on?
PPC 74xx
Post by Bill
What ***BOARD/BSP*** are you using?
Actually I am adding it to the company' BSP for a ppc based SBC. I
wanted to make certain the existing gei85xxxEND driver works as
advertised, and all I need to do is initialize the ENdTbl(), compile
the source file and write the sys82543BoardInit() function.

Basically trying to make certain theres no "gotchas"
Bill
2007-01-25 05:32:20 UTC
Permalink
Post by samiam
Post by Bill
What ***VERSION*** of VxWorks?
5.5
Post by Bill
Which ***CPU ARCHITECTURE*** are you running it on?
PPC 74xx
Post by Bill
What ***BOARD/BSP*** are you using?
Actually I am adding it to the company' BSP for a ppc based SBC. I
wanted to make certain the existing gei85xxxEND driver works as
advertised, and all I need to do is initialize the ENdTbl(), compile
the source file and write the sys82543BoardInit() function.
Basically trying to make certain theres no "gotchas"
The gei driver in 5.5.x does support the 82546 chip. but I'm afraid
there is a gotcha.

The gei driver (like most PCI drivers in 5.5.x) has two pieces:
target/src/drv/end/gei82543End.c (the main driver source) and the BSP
stub (typically called sysGei82543End.c). The BSP stub is responsible
for probing the PCI bus, finding the device, and ultimately calling the
driver's load function and passing it resource info (base address,
interupt vector) via the load string. The GEI driver's stub serves an
additional purpose: it contains the code that reads the EEPROM to find
the NIC's station address. (Sometimes the NIC doesn't have an EEPROM:
the idea here is to give you the ability to supply a board-specific MAC
address from the BSP if accessing the EEPROM fails.)

Unfortunately, not all BSPs shipped with VxWorks support all possible
PCI devices. Usually the BSP writer will add support for whatever
device might actually be on board. Some of the more generous ones may
include support for other devices as a convenience, but this is more
the exception that the rule. The pcPentium BSPs happen to include
support for a large selection of drivers (including the gei) because
x86-based systems don't have a standard on-board ethernet device.

I don't think there are any 74xx BSPs that ship with support for the
gei driver. The sandpoint BSPs look like they support the fei, elPci
and dec drivers, but not gei. This means you'll likely have to write
your own BSP stub. Normally I'd say 'steal the one from pcPentium and
hack it to taste' except if you purchased VxWorks/Tornado for PPC only,
you won't have the x86 BSP CD.

If you have a support contract that gives you access to BSP updates on
Windsurf, I would see if there are any x86 BSPs there which might have
the sysGei82543End.c file and try downloading one. Otherwise, I would
contact WR support and ask if they can supply a copy to you. I don't
think there's any particular reason they'd refuse. Once you have the
file, you'll still need to tweak it to work with your BSP.

Sorry that it's not more painless. :(

-Bill

Loading...