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
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
Michael Brown
ab242a760d
Add ability to shut down iSCSI connection
2006-12-21 17:17:47 +00:00
Michael Brown
7ce3df65c2
Default to port 0 (sic).
2006-12-21 17:16:06 +00:00
Michael Brown
6ceaa158da
Return -EIO when verification fails, instead of -EINVAL.
2006-12-20 14:11:50 +00:00
Michael Brown
9f953322a1
Remove warning (at least on platforms with uint32_t == unsigned long).
2006-12-20 00:34:53 +00:00
Michael Brown
a646e38f03
Use stdlib.h for malloc() instead of malloc.h.
2006-12-19 23:42:46 +00:00
Michael Brown
a497e16767
The "increment MAC address by port number" hack applies only to EF1.
2006-12-18 15:28:34 +00:00
Michael Brown
a39b111684
Automatically select between the "10" and "16" variants of command set,
...
based on the device size.
2006-12-12 18:54:35 +00:00
Michael Brown
3bd7e479a2
Catch SCSI errors, and work around the start-of-day CHECK CONDITION
...
that some targets send.
2006-12-12 18:18:54 +00:00
Michael Brown
29db66fb51
Add support for non-volatile stored options in the RTL8139 EEPROM.
2006-12-06 20:45:44 +00:00
Michael Brown
d2bf7abe75
Added write support for three-wire devices (e.g. the RTL8139 EEPROM)
2006-12-06 19:51:58 +00:00
Michael Brown
ac401f481d
Verify data after writing
2006-12-06 18:51:31 +00:00
Michael Brown
a128b33b8b
The VPD engine is broken and can't actually handle placing VPD
...
anywhere other than offset 0 within the EEPROM, so we have to put our
settings at 0x100 instead.
2006-12-05 17:56:13 +00:00
Michael Brown
4c3e0fede5
Adjust EEPROM/flash detection to fit expected manufacturing practice.
2006-12-05 16:00:06 +00:00
Michael Brown
cb883b3faf
Change some debugging messages to use DBG()
2006-12-05 10:01:00 +00:00
Michael Brown
6b45947a59
Added debug statements
2006-12-04 23:20:56 +00:00
Michael Brown
052ef6dc5a
Added nvs_write(). This shares a lot of code in common with nvs_read();
...
this can probably be optimised down quite a lot.
2006-12-04 22:06:54 +00:00
Michael Brown
cc9bcb99a0
Add the concept of a fragment list for non-volatile stored options.
2006-12-04 21:46:13 +00:00
Michael Brown
f944737045
Fixed two logic errors that were cancelling each other out.
2006-12-04 21:12:52 +00:00
Michael Brown
d62c83a350
Migrated etherfabric driver to using generic SPI layer.
2006-12-04 20:47:51 +00:00
Michael Brown
2d8d21fe74
Added the generic block-splitting code to nvs.c
2006-12-04 19:06:07 +00:00
Michael Brown
1961ba44e1
Added generic SPI protocol handler with read and write support.
2006-12-04 18:32:55 +00:00
Michael Brown
946967f09c
Abstracted out part of the concept of an SPI device to a generalised NVS
...
device.
Separated the mechanisms of non-volatile storage access and non-volatile
stored options.
2006-12-04 18:23:06 +00:00
Michael Brown
dc06c895fc
Changed length parameter in SPI methods to be a byte length, rather than
...
a word length.
2006-12-04 16:09:59 +00:00
Michael Brown
931f94dca3
Generalised the SPI abstraction layer to also be able to handle interfaces
...
that don't provide the full flexibility of a bit-bashing interface.
Temporarily hacked rtl8139.c to use the new interface.
2006-12-04 15:36:51 +00:00
Michael Brown
4cd56820ea
Basic non-volatile storage support
2006-11-29 02:41:08 +00:00
Michael Brown
3234ef1b0b
Merged changes from Solarflare
2006-11-28 13:25:23 +00:00
Michael Brown
3f0b4d9ed8
Updated to use asynchronous operation model for iSCSI requests
...
Added CHAP authentication
2006-11-28 00:29:02 +00:00
Michael Brown
88e38fa148
We don't actually have a stdio.h header file. Our printf() functions are
...
defined in vsprintf.h. (This may change, since vsprintf.h is a
non-standard name, but for now it's the one to use.)
There should be no need to include vsprintf.h just for DBG() statements,
since include/compiler.h forces it in for a debug build anyway.
2006-09-27 10:58:14 +00:00
Marty Connor
6ac78f6aff
added stdio.h to includes for DBG compilation
2006-09-27 05:57:06 +00:00
Marty Connor
757618edea
eth_ntoa and warnings cleanup
2006-09-27 03:05:21 +00:00
Marty Connor
cd8168b071
eth_ntoa cleanup. still has warnings. needs work.
2006-09-27 03:00:21 +00:00
Marty Connor
727a88709e
eth_ntoa and warnings cleanup
2006-09-27 02:18:07 +00:00
Marty Connor
0d1087a5de
eth_ntoa and warnings cleanup
2006-09-27 02:07:59 +00:00
Marty Connor
859cc71158
compilation warnings cleanup
2006-09-26 22:18:00 +00:00
Marty Connor
a02dccdafa
eth_ntoa cleanup
2006-09-26 22:11:45 +00:00
Marty Connor
b88aa51b07
warnings cleanup (still gives lots of compilation warnings from unused functions and missing legacy support)
2006-09-26 22:09:03 +00:00
Marty Connor
9588e20828
warnings cleanup
2006-09-26 22:04:33 +00:00
Marty Connor
e753444e04
compilation warnings cleanup
2006-09-26 21:58:08 +00:00
Marty Connor
cf84605271
eth_ntoa and compilation warnings fixes
2006-09-26 21:33:12 +00:00
Marty Connor
097c1b341d
eth_ntoa fixes
2006-09-26 21:06:29 +00:00
Michael Brown
7952bb76ec
Minor fix
2006-09-25 14:41:54 +00:00
Marty Connor
cce8755fb8
eth_ntoa and warnings fixups, memcpy compilation fix
2006-09-25 09:06:50 +00:00
Marty Connor
d86c080024
eth_ntoa and warnings fixups
2006-09-25 03:52:01 +00:00
Marty Connor
eefac0e258
eth_ntoa and warnings fixups
2006-09-25 03:21:25 +00:00
Marty Connor
d4b060be3b
eth_ntoa and warnings fixups
2006-09-25 02:55:13 +00:00
Marty Connor
f4d0f2e5b5
eth_ntoa and warnings fixups
2006-09-25 02:47:50 +00:00
Marty Connor
9e71390930
eth_ntoa and warnings fixups
2006-09-25 02:41:46 +00:00
Marty Connor
447ed77525
eth_ntoa and warnings fixups
2006-09-25 02:18:11 +00:00
Marty Connor
3ffeffebb2
eth_ntoa and warnings fixups
2006-09-25 02:11:52 +00:00
Marty Connor
c0e91255d0
eth_ntoa fixups
2006-09-20 00:20:37 +00:00
Marty Connor
fe62800bad
eth_ntoa fixups
2006-09-20 00:06:52 +00:00
Marty Connor
637411c2ab
eth_ntoa fixups
2006-09-20 00:00:44 +00:00
Marty Connor
3df3ac72e1
eth_ntoa fixups
2006-09-19 16:33:46 +00:00
Marty Connor
896f871fba
eth_ntoa fixups
2006-09-19 15:58:37 +00:00
Marty Connor
077bbc220a
eth_ntoa fixup
2006-09-19 15:49:57 +00:00
Marty Connor
338a6de549
eth_ntoa fixup, some warnings fixups (isa/pnp fixups still needed)
2006-09-19 15:23:28 +00:00
Marty Connor
5a39995f8b
eth_ntoa fixup, _disable arg fixup
2006-09-19 15:17:51 +00:00
Marty Connor
a9cb4ca079
DBG MAC addr printout in driver
2006-09-15 12:54:11 +00:00
Marty Connor
a998286c8b
change MAC address printout to DBG using eth_ntoa (temporary legacy support)
2006-09-15 12:42:43 +00:00
Marty Connor
b41f754e3a
Fix compile warnings, remove unused var
2006-09-14 17:58:23 +00:00
Marty Connor
08d7ea1d34
Fixed DBG macro format, fixed compile warnings. removed extra parameter from mtd80x_disable(...)
2006-09-14 17:15:53 +00:00
Marty Connor
35f90278a8
Remove nic_disable call from drivers. Call should be made at a higher level
2006-09-14 14:51:38 +00:00
Marty Connor
1ed6e69ea5
Remove printf of MAC address in driver.
2006-09-14 14:06:33 +00:00
Michael Brown
21bc2015f2
Fix gcc-induced reference to memcpy
2006-09-01 10:48:35 +00:00
Michael Brown
bb3df618b8
Remove old-style debug message
2006-08-16 00:02:43 +00:00
Michael Brown
97439cb6eb
Kill off poll_interruptions(); it is lethal when we're acting as a PXE
...
stack or INT 13 emulator etc.
2006-08-14 22:29:51 +00:00
Michael Brown
d393e61d8a
Temporary hack to work around the "TX overflow" problem in the interim
...
period before updating to the new driver API (which can cope with
having TX packets in progress).
2006-06-16 14:38:16 +00:00
Michael Brown
52de4935f9
Add 4 bytes to maximum frame length to allow for the frame checksum.
...
(This actually matters once you try using TCP, because you *will*
receive full-sized frames.)
2006-06-16 14:30:41 +00:00
Michael Brown
7c76791730
Improve debugging output for legacy wrapper
2006-06-16 14:27:04 +00:00
Michael Brown
e5865e796b
Forward-port event queue fixes from 5.4 tree.
2006-06-16 14:05:43 +00:00
Michael Brown
a20c565ef3
Forward-port start-of-day fixes from 5.4 tree
2006-06-16 14:03:43 +00:00
Michael Brown
50ab8c0e5b
Forward-port reset-related changes from 5.4 tree.
2006-06-16 14:00:43 +00:00
Michael Brown
3b51c719d3
Generalise three-wire interface to generic SPI interface.
...
Update rtl8139 driver to instantiate an SPI interface with a three-wire
device attached.
2006-06-14 00:22:50 +00:00
Michael Brown
ab4f96e525
Move per-transition delays from generic bit-bashing layer to i2c layer
...
(since SPI bit-bashing will require different delay semantics).
2006-06-14 00:20:35 +00:00
Michael Brown
714641ae6d
Translate between "0 = success" and "0 = failure" call standards.
2006-06-14 00:18:13 +00:00
Michael Brown
51a36f1cfb
Change read_bit() to return 0 or -1UL, rather than 0 or 1.
2006-06-12 19:29:50 +00:00
Michael Brown
2e49441535
Updated debug message to reflect change in data structure.
2006-06-12 01:10:08 +00:00
Michael Brown
7ce44f7480
Update to use the generic i2c bit-bashing code.
2006-06-11 00:57:38 +00:00
Michael Brown
3ed40686c9
Added bit-bashing i2c interface code
2006-06-11 00:57:00 +00:00
Michael Brown
e90b64d625
Added sketch of bit-bashing interface common code
2006-06-08 19:47:09 +00:00
Michael Brown
1697c78848
Legacy drivers cannot cope with multiple active devices.
2006-06-08 15:18:27 +00:00
Michael Brown
02df45352c
Force pci.o to be included.
...
Print warning message at probe time.
2006-06-05 16:17:52 +00:00
Michael Brown
754cfdfcf4
Legacy drivers will not pad when necessary
2006-06-05 16:10:36 +00:00
Michael Brown
7826de3f7e
PNIC doesn't auto-pad.
2006-06-05 16:10:14 +00:00
Michael Brown
286bf68faf
Added a very quick and dirty compatibility layer, to allow
...
not-yet-updated drivers to at least function.
2006-06-05 15:45:21 +00:00
Michael Brown
c3e41e6fd1
Added soon-to-be-requisite missing include.
2006-06-05 15:41:22 +00:00
Michael Brown
1f394c2f7c
Backing out last change; no immediate plans to make the whole block-device
...
layer asynchronous, so keeping the sync/async boundary within aoedev.c
seems cleanest for now.
2006-06-01 11:14:59 +00:00
Michael Brown
99ef98d0bf
ATA devices are now asynchronous. The ATA layer itself now performs the
...
async_wait(), though we may wish to move this higher up the stack, and
consider making the block device model asynchronous. (There is only a
marginal cost for synchronous devices, since they can simply call
async_done() before returning; async_wait() will work seamlessly in this
situation).
2006-05-31 18:57:11 +00:00
Michael Brown
68125bc441
Added generic asynchronous operations code.
...
Removed data_in_len and data_out_len from ata_command structure; the
lengths are implied by the sector count and the presence of the data_in
or data_out pointers.
Changed AoE code to use subcommands by default, and made aoe_issue()
nonblocking (with completion via async_wait()).
2006-05-31 14:34:17 +00:00
Michael Brown
6541338897
Handle multi-sector reads by splitting them into subcommands.
2006-05-29 08:25:31 +00:00
Michael Brown
9a2a52693d
Initial AoE implementation. Limitations are:
...
Cannot yet handle reads of more than two sectors
No retransmission
No way to find out a target's MAC address (this proof of concept uses
broadcasts)
These limitations shall not last long! :)
2006-05-28 23:29:43 +00:00
Michael Brown
6f998cecb3
Use separate data-in and data-out buffers.
...
Increase code simplicity at the expense of around 64 bytes.
2006-05-28 23:26:42 +00:00
Michael Brown
70ef6dbb7c
Rewrote to use the new net driver API, the updated PCI API, and the
...
generic three-wire serial device support for EEPROM access.
2006-05-27 13:45:14 +00:00
Michael Brown
aa2468babe
Added abstraction layer for a three-wire serial device (e.g. the EEPROM
...
used on RTL8139 cards).
2006-05-26 15:39:24 +00:00
Michael Brown
95956443e1
Fixed debug code
2006-05-21 16:04:41 +00:00
Michael Brown
80958ff69c
Added (untested) support for ATA devices. This code should be generic
...
enough to support both real IDE chipsets and AoE.
2006-05-21 16:01:23 +00:00
Michael Brown
4d0a0f822d
Use insb/outsb; it's marginally faster.
2006-05-20 12:28:44 +00:00
Michael Brown
402ba15c64
READ CAPACITY (16) turns out to be an optional command (even though
...
READ(16) is mandatory); we must use READ CAPACITY (10) first and then
use READ CAPACITY (16) if the READ CAPACITY (10) returns "out of range".
2006-05-19 18:54:38 +00:00
Michael Brown
d48d0fb1bb
Add the concept of a "user pointer" (similar to the void __user * in
...
the kernel), which encapsulates the information needed to refer to an
external buffer. Under normal operation, this can just be a void *
equivalent, but under -DKEEP_IT_REAL it would be a segoff_t equivalent.
Use this concept to avoid the need for bounce buffers in int13.c,
which reduces memory usage and opens up the possibility of using
multi-sector reads.
Extend the block-device API and the SCSI block device implementation
to support multi-sector reads.
Update iscsi.c to use user buffers.
Move the obsolete portions of realmode.h to old_realmode.h.
MS-DOS now boots an order of magnitude faster over iSCSI (~10 seconds
from power-up to C:> prompt in bochs).
2006-05-19 15:06:51 +00:00
Michael Brown
6b6096d28b
Strip down i386 PCI configuration space I/O to the bare minimum. A
...
typical build will now include 880 bytes of PCI support code, compared to
2327 bytes in Etherboot 5.4.
(There is a slight cost of around 5 extra bytes per access to a
non-constant config space address; this should be an overall win.
Driver-specific accesses will usually be to constant addresses, for
which there is no additional cost.)
2006-05-17 01:12:11 +00:00
Michael Brown
15ee09ed10
Restructured PCI subsystem to fit the new device model.
...
Generic PCI code now handles 64-bit BARs correctly when setting
"membase"; drivers should need to call pci_bar_start() only if they want
to use BARs other than the first memory or I/O BAR.
Split rarely-used PCI functions out into pciextra.c.
Core PCI code is now 662 bytes (down from 1308 bytes in Etherboot 5.4).
284 bytes of this saving comes from the pci/pciextra split.
Cosmetic changes to lots of drivers (e.g. vendor_id->vendor in order to
match the names used in Linux).
2006-05-16 15:12:06 +00:00
Michael Brown
f25731d08f
Split "iSCSI as a SCSI device" out from "iSCSI as a TCP protocol".
2006-05-14 23:29:16 +00:00
Michael Brown
f33f01c126
Defined SCSI device interface, and added SCSI block device
...
implementation.
2006-05-13 11:37:50 +00:00
Michael Brown
79f64eea55
Transmit the buffer contents, not the buffer descriptor...
2006-04-28 14:08:41 +00:00
Michael Brown
fcf765e42d
Add missing {register,free}_netdev().
...
Tie into existing driver API; we'll fix that up soon.
2006-04-24 18:44:50 +00:00
Michael Brown
832e86246b
gcc is rather over-aggressive about optimising out static data structures
...
even when __atribute__ (( unused )) is correctly set...
2006-04-24 18:31:37 +00:00
Michael Brown
824d6ffa7f
Header rearrangement.
...
I want to get to the point where any header in include/ reflects a
standard user-level header (e.g. a POSIX header), while everything that's
specific to gPXE lives in include/gpxe/. Headers that reflect a Linux
header (e.g. if_ether.h) should also be in include/gpxe/, with the same
name as the Linux header and, preferably, the same names used for the
definitions.
2006-04-24 15:42:49 +00:00
Michael Brown
fdc2ee79db
Network API now allows for multiple network devices (although the
...
implementation allows for only one, and does so without compromising on
the efficiency of static allocation).
Link-layer protocols are cleanly separated from the device drivers.
Network-layer protocols are cleanly separated from individual network
devices.
Link-layer and network-layer protocols are cleanly separated from each
other.
2006-04-24 15:33:06 +00:00
Michael Brown
7be870acd3
More purging
2006-03-17 14:14:36 +00:00
Michael Brown
d08ce741a4
Build in gpxe
2006-03-16 19:09:31 +00:00
Michael Brown
0806436d99
Remove accidental duplicate arising from merge
2006-03-16 19:04:19 +00:00
Michael Brown
239579efcf
Build under gpxe
2006-03-16 19:02:18 +00:00
Michael Brown
d0777627c6
Back out duplication arising from the merge
2006-03-16 18:56:16 +00:00
Michael Brown
c4f25b637c
Fix to compile under gpxe
2006-03-16 18:54:57 +00:00
Michael Brown
4ee0e0f85e
Merge from Etherboot 5.4
2006-03-16 18:51:23 +00:00
Michael Brown
46e7bd5b52
Merge from Etherboot 5.4
2006-03-16 18:44:31 +00:00
Michael Brown
7e0a7a2e08
Merge from Etherboot 5.4
2006-03-16 18:30:54 +00:00
Michael Brown
28cefdccc4
Merge from Etherboot 5.4
2006-03-16 18:30:46 +00:00
Michael Brown
bb7394b041
Merge from Etherboot 5.4
2006-03-16 17:59:51 +00:00
George Baum
bd9d4e0bd7
Reorder functions to match the linux driver.
...
No code changes apart from commenting one unused function out.
2005-07-11 19:26:12 +00:00
Timothy Legge
4184dc5c6a
Fix COMET TxUnderrun issue
2005-06-17 20:11:10 +00:00
Timothy Legge
95967adc8c
Jan Kiszka provided a patch for the smc9000 for missing phy-setup
2005-06-02 01:26:37 +00:00
Michael Brown
0e494614b5
Some versions of doxygen seem to object to "@ret None" or similar.
2005-05-24 00:11:25 +00:00
George Baum
c4c05bbbf7
the uncontroversal gcc 4.0 compilation fixes
2005-05-23 19:30:37 +00:00
Michael Brown
a96759f9c8
Use "#var" rather than "@c var" for doxygen.
2005-05-20 10:27:02 +00:00
Michael Brown
e14c739d2d
Imported from Etherboot 5.4 tree
2005-05-19 16:51:32 +00:00
Michael Brown
4e87543c74
Synced across updates from Etherboot 5.4 tree
2005-05-19 16:47:19 +00:00
Michael Brown
f88c0d42d5
Doxygenation
2005-05-19 15:35:47 +00:00
Michael Brown
e91c65bea1
Make PCI ID tables const so as not to trigger a warning about a large
...
symbol.
2005-05-03 12:36:06 +00:00
Michael Brown
24c0498cbc
Move tulip_private structure into shared data.
2005-05-03 12:29:32 +00:00
Michael Brown
42eb786ced
D'oh
2005-05-03 12:18:31 +00:00
Michael Brown
4bcd42699b
Use __shared
2005-05-03 12:16:49 +00:00
Michael Brown
303ff86c75
Added example of how to use __shared.
...
Moved transmit before poll, since typically transmit will be implemented first.
2005-05-03 12:14:29 +00:00
Michael Brown
c112f12c5b
Symbol fixups
2005-05-03 11:29:33 +00:00
Michael Brown
3c2851e563
Arbitrary alignment is now available.
...
Use shared symbols.
Correct other symbol violations.
2005-05-03 09:56:57 +00:00
Michael Brown
ee15c47cb5
Use shared symbols
2005-05-02 17:45:24 +00:00
Michael Brown
3267ca5568
Use shared symbols to save space
2005-05-02 16:35:44 +00:00
Michael Brown
60b82eb5cd
Moved definition of __shared into compiler.h
2005-05-02 16:21:52 +00:00
Michael Brown
a1f50f27b0
Correct symbol violations reported by "make symcheck"
2005-05-02 15:22:32 +00:00
Michael Brown
282b6f1a1a
isa.c uses the new table infrastructure.
2005-04-27 12:24:38 +00:00
Michael Brown
e301acc0d4
Add isapnp_max_csn to reduce scan time.
2005-04-26 14:07:30 +00:00
Michael Brown
3dbdeb588f
ISA bus driver updated to report devices as present only if a driver
...
thinks they are.
Other bus drivers modified for consistency.
2005-04-26 12:30:14 +00:00
Michael Brown
7e534b585f
Automatically updated with
...
perl -pi -0777 -e 's/^static struct \w+_driver (\w+) =\s*(\w+_DRIVER \()/${2} ${1},/msg' *.c
2005-04-26 12:19:39 +00:00
Michael Brown
99b857559b
Added "name" field to struct bus_driver
2005-04-25 19:26:33 +00:00
Michael Brown
5bace628ae
Added "name" field to bus structure.
2005-04-25 18:54:15 +00:00
Michael Brown
9dc7ebc152
Symbol errors caught by symcheck.pl
2005-04-23 14:45:37 +00:00
Michael Brown
e8f364551a
Typo
2005-04-22 16:32:29 +00:00
Michael Brown
08ff0c1d30
Ensured that all drivers call xxx_fill_nic().
2005-04-22 16:31:52 +00:00
Michael Brown
e7c177cc33
Coerced into compiling
2005-04-22 16:27:56 +00:00