H. Peter Anvin [Thu, 3 Jul 2008 22:21:36 +0000 (15:21 -0700)]
.gitignore: make singleton filenames absolute
Ignore, for example, version.h, but not memdisk/version.h
H. Peter Anvin [Thu, 3 Jul 2008 02:53:58 +0000 (19:53 -0700)]
extlinux: fix handling of /etc/mtab
When we didn't find the filesystem in /proc/mounts, we would go
through /etc/mtab, but then completely botch the parsing thereof.
Move the parsing to a common function to avoid this problem.
H. Peter Anvin [Thu, 3 Jul 2008 01:34:49 +0000 (18:34 -0700)]
Simple menu: really avoid disabled entries
Really, really try to avoid stepping on disabled entries...
H. Peter Anvin [Tue, 1 Jul 2008 05:23:53 +0000 (22:23 -0700)]
3.70 is out, next release is 3.71
H. Peter Anvin [Tue, 1 Jul 2008 05:23:05 +0000 (22:23 -0700)]
NEWS: There never was a 3.64
There was no 3.64 release; remove the heading.
H. Peter Anvin [Tue, 1 Jul 2008 05:21:47 +0000 (22:21 -0700)]
comboot: issue IRET for INT 2Fh
At least one laptop exists which calls INT 2Fh from inside the BIOS!
So just point INT 2Fh to IRET, and hope that's good enough.
H. Peter Anvin [Mon, 30 Jun 2008 22:34:05 +0000 (15:34 -0700)]
gPXE: Missing files from gPXE sync
Files that should have been added before...
H. Peter Anvin [Mon, 30 Jun 2008 22:28:16 +0000 (15:28 -0700)]
chain.c32: allow "boot" as a drive specification
Allow "boot" as the drive specification; this can be used both with
partition numbers and with loaders.
H. Peter Anvin [Mon, 30 Jun 2008 19:37:48 +0000 (12:37 -0700)]
gPXE: update gPXE to get rid of gpxe/src/Config
gpxe/src/Config versus gpxe/src/config is a problem on case-deficient
filesystems; update to top of tree gPXE so we don't have that problem
anymore.
H. Peter Anvin [Sun, 29 Jun 2008 02:09:07 +0000 (19:09 -0700)]
cptable.pl: it seems to make more sense to put console first
It seems to make more sense to put the console codepage first, since
it is the more significant of the two codepages. It also makes more
sense in the from..to sense.
H. Peter Anvin [Sat, 28 Jun 2008 02:26:42 +0000 (19:26 -0700)]
spec: can't put anything in the /etc directory if it's not there
Make sure we create the /etc directory before putting something there.
H. Peter Anvin [Sat, 28 Jun 2008 02:20:12 +0000 (19:20 -0700)]
gpxe/Makefile: don't remove gpxelinux.0 for "make dist"
After all, "make dist" is about producing the wrapped binaries for
release.
H. Peter Anvin [Sat, 28 Jun 2008 02:15:00 +0000 (19:15 -0700)]
Build _bin.c files in libinstaller; clean up B/I separation
Clean up the BSUBDIR/ISUBDIR separation further. Build _bin.c files,
which are an intermediate stage toward building the installers, in the
libinstaller directory, since that directory is used by all the
installers anyway. That also lets us get bin2c.pl out of the root.
H. Peter Anvin [Sat, 28 Jun 2008 01:47:02 +0000 (18:47 -0700)]
Fix "make clean", "make installer"
- "make clean" should not clean up things that "make installer" cannot
regenerate.
- "make installer" should not descend into subdirectories which are
target only, e.g. com32 and sample.
The Linux platform stuff in com32 is old and bitrotted, and was only
for debugging in the first place. Just ignore it.
H. Peter Anvin [Fri, 27 Jun 2008 22:05:14 +0000 (15:05 -0700)]
Update gPXE to current git
There are some build fixes which may be relevant, so pull in the
latest gPXE git.
H. Peter Anvin [Fri, 27 Jun 2008 22:03:13 +0000 (15:03 -0700)]
gpxe: Separate rules for undionly.kpxe and gpxelinux.0
To avoid confusion during subdirectory make, make the undionly.kpxe ->
gpxelinux.0 conversion an explicit rule.
H. Peter Anvin [Fri, 27 Jun 2008 19:56:10 +0000 (12:56 -0700)]
gPXE: [a20] Send a null command to the KBC after changing A20
Send a null command, specifically "pulse outputs" with no outputs
selected, to the KBC after changing A20. This was apparently done by
DOS, presumably as a synchronization hack, and the authors of the UHCI
spec thought it was inherent. Therefore, there are systems out there
(e.g. HP DL360 G5) which will stop responsing to "legacy USB" unless
they see the null command, 0xFF, written to port 0x64 at the end of
the A20 toggling sequence.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 27 Jun 2008 01:50:22 +0000 (18:50 -0700)]
isolinux: don't clobber bp in getfssec
The comapi functions get very unhappy if bp is ever clobbered, since
it uses bp as a frame pointer.
H. Peter Anvin [Fri, 27 Jun 2008 00:41:52 +0000 (17:41 -0700)]
comboot.doc -> comboot.txt
H. Peter Anvin [Wed, 25 Jun 2008 20:50:50 +0000 (13:50 -0700)]
ldlinux: handle "first byte E5 change to 05" rule in FAT
FAT has a somewhat obnoxious rule: byte E5 in the first position is
encoded as 05. If it was *always* that case we could simply fold it
into the codepage tables, but that rule applies only to the first
character.
Note that in the common codepages (incl. 437), E5 is lower-case sigma
(σ), which we currently upper case to upper case sigma (Σ, E4)
preventing a match -- which DOS *doesn't* do (it thinks of the Greek
characters as symbols, not subject to case distinctions.) Putting
that special case in the codepage-generation scripts seems too ugly,
though.
H. Peter Anvin [Wed, 25 Jun 2008 19:14:05 +0000 (12:14 -0700)]
cptable: error out on incorrect usage
H. Peter Anvin [Wed, 25 Jun 2008 19:10:44 +0000 (12:10 -0700)]
Add more codepage data; support disjoint mappings
Add additional codepage data from the Unicode Consortium.
Additionally, add support for generating codepage files for the case
where the filesystem codepage and the display codepage do not match.
The standard Makefile doesn't actually do that, however.
H. Peter Anvin [Wed, 25 Jun 2008 01:06:09 +0000 (18:06 -0700)]
extlinux: Fix comment
"Bytes left" should be "bytes read"
H. Peter Anvin [Tue, 24 Jun 2008 22:28:40 +0000 (15:28 -0700)]
mboot.c32: no need to include the ANSI engine
We don't need the ANSI engine in mboot.c32.
H. Peter Anvin [Tue, 24 Jun 2008 22:27:12 +0000 (15:27 -0700)]
NEWS: document newline fix.
H. Peter Anvin [Tue, 24 Jun 2008 22:25:14 +0000 (15:25 -0700)]
Default to \n -> \r\n in ANSI and xserial
Default to \n -> \r\n conversion in the ANSI and xserial modules,
rather than relying on escape codes to make that behave. This
effectively means that as far as the serial port is concerned, this
behavior cannot be turned off (with less than having the xserial state
machine interpret this sequence) and the escape code *should not* be
used.
That is fine for our applications, though.
H. Peter Anvin [Tue, 24 Jun 2008 06:18:30 +0000 (23:18 -0700)]
NEWS: document complex menu system fix
Murali Ganapathy [Mon, 23 Jun 2008 06:04:11 +0000 (23:04 -0700)]
complex menu: Fixed bug in menu.c so complex.c32 works again.
Avoid crashing in the presence of unnamed submenus.
H. Peter Anvin [Tue, 24 Jun 2008 00:21:50 +0000 (17:21 -0700)]
Ugly workaround for bug in GNU ld 2.17
GNU ld 2.17, which is still included with Debian 4.0 (etch),
mishandles PC-relative relocations to an absolute address. Hack
around it by making pm_entry a segment-relative symbol, completely
unnecessarily so.
H. Peter Anvin [Mon, 23 Jun 2008 04:25:44 +0000 (21:25 -0700)]
extlinux: actually fix the closing of a file on EOF
Actually close the file properly on EOF, even if not aligned to a
sector boundary. Sigh.
H. Peter Anvin [Mon, 23 Jun 2008 02:11:28 +0000 (19:11 -0700)]
parsecmd: on an unknown keyword, print the unknown keyword
Print the unknown keyword if we run into one.
H. Peter Anvin [Mon, 23 Jun 2008 02:10:53 +0000 (19:10 -0700)]
extlinux: fix the end of file condition
We would incorrectly not set SI=0 when returning from getfssec upon
end of file. Fix this.
H. Peter Anvin [Fri, 20 Jun 2008 23:12:14 +0000 (16:12 -0700)]
NEWS: Document A20 change
H. Peter Anvin [Fri, 20 Jun 2008 23:09:13 +0000 (16:09 -0700)]
chain.c32: use a more Linux-kernel-like syntax
Make the syntax for chain.c32 more Linux-kernel-like. This also makes
parsing easier, so it's a win all around.
H. Peter Anvin [Thu, 19 Jun 2008 23:32:57 +0000 (16:32 -0700)]
core/writedec.inc: fix comment
Decimal, not hex...
H. Peter Anvin [Thu, 19 Jun 2008 18:06:38 +0000 (11:06 -0700)]
core: add decimal number write routine
Add routine to write decimal numbers, currently unused, but likely to
become useful at some time or another.
H. Peter Anvin [Thu, 19 Jun 2008 18:05:06 +0000 (11:05 -0700)]
chain.c: avoid comma-space in assembly stubs
Comma-space takes up too much horizontal space, since we
want to be able to comment properly.
H. Peter Anvin [Thu, 19 Jun 2008 18:00:59 +0000 (11:00 -0700)]
chain.c32: check the stub sources into the tree
Check the stub sources into the tree, even though they aren't used by
the build; they are still useful when experimenting with changing this
stuff.
H. Peter Anvin [Thu, 19 Jun 2008 17:39:44 +0000 (10:39 -0700)]
Add address aliases for freedos and msdos
H. Peter Anvin [Thu, 19 Jun 2008 17:38:15 +0000 (10:38 -0700)]
chain.c32: minor stylistic cleanup
H. Peter Anvin [Thu, 19 Jun 2008 17:36:07 +0000 (10:36 -0700)]
chain.c: we can't rely on dosmem and int13 in here...
dosmem and int13 can change during boot loader shutdown. It
is therefore unsafe to rely on them retaining their value from
running in chain.c32 itself. Instead, we have to install a
suitable stub which makes that particular determination at
runtime. Fortunately that is not all that hard to do.
H. Peter Anvin [Thu, 19 Jun 2008 06:43:39 +0000 (23:43 -0700)]
chain.c32: support loading DOS kernels
Support loading files below 0x7c00, as required, for example, by DOS
kernels. Furthermore, pass the drive number in BL as well as DL.
With this, we can load the FreeDOS kernel with:
chain.c32 hd0 -seg 0x60 -file /kernel.sys
Should really clean up the syntax before 3.70 final, though, and
provide a way to default to the syslinux device.
H. Peter Anvin [Thu, 19 Jun 2008 06:42:47 +0000 (23:42 -0700)]
<syslinux/bootrm.h>: fix order of SS and DS
SS is segment 2, DS is segment 3; this header had them backwards.
Fortunately not too many things relied on having DS != SS.
H. Peter Anvin [Wed, 18 Jun 2008 16:05:33 +0000 (09:05 -0700)]
TEST: issue a null command to the KBC as part of A20-flipping
UHCI supposedly wants a null command (0FFh) sent to the KBC as part of
the A20-flipping sequence. See if that works for us.
H. Peter Anvin [Mon, 16 Jun 2008 07:18:48 +0000 (00:18 -0700)]
codepage: strip accents during shortname upper-casing
If we don't have a direct upper-case equivalent to a character, but we
*do* have the "naked" version of the upper-case character (defined as
the first character of the canonical Unicode decomposition of the
case-mapped character), then use it for the intracodepage table (used
for shortnames.) This matches DOS behaviour. No obvious way, yet, to
handle the fact that DOS doesn't uppercase the lowercase sigma, but
that's not a huge problem; besides, lowercase sigma is mapped to
position 0xE5, which would require dealing with the special handling
of this character in the first position.
H. Peter Anvin [Mon, 16 Jun 2008 07:07:23 +0000 (00:07 -0700)]
codepage: include case variant characters in UnicodeData
Adjust the gensubset.pl script to that all case variants are
explicitly included in UnicodeData.
H. Peter Anvin [Mon, 16 Jun 2008 06:55:30 +0000 (23:55 -0700)]
TODO: remove obsolete items
H. Peter Anvin [Mon, 16 Jun 2008 00:05:37 +0000 (17:05 -0700)]
chain.c32: finalize the NTLDR interface
Settle on a final implementation of the NTLDR support.
H. Peter Anvin [Mon, 16 Jun 2008 00:03:18 +0000 (17:03 -0700)]
loadfile: make sure we don't trash errno
Make sure we don't trash a useful value in errno.
H. Peter Anvin [Sun, 15 Jun 2008 17:43:14 +0000 (10:43 -0700)]
writestr_early: save/restore registers
We have made it this far without it, but it seems like a disaster
waiting to happen. We can afford the extra four bytes in sector 1.
H. Peter Anvin [Sun, 15 Jun 2008 17:42:01 +0000 (10:42 -0700)]
Fix bogus instances of writestr_early
Fix a set of bogus calls to writestr_early instead of writestr.
H. Peter Anvin [Sun, 15 Jun 2008 17:37:10 +0000 (10:37 -0700)]
Mechanically rename the writestr functions
Mechanically rename the writestr functions:
writestr -> writestr_early
cwritestr -> writestr
... to reflect which function is more appropriate to call in normal
circumstances.
H. Peter Anvin [Fri, 13 Jun 2008 23:20:05 +0000 (16:20 -0700)]
gpxe: update gpxe to latest git
H. Peter Anvin [Fri, 13 Jun 2008 21:34:55 +0000 (14:34 -0700)]
Make it explicit that Windows need -swap, even XP :(
Sebastian Herbszt [Wed, 11 Jun 2008 20:53:01 +0000 (22:53 +0200)]
pci: fix off-by-one error and introduce MAX_PCI_FUNC
In include/sys/pci.h we have
#define MAX_PCI_BUSES 255
and
struct pci_bus_list {
struct pci_bus pci_bus[MAX_PCI_BUSES];
uint8_t count;
};
And in lib/pci/scan.c
for (bus = 0; bus <= MAX_PCI_BUSES; bus++) {
pci_bus_list->pci_bus[bus].pci_device_count = 0;
Fix possible overflows and introduce MAX_PCI_FUNC.
- Sebastian
H. Peter Anvin [Fri, 13 Jun 2008 00:44:59 +0000 (17:44 -0700)]
chain.c32: don't swap drives when already primary
Don't install the swap stub when we are already the primary drive,
even if -swap is specified.
H. Peter Anvin [Fri, 13 Jun 2008 00:43:00 +0000 (17:43 -0700)]
NEWS: Document new chain.c32 features.
H. Peter Anvin [Fri, 13 Jun 2008 00:41:08 +0000 (17:41 -0700)]
chain.c32: support swapping BIOS drive numbers
Support installing a stub to swap BIOS drive numbers.
H. Peter Anvin [Fri, 13 Jun 2008 00:11:42 +0000 (17:11 -0700)]
chain: use shuffle API; support loading a boot file
Use the shuffle API, and support loading a boot file instead of the
standard boot sector. This should be able to load NTLDR.
H. Peter Anvin [Thu, 12 Jun 2008 23:48:00 +0000 (16:48 -0700)]
NEWS: update the blurb about the new MEMDISK geometry stuff.
H. Peter Anvin [Tue, 10 Jun 2008 23:36:30 +0000 (16:36 -0700)]
fdgeo.pl: exit values; fix division by zero
Return exit values to go with the error messages; don't divide by zero
in case of range error.
H. Peter Anvin [Tue, 10 Jun 2008 23:32:00 +0000 (16:32 -0700)]
Fix DOS interrupt error messages
H. Peter Anvin [Tue, 10 Jun 2008 23:15:23 +0000 (16:15 -0700)]
When erroring out on an DOS interrupt, print info
Print the interrupt number, AX, and CS:IP of the offending system
call.
H. Peter Anvin [Tue, 10 Jun 2008 22:40:11 +0000 (15:40 -0700)]
ldlinux: search_dos_dir returns attributes in DL
search_dos_dir returns attributes in DL, so we shouldn't push/pop DX
around this function!
H. Peter Anvin [Tue, 10 Jun 2008 19:17:08 +0000 (12:17 -0700)]
Add *.cp to .gitignore
H. Peter Anvin [Tue, 10 Jun 2008 17:20:36 +0000 (10:20 -0700)]
Add file missing from previous checkin
Add file missing from checkin
012d53b0453ac7a5ec03fb802434fe64e6f85bf5
H. Peter Anvin [Mon, 9 Jun 2008 23:32:09 +0000 (16:32 -0700)]
Whitespace cleanup
H. Peter Anvin [Mon, 9 Jun 2008 23:16:31 +0000 (16:16 -0700)]
PXELINUX: Enable idle calls on select platforms
Enable idle calls on select platforms, based on device ID.
In particular, certain Broadcom chips need them to avoid FIFO stalls.
H. Peter Anvin [Mon, 9 Jun 2008 19:21:05 +0000 (12:21 -0700)]
FAT: make all codepage data derived from the same place
Make the codepage data all derive from the Unicode tables, and create
files that could be dynamically loaded in the future.
H. Peter Anvin [Sat, 7 Jun 2008 21:46:44 +0000 (14:46 -0700)]
NEWS: remove redundant clause
H. Peter Anvin [Sat, 7 Jun 2008 21:39:01 +0000 (14:39 -0700)]
MEMDISK: algorithmic determination of floppy formats
Consider all disks < 4 MB to be floppies, and guess their geometry
algorithmically.
H. Peter Anvin [Fri, 6 Jun 2008 19:38:42 +0000 (12:38 -0700)]
MEMDISK: Use aligning memcpy/memset, compile with -mregparm=3
Use the aligning memcpy/memset from libcom32. Switch memdisk to
compiling with -mregparm=3, except for the interfaces to assembly.
H. Peter Anvin [Fri, 6 Jun 2008 19:18:18 +0000 (12:18 -0700)]
Aligning memcpy/memmove/mempcpy/memset for libcom32
Aligning versions of memcpy/memmove/mempcpy/memset for libcom32.
H. Peter Anvin [Fri, 6 Jun 2008 17:57:06 +0000 (10:57 -0700)]
core: do aligned transfers in bcopy32
Always align the destination in transfers in bcopy32. We should also
do this in the varous other implementations, especially in com32.
H. Peter Anvin [Fri, 6 Jun 2008 07:08:13 +0000 (00:08 -0700)]
FAT: Support VFAT long filenames
Initial support for VFAT long filenames; currently hard-coded to
codepage 865, no support for other codepages or for accessing files
with names which aren't in the current codepage. This hopefully
shouldn't be an issue for SYSLINUX applications.
H. Peter Anvin [Thu, 5 Jun 2008 23:37:24 +0000 (16:37 -0700)]
core: fail the link if we push above the 64K point
If the base section stuff exceeds 64K, then fail.
H. Peter Anvin [Thu, 5 Jun 2008 23:33:58 +0000 (16:33 -0700)]
codepage: add "make spotless" target
H. Peter Anvin [Thu, 5 Jun 2008 23:09:50 +0000 (16:09 -0700)]
Add support for creating codepage/Unicode mapping tables
Add support for creating codepage/Unicode mapping tables; this is a
step toward VFAT long filename support.
H. Peter Anvin [Thu, 5 Jun 2008 22:19:30 +0000 (15:19 -0700)]
pxelinux: remove RBFG section
We haven't had the RBFG section in the proper place for quite a while,
and there are better options than RBFG now anyway, so just drop it.
H. Peter Anvin [Thu, 5 Jun 2008 22:18:56 +0000 (15:18 -0700)]
core: actually enable debugging info
Need to use -g -F stabs, not just -F stabs.
H. Peter Anvin [Thu, 5 Jun 2008 01:52:18 +0000 (18:52 -0700)]
Update gPXE from gPXE git
H. Peter Anvin [Wed, 4 Jun 2008 23:09:58 +0000 (16:09 -0700)]
pxelinux: add colon to label by itself
Newer versions of NASM warn about a label on a line by itself (because
it could have been a typoed opcode.) Add a colon.
H. Peter Anvin [Fri, 30 May 2008 00:53:42 +0000 (17:53 -0700)]
Centralize configurables; better "make install" etc
Begin the process of centralizing configurables.
Improve "make install" and "make netinstall"; add "make
extbootinstall".
H. Peter Anvin [Thu, 29 May 2008 23:11:30 +0000 (16:11 -0700)]
Shut up gpxe Makefiles when making spotless
gpxe Makefiles are just way too loud, especially when just cleaning up.
H. Peter Anvin [Thu, 29 May 2008 23:10:45 +0000 (16:10 -0700)]
We're explicitly setting EMBEDDED_IMAGE, so leave src/Config unchanged
Since we're explicitly setting EMBEDDED_IMAGE in gpxe/Makefile, no
need to set src/Config.
H. Peter Anvin [Thu, 29 May 2008 23:00:08 +0000 (16:00 -0700)]
Document change of directory structure
H. Peter Anvin [Thu, 29 May 2008 22:49:01 +0000 (15:49 -0700)]
core/Makefile: remove vestiges of subdirectory machinery
H. Peter Anvin [Thu, 29 May 2008 22:48:46 +0000 (15:48 -0700)]
mbr: clean up *_bin.c files
H. Peter Anvin [Thu, 29 May 2008 22:43:18 +0000 (15:43 -0700)]
The only thing still in the root is version.{h,gen}; needed early
The only things we still have in the root is version.h and
version.gen. As a result, move all the subdirectories later, since
they are common prerequisites.
H. Peter Anvin [Thu, 29 May 2008 22:34:54 +0000 (15:34 -0700)]
mkdir the prerel directory
H. Peter Anvin [Thu, 29 May 2008 22:33:50 +0000 (15:33 -0700)]
Stop using Cogito
Replace remaining Cogito commands with plain git commands.
H. Peter Anvin [Thu, 29 May 2008 22:11:38 +0000 (15:11 -0700)]
Move files out of root into core, dos, and utils
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.
H. Peter Anvin [Thu, 29 May 2008 05:11:57 +0000 (22:11 -0700)]
Fix localboot stack bug; cleanup section handling in the ELF universe
Fix and clean up section handling in ELF; fix stack reset in localboot
directive (for non-pxelinux, that is.)
H. Peter Anvin [Thu, 29 May 2008 01:58:00 +0000 (18:58 -0700)]
Assemble via ELF, to enable future linking
Assemble all files to ELF instead of using the NASM built-in linker.
This can enable us to do actual linking in the future.
H. Peter Anvin [Wed, 28 May 2008 16:47:44 +0000 (09:47 -0700)]
pxenv: save away the PXE return code so COMBOOT can return it
PXELINUX itself doesn't actually use the PXE return code, but the
COMBOOT interface is supposed to return it. Accordingly, make sure it
is stashed away so we can return it; for code that doesn't care, it
just writes a dedicated status variable which can be safely ignored.
H. Peter Anvin [Wed, 28 May 2008 16:23:57 +0000 (09:23 -0700)]
Merge commit 'origin/master' into gpxe-added
Conflicts:
NEWS
version
H. Peter Anvin [Wed, 14 May 2008 01:30:20 +0000 (18:30 -0700)]
Document GPT boot protocol; add !GPT signature
Document the GPT boot protocol; add additional assurance by
requiring that EAX contains "!GPT" for the GPT information
to be valid.
H. Peter Anvin [Wed, 14 May 2008 00:59:21 +0000 (17:59 -0700)]
Add NEWS for 3.64
H. Peter Anvin [Wed, 14 May 2008 00:52:26 +0000 (17:52 -0700)]
Merge commit 'origin/gptmbr'
Stefan Bucur [Mon, 12 May 2008 18:47:23 +0000 (21:47 +0300)]
Fixed the various Makefiles so that SYSLINUX compiles on platforms with GCC -fstack-protector flag enabled by default.