Michael Brown
4ddb6570f8
Almost working with own-queue allocation.
18 gadus atpakaļ
Michael Brown
7e85f0d296
create_qp() and destroy_qp() now written (but not tested).
18 gadus atpakaļ
Michael Brown
251cc84ed6
Started implementing create_qp() and destroy_qp().
18 gadus atpakaļ
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
18 gadus atpakaļ
Michael Brown
e238bb1e43
destroy_cq() now implemented (not tested).
18 gadus atpakaļ
Michael Brown
18edcf6634
create_cq() implemented (but not tested).
18 gadus atpakaļ
Michael Brown
5a43293c38
Started to add code for CQ creation
18 gadus atpakaļ
Michael Brown
156b409ccc
Rearrange data structures to maximise embedding (and hence minimise
the number of separate allocations that need to be done).
18 gadus atpakaļ
Michael Brown
791f992657
Command interface now reasonably friendly.
18 gadus atpakaļ
Michael Brown
bf9bd93856
First (working) draft of command interface.
18 gadus atpakaļ
Michael Brown
baa885ee8e
Kill off more dead code.
18 gadus atpakaļ
Michael Brown
37fc40bc8c
post_recv() now works, and we can pass data on the IPoIB queue pair
using entirely our own code.
18 gadus atpakaļ
Michael Brown
838b972cd3
Kill off some dead code
18 gadus atpakaļ
Michael Brown
31b82ea1dd
Hack up IB structures at start-of-day, instead of on each use.
18 gadus atpakaļ
Michael Brown
8deef093d9
Direct polling of TX completion queue now works.
18 gadus atpakaļ
Michael Brown
6a791649f0
Updated MLX_* accessor macros to use implicit type information.
18 gadus atpakaļ
Michael Brown
a3a91fedc1
Started added poll_cq() verb.
Started reworking MLX_EXTRACT(), MLX_POPULATE() etc. to automatically
determine type information.
18 gadus atpakaļ
Michael Brown
37a036bd48
Map the whole of physical memory
18 gadus atpakaļ
Michael Brown
970951666f
arbel_post_send() has been observed to transmit a packet!
18 gadus atpakaļ
Michael Brown
8b27da9de1
Gets a response out of the hardware. (An error completion, to be precise.)
18 gadus atpakaļ
Michael Brown
21d4ab3ce2
Prefix arbel-specific functions etc. with arbel_
18 gadus atpakaļ
Michael Brown
38a73b55c4
Now at least compiles
18 gadus atpakaļ
Michael Brown
9d08b7c692
Starting to introduce an Infiniband device abstraction
18 gadus atpakaļ
Michael Brown
75fbc96f75
Remove some dead code
18 gadus atpakaļ
Michael Brown
08e8dfd801
Now handling TX completions in our poll loop.
18 gadus atpakaļ
Michael Brown
e69863b5fb
Proof-of-concept to manually parse completion event
18 gadus atpakaļ
Michael Brown
da23e8d287
Start constructing a generic poll() routine.
18 gadus atpakaļ
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.
18 gadus atpakaļ
Michael Brown
03c90e183f
Dump received packet, including GRH.
18 gadus atpakaļ
Michael Brown
9e32e8e513
Now sends IP packets correctly.
18 gadus atpakaļ
Michael Brown
7b6d11e713
Started IB driver rewrite
18 gadus atpakaļ
Michael Brown
74a49af4ab
Force MAC address for testing purposes
18 gadus atpakaļ
Michael Brown
b42c5905cb
Very quick and very dirty hack to get the Mellanox code building
inside gPXE.
18 gadus atpakaļ
Michael Brown
9d2c54735e
Started fixing up compilation warnings.
18 gadus atpakaļ
Michael Brown
d9bba621c8
Imported latest versions from Etherboot 5.4
18 gadus atpakaļ
Michael Brown
520d9c36af
Updated ISAPnP, EISA, MCA and ISA buses to current device model.
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.
18 gadus atpakaļ
Michael Brown
832e86246b
gcc is rather over-aggressive about optimising out static data structures
even when __atribute__ (( unused )) is correctly set...
19 gadus atpakaļ
Michael Brown
824d6ffa7f
Header rearrangement.
I want to get to the point where any header in include/ reflects a
standard user-level header (e.g. a POSIX header), while everything that's
specific to gPXE lives in include/gpxe/. Headers that reflect a Linux
header (e.g. if_ether.h) should also be in include/gpxe/, with the same
name as the Linux header and, preferably, the same names used for the
definitions.
19 gadus atpakaļ