Marty Connor
ff476c04e9
Fix e1000 receive tail pointer (RDT) handling
...
e1000 should now work in VMware.
2007-12-17 13:07:29 -05:00
Michael Brown
7e8624a26f
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-12-15 19:37:44 +00:00
Michael Brown
1d7974182e
Overwrite the device descriptor's IRQ number with whatever the legacy
...
driver's probe() routine fills in in nic->irqno. This is so that
non-interrupt-capable legacy drivers which set nic->irqno=0 will end
up reporting IRQ#0 via PXENV_UNDI_GET_INFORMATION; this in turn means
that the calling PXE NBP will (should) hook the timer interrupt, and
everything will sort of work.
2007-12-15 19:32:32 +00:00
Marty Connor
bd2607305c
Correct e1000 interrupt routine to enable on 1 disable on 0. duh.
...
The e1000_irq() routine should (per mcb30) do enable on non-zero,
disable on zero. This is not consistent in all drivers, so I'll
wait to update it when doing a global sweep.
2007-12-13 11:20:45 -05:00
Marty Connor
1a867bfb39
Remove *_fill_nic() calls, and directly set nic->ioaddr and nic->irqno .
...
This needs to be done manually because if the irq() routine is
implemented then we want something like "nic->irqno = pci->irqno;",
else we do "nic->irqno = 0;" nic->ioaddr may also need to be set
carefully.
Also added local variables to end of many files, for emacs indentation
to match kernel style (tab does 8 space indent).
2007-12-13 11:08:40 -05:00
Michael Brown
1949641d10
Fix compiler warnings that appear only on OpenBSD.
2007-12-06 14:16:46 -06:00
Michael Brown
df868476e7
Various warnings fixups for OpenBSD with gcc-3.3.5.
2007-12-07 00:11:43 +00:00
Michael Brown
64787bad29
Fix prototype mismatch.
2007-12-06 23:35:37 +00:00
Marty Connor
82a3e80645
Add copyright, clean up comments a bit, remove unnecessary code.
...
Cleanups for e1000.c.
2007-12-03 01:17:41 -05:00
Marty Connor
fa0bd77270
Added netdev_nullify to natsemi_remove()
2007-11-21 15:45:08 +00:00
Michael Brown
de329a36d0
Removed old e1000 driver.
2007-11-21 15:37:58 +00:00
Marty Connor
2d60a3963f
Fixed receive instability by not enabling interrupts. duh.
...
I have successfully booted DOS via iSCSI and PXELINUX via TFTP with this
version of the e1000 driver.
2007-11-20 21:33:42 -05:00
Marty Connor
645a752bc2
This version now transmits and receives.
...
There may still be an issue with memory handling, since it seems to
die ungracefully when ARP packets come in after loading a kernel.
Something to debug.
2007-11-20 16:23:12 -05:00
Marty Connor
8973caa1e6
Autonegotiation fixes. NIC now autonegotiates to whatever the switch supports.
2007-11-20 12:06:22 -05:00
Marty Connor
e41550b0ba
A version of the new e1000 driver that transmits.
...
autonegotiation still needs work. receive is not working yet.
2007-11-20 10:23:32 -05:00
Marty Connor
8b0d86914b
Rename e1000_main.c to e1000.c to so we can type 'make bin/e1000.dsk' instead of 'make bin/e1000_main.dsk'
2007-11-18 10:54:42 -05:00
Marty Connor
0fea19c398
Introduce files for new e1000 driver
2007-11-18 10:31:00 -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
9a4ed0f2d5
Remove unnecessary variable.
2007-11-18 03:11:02 -05: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
8069598a99
Add a missing PCI ID that is tested as working.
2007-10-10 02:07:18 +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
0f60150c44
Reverted driver/net/mlx_ipoib to clean master state
2007-09-18 07:07:04 +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
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
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
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
Michael Brown
75fbc96f75
Remove some dead code
2007-09-14 11:23:06 +01:00
Michael Brown
08e8dfd801
Now handling TX completions in our poll loop.
2007-09-14 11:10:25 +01:00
Michael Brown
e69863b5fb
Proof-of-concept to manually parse completion event
2007-09-14 10:18:09 +01:00
Michael Brown
e9df4f691e
Add EX_FLD_BE()
2007-09-14 10:17:29 +01:00
Michael Brown
da23e8d287
Start constructing a generic poll() routine.
2007-09-13 17:47:14 +01:00
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.
2007-09-13 14:43:12 +01:00
Michael Brown
03c90e183f
Dump received packet, including GRH.
2007-09-13 03:15:27 +01:00
Michael Brown
9e32e8e513
Now sends IP packets correctly.
2007-09-13 01:14:56 +01:00
Michael Brown
7b6d11e713
Started IB driver rewrite
2007-09-12 22:17:43 +01:00
Michael Brown
5f6439c828
Merge branch 'master' into 3leaf-rewrite
2007-09-11 15:42:17 +01:00
Marty Connor
eaca053174
Add sis900 variant (patch from Vampyre)
2007-08-30 08:36:00 -04:00
Michael Brown
74a49af4ab
Force MAC address for testing purposes
2007-08-29 20:07:41 +01:00
Michael Brown
b42c5905cb
Very quick and very dirty hack to get the Mellanox code building
...
inside gPXE.
2007-08-18 18:04:18 +01:00
Michael Brown
9d2c54735e
Started fixing up compilation warnings.
2007-08-17 20:34:48 +01:00
Michael Brown
d9bba621c8
Imported latest versions from Etherboot 5.4
2007-08-17 19:35:40 +01:00
Holger Lubitz
857c5db4dd
fix gcc 4.2.1 warning: discards qualifiers from pointer target type
2007-08-02 01:56:57 +01:00
Michael Brown
43013da9bf
Quick hack to get AoE back in to the tree, on a par with the current
...
iSCSI hack.
2007-07-29 02:31:14 +01:00
Michael Brown
e3484e26eb
Merge branch 'symcheck2'
2007-07-28 22:55:31 +01:00
Michael Brown
ca41159f57
Ensure clock line is in the idle state before asserting chip select.
2007-07-28 16:05:41 +01:00
Holger Lubitz
63e489c14d
make struct velocity_info vptx static
2007-07-27 22:07:01 +02:00
Holger Lubitz
5c486ee75d
make struct velocity_info_tbl *info static
2007-07-27 22:05:47 +02:00
Holger Lubitz
5a0c703403
make struct nsx static
2007-07-27 22:03:04 +02:00
Holger Lubitz
4cd21524ef
make struct bnx2 bnx2 static
2007-07-27 22:02:11 +02:00
Holger Lubitz
909ad9e80a
make cards_found static and add missing initialization
2007-07-27 21:50:12 +02:00
Holger Lubitz
59ad3dac40
Merge branch 'master' into symcheck2
2007-07-27 21:40:38 +02:00
Holger Lubitz
77ffd636fa
make RTL8169_READ_GMII_REG, RTL8169_WRITE_GMII_REG static
2007-07-27 21:39:31 +02:00
Michael Brown
84c347c7de
Inhibit a spurious warning on GCC 4.0.1
2007-07-26 00:46:27 +01:00
Michael Brown
3f338b7b80
Include errno.h in the few drivers which use it, rather than in nic.h
2007-07-24 14:05:32 +01:00
Marty Connor
02a7514128
Change #warning to FIXME for ns8390.c
...
This driver really needs to be rewritten.
It tries to build both ISA and PCI images,
and makes life diffifult for the build system
and rom-o-matic.net. The warning was just a reminder
that it needs to be cleaned up and re-factored
to split the PCI and ISA drivers.
2007-07-22 21:00:55 -04:00
Marty Connor
4e177aee17
Change #warning to FIXME for depca
...
This ancient ISA driver should probably be removed.
It is hard to get a card to test it with, and there
are comments to the effect that it cannot work with
relocation. I would be quite interested to get a
bug report by someone who actually has this card.
2007-07-22 20:56:26 -04:00
Udayan Kumar
37517f7752
removed type casting from DBG statements.
2007-07-14 21:08:07 -04:00
Udayan Kumar
fc47f2a4ce
replaces printf with dbg
2007-07-14 21:08:07 -04:00
Udayan Kumar
04962a0b31
added natsemi.h
2007-07-14 21:08:06 -04:00
Udayan Kumar
ecfa8f41e8
mdc's+nvs
2007-07-14 21:08:06 -04:00
Udayan Kumar
008bfb6e85
more debugging
2007-07-14 21:08:06 -04:00
Udayan Kumar
f58c8511a0
more debugging
2007-07-14 21:08:06 -04:00
Udayan Kumar
d6ceb8bbd7
added silicon revision number
2007-07-14 21:08:06 -04:00
Udayan Kumar
334abbde83
init_fix_up
2007-07-14 21:08:06 -04:00
Udayan Kumar
751cb2e450
added cable magic for 100Mps in natsemi
2007-07-14 21:08:06 -04:00
Udayan Kumar
11d246f3b5
duplex setting added to natsemi.c
2007-07-14 21:08:06 -04:00
Udayan Kumar
621f6fb503
more indentation and styling done
2007-07-14 21:08:06 -04:00
Udayan Kumar
bfa322bb19
:x
2007-07-14 21:08:06 -04:00
Udayan Kumar
f213f6a1a3
no changes
2007-07-14 21:08:06 -04:00
Udayan Kumar
a8c2a4fa11
added nat_irq to natsemi.c
2007-07-14 21:08:06 -04:00
Udayan Kumar
132d0fb70c
stopped memory leak in natsemi::nat_open()
2007-07-14 21:08:06 -04:00
Udayan Kumar
83dd194330
Natsemi commented and almost done
2007-07-14 21:08:05 -04:00
Udayan Kumar
4f2fab2e14
natsemi.c is workin
2007-07-14 21:08:05 -04:00
Udayan Kumar
a86b12728a
irq still not working will have to remove it
2007-07-14 21:08:05 -04:00
Udayan Kumar
2383a070d8
natsemi
2007-07-14 21:08:05 -04:00
Udayan Kumar
5e91a38269
interrupt in natsemi
2007-07-14 21:08:05 -04:00
Udayan Kumar
0d4ecfa63c
enabled interrupt in natsemi.c
2007-07-14 21:08:05 -04:00
Udayan Kumar
9ad59b60c5
added change log to natsemi.c
2007-07-14 21:08:05 -04:00
Udayan Kumar
6d4dafdc6e
added netdev_tx_complete to natsemi.c
2007-07-14 21:08:05 -04:00
Udayan Kumar
c6d0ef3478
added endianness to natsemi.
2007-07-14 21:08:05 -04:00
Udayan Kumar
0c324caecf
free_netdev -> netdev_put
2007-07-14 21:08:05 -04:00
Udayan Kumar
623d10c66f
debugging natsemi.c
2007-07-14 21:08:05 -04:00
Udayan Kumar
4a73631106
added eeprom from rtl8139 but not working
2007-07-14 21:08:05 -04:00
Udayan Kumar
9e962c3a01
natsemi now needs eeprom access
2007-07-14 21:08:05 -04:00
Udayan Kumar
99c680f743
same as before, but now compiling natsemi
2007-07-14 21:08:05 -04:00
Udayan Kumar
c8f6207e7e
added polling and transmit. eeprom access still remaining
2007-07-14 21:08:05 -04:00
Udayan Kumar
97efdbe9d7
skel of new natsemi driver (still in developments)
2007-07-14 21:08:05 -04:00
Udayan Kumar
4cea792470
testing if it works
2007-07-14 21:08:05 -04:00
Michael Brown
208ff0d42e
Revert mdc's warnings purge on natsemi.c, to allow for a clean rebase.
2007-07-14 21:08:05 -04:00
Michael Brown
e330db3c74
Dead code removal.
...
Kill off use of etherboot.h outside drivers/net.
2007-07-14 15:42:26 +01:00
Michael Brown
55d03ccbe3
Added missing "static"
2007-07-09 03:54:29 +01:00
Michael Brown
b94420a52b
Ready to start testing
2007-07-08 22:01:49 +01:00
Michael Brown
4c418d2100
Use net_device_operations structure and netdev_nullify() to allow for
...
safe dropping of the netdev ref by the driver while other refs still
exist.
Add netdev_irq() method. Net device open()/close() methods should no
longer enable or disable IRQs.
Remove rx_quota; it wasn't used anywhere and added too much complexity
to implementing correct interrupt-masking behaviour in pxe_undi.c.
2007-07-07 16:43:39 +01:00
Michael Brown
2823688a92
Revert "Replace natsemi driver with Indolent's updated one that uses the gPXE API"
...
This reverts commit 3487640397
.
2007-07-07 16:40:58 +01:00
Michael Brown
627feee265
Merge branch 'zalloc'
2007-07-07 04:01:52 +01:00