Marty Connor
048a234dce
Add errfile definition for new e1000.c
2007-11-18 10:45:20 -05:00
Marty Connor
0fea19c398
Introduce files for new e1000 driver
2007-11-18 10:31:00 -05:00
Marty Connor
2b8f77aca1
Add src/drivers/net/e1000 as home of new e1000 driver
2007-11-18 10:28:25 -05:00
Marty Connor
8564711c20
Move current e1000 driver files to e1000-old/ directory to avoid collisions
2007-11-18 09:58:28 -05:00
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.
2007-11-18 09:51:21 -05:00
Marty Connor
9a4ed0f2d5
Remove unnecessary variable.
2007-11-18 03:11:02 -05:00
Michael Brown
c194b0c4bf
Work around a bug in the OpenSolaris iSCSI target.
...
We didn't specify values for MaxRecvDataSegmentLength and
MaxBurstLength (to save space, since we were happy with the
RFC-defined default values of 8kB and 256kB respectively). However,
the OpenSolaris target (incorrectly) assumes default values of zero
for these parameters.
The upshot was that the OpenSolaris target would get stuck in an
endless loop trying to send us the first 512-byte sector, zero bytes
at a time, and would eventually run out of memory and core-dump.
Fixed by explicitly specifying the default values for these two
parameters.
2007-11-05 13:29:05 +00:00
Michael Brown
755cb8379d
Allow space for the kernel's real-mode .bss. Previously we weren't
...
allowing any space for this, which makes it surprising that bzImage
loading ever worked.
2007-11-04 04:27:38 +00:00
Michael Brown
c482fef058
Add missing attribute(packed) to two structures.
2007-10-29 21:22:00 +00:00
Michael Brown
82124ea688
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-10-29 17:22:27 +00:00
Michael Brown
1620b3512c
Merge branch '3leaf'
2007-10-29 17:21:58 +00:00
Michael Brown
be7d32396f
Added one more PCI ID
2007-10-22 16:24:09 +01:00
Michael Brown
338d45a61e
Change ROM names to lower case.
2007-10-11 00:43:21 +01:00
Michael Brown
35ee7e4479
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.
2007-10-10 20:13:34 +01:00
Michael Brown
e445c2c07c
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.
2007-10-10 20:12:25 +01:00
Michael Brown
8069598a99
Add a missing PCI ID that is tested as working.
2007-10-10 02:07:18 +01:00
Michael Brown
9ac0377fbb
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.
2007-10-04 14:57:33 +01:00
Michael Brown
2303c45d65
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.
2007-10-04 14:46:56 +01:00
Michael Brown
56550e400e
Redefine bzimage_exec_context::mem_limit to be the highest permissible
...
byte, rather than the number of permissible bytes (i.e. subtract one
from the value under the previous definition to get the value under
the new definition).
This avoids integer overflow on 64-bit kernels, where
bzhdr.initrd_addr_max may be 0xffffffffffffffff; under the old
behaviour we set mem_limit equal to initrd_addr_max+1, which meant it
ended up as zero. Kernel loads would fail with ENOBUFS.
2007-09-28 01:23:06 +01:00
Michael Brown
14fb6ba189
Quick and very dirty hack to get r8169 driver working again, prior to
...
any rewrite.
2007-09-26 17:58:51 +01:00
Michael Brown
ed5ff61790
Standardise DBG_PRINTF()->DBG(), and remove custom definitions for
...
DBG_PRINTF() and assert().
2007-09-26 17:38:36 +01:00
Michael Brown
881dd8e102
Switch rm_ss and rm_sp back to being words; it'll make it less
...
confusing to read the code.
2007-09-25 20:16:32 +01:00
Michael Brown
42d96bcb07
Don't use the "rep ss movsb" trick to copy the RM stack to the PM
...
stack; it breaks vmxassist.
2007-09-25 20:14:20 +01:00
Michael Brown
0ed066bc50
rm_ss, rm_sp, and pm_esp don't need to be accessed from anywhere
...
outside of librm.S.
2007-09-25 19:20:38 +01:00
Michael Brown
b8a8eea850
Minor refactoring to eliminate duplication.
2007-09-25 19:06:38 +01:00
Michael Brown
dec325fe43
Use full protected mode for access to high memory within prefix, to
...
work around limitations in real-mode virtualisation support on Intel
VT-capable chips.
2007-09-25 18:01:15 +01:00
Michael Brown
a7eee64506
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.
2007-09-21 18:33:17 +01:00
Michael Brown
0979e674bb
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.
2007-09-21 18:27:51 +01:00
Michael Brown
44461b1854
Merge branch 'master' into 3leaf-delivery
2007-09-21 01:27:03 +01:00
Michael Brown
1e677b2024
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-09-21 01:26:06 +01:00
Michael Brown
5793dbe96f
Infinband requires longer link-layer addresses and headers than Ethernet.
2007-09-21 01:23:57 +01:00
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).
2007-09-21 01:19:04 +01:00
Michael Brown
1af346b531
Minor debug message improvement.
2007-09-21 01:17:46 +01:00
Michael Brown
af303db75d
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
...
to construct DHCP packets suitable for Infiniband.
2007-09-21 01:15:58 +01:00
Michael Brown
9c264faa0c
Add const attribute to byte-swapping functions
2007-09-21 01:15:06 +01:00
Michael Brown
7e3527a658
Don't get stuck in an infinite loop on negative integers!
2007-09-21 01:14:44 +01:00
Michael Brown
db124b1255
Add fls() for non-constant values.
2007-09-21 01:14:38 +01:00
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.
2007-09-21 01:13:22 +01:00
Michael Brown
0f60150c44
Reverted driver/net/mlx_ipoib to clean master state
2007-09-18 07:07:04 +01:00
Michael Brown
30717896f5
IB can't afford many RX buffers, because the MTU is so large. Reduce
...
the TCP window to compensate.
2007-09-18 07:02:41 +01:00
Michael Brown
2f23881856
Added arbel.c
2007-09-18 06:37:22 +01:00
Michael Brown
95498fa038
Remove the last remaining visible hack.
2007-09-18 06:26:31 +01:00
Michael Brown
982e4dd101
Separated out to a clean new drivers/infiniband directory.
2007-09-18 06:06:55 +01:00
Michael Brown
a5ec029d24
First version that works with SELF_INIT!
2007-09-18 05:46:49 +01:00
Michael Brown
8423b0b109
Gets most of the way through initialisation.
2007-09-18 05:39:34 +01:00
Michael Brown
def5ae9127
Added sw2hw_mpt
2007-09-18 04:45:55 +01:00
Michael Brown
da014080f9
INIT_HCA block now matches.
2007-09-18 04:20:41 +01:00
Michael Brown
57bf8d9905
Seems to get through the ICM mapping process
2007-09-18 03:58:59 +01:00
Michael Brown
4ea6223f5a
ICM allocation code in place; about to start test-and-compare runs.
2007-09-18 02:57:49 +01:00
Michael Brown
f20cd6f721
ICM allocation code *should* now be complete.
2007-09-18 02:05:25 +01:00
Michael Brown
af88f60228
Started with the ICM partitioning code.
2007-09-18 01:49:39 +01:00
Michael Brown
c818d47e25
Restructured bits of initialisation (not testable at present)
2007-09-17 22:25:46 +01:00
Michael Brown
dc3165b746
Starting the firmware directly now works.
2007-09-17 21:59:41 +01:00
Michael Brown
0f62bcaa77
Start migrating the remaining initialisation steps.
2007-09-17 21:14:09 +01:00
Michael Brown
f3fcb53faf
Don't use the mailboxless version of the HW2SW_CQ command; it seems to
...
crash the machine.
2007-09-17 19:47:19 +01:00
Michael Brown
12b4cb964b
Removed more hacks, and adjusted number of queue entries for likely usage.
2007-09-17 19:17:55 +01:00
Michael Brown
11541b1e01
Remove hacks, and fix leaving the multicast GID.
2007-09-17 19:12:06 +01:00
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.
2007-09-17 19:01:10 +01:00
Michael Brown
387a1a8556
Minor debug message improvement.
2007-09-17 18:57:32 +01:00
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.
2007-09-17 18:38:04 +01:00
Michael Brown
bdac591726
Some interesting packet corruption happening now.
2007-09-17 13:31:13 +01:00
Michael Brown
2ed1acb9e9
Broadcast GID is now calculated by IPoIB layer.
2007-09-17 11:50:25 +01:00
Michael Brown
32a7bbb1e3
Cleaned up some debug messages.
2007-09-17 10:56:21 +01:00
Michael Brown
ab191e45db
Unicasts seem to be working. :)
2007-09-17 10:39:30 +01:00
Michael Brown
2209090120
Dead code disabling
2007-09-17 08:41:06 +01:00
Michael Brown
b3d3814c17
Obtains a response to the get path record!
2007-09-17 08:36:56 +01:00
Michael Brown
e05a8cd4de
Use pkey table access to determine broadcast GID directly.
2007-09-17 06:35:21 +01:00
Michael Brown
f6f1f2b7bb
Prepare for adding a metadata queue to IPoIB
2007-09-17 06:12:33 +01:00
Michael Brown
440e7926fb
Dead code removal
2007-09-17 05:12:47 +01:00
Michael Brown
4e78a53cf2
IPoIB code separated out to ipoib.c.
2007-09-17 05:04:58 +01:00
Michael Brown
67836430e6
Read port GID directly using MAD IFC.
2007-09-17 02:54:15 +01:00
Michael Brown
3c6a6bdc5d
Multicast join now works.
2007-09-17 00:24:44 +01:00
Michael Brown
96d0c75c00
Now transmits packets on our own allocated IPoIB queue pair. :)
2007-09-16 22:53:57 +01:00
Michael Brown
4ddb6570f8
Almost working with own-queue allocation.
2007-09-16 22:47:45 +01:00
Michael Brown
7e85f0d296
create_qp() and destroy_qp() now written (but not tested).
2007-09-16 20:54:21 +01:00
Michael Brown
251cc84ed6
Started implementing create_qp() and destroy_qp().
2007-09-16 19:03:24 +01:00
Michael Brown
83a6cc8c9b
Don't get stuck in an infinite loop on negative integers!
2007-09-16 17:39:29 +01:00
Michael Brown
6d15a193aa
Add fls() for non-constant values.
2007-09-16 17:36:40 +01:00
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
2007-09-16 17:25:15 +01:00
Michael Brown
e238bb1e43
destroy_cq() now implemented (not tested).
2007-09-16 14:39:51 +01:00
Michael Brown
18edcf6634
create_cq() implemented (but not tested).
2007-09-16 14:18:17 +01:00
Michael Brown
725a574042
Match doorbell layout to expected usage.
2007-09-16 13:10:15 +01:00
Michael Brown
5a43293c38
Started to add code for CQ creation
2007-09-16 12:52:58 +01:00
Michael Brown
156b409ccc
Rearrange data structures to maximise embedding (and hence minimise
...
the number of separate allocations that need to be done).
2007-09-16 04:02:20 +01:00
Michael Brown
791f992657
Command interface now reasonably friendly.
2007-09-16 03:13:25 +01:00
Michael Brown
bf9bd93856
First (working) draft of command interface.
2007-09-16 01:44:57 +01:00
Michael Brown
baa885ee8e
Kill off more dead code.
2007-09-15 23:36:41 +01:00
Michael Brown
37fc40bc8c
post_recv() now works, and we can pass data on the IPoIB queue pair
...
using entirely our own code.
2007-09-15 23:33:25 +01:00
Michael Brown
838b972cd3
Kill off some dead code
2007-09-15 21:26:14 +01:00
Michael Brown
31b82ea1dd
Hack up IB structures at start-of-day, instead of on each use.
2007-09-15 21:23:34 +01:00
Michael Brown
8deef093d9
Direct polling of TX completion queue now works.
2007-09-15 20:58:29 +01:00
Michael Brown
687afdcdd9
Add const attribute to byte-swapping functions
2007-09-15 18:44:35 +01:00
Michael Brown
6a791649f0
Updated MLX_* accessor macros to use implicit type information.
2007-09-15 18:44:09 +01:00
Michael Brown
a3a91fedc1
Started added poll_cq() verb.
...
Started reworking MLX_EXTRACT(), MLX_POPULATE() etc. to automatically
determine type information.
2007-09-15 15:40:35 +01:00
Michael Brown
37a036bd48
Map the whole of physical memory
2007-09-15 03:22:04 +01:00
Michael Brown
970951666f
arbel_post_send() has been observed to transmit a packet!
2007-09-15 02:53:05 +01:00
Michael Brown
8b27da9de1
Gets a response out of the hardware. (An error completion, to be precise.)
2007-09-15 01:35:07 +01:00
Michael Brown
21d4ab3ce2
Prefix arbel-specific functions etc. with arbel_
2007-09-15 00:27:09 +01:00
Michael Brown
38a73b55c4
Now at least compiles
2007-09-15 00:19:38 +01:00
Michael Brown
9d08b7c692
Starting to introduce an Infiniband device abstraction
2007-09-14 20:29:44 +01:00