Marty Connor
9b3c4e4d79
Warnings purge: src/arch/i386, src/core/disk.c, ramdisk, autoboot
2007-07-03 16:02:15 -04:00
Michael Brown
045fb24557
Use internal real-mode stack from non-returnable prefixes
2007-06-28 21:56:14 +01:00
Michael Brown
00473f0952
Revert "Move stack to below 0x7c00; leaving it at the default location"
...
This reverts commit 03ca71c38d
.
2007-06-28 21:50:36 +01:00
Michael Brown
03ca71c38d
Move stack to below 0x7c00; leaving it at the default location
...
(0x7ef4) tends to really screw up anything that loads at 0x7c00...
2007-06-28 21:15:47 +01:00
Michael Brown
37127ea90c
Added .nbi as a format.
2007-03-11 00:57:26 +00:00
Michael Brown
520d9c36af
Updated ISAPnP, EISA, MCA and ISA buses to current device model.
...
ISA 3c509 is currently non-functional, although the EISA (3c509-eisa) and
MCA (3c529) variants should build OK.
None of this code is yet tested.
2007-03-10 18:08:33 +00:00
Michael Brown
7d9267561b
Don't call PXENV_STOP_UNDI in the kpxeprefix. This slighy breaks the
...
clean separation between loading and starting, but does mean that more
PXE stacks survive the process.
2007-01-29 15:21:10 +00:00
Michael Brown
b04b0ddc31
.lilo and derived targets (e.g. .iso) now load properly.
2007-01-14 11:50:44 +00:00
Michael Brown
dca369ddc3
Call hide_etherboot() from startup(), rather than requiring the prefix to
...
do it.
2007-01-14 00:53:56 +00:00
Michael Brown
86171c53f4
Damn Broadcom and their damned incorrect assumptions about x86 memory
...
allocation.
2007-01-13 01:48:12 +00:00
Michael Brown
fdc97499bf
Add device description fields to struct device.
2007-01-10 15:27:48 +00:00
Michael Brown
a2be828a33
Avoid leaving preloaded_undi with invalid PXENV+/!PXE structure
...
addresses if the signature checks fail.
2007-01-09 02:52:28 +00:00
Michael Brown
697bcc9d24
Since we now always unload the base code stack (even if we keep UNDI),
...
we can never return to the PXE stack and must always use INT 18.
2007-01-09 02:46:58 +00:00
Michael Brown
2436dac281
Populate preloaded_undi device when applicable.
2007-01-09 02:29:54 +00:00
Michael Brown
47222d5ed8
Call PXENV_UNDI_GET_NIC_TYPE to identify NIC physical device.
...
Record all information required for populating a struct undi_device.
Make debugging output more human-readable.
2007-01-09 01:42:28 +00:00
Michael Brown
fbdebac5f4
Copy pxelinux's shutdown sequence: use UNLOAD_STACK without STOP_BASE,
...
and call UNDI_SHUTDOWN first to make sure the NIC is in a safe state.
2007-01-08 05:06:26 +00:00
Michael Brown
8f8af10b22
New strategy: always stop both base code and UNDI. Always free base code
...
memory (unless we get an error while stopping the base code). Leave UNDI
resident (though stopped) for .kpxe.
Still need to add code to record the device identification parameters
prior to stopping UNDI.
2007-01-08 03:48:26 +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
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
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
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
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
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
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
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
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
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
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
cdf1511d3e
Prefix semantics have changed
2006-03-16 19:28:38 +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
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
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
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
e44e5c7247
compiler.h is now always included on the command line.
2005-04-14 11:50:26 +00:00
Michael Brown
3714946709
arch_rm_main no longer exists.
2005-04-10 18:19:59 +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
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
0ff80b477d
Merged mcb30-realmode-redesign back to HEAD
2005-04-08 15:01:17 +00:00
Michael Brown
afff2b50f1
Obsolete; not referenced by anything.
2005-03-09 14:16:01 +00:00