RE: [Etherboot-developers] secrets behind symbol, INCLUDE_LANCE ?
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: Eno C. <Eno...@Mi...> - 2001-02-07 14:25:55
|
Thanks, Ken for that explanation. Since you speculate about the second nic, I'll add some detail about our project and solicit you suggestions. The machine, a custom built box intended for avionics applications, is equipped with two ethernet interfaces. One uses the AMD AM79C972 chip; the other uses the AMD AM79C973 chip. Both these chips are, for etherboot purposes, compatible with the AMD Lance. The unmodified etherboot is working against the 972 chip. The project requires the boot process to attempt the boot first against the 972 device. Failing that, the process must continue by attempting the boot against the 973 device. Failing that, the process continues normally against local rotating storage. Being unfamiliar with Etherboot Architecture, I am unsure how to approach this development. My first thought was to confine my modifications to the lance driver itself. Considering over night though, I think there must be higher level logic, that calls the lance driver, where simple modifications might fit easier. My thought here is to modify the lance driver such that the probe routine knows to ignore a device. With this ability, the higher routine could call lance normally (use any device you can find). Failing the first device, the higher routine could call lance again with a parameter that says, in effect, use any device you can find except this one. Your statement about non-reentrancies worries me, but that can't be a killer unless space restrictions are insurmountable. We intend to keep the code in about 16k of available space in bios rom. If this is insufficient, we will just have to make other arrangements, something we need to avoid if possible. Does this make any sense? Eno -----Original Message----- From: Ken Yap [mailto:ke...@nl...] Sent: Tuesday, February 06, 2001 4:45 PM To: eth...@li... Subject: Re: [Etherboot-developers] secrets behind symbol, INCLUDE_LANCE ? |Have been studying the lance driver for some time. Of course confusion |reigns. The confusion stems from the conditional compilation symbol, |INCLUDE_LANCE. Here is why. The confusion is because INCLUDE_LANCE is a bit of a misnomer. It really means "this is a PCI lance card". |Where the probe routine definition occurs, the entry point to lancepci_probe |is defined within an ifdef INCLUDE_LANCE. But there is no alternative |definition to serve in the case the symbol is undefined. If the symbol is undefined, one of the others will be, INCLUDE_NE2100 or INCLUDE_NI6510. I'm guessing since you probably have a PCI lance card, you should continue to use INCLUDE_LANCE. To add an entry to the PCI entries for lance, edit config.c and NIC. Also add an entry to chip_table[] in lance.c. |I don't mean to be picky here but I have to modify the driver to accommodate |a second nic. Further to this end it is necessary for me to understand |driver subtleties that seem to be eluding me. If by second NIC you mean detecting two cards on the same machine rather than adding a new type of card to the table, you are entering unchartered territory. I don't think the current code will work for more than one card without large modifications, there are too many non-reentrancies in the code. _______________________________________________ Etherboot-developers mailing list Eth...@li... http://lists.sourceforge.net/lists/listinfo/etherboot-developers |