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

324 Commits

Author SHA1 Message Date
Michael Brown cf79681b80 Fix BUILD_SERIAL.
Change from using #if to #ifdef, since #if can't cope with string
constants.
2005-04-18 12:43:18 +00:00
Michael Brown 85b00c4b72 Move RELOCATE into config.h
Move ISA probe address logic from config.c into isa.c, create header file
config/isa.h.
2005-04-18 11:00:42 +00:00
Michael Brown 3c55caf24c Moved console options to config.h
Removed CONFIG_{PCI,ISA,PCMCIA}, since buses are now always compiled and
linked in only if required by the individual driver objects.
2005-04-18 10:19:36 +00:00
Michael Brown a0c5430749 CONFIG_PCI and CONFIG_ISA no longer exist 2005-04-18 10:18:38 +00:00
Michael Brown 2c36f5e6c7 Save a few bytes by using naturally-sized ints. 2005-04-18 09:17:27 +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 6e4888400c Avoid deleting .cvsignore 2005-04-17 16:24:36 +00:00
Michael Brown 1acea7d21f Serial port configuration moved to config.h 2005-04-17 16:18:20 +00:00
Michael Brown de965fde64 Whoops 2005-04-17 16:16:02 +00:00
Michael Brown 64e1df4af6 Allow serial port options to be specified in a relatively friendly format. 2005-04-17 16:15:46 +00:00
Michael Brown 6ca5e85a3b Working format. 2005-04-17 16:01:13 +00:00
Michael Brown b5ee3763c6 Add MKCONFIG utility, and add "-I ." to CFLAGS so that we can work
with generated headers.
2005-04-17 15:58:39 +00:00
Michael Brown b79895c9d6 Use mkconfig.pl to generate fragments from config.h
Don't use -MP to generate phony rules for included files, otherwise
make won't use the pattern rule for config/%.h.  :(
2005-04-17 15:57:34 +00:00
Michael Brown a107996c9a If we end up with fragments that are older than config.h, set the
timestamp on config.h to match the oldest fragment, to prevent make
from always attempting to rebuild the fragments.
2005-04-17 15:56:32 +00:00
Michael Brown 31fdf3da82 All .h files in this directory are generated from the top-level config.h 2005-04-17 15:36:15 +00:00
Michael Brown 04a0de1c92 Generate phony targets, so that we don't get screwed by missing config
header files.
2005-04-17 15:31:06 +00:00
Michael Brown 7b2a0cded1 First version 2005-04-17 15:25:09 +00:00
Michael Brown 8e4c991c24 Experiment; let's see if we can get individual config header files working. 2005-04-17 14:08:40 +00:00
Michael Brown 658fecf7e5 Found a home for MAKEROM_FLAGS_3c503. 2005-04-17 13:25:43 +00:00
Michael Brown 5ee79cf207 3c509/3c529 no longer use legacy INCLUDE_xxx mechanism. 2005-04-17 13:16:13 +00:00
Michael Brown 63e0c8f947 xstart16() fixed up to use new REAL_EXEC mechanism. 2005-04-17 12:36:45 +00:00
Michael Brown 1a6ca649a2 Made copy_{to,from}_real volatile, so that they don't get optimised away.
Added REAL_FRAGMENT(), because it could conceivably be useful.
2005-04-17 12:17:06 +00:00
Michael Brown 8e27e50316 We don't refer to _bss and _ebss any more. 2005-04-17 11:47:18 +00:00
Michael Brown c9d35daffe Re-add the "." progress indicator. 2005-04-17 11:40:24 +00:00
Michael Brown 03346742c0 Use only the header files that we need 2005-04-17 10:51:05 +00:00
Michael Brown a6057b4cbc Need stddef.h to get size_t 2005-04-17 10:48:56 +00:00
Michael Brown f08516791e printf and sprintf now defined in vsprintf.h, drag in console.h to get
putchar() as well.
2005-04-17 10:45:13 +00:00
Michael Brown 664ffea697 Gave vsprintf.c its own header file, and made console.h include it. 2005-04-17 10:44:26 +00:00
Michael Brown 063140864e Automatically drag in console.h if DBG() is being defined as printf(). 2005-04-17 10:25:06 +00:00
Michael Brown ae36de3d80 Need to prevent intermediate targets from being deleted, otherwise the
trick with "touch -B 2" doesn't work because the file that we're
carefully timestamping just gets deleted anyway.
2005-04-16 23:47:47 +00:00
Michael Brown 9c814cb123 Use the correct case for -Ddebug_<object> 2005-04-16 23:33:52 +00:00
Michael Brown a666eb34b5 Improved building of debugging objects. You can now specify a "DEBUG="
list for any build, e.g.
  make bin/pnic.dsk DEBUG=pci,pnic
This will drag in debugging-enabled versions of pci.c and pnic.c.
2005-04-16 23:28:36 +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 b7c55c3951 Avoid signed/unsigned warnings by explicitly making PCI_{BUS,DEV,FUNC}
all return unsigned quantities.
2005-04-16 17:09:52 +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 57070797e3 Optimise ISAPNP_READ_PORT_STEP 2005-04-16 14:50:41 +00:00
Michael Brown 86d2127204 Remove debugging call to getchar() 2005-04-16 14:42:48 +00:00
Michael Brown c659a54f70 Now known to work with an old Adaptec 1505 that I found lying around. 2005-04-16 14:41:04 +00:00
Michael Brown 7bd3e883d7 Consistency 2005-04-16 11:43:16 +00:00
Michael Brown e29be5e342 Speed up PCI bus scanning by skipping fns 1-7 if fn 0 is not present. 2005-04-16 11:42:56 +00:00
Michael Brown 6e5a3858bf Read number of PCI buses returned by BIOS so that we can scan more
quickly.
2005-04-16 11:16:31 +00:00
Michael Brown e1a9798af4 Improved debugging output 2005-04-16 10:19:13 +00:00
Michael Brown ed7b9109be Made debug messages more consistent. 2005-04-16 10:04:56 +00:00
Michael Brown 211a607147 Improved debug messages.
Prevented find_pci_device() from being an endless loop.
2005-04-16 09:57:19 +00:00
Michael Brown 25d82dac7a CONFIG_PCI_DIRECT no longer exists 2005-04-16 09:35:42 +00:00
Michael Brown f25383f4c4 Add ISA_PROBE_ADDRS list. 2005-04-16 09:35:17 +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 a60aadf9e9 Improve debug message legibility. 2005-04-15 17:09:47 +00:00
Michael Brown f04b9cd3ea Leave some time to see what's going on. 2005-04-15 17:06:54 +00:00
Michael Brown 8aa3b9d972 Need to do isolation when find_isapnp_device is first called,
otherwise isapnp_max_csn is zero and we never call fill_isapnp_device.

Fix debug message.
2005-04-15 17:03:39 +00:00
Michael Brown c41e89af41 Fixed debug message 2005-04-15 16:58:08 +00:00
Michael Brown 39cb4d8dbb Fix debug message 2005-04-15 16:56:18 +00:00
Michael Brown 2c2154b169 Now compiles. 2005-04-15 16:52:28 +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 e6e43a2f2f We now correctly use logical devices. 2005-04-15 15:37:39 +00:00
Michael Brown 8e375c638d Canonicalised tag names 2005-04-15 15:20:00 +00:00
Michael Brown 05986a848f Move the concept of logical devices inside the struct isapnp_device. 2005-04-15 15:16:03 +00:00
Michael Brown d11ea1e44b Added debugging messages for activation/deactivation of logical devices. 2005-04-15 14:31:08 +00:00
Michael Brown 888277d2d1 Read current ioaddr and irqno from PnP registers. 2005-04-15 14:27:49 +00:00
Michael Brown ab443ba4b0 Don't verify checksum except after serial isolation 2005-04-15 13:54:44 +00:00
Michael Brown 120192e8d1 Reduce binary size by factoring out common parameterised calls to
udelay().
2005-04-15 13:18:54 +00:00
Michael Brown 85dd4fd8d6 Activation code now generalised as well. 2005-04-15 13:07:25 +00:00
Michael Brown 1980018b8b Cleaned up isolation protocol. 2005-04-15 12:25:17 +00:00
Michael Brown 344ea224b4 Standardised debug message. 2005-04-14 23:43:34 +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 f78fd79c16 Moved core/isapnp.c to drivers/bus/isapnp.c 2005-04-14 22:42:57 +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 773d66e6dc Typo 2005-04-14 19:10:17 +00:00
Michael Brown a80fe976ed Updated to common ISA bus API. 2005-04-14 19:07:53 +00:00
Michael Brown 9eac705dd2 Added a generalised ISA device-probing mechanism. 2005-04-14 18:46:43 +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 2e309f9eec Fix BOOT_DRIVER to assign unique and meaningful name to structure. 2005-04-14 14:30:03 +00:00
Michael Brown 9183f2412e bus header files must include dev.h to get struct dev. 2005-04-14 14:26:28 +00:00
Michael Brown e0a8ee385e Updated to current device API. 2005-04-14 13:49:58 +00:00
Michael Brown 104880ca19 Tweak API to allow separation of bus-scanning and device-probing logic. 2005-04-14 13:44:07 +00:00
Michael Brown ce8dea0dff Separate out bus-scanning and device-probing logic. 2005-04-14 13:33:03 +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 1f26be34b8 Allow for multiple BOOT_DRIVER()s in the same file, provided that they
have different probe functions.
2005-04-14 12:02:19 +00:00
Michael Brown 44c7cc8c12 Standardised debug mechanism in place now. 2005-04-14 11:55:57 +00:00
Michael Brown e44e5c7247 compiler.h is now always included on the command line. 2005-04-14 11:50:26 +00:00
Michael Brown bc85cf756d We need the ISA product ID mask available separately for 3c509.c. 2005-04-14 11:47:30 +00:00
Michael Brown 305daba48a Always include compiler.h.
Add bin/%.rebuild rule to quickly force a rebuild of any file.

Add bin/%.o.dbg rule to build a debugging-enabled version of the object.
2005-04-14 11:45:37 +00:00
Michael Brown dcd573afcb Automatically create DBG() macro based on debug_<object> macro. 2005-04-14 11:35:45 +00:00
Michael Brown 75d864432c Use the magic of common symbols to allow struct dev to effectively grow at
link time to accommodate whatever bus objects are included.
2005-04-14 10:10:54 +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 200b39a645 Extraced from 3c509.c 2005-04-13 12:45:38 +00:00
Michael Brown a4f1a058a4 Add EISA as a bus type. 2005-04-13 12:20:59 +00:00
Michael Brown 4ae83f28f2 Don't use htons, for compatibility with PCI :( 2005-04-13 12:15:14 +00:00
Michael Brown 4ecbc63296 Use __bswap_16, since we're not dealing with quantities to go onto the network. 2005-04-13 12:11:21 +00:00
Michael Brown 5b8e549c83 htons was used in ISAPnP code just due to ISAPnP storing bytes in
reverse order.
2005-04-13 12:06:33 +00:00
Michael Brown 9711f50e20 Created separate isa_ids.h file and a utility function to print out ISA
IDs in a human-readable format.
2005-04-13 12:01:44 +00:00
Michael Brown ac1c0a753d Add MCA devices 2005-04-13 03:00:50 +00:00
Michael Brown 677cda3263 Minor fixups 2005-04-13 03:00:30 +00:00
Michael Brown 1aee4e8001 Extracted from 3c509.c 2005-04-13 02:59:13 +00:00
Michael Brown e27ebad4b2 Whoops 2005-04-13 02:05:43 +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 f16ac2d87e Fix type of dummy_irq() 2005-04-13 01:28:43 +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 6e8878c1fa Avoid compiler warnings. 2005-04-13 00:19:01 +00:00
Michael Brown 266dae4034 Use NIC's connect method. 2005-04-13 00:18:35 +00:00
Michael Brown 17d69d8930 Add mbps and duplex to struct nic, since some drivers (e.g. rtl8139)
can fill them in.
2005-04-13 00:16:42 +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 241fb0f3cd Use dev's print_info method to print standardised information about
the boot device.
2005-04-12 22:44:02 +00:00
Michael Brown 95da907d5f Add print_info method to dev_operations. 2005-04-12 22:43:25 +00:00
Michael Brown c2a21744f6 We now record a pointer to the struct pci_device, since it's carried
around in struct dev anyway.
2005-04-12 22:42:52 +00:00
Michael Brown e1d0cebfa8 Able to at least compile again now. 2005-04-12 19:11:42 +00:00
Michael Brown d9f34bfdfc Add dummy_connect and dummy_irq 2005-04-12 19:11:13 +00:00
Michael Brown 81320fae4b Remove debugging by default 2005-04-12 18:32:20 +00:00
Michael Brown 27a55b514c Updated to new device API. 2005-04-12 18:23:00 +00:00
Michael Brown 1218698e01 Cope with nic.h being included before (or without) dev.h 2005-04-12 18:21:38 +00:00
Michael Brown 122b025293 Include dev.h, since several drivers just include nic.h 2005-04-12 18:15:12 +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 3293c68488 Make adjust_pci_device global, since many drivers call it. 2005-04-12 18:10:57 +00:00
Michael Brown 762fa9a478 Fix up find_pci_device so that it can be used for scanning for devices
*other* than the main boot device.
2005-04-12 18:04:03 +00:00
Michael Brown eb8f730d63 Use pci_{vendor,device}_id instead of just pci_{vendor,device}, to avoid
conflict with pci_device function.
2005-04-12 17:56:23 +00:00
Michael Brown 5c31682674 Tie into new boot device framework. 2005-04-12 16:54:09 +00:00
Michael Brown 1434e8d68d struct nic is now part of struct dev, rather than the other way around.
Tie into new boot device framework.
2005-04-12 16:52:59 +00:00
Michael Brown 31410b1b5d Needs to be updated to new probe logic. 2005-04-12 16:51:26 +00:00
Michael Brown 236a195257 All code related to the device probe logic is ifdeffed 0 out. 2005-04-12 16:49:59 +00:00
Michael Brown bb293ca5c2 Global struct dev is now in main.c 2005-04-12 16:49:11 +00:00
Michael Brown 6f37dc410a print_drivers() is now unified. 2005-04-12 16:48:45 +00:00
Michael Brown daad093c40 Now obsolete. :) 2005-04-12 16:46:57 +00:00