david/ipxe
Archived
1
0
Commit Graph

4889 Commits

Author SHA1 Message Date
Michael Brown
3ae7a3d1f0 NMB packets are so similar to DNS packets; we may as well add NMB as a
name resolution method.
2005-05-01 11:10:17 +00:00
Michael Brown
e1d6f3a8ac Add NMB_RESOLVER 2005-05-01 10:58:49 +00:00
Michael Brown
89f4fe4a8a Do not include etherboot.h 2005-05-01 10:40:12 +00:00
Michael Brown
552f33c663 Always request DNS server. DHCP handling will be generalised in future. 2005-04-30 19:39:50 +00:00
Michael Brown
138c987738 Straightforward A record resolution now known working. 2005-04-30 19:38:51 +00:00
Michael Brown
3b59bf559c ttl is a uint32_t 2005-04-30 19:38:31 +00:00
Michael Brown
78cdb1da8b DNS resolver rewritten, moved to proto/dns.c 2005-04-30 14:50:33 +00:00
Michael Brown
d817e60d21 "dns_resolver" changed to "dns" 2005-04-30 14:49:41 +00:00
Michael Brown
167c26c92b tftp functions moved to proto/tftp.c 2005-04-30 14:46:49 +00:00
Michael Brown
5f45f14b5f tftp moved to separate file. 2005-04-30 14:46:18 +00:00
Michael Brown
06634dc386 Protocols get passed a pointer to the filename portion as well as just the
URL.
2005-04-30 14:45:51 +00:00
Michael Brown
5bec933c66 tftp prototypes moved to tftp.h 2005-04-30 14:45:33 +00:00
Michael Brown
95946c6f56 Added "proto" directory 2005-04-30 14:45:09 +00:00
Michael Brown
1644238813 Added debugging. 2005-04-30 14:41:37 +00:00
Michael Brown
6cd0fa5807 Added DNS resolver configuration option. 2005-04-30 14:39:21 +00:00
Michael Brown
0780ecf1b6 TFTP API changed. 2005-04-30 14:27:17 +00:00
Michael Brown
56825df041 loadkernel renamed to download_url, substantially restructured, and moved
to nic.c
2005-04-30 13:52:27 +00:00
Michael Brown
e68378fd62 loadkernel renamed to download_url and moved to nic.c 2005-04-30 13:51:49 +00:00
Michael Brown
332b40b986 loadkernel no longer exists; it is now download_url and lives in nic.c. 2005-04-30 13:51:18 +00:00
Michael Brown
903ddd9878 inet_aton doesn't overwrite the IP address unless it is valid. 2005-04-30 13:50:34 +00:00
Michael Brown
55ae308821 Protocols also take a pointer to a sockaddr_in. 2005-04-30 13:50:01 +00:00
Michael Brown
00b78f73a4 Use struct in_addr rather than just "in_addr".
Add struct sockaddr_in.
2005-04-30 13:49:28 +00:00
Michael Brown
70567c51a2 Moved strtoul prototype into stdlib.h for consistency 2005-04-30 13:48:48 +00:00
Michael Brown
044b20385b parse_url() is void. 2005-04-30 13:24:26 +00:00
Michael Brown
65dc273d78 First version 2005-04-29 13:26:31 +00:00
Michael Brown
e4131ebb84 First version 2005-04-29 13:17:25 +00:00
Michael Brown
754cef922d First version 2005-04-28 13:47:36 +00:00
Michael Brown
c1253d2219 Much, much smaller. :) 2005-04-28 13:20:02 +00:00
Michael Brown
6791aeb024 First version: far too large (408 bytes!!!) 2005-04-28 12:12:11 +00:00
Michael Brown
282b6f1a1a isa.c uses the new table infrastructure. 2005-04-27 12:24:38 +00:00
Michael Brown
f37e0a06d7 dev.c uses the new tables infrastructure. 2005-04-27 12:20:54 +00:00
Michael Brown
c08671e5fc Missing include 2005-04-27 12:17:09 +00:00
Michael Brown
b9e72856b6 Post-relocation functions use the generic table mechanism. 2005-04-27 12:10:24 +00:00
Michael Brown
d2d4978f4f Use PREFIX_OBJECT to give the init_fn table variables meaningful names. 2005-04-27 12:08:52 +00:00
Michael Brown
c8fc121890 Special handling for symbols of the form "xxx_end", to make table end
markers appear before the symbols that immediately follow the table.
2005-04-27 12:08:13 +00:00
Michael Brown
1ddcdb0524 Added PREFIX_OBJECT() function to be able to easily prepend any string
to the object name in order to generate e.g. per-file variables.
2005-04-27 11:59:37 +00:00
Michael Brown
3e5bf5fb06 console.c uses the generic table mechanism 2005-04-27 11:38:43 +00:00
Michael Brown
69f09ebdd8 Linker no longer provides start and end symbols for each table; these
markers are now static labels within the objects that refer to them.
2005-04-27 11:27:38 +00:00
Michael Brown
241f426a85 Use new generic tables infrastructure 2005-04-27 11:25:21 +00:00
Michael Brown
b9c9cee8a3 Added a generalised table infrastructure, so that we don't have to
keep adding new tables to each architecture's linker scripts.
2005-04-27 11:22:46 +00:00
Michael Brown
81e4755106 Produce a sorted list of all local symbols in the map file. 2005-04-27 10:55:12 +00:00
Michael Brown
d6930e6e40 Use symbol size as a third index, mainly so that zero-length symbols
(e.g. section start indicators) show up before the symbols they're
indicating the start of.
2005-04-27 10:54:33 +00:00
Michael Brown
ac01cf4997 First version 2005-04-27 10:40:59 +00:00
Michael Brown
fda36a0c1a Added back in the actual call to load(). 2005-04-26 17:12:07 +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
3a7967a38a PCI_DRIVER changed 2005-04-26 12:20:05 +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
fcee25024f BIOS floppy handling code moved to where it will really live. 2005-04-25 19:29:55 +00:00
Michael Brown
10b7b1a61f Added arch/i386/drivers/disk 2005-04-25 19:29:02 +00:00
Michael Brown
f5dde85e16 Improved debug messages 2005-04-25 19:28:49 +00:00
Michael Brown
8cd0693396 s/{name,describe}/{name,describe}_device/ 2005-04-25 19:27:53 +00:00
Michael Brown
3b14360f5c Renamed describe to describe_device for consistency 2005-04-25 19:27:25 +00:00
Michael Brown
99b857559b Added "name" field to struct bus_driver 2005-04-25 19:26:33 +00:00
Michael Brown
d281996ef8 Added DBG2 2005-04-25 19:25:45 +00:00
Michael Brown
5bace628ae Added "name" field to bus structure. 2005-04-25 18:54:15 +00:00
Michael Brown
f972f256e6 Allow for multiple debug levels 2005-04-25 16:28:07 +00:00
Michael Brown
698f86f25a Prevent hundreds of errors from "make symcheck". The prefix exit path
mechanism has changed anyway, and so must be rewritten, but at least doing
this makes the output of "make symcheck" more legible.
2005-04-23 14:57:53 +00:00
Michael Brown
d94cb57143 Fixed to properly catch multiply defined symbols. 2005-04-23 14:54:30 +00:00
Michael Brown
9dc7ebc152 Symbol errors caught by symcheck.pl 2005-04-23 14:45:37 +00:00
Michael Brown
2da3b7a38f Added "make symcheck" 2005-04-23 14:41:38 +00:00
Michael Brown
4e5f10790b First working version 2005-04-23 14:41:15 +00:00
Michael Brown
e59607bcb1 Should be an <= comparison, not a < comparison.
(Detected using "make symcheck" :)
2005-04-23 14:34:00 +00:00
Michael Brown
dbea213c27 Coerced into compiling. 2005-04-22 16:40:10 +00:00
Michael Brown
db0e056abd Make it easier to comment out individual SRC directories when things
are broken...  :)
2005-04-22 16:36:44 +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
84f43ea9cf isapnp_read_port can be set directly, rather than via a function call. 2005-04-22 16:03:25 +00:00
Michael Brown
b18e419a81 Updated debug messages 2005-04-22 16:02:12 +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
db3a44b66d Debug message fixes. 2005-04-22 15:56:57 +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
441ee4f8f3 Need to leave structure zeroed 2005-04-22 15:33:35 +00:00
Michael Brown
8af80c6b10 disable() is a void 2005-04-22 12:07:22 +00:00
Michael Brown
feb652709d Must not go beyond end of driver's probe list. 2005-04-22 12:02:34 +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
1e156f537b Consistency 2005-04-22 11:56:27 +00:00
Michael Brown
0e2dc7aa8e Updated to new device API. 2005-04-22 11:29:40 +00:00
Michael Brown
3e8c2aa78b Fix up fill_mca_nic. 2005-04-22 02:47:39 +00:00
Michael Brown
97346a75f7 Added friendly enable/disable functions 2005-04-22 02:43:24 +00:00
Michael Brown
924143661a Updated all common buses to new API. 2005-04-22 02:28:16 +00:00
Michael Brown
4e3ebba8e6 Revert debug message prefix back to none, since we sometimes want to use
DBG() several times to build up a line.
2005-04-22 02:27:59 +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
8153a0fa7e Made macros more like the previous driver API, to minimise required
changes.
2005-04-21 18:30:12 +00:00
Michael Brown
98ff29345e Created a bus/device API that allows for the ROM prefix to specify an
initial device, and will also allow for e.g. a device menu to be presented
to the user.
2005-04-21 18:18:29 +00:00
Michael Brown
905ca1f21d Force a standard format upon debug messages. 2005-04-21 18:16:54 +00:00
Michael Brown
c0239ebb03 Typo 2005-04-21 18:15:31 +00:00
Michael Brown
928c388c6f bswap_16() exists; no need to use __bswap_16() 2005-04-21 16:38:28 +00:00
Michael Brown
a95b458660 Trying to create a bus API. 2005-04-20 00:29:12 +00:00
Michael Brown
e74bbaeca0 First versions 2005-04-19 14:17:42 +00:00
Michael Brown
2c7d72e11e Moved floppy.c to i386 arch, since it's i386-specific. 2005-04-18 18:56:18 +00:00
Michael Brown
e3bb65c17f Added remaining bus functions. 2005-04-18 18:54:27 +00:00
Michael Brown
7af89ccf33 Code fixed to operate correctly. 2005-04-18 15:48:20 +00:00
Michael Brown
400fd74897 Extracted from firmware/pcbios/bios.c 2005-04-18 15:39:02 +00:00
Michael Brown
d3ce66a301 Added arch/i386/drivers/bus 2005-04-18 15:37:17 +00:00
Michael Brown
c245ab75ad Moved disk functions to drivers/bus/bios_disks.c 2005-04-18 15:35:39 +00:00
Michael Brown
641596e6ba blib definition moved to Makefile.housekeeping. 2005-04-18 14:40:57 +00:00
Michael Brown
e02c699a05 Fix endianness of dhcp device id structure. 2005-04-18 14:38:51 +00:00
Michael Brown
5abc43a320 "make bin/xxx DEBUG=yyy,zzz" now works seemingly perfectly. :) 2005-04-18 14:16:13 +00:00
Michael Brown
1cdb68d116 "make xxx DEBUG=yyy,zzz" now working, but the "up to date" message is
getting suppressed.  :(
2005-04-18 13:55:57 +00:00
Michael Brown
a245c93417 Be nice to emacs 2005-04-18 12:59:50 +00:00
Michael Brown
9f5aca032c Ignore buildserial-related files. 2005-04-18 12:55:45 +00:00
Michael Brown
435fa2003b Note to self: save files before checking in. 2005-04-18 12:54:27 +00:00
Michael Brown
451ea7ffc5 Added warning about not using Config for single-object options. 2005-04-18 12:53:39 +00:00
Michael Brown
ffe77e0683 This is, of course, the neater and much more obvious way to do it. 2005-04-18 12:45:31 +00:00
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
Michael Brown
0effbefe6f All boot device drivers are now lumped together in boot_drivers 2005-04-12 16:46:15 +00:00
Michael Brown
6343381e25 Matches new pci.c interface. 2005-04-12 16:45:40 +00:00
Michael Brown
5603c879c4 Add INIT_PCIBIOS 2005-04-12 16:45:16 +00:00
Michael Brown
3095881c54 For pci_io.c 2005-04-12 16:44:50 +00:00
Michael Brown
3901d197f7 Replaced main loop with a trivial implementation so that we can try
out the new probing logic.
2005-04-12 16:43:18 +00:00
Michael Brown
17aad49028 16-bit PCI BIOS interface also now known to work. 2005-04-12 16:42:14 +00:00
Michael Brown
45f96a49c7 main.c contains the global struct dev. 2005-04-12 16:39:03 +00:00
Michael Brown
5e807dffe6 Obsoleted by new device probing mechanism. 2005-04-12 16:38:38 +00:00
Michael Brown
17c1ca90e7 New device probing mechanism 2005-04-12 16:38:23 +00:00
Michael Brown
707720c4e5 New PCI scan functions now work. 2005-04-12 16:36:55 +00:00
Michael Brown
bbcdf38214 Improved debug messages 2005-04-12 16:27:27 +00:00
Michael Brown
ff53205d0d Should work for KEEP_IT_REAL as well now. 2005-04-12 13:35:31 +00:00
Michael Brown
0ccaf5bb83 Nearly there... 2005-04-12 13:31:36 +00:00
Michael Brown
67f122c645 Removed pci_find_device_x; it was too ugly to live. 2005-04-12 12:59:21 +00:00
Michael Brown
121e7386f6 New device probing mechanism written, not tested. 2005-04-11 19:19:35 +00:00
Michael Brown
7172d4abfb Moved functions that we want to keep to drivers/bus/pci.c 2005-04-11 13:45:00 +00:00
Michael Brown
2ebc56f334 Moved in functions from old core/pci.c that we want to keep. 2005-04-11 13:43:53 +00:00
Michael Brown
95f755ad7f Renamed pci.c to pci_legacy.c in preparation for new bus managment
infrastructure.
2005-04-11 13:25:41 +00:00
Michael Brown
63a0e0e2df Removed references to no-longer-existent CFLAGS options. 2005-04-11 10:17:00 +00:00
Michael Brown
5d96e5dad9 Changed guard name to avoid clash with INCLUDE_xxx namespace used by
drivers.
2005-04-11 09:58:31 +00:00
Michael Brown
378c1b500c Cleaner separation of functionality between post_reloc and
initialise_via_librm.
2005-04-11 09:24:10 +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
34a0b5f16f initialise() doesn't take regs 2005-04-10 18:39:28 +00:00
Michael Brown
87508aa0b2 arch_initialise() is now sufficiently generic that we may as well just
call it initialise() and place it in main.c.  :)
2005-04-10 18:30:34 +00:00
Michael Brown
997b51c1e6 Use librm_arch_initialise for librm, arch_initialise for others. 2005-04-10 18:22:31 +00:00
Michael Brown
560027899e Heading towards a sane set of control functions 2005-04-10 18:21:53 +00:00
Michael Brown
39cb1b4f9e All the icky stuff is now taken care of by librm_arch_initialise 2005-04-10 18:21:27 +00:00
Michael Brown
d189b84536 Fix up init ordering.
Make init function table name fixed; it's a static variable anyway.
2005-04-10 18:20:38 +00:00
Michael Brown
3714946709 arch_rm_main no longer exists. 2005-04-10 18:19:59 +00:00
Michael Brown
1937b39079 Drag in relocate unless NORELOCATE is defined, since it's now called
only via the initialisation function table.
2005-04-10 18:19:05 +00:00
Michael Brown
f06e8c9707 Added post-relocation function table. 2005-04-10 18:18:37 +00:00
Michael Brown
9abceef561 Removed obsolete initialisation calls. 2005-04-10 18:13:24 +00:00
Michael Brown
070f6c0b6b Fixed debug messages 2005-04-10 16:58:19 +00:00
Michael Brown
43417e6c1b setup16() now calls initialise(); we don't have to do it. 2005-04-10 16:48:04 +00:00
Michael Brown
04682f9838 Setup now calls initialise() directly, rather than expecting the
prefix to do it.
2005-04-10 16:46:46 +00:00
Michael Brown
44e62317be Add librm_base. 2005-04-10 16:44:49 +00:00
Michael Brown
dfb9c44994 hooks.o is now a single object, rather than having separate hooks.o and
hooks_rm.o
2005-04-10 16:44:29 +00:00
Michael Brown
04a99841e6 Make prot_call() able to transparently return via the newly installed copy
of librm.
2005-04-10 15:51:10 +00:00
Michael Brown
44eee81d11 Don't build relocate() under KEEP_IT_REAL 2005-04-09 17:05:35 +00:00
Michael Brown
2fa14f2f1d lgdt needs data32 prefix, otherwise it loads only 24 bits. (sgdt
always saves 32 bits).
2005-04-09 16:42:50 +00:00
Michael Brown
6a4ac358f3 Add INIT_FNs to make sure that librm gets reallocated when needed. 2005-04-09 16:42:07 +00:00
Michael Brown
e29e6456b0 Don't zero freed base memory; one block will contain librm. 2005-04-09 16:14:37 +00:00
Michael Brown
1f6dfd7047 Allow ourselves to be freed by basemem.c without being damaged. 2005-04-09 16:14:09 +00:00
Michael Brown
97ced37c71 Need to provide sizeof(struct free_base_memory_header) to assembly code. 2005-04-09 16:13:19 +00:00
Michael Brown
90cf689810 Note basemem API change. 2005-04-09 15:56:03 +00:00
Michael Brown
ef05051f23 Add INIT_LIBRM before INIT_CONSOLE. 2005-04-09 15:26:38 +00:00
Michael Brown
48feb91a40 Rewritten in a much saner way, now that we don't have to worry about
continually reallocating the real-mode stack.
2005-04-09 15:01:38 +00:00
Michael Brown
0574136c6d Split out from etherboot.h 2005-04-09 15:01:09 +00:00
Michael Brown
8570814148 Removed basemem.c prototypes 2005-04-09 15:00:28 +00:00
Michael Brown
fd95189c4d basememsize() updates the BIOS FBMS counter at 40:13. 2005-04-09 14:16:25 +00:00
Michael Brown
a800e9657d PM function called by prot_call() should be allowed to modifying
registers returned to RM code.
2005-04-09 13:56:33 +00:00
Michael Brown
29f43896aa Add relocate.h
Note that we can't make real-mode calls immediately after relocate_to().
2005-04-09 13:36:55 +00:00
Michael Brown
9cc90cbb07 First version 2005-04-09 13:32:26 +00:00
Michael Brown
c8c7d93757 Relocation code is arch-specific. 2005-04-09 13:28:59 +00:00
Michael Brown
64d3886c1d relocate() is called by arch_initialise(). 2005-04-09 13:23:49 +00:00
Michael Brown
8039086ec8 Added a lot of explanatory comments.
Preserves alignment requested via _max_align parameter to linker.
2005-04-09 13:12:22 +00:00
Michael Brown
19176718be callbacks.h no longer exists 2005-04-09 11:19:14 +00:00
Michael Brown
792f34d228 #ifdef 0 out the UNDI loader routine, since it refers to the obsolete
callback mechanism.
2005-04-09 11:17:29 +00:00
Michael Brown
73dbe41007 Old callbacks mechanism is obsolete. 2005-04-09 11:16:17 +00:00
Michael Brown
fedd00dd46 Removed references to old callback mechanism 2005-04-09 11:15:14 +00:00
Michael Brown
9c32083d56 callbacks.h no longer exists. 2005-04-09 11:12:29 +00:00
Michael Brown
a3faaf405a Callback mechanism now obsolete 2005-04-09 11:11:34 +00:00
Michael Brown
a4920c16bd Moved relocate.c to arch-specific dir, since it involves arch-specific
logic (e.g. avoiding memory regions with A20=0).
2005-04-09 10:49:26 +00:00
Michael Brown
0ff80b477d Merged mcb30-realmode-redesign back to HEAD 2005-04-08 15:01:17 +00:00
Michael Brown
de5d935135 Merged this file into HEAD 2005-03-24 13:54:46 +00:00
Michael Brown
afff2b50f1 Obsolete; not referenced by anything. 2005-03-09 14:16:01 +00:00
Michael Brown
8bb1866f24 lzhuf is obsolete and no longer used 2005-03-09 14:14:01 +00:00
Michael Brown
168973a5d7 Obsolete; not reference by anything. 2005-03-09 14:11:45 +00:00
Michael Brown
6d4d056202 Obsolete; not referenced by anything. 2005-03-09 14:09:29 +00:00
Michael Brown
0ff846a503 unhuf.S is obsolete and no longer used 2005-03-09 14:07:23 +00:00
Michael Brown
10d9f9cec8 Obsolete and no longer used 2005-03-09 14:05:32 +00:00
Michael Brown
8bd447ad1b Add rule to generate 16-bit version of decompressor 2005-03-09 14:04:04 +00:00
Michael Brown
7700b8059c Remove CODE16 as a global define; most files define it themselves
anyway, and I want to be able to use it as a compile-time option for
the i386 decompressor.
2005-03-09 14:02:20 +00:00
Michael Brown
3d6123e69a Initial revision 2005-03-08 18:53:11 +00:00