Michael Brown
89349d7fad
Separated out initialisation functions from startup/shutdown functions.
17 anni fa
Michael Brown
071356d976
Ensure that pxe_netdev is set before starting up PXE NBP.
17 anni fa
Michael Brown
e42eba4af4
Use a common base-memory packet buffer for DHCP construction (as used
by PXE and NBI) and UNDI packets (as used by undinet and UNDI).
17 anni fa
Michael Brown
5f17089b14
pxe_netdev now holds a reference to the network device.
Use generic fields in struct device_description rather than assuming
that the struct device * is contained within a pci_device or
isapnp_device; this assumption is broken when using the undionly
driver.
Add PXENV_UNDI_SET_STATION_ADDRESS.
17 anni fa
Michael Brown
e1646b4080
Place the actual version string in .data16, rather than just the
pointer to it.
17 anni fa
Michael Brown
8130443f9f
Separate out pxe_start_nbp() from pxe_image.c into pxe_call.c
Implement PXENV_RESTART_TFTP.
17 anni fa
Michael Brown
d71b116f54
Fix stack on return from PXE NBP so that we can return properly.
17 anni fa
Michael Brown
0d9b3e2dd2
Add 32-bit support.
Generate DHCP data block for images.
17 anni fa
Michael Brown
160e66dbb9
Typo
17 anni fa
Michael Brown
5578d3b2de
Support 32-bit (linear) NBI images. We don't yet provide a bootp data
block, so first32.c dies immediately.
17 anni fa
Michael Brown
2cf1e33df1
Split bootsector execution code out into bootsector.c.
Added basic El Torito ISO image boot capability
18 anni fa
Michael Brown
6a765fdc15
Use base "0" in strtoul for consistency with "mem="
18 anni fa
Michael Brown
99cb46943f
"vga=" is specified in decimal, not hex.
18 anni fa
Michael Brown
ebb00e032c
Misread the definition of the type_of_loader field; it should include a
version.
18 anni fa
Michael Brown
a5f6408d8e
We can now load an initrd as well as a kernel
18 anni fa
Michael Brown
b9f99858ab
Make the getmemsize() prototype available in memsizes.h, for code that
doesn't want to go to the hassle of processing a full memory map.
18 anni fa
Michael Brown
10c9b03cdb
Actually, the initrd image should be architecture-independent.
18 anni fa
Michael Brown
f92e04dea4
Add dummy "initrd" image format, just so that images can be marked as
initrds.
18 anni fa
Michael Brown
8a490146bf
Copy command line at execution time rather than load time.
Parse command line for "vga=" and "mem=" parameters
18 anni fa
Michael Brown
3ccd7335f0
Split bzimage_load into separate functions
18 anni fa
Michael Brown
97a3037f76
Can start a Linux kernel directly (albeit with no initrd support)
18 anni fa
Michael Brown
784e10635a
Can almost start a kernel now. It dies with "No setup signature found"
18 anni fa
Michael Brown
b07161f397
Placeholder bzImage support
18 anni fa
Michael Brown
797edf28b7
Replace image->entry with image->priv.
18 anni fa
Michael Brown
3bdbfe1f00
Mostly updated. Won't work yet.
18 anni fa
Michael Brown
7bc03d37a2
Select a PXE network device before starting PXE NBP.
Move pxe_boot() code to pxe_image.c
18 anni fa
Michael Brown
55e6d7b70c
Use debug autocolourisation.
Shut down before jumping to the multiboot image.
18 anni fa
Michael Brown
f11900a9c6
I prefer IMAGE_XXX to XXX_IMAGE.
Add IMAGE_PXE to use the new image format framework. "kernel pxelinux.0"
now works.
18 anni fa
Michael Brown
bcd6ca3291
Place multiboot tables in base memory; at least some OSes won't see it
if we don't.
18 anni fa
Michael Brown
0f29e0e46e
Ensure multiboot modules are in ascending order of memory start
address, to work around OS bugs.
18 anni fa
Michael Brown
53e948bba8
Fix the memory map.
18 anni fa
Michael Brown
6fdc6c81a6
Force probing of multiboot before ELF.
18 anni fa
Michael Brown
9debfed07a
Place command-line inline, to save on memory allocation hassles.
18 anni fa
Michael Brown
1d313234b3
Rename copy_user() to memcpy_user(). Add memmove_user() and
userptr_add().
18 anni fa
Michael Brown
e4c6418ac0
We may be required to page-align modules, so let's make sure we catch
it if we don't.
18 anni fa
Michael Brown
f59ad50504
Provide registration mechanism for loaded images, so that we can e.g.
refer to them by name from the command line, or build them into a
multiboot module list.
Use setting image->type to disambiguate between "not my image" and "bad
image"; this avoids relying on specific values of the error code.
18 anni fa
Michael Brown
f31d91bce5
Populate multiboot information structure before calling OS.
18 anni fa
Michael Brown
dc51af59a4
Capable of starting a multiboot kernel (albeit without the multiboot
information table yet).
18 anni fa
Michael Brown
d488a172eb
Capable of loading a multiboot image into memory
18 anni fa
Michael Brown
4fc9333159
Move include/image.h to include/gpxe/image.h
18 anni fa
Michael Brown
3634e705b7
Remove osloader.c and replace with a prep_segment() that uses userptr_t
and get_memmap() in image/segment.c
18 anni fa
Michael Brown
e28db95de6
Obsolete
18 anni fa
Michael Brown
190276a8b6
NBI is due for removal
18 anni fa
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.
18 anni fa
Michael Brown
832e86246b
gcc is rather over-aggressive about optimising out static data structures
even when __atribute__ (( unused )) is correctly set...
18 anni fa
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).
19 anni fa
Michael Brown
079b5d5527
Moved pxe_loader.c to pxe_image.c to avoid name clash
19 anni fa
Michael Brown
783e9ca396
Added doxygen comments and errno values.
19 anni fa
Michael Brown
205a7ad5e0
Moved NBI support to nbi.c, modified to work with new load mechanism
19 anni fa