Age | Commit message (Collapse) | Author | Files | Lines |
|
Remove the last bits of the comapi interfaces completely. This does
not install stub handlers for the INT 20-3Fh handlers, as we don't
support loading old COMBOOT/COM32/COM32R images anymore.
We could put those back if we really need them.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.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>
|
|
Apparently with some toolchains, isolinux-debug runs out of space by a
few bytes. Shorted a few messages slightly to make up for that.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Resolved Conflicts:
com32/lib/syslinux/disk.c
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
In checkin:
cb015497a4e4 isolinux: Update LBA in getlinsec loop
... we use EDX as a sector count, but the sector count is actually in
DX, and the upper half of EDX is uninitialized. If the BIOS enters
with a nonzero value in the upper half of EDX, this breaks horribly.
At least one set of BIOSes has been identified where if the LBA > 64K
then the upper half of EDX will be nonzero.
Reported-by: Carl Duff <cdrw2400@gmail.com>
Reported-by: Philip Müller <philm@manjaro.org>
Tested-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Signed-off-by: H. Peter Anvin <hpa@zytor.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
|
|
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>
|
|
We need to increment the Logical Block Address in eax by the number of
sectors we passed to getlinsec after every invocation, otherwise we'll
start with the same sector everytime.
This bug was discovered when booting an isohybrid image, which failed
to boot after printing the following error,
"Image checksum error, sorry..."
because the isolinux.bin was bigger than 32K, and thus invoked the
getlinsec loop that reads the file in chunks.
Cc: H. Peter Anvin <hpa@zytor.com>
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>
|
|
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>
|
|
commit 967ee8a1ed49 ("CLI: Add Ctrl + V support for printing the
Syslinux version") should have made the BIOSName symbol global in
core/isolinux.asm. Without this change ldlinux.c32 will hang because
it cannot resolve the 'BIOSName' symbol.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
Instead of having derivative-specific code within the assembly files
and guarded by %if SYSLINUX, etc move all the code to C files so that
the correct get_derivative_info() function can be wired up at runtime.
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
|
|
There's no reason to use the COMBOOT API at all now that we can have
any undefined symbols resolved at runtime - we can just access
functions directly.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
This adds missing support for booting from a boot sector file such as
.bs, .bss or .0, by re-implementing the old asm bootsec code from
core/bootsect.inc in C.
This has resulted in some external changes. We've had to make StackBuf
a global symbol because we access it directly from execute.c. Also, we
need to move dsinfo.c into MINLIBOBJS because ldlinux now needs to
reference __syslinux_derivative_info.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
Every code which implements kaboom(), uses bailmsg string. So we must
use it in core/isolinux.asm as well.
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
|
Fix minor typo.
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
|
The old UI used by Syslinux is no longer supported. The 32-bit environment
already provides us an awesome prompt.
All Syslinux variants do not depend on it anymore, thus they were
modified in order to support the new prompt provided by the ELF module
ldlinux.c32.
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
|
Each firmware has its own method of initialising a disk so allow each
firmware backend to implement a separate disk_init() function.
Make all the assembly callers of fs_init() jump through pm_fs_init(),
which allows us to restrict the com32sys_t arguments to only those
callers that really need it, e.g. the .asm files.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
Lots of code that used to be implemented in the core is now
implemented in ldlinux, but code from core was never deleted. Purge
this code.
Also, move all com32 loading to ldlinux since we need to be able to do
various command line things (which are no longer available in the
core).
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
Implement writestr in C instead of asm and move writestr.inc into
modules/ because it's required by modules/ver.asm.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
There is an awful lot of code currently implemented in assembly when
it could just as easily be implemented in C. Having it in C makes it
much easier to share code between the BIOS and forthcoming EFI
firmware backend. The following code fragments have been rewritten,
- timer initialisation
- adjust_screen()
- check_esapes() and mem_init()
- conio.inc
- plaincon.inc
- cleanup.inc
- serirq.inc
- font.inc
- graphics
- writehex
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
|
|
We need the recent Makefile filename changes to be merged into the
elflink branch because it will make things simpler when converting all
modules to ELF format.
Conflicts:
com32/Makefile
com32/modules/Makefile
version
|
|
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>
|
|
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Remove disk image support from ISOLINUX. Very few BIOSes support this
call correctly, and it is likely to have been broken for a very long
time anyway.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Use the configuration file parser provided by ldlinux to search for
and parse any configuration files. If a kernel or ui module is found
in the configuration file, it is executed once parsing completes.
Parsing and loading kernels is now entirely done in C!
The parser also builds the data structures for later use by the menu
system. Previously, after the asm config parser had parsed the config
file and found a kernel image to boot (or dropped the user at a
command prompt), the menu.c32 module had to open the config file and
re-parse it. Now, we only need to parse the file once.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
|
|
Just add a "pm_call load_env32" after calling fs_init(), now
the isolinux installer can use elf code to parse config, enter
menu, loading kernel too
Signed-off-by: Feng Tang <feng.tang@intel.com>
|
|
If we can't find a configuration file, we need to do something
slightly more friendly than hanging.
Reported-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
DL contains the initial drive number, don't clobber it!
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
In native El Torito mode, there is no such thing as a partition
offset. Make sure that we set Hidden to zero -- we don't use Hidden
(yet, although the ebios and cdrom code should be merged!) but we pass
it to the PM code, which will produce *really* wrong results...
Reported-by: Helmut Hullen <Hullen@t-online.de>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
When used with the "fs" option to chain.c32, we need to know our own
filesystem offset. That means knowing if we used the MBR vs GPT
partition information, as well as if we ended up using the passed-in
information or not.
Resolve this by providing an explicit pointer to the current partition
offset. Eventually this should be replaced by some kind of statfs()
call.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Fix the case where the "sector size" used by the pm filesystem driver
isn't the same thing as the SECTOR_SIZE/SECTOR_SHIFT macros used in
the assembly code. This is a per-device property, and in the
particular case of isolinux hybrid, they are not even currently the
same (for all others, they are the same for now, but not necessarily
in the future.)
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
Make the maxtransfer per device, as it should be; properly imported
from the head loader (in case it is patched with -s). Also enforce
capping to 127 for EBIOS and 63 for CBIOS. This is structured so that
once EDD4 is approved we can remove the capping for that particular
subcase.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Resolved Conflicts:
MCONFIG.embedded
com32/MCONFIG
com32/include/com32.h
core/com32.inc
core/pxelinux.asm
doc/comboot.txt
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
Use MY_NAME for syslinux_banner in isolinux and pxelinux.
This is already done in ldlinux and extlinux.
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
In hybrid disk mode, one block will generally *not* equal one sector.
Use the boot_info_table to find the primary volume descriptor.
Remove the now-unused cdrom_read_blocks().
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Use the TEXT_START macro instead of hard-coding 7C00h.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Drop the dependency on core_xfer_buf in the self-loader, and instead
load the data aligned to an offset, and then bulk-move it into place.
diskstart.inc will need to do something similar if/when support is
added for > 1K sectors on BIOS.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Use the linker to assign xfer_bug_seg and real_mode_seg.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Resolved Conflicts:
com32/Makefile
com32/include/syslinux/pxe.h
core/pxelinux.asm
core/syslinux.ld
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
The global absolute symbol STACK_TOP defined in layout.inc can be used
by the linker script as well as by anything else that needs to know
where the stack is. Also document why we do it differently for
PXELINUX.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
We need to export kaboom in all cases...
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
fs_init now takes a pointer to an array of filesystems, not a pointer
to a single filesystem type.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
The separation between cpuinit.inc and init.inc has never been very
clear, and it just made the code harder to read.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Signed-off-by: Liu Aleaxander <Aleaxander@gmail.com>
|
|
FILENAME_MAX was 2^8 in all variants by now; make it a common define.
Libraries mangle/unmangle; we have generic_mangle_name for Unix-like
filesystems, and unmangle now defaults to simple strcpy.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Major cleanups to the VFS layer:
- add a persistent generic "struct file"
- pass "struct file *" to getfssec
- add a close_file method
- use VFS-assigned indicies instead of pointers as file handles.
This allows the file structures to be allocated from high memory.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Remove the assembly definition of Files in isolinux and pxelinux.
Still to do: remove dependencies on Files living in .bss16 space.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Signed-off-by: Liu Aleaxander <Aleaxander@gmail.com>
|
|
|
|
|
|
error fixed. Just as what hpa told, deal with that might simply be to consider a 2K CD sector a
"block" rather than a "sector". so, in cdrom mode, we have 2K blocksize and 2k sector size, while
in hybrid mode we have 2k blocksize and 512 bytes sector size.
|
|
Conflicts:
core/Makefile
core/diskstart.inc
core/fs.c
|
|
|
|
Export, from each loader stage, the symbol MaxLMA which indicates to
prepcore how big the image is allowed to be. Change prepcore to
enforce this limit and to error out otherwise.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Conflicts:
core/isolinux.asm
|
|
Use ebx to hold the upper half of the partition offset, not edx.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
We cannot put bsHidden in initializated data, as it is set before we
run the global checksumming.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
At least one system has been identified which disables interrupts when
El Torito INT 13h is executed. Thus, save/restore IF around INT 13h.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
It turns out we *can* determine if we have the extra partition offset
information after all, by looking at the value of the stack pointer.
This depends on the internals of the old isohdpfx code, but that's
really all we need to worry about.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
Revert the isohybrid handover protocol so that it has a stack format
compatible with the previous versions; that way we can also revert the
magic number to a compatible one.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Handle a core file greater than 64K, and handle the case of a BIOS
which can't handle 64K wraparounds. The latter is messy with CD-ROMs,
since the standard load address (0x7c00) is not 2K aligned. We will
have to do something similar for disk-based derivatives when dealing
with 4K sector drives.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Conflicts:
core/idle.inc
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Fix CBIOS in isohybrid mode. Also allow an isohybrid image to be
booted from a partition. Unfortunately this breaks compatibility
between differing versions of isohybrid and isolinux.bin.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Conflicts:
core/extlinux.asm
core/isolinux.asm
core/ldlinux.asm
core/pxeidle.inc
core/pxelinux.asm
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>
|
|
A lot of modules are common to *all* the derivatives (as opposed to
just "most"); move those to common.inc.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Rename the .text, .data and .bss sections to .text16, .data16 and
.bss16, in anticipation of being linked with compiler-generated 32-bit
code, which presumably would like to use the standard section names.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Set .bss and .uibss as soon as we are fully loaded. This gives us the
more familiar behavior of most normal execution environments. The
.earlybss section is not zeroed; therefore, all variables that are set
before we have the opportunity to zero need to go in this section.
This checkin also fixes some incorrect section directives.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Remove the obsolete .bss1 and .bss2 segments; they represent segment
balancing which is no longer useful. The current balance between
.earlybss, .bss and .uibss seems to be sufficient; if we need more
balancing in the future then we need to start over anyway.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Move code used before loading is complete to a new .init segment;
.text is now only the stuff that is used at any time. Move the .bss1
segment down to where .bss and .bss2 already are; it seems to fit
better there now.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Another attempt at unify protected mode entry/exit, based on the
previous bcopyint branch. This should, among other things, give a
"full service" PM environment including BIOS upcalls and interrupt
service to the core-internal code.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
Since searchdir() uses getfssec() to read the directory it needs to set
file_bytesleft. Else it loops forever if you have a large directory (and/or
rock ridge on).
|
|
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
vgafontbuf is one of the largest (bss) structures in the zero segment,
together with the trackbuf (which we realistically can't move.)
Create a new "auxilliary segment" for fixed-sized data which needs to
be in the low megabyte, but not necessarily in the zero segment.
This pushes up the low memory usage, but only by 8K.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
Add a new macro "alignz" to align with zero bytes; use to align inside
a data section (i.e. a progbits section which doesn't contain code.)
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
Update copyright notices. Per agreement with my new employer, Intel
Corporation, add Intel copyright notices where appropriate.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Impact: aestetics
Change "and contributors" to "et al" so that the message actually fits
on one line. This is unfortunate, but what can you do...
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Clarify that there are nowadays more copyright holders than just
myself.
|
|
The MaxTransfer for CD modes has to be smaller than for HD modes to
avoid 64K overrun (even though in theory it's permitted, we don't
trust it.) Thus have separate variables for HD and CD modes.
|
|
The macro YEAR is a number, not a string, so we have to use the
asciidec macro.
|
|
|
|
COMBOOT API: Add calls for directory functions; Implement most only
for FAT (SYSLINUX).
Uses INT 22h AX= 001Fh, 0020h, 0021h and 0022h to prepare for the
COM32 C functions getcwd(), opendir(), readdir(), and closedir(),
respectively. INT22h, AX=001Fh will return a valid value for all
variants. INT22h, AX= 0020h, 0021h, and 0022h are only implemented
for SYSLINUX while other variants will call comapi_err for these 3.
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Save a few bytes in ISOLINUX.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
With a long VERSION_STR, we would sometimes fail to compile. Shorten
a few of the messages to make sure that doesn't happen.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Display the BIOS type for isolinux in the same way we do for
ldlinux/extlinux.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
We were incorrectly not passing the EBIOS flag in hybrid HDD mode;
also compute the EBIOS LBA correctly in hybrid HDD mode. Allow a
34-bit LBA for this, that way we still support up to 2^32 CD-ROM
sectors (8 TB).
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Still a work in progress.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
In the Syslinux view of the world, a zero-length file doesn't exist
and therefore should return error on open. A lot of the code relies
on this, but ISOLINUX allowed a zero-length file to be opened, which
could cause all kinds of trouble.
It would be nicer to not have that restriction, but removing it will
probably not happen until the configuration code is rewritten in C.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
ldlinux and extlinux are both using CurrentDir variable name.
Rename CurDir to make it consistent with those.
- Sebastian
|
|
Centralize more (most) of the version number machinery to version.pl.
|
|
Drop macros for "date" and "version_str", which are nothing but
redefined names of macros we already define (DATE_STR and VERSION).
|
|
Allow the initrd to be specified on a separate line from command-line
options (append). This apparently can help certain tools.
|
|
The comapi functions get very unhappy if bp is ever clobbered, since
it uses bp as a frame pointer.
|
|
Mechanically rename the writestr functions:
writestr -> writestr_early
cwritestr -> writestr
... to reflect which function is more appropriate to call in normal
circumstances.
|
|
Move source files out of the root directory; the root is a mess and
has become virtually unmaintainable. The Syslinux core now lives in
core/; the Linux and generic utilities has moved into utils/, and
copybs.com has moved into dos/; it had to go somewhere, and it seemed
as good a place as any.
|