david/ipxe
Archived
1
0
Commit Graph

514 Commits

Author SHA1 Message Date
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
Michael Brown
436adb2890 Revert "convert to zalloc"
This reverts commit 68add6e814.
2007-07-07 03:59:37 +01:00
Holger Lubitz
85e04b5837 Revert "convert to zalloc"
This reverts commit a4bea78974.
2007-07-07 01:56:37 +02:00
Holger Lubitz
e3c72a3438 Revert "convert to zalloc"
This reverts commit 3414fd8df8.
2007-07-07 01:56:27 +02:00
Holger Lubitz
ac323c5e4d Revert "convert to zalloc"
This reverts commit 636bd2cd0a.
2007-07-07 01:56:15 +02:00
Holger Lubitz
50fe2159d5 Revert "convert to zalloc"
This reverts commit 7297f04481.
2007-07-07 01:55:45 +02:00
Holger Lubitz
a772dc4a2a Revert "convert to zalloc"
This reverts commit 5ce16b03a1.
2007-07-07 01:55:23 +02:00
Holger Lubitz
68add6e814 convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz
5ce16b03a1 convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz
7297f04481 convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz
636bd2cd0a convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz
3414fd8df8 convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz
a4bea78974 convert to zalloc 2007-07-06 20:42:05 +02:00
Michael Brown
ed7eae6005 Use netdev_rx_err() to report receive errors. 2007-07-05 17:23:03 +01:00
Marty Connor
3487640397 Replace natsemi driver with Indolent's updated one that uses the gPXE API
This version uses the gPXE driver API rather than the legacy wrapper API.
2007-07-05 08:54:12 -04:00
Marty Connor
1069a74d20 Warnings purge for via-velocity.[ch] 2007-07-04 21:58:28 -04:00
Marty Connor
8d39559192 Update warnings in depca.c ns8390.c 2007-07-04 20:14:10 -04:00
Marty Connor
13016297ed Purge warnings from tg3.c 2007-07-04 19:49:46 -04:00
Marty Connor
e5950283ec Purge warnings from prism2 drivers 2007-07-04 19:47:01 -04:00
Marty Connor
1af1668c95 Warnings purge of drivers (continued) 2007-07-04 05:52:56 -04:00
Michael Brown
b5311c2c88 This comment is no longer relevant. 2007-07-03 20:39:47 +01:00
Michael Brown
0924cf678e Implemented (untested) PXENV_START_UNDI. 2007-07-03 18:17:14 +01:00
Michael Brown
ca4bd3e24e Kill off now-redundant _irq() methods. 2007-07-03 15:37:56 +01:00
Michael Brown
e436b993a9 Avoid double free on I/O buffer when rtl_transmit() returns failure.
Convert printf() to DBG(); printf() is not allowed in drivers.
2007-07-03 14:44:33 +01:00
Michael Brown
71f500ff1b Enable/disable interrupts in driver open/close. 2007-07-03 12:50:58 +01:00
Michael Brown
290280f90e Enable/disable interrupts at open/close time. 2007-07-03 03:34:08 +01:00
Michael Brown
a2a0c2eace Enable/disable interrupts on open/close. 2007-07-03 00:57:04 +01:00
Michael Brown
5f17089b14 pxe_netdev now holds a reference to the network device.
Use generic fields in struct device_description rather than assuming
that the struct device * is contained within a pci_device or
isapnp_device; this assumption is broken when using the undionly
driver.

Add PXENV_UNDI_SET_STATION_ADDRESS.
2007-07-02 17:43:32 +01:00
Michael Brown
95cb7aaacf Support cards such as natsemi which treat the data as little-endian
(i.e. LSB transmitted first on the wire), even though SPI commands and
addresses always have to be big-endian.
2007-07-01 15:22:12 +01:00
Michael Brown
31fe5b9415 Hack together far enough to support ne2k-pci. 2007-07-01 00:37:29 +01:00
Michael Brown
f33bbd4112 How has the legacy wrapper been working for the past month or so...? 2007-07-01 00:36:48 +01:00
Michael Brown
f77815f2b1 Kill off hotplug.h and just make net devices normal reference-counted
structures.

DHCP still broken and #if 0'd out.
2007-06-27 14:48:31 +01:00
Michael Brown
0316eaf85d Add missing call to free_iob(). 2007-06-10 18:33:42 +01:00
Marty Connor
f97e642d17 Update email addresses in drivers 2007-06-09 15:23:17 -04:00
Marty Connor
8c25ea0970 Updated email mdc's email address 2007-06-08 11:23:26 -04:00
Michael Brown
3e2c6b6736 pkbuff->iobuf changeover
Achieved via Perl using:

perl -pi -e 's/pk_buff/io_buffer/g; s/Packet buffer/I\/O buffer/ig; ' \
	-e 's/pkbuff\.h/iobuf.h/g; s/pkb_/iob_/g; s/_pkb/_iob/g; ' \
	-e 's/pkb/iobuf/g; s/PKB/IOB/g;'
2007-05-19 18:39:40 +00:00
James Harper
80cc27cbc4 Ported bnx2 driver from Etherboot 5.4. 2007-03-13 23:03:50 +00:00
Michael Brown
13137a4d61 t5x9 code relies on nic->ioaddr being set 2007-03-11 00:37:46 +00:00
Michael Brown
62548c9f0d Updated 3c509 to current device model 2007-03-10 22:28:22 +00:00
Michael Brown
520d9c36af Updated ISAPnP, EISA, MCA and ISA buses to current device model.
ISA 3c509 is currently non-functional, although the EISA (3c509-eisa) and
MCA (3c529) variants should build OK.

None of this code is yet tested.
2007-03-10 18:08:33 +00:00
Michael Brown
c63af1ea14 Remove no-longer-used variable 2007-02-19 17:31:20 +00:00
James Harper
e1735d5fc2 Fix some bad pointer arithmatic in the tg3 driver that was causing the dynamic memory pool to be corrupted (or worse) 2007-02-10 00:28:41 +00:00
James Harper
1c971f1234 Fix padding problem - from Michael 2007-02-10 00:27:46 +00:00
Michael Brown
2cf1e33df1 Split bootsector execution code out into bootsector.c.
Added basic El Torito ISO image boot capability
2007-01-29 04:21:38 +00:00
Michael Brown
73b09ecba6 Use stdio.h instead of vsprintf.h 2007-01-19 01:13:12 +00:00
Michael Brown
5ff23aa406 Include stdlib.h rather than malloc.h 2007-01-18 20:06:03 +00:00
Michael Brown
48fe701716 Respect the RX quota. This improves poll time by about 0.7us when the
quota is 1.
2007-01-18 12:34:12 +00:00
Michael Brown
ff8528ea9a Create and use async_block() macro; it cuts down on the visual overhead
of blocking on asynchronous operations, when that isn't an important
aspect of the code.
2007-01-16 08:10:54 +00:00
Michael Brown
4e20d73bb5 Gave asynchronous operations approximate POSIX signal semantics. This
will enable us to cascade async operations, which is necessary in order to
properly support DNS.  (For example, an HTTP request may have to redirect
to a new location and will have to perform a new DNS lookup, so we can't
just rely on doing the name lookup at the time of parsing the initial
URL).

Anything other than HTTP is probably broken right now; I'll fix the others
up asap.
2007-01-15 08:49:10 +00:00
Michael Brown
03390f0cd6 Use pkb_pad() rather than doing it the dangerous way :) 2007-01-11 05:26:16 +00:00
Michael Brown
a3ed0cbbc7 Extract packet-padding login from rtl8139.c to a separate pkbpad.c file. 2007-01-11 05:25:50 +00:00
Michael Brown
fdc97499bf Add device description fields to struct device. 2007-01-10 15:27:48 +00:00
Michael Brown
dad5274522 Add "name" field to struct device to allow human-readable hardware device
names.

Add "dev" pointer in struct net_device to tie network interfaces back to a
hardware device.

Force natural alignment of data types in __table() macros.  This seems to
prevent gcc from taking the unilateral decision to occasionally increase
their alignment (which screws up the table packing).
2007-01-10 04:22:09 +00:00
Michael Brown
c65fae2475 Add RX quotas to the net device poll() method. This avoids the problem
of alloc_pkb() exhaustion when e.g. an iSCSI-booted DOS session is left
idle for a long time at the C:\ prompt and builds up a huge packet
backlog.
2007-01-09 21:47:01 +00:00
Michael Brown
e822bc2a90 Autopadding was sometimes overwriting the struct list_head at the end
of the packet buffer.  Although pkbuffs are guaranteed to be at least
PKB_ZLEN bytes long, there's no guarantee that the data starts at the
start of the packet buffer.

Since we have to align data for rtl8139 anyway, and since the start of
the packet buffer is guaranteed to be aligned to PKB_ALIGN, we may as
well just shuffle the packet down so that it starts at the start of
the packet buffer.  This simultaneously aligns the packet and ensures
that there is enough room for the zero-padding.
2007-01-09 21:01:55 +00:00
Michael Brown
b7fcfe8ece Added net device TX queue; this will be needed to support the PXE UNDI API
(which will need us to wait for TX completions).

Added debug autocolourisation to netdevice.c
2007-01-09 20:18:31 +00:00
Michael Brown
5af4918356 Added support for wildcard device/vendor ID matches 2007-01-08 03:23:38 +00:00
Michael Brown
7b9617f5df Add device to hierarchy before calling the driver's probe() function; this
way everything remains consistent if the probe() ends up creating child
devices.
2007-01-08 01:29:51 +00:00
Michael Brown
0c03bb5a9a Make open() and close() an official part of the netdevice API.
Call netdevice's poll() and transmit() methods only when device is open.
2007-01-04 04:20:08 +00:00
Michael Brown
61ed298bc7 Merge changes from mcb-tcp-fixes branch. 2006-12-27 23:09:46 +00:00