- recompiled after latest changes
- recompiled after latest changes
- regenerated after latest changes
- recompiled BIOS images
- regenerated after latest changes
- regenerated
- regenerated after latest changes
- regenerated after latest changes
- regenerated after latest changes
- regenerated after latest changes
- recompiled after latest changes
- recompiled after latest changes
- BIOS binaries regenerated
- fixed MTRR mask write bug and enabled check in msr.cc
- recompiled BIOS after latest changes
- fixed SF bug #2851495: if PCI BIOS functions return without error, the int1a_handler must complete with iret to re-enable interrupts
- implemented INT 15h/89h (patch by Sebastian Herbszt)
- regenerated after latest changes
- applied non-ACPI timer interrupt routing fix from the Qemu bios patch queue (Bochs now uses the original code of rev. 1.229 again)
- applied some patches from Qemu's bios patch queue and the Qemu ML
- removed special case for the Bochs VBE LFB base address (it can be treated like other PCI devices now) - changed base address for the PCI memory space to 0xc0000000 - rombios32: fixed a warning - fixed timeout flag for serial i/o functions
- recompiled BIOS images
- fixed PCI IRQ router check for legacy BIOS (checking vendor ID only)
- implemented MTRR support in the bios. This is a combination of the individual patches from the kvm tree. The code was written by Avi Kivity and Alex Williamson. Sebastian Herbszt added checks for CPUID_MTRR and CPUID_MSR.
- rebuild after latest changes
- applied 3 patches from the Qemu project (Anthony Liguori) * disable stack protector for BIOS * make ACPI tables byte-aligned * fix Bochs BIOS build from a separate directory
Don't power down vga card on entering S3 state. Patch by Gleb Natapov
Don't use unreserved memory in BIOS. Patch by Gleb Natapov
Execute rombios32 code from rom address 0xe0000. Patch by Gleb Natapov
Preserve memory content during SMM iniT. Patch by Gleb Natapov
Add S3 state to DSDT. Handle resume event in the BIOS. patch by Gleb Natapov
recompile BIOS
Updated BIOS images
- remove CMOS access from AML code (SF patch #2073039)
recompile BIOS images with latest merged patches
- minor ATA/ATAPI model string fixes
* cut model string on boot screen if larger than 36 characters to make one
"ata" message fit in one line
* config parameter for model string needs one more byte
* harddrive: terminate model string with null
- applied rombios patches from SF tracker by Sebastian * handle shutdown status codes 0Ah, 0Bh and 0Ch * changed #if #else construct since hard_drive_post is always called
- BIOS images regenerated
- set the compatible pci interrupt router back to PIIX (SF patch #1956843 by Sebastian)
Precompiled Bochs BIOS binaries
Merged LBA48 patch from @SF tracker
Updated BIOS binaries
Update precompiled BIOS images
- BIOS boot menu support added (SF patch #1901027 by Sebastian)
- applied rombios boot message improvements by Sebastian
* shorten the boot failure message (removed redundant part) and added some
indentation
* print BEV product string
* changed put_str to accept segment and offset as parameters. It allows
printing strings from memory != get_CS(), e.g. option roms.
* introduced a custom format specifier %S to bios_printf
Merged BIOS @SF patches by Sebastian 1878558 SMBIOS fixes 1880471 SMBIOS fix type 0
- applied patch from the Qemu-devel list by Filip Navara
* added generation of SSDT ACPI table that contains definitions for available
processors
* added basic implementation of SMBIOS
* Added querying of BIOS UUID using VMware backdoor I/O port (enable only if
BX_QEMU is defined)
* Added RTC device to ACPI DSDT table
Merged some BIOS patches from @SF tracker
- implemented LBA48 support (since BIOS functions are limited to 32 bit, the max. disk size is now 2 TB)
Merge SF tracker BIOS patches
- don't abort ATA reset for not existing slave drive. The reset bit must always be cleared to avoid blocking existing master drive.
- skip SMM init if already done at first boot time (fixes reboot failure)
Fixed my BIOS optimization
- inline asm optimizations by Stanislav - initialize PAM register for ROM-to-RAM copy even after reboot
- updated after latest changes
- applied rombios patches from SF patches section by Sebastian
* save PnP Option ROM Product Name string in IPL Boot Table
* move the #define IPL_* lines to top of the file and change
struct ipl_entry to ipl_entry_t by using typedef
- improved HD recognition and CD boot (patches by Myles Watson)
* fixed minor error from printf patch confusion (negation based on wrong word)
* added helper function await_ide
* changed lba calculation to not corrupt lba (for debugging and clarity)
* added support for partial completions of ata_cmd_packet (never happens in
the simulator, but happens all the time in hardware)
* update atapi_request_sense and atapi_is_ready - based on FILO
* correct an int 15 call that should have been int 0x15
* trivial fix when BX_PCIBIOS and BX_ROMBIOS32 not defined
- implemented %X in bios_printf (patch by Sebastian)
- reverted removal of one DPTE checksum bugfix - fixed %ld and %lu padding (now only using it for %lx)
- rombios patches by Myles Watson <mylesgw@gmail.com> * corrects a spelling error and removes the lba_capable comment * moves dpte_segment after dpte_offset (endian problem) in the struct * changes int13 0x15 to use the logical geometry instead of physical to return sectors * clips cylinders in Int13DPT * fixes bit shift problem in options (parens in the wrong place) * returns the correct offset for dpte.iobase2 * fixes a pointer arithmetic error in calculating the checksum of the dpte * moves #if BX_SUPPORT_FLOPPY to include more floppy code * added support for %lx %ld and %lu for bios_printf()
- fixed the memory allocation for the ACPI tables in situations when less than 16MB are present (patch by Bernhard Kauer)
- INT 15h AH=86h was reading the wrong stack frame (SF patch #1791000)
- regerated after latest updates
- clear out RSDT memory on init (patch by Bernhard Kauer from the ML)
- change ACPI table revision number to 1
- fixed floppy boot signature check switch - added network boot ROM support in the main Bochs code (already present in BIOS)
- added expansion-ROM boot support to the ROMBIOS (SF patch #1741153 ported from the XenSource project)
- implemented INT15h, fn 0xC2 (mouse), subfn 3, set resolution (SF patch #1734159) - support for large PCI memory regions (>=64Mb) added (patch by Paul Brook)
- bios_printf() fix for %s format (from VirtualBox) - removed lots of trailing spaces
- INT 13h: sector number 0 is invalid
- initial ACPI SMBus support added (ported from Qemu, TODO: register devices, bus transactions)
- reset the memory after 32 bit protected mode init (patch from the Qemu project by Fabrice Bellard)
- the int13_harddisk() function modifies the high word of EAX in EDD read/write functions, but it shouldn't, so it must be saved on stack
- PCI BIOS function 'find class code' implemented for real and protected mode
- added stub for real mode PCIBIOS function 'find class code' - improved real mode PCIBIOS error reporting
- clear registers using the XOR instruction
- clear upper 16 bit of the stack pointer when returning to real mode (fixes booting of Ubuntu 6.06)
- build an additional BIOS image without the new 32-bit extensions. It can be used when the new BIOS fails - use wbinvd instruction in the 32-bit init code
- SMRAME bit must be always set for SMRAM access
- improved SMM init (Fabrice Bellard)
- applied patch from the Qemu project (Fabrice Bellard) * use 32 bit pushf/popf in 32 bit PCI bios * moved some useful defines in rombios - minor cleanups
- fixed number of MP table entries (caused FreeBSD 5.3 boot failure) - moved shared defines to new file rombios.h (could be used to show features on the screen after detection by rombios32)
- always generate MP tables (WinXP guest needs this) - new code is now enabled again
- disabled rombios32 call until the critical bugs are fixed - more accurate delay loop using the port 0x61 refresh clock bit - fixed capabilties reported in BIOS banner
- initial revision of the 32-bit init code for the Bochs BIOS * CPU, PCI, ACPI and SMM init * MP and ACPI table generation - MP table generation hack in the Bochs memory code disabled (should be removed) - don't test the checksum of large BIOS images (for now) - existing 16-bit PCIBIOS init disabled for now
- INT 15 AH=88h now returns max. 63M extended memory (Ralf Brown's interrupt list says the limit should be 15M, but real machines are reporting more)
- INT 09h: fixed handling of extended keys (asciicode = 0xe0) - left backslash key added in keycode table
- fixed keyboard LED flag handling and added setting of LEDs (makes keyboard indicators work in Win 3.x, Win 9x and at the boot prompt)
- fixed ATA device detection in case of one drive only connected to controller - applied patch from the qemu project (Fabrice Bellard) * improved INT 15h function AX=E820h * real mode PCI BIOS now returns IRQ routing information (function 0Eh)
- enable interrupts before executing INT 19h and revert previous change
- enable interrupts before executing boot sector code (untested)
- APM cpu idle function fixed (from qemu)
- PCI BIOS: improved error message for function 'find PCI device'
- APM function 0x05 (cpu idle) implemented (tested with Win98) - unused commented stuff removed
- fixed disk size reporting > 64 GB (SF patch #1389776)
- enabled support for harddisks with up to 127 GB in Bochs and bximage - BIOS harddisk detection message is now okay if size is < 64 GB
- end-of-track (EOT) condition implemented - set valid EOT value in BIOS floppy read/write functions - added hack to make older Bochs BIOS version work with EOT feature
- APM function 0x10 (get capabilities) implemented - stubs for APM functions 0x08 and 0x0f added - rebuild bios images if apmbios.S is modified
- disable i/o and memory space access while initializing PCI base address registers
- fixed PCI i/o base address initialization
- PCI i/o and memory base address initialization added
- pause key detection implemented - preparing PCI i/o and memory init function
- keyboard interrupt handler fixes (patch by japheth) * pass all keycodes received by INT 09h to keyboard intercept * don't wait for second keycode if an extended keycode is detected (set flag only)
- fixed enhanced keycode flag for key releases - modified bios startup messages
- fixed flag for enhanced keycode 0xE0 (final part)
- fixed flag for enhanced keycode 0xE0
- new function floppy_prepare_controller() simplifies some floppy functions and makes panic no longer necessary - bios banner now shows active features - indent mode fixed in modified sections
- fixed floppy return status if media not present (MS-DOS expects value 0x80) - more accurate handling of the floppy recalibrate function (removed panic) - small code cleanups and optimizations in the floppy code (e.g. do .. while loops, always using 0040:003e for the floppy interrupt flag) - small updates ported from the PC BIOS project
- fixes for OS/2 in the floppy and rombios code (patch from Robin Kay) * support for XDF images added * floppy controller should hang if media not present * rombios has to reset the floppy controller after read/write failure
- fixed INT 09h keyboard flags handling
- INT 70h has destroyed the upper word of EAX; save/restore all 32-bit registers now
- fixed segment and offset in int70h and modify the high bit only
- missing scancodes for F11 and F12 added to translation table - unknown scancode info message improved
- applied patches by Alex Beregszaszi * serial debug output to COM1 for the rombios (disabled by default) * added missing trailing newlines in info/panic messages - log_bios_start() must initialize serial port for the serial debug feature - comments for the parallel and serial detection code added
- applied patches by Alex Beregszaszi * cross-compilation support for the bios * "user-settable" bios build date string * hexadecimal nuber cosmetics, #0x instead #$ - use real build date for the bios build date string - simplified printer status handling
- applied patches by Alex Beregszaszi * function INT 15h AH=88h implemented * added stub for function INT 16h AX=6f02h * writes to debug/info/error/panic ports can be disabled now
- 4-cpu SMP table fixed (patch by jermar@itbs.cz)
- APM support for 16 bit protected mode added (patch from Struan Bartlett)
- using fixed values for the diskette parameter table instead of int vector 0x1E fixes floppy problems in Win9x guests
- pcibios fixes by lukewarm (SF patch #1114826) * pcibios: preserve esi and edi * pcibios: ignore high-word of edx when calling FIND_PCI_DEVICE * pcibios_real: set readable descriptor to ds when error (for 16bit PM) * bios_printf: replace immediate value 0xf000 with get_CS (for 16bit PM) - Win98 cdrom boot fixed (patch by Magnus Damm)
- fixed real mode PCI BIOS error reporting
- don't panic when an unsupported mouse packet size is requested
- PS/2 mouse scaling functions implemented - int15_function_mouse(): removed unused variables
- Win9x CD boot fixed (SF patch #1087537 by lukewarm)
- mouse type 'none' added (no mouse connected) - added emulation of the PS/2 mouse port without a mouse connected (some OS's still detect a mouse) - fixes for the mouse type 'serial_wheel' (the wheel still doesn't work in Win98)
- PS/2 mouse functions "set sample rate" and "get device id" implemented - presence of the EBDA segment doesn't depend on the PS/2 mouse option
- boot sequence with up to 3 boot devices inplemented. The sequence is stored in the CMOS regs 0x3d and 0x38. TODO: change config option "boot" to use this feature.
- extented floppy parameter table (floppy fix for NT4 from qemu written by Mike Nordell and Derek Fawcus) - int 13h diskette function 08h should return the pointer to the floppy parameter table stored in int 1Eh
- PCI IRQs must always be level sensitive (setup ELCR1/ELCR2 in pcibios init)
- pci irq initialisation added (TODO: initialize pci memory + i/o space)
- int 15 / ah=87h should not clear cr0 when setting bit 0 (SF patch #969967 by Ben Lunt)
- modified the bios / vgabios panic handling. BX_PANIC messages sent by the bios now appear correctly as the Bochs panic message. Now we can get rid of messages with the line number in the source file. - updated / fixed description in biosdev.cc
- calculate checksum of expansion rom (must be 0)
- implement int15, ah=83 Start/Stop Wait Timer (patch.rombios.markevich from Kory Markevich) - applied patch from sava (t.ebisawa / http://ebisa.hp.infoseek.co.jp/bochs/arcs/bochs-2.1.1-jpfix-20040214.zip) * int09_handler: pusha before int15, ah=4f (for "jis_a01" japanese keybord driver, which breaks some registers) * int15_function: add new functions int15_function32, int15_function_mouse (to avoid stack overflow ... DOS/Win9x works better) * int16, ah=00/01/10/11 ignore special key code (F0) - set missing return value and flag for unimplemented EISA BIOS
- A20 gate control implemented (int 15h, ah = 24h) - debug message for unsupported EISA bus features added (int 15h, ah = d8h) - moving rom scan loop to a separate function saves space in the main post code (TODO: add code for rom checksum) - interrupt vector 0x79 set to 0 (TODO: some other vectors seem to be 0, too)
- pci irq routing fixed and initialization added (BUG: ne2k-pci only works with irq 11 in Win95) - bios: irq routing table fixed and updated for 5 slots - ne2k: unnecessary reset call in init() removed - usb: don't execute reset if disabled
- APM and system shutdown support for 16-bit real mode and 32-bit protected mode (patch from Fabrice Bellard)
- int13_cdrom / 32 bit register update fix (aka FreeBSD cdrom boot) (patch from Fabrice Bellard found in LGPL'd VGABIOS patches section)
- turn floppy motor off 2 seconds after last read/write/recalibrate command (patch from Ben Lunt)
- int17_function updated for multiple parallel ports - detection of serial port 3 + 4 added
- fixed int13_harddisk function 10h
Rebuilt BIOS from latest rombios.c
- INT 16h function 05h implemented (grabbed from patch #707931)
- recompile rombios.c rev1.102
- recompiled with rombios.c rev1.100
- detect_serial: detection simplified using IER and IIR - detect_parport: save base address and timeout using push/pop
- int 0x16 function 0x0A implemented (GET KEYBOARD ID) - int 0x16 functions 0x10/0x11 fixed (don't change the ascii code to 0xE0)
Fix ATA/Serial ioport conflict
- regen from rombios.c rev1.95
- recompile rombios.c rev1.94
- compile rombios rev1.93
- compile rombios.c rev 1.92
- compile rombios.c rev1.91
- compile rombios.c rev1.90
- compile rombios.c rev 1.89
- compile rombios.c rev 1.87
- compile from rombios rev1.86
- compile reombios.c revision 1.85
- recompile bioses for rombios.c 1.84
- compile from rombios.c r1.83
- compile from rombios.c r1.82
- compile BIOSes from rombios.c r1.81
- fix a bug reported on ML by Scott Duplichan. Unimplemented int15 calls should return AH=0x86 and CF set. The new AH=E8 calls did not return 0x86 in some cases where the call was not implemented.
- update all bioses to current rombios.c - since rombios.c also supports 8 processors, go ahead and build an 8 cpu bios as well. Modified Files: BIOS-bochs-2-processors BIOS-bochs-4-processors BIOS-bochs-latest Added Files: BIOS-bochs-8-processors
- compile rombios.c r1.78
- compile rombios.s r1.77
- compile rombios.c r1.74
- compile rombios.c r1.73
- compile bios from rombios.c r1.70
- compiled rombios.c rev1.69
- compiled rombios.c rev 1.68
- harddisk controller interrupt must be enabled after a reset and the completion of a read or write operation - int13_harddisk function 0x00 calls ata_reset()
- serial port detection for two ports added to the POST code - parallel port detection fixed: * write the value of AX to 0x0410, not BX * the timeout value is a byte and now stored in CL * the offset of the port address list is 2 bytes
- parallel port detection for two ports added to the POST code
- merged rombios-new-ata.c in rombios.c - compiled BIOS-bochs-latest from latest rombios.c
- real mode PCI BIOS modifies the iret flags on stack if no error is present - bug in the 'find PCI device' functions fixed - register for the PCI i/o addresses is always DX
- added support for 360k floppy images * new floppy type 360k can be used in .bochsrc and the config interface * media type and geometry can be set for the floppy type * BIOS changes to make 360k floppy drives work * bximage can create 360k images now
- jump to POST entry point must be a far jump (MS-DOS and Win95 reboots now) - keyboard init: read output buffer and enable keyboard before self test
- real mode PCI BIOS functions rewritten in assembler - new real mode PCI BIOS functions: find device, read/write byte/dword - C code for PCI BIOS handles errors and prints messages only - function setPCIaddr() no longer needed - functions inw() and outw() no longer used by the PCI BIOS - BIOS32 checksum calculation rewriten to prevent errors - labels of protected mode PCI BIOS renamed
- most important functions of the protected mode PCI BIOS added.
Linux (kernel 2.2.18) is able to use the new features.
Here is the list of changes:
* BIOS32 data structure added
* BIOS32 and protected mode PCI BIOS functions added. The BIOS32 function
returns a pointer to the PCI BIOS entry point when the service $PCI is
requested and the PCI hardware is present.
* Supported 32 bit functions: installation check, find pci device,
read configuration byte/word/dword, write configuration byte/word/dword
* real mode PCI BIOS installation check rewritten in assembler to use 32 bit
registers for the protected mode entry point and the 'PCI ' signature.
TODO:
* add missing functions of the PCI BIOS (if necessary)
* add missing features of the i440FX PCI bridge
* implement the other parts of the i440FX chipset (PCI-to-ISA bridge,
PCI IDE controller, USB controller)
- added error message: PCI BIOS can only be used with 386+ cpu - functions inw() and outw() are required for the ATA driver too - real mode PCI BIOS installation check returns revision level 2.10 - unsupported real mode PCI BIOS functions return the error code 0x81
- updated with rombios.c v1.56
- compiled rombios.c 1.54 - added BX_DEBUG, BX_INFO, BX_PANIC macros - BX_DEBUG outputs to the INFO port till we can easily choose debug output on a per-device basis - BX_DEBUG are only generated if DEBUG_ROMBIOS is defined to 1 - do not panic on unsupported function in int13, only output info message - fixed a bug on boot signature check never done on floppy/harddisk and always on floppy images on cd - the boot signature check on harddisks is always done - the boot signature check on cdroms (either direct boot or floppy images) is never done - the boot signature check on floppies is conditionnal to CMOS reg 0x38 (configuration floppy_bootsig_check) - moved PIC initialization before calling optional rombios init functions (feature request [ 541908 ])
- fixed win2k boot from cd bug
with bug 433003 fix
- Dave Poirier fixed bug #466292: kbd fails in scandisk, freedos edit. I recompiled the BIOS with the fix.
- added fix for freeBSD boot
- change a few keyboard panics into printfs (warnings). I got a bug report about this, #535432: Emu panics when pressing ">"-key. The user did not report exactly what the exact message was, but these sound like the correct ones. BIOS panics are permanent fatal errors, so I don't want them to show up accidently, especially for something as trivial as bumping the wrong key.
- apply Christophe's patch.rombios-no-gpl - update binary bioses - remove the patch from patches
- update to rombios.c 1.40, with right version number this time!
- update to rombios.c 1.40
*** empty log message ***
- removed unnecessary delay loop after keyboard reset in POST
- fixed a unnecessary check on the bootsegment - renamed int13_function to int13 harddisk - the default is now to have the ATA driver and ElTorito boot
- keyboard self test reads the status register to clear IRQ line - PS/2 mouse hack removed - unmask IRQ in PIC setup - commented keyboard buffer initialisation removed
- floppy hardware interrupt handler issues 'sense interrupt status' if there are no result bytes to read
- INT 13: number of drives is not 0 if there is only a diskd present - hard_drive_post: DS must point to EBDA segment when initialising parameters for diskd - unmask only necessary IRQs at boot time
- romscan routine from plex86 BIOS integrated
- DMA initialisation complete: unmask cascade channel
- INT 13 diskette funktion 5 uses the "format track" function of the FDC - added initialisation of PIC and DMA in POST - reboot of linux works now
- int 13 floppy function 08 returns always the pointer to the param table in ROM
- update to rombios.c version 1.25
- extended keyboard funktion waits for a key, too - don't panic
- serial functions added, MF-II keyboard functions added, parport updates
- this revision is based on a patch from Cliff Hones <cliff@aonix.co.uk>. Cliff added to bios_printf the ability to print onto the console. Bryce made some further changes. Now when a panic occurs, the message is reported both to the Bochs log file and to the screen, and then it goes into an infinite busy loop. Why an inf loop? If I do a HLT in BIOS code, current bochs versions will panic immediately and the user will never see the real panic message. I have mostly tested the new panic behavior by booting nonbootable and nonreadable disks.
- apply patch.pci from Volker Ruppert. See [ #481546 ] pci patch (Volker Ruppert) for any followups.
- in sync with rombios.c 1.20. The change is from patch.parport by Volker Ruppert which fixes parallel port access.
- print "read error" when hard disk cannot read the disk image, or seeks beyond the end
- apply patch from patches/patch.lba. This is taken from plex86 cvs and modified for bochs. Minimal testing so far...
- apply BIOS patch from Barry Allard to check the boot signature - fiddle with I/O handler for port 0x401 to allow BIOS to write a complete panic message
- in int13_diskette_function, return the right error code (AH=3) if a write fails because the floppy disk was write protected. Before, the floppy.cc model was unable to return this error, but now it can.
- compiled bioses for rombios.c revision 1.13
- print messages in log on boot failure
- update bios again, but this time move to a standard filename BIOS-bochs-latest. Different versions of the BIOS can now be distinguished because they print the RCS ID into the log file using bios_printf.
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use