Files
PermalinkFailed to load latest commit information.
Type
Name
Latest commit message
Commit time
optromloader: IBM PC/Clone 8086+ floppy-loading of option roms.
Booted from a floppy, it will load an Option ROM image into the end of conventional memory.
Use cases (non-exhaustive)
- Test boot ROMs before burning them.
- Netboot with etherboot/gpxe/ipxe.
- IDE support (including LBA!) with XTIDE Universal BIOS.
Highlights
- Flat assembler syntax.
- Pure 8086 code.
- Fits in a floppy bootblock.
- Verifies ROM image checksum after loading.
- Supports all Option ROM sizes. Spec goes up to 127.5KB, but full 128KB ROMs are supported.
- An extra block is read when length=255 (127.5KB/128KB case).
- Reserves memory from top of conventional memory.
- Alternatively allows specifying target segment (upper area possible).
- Works on PC/XT/AT and clones.
- Also works on newer hardware, such as the 486 with AMI BIOS I wrote it for.
- Trivial to use. Concatenate loader and the ROM image, write into floppy.
- Makefile will prepare 5.25" 360K/1.2M and 3.5" 720K/1.44M floppy images.
- MIT License. See LICENSE file.
Usage
- Ensure fasm (flat assembler) is installed.
- Copy your ROM image as the
optrom.bin
file.- Ensure the ROM image is signed (has correct checksum).
- optromloader will loudly refuse to run the ROM image if not signed.
- Test with
make emulaterom
. Qemu's BIOS won't see the ROM if it's not signed. - Qemu provides a python tool to sign ROMs:
- For XTIDE Universal BIOS ROMs, use its XTIDECFG tool to configure and sign ROM images.
- Ensure the ROM image is signed (has correct checksum).
- Optionally review Makefile for advanced usage.
- If boot floppy drive won't be
A:
, setbios_drive
value appropriately. - If specifying target segment in upper memory, ensure it is visible as memory in BIOS settings.
into-486
works on my AMI BIOS 486.
- If boot floppy drive won't be
- Run
make
. - Floppy images will be created (fd*.img).
- Optionally test 1.44M image with qemu:
make emulate
. - Alternatively, use a binary release. Concatenate:
- optromloader9/15/18, according to sectors per track in your floppy format:
9
for 5.25" 360K and 3.5" 720K.15
for 5.25" 1.2M.18
for 3.5" 1.44M.
- the ROM image.
- pad to floppy size.
- optromloader9/15/18, according to sectors per track in your floppy format:
Caveats
- Option ROMs that make assumptions about their base address may not work if loaded into a different address.
Author
Roc Vallès Domènech
About
IBM PC/Clone 8086+ floppy-loading of option roms.
Topics
Resources
License
You can’t perform that action at this time.
from Hacker News https://ift.tt/3CkyvYF
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.