| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
9acbffd33b9200ffe37833463b4d4478e824295a caused more issues than it solves.
There appears to be a bigger underlying issue that the __weak argument masks.
Until the underlying issue is solved, we need __weak.
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Weaken 2 declarations. Seems to be the minimal amount for now.
First exhibited issues with EFI but later also with BIOS beyond *pxelinux.0
when compiled with gcc-5.3.1 and gcc-6.
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
|
|
|
|
|
|
|
|
| |
We used to need a wrapper around the core function dns_resolv() to
implement pxe_dns(), because the former function required its argument
to live in low memory. This is no longer the case and hasn't been for
a while, so remove this unnecessary level of indirection.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
| |
The prototypes themselves are not weak, and declaring them as
such forces the core definitions, which should not be weak, as weak.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
| |
Getting the keyboard shift state is a firmware method. It is
unfortunately unclear if it is even possible on EFI.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
| |
Filesystem UUID shows the partition we boot kernel from.
The kernel parameter has format like FSUUID=DA1A-0B2E.
The SYSAPPEND bit is 0x40000. Now the FAT only supports FSUUID.
The patch is based on 67aaaeeb228.
Signed-off-by: Serj Kalichev <serj.kalichev@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
Remove the shuffle and boot comapi call. This is the last of the
comapi calls left; we should now be able to completely remove the
comapi support.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
| |
Export the initial stack and PXE(NV) structure pointers properly, even
for users which need seg:offs. Use this in pxechn.c rather than the
already-removed INT 22h AX=000Ah call.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: Gene Cumm <gene.cumm@gmail.com>
|
|
|
|
|
|
| |
Some functions are ignoring the const qualifier.
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit 60dabb5b1d6d ("pxe: Make the SENDCOOKIES feature for HTTP worked
again") introduced a regression for ldlinux because it references the
'SendCookies' symbol, which is only provided by PXELINUX.
The regression was caused because the '__weak' tag was dropped from the
declaration of SendCookies.
Tested-by: "Santillanes, Russel" <Russel.Santillanes@gs.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
|
| |
Code refactoring had caused the http_bake_cookies() function to become
inaccessible and the SendCookies variable to be duplicated, causing
the sendcookies feature to not work.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
| |
Pulled common code out of these functions into new ones.
The functions chs_setup and ebios_setup were created for this purpose.
Signed-off-by: Raphael S.Carvalho <raphael.scarv@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Users are hitting issues where the offset calculated by,
(0x9ff0 - cmdline_size) & ~15;
is not useable memory, e.g. it is SMT_RESERVED. Instead we should be
trying to find the highest lowmem address.
Cc: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
| |
Introduce a predicate inline to test for a valid terminal address.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
| |
By registering memory scanners at runtime we can support multiple memory
scanner functions, which helps us to isolate them and keep things
modular, only registering them for specific platform/derivative
combinations. This is preparation for adding a memory scanner that is
specific to PXELINUX on bios and understands when the memory region
occupied by the PXE stack can be reused.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
|
|
| |
Some memory regions are usable, but only as a last resort just before we
hand over control to a kernel image. Add the necessary movebits
infrastructure to use these regions when all other options have been
exhausted.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
|
| |
The memscan interface should be using SMT_* to describe the types of
memory regions as SMT_* are platform agnostic values. This will allow us
to be much more descriptive about the type of memory regions in future.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
|
| |
Refactor the code for finding a suitable location for kernel
protected-mode and real-mode data. It's complicated enough that it
deserves to be separated into its own function.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
| |
to syslinux_memmap_find_type(), which more accurately reflects its
function and frees up the old name for another use.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|\
| |
| |
| |
| | |
Conflicts:
efi/efi.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The handover protocol is the preferred method of booting kernels on EFI
because it allows workarounds for various firmware bugs to be contained
in one place and applied irrespective of the chosen bootloader. Use it
if available, but ensure that we fallback to the legacy boot method.
Also, update the linux_header structure with recent changes made in the
kernel source.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
syslinux-5.11-pre8
Conflicts:
NEWS
com32/lib/Makefile
core/conio.c
mk/devel.mk
mk/elf.mk
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It's useful to be able to enable (and disable) debug code at runtime,
particularly for allowing users that are unable to build their own
Syslinux releases the chance to provide useful debugging output.
For example, say a user reports trouble with their PXE stack but doesn't
have a development environment setup to turn on the debug code
themselves. With this change you can simply request that they do,
debug.c32 -e pxe_call unload_pxe open_file
to enable the debug in those functions. By only turning on code in
specific functions we reduce the chance of disrupting the buggy
behaviour and improve the signal to noise ratio for print statements.
To disable debug code use the -d flag,
debug.c32 -d pxe_call
To use this new feature simply do,
if (syslinux_debug_enabled) {
debug1();
debug2();
....
}
from within the function you wish to add debug code. Note that this
feature is not limited to print statements - you can put any code within
the conditional, such as verifying a checksum or checking for memory
leaks.
The plan is to leave the dynamic debug code built in for all prereleases
and to turn it off for final releases.
People may still want to build with all dprintf() statements enabled,
and so a new symbol, DYNAMIC_DEBUG, was introduced rather than
repurposing the old DEBUG, DEBUG_STDIO and DEBUG_PORT symbols.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| |/
|/|
| |
| |
| |
| |
| | |
We only ever use ->set_mode() to transition into text mode, so rename it
to something more suitable and drop the unused 'mode' argument.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| |
| |
| |
| |
| |
| |
| | |
It's no longer referenced anywhere as everything has now moved to
*sysappend*.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We only ever pass uint8_t * to get_cursor(), so update the prototypes
and fix the following compiler warnings,
In function ‘__ansicon_open’:
com32/lib/sys/ansicon_write.c:93:6: warning: passing argument 1 of ‘firmware->o_ops->get_cursor’ from incompatible pointer type [enabled by default]
com32/lib/sys/ansicon_write.c:93:6: note: expected ‘int *’ but argument is of type ‘uint8_t *’
com32/lib/sys/ansicon_write.c:93:6: warning: passing argument 2 of ‘firmware->o_ops->get_cursor’ from incompatible pointer type [enabled by default]
com32/lib/sys/ansicon_write.c:93:6: note: expected ‘int *’ but argument is of type ‘uint8_t *’
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
and fix the following compiler warning,
In function ‘__syslinux_get_derivative_info’:
com32/lib/syslinux/dsinfo.c:37:5: warning: implicit declaration of function ‘get_derivative_info’ [-Wimplicit-function-declaration]
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
syslinux-5.10-pre2
Conflicts:
NEWS
com32/include/netinet/in.h
com32/include/sys/cpu.h
com32/lib/Makefile
core/Makefile
core/fs/diskio.c
core/fs/pxe/pxe.h
core/init.c
core/mem/free.c
core/mem/malloc.c
mk/devel.mk
version
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Welcome to Syslinux 5.10.
Conflicts:
NEWS
com32/lib/Makefile
com32/lib/sys/open.c
com32/lib/syslinux/ipappend.c
com32/modules/Makefile
com32/modules/prdhcp.c
core/Makefile
core/cmdline.inc
core/com32.inc
core/comboot.inc
core/configinit.inc
core/fs/chdir.c
core/fs/fs.c
core/fs/pxe/dnsresolv.c
core/fs/pxe/pxe.c
core/fs/pxe/pxe.h
core/idle.c
core/include/ctype.h
core/init.inc
core/mem/init.c
core/parseconfig.inc
core/runkernel.inc
core/syslinux.ld
core/ui.inc
doc/comboot.txt
version
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Resolved Conflicts:
NEWS
version
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| | |\ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Pass the file flags down through the stack. This allows us to
distinguish between open for read, open for write, or opendir in the
low-level filesystem functions; this will matter for the PXE methods.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Doing a full system manifest is obviously not possible, but we can
include some very very basic CPU information.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add the BIOSVENDOR, BIOSVERSION, and SYSFF strings.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Collect both the SYS* and MB* strings; it is too common the SYS* ones
contain bogus but non-empty information, and the total amount of data
isn't all that huge.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add additional strings, and create fallbacks when the strings are
empty. Unfortunately we can't easily fall back for crap like "Insert
name of OEM here".
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Add additional sysappend strings from DMI; we may want to add even
more but let's think about it first.
- Pre-generate http cookies.
- Add a "sendcookies" command to mask out some of the information.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Generalize the ipappend handling to cover all the derivatives, and
rename it "sysappend" ("ipappend" is a valid alias for all
derivatives.) Move all the string handling to protected mode.
Currently only pxelinux exports strings, but the plan is to change
that in the future.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If the UNDI stack reports either IRQ 0 or does NOT report the NDIS IRQ
supported flag, then poll the interrupt routine from the idle thread
instead.
This is somewhat limited; we really should have a chain of idle poll
routines to support things like serial console.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
Makefile
NEWS
com32/cmenu/Makefile
com32/elflink/ldlinux/Makefile
com32/gfxboot/Makefile
com32/gpllib/Makefile
com32/include/sys/module.h
com32/lib/Makefile
com32/lib/sys/module/elf_module.c
com32/menu/Makefile
com32/rosh/Makefile
com32/samples/Makefile
core/init.c
mk/elf.mk
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Tagging __syslinux_get_serial_info() with __constructor is pretty
useless when the global variables it uses, such as SerialPort, etc,
are assigned *after* the constructor has run. This constructor made
sense when config parsing was done by the core, but parsing is now
performed by ldlinux. We need to explicitly invoke the function to
initialise __syslinux_serial_console_info once we've parsed any config
files.
eprintf.c was introduced in commit 086d698c642f ("ldlinux: Add
eprintf() to print to VGA and serial") because printf() output wasn't
appearing on the serial console. It turns out that the above
__constructor confusion was the real bug.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This reverts commit 15a67011987c341814533ac4d8e23c9a72dc7605, because
as Peter points out,
The objects are uint32_t and so the prototype is correct. It should
not "leak" outside the screencpy function that we play ugly tricks
with these pointers; that is better handled by an internal cast.
So do the necessary casting inside bios_vesacon_screencpy().
Cc: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The 'src' argument should actually be const char * because the BIOS
code performs pointer arithmetic on it.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
Makefile
com32/elflink/ldlinux/Makefile
com32/lib/sys/module/elf_module.c
core/cleanup.c
core/comboot.inc
core/conio.c
core/fs/fs.c
core/init.c
core/mem/free.c
core/mem/malloc.c
core/timer.inc
diag/geodsp/Makefile
extlinux/main.c
mk/embedded.mk
modules/Makefile
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
16-bit COMBOOT files are no longer supported by Syslinux in 5.00 so
delete all references and change any 32-bit COMBOOT image references
to mention ELF instead.
Some of the COMBOOT stuff is still used internally so we can't nuke
core/comboot.inc yet, but that will disappear in a future release.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In preparation for strictly limiting the list of variables that are
exported (global) in the core, delete any unused variables, rewrite
variable declarations in C that are not referenced by asm and delete
files that are no longer included in other asm files.
Cc: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We've currently got both the BIOS and EFI versions of struct
disk_private in core/include/disk.h, which isn't ideal because this
file shouldn't need to know about the inner-workings of the firmware's
private disk info.
Move the implementation of 'struct disk_private' into more suitable
locations and use a void * for the 'private' member of struct disk.
This change allows us to once and for all delete the gnu-efi header
files from core/include/core.h and the gnu-efi include paths from
mk/lib.mk.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Instead of littering core/mem with #ifdef SYSLINUX_EFI move memory
operations into the 'firmware' structure so that they can be
implemented differently for BIOS and EFI.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There's lots of the vesa infrastructure that can be shared for both
BIOS and EFI, so share the things that are common and split out the
things that are not into firmware-specific functions and use the
'firmware' structure to access them.
This commit is part of a series of changes that removes all
EFI-specific code from everywhere except efi/, which means we can
delete inclusion of any gnu-efi header files and remove gnu-efi paths
from CFLAGS.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
Makefile
com32/elflink/ldlinux/adv.c
com32/elflink/ldlinux/kernel.c
com32/elflink/ldlinux/ldlinux.c
com32/include/bitsize/stddef.h
com32/include/bitsize/stdint.h
com32/include/stdint.h
com32/include/sys/module.h
com32/include/sys/x86_64/bitops.h
com32/include/syslinux/linux.h
com32/lib/Makefile
com32/lib/sys/ansicon_write.c
com32/lib/sys/module/elfutils.h
com32/lib/sys/vesa/efi/fill.h
com32/lib/syslinux/load_linux.c
com32/lib/syslinux/serial.c
com32/lib/syslinux/shuffle.c
core/conio.c
core/elflink/config.c
core/elflink/load_env32.c
core/graphics.c
core/include/graphics.h
core/init.c
core/pxelinux.asm
mk/elf.mk
mk/lib.mk
|