summaryrefslogtreecommitdiff
path: root/core
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'nocomapi'syslinux-6.03-pre7H. Peter Anvin2014-03-0314-528/+71
|\
| * comapi: Remove the comapi interfaces completelyH. Peter Anvin2014-02-138-454/+16
| | | | | | | | | | | | | | | | | | | | 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>
| * bios: Remove shuffle and boot comapi callH. Peter Anvin2014-02-138-45/+44
| | | | | | | | | | | | | | | | 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>
| * bios: Remove comapi calls related to the ADVH. Peter Anvin2014-02-134-38/+20
| | | | | | | | | | | | | | | | The only comapi calls left are the ones related to the ADV and to shuffle and boot. Remove the ADV-related ones as part of getting rid of the comapi framework completely. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | core, bios: Move __syslinux_shuffler_size to assemblysyslinux-6.03-pre5H. Peter Anvin2014-02-282-8/+7
| | | | | | | | | | | | | | | | Putting the __syslinux_shuffler_size in a C file by itself caused it to not get included in the core, causing failures. Put it in assembly to make sure it really gets included there. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | shuffler: Actually get the shuffler size sanelysyslinux-6.03-pre4H. Peter Anvin2014-02-272-1/+15
| | | | | | | | | | | | | | | | | | Actually get the shuffler size sanely. At least for now, we are BIOS only, so stub out the functions on EFI (they shouldn't even be compiled for EFI; this stuff should be moved into some kind of BIOS-only directory.) Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | Makefiles: export the firmware type as a cpp variableH. Peter Anvin2014-02-271-1/+2
| | | | | | | | | | | | Export the firmware type as a cpp variable so we can #ifdef. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | core, bios: Incorrect detection of EDD in /core/fs/diskio_bios.csyslinux-6.03-pre3Andy Alex2014-02-261-0/+2
| | | | | | | | | | | | | | DL register is not set to drive number when detecting EDD for drive, so detection may fail. Signed-off-by: Andy Alex <andy at r-tt.com>
* | Merge branch 'syslinux-5.xx'H. Peter Anvin2014-02-261-3/+3
|\ \ | |/ |/| | | | | | | | | Resolved Conflicts: core/init.c Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| * bios: Don't truncate memory size needed to 16 bitssyslinux-5.xxH. Peter Anvin2014-02-261-1/+1
| | | | | | | | | | | | | | We can't truncate the memory size needed to 16 bits *before* we convert it to kilobytes... Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| * bios: Fix lowmem checkH. Peter Anvin2014-02-261-2/+2
| | | | | | | | | | | | | | | | The lowmem check was backwards and would report error when there wasn't any. This was missed because the Ctrl key check was *also* backwards and so the check would only be done when Ctrl was held down. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | pxe: Export the initial stack and PXE(NV) structure, fix pxechnH. Peter Anvin2014-02-133-9/+24
| | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/rockridge'H. Peter Anvin2014-02-124-4/+655
|\ \ | | | | | | | | | | | | | | | | | | Resolved Conflicts: com32/include/byteswap.h Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| * | iso9660.c did not copy terminating 0 of Rock Ridge namerockridgeThomas Schmitt2013-04-251-1/+1
| | | | | | | | | | | | | | | I noticed that the trailing 0-byte is not copied to the result of iso_readdir(). The function iso_convert_name() does append a trailing 0.
| * | iso9660: use generic get_le32() accessor in SUSP/Rock Ridge codeH. Peter Anvin2013-04-021-12/+7
| | | | | | | | | | | | | | | | | | | | | Use the new get_le32() accessor in the SUSP/Rock Ridge code. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Cc: Thomas Schmitt <scdbackup@gmx.net>
| * | iso9660: read littleendian ISO 9660/SUSP numbersH. Peter Anvin2013-04-021-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attached is a patch which switches susp_rr.c from reading the big-endian ISO 9660 and SUSP numbers to reading the little-endian ones. Tested within libisofs on my collection of ISO images. [ hpa: more mastering programs are known which botch the bigendian information than the littleendian information, so most systems only read the littleendian info regardless of the native byte order. ]
| * | iso9660: Avoid arbitrarily large malloc()sThomas Schmitt2013-04-021-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After explaining the slightly wasteful usage of malloc()/memcpy() with multi-block CE entries, i noticed that i did not install a safety cap on the malloc size. I could not challenge this in practice but only by gdb manipulation. My most CE-happy test image has 3 occasions of multi-block CE. All three only span over 2 blocks each.
| * | iso9660: Add support for Rock Ridge filenamesThomas Schmitt2013-03-314-4/+659
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for parsing SUSP and RRIP records, and support for Rock Ridge filename extensions, thus avoiding the filename limitations (length and character set) of plain iso9660. This will be a part of using UTF-8 for filenames and console. [ hpa: manually rebased to the elflink branch ]
* | | Merge branch 'syslinux-5.xx' into master; fixes loadkeysGene Cumm2014-01-251-1/+1
|\ \ \ | | |/ | |/| | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | Add const qualifiers to loadleysGene Cumm2014-01-251-1/+1
| | | | | | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | | mem: Calling int15 for 0x8800Erwan Velu2014-01-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | On some code, the intcall 0x15 was missing when playing with 0x8800 making code useless. That's not a big deal since e820 or e801 shall be provided by host but anyway, let's fix it ;)
* | | com32sys_t inreg shall be zeroified prior intcallErwan Velu2014-01-228-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 remote-tracking branch 'origin/syslinux-5.xx'H. Peter Anvin2014-01-211-0/+1
|\ \ \ | |/ /
| * | localboot: Clear register image before usingH. Peter Anvin2014-01-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Using a register image on the stack without initializing it is not a good idea. Reported-by: Erwan Velu <erwanaliasr1@gmail.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| * | core/legacynet: Enable dot quad resolutionGene Cumm2014-01-081-0/+35
| | | | | | | | | | | | | | | | | | in dnsresolv.c:dns_resolv() Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | | isolinux: Shorten a few of the debug messagesH. Peter Anvin2014-01-021-2/+2
| | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/elflink' into firmwareH. Peter Anvin2013-12-111-35/+11
|\ \ \ | |/ / | | | | | | Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| * | pxe, efi: Bad read of file size over TFTP on EFI64Celelibi2013-12-111-35/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A fancy pointers logic has been replaced with a plain old if / else branches. It was assigning only half of a 64 bits integer which is then assigned to a size_t. Thus leading to a bug on platform where size_t is 64 bits. Resolves bug #26 Signed-off-by: Celelibi <celelibi@gmail.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | | pxe: Make the SENDCOOKIES feature for HTTP worked againRussel Santillanes2013-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/elflink' into firmwareH. Peter Anvin2013-11-261-1/+1
|\ \ \ | |/ / | | | | | | | | | | | | | | | Resolved Conflicts: com32/lib/syslinux/disk.c Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| * | isolinux: Clear upper half of EDX before usingH. Peter Anvin2013-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | PXE ISR: Force polling on select hardware WORKAROUNDGene Cumm2013-09-301-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By OUI == 00:23:ae and flags == 0xdc1b, detect select hardware. On select platforms (Dell OptiPlex 760, Dell OptiPlex 960; perhaps more), the interrupt appears to go "deaf" after a few seconds. By matching MAC OUI and flags value, force polling on these select platforms. I'm not sure if there's any better data available that shallow in the core. I believe PCI IDs can be fetched with functions from other libraries and the UUID and DMI data (the most likely to be useful is SYSPRODUCT) is available in ldlinux.c32. Commit message expanded with Matt Fleming's assistance Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | | core: don't leak the __lowmem and __bss16 macros to modulesH. Peter Anvin2013-10-172-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The __lowmem and __bss16 macros are only useful in the core itself. Hide them from modules so people don't use them by mistake. extern declarations don't need them (and are safe in modules), they are only necessary at the point of definition (which must be in the core.) Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | | Merge branch 'elflink-pxe-fixes-for-mfleming-2' of ↵Matt Fleming2013-09-3016-69/+204
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://github.com/geneC/syslinux into firmware Pull various network stack fixes from Gene Cumm and adapt to the 6.xx core_udp_* API, * 'elflink-pxe-fixes-for-mfleming-2' of git://github.com/geneC/syslinux: PXE ISR: Force polling on select hardware WORKAROUND core/lwip: Fix NULL pointer check PXE: use ddprintf macro com32: Define ddprintf() macro PXELINUX: specify PXE/lwIP undiif: show thread of execution on UNDIIF_ID_DEBUG core: dprintf() the banner. PXELINUX: Use sendto() instead of connect()/send()/disconnect() core: make mbox_post()/__sem_down_slow() check if valid core: mbox/semaphore NULL checks core/lwip/undi: Improve UNDIIF_ID_DEBUG messages Conflicts: core/fs/pxe/pxe.c core/fs/pxe/tftp.c core/init.c
| * | | PXE ISR: Force polling on select hardware WORKAROUNDGene Cumm2013-09-231-0/+20
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By OUI == 00:23:ae and flags == 0xdc1b, detect select hardware. On select platforms (Dell OptiPlex 760, Dell OptiPlex 960; perhaps more), the interrupt appears to go "deaf" after a few seconds. By matching MAC OUI and flags value, force polling on these select platforms. I'm not sure if there's any better data available that shallow in the core. I believe PCI IDs can be fetched with functions from other libraries and the UUID and DMI data (the most likely to be useful is SYSPRODUCT) is available in ldlinux.c32. Commit message expanded with Matt Fleming's assistance Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | core/lwip: Fix NULL pointer checkGene Cumm2013-09-231-1/+1
| | | | | | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | PXE: use ddprintf macroGene Cumm2013-09-233-26/+26
| | | | | | | | | | | | | | | | | | Messages are needed before ldlinux.c32 is loaded Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | PXELINUX: specify PXE/lwIPGene Cumm2013-09-232-2/+8
| | | | | | | | | | | | | | | | | | Styled after SYSLINUX Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | undiif: show thread of execution on UNDIIF_ID_DEBUGGene Cumm2013-09-231-3/+7
| | | | | | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | core: dprintf() the banner.Gene Cumm2013-09-231-0/+2
| | | | | | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | PXELINUX: Use sendto() instead of connect()/send()/disconnect()Gene Cumm2013-09-234-8/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit prevents a race-condition on systems that have functional interrupts (observed with iPXE and select other Dell systems). Without this, the reply packet could be received by the core prior to the disconnect() call, see that it doesn't have a matching PCB (protocol control block, iirc) since the reply has a different far-end UDP port than the original request, and lwIP will discard the packet before PXELINUX can see it. net_core_sendto() instead of net_core_connect() net_core_send() net_core_disconnect() Commit message expanded with Matt Fleming's assistance Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | core: make mbox_post()/__sem_down_slow() check if validGene Cumm2013-08-032-2/+2
| | | | | | | | | | | | | | | | | | If the mailbox/semaphore is invalid, disallow additions. Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | core: mbox/semaphore NULL checksGene Cumm2013-08-035-24/+41
| | | | | | | | | | | | | | | | | | Also set mbox invalid and mbox pointer NULL when free()d Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | core/lwip/undi: Improve UNDIIF_ID_DEBUG messagesGene Cumm2013-08-031-8/+9
| | | | | | | | | | | | | | | | | | Remove extra space; add TCP flags Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | | pxe, ftp: Don't convert an IP address to host byte orderH. Peter Anvin2013-08-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FTP passes an IP address and port number as decimal string encoded comma-separated octets. The first four are the IP number and the second two the port. We consider port numbers as ordinary integers and they should be in host byte order when passed into core_tcp_connect(), but IP addresses are simply kept in network byte order at all times and thus should not be converted. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | | Merge branch 'elflink-undi-debug-for-mfleming' of ↵syslinux-6.02-pre13Matt Fleming2013-07-264-44/+296
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://github.com/geneC/syslinux into firmware Pull UNDIIF packet header debug patch series from Gene Cumm, * 'elflink-undi-debug-for-mfleming' of git://github.com/geneC/syslinux: Allow for UNDIIF_ID_DEBUG in 1 mk line core/lwip/undiif: dprint MAC/ARP/IP/ICMP/TCP/UDP headers; poll debug lwip/undiif: split arphdr._hwlen_protolen lwip: Allow LWIP_PLATFORM_* output to use dprintf lwip: undiif: Fix debug options to unique *_DEBUG macros Conflicts: core/kaboom.c
| * | Allow for UNDIIF_ID_DEBUG in 1 mk linesyslinux-5.11-pre9Gene Cumm2013-07-201-1/+1
| | | | | | | | | | | | | | | | | | | | | Add comments and 1 line to mk/devel.mk to debug headers of all packets sent/recieved through undiif.c. Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | core/lwip/undiif: dprint MAC/ARP/IP/ICMP/TCP/UDP headers; poll debugGene Cumm2013-07-202-1/+220
| | | | | | | | | | | | | | | | | | | | | Encapsulate in #ifdef; use snprintf and 1 dprintf-like statement. Print debug message that polling has been forced Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | lwip/undiif: split arphdr._hwlen_protolenGene Cumm2013-07-131-5/+7
| | | | | | | | | | | | | | | | | | lwIP already split this in etharp.h Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * | lwip: Allow LWIP_PLATFORM_* output to use dprintfGene Cumm2013-07-121-2/+12
| | | | | | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>