summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/pnic.c
Commit message (Collapse)AuthorAgeFilesLines
* [legal] Include full licence text for all GPL2_OR_LATER filesMichael Brown2015-02-261-2/+12
| | | | | | | | Add the standard warranty disclaimer and Free Software Foundation address paragraphs to the licence text where these are not currently present. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pci] Make driver PCI ID a property of the PCI deviceMichael Brown2011-02-171-2/+1Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [netdevice] Call netdev_link_[up|down|err]() only while registeredMichael Brown2010-09-051-3/+3
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Rename gPXE to iPXEMichael Brown2010-04-201-6/+6
| | | | | | | | | | | Access to the gpxe.org and etherboot.org domains and associated resources has been revoked by the registrant of the domain. Work around this problem by renaming project from gPXE to iPXE, and updating URLs to match. Also update README, LOG and COPYRIGHTS to remove obsolete information. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [netdevice] Separate out the concept of hardware and link-layer addressesMichael Brown2009-08-121-1/+1
| | | | | | | | | | | The hardware address is an intrinsic property of the hardware, while the link-layer address can be changed at runtime. This separation is exposed via APIs such as PXE and EFI, but is currently elided by gPXE. Expose the hardware and link-layer addresses as separate properties within a net device. Drivers should now fill in hw_addr, which will be used to initialise ll_addr at the time of calling register_netdev().
* [legal] Add a selection of FILE_LICENCE declarationsMichael Brown2009-05-181-0/+2
| | | | | Add FILE_LICENCE declarations to almost all files that make up the various standard builds of gPXE.
* [pci] Add driver_data field to struct pci_device_idThomas Miletich2009-03-261-1/+1
| | | | | Modified-by: Michael Brown <mcb30@etherboot.org> Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [ioapi] Remove old io.h file and switch all users over to <gpxe/io.h>Michael Brown2008-10-121-1/+1
|
* [NETDEV] Add notion of link stateMichael Brown2008-04-221-0/+3
| | | | | | | | | | | Add ability for network devices to flag link up/down state to the networking core. Autobooting code will now wait for link-up before attempting DHCP. IPoIB reflects the Infiniband link state as the network device link state (which is not strictly correct; we also need a succesful IPoIB IPv4 broadcast group join), but is probably more informative.
* Use net_device_operations structure and netdev_nullify() to allow forMichael Brown2007-07-071-27/+34
| | | | | | | | | | | safe dropping of the netdev ref by the driver while other refs still exist. Add netdev_irq() method. Net device open()/close() methods should no longer enable or disable IRQs. Remove rx_quota; it wasn't used anywhere and added too much complexity to implementing correct interrupt-masking behaviour in pxe_undi.c.
* Use netdev_rx_err() to report receive errors.Michael Brown2007-07-051-2/+3
|
* Kill off now-redundant _irq() methods.Michael Brown2007-07-031-23/+0Star
|
* Enable/disable interrupts on open/close.Michael Brown2007-07-031-5/+17
|
* Kill off hotplug.h and just make net devices normal reference-countedMichael Brown2007-06-271-9/+7Star
| | | | | | structures. DHCP still broken and #if 0'd out.
* pkbuff->iobuf changeoverMichael Brown2007-05-191-12/+12
| | | | | | | | Achieved via Perl using: perl -pi -e 's/pk_buff/io_buffer/g; s/Packet buffer/I\/O buffer/ig; ' \ -e 's/pkbuff\.h/iobuf.h/g; s/pkb_/iob_/g; s/_pkb/_iob/g; ' \ -e 's/pkb/iobuf/g; s/PKB/IOB/g;'
* Use stdio.h instead of vsprintf.hMichael Brown2007-01-191-1/+1
|
* Use pkb_pad() rather than doing it the dangerous way :)Michael Brown2007-01-111-5/+2Star
|
* Add "name" field to struct device to allow human-readable hardware deviceMichael Brown2007-01-101-0/+1
| | | | | | | | | | | names. Add "dev" pointer in struct net_device to tie network interfaces back to a hardware device. Force natural alignment of data types in __table() macros. This seems to prevent gcc from taking the unilateral decision to occasionally increase their alignment (which screws up the table packing).
* Add RX quotas to the net device poll() method. This avoids the problemMichael Brown2007-01-091-2/+3
| | | | | | of alloc_pkb() exhaustion when e.g. an iSCSI-booted DOS session is left idle for a long time at the C:\ prompt and builds up a huge packet backlog.
* Added net device TX queue; this will be needed to support the PXE UNDI APIMichael Brown2007-01-091-1/+1
| | | | | | (which will need us to wait for TX completions). Added debug autocolourisation to netdevice.c
* Make open() and close() an official part of the netdevice API.Michael Brown2007-01-041-0/+16
| | | | Call netdevice's poll() and transmit() methods only when device is open.
* PNIC doesn't auto-pad.Michael Brown2006-06-051-0/+8
|
* Use insb/outsb; it's marginally faster.Michael Brown2006-05-201-9/+2Star
|
* Restructured PCI subsystem to fit the new device model.Michael Brown2006-05-161-23/+9Star
| | | | | | | | | | | | | | Generic PCI code now handles 64-bit BARs correctly when setting "membase"; drivers should need to call pci_bar_start() only if they want to use BARs other than the first memory or I/O BAR. Split rarely-used PCI functions out into pciextra.c. Core PCI code is now 662 bytes (down from 1308 bytes in Etherboot 5.4). 284 bytes of this saving comes from the pci/pciextra split. Cosmetic changes to lots of drivers (e.g. vendor_id->vendor in order to match the names used in Linux).
* Transmit the buffer contents, not the buffer descriptor...Michael Brown2006-04-281-2/+4
|
* Add missing {register,free}_netdev().Michael Brown2006-04-241-1/+15
| | | | Tie into existing driver API; we'll fix that up soon.
* Network API now allows for multiple network devices (although theMichael Brown2006-04-241-101/+112
| | | | | | | | | | | | | implementation allows for only one, and does so without compromising on the efficiency of static allocation). Link-layer protocols are cleanly separated from the device drivers. Network-layer protocols are cleanly separated from individual network devices. Link-layer and network-layer protocols are cleanly separated from each other.
* D'ohMichael Brown2005-05-031-1/+1
|
* Use __sharedMichael Brown2005-05-031-1/+1
|
* Automatically updated withMichael Brown2005-04-261-2/+1Star
| | | | perl -pi -0777 -e 's/^static struct \w+_driver (\w+) =\s*(\w+_DRIVER \()/${2} ${1},/msg' *.c
* Tweaked API to minimise changes to existing drivers even further.Michael Brown2005-04-211-1/+1
|
* Updated to current APIMichael Brown2005-04-211-10/+8Star
|
* Updated to new device API.Michael Brown2005-04-141-15/+10Star
|
* Updated to new device API.Michael Brown2005-04-121-57/+50Star
|
* Initial revisionMichael Brown2005-03-081-0/+267