Michael Brown
4f27994980
Added "image" directory
2005-05-17 13:34:25 +00:00
Michael Brown
6e8f29d3cb
Image formats moved into the new config system
2005-05-17 13:33:49 +00:00
Michael Brown
3bbf5f28a3
Use __unused instead of __used for static data structures.
...
Remove compiler.h defines from osdep.h
2005-05-17 12:16:28 +00:00
Michael Brown
301b2d40f0
Use the heap functions to allocate a load buffer.
2005-05-13 13:30:51 +00:00
Michael Brown
c695c75b01
First version
2005-05-13 13:29:15 +00:00
Michael Brown
5c8ea0b93a
Add realloc, since the load buffer code requires it.
2005-05-13 13:20:16 +00:00
Michael Brown
59a1662978
Added debugging
2005-05-13 11:24:02 +00:00
Michael Brown
42250e9b1a
Tidied up init_heap()
2005-05-13 11:16:14 +00:00
Michael Brown
f0d048bf91
Added ASSERT() macro
2005-05-13 10:18:21 +00:00
Michael Brown
94d512b979
Added old allot/forget calls for backwards compatibility.
2005-05-12 16:38:07 +00:00
Michael Brown
eff4fa5a04
Merged the unaligned and aligned heap APIs and simplified the code.
2005-05-12 16:34:57 +00:00
Michael Brown
a5a14dc05d
Use the global load_buffer, and the boot_image function.
2005-05-09 18:10:04 +00:00
Michael Brown
f649a4d0fd
Add INIT_LOADBUF
2005-05-09 18:04:20 +00:00
Michael Brown
73429d6da1
Make "struct buffer"s reusable between sessions.
2005-05-09 18:03:44 +00:00
Michael Brown
b94def2088
Include string.h, because we need to define copy_{to,from}_phys
2005-05-09 18:03:14 +00:00
Michael Brown
9fc97f8513
First version
2005-05-09 18:02:22 +00:00
Michael Brown
58ee2c4b2e
First versions
2005-05-09 18:01:50 +00:00
Michael Brown
0fe74493f4
Protocols now load data into a buffer; they don't execute it.
2005-05-09 14:27:29 +00:00
Michael Brown
116f17f605
off_t should be signed.
2005-05-09 14:26:25 +00:00
Michael Brown
bab2924e89
Return -1 to indicate buffer overflow. Allow buffer fill level to be read
...
easily from struct buffer.
2005-05-09 14:26:10 +00:00
Michael Brown
a89651f3bb
Added debugging
2005-05-09 13:47:04 +00:00
Michael Brown
b2869ed6b8
Added explanatory comment.
2005-05-09 13:25:43 +00:00
Michael Brown
e75b7480d0
Modified to use physical addresses, and to not assume that we can directly
...
refer to data outside of our data or stack segments.
2005-05-09 13:24:01 +00:00
Michael Brown
e3f2aa7b4d
Add off_t and physaddr_t, and the copy_{to,from}_phys helper routines.
2005-05-09 13:21:56 +00:00
Michael Brown
dc0aa58fb2
Add memcpy
2005-05-09 12:48:00 +00:00
Michael Brown
ef05a27f25
Start of an implementation using doubly-linked lists and virtual
...
addresses. This will have to be reworked to use physical addresses thanks
to the PXE spec.
2005-05-09 10:11:11 +00:00
Michael Brown
462234f373
Make vga_font const to avoid warning about large symbol
2005-05-03 13:17:08 +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
cc73bba7ba
Allow read-only symbols to be large
2005-05-03 12:34:52 +00:00
Michael Brown
24c0498cbc
Move tulip_private structure into shared data.
2005-05-03 12:29:32 +00:00
Michael Brown
7df2857248
Reduce large symbol warning threshold, now that most of the really
...
large symbols have been fixed.
2005-05-03 12:24:52 +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
ff8e46f2f3
#if 0 out the whole file for now; it cannot be linked because the base
...
memory interface has changed.
2005-05-03 11:56:33 +00:00
Michael Brown
0174310f38
Re-add the "etherboot.%" all-drivers image.
2005-05-03 11:51:19 +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
68e90c75b6
Removed spurious semicolon
2005-05-03 09:02:24 +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
35ab3bf808
Report on misuses of shared symbols, and excessively large static symbols.
2005-05-02 15:21:12 +00:00
Michael Brown
734d2e9f2d
First version
2005-05-02 14:43:15 +00:00
Michael Brown
88baf7a383
Tweaked to read more information (including symbol size) from blib.a
2005-05-02 13:49:54 +00:00
Michael Brown
48e40e933f
Add DOWNLOAD_PROTO_XXX options.
2005-05-02 12:45:23 +00:00
Michael Brown
4ed412f1c2
Updated to use new URL parser and new protocol API.
...
Sort of works; the HTTP stuff is fine but the TCP code seems to be
broken; it doesn't ACK the packets and just hands us the retransmitted
packets instead.
2005-05-02 12:10:14 +00:00
Michael Brown
a918abc036
Split TCP code out into proto/tcp.c
2005-05-02 12:07:47 +00:00
Michael Brown
cc980d1c94
Moved DOWNLOAD_PROTO_XXX options to config.h
2005-05-02 11:13:47 +00:00
Michael Brown
f9f1d2c84c
More URL parsing moved into url.c
2005-05-01 23:58:45 +00:00
Michael Brown
d5bf9e71ea
http.h obsoleted (no content)
2005-05-01 23:58:20 +00:00
Michael Brown
f14af3d95c
Protocol structure can now specify the default port.
2005-05-01 23:57:09 +00:00
Michael Brown
63482e4fe9
Made parse_url do more of the processing, to avoid duplicating parts of
...
nic.c in http.c
2005-05-01 19:10:04 +00:00
Michael Brown
17bb10479d
Protocol names are x-slam and x-tftm
2005-05-01 15:50:08 +00:00
Michael Brown
6afffc0771
Updated to protocol API
2005-05-01 15:36:39 +00:00
Michael Brown
5c2e5557f0
Updated to protocol API
2005-05-01 15:26:44 +00:00
Michael Brown
1fdbbaa237
Removed obsolete prototypes.
2005-05-01 15:14:22 +00:00
Michael Brown
3af0af65a0
Updated to new protocol API, made to compile.
2005-05-01 15:08:39 +00:00
Michael Brown
2227a711fd
umountall() handled by nfs.c's reset function
2005-05-01 15:08:19 +00:00
Michael Brown
d727e144c1
nfs prototypes no longer required.
2005-05-01 15:07:55 +00:00
Michael Brown
52b3c8babe
Add INIT_RPC
2005-05-01 15:07:35 +00:00
Michael Brown
85d9eae44e
Moved protocols to proto/
2005-05-01 14:04:11 +00:00
Michael Brown
0cfcd91558
Abort immediately if no nameserver is present.
2005-05-01 13:59:34 +00:00
Michael Brown
bcedad4708
Add debugging for CNAME records.
...
Allow routines to be called by nmb.c
2005-05-01 11:30:26 +00:00
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