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