summaryrefslogtreecommitdiffstats
path: root/src/drivers/infiniband
Commit message (Collapse)AuthorAgeFilesLines
* [legal] Relicense files under GPL2_OR_LATER_OR_UBDLMichael Brown2015-03-021-1/+5
| | | | | | | | | | | | | | | Relicence files with kind permission from the following contributors: Alex Williamson <alex.williamson@redhat.com> Eduardo Habkost <ehabkost@redhat.com> Greg Jednaszewski <jednaszewski@gmail.com> H. Peter Anvin <hpa@zytor.com> Marin Hannache <git@mareo.fr> Robin Smidsrød <robin@smidsrod.no> Shao Miller <sha0.miller@gmail.com> Thomas Horsten <thomas@horsten.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [legal] Relicense files under GPL2_OR_LATER_OR_UBDLMichael Brown2015-03-025-5/+21
| | | | | | | Relicense files for which I am the sole author (as identified by util/relicense.pl). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Use PCI VPD for non-volatile option storageMichael Brown2012-10-252-2/+40
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [infiniband] Include destination address vector in ib_complete_recv()Michael Brown2012-08-314-10/+26
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [infiniband] Use explicit "source" and "dest" address vector parameter namesMichael Brown2012-08-314-89/+93
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [infiniband] Allow queue pairs to have a custom allocator for receive iobufsMichael Brown2012-08-311-1/+7
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [legal] Update FSF mailing address in GPL licence textsMichael Brown2012-07-208-8/+16
| | | | | Suggested-by: Daniel P. Berrange <berrange@redhat.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [qib7322] Fix compiler warning on gcc 4.7Michael Brown2012-07-201-0/+3
| | | | | Originally-fixed-by: Christian Hesse <list@eworm.de> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Ensure hardware is quiescent when no interfaces are openMichael Brown2011-11-162-92/+271
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Reorder code in preparation for quiescing patchMichael Brown2011-11-151-190/+197
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Ensure hardware is quiescent when no interfaces are openMichael Brown2011-11-152-81/+217
| | | | | | | | | | | | | WinPE has been observed to call PXENV_UNDI_SHUTDOWN but not PXENV_STOP_UNDI. This means that Hermon hardware is left partially active (firmware running and one event queue mapped) when WinPE starts up, which can cause a Blue Screen of Death. Fix by ensuring that the hardware is left quiescent (with the firmware stopped) when no interfaces are open. Reported-by: Itay Gazit <itayg@mellanox.co.il> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Reorder code in preparation for quiescing patchMichael Brown2011-11-151-641/+648
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Add (not-yet-functional) support for RC queue pairsMichael Brown2011-10-242-8/+111
| | | | | | | | | | | | | Arbel seems to crash the system as soon as the first send WQE completes on an RC queue pair. (NOPs complete successfully, so this is a problem specific to the work queue rather than the completion queue.) The cause of this problem has remained unknown for over a year. Check in the non-functioning code to avoid bit-rot, and in the hope that someone will find the fix. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Remove temporary workaround for missing BOFM mport supportMichael Brown2011-05-041-39/+15Star
| | | | | | | This reverts commit 15c1200 ("[hermon] Work around missing mport support in current BOFM implementations"). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Work around missing mport support in current BOFM implementationsMichael Brown2011-04-081-15/+39
| | | | | | | | | | | | | | | | | | | | | | | Current BOFM versions are unable to create entries with mport>1, which means that only the port 1 MAC address can be explicitly specified. Work around this by using the provided MAC address as a base address for all subsequent ports. For example, if BOFM assigns the address 00:1A:64:76:00:09 for port 1 then we will assign the addresses 00:1A:64:76:00:09 for port 1 00:1A:64:76:00:0a for port 2 Future BOFM versions that may correctly support mport will work with this scheme without modification provided that the BOFM entries are created in increasing order of mport. Since BOFM tools tend to generate entries in increasing order (of slot, port, etc), this is not an unreasonable compromise. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Stop firmware only once on shutdownMichael Brown2011-04-081-1/+0Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Stop firmware only once on shutdownMichael Brown2011-04-081-1/+0Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [qib7322] Avoid unused variable warning in gcc 4.6Michael Brown2011-03-161-4/+0Star
| | | | | | Reported-by: Ralph Giles <giles@thaumas.net> Tested-by: Ralph Giles <giles@thaumas.net> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Avoid unused variable warning in gcc 4.6Michael Brown2011-03-161-2/+0Star
| | | | | | Reported-by: Ralph Giles <giles@thaumas.net> Tested-by: Ralph Giles <giles@thaumas.net> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Avoid unused variable warning in gcc 4.6Michael Brown2011-03-161-1/+1
| | | | | | Reported-by: Ralph Giles <giles@thaumas.net> Tested-by: Ralph Giles <giles@thaumas.net> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Make driver 64-bit safeMichael Brown2011-03-041-2/+37
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Make driver 64-bit safeMichael Brown2011-03-042-0/+37
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Add BOFM supportMichael Brown2011-03-033-58/+415
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pci] Make driver PCI ID a property of the PCI deviceMichael Brown2011-02-174-8/+4Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Add missing __attribute__ (( packed ))Michael Brown2011-02-171-2/+2
| | | | | | | | | | On 64-bit builds, MLX_DECLARE_STRUCT() produces a structure that is always a multiple of 64 bits long, causing the HCR structure to be over-length by one dword. This in turn causes hermon_cmd() to write beyond the end of the HCR, which causes commands to fail. Reported-by: Itay Gazit <itayg@mellanox.co.il> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Force link speed to SDRItay Gazit2011-02-173-5/+62
| | | | | | | SDR link comes up much faster than other speeds. Signed-off-by: Itay Gazit <itaygazit@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Use circular event queueItay Gazit2011-02-172-4/+10
| | | | | | | | | Avoid memory leak of untreated events by having circular event queue operation. Signed-off-by: Itay Gazit <itaygazit@gmail.com> Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Update PRM file with latest changesItay Gazit2011-02-171-20/+18Star
| | | | | Signed-off-by: Itay Gazit <itaygazit@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Fix hermon_cmd_sense_port() to use inline outputItay Gazit2011-02-171-3/+3
| | | | | Signed-off-by: Itay Gazit <itaygazit@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Indicate that device does not support interruptsMichael Brown2011-01-251-12/+0Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Fix incorrectly-padded sense_port structureMichael Brown2010-12-241-1/+1
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Work around hardware stripping of VLAN tagsMichael Brown2010-12-011-3/+17
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Fix inconsistent information in HERMON_SET_PORT_GENERAL_PARAMMichael Brown2010-11-291-6/+4Star
| | | | | | pptx and pfctx should not be set together, nor should pprx and pfcrx. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Enable priority flow control on the FCoE priorityMichael Brown2010-11-271-2/+7
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Add support for dual-protocol devicesMichael Brown2010-09-212-81/+712
| | | | | Originally-implemented-by: Itay Gazit <itaygazit@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Add infrastructure for Ethernet devicesItay Gazit2010-09-212-8/+156
| | | | | | | | Add PRM structures to support Hermon Ethernet devices. Signed-off-by: Itay Gazit <itaygazit@gmail.com> Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Use SET_PORT to set port parametersMichael Brown2010-09-212-23/+89
| | | | | | | Unlike Arbel, port parameters must be applied via a separate call to SET_PORT, rather than as parameters to INIT_PORT. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Tidy up ICM allocationsMichael Brown2010-09-192-91/+86Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Minimise the number of VPM mapping operationsMichael Brown2010-09-191-7/+39
| | | | | | | | | Mapping a single page at a time causes a several-second delay at device initialisation time. Reduce this by mapping multiple pages at a time, using the largest block sizes possible given the alignment constraints. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Minimise the number of VPM mapping operationsMichael Brown2010-09-192-50/+129
| | | | | | | | | Mapping a single page at a time causes a several-second delay at device initialisation time. Reduce this by mapping multiple pages at a time, using the largest block sizes possible given the alignment constraints. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Allocate only as much memory as is needed for firmware and ICMMichael Brown2010-09-181-26/+66
| | | | | | | | Use individual page mappings rather than a single whole-region mapping, to avoid the waste of memory that occurs due to the constraint that each mapped block must be aligned on its own size. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Synchronise changes with the Hermon driverMichael Brown2010-09-172-38/+70
| | | | | | | | | | | | | Backport some changes from the Hermon driver to the Arbel driver. Specifically: o Rename reserved_lkey to lkey o Add arbel_rate() to calculate transmission rates o Structure code to allow for addition of RC queue pairs Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Optimise ICM layout to reduce overall memory usageMichael Brown2010-09-172-75/+136
| | | | | | | | | | Reduce the amount of ICM space required by choosing to order the various allocations in approximately descending order of alignment requirements. This saves approximately 512kB of host memory. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Perform ICM allocations according to the specificationMichael Brown2010-09-172-44/+87
| | | | | | | | | | | The current method for ICM allocation exactly matches the addresses chosen by the old Etherboot driver, but does not match the specification. Some ICM tables (notably the queue pair context table) therefore end up incorrectly aligned. Fix by performing allocations as per the specification. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Allow for multiple calls to ib_modify_qp()Michael Brown2010-09-172-22/+44
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Inform embedded SMA of partition key changesMichael Brown2010-09-171-5/+5
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Improve debugging output and facilitiesMichael Brown2010-09-172-71/+164
| | | | | | | | | | | Improve the utility of debugging messages by including the relevant port number, queue number (QPN, CQN, EQN), work queue entry (WQE) number, and physical addresses wherever applicable. Add arbel_dump_cqctx() for dumping a completion queue context and arbel_dump_qpctx() for dumping a queue pair context. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Randomise the high-order bits of queue pair numbersMichael Brown2010-09-172-6/+10
| | | | | | | This is a backport of commit 0b1222f ("[hermon] Randomise the high-order bits of queue pair numbers") to the Arbel driver. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Allow software GMA to receive packets destined for QP1Michael Brown2010-09-173-96/+336
| | | | | | | | | | This is a backport of commit cd5a213 ("[hermon] Allow software GMA to receive packets destined for QP1") to the Arbel driver. This patch includes a correction to a bug in the autogenerated hardware description header file. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Map all event types to our event queueMichael Brown2010-09-172-5/+21
| | | | | | | | | | | | | Only port state change events are currently mapped to our event queue, since those are the only events we are prepared to handle. This ignores a potentially useful source of diagnostic information in the case of unexpected failures. Fix by mapping all events to the event queue; a build with debugging enabled will therefore at least dump the raw content of the unexpected events. Signed-off-by: Michael Brown <mcb30@ipxe.org>