Commit Graph

298 Commits

Author SHA1 Message Date
Stanislav Shwartsman
f899949c3a Sebastian define port number constants 2010-05-10 05:24:39 +00:00
Stanislav Shwartsman
969eb42454 Fixes by Sebastian 2010-04-04 19:33:50 +00:00
Stanislav Shwartsman
27d82f8856 Init PIC on CMOS shutdown status 05h. Should fix bug #2734455.
- Sebastian
2010-02-08 20:56:55 +00:00
Stanislav Shwartsman
9070f65d32 BIOS updates by Sebastian 2010-02-01 21:05:42 +00:00
Stanislav Shwartsman
327a4ab5db Mark 1 GB instead of 512 MB at 3 GB as UC.
Add PNP BIOS dummy support
by Sebsatian
2010-01-18 20:04:44 +00:00
Stanislav Shwartsman
d548442c48 ROM BIOS patches by Sebastia 2010-01-14 07:04:40 +00:00
Stanislav Shwartsman
fcfac5f993 BIOS fixes from Sebastian 2010-01-05 08:20:05 +00:00
Stanislav Shwartsman
0e57ef4cee With BX_USE_EBDA_TABLES memory used by the MP table should be marked as reserved.
This should fix bug #1947249.

- Sebastian
2010-01-03 19:23:02 +00:00
Stanislav Shwartsman
aa07cd0324 Tables generated in rombios32 were overwriten by the IPL code in rombios.
This should partially fix bug #1933859.

- Sebastian
2009-12-30 19:21:46 +00:00
Stanislav Shwartsman
ddf4df1dc0 Remove broken support for BX_CPU < 3.
- Sebastian
2009-12-27 17:03:14 +00:00
Stanislav Shwartsman
79e08eb21e BIOS patches from Sebastian 2009-12-21 08:08:24 +00:00
Stanislav Shwartsman
ea2be842a2 Fix PCI memory hole by Sebastian 2009-12-20 16:43:50 +00:00
Stanislav Shwartsman
589db6cf4a Fix interrupt vectors for INT 60h-66h (reserved for user interrupt) by setting them to zero.
Move code for INT setup to post_init_ivt.
2009-12-12 08:29:01 +00:00
Volker Ruppert
7e56eae48c - fixed SF bug #2851495: if PCI BIOS functions return without error, the
int1a_handler must complete with iret to re-enable interrupts
2009-09-28 16:36:51 +00:00
Stanislav Shwartsman
0778545e2c fixed comment 2009-06-14 06:00:36 +00:00
Stanislav Shwartsman
bd15c11ee1 Fix rom checksum for rom size of 65536 bytes.
- Sebastian
2009-06-07 21:34:59 +00:00
Volker Ruppert
8ce5570946 - implemented INT 15h/89h (patch by Sebastian Herbszt) 2009-05-10 08:26:42 +00:00
Stanislav Shwartsman
bc9a191e2d bios patches by Sebastian 2009-04-26 17:17:07 +00:00
Volker Ruppert
3b0fb9f28a - 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
2009-04-10 16:37:02 +00:00
Stanislav Shwartsman
f34cce9177 [Bochs-developers] [PATCH resend] compute checksum for roms bigger than a segment 2009-04-09 20:34:09 +00:00
Stanislav Shwartsman
522a47135f bios indent cleanuip 2009-04-03 15:53:46 +00:00
Stanislav Shwartsman
08f9c8dceb Patch by Sebastian:
Fix parameter count for set_e820_range() in legacy bios.
It's called with too few parameters since rombios.c 1.224.
2009-02-21 21:45:34 +00:00
Volker Ruppert
a1a4574074 - fixed PCI IRQ router check for legacy BIOS (checking vendor ID only) 2009-02-09 17:06:06 +00:00
Stanislav Shwartsman
06e90a9304 Deduplicate INT 15h, AX=E820h code by removing some identical parts.
- Sebastian
2009-01-10 10:50:07 +00:00
Volker Ruppert
f2f5d5c915 - applied 3 patches from the Qemu project
* added support for memory above the PCI hole (Izik Eidus)
  * smp_probe: instead of timimg out, wait until all cpus are up (Avi Kivity)
  * Bochs BIOS changes to support HPET in Qemu (Beth Kon)
- added documentation about CMOS registers set by Qemu
2008-12-25 16:58:44 +00:00
Volker Ruppert
1060c19b04 - added support for booting from option ROM with BCV entry (Laurent Vivier) 2008-12-23 09:20:06 +00:00
Stanislav Shwartsman
62782f125c Patch applied 2008-12-15 06:05:52 +00:00
Stanislav Shwartsman
0f2a7640e5 Merged patchfix by Sebastian 2008-12-07 17:32:29 +00:00
Stanislav Shwartsman
02e21074a0 Don't power down vga card on entering S3 state.
Patch by Gleb Natapov
2008-12-04 18:48:33 +00:00
Stanislav Shwartsman
dcf68cca6d Don't use unreserved memory in BIOS.
Patch by Gleb Natapov
2008-12-04 18:46:55 +00:00
Stanislav Shwartsman
4bc2d5b4e9 Execute rombios32 code from rom address 0xe0000.
Patch by Gleb Natapov
2008-12-04 18:44:14 +00:00
Stanislav Shwartsman
3692baf4bb Preserve memory content during SMM iniT.
Patch by Gleb Natapov
2008-12-04 18:42:32 +00:00
Stanislav Shwartsman
a4e971c0a6 Add S3 state to DSDT. Handle resume event in the BIOS.
patch by Gleb Natapov
2008-12-04 18:40:54 +00:00
Stanislav Shwartsman
85435e7fcf Applied [Bochs-developers] [PATCH v3 1/6] Move PIC initialization out of line to save space in post code area. 2008-11-13 19:15:20 +00:00
Stanislav Shwartsman
518293fe40 iApplied patch: Add rombios decoding of F11/F12 scancodes in support for
Microsoft's Remote Installation Services, which require F11/F12 keys
2008-10-01 07:41:22 +00:00
Stanislav Shwartsman
e315c1db86 BIOS patches applied 2008-08-24 20:41:38 +00:00
Volker Ruppert
61f51bc8af - 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
2008-07-27 08:06:52 +00:00
Stanislav Shwartsman
1c09e7f5db Remove incorrect comment 2008-07-11 03:54:33 +00:00
Volker Ruppert
b6932bc3f8 - 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
2008-06-22 09:05:35 +00:00
Stanislav Shwartsman
e34938386a Merged patch from @SF tracker 2008-06-02 20:08:10 +00:00
Volker Ruppert
02ba8c791f - set the compatible pci interrupt router back to PIIX (SF patch #1956843 by Sebastian) 2008-05-18 11:38:24 +00:00
Stanislav Shwartsman
024b3eece7 Merged LBA48 patch from @SF tracker 2008-04-21 14:22:01 +00:00
Stanislav Shwartsman
dcb392311f Merged BIOS patches from @SF tracker 2008-04-08 16:41:18 +00:00
Stanislav Shwartsman
9ebfede83b Merged patch from @SF tracker 2008-03-21 19:06:31 +00:00
Stanislav Shwartsman
ee43b33af9 Merge SF patch 2008-03-19 22:48:55 +00:00
Stanislav Shwartsman
f1f505cfab Patch from @SF tracker 2008-03-07 21:26:52 +00:00
Volker Ruppert
85a8f7993a - BIOS boot menu support added (SF patch #1901027 by Sebastian) 2008-03-02 19:25:34 +00:00
Volker Ruppert
08d7c76e09 - 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
2008-02-17 16:38:17 +00:00
Stanislav Shwartsman
2730fa9583 Fixed comment - patch from @sf tracker 2008-02-07 20:46:08 +00:00
Stanislav Shwartsman
4634e2cd4d BIOS whitespace cleanup 2008-01-24 21:57:22 +00:00
Volker Ruppert
ec3415a7eb - 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
2008-01-21 21:44:29 +00:00
Stanislav Shwartsman
abe7373657 Merged some BIOS patches from @SF tracker 2008-01-21 15:06:29 +00:00
Volker Ruppert
0a8105e95e - implemented LBA48 support (since BIOS functions are limited to 32 bit, the
max. disk size is now 2 TB)
2008-01-14 19:11:15 +00:00
Stanislav Shwartsman
3b53e234da Merge SF tracker BIOS patches 2008-01-06 21:00:18 +00:00
Stanislav Shwartsman
c796f7fffa Define IPL values patch from #SF tracker 2007-12-23 19:46:27 +00:00
Volker Ruppert
46b3ec2397 - don't abort ATA reset for not existing slave drive. The reset bit must
always be cleared to avoid blocking existing master drive.
2007-12-20 18:12:35 +00:00
Stanislav Shwartsman
216f4f2f4f Fixed my BIOS optimization 2007-12-06 16:56:32 +00:00
Volker Ruppert
147633c460 - inline asm optimizations by Stanislav
- initialize PAM register for ROM-to-RAM copy even after reboot
2007-12-01 19:27:28 +00:00
Stanislav Shwartsman
90721b75f6 Merge patch from #SF patches tracker:
1830658  Fix >32GB disk banner
2007-11-12 20:58:37 +00:00
Volker Ruppert
cd0e516962 - 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
2007-11-04 15:40:20 +00:00
Stanislav Shwartsman
14b4f66d4e Fixed comments for bios_printf (patch from #SF tracker) 2007-10-19 10:26:49 +00:00
Volker Ruppert
834904f49b - 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)
2007-10-14 08:11:35 +00:00
Volker Ruppert
ed3fdad74d - reverted removal of one DPTE checksum bugfix
- fixed %ld and %lu padding (now only using it for %lx)
2007-10-10 17:12:07 +00:00
Volker Ruppert
fc6693001c - 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()
2007-10-09 16:49:53 +00:00
Stanislav Shwartsman
9326aa151f Merge checksum patch from mailing list -> need to recompile BIOS 2007-10-07 21:09:15 +00:00
Volker Ruppert
471e89dc84 - INT 15h AH=86h was reading the wrong stack frame (SF patch #1791000) 2007-09-10 20:01:07 +00:00
Volker Ruppert
6ea536f95c - fixed floppy boot signature check switch
- added network boot ROM support in the main Bochs code (already present in BIOS)
2007-08-01 17:10:24 +00:00
Volker Ruppert
feb2f45a3e - added expansion-ROM boot support to the ROMBIOS (SF patch #1741153 ported from
the XenSource project)
2007-06-30 07:15:30 +00:00
Volker Ruppert
216fdf36c6 - implemented INT15h, fn 0xC2 (mouse), subfn 3, set resolution (SF patch #1734159) 2007-06-17 07:36:34 +00:00
Volker Ruppert
3dad77a4b5 - bios_printf() fix for %s format (from VirtualBox)
- removed lots of trailing spaces
2007-05-28 07:54:03 +00:00
Volker Ruppert
9478cd9164 - INT 13h: sector number 0 is invalid 2007-04-02 20:35:52 +00:00
Volker Ruppert
691465ffa6 - reset the memory after 32 bit protected mode init (patch from the Qemu project
by Fabrice Bellard)
2007-02-10 17:05:38 +00:00
Volker Ruppert
0837438f7f - 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
2006-12-30 17:13:44 +00:00
Volker Ruppert
18a66befd0 - PCI BIOS function 'find class code' implemented for real and protected mode 2006-11-04 18:07:24 +00:00
Volker Ruppert
b9a70fb502 - added stub for real mode PCIBIOS function 'find class code'
- improved real mode PCIBIOS error reporting
2006-10-17 16:48:41 +00:00
Volker Ruppert
4df1ef8af5 - clear registers using the XOR instruction 2006-10-04 19:00:19 +00:00
Volker Ruppert
bc9a192668 - clear upper 16 bit of the stack pointer when returning to real mode (fixes
booting of Ubuntu 6.06)
2006-10-03 21:04:44 +00:00
Volker Ruppert
6276cae023 - 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
2006-10-01 16:40:30 +00:00
Volker Ruppert
fdc1b75115 - 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)
2006-09-30 11:23:49 +00:00
Volker Ruppert
5ba61b49c8 - always generate MP tables (WinXP guest needs this)
- new code is now enabled again
2006-09-29 17:37:31 +00:00
Volker Ruppert
518c64b64f - 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
2006-09-29 12:24:05 +00:00
Volker Ruppert
aacc148f7c - 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
2006-09-28 19:01:04 +00:00
Volker Ruppert
ba049136a9 - 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)
2006-08-11 17:34:43 +00:00
Volker Ruppert
0ae9f5670e - INT 09h: fixed handling of extended keys (asciicode = 0xe0)
- left backslash key added in keycode table
2006-08-07 20:26:58 +00:00
Volker Ruppert
7a5ccec5f7 - 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)
2006-07-30 09:38:02 +00:00
Volker Ruppert
d9be51128b - 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)
2006-07-07 16:11:06 +00:00
Volker Ruppert
aeaff883b7 - enable interrupts before executing INT 19h and revert previous change 2006-07-06 07:28:08 +00:00
Volker Ruppert
4a5d4ad80a - enable interrupts before executing boot sector code (untested) 2006-07-05 09:20:31 +00:00
Volker Ruppert
458e128240 - PCI BIOS: improved error message for function 'find PCI device' 2006-01-25 17:53:37 +00:00
Volker Ruppert
480fbb29d1 - removed static MP tables from rombios.c and MP bios images from Makefile 2006-01-13 17:36:27 +00:00
Volker Ruppert
b2e19d7e09 - APM function 0x05 (cpu idle) implemented (tested with Win98)
- unused commented stuff removed
2005-12-26 10:36:52 +00:00
Volker Ruppert
ae37bb9815 - fixed disk size reporting > 64 GB (SF patch #1389776) 2005-12-25 09:11:59 +00:00
Volker Ruppert
c92fd65c65 - 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
2005-11-06 16:50:30 +00:00
Volker Ruppert
7b8ed58815 - 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
2005-10-27 07:38:20 +00:00
Volker Ruppert
50a0de2746 - disable i/o and memory space access while initializing PCI base address registers 2005-09-24 08:10:10 +00:00
Volker Ruppert
8d883ec645 - fixed PCI i/o base address initialization 2005-09-19 21:09:42 +00:00
Volker Ruppert
fb5b86b11c - PCI i/o and memory base address initialization added 2005-09-18 21:45:05 +00:00
Volker Ruppert
62f28d8f79 - pause key detection implemented
- preparing PCI i/o and memory init function
2005-09-17 17:43:45 +00:00
Volker Ruppert
9121053af9 - 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)
2005-09-16 16:05:14 +00:00
Volker Ruppert
8851f2523a - fixed enhanced keycode flag for key releases
- modified bios startup messages
2005-09-15 18:07:32 +00:00