[syslinux] Etherboot and gpxe

Joyce Yu Joyce.Yu at Sun.COM
Thu Jul 30 16:22:29 PDT 2009


Michael,

I looked at a few NIC drivers in under gpxe0.9.7. It seems there are two 
kinds of them. One kinds are still using all the etherboot interfaces 
with some changes like:
------------------------------------------------
*. Use nic structure instead of dev*
*. Add the following new structures:*
static struct nic_operations xxxx_operations = {
    .connect  = dummy_connect,
    .poll  = xxxx_poll,
    .transmit  = xxxx_transmit,
    .irq = xxxx_irq,
};
static struct pci_device_id xxxx_nics[] = {
    PCI_ROM(0xaaaa, 0xbbbb, "xxxx", "abcdefg...."),
};
PCI_DRIVER ( xxxx_driver, xxxx_nics, PCI_NO_CLASS );
*. pci->name changed to pci->driver_name*
*. Use nic->nic_op    = &xxxx_operations to replace similar ones in 
etherboot at the end of the xxxx_probe()*
*. Add these at the end of the file:*
DRIVER ( "xxxx/PCI", nic_driver, pci_driver, xxxx_driver,
     xxxx_probe, xxxx_disable );
/*
 * Local variables:
 *  c-basic-offset: 8
 *  c-indent-level: 8
 *  tab-width: 8
 * End:
 */
----------------------------------

The other kinds are using LINUX NIC driver like interfaces, such as:
-----------------------------------
static struct net_device_operations xxxx_operations = {
        .open           = xxxx_open,
        .close          = xxxx_close,
        .transmit       = xxxx_transmit,
        .poll           = xxxx_poll,
        .irq            = xxxx_irq,
};

struct pci_driver xxxx_driver __pci_driver = {
        .ids = xxxx_nics,
        .id_count = (sizeof (xxxx_nics) / sizeof (xxxx_nics[0])),
        .probe = xxxx_probe,
        .remove = xxxx_remove,
};

xxxx_probe() does some HW initialization, but leave some to the 
xxxx_open(). This is the difference between etherboot xxxx_probe() and 
gpxe xxxx_probe(), am I right?
---------------------------------------

I want to know if both implementations are working? What is the benefit 
if the new ones are used?

Thanks a lot,
Joyce



On 05/28/09 11:26, Michael Brown wrote:
> On Thursday 28 May 2009 18:53:34 Joyce Yu wrote:
>   
>> I just tried to use gPXE 0.9.7 to  load Solaris. It works.  I will port
>> the drivers to the gPXE 0.9.7.
>>     
>
> Excellent news!
>
> I look forward to being able to merge your driver in to the gPXE tree.
>
> Michael
>   


-- 





More information about the Syslinux mailing list