Michael Brown
1949641d10
Fix compiler warnings that appear only on OpenBSD.
17 jaren geleden
Michael Brown
755cb8379d
Allow space for the kernel's real-mode .bss. Previously we weren't
allowing any space for this, which makes it surprising that bzImage
loading ever worked.
17 jaren geleden
Michael Brown
56550e400e
Redefine bzimage_exec_context::mem_limit to be the highest permissible
byte, rather than the number of permissible bytes (i.e. subtract one
from the value under the previous definition to get the value under
the new definition).
This avoids integer overflow on 64-bit kernels, where
bzhdr.initrd_addr_max may be 0xffffffffffffffff; under the old
behaviour we set mem_limit equal to initrd_addr_max+1, which meant it
ended up as zero. Kernel loads would fail with ENOBUFS.
17 jaren geleden
Michael Brown
688bac1656
Place multiboot command lines in base memory; Xen won't pick them up
otherwise. :(
17 jaren geleden
Michael Brown
d4947c05b2
Allow images to hold references to the originating URI.
Some shuffling around of the image management code; this needs tidying up.
17 jaren geleden
Michael Brown
9fd6a0418f
Allowed zero-cost enforced ordering of features in startup banner
list.
Added FEATURE() macros to most relevant (non-driver) files.
17 jaren geleden
Michael Brown
726e366e8f
Add code for constructing single-file cpio archives on the fly
17 jaren geleden
Michael Brown
24f32a1945
Initrd concatenation now working
17 jaren geleden
Michael Brown
c5d9114064
Allow loading of multiple initramfs images.
17 jaren geleden
Michael Brown
5e26df0325
Centralise construction of the DHCP request and response packets.
17 jaren geleden
Holger Lubitz
9a4790667a
make multiboot_load static
17 jaren geleden
Holger Lubitz
dc38303ff9
make nbi_load static
17 jaren geleden
Holger Lubitz
5ec4e2ad50
make eltorito_load static
17 jaren geleden
Michael Brown
d5e39286f7
We probably shouldn't leave interrupts disabled when starting an OS.
17 jaren geleden
Michael Brown
07e11f8af9
Minor debug improvement
17 jaren geleden
Michael Brown
6d2e4e719c
Move uninitialised .data16 variables to .bss16; saves around 2000
bytes of useless zeroes in the final image.
17 jaren geleden
Michael Brown
89349d7fad
Separated out initialisation functions from startup/shutdown functions.
17 jaren geleden
Michael Brown
071356d976
Ensure that pxe_netdev is set before starting up PXE NBP.
17 jaren geleden
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 jaren geleden
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 jaren geleden
Michael Brown
e1646b4080
Place the actual version string in .data16, rather than just the
pointer to it.
17 jaren geleden
Michael Brown
8130443f9f
Separate out pxe_start_nbp() from pxe_image.c into pxe_call.c
Implement PXENV_RESTART_TFTP.
17 jaren geleden
Michael Brown
d71b116f54
Fix stack on return from PXE NBP so that we can return properly.
17 jaren geleden
Michael Brown
0d9b3e2dd2
Add 32-bit support.
Generate DHCP data block for images.
17 jaren geleden
Michael Brown
160e66dbb9
Typo
17 jaren geleden
Michael Brown
5578d3b2de
Support 32-bit (linear) NBI images. We don't yet provide a bootp data
block, so first32.c dies immediately.
17 jaren geleden
Michael Brown
2cf1e33df1
Split bootsector execution code out into bootsector.c.
Added basic El Torito ISO image boot capability
17 jaren geleden
Michael Brown
6a765fdc15
Use base "0" in strtoul for consistency with "mem="
17 jaren geleden
Michael Brown
99cb46943f
"vga=" is specified in decimal, not hex.
17 jaren geleden
Michael Brown
ebb00e032c
Misread the definition of the type_of_loader field; it should include a
version.
17 jaren geleden
Michael Brown
a5f6408d8e
We can now load an initrd as well as a kernel
17 jaren geleden
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.
17 jaren geleden
Michael Brown
10c9b03cdb
Actually, the initrd image should be architecture-independent.
17 jaren geleden
Michael Brown
f92e04dea4
Add dummy "initrd" image format, just so that images can be marked as
initrds.
17 jaren geleden
Michael Brown
8a490146bf
Copy command line at execution time rather than load time.
Parse command line for "vga=" and "mem=" parameters
17 jaren geleden
Michael Brown
3ccd7335f0
Split bzimage_load into separate functions
17 jaren geleden
Michael Brown
97a3037f76
Can start a Linux kernel directly (albeit with no initrd support)
17 jaren geleden
Michael Brown
784e10635a
Can almost start a kernel now. It dies with "No setup signature found"
17 jaren geleden
Michael Brown
b07161f397
Placeholder bzImage support
17 jaren geleden
Michael Brown
797edf28b7
Replace image->entry with image->priv.
17 jaren geleden
Michael Brown
3bdbfe1f00
Mostly updated. Won't work yet.
17 jaren geleden
Michael Brown
7bc03d37a2
Select a PXE network device before starting PXE NBP.
Move pxe_boot() code to pxe_image.c
17 jaren geleden
Michael Brown
55e6d7b70c
Use debug autocolourisation.
Shut down before jumping to the multiboot image.
17 jaren geleden
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.
17 jaren geleden
Michael Brown
bcd6ca3291
Place multiboot tables in base memory; at least some OSes won't see it
if we don't.
17 jaren geleden
Michael Brown
0f29e0e46e
Ensure multiboot modules are in ascending order of memory start
address, to work around OS bugs.
17 jaren geleden
Michael Brown
53e948bba8
Fix the memory map.
17 jaren geleden
Michael Brown
6fdc6c81a6
Force probing of multiboot before ELF.
17 jaren geleden
Michael Brown
9debfed07a
Place command-line inline, to save on memory allocation hassles.
17 jaren geleden
Michael Brown
1d313234b3
Rename copy_user() to memcpy_user(). Add memmove_user() and
userptr_add().
17 jaren geleden