Michael Brown
fa880ec70a
[arbel] Allocate sufficient space for firmware buffer
We were accidentally allocating only half the required amount of
memory (given the alignment method) for the firmware buffer, leading
to conflicts between the firmware buffer and gPXE code/data segments.
преди 17 години
Michael Brown
d72bf13b78
[Infiniband] Fix event queue doorbell ringing on Arbel
преди 17 години
Michael Brown
c9fb012d4f
[Infiniband] Add multiport support for Arbel cards
преди 17 години
Michael Brown
35a5836677
[Infiniband] Move event-queue process from driver to Infiniband core
преди 17 години
Alexey Zaytsev
a1572e0ab0
Modify gPXE core and drivers to work with the new timer subsystem
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com >
преди 17 години
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.
преди 17 години
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.
преди 17 години
Michael Brown
338d45a61e
Change ROM names to lower case.
преди 17 години
Michael Brown
95498fa038
Remove the last remaining visible hack.
преди 18 години
Michael Brown
982e4dd101
Separated out to a clean new drivers/infiniband directory.
преди 18 години
Michael Brown
a5ec029d24
First version that works with SELF_INIT!
преди 18 години
Michael Brown
8423b0b109
Gets most of the way through initialisation.
преди 18 години
Michael Brown
def5ae9127
Added sw2hw_mpt
преди 18 години
Michael Brown
da014080f9
INIT_HCA block now matches.
преди 18 години
Michael Brown
57bf8d9905
Seems to get through the ICM mapping process
преди 18 години
Michael Brown
4ea6223f5a
ICM allocation code in place; about to start test-and-compare runs.
преди 18 години
Michael Brown
f20cd6f721
ICM allocation code *should* now be complete.
преди 18 години
Michael Brown
af88f60228
Started with the ICM partitioning code.
преди 18 години
Michael Brown
c818d47e25
Restructured bits of initialisation (not testable at present)
преди 18 години
Michael Brown
dc3165b746
Starting the firmware directly now works.
преди 18 години
Michael Brown
0f62bcaa77
Start migrating the remaining initialisation steps.
преди 18 години
Michael Brown
f3fcb53faf
Don't use the mailboxless version of the HW2SW_CQ command; it seems to
crash the machine.
преди 18 години
Michael Brown
12b4cb964b
Removed more hacks, and adjusted number of queue entries for likely usage.
преди 18 години
Michael Brown
267a4483ab
Added an almost obscene amount of debugging and assertion code while
tracking down a bug that turned out to be a free_iob() used where I
needed a netdev_tx_complete(). This left the freed I/O buffer on the
net device's TX list, with bad, bad consequences later.
Also fixed the bug in question.
преди 18 години
Michael Brown
bdac591726
Some interesting packet corruption happening now.
преди 18 години
Michael Brown
2ed1acb9e9
Broadcast GID is now calculated by IPoIB layer.
преди 18 години
Michael Brown
32a7bbb1e3
Cleaned up some debug messages.
преди 18 години
Michael Brown
ab191e45db
Unicasts seem to be working. :)
преди 18 години
Michael Brown
2209090120
Dead code disabling
преди 18 години
Michael Brown
b3d3814c17
Obtains a response to the get path record!
преди 18 години
Michael Brown
e05a8cd4de
Use pkey table access to determine broadcast GID directly.
преди 18 години
Michael Brown
440e7926fb
Dead code removal
преди 18 години
Michael Brown
4e78a53cf2
IPoIB code separated out to ipoib.c.
преди 18 години
Michael Brown
67836430e6
Read port GID directly using MAD IFC.
преди 18 години
Michael Brown
3c6a6bdc5d
Multicast join now works.
преди 18 години
Michael Brown
96d0c75c00
Now transmits packets on our own allocated IPoIB queue pair. :)
преди 18 години
Michael Brown
4ddb6570f8
Almost working with own-queue allocation.
преди 18 години
Michael Brown
7e85f0d296
create_qp() and destroy_qp() now written (but not tested).
преди 18 години
Michael Brown
251cc84ed6
Started implementing create_qp() and destroy_qp().
преди 18 години
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 години
Michael Brown
e238bb1e43
destroy_cq() now implemented (not tested).
преди 18 години
Michael Brown
18edcf6634
create_cq() implemented (but not tested).
преди 18 години
Michael Brown
5a43293c38
Started to add code for CQ creation
преди 18 години
Michael Brown
156b409ccc
Rearrange data structures to maximise embedding (and hence minimise
the number of separate allocations that need to be done).
преди 18 години
Michael Brown
791f992657
Command interface now reasonably friendly.
преди 18 години
Michael Brown
bf9bd93856
First (working) draft of command interface.
преди 18 години
Michael Brown
baa885ee8e
Kill off more dead code.
преди 18 години
Michael Brown
37fc40bc8c
post_recv() now works, and we can pass data on the IPoIB queue pair
using entirely our own code.
преди 18 години
Michael Brown
838b972cd3
Kill off some dead code
преди 18 години
Michael Brown
31b82ea1dd
Hack up IB structures at start-of-day, instead of on each use.
преди 18 години