summaryrefslogtreecommitdiffstats
path: root/sys/boot/efi/libefi/efinet.c
Commit message (Collapse)AuthorAgeFilesLines
* Convert to __FBSDID.obrien2004-01-041-2/+3
|
* Fix printf format errorspeter2002-07-201-3/+3
|
* Work around some nasty bugs on the [beta] Itanium2's E1000 UNDI driver.peter2002-07-201-5/+20
| | | | | | | | | | | | | | Bug#1: The GetStatus() function returns radically different pointers that do not match any packets we transmitted. I think it might be pointing to a copy of the packet or something. Since we do not transmit more than one packet at a time, just wait for "anything". Bug#2: The Receive() function takes a pointer and a length. However, it either ignores the length or otherwise does bad things and writes outside of ptr[0] through ptr[len-1]. This is bad and causes massive stack corruption for us since we are receiving packets into small buffers on the stack. Instead, Receive() into a large enough buffer and bcopy the data to the requested area.
* Fix the initialization of the protocol:marcel2002-03-301-2/+68
| | | | | | | | | | | | | | | | | o Query the state field of the protocol mode to determine whether we need to start and/or initialize the protocol. When we're loaded across the network, the protocol has already been started and is already initialized. When no networking has happened yet, we have to start and initialize the protocol ourselves. o After initialization, we have to set the receive filters. Not doing this results in a deaf interface. We set the unicast and broadcast filters. Multicast may not be supported. This specific change fixes the problem we had that we could not netboot if the loader was started from the EFI shell. o To help future debugging, add a function that dumps the current mode of the interface. It's conditional on EFINET_DEBUG. o To help in runtime problems, emit a diagnostic message when we could not initialize the protocol properly.
* o Make efinet_put a blocking call by waiting for the protocolmarcel2002-03-291-12/+22
| | | | | | | | | | | | | | | layer to signal transmission of the packet. This resolves the problem I'm seeing that an immediate call to net->Receive after calling net->Transmit returns EFI_DEVICE_ERROR. This condition seems to be sufficiently persistent that BOOTP and RARP fail. o While here, unify all functions to have 'nif' defined. Some have it as arguments. The others now have them as locals. We now always get the protocol interface by using the 'nif' var. The current status of netbooting is that even though we now reliably have BOOTP working (again), opening a file (ie loading a kernel) across the network causes the loader to hang. I'm working on that now.
* * Flesh out elf_exec and bootinfo.dfr2001-09-221-0/+176
* Add EFI network support.
OpenPOWER on IntegriCloud