aboutsummaryrefslogtreecommitdiffstats
path: root/com32/gfxboot
Commit message (Collapse)AuthorAgeFilesLines
* com32sys_t inreg shall be zeroified prior intcallErwan Velu2014-01-221-0/+8
| | | | | | | | | | | As per commit f775e740a3a817a4ff5ba26bea99dbfd735456b3, inreg parameters of intcall() shall be zeroified. Having unclean inreg could trigger bad behaviors on some hosts. This patch is about adding memset() calls prior any intcall() : - some intcall didn't had any memset at all - some successive intcall() calls didn't memset inreg in between calls
* Merge tag 'syslinux-5.10-pre2' into for-hpa/elflink/firmwareMatt Fleming2013-03-221-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Merge branch 'lwip' into elflinkMatt Fleming2013-02-261-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * Merge remote-tracking branch 'origin/master' into lwipH. Peter Anvin2011-04-261-1/+2
| | |\
| | * | Generalize ipappend handling as "sysappend", and move to PM codeH. Peter Anvin2011-04-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | Merge tag 'syslinux-5.01' into firmwaresyslinux-6.00-pre4Matt Fleming2013-01-291-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | Always strip all the modulesH. Peter Anvin2013-01-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Always strip the modules; they are too big unstripped. Specifically, we generate unstripped *.elf files, and then convert them to stripped *.c32 files. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | | | Add per-firmware object directory supportMatt Fleming2012-10-161-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we have multiple firmware backends it no longer makes sense to write object files to the same directory as their source. A better solution is to write the object files to a per-firmware directory under a top-level object directory. The top-level object directory can be specified on the command-line with the O= variable, e.g. make O=/tmp/obj. If no top-level object directory is specified an 'obj' directory is created in the top-level of the Syslinux source repository. All the existing make targets continue to work as before, however now they apply to all firmware backends, e.g. 'make installer' will build the BIOS, 32-bit EFI and 64-bit EFI installers and place them under $(OBJ)/bios, $(OBJ)/efi32 and $(OBJ)/efi64 respectively. Note unlike every other bit of Syslinux, the gpxe objects are still kept in the src directory, e.g. gpxe/src, since gpxe is only required by the BIOS backend. It is possible to specify a make target for a specific firmware or list of firmware with the following syntax, make [firmware[,firmware]] [target[,target]] To clean the object directory for just the BIOS firmware type, 'make bios clean' To build both the 32-bit and 64-bit EFI installers type, 'make efi32 efi64 installer' Since the Syslinux make infrastructure is now more complex a new file doc/building.txt has been created to explain how to build Syslinux. The top-level Makefile now exports some make variables for use in module Makefiles, - topdir - the top-level source directory of the Syslinux repository, e.g. /usr/src/syslinux - objdir - the top-level object directory for the firmware backend currently being built, e.g. /obj/syslinux/bios - SRC - the source directory in the Syslinux repository for the module currently being built, e.g. /usr/src/syslinux/com32/libupload - OBJ - the object directory for the module currently being built, e.g. /obj/syslinux/bios/com32/libupload Since we're rewriting the Makefile infrastructure anyway it seemed like a good idea to add parallel support. By writing subdirectories as prequisites for make targets the objects in those subdirectories can be built in parallel. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | | | Merge remote-tracking branch 'mfleming/elflink' into for-hpa/elflink/firmwareMatt Fleming2012-07-301-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | Merge branch 'master' into elflinkMatt Fleming2012-07-191-1/+1
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reason for this merge is that we need the fix to core/fs/cache.c without which we can potentially dereference an invalid pointer. The below conflict is a result of the new setup_data blob code being merged from the master branch. Conflicts: com32/lib/Makefile
| | * | | com32: Add device tree supportThierry Reding2012-06-291-1/+1
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for passing a Flattened Device Tree (FDT) blob to the Linux kernel. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | / | The make files have undergone changes to support both i386 and x86_64 platforms.chandramouli narayanan2012-06-251-0/+10
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pertinent changes are sprinkled through *.mk and Makefile in the syslinux tree. Build architecture is specified at the command line via ARCH macro. This is to enable whether one is building for the native platform or cross-building for a different architecture. Currently, the only supported architectures via ARCH macro are i386 and x86_64. There are some modules (e.g. memdump) that don't build under the EFI environment. To go forward with efi boot support, a separate EFI_BUILD=1 macro has been added and is required to be specified while building. This is a temporary solution for the current build environment. example build: On a x86_64 platform, the following cross-builds syslinux for i386 To build for i386: make EFI_BUILD=1 ARCH=i386 On a x86_64 platform, the following builds syslinux for x86_64 To build natively: make EFI_BUILD=1 Changes specific to GCC and LD options: Architecture specific flags and include/search directories are set up for GCC and LD commands. Internally, GCC options such as stack-boundary, PIC and machine architecture are set up based on ARCH macro. While stack-boundary=2 is fine for i386, it does not work for x86_64 and so it is left to the default value. Using -fPIE with gcc does not work with ld on x86_64, but -fPIC works fine. Similarly, target and elf options are set up for linking as approrpriate for architecture. Assumption about gnu-efi install path: Since the EFI build supports both EFI32 and EFI64, the following assumptions are made with regard to the installed location of gnu-efi on the build platform. 1. gnu-efi-ia32: assumed installed in /usr/local [ EFI-32 include files in /usr/local/include/efi and gnu-efi library in /usr/local/lib/ ] 2. gnu-efi-x86_64: assumed installed in /usr [ EFI-64 include files in /usr/include/efi and gnu-efi library in /usr/lib64/ ] Remanants of the unused old i386-only files, if any, need to be pruned.
* / / elflink: Make ELF the default object formatMatt Fleming2011-04-261-3/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | com32/elflink/modules was originally created to house ELF modules and keep them separate from the COM32 modules as the elflink branch was being developed. However, this has inadvertently created a maintenance nightmare because code was copied from elsewhere in the tree into com32/elflink/modules, resulting in duplication. Bug fixes have been going into the original code but have not been merged onto the elflink branch, leaving the duplicate code in com32/elflink/modules buggy. So let's delete this directory. There really is no reason to keep ELF and COM32 modules separate because there's no reason to need both COM32 and ELF modules to coexist. ELF is a far superior object file format and all modules are not emitted as ELF objects. Now that we're outputting ELF modules we can use dynamic memory instead of the cs_bounce bounce buffer. This commit requires a certain amount of shuffling for some files. quicksort.c isn't a module and belongs as part of the util library. cli.h belongs in com32/include so that other modules can make use of the cli code in ldlinux.c32. All libraries are now ELF shared libraries which are only loaded to fixup unresolved symbols for executable modules and renamed from *.a to *.c32. This reduces the runtime memory footprint because libraries are only loaded when needed and because every executable no longer gets its own copy of code/data (as it would if linking with a static library). Also, remove MINLIBOBJS from libcom32.c32 because it is already part of libcom32min.a and we don't want to have any duplicate symbols between the core (which links with libcom32min.a) and libcom32.c32. Welcome to the New World Order of ELF modules! Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
* | Merge remote-tracking branch 'mfleming/for-hpa/makefile-cleanup'H. Peter Anvin2011-04-261-1/+2
|\ \ | |/ |/| | | | | | | | | | | Resolved Conflicts: com32/hdt/Makefile com32/sysdump/Makefile Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| * Makefile: Move Makefile fragments into mk/Matt Fleming2011-04-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the MCONFIG files into a mk/ directory and give them more descriptive names. This is purely a cosmetic change to make the 'include' directives a bit more coherent by making it obvious exactly which MCONFIG file we're including. For example, in com32/lua/src/Makefile we exchange the line, include ../../MCONFIG for the much more comprehensible, include $(MAKEDIR)/com32.mk Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
* | gfxboot: pass current working dir to gfxboot coreSteffen Winterfeldt2011-04-251-0/+13
| | | | | | | | | | | | | | | | | | | | Pass current working dir to (and back from) gfxboot core via gfx_config struct. This way I can implement a chdir() in the gfxboot core without the need for additional 16-bit comboot calls. gfxboot may change the directory, so you have to read and apply the current setting in boot() (to read kernel etc. from right location). Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* | gfxboot: handle INITRD config lineSteffen Winterfeldt2011-04-241-1/+5
|/ | | | | | Handle case where there is no initrd= option but a separate initrd config line. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: remove save_read() functionSebastian Herbszt2011-03-301-24/+2
| | | | | | Remove the no longer needed save_read() function. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: remove lowmem_buf_size variableSebastian Herbszt2011-03-301-5/+2
| | | | | | Remove the no longer needed lowmem_buf_size variable. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: don't use the bounce bufferSebastian Herbszt2011-03-301-5/+11
| | | | | | Allocate lowmem buffer instead of using the bounce buffer. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: use skipspace()Sebastian Herbszt2011-03-301-17/+8
| | | | | | Use skipspace() instead of local skip_spaces(). Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: require LABEL keywordsSebastian Herbszt2010-12-051-0/+5
| | | | | | Require LABEL keywords in config file. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: support TEXT and ENDTEXT keywordsSebastian Herbszt2010-12-051-1/+14
| | | | | | Support TEXT and ENDTEXT keywords; ignore the help text. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: use a character array for an absolute symbolH. Peter Anvin2010-11-141-3/+4
| | | | | | | | The best way to access an absolute symbol is "extern const char foo[];" -- older gccs let you get away with "extern void" but gcc 4.5 chokes on it. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* gfxboot: fix buffer overrun when loading kernel/initramfssyslinux-4.03Colin Watson2010-10-201-1/+2
| | | | | | | | If the file size wasn't a multiple of 64KB, we could overwrite the next entry in the malloc arena so reading the initramfs would fail. Signed-off-by: Colin Watson <cjwatson@ubuntu.com> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: add include and menu include supportsyslinux-4.03-pre5Colin Watson2010-10-121-21/+42
| | | | | | | | Ubuntu CDs use multiple configuration files and the include directive as well as gfxboot, so it's useful for gfxboot to support these. Signed-off-by: Colin Watson <cjwatson@ubuntu.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* gfxboot: set media typeSebastian Herbszt2010-06-131-0/+6
| | | | | | Set media type according to the drive number and cd mode. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: use syslinux_derivative_info()Sebastian Herbszt2010-05-301-10/+6
| | | | | | Use syslinux_derivative_info() instead of open coding it. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: fix menu label handlingSteffen Winterfeldt2010-04-241-20/+28
| | | | | Signed-off-by: Steffen Winterfeldt <wfeldt@opensuse.org> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: better error handlingSteffen Winterfeldt2010-04-241-23/+95
| | | | | Signed-off-by: Steffen Winterfeldt <wfeldt@opensuse.org> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: fix localbootSteffen Winterfeldt2010-04-241-1/+1
| | | | | Signed-off-by: Steffen Winterfeldt <wfeldt@opensuse.org> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: turn off graphics before starting kernelSteffen Winterfeldt2010-04-241-0/+2
| | | | | Signed-off-by: Steffen Winterfeldt <wfeldt@opensuse.org> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: handle IPAPPENDSteffen Winterfeldt2010-04-241-0/+12
| | | | | Signed-off-by: Steffen Winterfeldt <wfeldt@opensuse.org> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: make config statements case-insensitiveSteffen Winterfeldt2010-04-241-11/+11
| | | | | Signed-off-by: Steffen Winterfeldt <wfeldt@opensuse.org> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* gfxboot: support MENU LABEL statementSteffen Winterfeldt2010-04-241-10/+39
| | | | | Signed-off-by: Steffen Winterfeldt <wfeldt@opensuse.org> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* Change () prototypes to (void)H. Peter Anvin2010-01-061-4/+4
| | | | | | | | () means the same as (...) in C, not the same as (void) as it does in C++. It is generally misused to mean (void), though. Actually write what we mean... this is C, after all. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Merge commit 'sherbszt/gfxboot32'syslinux-3.85-pre1H. Peter Anvin2009-12-283-5/+12
|\
| * gfxboot: fix loading of LABELs with non KERNEL or LINUX commandsSebastian Herbszt2009-12-081-1/+6
| | | | | | | | | | | | Call syslinux_run_command() if menu_ptr->kernel or menu_ptr->linux are not set. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
| * gfxboot: accept plain boot logo filesSebastian Herbszt2009-12-081-1/+3
| | | | | | | | | | | | Don't force the boot logo file to be a cpio archive. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
| * gfxboot: fix typo in cb_getcwd - wrong function numberSebastian Herbszt2009-12-051-1/+1
| | | | | | | | | | | | Use function number 1fh in cb_getcwd. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
| * gfxboot: use $(NASM) and $(OBJCOPY)Sebastian Herbszt2009-12-051-2/+2
| | | | | | | | | | | | Use $(NASM) and $(OBJCOPY) in Makefile. Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* | gfxboot: add .gitignore fileH. Peter Anvin2009-12-281-0/+1
|/ | | | Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* gfxboot.c32syslinux-3.84-pre5Steffen Winterfeldt2009-11-263-0/+1040
Ok, here is the first try to turn the gfxboot wrapper into a com32 module. I had to extend the interface to the gfxboot core a bit to get it working. So it works only with latest gfxboot from git://gitorious.org/gfxboot/gfxboot.git Steffen Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>