| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Add support for setting a variety of options in isohybrid. Also
change the default partition type to 0x17, "Windows hidden IFS", as
that seems to make Windows less unhappy.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
| |
For debugging reasons it's important to know if we have no flags at
all or if we get flags = 1. Print [-] in the case of no flags at all.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We have historically run the comboot API with interrupts off due to
concerns about stack overflow. However, this is a really bad idea: we
can easily spend a fair bit of time servicing one of these routines,
especially when doing things like waiting for I/O.
In particular, do_idle should *never* be run with interrupts disabled.
Switch to running with interrupts enabled everywhere unless we have
specific reasons not to do so.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drop the read of the IIR when reading the serial port. First of all,
we weren't protecting AL so we clobbered the actual data; second of
all, this isn't actually necessary as reading RDR will clear the
interrupt condition per the UART spec.
It's worth noting that enabling interrupts here will do bad things if
the interrupts aren't edge-triggered (since we don't actually have an
interrupt routine to clear the interrupt condition); this also means
bad things will happen if the interrupt line is shared.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
In check_for_arp, we dropped the segment register pushes, but we need
to drop the pops, too.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Try to HLT the processor during idle. All the events we care about
should have interrupts associated with them, except possibly the
serial console. Try to deal with the serial console by waiting some
time before going into HLT, and giving the user the option of enabling
the serial console interrupt, on the assumption that the BIOS will
simply IRET.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
Remove a couple of 16-bitisms in the bcopy code, since it is now
running in perfectly ordinary 32-bit mode. In particular,
prefer 32-bit registers to 16-bit registers, and drop "a32" prefixes
(which do nothing.)
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
The alignment logic for reverse moves is reversed, because the initial
edi, and therefore edx, points to the last byte, not to one byte
beyond the end. Therefore, in the fully aligned case it will end in
11 binary, not in 00 binary as for the forward case.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix a half-entered command line when getting clobbered when pressing
an F key that in turn invokes an LSS graphic. This was used by
duplexing the command line buffer as LSS decompression space.
Allocate a separate buffer, but move the legacy graphic variables to
.bss2 to avoid overflow.
Reported-by: Михаил <from.miha@gmail.com>
Debugged-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
The BOOT_IMAGE= argument is generated by replacing the kernel name in
the argument array. As a result, we shouldn't advance argp. Move the
code around slightly, to make it more obvious that that is what is
happening.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Honor the "quiet" flag for linux.c32, since some distros have odd
notions about these things.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
We already have the EDX register pointing to the GDT, so recomputing
the address of the GDT is completely pointless. This shaves an
additional few bytes off the bcopyxx safe area (now down to 543 bytes
including the 128-byte stack and the 15-byte alignment slop.)
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
| |
Quiet a (harmless) compiler warning.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
It's pretty safe to say there has never been a working relocatable
Linux zImage kernel, and the semantics for them are iffy at best.
Consider zImage kernels to be non-relocatable.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
The normal value for code32_start is based on the kernel load address
(in fact, it usually *is* the kernel load address); accordingly, it
needs to be updated if the kernel is relocated.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
| |
We need <minmax.h> for min().
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
Linux itself is fine with sp = 0 for a 64K segment, but perhaps other
things aren't. Just to be safe, set the stack pointer to 64K-16
bytes.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
| |
The value of esp set in real-mode shuffles was wrong. This
unfortunately broke linux.c32 :(
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Add a copyright notice.
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
|
| |
Remove a few things that are specific to NASM's "bin" backend, which
we no longer use. Newer versions of NASM print warning messages which
are unnecessary.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
| |
The aim now is for a 3.80 release instead...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This module is able to power off a system via APM.
It was tested on QEMU, Bochs and VMware.
Possible usage:
TIMEOUT 3000
TOTALTIMEOUT 9000
ONTIMEOUT poweroff.com
- Sebastian
|
|
|
|
|
|
|
|
|
| |
The way Grub handles ELF Multiboot kernels where paddr != vaddr is to
load at the paddr, but to also adjust the entry point (e_entry) so
that the previous vaddr becomes a paddr. Since the Multiboot spec is
pretty much "Grub wins", follow this behavior.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
free_area() ended up looking for any area of memory, not necessarily a
*free* area of memory. This had predictably disastrous consequences.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Make it a bit easier to write user-space test cases; use fgets+sscanf
so comment lines end up getting ignored.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One-to-many relationships, in which one chunk of a file is used in
more than one place, tends to naturally show up in decoding certain
fileformats, including (but not limited to) Microsoft SDI. Make the
shuffler library handle those cases correctly, and remove a
special-purpose hack in sdi.c.
This is based on the observation that all one-to-many relationships
can be treated as a one-to-one shuffle followed by
destination-to-destination copies; i.e. one copy is (arbitrarily)
assigned the "master copy" status, and all aliases are then copied
from the master copy when the master copy is already in its final
place. All other copies can then be simply ignored for the duration
of the shuffle, just as zero-memory is.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
| |
For performance, align the shuffle safe area to a dword boundary.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
Instead of stopping the memmap dump on SMT_END, stop it only on a null
pointer. That way we can see if we have any bogus entries with
SMT_END.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
syslinux_add_memmap() would fail miserably and corrupt the list if an
entry was added at address zero. Quite possibly other addresses would
have similar problems. Furthermore, we did an extra "optimization
pass" which should never have been necessary if the algorithm had been
correct in the first place.
This should hopefully fix ALL those bugs.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
| |
Align the stack to a 16-byte boundary, just in case...
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
The setting of regs.eax in map_image() doesn't really make any sense;
move it to mboot_run() instead.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
The amap/mmap initialization were buried randomly inside map_image(),
which at the very least makes the code needlessly hard to read.
Furthermore, it is at least possible that we may want to be able to
map multiple images in the future.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
Our somewhat generous definition of whitespace is less than or equal
to 32 (' '); we do not include 127 and 255 which are printable
characters in the PC codepages (in the latter case, NBSP.)
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
| |
Remove unused ipaddrbuf.
|
|
|
|
|
|
|
| |
Change pc_label in parseconfig.inc to default vk_rname to mangled
vk_vname. Also change spaces to tabs. This gives a usable error
message in the case where the user selects a label without any kernel
information.
|
|
|
|
|
|
|
|
| |
Increase the bss alignment (and therefore the alignment of buffers) to
4K rather than 512 bytes -- this in anticipation of future hard disks
with 4K sectors. This only changes the actual bss location by 1.5K.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
Align I/O buffers to a multiple of 512 bytes, as required by the
Syslinux ABI. Furthermore, move them from data to bss, so that they
don't occupy space in the image file.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Acked-by: Sebastian Herbszt <herbszt@gmx.de>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When running isohybrid again it's nice to preserve the MBR id
There was some partial code to support setting the id using non
existing to_int, but no way to use it.
Signed-off-by: Pascal Terjan <pterjan@mandriva.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
"use integer" limits integers to 2^31-1 on 32 bits, which makes
imgsize to be -1 on DVD images
Signed-off-by: Pascal Terjan <pterjan@mandriva.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The "write with verify" functionality in EDD is AL=01h or AL=02h
depending on EDD version, not AL=80h. Since it is apparently
version-dependent, don't even try to do it; furthermore, some BIOSes
are known to reject a write with this feature requested no matter
what. At some point we may want to explicitly read back to verify.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
| |
Add .gitignore file for .c files created from .menu files.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
Disable DEBUG in mboot.c32, which was accidentally enabled in a
previous commit.
Reported-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
| |
Move the handling of mem= and vga= into syslinux_boot_linux(), so that
the user of that function doesn't need to worry about it.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|