Alexey Zaytsev
a1572e0ab0
Modify gPXE core and drivers to work with the new timer subsystem
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com >
16 years ago
Alexey Zaytsev
4006d229e5
Introduce the new timer subsystem.
Timer subsystem initialization code in core/timer.c
Split the BIOS and RTDSC timer drivers from i386_timer.c
Split arch/i386/firmware/pcbios/bios.c into the RTSDC
timer driver and arch/i386/core/nap.c
Split the headers properly:
include/unistd.h - delay functions to be used by the
gPXE core and drivers.
include/gpxe/timer.h - the fimer subsystem interface
to be used by the timer drivers
and currticks() to be used by
the code gPXE subsystems.
include/latch.h - removed
include/timer.h - scheduled for removal. Some driver
are using currticks, which is
only for core subsystems.
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com >
17 years ago
Michael Brown
bc3f0a25c6
[Infiniband] Add preliminary support for multi-port devices.
Arbel and Hermon cards both have multiple ports. Add the
infrastructure required to register each port as a separate IB
device. Don't yet register more than one port, since registration
will currently fail unless a valid link is detected.
Use ib_*_{set,get}_{drv,owner}data wrappers to access driver- and
owner-private data on Infiniband structures.
16 years ago
Michael Brown
6570203571
[Infiniband] Centralise MAD operations
Pull out common code for handling management datagrams from arbel.c
and hermon.c into infiniband.c.
Add port number to struct ib_device.
Add open(), close() and mad() methods to struct ib_device_operations.
16 years ago
Michael Brown
396dc6e797
[Hermon] Add driver for Mellanox Hermon (ConnectX) cards.
16 years ago
Michael Brown
a2b4252d5a
Add XFER_INIT() macro.
17 years ago
Michael Brown
f6a8158eed
Make seek information part of the xfer metadata, rather than an entirely
separate xfer method.
Add missing .alloc_iob entries to several xfer_interface_operations
structures.
17 years ago
Michael Brown
74fd544101
Added the embedded pxelinux payload patch from hpa.
17 years ago
Michael Brown
f3265b4bf8
Add preliminary support for MTFTP.
17 years ago
Michael Brown
3b1efba864
Add RFC2090 TFTP multicast support.
17 years ago
Michael Brown
b3abf25e3c
Allow DHCP server to instruct gPXE to ignore ProxyDHCP (which will
also avoid waiting for ProxyDHCP offers).
Also reduce the ProxyDHCP timeout, because it's already irritating me.
17 years ago
Michael Brown
0becbf5fba
Add ProxyDHCP support.
17 years ago
Michael Brown
fb809da2df
Remove some assumptions about DHCP obtaining only a single options block.
17 years ago
Michael Brown
8d18338ae7
Add PXE-required DHCP options to DHCPDISCOVER and DHCPREQUEST packets.
17 years ago
Michael Brown
26f3a09ccf
Add UUID to DHCP request as option 97 (if available).
17 years ago
Michael Brown
899f5b8ab2
Added definition of a UUID and uuid_ntoa() (for debugging), and
implemented smbios_get_uuid().
17 years ago
Marty Connor
048a234dce
Add errfile definition for new e1000.c
17 years ago
Marty Connor
8bd670301c
Add ERRFILE information for e1000_main and e1000_hw, part of the new e1000 driver
It is likely we will rename e1000_main to e1000 when the new e1000 driver is debugged.
17 years ago
Michael Brown
5793dbe96f
Infinband requires longer link-layer addresses and headers than Ethernet.
17 years ago
Michael Brown
2ee76d0c93
Added defines for Infiniband files (which can't be committed to the
main tree yet, but reserving the error numbers now avoids problems later).
17 years ago
Michael Brown
af303db75d
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.
17 years ago
Michael Brown
f09173326c
Moved iobuf.h assertions outside the static inline functions, so that
the assert message's file and line number gives some clue as to the
real location of the problem.
Added similar assertions to list.h.
17 years ago
Michael Brown
30717896f5
IB can't afford many RX buffers, because the MTU is so large. Reduce
the TCP window to compensate.
17 years ago
Michael Brown
2f23881856
Added arbel.c
17 years ago
Michael Brown
2c56ede6f8
Moved iobuf.h assertions outside the static inline functions, so that
the assert message's file and line number gives some clue as to the
real location of the problem.
Added similar assertions to list.h.
17 years ago
Michael Brown
bdac591726
Some interesting packet corruption happening now.
17 years ago
Michael Brown
2ed1acb9e9
Broadcast GID is now calculated by IPoIB layer.
17 years ago
Michael Brown
ab191e45db
Unicasts seem to be working. :)
17 years ago
Michael Brown
b3d3814c17
Obtains a response to the get path record!
17 years ago
Michael Brown
e05a8cd4de
Use pkey table access to determine broadcast GID directly.
17 years ago
Michael Brown
440e7926fb
Dead code removal
17 years ago
Michael Brown
4e78a53cf2
IPoIB code separated out to ipoib.c.
17 years ago
Michael Brown
67836430e6
Read port GID directly using MAD IFC.
17 years ago
Michael Brown
3c6a6bdc5d
Multicast join now works.
17 years ago
Michael Brown
7e85f0d296
create_qp() and destroy_qp() now written (but not tested).
17 years ago
Michael Brown
251cc84ed6
Started implementing create_qp() and destroy_qp().
17 years ago
Michael Brown
b21d4ca21e
Revert to dev_priv/owner_priv scheme, rather than container_of; it
makes it easier to put the generic allocation code into infiniband.c
17 years ago
Michael Brown
e238bb1e43
destroy_cq() now implemented (not tested).
17 years ago
Michael Brown
156b409ccc
Rearrange data structures to maximise embedding (and hence minimise
the number of separate allocations that need to be done).
17 years ago
Michael Brown
37fc40bc8c
post_recv() now works, and we can pass data on the IPoIB queue pair
using entirely our own code.
17 years ago
Michael Brown
8deef093d9
Direct polling of TX completion queue now works.
17 years ago
Michael Brown
6a791649f0
Updated MLX_* accessor macros to use implicit type information.
17 years ago
Michael Brown
a3a91fedc1
Started added poll_cq() verb.
Started reworking MLX_EXTRACT(), MLX_POPULATE() etc. to automatically
determine type information.
17 years ago
Michael Brown
970951666f
arbel_post_send() has been observed to transmit a packet!
17 years ago
Michael Brown
8b27da9de1
Gets a response out of the hardware. (An error completion, to be precise.)
17 years ago
Michael Brown
38a73b55c4
Now at least compiles
17 years ago
Michael Brown
9d08b7c692
Starting to introduce an Infiniband device abstraction
17 years ago
Michael Brown
08e8dfd801
Now handling TX completions in our poll loop.
17 years ago
Michael Brown
30a19c3f1c
Can now both send and receive packets. LL header format not yet
fixed; still using a quick hack-up just to be able to pass through
data.
17 years ago
Michael Brown
99411e36da
Added netdev_priv() to ease Linux driver compatibility.
17 years ago