summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/drivers/net/undinet.c
Commit message (Collapse)AuthorAgeFilesLines
* [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.
* Fix compiler warnings that appear only on OpenBSD.Michael Brown2007-12-061-1/+1
|
* Don't rely on retry.c's periodically calling currticks() in order toMichael Brown2007-07-291-1/+7
| | | | allow the UNDI NIC interrupt to happen.
* Move uninitialised .data16 variables to .bss16; saves around 2000Michael Brown2007-07-161-2/+2
| | | | bytes of useless zeroes in the final image.
* Kill off the enforced RX quota; it only seems to hurt on real hardware.Michael Brown2007-07-141-3/+1Star
|
* Improve error reporting for strange length combinations reported byMichael Brown2007-07-101-6/+21
| | | | | | | | | the UNDI stack. Ignore obviously invalid length combinations (as returned by e.g. VMWare's PXE stack). Limit to one packet per poll to avoid memory exhaustion.
* Report RX errors via netdev_rx_err()Michael Brown2007-07-101-1/+2
|
* Protect ISR against failure to unhook.Michael Brown2007-07-101-34/+15Star
|
* Working code to call the PXE stack from within the ISR.Michael Brown2007-07-101-19/+22
|
* Use net_device_operations structure and netdev_nullify() to allow forMichael Brown2007-07-071-10/+28
| | | | | | | | | | | 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.
* Work around Etherboot 5.4 bug when multiple packets are received.Michael Brown2007-07-031-1/+38
|
* It's not just Etherboot that fails to generate TX completions.Michael Brown2007-07-031-2/+2
|
* Document TX completion bug.Michael Brown2007-07-031-0/+10
|
* Use a common base-memory packet buffer for DHCP construction (as usedMichael Brown2007-07-021-11/+5Star
| | | | by PXE and NBI) and UNDI packets (as used by undinet and UNDI).
* Kill off hotplug.h and just make net devices normal reference-countedMichael Brown2007-06-271-2/+2
| | | | | | structures. DHCP still broken and #if 0'd out.
* pkbuff->iobuf changeoverMichael Brown2007-05-191-27/+27
| | | | | | | | 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;'
* Don't call PXENV_STOP_UNDI in the kpxeprefix. This slighy breaks theMichael Brown2007-01-291-9/+14
| | | | | clean separation between loading and starting, but does mean that more PXE stacks survive the process.
* Add some trace messages for important eventsMichael Brown2007-01-131-0/+6
|
* Pick up the return status code from the correct place now that weMichael Brown2007-01-131-2/+1Star
| | | | don't overwrite the parameter block until *after* the debug code.
* When an UNDI API call fails, print everything there is to know about it.Michael Brown2007-01-131-3/+20
|
* Always send EOI. We can't feasibly share interrupts (since we have noMichael Brown2007-01-131-4/+12
| | | | | | clue what the "previous" interrupt handler will do, which could range from "just an iret" to "disable the interrupt"), and that means that we have to take responsibility for ACKing all interrupts. Joy.
* We *do* have a __data16_array after all!Michael Brown2007-01-121-6/+1Star
|
* 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-16/+35
| | | | | | 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.
* Rename pkb_available() to pkb_tailroom() for consistency with Linux'sMichael Brown2007-01-091-2/+2
| | | | skb_tailroom(). Add pkb_headroom().
* Added net device TX queue; this will be needed to support the PXE UNDI APIMichael Brown2007-01-091-4/+8
| | | | | | (which will need us to wait for TX completions). Added debug autocolourisation to netdevice.c
* Added ability to break ISR processing over several calls to poll().Michael Brown2007-01-091-17/+34
| | | | This will allow us to implement RX quotas.
* Send EOI after enabling interrupt, in case the device had asserted IRQMichael Brown2007-01-091-0/+1
| | | | to the PIC while it was disabled.
* Tidied up debug messagesMichael Brown2007-01-081-1/+2
|
* Use "struct undi_device" instead of "struct pxe_device", and use theMichael Brown2007-01-081-151/+134Star
| | | | | | | | | function prefix "undinet_" and the variable name "undinic" in undinet.c, so that we can reserve the variable name "undi" for a struct undi_device. The idea is that we preserve the Etherboot 5.4 convention that the "UNDI" code refers to our using an underlying UNDI stack, while the "PXE" code refers to our providing a PXE API.
* Renamed undi.c to undinet.c. (undi.c will become the UNDI PCI driver)Michael Brown2007-01-081-0/+660