david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
Commit Graph

662 Commits

Author SHA1 Message Date
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 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 436adb2890 Revert "convert to zalloc"
This reverts commit 68add6e814.
2007-07-07 03:59:37 +01:00
Holger Lubitz 68add6e814 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 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 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 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 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 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 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 7ce3df65c2 Default to port 0 (sic). 2006-12-21 17:16:06 +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 29db66fb51 Add support for non-volatile stored options in the RTL8139 EEPROM. 2006-12-06 20:45:44 +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 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 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
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 714641ae6d Translate between "0 = success" and "0 = failure" call standards. 2006-06-14 00:18:13 +00:00
Michael Brown 7ce44f7480 Update to use the generic i2c bit-bashing code. 2006-06-11 00:57:38 +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 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 4d0a0f822d Use insb/outsb; it's marginally faster. 2006-05-20 12:28:44 +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 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 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
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
George Baum c4c05bbbf7 the uncontroversal gcc 4.0 compilation fixes 2005-05-23 19:30:37 +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 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 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 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
Michael Brown 628444af86 Updated to new device probing API 2005-04-22 16:24:21 +00:00
Michael Brown 49fe02e501 Coerced into compiling 2005-04-22 16:09:54 +00:00
Michael Brown ee88aacdb6 Coerced into compiling. 2005-04-22 16:07:48 +00:00
Michael Brown fba7f011d2 Coerced into actually compiling. 2005-04-22 16:06:46 +00:00
Michael Brown 67c9385577 Fields in struct pci_device slightly changed. 2005-04-22 16:05:05 +00:00
Michael Brown 7bd88df08d Documented where to get hold of the datasheet. 2005-04-22 16:01:51 +00:00
Michael Brown 091a579be1 Updated to new API. 2005-04-22 16:00:51 +00:00
Michael Brown 139d0fe481 Updated to new bus API, and improved using the 3c5x9 reference manual. 2005-04-22 15:55:13 +00:00
Michael Brown 8af80c6b10 disable() is a void 2005-04-22 12:07:22 +00:00
Michael Brown e596c42ade Updated to current API. 2005-04-22 11:57:35 +00:00
Michael Brown 329ccfdc21 Updated to new API. 2005-04-22 11:56:49 +00:00
Michael Brown 0e2dc7aa8e Updated to new device API. 2005-04-22 11:29:40 +00:00
Michael Brown 614c39a8a4 Automatically updated with the program
#!/usr/bin/perl -w -pi -0777

use strict;

( my $type ) = /find_(\w+?)_boot_device/ or die "Could not find type\n";

( my $disable ) = /\.disable\s*=\s*(\w+)/ or die "Could not locate disable\n";

s/(${disable}\s*\(\s*struct\s+nic\s+\*nic)(\s*\)\s*\{)(\s*)/${1}, struct ${type}_device \*${type} __unused${2}${3}nic_disable ( nic );${3}/s;

s/(${disable}\s*\(\s*struct\s+nic\s+\*nic)(\s*\)\s*;)/${1}, struct ${type}_device \*${type}${2}/g;

s/^\s*.disable\s*=\s*${disable}\s*,\s*?$//m;

s/(_probe\s*\(\s*)struct\s+dev\s+\*dev/${1}struct nic \*nic/g;

s/^\s*struct\s+nic\s+\*nic\s*=\s*nic_device\s*\(\s*dev\s*\)\s*;\s*?$//m;

s/^(\s*)(nic->(ioaddr|irqno)\s*=\s*${type})/${1}${type}_fill_nic ( nic, ${type} );\n${1}${2}/m;
2005-04-21 19:20:39 +00:00
Michael Brown cfe3a663af Tweaked API to minimise changes to existing drivers even further. 2005-04-21 19:04:53 +00:00
Michael Brown a713813596 Updated to current API 2005-04-21 18:31:31 +00:00
Michael Brown bd2c3b0f27 Split out EISA driver into a separate file, since 3c509s can only take 16K
ROMs (AFAIK).
2005-04-17 17:52:33 +00:00
Michael Brown 5ca20abf95 Place the call to adjust_pci_device() back in the individual drivers,
since we probably shouldn't be doing this to arbitrary devices during a
PCI bus scan...
2005-04-16 17:30:37 +00:00
Michael Brown 66e54f1274 ...this time with the correct syntax. :( 2005-04-16 14:54:11 +00:00
Michael Brown 8c2b42e08e Added activate_isapnp_device() line 2005-04-16 14:53:27 +00:00
Michael Brown 9f02376409 Make isa_probe_addr a simple integer rather than a struct, to facilitate
specification of ISA_PROBE_ADDRS.
2005-04-16 09:30:48 +00:00
Michael Brown d26889cb04 Don't even try to compile until the code is tidied up. 2005-04-15 16:50:36 +00:00
Michael Brown 8c082aa468 This at least compiles now. Haven't separated out the EMBEDDED code yet. 2005-04-15 16:49:46 +00:00
Michael Brown 1bd7b97e5c Not sure why I made these cosmetic changes, but I appear to have done so. 2005-04-15 16:30:35 +00:00
Michael Brown f61fa0dc64 Added "classical" ISA example. 2005-04-15 16:28:14 +00:00
Michael Brown 897eeee4ee Added EISA, ISAPnP and MCA examples. 2005-04-15 16:18:56 +00:00
Michael Brown 38ea910098 Updated to new PCI bus interface. 2005-04-15 16:08:10 +00:00
Michael Brown a26edc2eec Updated to work with new ISAPnP bus code. 2005-04-15 15:50:27 +00:00
Michael Brown ed92171527 Standardised debug messages to make it easy to get a bus scan printout
(just build debugging versions of the relevant bus objects).
2005-04-14 23:32:36 +00:00
Michael Brown c7694a5322 Cleaner separation of find_t509_device/fill_t509_device. 2005-04-14 23:20:56 +00:00
Michael Brown d5e1561fb8 Updated to new ISA API, but this driver probably has deeper problems. 2005-04-14 21:18:36 +00:00
Michael Brown 487574fc02 This code is unbelievably ugly, has never been fixed up to work with
relocation and (hence) presumably has not been used since Etherboot 5.0.
Say bye-bye!
2005-04-14 20:02:10 +00:00
Michael Brown 8165c14e71 Updated to general ISA bus API. 2005-04-14 19:25:36 +00:00
Michael Brown a80fe976ed Updated to common ISA bus API. 2005-04-14 19:07:53 +00:00
Michael Brown e5b537fed0 name should be const 2005-04-14 17:52:27 +00:00
Michael Brown cee678de7c Fixed up automatic modifications by hand. 2005-04-14 15:09:28 +00:00
Michael Brown 2c60617836 Automatically modified by
perl -pi -0777 -e 's/\s*?if\s*\(\s*!\s*find_pci_device.*?,\s*\&(\w+)\s*\)\s*\)\s*return\s*0;(.*BOOT_DRIVER\s*\(.*?,)(.*?\))/$2 find_pci_boot_device, $1,$3/sm' *.c
2005-04-14 15:00:05 +00:00
Michael Brown 393969a3f8 Fix up the automatic modifications. 2005-04-14 14:59:04 +00:00
Michael Brown 476dff5bb7 Made amenable to automatic update. 2005-04-14 14:49:32 +00:00
Michael Brown cbd5d4f849 This is the only driver that has a genuine reason to call
find_pci_device() directly.
2005-04-14 14:48:07 +00:00
Michael Brown 963dbefb51 Automatically updated using
perl -pi -0777 -e 's/(_probe\s*\(\s*struct\s+dev.*?)(\s*\)\s*{.*?$)\s*struct pci_device.*?=\s*pci_device \( dev \);$/${1}, struct pci_device *pci${2}/ms' *.c

sis900 excluded from update
2005-04-14 14:44:33 +00:00
Michael Brown 72fe23a76e Updated to new device API. 2005-04-14 14:31:11 +00:00
Michael Brown e0a8ee385e Updated to current device API. 2005-04-14 13:49:58 +00:00
Michael Brown 4c0d5a0b71 Split 3c509.c into 3c509.9 and 3c529.c, with shared code in 3c5x9.c.
Probe mechanisms now use standard EISA and MCA bus methods, with 3c509.c
defining a custom ISA bus to handle the 3c509 contention resolution logic.
2005-04-14 12:23:12 +00:00
Michael Brown 44c7cc8c12 Standardised debug mechanism in place now. 2005-04-14 11:55:57 +00:00
Michael Brown 0dc98309b2 Stripped references to variables in C code. 2005-04-13 13:48:26 +00:00
Michael Brown e294a1ddce EISA support now provided by eisa.c
MCA support now provided by mca.c
2005-04-13 13:06:56 +00:00
Michael Brown 7cc6366a84 Finished by hand 2005-04-13 02:02:08 +00:00
Michael Brown 951e305081 Finished by hand 2005-04-13 01:45:20 +00:00
Michael Brown f39cc6d978 Finished by hand 2005-04-13 01:31:44 +00:00
Michael Brown 9848135950 Finished by hand 2005-04-13 01:01:33 +00:00
Michael Brown 3616de915e Hand-finished 2005-04-13 00:21:59 +00:00
Michael Brown 28590d718b Hand-finished 2005-04-13 00:15:45 +00:00
Michael Brown 91e46ed588 Automatically updated using
perl -pi -0777 -e 's/^(\s*)dev->disable(\s*)=\s*(\w+)_disable;\s*nic->poll\s*=\s*(\w+);\s*nic->transmit\s*=\s*(\w+);\s*nic->irq\s*=\s*(\w+);/static struct nic_operations ${3}_operations;\nstatic struct nic_operations ${3}_operations = {\n\t.connect\t= dummy_connect,\n\t.poll\t\t= $4,\n\t.transmit\t= $5,\n\t.irq\t\t= $6,\n\t.disable\t= ${3}_disable,\n};${1}nic->nic_op\t= &${3}_operations;/msg' *.c
2005-04-13 00:02:40 +00:00
Michael Brown d9c64c9422 Manual tweaks to get all drivers to follow the "disable, poll, transmit,
irq" pattern.
2005-04-12 23:47:52 +00:00
Michael Brown 881023e9ca Automatically updated using
perl -pi -e 's/(_probe\s*\(\s*struct )dev \*.*?(\s*\);)/${1}dev *dev$2/' *.c

perl -pi -e 's/(_disable\s*\(\s*struct )dev \*.*?(\s*\);)/${1}nic *nic$2/' *.c
2005-04-12 23:39:16 +00:00
Michael Brown c87ba23399 Automatically updated using
perl -pi -0777 -e 's/_disable\s*\(\s*struct dev \*dev\s*\)\s*{\s*struct nic \*nic.*?$/_disable ( struct nic *nic ) {/ms' *.c

perl -pi -0777 -e 's/_disable\s*\(\s*struct dev \*dev(\s*__unused)?\)\s*{/_disable ( struct nic *nic$1 ) {/ms' *.c
2005-04-12 23:31:37 +00:00
Michael Brown bd9ae7cc70 Automatically updated using
perl -pi -0777 -e 's/_probe\s*\(\s*struct dev \*dev,\s*struct pci_device \*(\w+?)\s*\)\s*{(\s*)struct nic \*nic.*?$/_probe ( struct dev *dev ) {\n${2}struct nic *nic = nic_device ( dev );\n${2}struct pci_device *$1 = pci_device ( dev );/ms' *.c
2005-04-12 23:24:39 +00:00
Michael Brown 35e6f3e58a Minor regexp tweaks to catch degenerate cases. 2005-04-12 23:13:54 +00:00
Michael Brown 4e3e389200 Auto-updated using
perl -pi -0777 -e 's/static struct pci_driver (\w+) __pci_driver = {.*\.name\s*=\s*(\"\S+\").*\.probe\s*=\s*(\w+).*\.ids\s*=\s*(\w+).*\.class\s*=\s*(\w+).*?};/static struct pci_driver $1 =\n\tPCI_DRIVER ( $2, $4, $5 );\n\nBOOT_DRIVER ( $2, $3 );/ms' *.c

perl -pi -e 's/(PCI_DRIVER \(.*, )0 \);/${1}PCI_NO_CLASS );/' *.c
2005-04-12 23:05:00 +00:00
Michael Brown 27a55b514c Updated to new device API. 2005-04-12 18:23:00 +00:00
Michael Brown 8fa0e38233 Fixed up PCI-scanning code to use new PCI interface. 2005-04-12 18:13:59 +00:00
Michael Brown b9237160ad Almost all information in this file is now obsolete. Writing a new driver
should, with the new build system, just be a case of writing the .c file
and dropping it in place in drivers/net.  :)
2005-04-10 23:45:55 +00:00
Michael Brown 0ff80b477d Merged mcb30-realmode-redesign back to HEAD 2005-04-08 15:01:17 +00:00
Michael Brown 3d6123e69a Initial revision 2005-03-08 18:53:11 +00:00