| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Make sure we actually set the disk CMOS type.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
The old name was intended as a test to prevent collision. New name
seems more logical and appropriate. By reusing the mem= parameter and
adjusting all of the memory calls that MEMDISK replaces through the use
of insertrange(), there's nothing better that we can do.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This removes the need to have these tiny files around. This also
changes it to be relative to $(topdir), allowing for memdisk to be moved
if needed in the future.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Only touch the ranges that are type 1 (available)
|
| |
|
| |
|
|
|
|
|
|
| |
Add a new parameter, int15maxres, for specifying (in decimal bytes) the
maximum amount of free RAM that different calls will return. The RAM is
tagged in INT15h AXe820h as reserved in order to satisfy this.
|
|
|
|
|
|
|
|
| |
The function might return CF==0 ("success"), but could
include AH==0 ("no such drive"). This is the case on
at least a number of Dell models. Now we check AH, too.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
|
|
|
|
|
|
|
|
|
| |
In an effort to trouble-shoot a problem report on some Dell
models (including an Optiplex GX260), we add further debugging
output to try to find out at which point things go wrong. The
problem units are apparently probing as "drive present" for all
drives, which obviously isn't right.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
|
|
|
|
|
| |
By removing the use of #ifdef-#endif blocks.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
|
|
|
|
|
|
| |
Use "extern const char foo[];" for an external symbol rather than
"extern void" (gcc 4.5 fix.)
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Add a sector_shift field to the MDI rather than assuming 512-byte
sectors. Fix memdiskfind to report size in bytes, not in sectors.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
| |
Make mstructs.h includable from a Linux utility.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two changes to the INT 0x13, AH=0x7B El Torito function:
1. Support the DL=0x7F "terminate all" parameter
2. Only respond to DL=0x7F or DL=our particular emulated drive number
This prevents tools like Bart Lagerweij's El Torito tools from
receiving false positives when probing all drive numbers.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When mstructs.h is used by MDISKCHK.COM, pointers have
a 16-bit size and thus the mBFT structure sizeof() is
smaller under OpenWatcom. We now union this pointer
member with a uint32_t to force the field to at least
32 bits.
There is another pointer in this header file which is
already unioned with a uint32_t, due to that field's
dual-purpose. That field is fine under OpenWatcom.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
| |
| |
| |
| |
| |
| |
| | |
This needs to be in here in order for the header file
to be useful to any C file other than setup.c.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of padding the mBFT so its size is correct, we
actually put the MDI struct in there, since the last
commit provided it.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, the patch area began after the beginning of
the MDI, but continued past its end. This is difficult
to express with C structures, so we've simply changed
the patch area to include the entire MDI. So it now
includes the MDI size and MEMDISK version info, which
we simply make constant to avoid modifying.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit moves the MEMDISK header structure into
the common structures header file.
It also adds the "safe hook" structure to the MEMDISK
header structure, since that matches what's in the hook
binaries. Thus, we access the "safe hook" via the
header pointer, instead of separately.
Tested against a DOS floppy image including an
experimental MDISKCHK.COM and also gainst WinVBlock.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We used uint32_t in a few places where it's also handy
to refer to those fields' segment and offset components.
Now we can do so via the real_addr_t union type.
Additionally, there are a couple of places where we now
have pointer fields instead of uint32_t fields, because
we know what kind of struct the field is pointing to.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since MDISKCHK.COM (and possibly COM32 modules) could make use of
structures found in MEMDISK's setup.c, we move these into a new
header file mstructs.h.
Also, since the OpenWatcom compiler uses a structure packing prefix
and GCC uses a structure packing postfix, we accomodate this with
preprocessor definitions around those structures needing to be
packed.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
|\ \
| |/
| |
| |
| |
| |
| | |
Resolved Conflicts:
core/cpuinit.inc
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
| |
| |
| |
| |
| |
| | |
We were calculating the mBFT checksum too early; dpt_ptr could
change after checksumming, so we now do it after that possibility.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Resolved Conflicts:
com32/modules/Makefile
core/comboot.inc
core/cpuinit.inc
core/idle.inc
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes a small inaccuracy in memdisk:
get_disk_image_geometry() does not use MBR data to detect disk
geometry, since it checks MBR signature at wrong offset.
This normally does not cause problems, because memdisk guesses a
reasonable value, if no MBR is found.
Signed-off-by: Bodo Stroesser <bstroesser at ts.fujitsu.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|/
|
|
|
|
| |
DEBUG doesn't work in unzip.c/inflate.c, so always #undef it.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Make "nopass" specific to the current drive type. Add new option
"nopassany", which also clobbers the drive counts of both types.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
| |
() is not a prototype, use (void)
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
Replace -W -Wall hardcoded into a bunch of Makefiles with $(GCCWARN),
a centralized variable defined in the root MCONFIG. Add
-Wstrict-prototypes to the list of global warnings: we should never
have non-prototyped declarations.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Impact: Initializing variables
The checksum_buf function was providing an incorrect checksum
on at least one build.
|
|
|
|
|
|
|
| |
Impact: Fixing mBFT alignment
It was previously possible that the mBFT might not be 16-byte
aligned because the .data section was not.
|
|
|
|
|
|
| |
Make the "safe hook" structure code a bit more readable.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two additions to MEMDISK to support OS drivers.
The "safe hook" structure ("Safe Master Boot Record INT 13h Hook Routines")
is a means for an OS driver to follow a chain of INT 13h hooks, examining
the hooks' vendors and assuming responsibility for hook functionality along
the way. For MEMDISK, we guarantee an additional field which holds the
physical address for the mBFT.
The mBFT is an ACPI table which an OS driver can scan for. The mBFT
contains the official MEMDISK Info structure (MDI) which itself includes
parameters the OS will want to know about. The mBFT points back at the
"safe hook" structure's physical address so that an OS supporting both
"safe hook" chain-walking as well as mBFT-scanning can know that both
refer to the same MEMDISK instance.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Per the El Torito spec, pptr->cd_pkt.sect_count are in virtual
sectors, i.e. 512-byte sectors.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
We have two fundamental quantities: the offset of the disk image
itself and the LBA from which we boot. Keep them straight. This
should make at least some no-emulation isos work correctly.
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
| |
At least PC-DOS requires this to avoid an infinite loop; the DL we
restore is not the same DL that we call the underlying BIOS with, but
rather the original one (before the decrement.) PC-DOS loops over all
the floppies and relies on the call preserving DL in order to advance
the loop.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
memdisk/memdisk_chs.asm
memdisk/memdisk_edd.asm
memdisk/setup.c
Resolved:
Deleted memdisk/memdisk_chs.asm
Deleted memdisk/memdisk_edd.asm
Modified memdisk/setup.c
|
| |
| |
| |
| |
| | |
With this patch, users can now boot El Torito-bootable .ISO (CD/DVD) images.
The user should specify "iso" on the kernel command-line.
|
| |
| |
| |
| |
| |
| |
| | |
As of this commit, these hooks do nothing special and are unused. They are
intended to support the El Torito "No Emulation" (2048-byte sector size) and
"Floppy Emulation"/"HDD Emulation" (512-byte sector size) modes for bootable
optical disc drive media (CD/DVD).
|
| | |
|
| |
| |
| |
| | |
Suffixed with _512 to indicate a sector size of 512 bytes.
|
| |
| |
| |
| |
| |
| |
| | |
Our INT 13h hook will now only shift BIOS drive numbers up to a limit.
This limit is found by probing for a contiguous range of BIOS drives. Anything
above this range of contiguous drive numbers is not shifted, and will thus be
available to callers at the same drive number.
|