Michael Brown
477a70697a
Added PnP BIOS scanning code, separated out from the UNDI driver
2007-01-05 16:10:03 +00:00
Marty Connor
7dee2556f4
Fixed typo
2007-01-05 16:09:47 +00:00
Michael Brown
9780fef360
Partial implementation of UNDI loader caller.
2007-01-05 03:24:39 +00:00
Michael Brown
0638945c7e
Add PXE driver-scanning code, capable of locating all PXE ROMs in a system
...
and matching them up to (e.g. PCI) devices.
2007-01-05 01:52:06 +00:00
Michael Brown
ef50ea0b2b
Renamed undi_net.c to undi.c.
2007-01-04 19:43:35 +00:00
Michael Brown
6cf488dcf7
Obsolete; net driver functionality is now in undi_net.c and bus driver
...
functionality is now in pxebus.c. (Not all bus functionality is ported
across yet.)
2007-01-04 19:42:05 +00:00
Michael Brown
7e07dfb2f4
Added PXE bus driver (with support only for using PXE structures found
...
lying about in memory, not for loading from ROM), and UNDI net driver.
2007-01-04 19:38:34 +00:00
Michael Brown
e28db95de6
Obsolete
2007-01-04 19:37:31 +00:00
Michael Brown
70acce06e4
This file is no longer used
2007-01-04 19:36:31 +00:00
Michael Brown
b12cd68726
Ripped out everything except the ability to send EOI to the PIC.
2007-01-04 19:36:18 +00:00
Michael Brown
de2fc50f4c
Add as a separate file so that we can do "make bin/xxxx.kpxe" rather than
...
having to edit PXELOADER_KEEP_ALL as a config option.
2007-01-04 19:35:10 +00:00
Michael Brown
290c5ee779
Don't automatically call gateA20_set() when returning from a real-mode
...
call.
2007-01-04 04:32:18 +00:00
Michael Brown
f58f193633
Engage brain: since when was zero >= 0x80 ?
2006-12-21 05:15:26 +00:00
Michael Brown
9c3b4e5b0b
Some BIOSes return 0xe0 for extended characters. Just assume that
...
anything over 0x80 is an extended character.
2006-12-21 00:07:48 +00:00
Michael Brown
dbb7b30cca
Return ANSI sequences for special keys
2006-12-20 23:42:28 +00:00
Michael Brown
43d976edd0
Prevent NULL from ever pointing to some real code or data. (This was
...
causing the serial console to ignore input, because it happened to end up
linked with serial_ischar() at address 0, which core/console.c decided was
invalid).
2006-12-20 20:28:20 +00:00
Michael Brown
0aa1223264
Optimise bios_putchar for speed(!) by avoiding two separate real-mode
...
calls. This does make a visible difference when clearing the screen with
werase() inside bochs or qemu.
2006-12-19 01:15:05 +00:00
Michael Brown
8b3a4c9862
Add basic ANSI escape sequence support to BIOS console
2006-12-18 01:19:38 +00:00
Michael Brown
8a45f619a9
Fix building on gas versions that don't auto-insert addr32 prefixes
2006-12-12 19:07:18 +00:00
Michael Brown
8bff0f0619
Avoid draining the keyboard buffer during gateA20_set(). It shouldn't
...
technically be necessary, because the "enable A20" command requires
only that the keyboard controller is ready to accept input (i.e. that
its input buffer is empty), and shouldn't also require that the
keyboard is ready to send output (i.e. that its output buffer is also
empty). See http://www.smsc.com/main/tools/io-bios/42i.pdf section
3.1 ("Command Invocation") for a justification.
gateA20_set() is called on every real-mode transition (in case some
idiot piece of external code such as Intel's PXE stack decided it
would be fun to re-disable A20), so draining the keyboard buffer means
that we end up losing keypresses on some systems. In particular, this
makes typing at the command line almost impossible, and causes
Etherboot to ignore Ctrl-Alt-Del.
We should really implement a gateA20_test() function to verify that
gate A20 has been correctly enabled, and think about adding other
commonly-used methods such as Fast Gate A20.
2006-12-05 09:45:39 +00:00
Michael Brown
88e38fa148
We don't actually have a stdio.h header file. Our printf() functions are
...
defined in vsprintf.h. (This may change, since vsprintf.h is a
non-standard name, but for now it's the one to use.)
There should be no need to include vsprintf.h just for DBG() statements,
since include/compiler.h forces it in for a debug build anyway.
2006-09-27 10:58:14 +00:00
Marty Connor
6ac78f6aff
added stdio.h to includes for DBG compilation
2006-09-27 05:57:06 +00:00
Marty Connor
c4964c3e3a
fix args to _disable routine
2006-09-19 15:01:16 +00:00
Marty Connor
56a3ff7202
get rid of compile warnings (except intentionally generated ones)
2006-09-14 20:54:05 +00:00
Marty Connor
c30623b739
fix DBG macro unknown variable
2006-09-14 20:34:53 +00:00
Michael Brown
0566ab2a2f
Added geometry-guessing code based on the partition table
2006-09-08 22:22:03 +00:00
Michael Brown
78dd963c1f
Check to see if we've reached the end of the map before attempting to
...
skip past an empty region, otherwise we end up generating an infinitely
long e820 map. (Yes, there *are* real systems that provide e820 maps
with a zero-length region at the end...)
2006-08-31 13:25:45 +00:00
Michael Brown
5a54225aef
Added support for INT 13,15; NTLDR calls it (though it may not
...
actually do anything with the result, since it carried on using us
even when we returned failure).
2006-08-27 01:22:01 +00:00
Michael Brown
40724431e8
Added support for INT 13,15; NTLDR calls it (though it may not
...
actually do anything with the result, since it carried on using us
even when we returned failure).
2006-08-26 23:42:02 +00:00
Michael Brown
19883779ba
Use TEXT16_CODE() rather than manually specifying ".code16" etc, since
...
our manual ".code32" will break a KEEP_IT_REAL build.
2006-08-24 18:43:28 +00:00
Michael Brown
6abfaa153b
Towards making KEEP_IT_REAL work again.
...
Fix bug that caused over-allocation of .text16 and .data16 memory areas
by a factor of 16.
2006-08-24 13:18:05 +00:00
Michael Brown
4afc494b83
Both the !PXE and PXENV+ structures must be paragraph-aligned
2006-08-09 18:22:25 +00:00
Michael Brown
fd07f56f0d
Note to self: learn to count.
2006-08-09 00:56:07 +00:00
Michael Brown
843bcc291d
Added missing __from_text16()s when passing pointers to PXE NBP.
2006-08-09 00:39:21 +00:00
Michael Brown
751ae718bd
pxe_int_1a is needed by pxe_call.c
2006-08-09 00:16:57 +00:00
Michael Brown
18c112d205
Added (not yet tested) PXE API entry point and support functions.
2006-08-08 20:43:33 +00:00
Michael Brown
a0a872f7f1
Updated PXE UDP implementation to use the new Etherboot UDP API.
...
Updated PXE API dispatcher to use copy_{to,from}_user, and moved to
arch/i386 since the implementation is quite architecture-dependent.
(The individual PXE API calls can be largely
architecture-independent.)
2006-08-02 23:08:10 +00:00
Michael Brown
2138db36ca
Add "addr32" required explicitly by older gas.
2006-06-12 01:07:43 +00:00
Michael Brown
df4b503a8c
Added null trap code for debugging. (Must be included by adding
...
--nulltrap to the make target at the moment.)
2006-06-11 01:48:29 +00:00
Michael Brown
476d02051f
Windows Server 2003 sulks if we feed it an empty region in base memory
...
as a result of our memory map editing, so strip out any empty regions.
2006-06-09 12:20:03 +00:00
Michael Brown
6fd1bd0510
Added missing check-in
2006-06-09 10:19:17 +00:00
Michael Brown
17eea9f933
Fix bug with >256 cylinders.
...
Allow our functions to return a non-zero, non-error status (since the
INT 13 Extensions Check has to return the API version in the register
that is otherwise always used for the error code).
Report a non-zero API version from the INT 13 Extensions Check; GRUB
now uses extended reads.
2006-06-08 19:28:08 +00:00
Michael Brown
fdf62528ca
It's astonishing how long really fundamental bugs can survive without
...
being noticed...
2006-06-08 15:06:09 +00:00
Michael Brown
191a906338
Fix some remarkably obvious mistakes in pcidirect.h
2006-06-08 14:57:04 +00:00
Michael Brown
763b7e2ef9
We now have just romprefix, rather than having isaprefix and pciprefix
2006-06-06 15:41:21 +00:00
Michael Brown
ef37f78cbe
Cut out almost all the optional code paths, drastically simplifying the
...
flow of control through this code.
We now always add PCI and PnP headers even for ISA ROMs; there's no harm
in doing so.
UNDI loader is still missing.
2006-06-06 15:33:39 +00:00
Michael Brown
e7eca7b7cb
Code segment may not be writable; create the temporary pointer to the GDT
...
on the stack.
2006-06-06 15:30:28 +00:00
Michael Brown
46253ba618
Calculate _rom_size for the ROM prefix
2006-06-06 15:29:39 +00:00
Michael Brown
35b04b1514
Tidy up comment
2006-05-28 14:40:04 +00:00
Michael Brown
041a04335e
Fixed assembly on old versions of gas
2006-05-28 14:21:29 +00:00
Michael Brown
9f86754f90
Updated to work with libprefix.
2006-05-25 22:04:47 +00:00
Michael Brown
29340d7728
Documented the fact that the prefix can prot_call(main) without
...
worrying about its stack being destroyed during the Etherboot run.
2006-05-25 22:04:17 +00:00
Michael Brown
d82f71efd0
Also hide base memory region from E820 map.
2006-05-25 00:10:58 +00:00
Michael Brown
89da833c5d
init_librm() and prot_call() are now real-mode far calls.
...
install() now calls relocate(), moves the protected-mode code to the new
location, and calls hide_etherboot().
2006-05-25 00:06:45 +00:00
Michael Brown
4d81b48504
Has been obsolete for a while.
2006-05-25 00:04:37 +00:00
Michael Brown
1966945a5d
Update relocate() to work with get_memmap().
...
Change semantics; relocate() now just finds a suitable location; it
doesn't actually perform the relocation itself. Code in libprefix does
the copy in flat real mode.
2006-05-25 00:04:13 +00:00
Michael Brown
f939ff7cb5
Fix printf format warning error
2006-05-25 00:02:27 +00:00
Michael Brown
3bd3c13c7b
Why should pushal/popal put the registers on the stack in a logical
...
order?
2006-05-25 00:01:46 +00:00
Michael Brown
dd75965057
Typo.
2006-05-25 00:00:53 +00:00
Michael Brown
e4f8d6eed7
Add a "count" field to struct memory_map.
2006-05-25 00:00:30 +00:00
Michael Brown
986f6ffff1
Define a struct memory_map with a fixed number of entries, rather than
...
requiring each caller to decide how many entries it wants to permit.
2006-05-24 14:41:27 +00:00
Michael Brown
edcf89e2b0
Remove the automatic segment register save and restore; most users of
...
REAL_CODE() don't need it.
2006-05-24 14:11:36 +00:00
Michael Brown
02cf755f3f
Removed REAL_EXEC(); there is no longer any code using it.
2006-05-24 14:10:15 +00:00
Michael Brown
103aff3ae2
Added potentially required "\n\t" on the end of asm_code_str
2006-05-24 14:06:28 +00:00
Michael Brown
190276a8b6
NBI is due for removal
2006-05-24 13:53:35 +00:00
Michael Brown
52125e158c
Will be replaced with a block-device implementation.
2006-05-24 13:52:46 +00:00
Michael Brown
8110f9b082
Updated to REAL_CODE()
2006-05-24 13:50:40 +00:00
Michael Brown
595f161b51
Updated to REAL_CODE().
...
int13_boot() now does its own segment register save and restore, ready
for the removal of segment register restoration from the libkir
generic code.
2006-05-24 13:48:16 +00:00
Michael Brown
e8550035af
Updated to REAL_CODE()
2006-05-24 13:28:39 +00:00
Michael Brown
c4d688c005
Updated to REAL_CODE().
2006-05-24 13:24:22 +00:00
Michael Brown
04d6005d77
Update to REAL_CODE()
2006-05-24 12:45:50 +00:00
Michael Brown
6631f46999
Updated to REAL_CODE().
2006-05-24 12:32:57 +00:00
Michael Brown
53935e9dc6
Set carry flag before calling INT 15,e801 and INT 15,e820.
...
Ignore carry flag for INT 15,88; the Ralf Brown interrupt list says
that CF is unreliable for this call.
2006-05-24 12:19:16 +00:00
Michael Brown
7a53d07027
Split out REAL_CODE() from REAL_EXEC(), preparatory to removing REAL_EXEC
...
completely.
2006-05-24 09:51:04 +00:00
Michael Brown
83d80d9e79
Remove references to obsoleted REAL_CALL from documentation.
2006-05-24 09:16:48 +00:00
Michael Brown
3b525385af
Removed REAL_FRAGMENT and REAL_CALL, and left just REAL_EXEC (which is
...
the only one we actually use). This allows REAL_EXEC fragments to
contain proper references to constraints (e.g. "%w0"), rather than having
to force the use of specific registers.
Note that the "num_constraints" parameter is now completely obsolete, and
that we can probably reduce the syntax to something like
__asm__ __volatile__ ( REAL_CODE ( "asm statements" )
: output constraints
: input constraints
: clobber );
which would look much more natural, and avoid the need to always specify
a clobber list.
Add userptr_t to libkir.h, to allow it to at least compile.
2006-05-24 09:14:44 +00:00
Michael Brown
77a65075a6
Replaced memsizes.c with smaller memmap.c, taking advantage of __data16,
...
and creating a memory map that's easier to work with than the E820 map.
2006-05-24 01:37:46 +00:00
Michael Brown
5e80847827
Code to install the new E820 mangler (which doesn't require copying
...
down to base memory, since it is now in the base-memory-resident
.text16 section).
2006-05-23 23:47:05 +00:00
Michael Brown
897313007b
Add __{text,data}16_array, since there's no way I can see to make the
...
usual __{text,data}16 trick work with arrays. gcc seems to accept the
__asm__ ( asmlabel ) only after the [] of the array declaration, not
before.
2006-05-23 23:42:45 +00:00
Michael Brown
5ec2b2c251
Cope with regions bigger than 4GB.
...
We now split e820 regions around ourselves, rather than just
truncating the e820 region. This avoids the worst-case scenario of
losing all memory over 4GB.
It's more important to get the memory map right now that we're
expecting to still be loaded when the OS starts in several situations
(e.g. Linux with UNDI driver, any OS with iSCSI/AoE boot, etc.).
2006-05-23 23:33:37 +00:00
Michael Brown
ca2519cea3
Refactored to reduce code size; now down from 1304 to 1105 bytes.
...
Tidied up debug messages; the log now contains one line per INT 13
operation, looking like
INT 13,08 (80): Get drive parameters
INT 13,02 (80): Read: C/H/S 0/47/14 = LBA 0xb9e <-> 1084:0000 (count 106)
2006-05-20 15:33:32 +00:00
Michael Brown
d48d0fb1bb
Add the concept of a "user pointer" (similar to the void __user * in
...
the kernel), which encapsulates the information needed to refer to an
external buffer. Under normal operation, this can just be a void *
equivalent, but under -DKEEP_IT_REAL it would be a segoff_t equivalent.
Use this concept to avoid the need for bounce buffers in int13.c,
which reduces memory usage and opens up the possibility of using
multi-sector reads.
Extend the block-device API and the SCSI block device implementation
to support multi-sector reads.
Update iscsi.c to use user buffers.
Move the obsolete portions of realmode.h to old_realmode.h.
MS-DOS now boots an order of magnitude faster over iSCSI (~10 seconds
from power-up to C:> prompt in bochs).
2006-05-19 15:06:51 +00:00
Michael Brown
0ab92faedb
Use typeof(sizeof(...)) to define a size_t. This stops gcc complaining
...
about format errors for %zX arguments.
2006-05-19 14:51:59 +00:00
Michael Brown
6b6096d28b
Strip down i386 PCI configuration space I/O to the bare minimum. A
...
typical build will now include 880 bytes of PCI support code, compared to
2327 bytes in Etherboot 5.4.
(There is a slight cost of around 5 extra bytes per access to a
non-constant config space address; this should be an overall win.
Driver-specific accesses will usually be to constant addresses, for
which there is no additional cost.)
2006-05-17 01:12:11 +00:00
Michael Brown
15ee09ed10
Restructured PCI subsystem to fit the new device model.
...
Generic PCI code now handles 64-bit BARs correctly when setting
"membase"; drivers should need to call pci_bar_start() only if they want
to use BARs other than the first memory or I/O BAR.
Split rarely-used PCI functions out into pciextra.c.
Core PCI code is now 662 bytes (down from 1308 bytes in Etherboot 5.4).
284 bytes of this saving comes from the pci/pciextra split.
Cosmetic changes to lots of drivers (e.g. vendor_id->vendor in order to
match the names used in Linux).
2006-05-16 15:12:06 +00:00
Michael Brown
fcdab6299c
Missed a reference to heap.h.
2006-05-16 15:01:26 +00:00
Michael Brown
295e11b2b0
Add INT 13,41 (extensions installation check). LILO's MBR now uses
...
linear calls to load the MS-DOS boot sector in my test setup.
2006-05-14 23:46:28 +00:00
Michael Brown
29fb77b0a4
Fix a couple of minor typos.
2006-05-14 18:17:29 +00:00
Michael Brown
6e42cb95bd
Also capture INT 19 as a failure path, to allow for boot sectors that
...
don't conform to BBS (e.g. the one created by mkdosfs).
2006-05-14 14:13:55 +00:00
Michael Brown
4435667a00
Add int13_boot(), to allow booting from INT 13 emulated drives.
2006-05-14 13:44:47 +00:00
Michael Brown
b4f941b257
Specify attributes on .text16.
2006-05-14 13:39:27 +00:00
Michael Brown
2421723a15
Rewrote printf and friends to better support standard C semantics.
2006-05-14 02:51:55 +00:00
Michael Brown
5080668704
Provide access to rm_cs and rm_ds from protected-mode code.
2006-05-13 11:45:31 +00:00
Michael Brown
dc8d429ec6
Provide a global counter for the number of interrupts hooked.
2006-05-13 11:44:53 +00:00
Michael Brown
63499e9cfd
Allow re-entrancy and provide a global counter of the number of
...
interrupts hooked.
2006-05-13 11:44:11 +00:00
Michael Brown
d822b3d4cd
Define BIOS data segment in bios.h
2006-05-13 11:43:07 +00:00
Michael Brown
a27defa483
Add flag definitions.
2006-05-13 11:42:07 +00:00
Michael Brown
d2c22ec9bb
Add INT 13 emulation layer (which provides an interface to gPXE block
...
devices).
2006-05-13 11:41:36 +00:00
Michael Brown
1ad72e0e79
Add 64-bit byte-swapping operations.
2006-05-13 11:40:39 +00:00
Michael Brown
1838b58c3f
Add drivers/block and arch/i386/interface/pcbios
2006-05-13 11:35:29 +00:00
Michael Brown
568cad0ddc
(Redoing check-in lost by SourceForge's failure.)
2006-05-13 11:30:03 +00:00
Michael Brown
847f38f4ac
(Redoing check-in lost by SourceForge's failure.)
...
Add method for hooking real-mode interrupt vectors.
2006-05-13 11:19:06 +00:00
Michael Brown
f7b963da51
(Redoing check-in lost by SourceForge's failure.)
...
Use .text16.data section with "aw" attributes, to avoid section type
conflicts when placing both code and data into .text16.
Add __from_{text16,data16}.
2006-05-13 11:11:55 +00:00
Michael Brown
97d265f8dc
(Redoing check-in lost by SourceForge's failure.)
...
Avoid optimisation errors under -fstrict-aliasing.
2006-05-13 11:10:24 +00:00
Michael Brown
fdb983d473
Preserve the whole of %esp across prot_call(). We have to split this
...
between the low half stored in the static variable rm_sp, and the high
half stored on the prot_call() stack, because:
Just using the stack would screw up when a prot_call()ed routine
executes a real_call(); it would have no way to find the current top of
the RM stack.
Extending rm_sp to rm_esp would not be safe, because the guarantee that
rm_sp must return to the correct value by the time an external
real-mode call returns applies only to %sp, not to %esp.
2006-05-06 19:44:23 +00:00
Michael Brown
f8e087767b
Allow access to variables in .text16 as well as .data16. Chained
...
interrupt vectors, for example, will be easiest to handle if placed in
.text16.
2006-05-06 18:57:31 +00:00
Michael Brown
c10d1aa9d7
Preserve GDT across prot_call().
2006-05-06 18:52:27 +00:00
Michael Brown
dcc1b0054e
This line should not have been checked in
2006-05-04 23:22:42 +00:00
Michael Brown
832807726a
Add infrastructure to support access to .data16 (and .text16) variables
...
from protected-mode code.
Set up %ds to point to .data16 in prot_to_real, so that code specified
via REAL_EXEC() and friends can access variables in .data16.
Move most real-mode librm variables from .text16 to .data16.
2006-05-04 23:14:06 +00:00
Michael Brown
f4429533a6
Added methods for efficiently declaring and accessing variables in
...
.data16. librm will need to supply "char *data16", i.e. the virtual
address of the start of .data16.
2006-05-04 17:00:20 +00:00
Michael Brown
f8f75cef5b
BSS is now zeroed by libprefix (along with the otherwise non-zeroable
...
portions such as the stack) during the installation process.
init_fns() are called from main(). We need to think about initial
control flow some more.
2006-05-02 21:10:45 +00:00
Michael Brown
cc23057b59
Typo
2006-05-02 21:09:29 +00:00
Michael Brown
10c28a51bd
Create two easy-to-use entry points in libprefix: install and
...
install_prealloc. I *think* these will suffice for all the 16-bit
prefixes.
2006-05-02 20:51:07 +00:00
Michael Brown
9e1dd6402d
<name>_size variable is no longer needed, since we don't copy the code.
...
However, it's worth adding a .size directive so that objdump reports the
correct sizes for the code fragments.
2006-05-02 16:38:46 +00:00
Michael Brown
9fcded3d23
Towards a(nother) new real-mode infrastructure, in which we take
...
advantage of the fact that we have to have a permanently-resident block
in base memory.
2006-05-02 15:41:21 +00:00
Michael Brown
8f62b39c03
Move stack out to separate object, so that having a stack doesn't drag in
...
setup.S.
2006-05-02 14:57:48 +00:00
Michael Brown
5463169c1a
Verified as working
2006-05-02 14:04:21 +00:00
Michael Brown
d081d65d48
This should be much more elegant: we use flat real mode for the
...
highmem data, so decompress16 will be able to unpack blocks bigger
than 64kB.
2006-05-01 22:35:19 +00:00
Michael Brown
cc8821a443
Checking in because I don't want to lose this rather neat code for
...
running the decompresser in 16:16 protected mode using the real-mode
stack. However, there's an even simpler way to do it...
2006-05-01 21:26:44 +00:00
Michael Brown
9c9208a132
Put the TCP connection periodic processing in tcp.c, where it belongs.
2006-04-30 02:08:42 +00:00
Michael Brown
352bf1bda2
Move init.h to gpxe/init.h.
2006-04-30 01:08:52 +00:00
Michael Brown
d8e99bf28f
Gave up on adding POSIX errno's as required, and just added (almost) all
...
of them in one go.
EBADIMG has been replaced by ENOEXEC, and EIMGRET by ECANCELED.
2006-04-28 13:44:34 +00:00
Michael Brown
7a82c3eca3
Added missing ssize_t
2006-04-25 12:55:23 +00:00
Michael Brown
832e86246b
gcc is rather over-aggressive about optimising out static data structures
...
even when __atribute__ (( unused )) is correctly set...
2006-04-24 18:31:37 +00:00
Michael Brown
4c4e4de18f
(librm_base-1b) is already an offset; no need to apply OFFSET().
...
Doing so, in fact, seems to expose an assembler bug; (a-b-0) is
apparently not the same as (a-b). Go figure.
2006-04-24 18:29:47 +00:00
Michael Brown
824d6ffa7f
Header rearrangement.
...
I want to get to the point where any header in include/ reflects a
standard user-level header (e.g. a POSIX header), while everything that's
specific to gPXE lives in include/gpxe/. Headers that reflect a Linux
header (e.g. if_ether.h) should also be in include/gpxe/, with the same
name as the Linux header and, preferably, the same names used for the
definitions.
2006-04-24 15:42:49 +00:00
Michael Brown
510ccb2900
Added __constant_memcpy() based on version in Linux's string.h.
...
Added memswap().
2006-04-24 15:25:25 +00:00
Michael Brown
b2909e547d
They can come back when they have someone to support them.
2006-03-17 14:13:09 +00:00
Michael Brown
cdf1511d3e
Prefix semantics have changed
2006-03-16 19:28:38 +00:00
Michael Brown
7e0a7a2e08
Merge from Etherboot 5.4
2006-03-16 18:30:54 +00:00
Michael Brown
9b18017296
Merge from Etherboot 5.4
2006-03-16 18:15:48 +00:00
Michael Brown
bb7394b041
Merge from Etherboot 5.4
2006-03-16 17:59:51 +00:00
Michael Brown
5d28bae0f1
Fix up building with gcc 4.0.1 / gas 2.16.91
2006-01-17 01:47:41 +00:00
Michael Brown
0e494614b5
Some versions of doxygen seem to object to "@ret None" or similar.
2005-05-24 00:11:25 +00:00
Michael Brown
7b423c0988
Fixes for gcc >= 3.2 from Georg Baum
2005-05-23 23:47:54 +00:00
Michael Brown
809933d9f7
Split PXE code into preboot, udp, tftp, undi and loader units.
...
PXE code now compiles without errors (though it won't actually work).
2005-05-23 23:32:56 +00:00
Michael Brown
079b5d5527
Moved pxe_loader.c to pxe_image.c to avoid name clash
2005-05-23 23:05:45 +00:00
Michael Brown
8becf0f65f
Rearranging PXE header files
2005-05-23 22:45:48 +00:00
Michael Brown
d5789ff4a2
Doxygenation
2005-05-20 11:28:27 +00:00
Michael Brown
d3dec7c331
Update to cope with changes in registers.h
2005-05-20 11:23:51 +00:00
Michael Brown
5231b858c9
Don't use anonymous entries in a struct; it seems to aggravate gcc 3.4.3.
2005-05-20 11:22:09 +00:00
Michael Brown
4e87543c74
Synced across updates from Etherboot 5.4 tree
2005-05-19 16:47:19 +00:00
Michael Brown
d0c9183903
Doxygenation
2005-05-19 14:51:37 +00:00
Michael Brown
dd475a9b8c
Add a const to avoid a warning
2005-05-19 13:02:38 +00:00
Michael Brown
783e9ca396
Added doxygen comments and errno values.
2005-05-18 13:22:45 +00:00
Michael Brown
fac5f28d7e
There is no arch/i386/firmware/linuxbios directory
2005-05-18 11:11:57 +00:00
Michael Brown
205a7ad5e0
Moved NBI support to nbi.c, modified to work with new load mechanism
2005-05-17 13:42:20 +00:00
Michael Brown
9c832a6a69
First version
2005-05-17 13:41:00 +00:00
Michael Brown
9a413cfea1
Moved os_regs into start32.S
2005-05-17 13:37:01 +00:00
Michael Brown
a76b9c3f19
Added debug messages
2005-05-17 13:36:12 +00:00
Michael Brown
479fb900a1
Added copy_phys_to_phys
2005-05-17 13:34:57 +00:00
Michael Brown
4f27994980
Added "image" directory
2005-05-17 13:34:25 +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
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
116f17f605
off_t should be signed.
2005-05-09 14:26:25 +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
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
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
3e5bf5fb06
console.c uses the generic table mechanism
2005-04-27 11:38:43 +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
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
5bace628ae
Added "name" field to bus structure.
2005-04-25 18:54:15 +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
dbea213c27
Coerced into compiling.
2005-04-22 16:40:10 +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
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
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
a245c93417
Be nice to emacs
2005-04-18 12:59:50 +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
2c36f5e6c7
Save a few bytes by using naturally-sized ints.
2005-04-18 09:17:27 +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
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
2c2154b169
Now compiles.
2005-04-15 16:52:28 +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
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
0effbefe6f
All boot device drivers are now lumped together in boot_drivers
2005-04-12 16:46:15 +00:00
Michael Brown
3095881c54
For pci_io.c
2005-04-12 16:44:50 +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
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
378c1b500c
Cleaner separation of functionality between post_reloc and
...
initialise_via_librm.
2005-04-11 09:24:10 +00:00