people/xl0/gpxe.git
12 years agoChange ROM names to lower case.
Michael Brown [Wed, 10 Oct 2007 23:43:21 +0000 (00:43 +0100)]
Change ROM names to lower case.

12 years agoEnsure that empty e820 regions are skipped even at the end of the
Michael Brown [Wed, 10 Oct 2007 19:12:25 +0000 (20:12 +0100)]
Ensure that empty e820 regions are skipped even at the end of the
memory map.  (We achieve this by setting CF on the last entry if it is
zero-length; this avoids the need to look ahead to see at each entry
if the *next* entry would be both the last entry and zero-length).

This fixes the "0kB base memory" error message upon starting Windows
2003 on a SunFire X2100.

12 years agoForce a netdevice poll in net_tx() before attempting to transmit
Michael Brown [Thu, 4 Oct 2007 13:46:56 +0000 (14:46 +0100)]
Force a netdevice poll in net_tx() before attempting to transmit
packet, to work around the problem whereby small TX rings get backed
up because we haven't yet poll()ed for TX completions.

13 years agoAdded more verbose memory-map debugging.
Michael Brown [Fri, 21 Sep 2007 17:27:51 +0000 (18:27 +0100)]
Added more verbose memory-map debugging.

Added redundant call to get_memmap() in int13_boot() immediately
before jumping to boot sector, to assist in debugging.

13 years agoMerge branch 'master' into 3leaf-delivery
Michael Brown [Fri, 21 Sep 2007 00:27:03 +0000 (01:27 +0100)]
Merge branch 'master' into 3leaf-delivery

13 years agoMerge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
Michael Brown [Fri, 21 Sep 2007 00:26:06 +0000 (01:26 +0100)]
Merge branch 'master' of rom.etherboot.org:/gpxe

13 years agoInfinband requires longer link-layer addresses and headers than Ethernet.
Michael Brown [Fri, 21 Sep 2007 00:23:57 +0000 (01:23 +0100)]
Infinband requires longer link-layer addresses and headers than Ethernet.

13 years agoAdded defines for Infiniband files (which can't be committed to the
Michael Brown [Fri, 21 Sep 2007 00:19:04 +0000 (01:19 +0100)]
Added defines for Infiniband files (which can't be committed to the
main tree yet, but reserving the error numbers now avoids problems later).

13 years agoMinor debug message improvement.
Michael Brown [Mon, 17 Sep 2007 17:57:32 +0000 (18:57 +0100)]
Minor debug message improvement.

13 years agoUse RFC4390 whenever hardware address exceeds 16 bytes; this allows us
Michael Brown [Thu, 13 Sep 2007 00:53:04 +0000 (01:53 +0100)]
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.

13 years agoAdd const attribute to byte-swapping functions
Michael Brown [Sat, 15 Sep 2007 17:44:35 +0000 (18:44 +0100)]
Add const attribute to byte-swapping functions

13 years agoDon't get stuck in an infinite loop on negative integers!
Michael Brown [Sun, 16 Sep 2007 16:39:29 +0000 (17:39 +0100)]
Don't get stuck in an infinite loop on negative integers!

13 years agoAdd fls() for non-constant values.
Michael Brown [Sun, 16 Sep 2007 16:36:40 +0000 (17:36 +0100)]
Add fls() for non-constant values.

13 years agoMoved iobuf.h assertions outside the static inline functions, so that
Michael Brown [Mon, 17 Sep 2007 17:38:04 +0000 (18:38 +0100)]
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.

13 years agoReverted driver/net/mlx_ipoib to clean master state
Michael Brown [Tue, 18 Sep 2007 06:07:04 +0000 (07:07 +0100)]
Reverted driver/net/mlx_ipoib to clean master state

13 years agoMerge branch 'master' into 3leaf-rewrite
Michael Brown [Tue, 18 Sep 2007 06:03:57 +0000 (07:03 +0100)]
Merge branch 'master' into 3leaf-rewrite

13 years agoIB can't afford many RX buffers, because the MTU is so large. Reduce
Michael Brown [Tue, 18 Sep 2007 06:02:41 +0000 (07:02 +0100)]
IB can't afford many RX buffers, because the MTU is so large.  Reduce
the TCP window to compensate.

13 years agoAdded arbel.c
Michael Brown [Tue, 18 Sep 2007 05:37:22 +0000 (06:37 +0100)]
Added arbel.c

13 years agoRemove the last remaining visible hack.
Michael Brown [Tue, 18 Sep 2007 05:26:31 +0000 (06:26 +0100)]
Remove the last remaining visible hack.

13 years agoSeparated out to a clean new drivers/infiniband directory.
Michael Brown [Tue, 18 Sep 2007 05:06:55 +0000 (06:06 +0100)]
Separated out to a clean new drivers/infiniband directory.

13 years agoFirst version that works with SELF_INIT!
Michael Brown [Tue, 18 Sep 2007 04:46:49 +0000 (05:46 +0100)]
First version that works with SELF_INIT!

13 years agoGets most of the way through initialisation.
Michael Brown [Tue, 18 Sep 2007 04:39:34 +0000 (05:39 +0100)]
Gets most of the way through initialisation.

13 years agoAdded sw2hw_mpt
Michael Brown [Tue, 18 Sep 2007 03:45:55 +0000 (04:45 +0100)]
Added sw2hw_mpt

13 years agoINIT_HCA block now matches.
Michael Brown [Tue, 18 Sep 2007 03:20:41 +0000 (04:20 +0100)]
INIT_HCA block now matches.

13 years agoSeems to get through the ICM mapping process
Michael Brown [Tue, 18 Sep 2007 02:58:59 +0000 (03:58 +0100)]
Seems to get through the ICM mapping process

13 years agoICM allocation code in place; about to start test-and-compare runs.
Michael Brown [Tue, 18 Sep 2007 01:57:49 +0000 (02:57 +0100)]
ICM allocation code in place; about to start test-and-compare runs.

13 years agoICM allocation code *should* now be complete.
Michael Brown [Tue, 18 Sep 2007 01:05:25 +0000 (02:05 +0100)]
ICM allocation code *should* now be complete.

13 years agoStarted with the ICM partitioning code.
Michael Brown [Tue, 18 Sep 2007 00:49:39 +0000 (01:49 +0100)]
Started with the ICM partitioning code.

13 years agoRestructured bits of initialisation (not testable at present)
Michael Brown [Mon, 17 Sep 2007 21:25:46 +0000 (22:25 +0100)]
Restructured bits of initialisation (not testable at present)

13 years agoStarting the firmware directly now works.
Michael Brown [Mon, 17 Sep 2007 20:59:41 +0000 (21:59 +0100)]
Starting the firmware directly now works.

13 years agoStart migrating the remaining initialisation steps.
Michael Brown [Mon, 17 Sep 2007 20:14:09 +0000 (21:14 +0100)]
Start migrating the remaining initialisation steps.

13 years agoDon't use the mailboxless version of the HW2SW_CQ command; it seems to
Michael Brown [Mon, 17 Sep 2007 18:47:19 +0000 (19:47 +0100)]
Don't use the mailboxless version of the HW2SW_CQ command; it seems to
crash the machine.

13 years agoRemoved more hacks, and adjusted number of queue entries for likely usage.
Michael Brown [Mon, 17 Sep 2007 18:17:55 +0000 (19:17 +0100)]
Removed more hacks, and adjusted number of queue entries for likely usage.

13 years agoRemove hacks, and fix leaving the multicast GID.
Michael Brown [Mon, 17 Sep 2007 18:12:06 +0000 (19:12 +0100)]
Remove hacks, and fix leaving the multicast GID.

13 years agoAdded an almost obscene amount of debugging and assertion code while
Michael Brown [Mon, 17 Sep 2007 18:01:10 +0000 (19:01 +0100)]
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.

13 years agoMinor debug message improvement.
Michael Brown [Mon, 17 Sep 2007 17:57:32 +0000 (18:57 +0100)]
Minor debug message improvement.

13 years agoMoved iobuf.h assertions outside the static inline functions, so that
Michael Brown [Mon, 17 Sep 2007 17:38:04 +0000 (18:38 +0100)]
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.

13 years agoSome interesting packet corruption happening now.
Michael Brown [Mon, 17 Sep 2007 12:31:13 +0000 (13:31 +0100)]
Some interesting packet corruption happening now.

13 years agoBroadcast GID is now calculated by IPoIB layer.
Michael Brown [Mon, 17 Sep 2007 10:50:25 +0000 (11:50 +0100)]
Broadcast GID is now calculated by IPoIB layer.

13 years agoCleaned up some debug messages.
Michael Brown [Mon, 17 Sep 2007 09:56:21 +0000 (10:56 +0100)]
Cleaned up some debug messages.

13 years agoUnicasts seem to be working. :)
Michael Brown [Mon, 17 Sep 2007 09:39:30 +0000 (10:39 +0100)]
Unicasts seem to be working. :)

13 years agoDead code disabling
Michael Brown [Mon, 17 Sep 2007 07:41:06 +0000 (08:41 +0100)]
Dead code disabling

13 years agoObtains a response to the get path record!
Michael Brown [Mon, 17 Sep 2007 07:36:56 +0000 (08:36 +0100)]
Obtains a response to the get path record!

13 years agoUse pkey table access to determine broadcast GID directly.
Michael Brown [Mon, 17 Sep 2007 05:35:21 +0000 (06:35 +0100)]
Use pkey table access to determine broadcast GID directly.

13 years agoPrepare for adding a metadata queue to IPoIB
Michael Brown [Mon, 17 Sep 2007 05:12:33 +0000 (06:12 +0100)]
Prepare for adding a metadata queue to IPoIB

13 years agoDead code removal
Michael Brown [Mon, 17 Sep 2007 04:12:47 +0000 (05:12 +0100)]
Dead code removal

13 years agoIPoIB code separated out to ipoib.c.
Michael Brown [Mon, 17 Sep 2007 04:04:58 +0000 (05:04 +0100)]
IPoIB code separated out to ipoib.c.

13 years agoRead port GID directly using MAD IFC.
Michael Brown [Mon, 17 Sep 2007 01:54:15 +0000 (02:54 +0100)]
Read port GID directly using MAD IFC.

13 years agoMulticast join now works.
Michael Brown [Sun, 16 Sep 2007 23:24:44 +0000 (00:24 +0100)]
Multicast join now works.

13 years agoNow transmits packets on our own allocated IPoIB queue pair. :)
Michael Brown [Sun, 16 Sep 2007 21:53:57 +0000 (22:53 +0100)]
Now transmits packets on our own allocated IPoIB queue pair. :)

13 years agoAlmost working with own-queue allocation.
Michael Brown [Sun, 16 Sep 2007 21:47:45 +0000 (22:47 +0100)]
Almost working with own-queue allocation.

13 years agocreate_qp() and destroy_qp() now written (but not tested).
Michael Brown [Sun, 16 Sep 2007 19:54:21 +0000 (20:54 +0100)]
create_qp() and destroy_qp() now written (but not tested).

13 years agoStarted implementing create_qp() and destroy_qp().
Michael Brown [Sun, 16 Sep 2007 18:03:24 +0000 (19:03 +0100)]
Started implementing create_qp() and destroy_qp().

13 years agoDon't get stuck in an infinite loop on negative integers!
Michael Brown [Sun, 16 Sep 2007 16:39:29 +0000 (17:39 +0100)]
Don't get stuck in an infinite loop on negative integers!

13 years agoAdd fls() for non-constant values.
Michael Brown [Sun, 16 Sep 2007 16:36:40 +0000 (17:36 +0100)]
Add fls() for non-constant values.

13 years agoRevert to dev_priv/owner_priv scheme, rather than container_of; it
Michael Brown [Sun, 16 Sep 2007 16:25:15 +0000 (17:25 +0100)]
Revert to dev_priv/owner_priv scheme, rather than container_of; it
makes it easier to put the generic allocation code into infiniband.c

13 years agodestroy_cq() now implemented (not tested).
Michael Brown [Sun, 16 Sep 2007 13:39:51 +0000 (14:39 +0100)]
destroy_cq() now implemented (not tested).

13 years agocreate_cq() implemented (but not tested).
Michael Brown [Sun, 16 Sep 2007 13:18:17 +0000 (14:18 +0100)]
create_cq() implemented (but not tested).

13 years agoMatch doorbell layout to expected usage.
Michael Brown [Sun, 16 Sep 2007 12:10:15 +0000 (13:10 +0100)]
Match doorbell layout to expected usage.

13 years agoStarted to add code for CQ creation
Michael Brown [Sun, 16 Sep 2007 11:52:58 +0000 (12:52 +0100)]
Started to add code for CQ creation

13 years agoRearrange data structures to maximise embedding (and hence minimise
Michael Brown [Sun, 16 Sep 2007 03:02:20 +0000 (04:02 +0100)]
Rearrange data structures to maximise embedding (and hence minimise
the number of separate allocations that need to be done).

13 years agoCommand interface now reasonably friendly.
Michael Brown [Sun, 16 Sep 2007 02:13:25 +0000 (03:13 +0100)]
Command interface now reasonably friendly.

13 years agoFirst (working) draft of command interface.
Michael Brown [Sun, 16 Sep 2007 00:44:57 +0000 (01:44 +0100)]
First (working) draft of command interface.

13 years agoKill off more dead code.
Michael Brown [Sat, 15 Sep 2007 22:36:41 +0000 (23:36 +0100)]
Kill off more dead code.

13 years agopost_recv() now works, and we can pass data on the IPoIB queue pair
Michael Brown [Sat, 15 Sep 2007 22:33:25 +0000 (23:33 +0100)]
post_recv() now works, and we can pass data on the IPoIB queue pair
using entirely our own code.

13 years agoKill off some dead code
Michael Brown [Sat, 15 Sep 2007 20:26:14 +0000 (21:26 +0100)]
Kill off some dead code

13 years agoHack up IB structures at start-of-day, instead of on each use.
Michael Brown [Sat, 15 Sep 2007 20:23:34 +0000 (21:23 +0100)]
Hack up IB structures at start-of-day, instead of on each use.

13 years agoDirect polling of TX completion queue now works.
Michael Brown [Sat, 15 Sep 2007 19:58:29 +0000 (20:58 +0100)]
Direct polling of TX completion queue now works.

13 years agoAdd const attribute to byte-swapping functions
Michael Brown [Sat, 15 Sep 2007 17:44:35 +0000 (18:44 +0100)]
Add const attribute to byte-swapping functions

13 years agoUpdated MLX_* accessor macros to use implicit type information.
Michael Brown [Sat, 15 Sep 2007 17:44:09 +0000 (18:44 +0100)]
Updated MLX_* accessor macros to use implicit type information.

13 years agoStarted added poll_cq() verb.
Michael Brown [Sat, 15 Sep 2007 14:40:35 +0000 (15:40 +0100)]
Started added poll_cq() verb.

Started reworking MLX_EXTRACT(), MLX_POPULATE() etc. to automatically
determine type information.

13 years agoMap the whole of physical memory
Michael Brown [Sat, 15 Sep 2007 02:22:04 +0000 (03:22 +0100)]
Map the whole of physical memory

13 years agoarbel_post_send() has been observed to transmit a packet!
Michael Brown [Sat, 15 Sep 2007 01:53:05 +0000 (02:53 +0100)]
arbel_post_send() has been observed to transmit a packet!

13 years agoGets a response out of the hardware. (An error completion, to be precise.)
Michael Brown [Sat, 15 Sep 2007 00:35:07 +0000 (01:35 +0100)]
Gets a response out of the hardware.  (An error completion, to be precise.)

13 years agoPrefix arbel-specific functions etc. with arbel_
Michael Brown [Fri, 14 Sep 2007 23:27:09 +0000 (00:27 +0100)]
Prefix arbel-specific functions etc. with arbel_

13 years agoNow at least compiles
Michael Brown [Fri, 14 Sep 2007 23:19:38 +0000 (00:19 +0100)]
Now at least compiles

13 years agoStarting to introduce an Infiniband device abstraction
Michael Brown [Fri, 14 Sep 2007 19:29:44 +0000 (20:29 +0100)]
Starting to introduce an Infiniband device abstraction

13 years agoRemove some dead code
Michael Brown [Fri, 14 Sep 2007 10:23:06 +0000 (11:23 +0100)]
Remove some dead code

13 years agoNow handling TX completions in our poll loop.
Michael Brown [Fri, 14 Sep 2007 10:10:25 +0000 (11:10 +0100)]
Now handling TX completions in our poll loop.

13 years agoProof-of-concept to manually parse completion event
Michael Brown [Fri, 14 Sep 2007 09:18:09 +0000 (10:18 +0100)]
Proof-of-concept to manually parse completion event

13 years agoAdd EX_FLD_BE()
Michael Brown [Fri, 14 Sep 2007 09:17:29 +0000 (10:17 +0100)]
Add EX_FLD_BE()

13 years agoStart constructing a generic poll() routine.
Michael Brown [Thu, 13 Sep 2007 16:47:14 +0000 (17:47 +0100)]
Start constructing a generic poll() routine.

13 years agoCan now both send and receive packets. LL header format not yet
Michael Brown [Thu, 13 Sep 2007 13:43:12 +0000 (14:43 +0100)]
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.

13 years agoAdded netdev_priv() to ease Linux driver compatibility.
Michael Brown [Thu, 13 Sep 2007 12:34:38 +0000 (13:34 +0100)]
Added netdev_priv() to ease Linux driver compatibility.

13 years agoRemoved file checked in accidentally
Michael Brown [Thu, 13 Sep 2007 11:57:25 +0000 (12:57 +0100)]
Removed file checked in accidentally

13 years agoDump received packet, including GRH.
Michael Brown [Thu, 13 Sep 2007 02:15:27 +0000 (03:15 +0100)]
Dump received packet, including GRH.

13 years agoUse RFC4390 whenever hardware address exceeds 16 bytes; this allows us
Michael Brown [Thu, 13 Sep 2007 00:53:04 +0000 (01:53 +0100)]
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.

13 years agoBugfix: DHCP message type should be a one-byte option... (d'oh)
Michael Brown [Thu, 13 Sep 2007 00:13:57 +0000 (01:13 +0100)]
Bugfix: DHCP message type should be a one-byte option... (d'oh)

13 years agoNow sends IP packets correctly.
Michael Brown [Thu, 13 Sep 2007 00:14:56 +0000 (01:14 +0100)]
Now sends IP packets correctly.

13 years agoBugfix: DHCP message type should be a one-byte option... (d'oh)
Michael Brown [Thu, 13 Sep 2007 00:13:57 +0000 (01:13 +0100)]
Bugfix: DHCP message type should be a one-byte option... (d'oh)

13 years agoStarted IB driver rewrite
Michael Brown [Wed, 12 Sep 2007 21:17:43 +0000 (22:17 +0100)]
Started IB driver rewrite

13 years agoMerge branch 'master' into 3leaf-rewrite
Michael Brown [Tue, 11 Sep 2007 14:42:17 +0000 (15:42 +0100)]
Merge branch 'master' into 3leaf-rewrite

13 years agoMerge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
Michael Brown [Sun, 9 Sep 2007 12:31:38 +0000 (13:31 +0100)]
Merge branch 'master' of rom.etherboot.org:/gpxe

13 years agoUse "/bin/echo -e" instead of shell builtin echo; some shells don't
Michael Brown [Sat, 8 Sep 2007 22:38:17 +0000 (23:38 +0100)]
Use "/bin/echo -e" instead of shell builtin echo; some shells don't
implement the -e option.

(Thanks to Jim McQuillan for this suggestion.)

13 years agoCheck for correct block number in tftp_rx_data().
Michael Brown [Sat, 8 Sep 2007 18:30:25 +0000 (19:30 +0100)]
Check for correct block number in tftp_rx_data().

(Problem observed by Clay McClure in VMware Fusion.)

13 years agoRe-added the kpxe prefix. I have no idea when this disappeared.
Michael Brown [Sat, 8 Sep 2007 14:57:01 +0000 (15:57 +0100)]
Re-added the kpxe prefix.  I have no idea when this disappeared.

13 years agoAdd the possibility to create .o files from arbitrary binary blobs.
Michael Brown [Thu, 6 Sep 2007 14:11:09 +0000 (15:11 +0100)]
Add the possibility to create .o files from arbitrary binary blobs.

13 years agoAdded missing .kpxe prefix.
Michael Brown [Thu, 6 Sep 2007 14:08:41 +0000 (15:08 +0100)]
Added missing .kpxe prefix.

13 years agoMinor style fix: structure fields are generally initialised in the
Michael Brown [Thu, 6 Sep 2007 12:37:47 +0000 (13:37 +0100)]
Minor style fix: structure fields are generally initialised in the
order in which they occur.

13 years agoTFTP default blocksize fix from Vampyre
Marty Connor [Thu, 30 Aug 2007 17:51:38 +0000 (13:51 -0400)]
TFTP default blocksize fix from Vampyre