| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\ |
|
| |
| |
| |
| | |
Minor bugfix: 4 x 2 = 8, not 16
|
| |
| |
| |
| |
| |
| | |
When PMM is used, the gPXE image source will no longer be in base memory.
Decompression of .text16 and .data16 can therefore no longer be done in
real mode.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use BBS installation check to see if we need to hook INT19 even on a PnP
BIOS.
Verify that $PnP signature is paragraph-aligned; bochs/qemu BIOS provides
a dummy $PnP signature with no valid entry point, and deliberately
unaligns the signature to indicate that it is not properly valid.
Print message if INT19 is hooked.
Attempt to use PMM even if BBS check failed.
|
| |
| |
| |
| |
| | |
Move the printing functions from pxeprefix.S into libprefix.S, so they
are available for debug from any prefix.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ROM initialisation vector now attempts to allocate a 2MB block using
PMM. If successful, it copies the ROM image to this block, then
shrinks the ROM image to allow for more option ROMs. If unsuccessful,
it leaves the ROM as-is.
ROM BEV now attempts to return to the BIOS, resorting to INT 18 only
if the BIOS stack has been corrupted.
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| | |
This also fixes a bug in rdtsc_currticks when the result did not fix in %eax
Signed-off-by: Alexey Zaytsev <zaytsev.a@protei.ru>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Replace a printf with a DBG in timer_rtdsc.c
Replace a printf in timer.c with assert
Return proper error codes from timer drivers
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Timer subsystem initialization code in core/timer.c
Split the BIOS and RTDSC timer drivers from i386_timer.c
Split arch/i386/firmware/pcbios/bios.c into the RTSDC
timer driver and arch/i386/core/nap.c
Split the headers properly:
include/unistd.h - delay functions to be used by the
gPXE core and drivers.
include/gpxe/timer.h - the fimer subsystem interface
to be used by the timer drivers
and currticks() to be used by
the code gPXE subsystems.
include/latch.h - removed
include/timer.h - scheduled for removal. Some driver
are using currticks, which is
only for core subsystems.
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
|
|/
|
|
|
|
|
|
| |
This allows pxelinux to execute arbitrary gPXE commands. This is
remarkably unsafe (not least because some of the commands will assume
full ownership of memory and do nasty things like edit the e820 map
underneath the calling pxelinux), but it does allow access to the
"sanboot" command.
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Since we don't know what the UNDI code does, it is safest to
save/restore %eflags even though the lower half of %eflags is
automatically saved by the interrupt itself.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As written, if the if the UNDI ISR call clobbers the upper halves of
any of the GPRs (which by convention it is permitted to do, and by
paranoia should be expected to do) then nothing in the interrupt
handler will recover the state.
Additionally, save/restore %fs and %gs out of sheer paranoia - it's a
cheap enough operation, and may prevent problems due to poorly written
UNDI stacks.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As written, if the if the UNDI ISR call clobbers the upper halves of
any of the GPRs (which by convention it is permitted to do, and by
paranoia should be expected to do) then nothing in the interrupt
handler will recover the state.
Additionally, save/restore %fs and %gs out of sheer paranoia - it's a
cheap enough operation, and may prevent problems due to poorly written
UNDI stacks.
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
| |
_textdata_link_addr, _load_addr and _max_align in the linker scripts.
A bug in some versions of ld causes segfaults if the DEFINED() macro
is used in a linker script *and* the -Map option to ld is present.
We don't currently need to override any of these values; if we need to
do so in future then the solution will probably be to always specify
the values on the ld command line, and have the linker script not
define them at all.
|
| |
|
| |
|
|
|
|
| |
implemented smbios_get_uuid().
|
|
|
|
| |
potentially exorbitant amounts of stack space.
|
| |
|
|
|
|
|
| |
allowing any space for this, which makes it surprising that bzImage
loading ever worked.
|
| |
|
|
|
|
|
|
|
|
|
| |
memory map. (We achieve this by setting CF on the last entry if it is
zero-length; this avoids the need to look ahead to see at each entry
if the *next* entry would be both the last entry and zero-length).
This fixes the "0kB base memory" error message upon starting Windows
2003 on a SunFire X2100.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
confusing to read the code.
|
|
|
|
| |
stack; it breaks vmxassist.
|
|
|
|
| |
outside of librm.S.
|
| |
|
|
|
|
|
| |
work around limitations in real-mode virtualisation support on Intel
VT-capable chips.
|
|
|
|
|
| |
Added redundant call to get_memmap() in int13_boot() immediately
before jumping to boot sector, to assist in debugging.
|
| |
|
| |
|
|
|
|
| |
require that we use drive 0x80, so it should probably be the default.
|
| |
|
| |
|
|
|
|
| |
otherwise. :(
|
|
|
|
| |
Some shuffling around of the image management code; this needs tidying up.
|
|
|
|
|
|
| |
list.
Added FEATURE() macros to most relevant (non-driver) files.
|
| |
|
|
|
|
| |
options are in main makefile now
|
| |
|
| |
|
| |
|