| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Guard against corruption of top half of %esp during UNDI ISR | Michael Brown | 2008-02-13 | 1 | -0/+3 |
| | | |||||
| * | undiisr.S: save/restore upper half of %eflags | H. Peter Anvin | 2008-02-11 | 1 | -0/+2 |
| | | | | | | | Since we don't know what the UNDI code does, it is safest to save/restore %eflags even though the lower half of %eflags is automatically saved by the interrupt itself. | ||||
| * | UNDI ISR: save and restore 32-bit registers | H. Peter Anvin | 2008-02-11 | 1 | -4/+7 |
| | | | | | | | | | | | | As written, if the if the UNDI ISR call clobbers the upper halves of any of the GPRs (which by convention it is permitted to do, and by paranoia should be expected to do) then nothing in the interrupt handler will recover the state. Additionally, save/restore %fs and %gs out of sheer paranoia - it's a cheap enough operation, and may prevent problems due to poorly written UNDI stacks. | ||||
| * | Fix compiler warnings that appear only on OpenBSD. | Michael Brown | 2007-12-06 | 2 | -2/+2 |
| | | |||||
| * | Don't rely on retry.c's periodically calling currticks() in order to | Michael Brown | 2007-07-29 | 1 | -1/+7 |
| | | | | | allow the UNDI NIC interrupt to happen. | ||||
| * | Move uninitialised .data16 variables to .bss16; saves around 2000 | Michael Brown | 2007-07-16 | 2 | -4/+4 |
| | | | | | bytes of useless zeroes in the final image. | ||||
| * | Kill off the enforced RX quota; it only seems to hurt on real hardware. | Michael Brown | 2007-07-14 | 1 | -3/+1![]() |
| | | |||||
| * | Improve error reporting for strange length combinations reported by | Michael Brown | 2007-07-10 | 1 | -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. | ||||
| * | Set up %ds *before* testing a value in our data segment (d'oh!). | Michael Brown | 2007-07-10 | 1 | -6/+11 |
| | | | | | | | | | | Always send EOI; do not chain to BIOS's default interrupt handler. They are just too unpredictable; at least VMware's seems to kill the machine if you go anywhere near it. Disable interrupts after return from PXENV_UNDI_ISR, just in case some dumb PXE stack enables them. | ||||
| * | Report RX errors via netdev_rx_err() | Michael Brown | 2007-07-10 | 1 | -1/+2 |
| | | |||||
| * | Protect ISR against failure to unhook. | Michael Brown | 2007-07-10 | 2 | -34/+19![]() |
| | | |||||
| * | Working code to call the PXE stack from within the ISR. | Michael Brown | 2007-07-10 | 2 | -19/+92 |
| | | |||||
| * | Use net_device_operations structure and netdev_nullify() to allow for | Michael Brown | 2007-07-07 | 1 | -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. | ||||
| * | convert to zalloc | Holger Lubitz | 2007-07-06 | 1 | -2/+1![]() |
| | | |||||
| * | convert to zalloc | Holger Lubitz | 2007-07-06 | 1 | -2/+1![]() |
| | | |||||
| * | Work around Etherboot 5.4 bug when multiple packets are received. | Michael Brown | 2007-07-03 | 1 | -1/+38 |
| | | |||||
| * | It's not just Etherboot that fails to generate TX completions. | Michael Brown | 2007-07-03 | 1 | -2/+2 |
| | | |||||
| * | Document TX completion bug. | Michael Brown | 2007-07-03 | 1 | -0/+10 |
| | | |||||
| * | Use a common base-memory packet buffer for DHCP construction (as used | Michael Brown | 2007-07-02 | 1 | -11/+5![]() |
| | | | | | by PXE and NBI) and UNDI packets (as used by undinet and UNDI). | ||||
| * | Kill off hotplug.h and just make net devices normal reference-counted | Michael Brown | 2007-06-27 | 1 | -2/+2 |
| | | | | | | | structures. DHCP still broken and #if 0'd out. | ||||
| * | pkbuff->iobuf changeover | Michael Brown | 2007-05-19 | 1 | -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;' | ||||
| * | Updated ISAPnP, EISA, MCA and ISA buses to current device model. | Michael Brown | 2007-03-10 | 1 | -8/+5![]() |
| | | | | | | | | ISA 3c509 is currently non-functional, although the EISA (3c509-eisa) and MCA (3c529) variants should build OK. None of this code is yet tested. | ||||
| * | Don't call PXENV_STOP_UNDI in the kpxeprefix. This slighy breaks the | Michael Brown | 2007-01-29 | 1 | -9/+14 |
| | | | | | | clean separation between loading and starting, but does mean that more PXE stacks survive the process. | ||||
| * | Use stdio.h instead of vsprintf.h | Michael Brown | 2007-01-19 | 1 | -1/+1 |
| | | |||||
| * | Use {get,set}_fbms() so that allocated base memory is correctly hidden. | Michael Brown | 2007-01-14 | 1 | -12/+7![]() |
| | | |||||
| * | Add some trace messages for important events | Michael Brown | 2007-01-13 | 1 | -0/+6 |
| | | |||||
| * | Pick up the return status code from the correct place now that we | Michael Brown | 2007-01-13 | 1 | -2/+1![]() |
| | | | | | 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 Brown | 2007-01-13 | 1 | -3/+20 |
| | | |||||
| * | Always send EOI. We can't feasibly share interrupts (since we have no | Michael Brown | 2007-01-13 | 1 | -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 Brown | 2007-01-12 | 1 | -6/+1![]() |
| | | |||||
| * | Add device description fields to struct device. | Michael Brown | 2007-01-10 | 3 | -13/+28 |
| | | |||||
| * | Give UNDI device a more meaningful name. | Michael Brown | 2007-01-10 | 1 | -1/+1 |
| | | |||||
| * | Add "name" field to struct device to allow human-readable hardware device | Michael Brown | 2007-01-10 | 3 | -1/+7 |
| | | | | | | | | | | | | 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 problem | Michael Brown | 2007-01-09 | 1 | -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's | Michael Brown | 2007-01-09 | 1 | -2/+2 |
| | | | | | skb_tailroom(). Add pkb_headroom(). | ||||
| * | Added net device TX queue; this will be needed to support the PXE UNDI API | Michael Brown | 2007-01-09 | 1 | -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 Brown | 2007-01-09 | 1 | -17/+34 |
| | | | | | This will allow us to implement RX quotas. | ||||
| * | Send EOI after enabling interrupt, in case the device had asserted IRQ | Michael Brown | 2007-01-09 | 1 | -0/+1 |
| | | | | | to the PIC while it was disabled. | ||||
| * | Added UNDI root bus driver (which saves including all the PCI bus code, | Michael Brown | 2007-01-09 | 1 | -0/+96 |
| | | | | | | | | | UNDI ROM code etc. when you just want a "undi.kpxe"-type image). This driver cannot be used in conjunction with any other driver (it will crash), or in any other format than .kpxe (it just won't find any network devices). | ||||
| * | Added missing call to undinet_remove() | Michael Brown | 2007-01-09 | 1 | -0/+1 |
| | | |||||
| * | undipci_probe() has to calculate busdevfn anyway, so we may as well pass | Michael Brown | 2007-01-09 | 2 | -20/+3![]() |
| | | | | | it directly to undi_load_pci(). | ||||
| * | Avoid erasing non-existent signatures in undi_unload() | Michael Brown | 2007-01-09 | 1 | -2/+4 |
| | | |||||
| * | If preloaded device matches, use that rather than going via the UNDI | Michael Brown | 2007-01-09 | 1 | -21/+46 |
| | | | | | loader. | ||||
| * | Provide storage for an undi_device structure representing the preloaded | Michael Brown | 2007-01-09 | 1 | -0/+35 |
| | | | | | UNDI stack. | ||||
| * | Use fixed-width fields in struct undi_device, so that pxeprefix.S will be | Michael Brown | 2007-01-09 | 1 | -4/+4 |
| | | | | | able to populate the structure. | ||||
| * | Neaten up debug messages | Michael Brown | 2007-01-08 | 1 | -3/+3 |
| | | |||||
| * | Remove spurious debug message | Michael Brown | 2007-01-08 | 1 | -1/+0![]() |
| | | |||||
| * | Added any-PCI-device UNDI driver | Michael Brown | 2007-01-08 | 1 | -0/+119 |
| | | |||||
| * | Tidied up debug messages | Michael Brown | 2007-01-08 | 1 | -1/+2 |
| | | |||||
| * | Split UNDI load/unload out into undiload.c. | Michael Brown | 2007-01-08 | 1 | -0/+189 |
| | | |||||

