Commit Graph

257 Commits

Author SHA1 Message Date
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
Volker Ruppert
31cf899020 - fixed the memory allocation for the ACPI tables in situations when less than
16MB are present (patch by Bernhard Kauer)
2007-09-15 07:24:37 +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
2346acca98 - regerated after latest updates 2007-09-10 19:25:51 +00:00
Volker Ruppert
04d6440551 - clear out RSDT memory on init (patch by Bernhard Kauer from the ML) 2007-08-19 07:51:31 +00:00
Volker Ruppert
1332f905ae - change ACPI table revision number to 1 2007-08-03 13:56:52 +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
8f7e6ac2ad - implemented INT15h, fn 0xC2 (mouse), subfn 3, set resolution (SF patch #1734159)
- support for large PCI memory regions (>=64Mb) added (patch by Paul Brook)
2007-06-17 07:38:58 +00:00
Volker Ruppert
45bd4ab269 - bios_printf() fix for %s format (from VirtualBox)
- removed lots of trailing spaces
2007-05-28 08:01:56 +00:00
Volker Ruppert
9478cd9164 - INT 13h: sector number 0 is invalid 2007-04-02 20:35:52 +00:00
Volker Ruppert
252946be66 - initial ACPI SMBus support added (ported from Qemu, TODO: register devices,
bus transactions)
2007-02-20 09:39:06 +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
9d0f111995 - 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
2006-10-03 20:30:09 +00:00
Volker Ruppert
7d80118503 - SMRAME bit must be always set for SMRAM access 2006-10-02 20:29:50 +00:00
Volker Ruppert
c9d8c75a23 - improved SMM init (Fabrice Bellard) 2006-10-02 06:30:36 +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
96463c44d4 - APM cpu idle function fixed (from qemu) 2006-05-07 10:40:53 +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
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
d232d245f4 - APM function 0x10 (get capabilities) implemented
- stubs for APM functions 0x08 and 0x0f added
- rebuild bios images if apmbios.S is modified
2005-10-24 11:14:37 +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
Volker Ruppert
f9e7aa39af - fixed flag for enhanced keycode 0xE0 (final part) 2005-09-09 18:56:42 +00:00
Volker Ruppert
08fe825e41 - fixed flag for enhanced keycode 0xE0 2005-09-09 16:34:21 +00:00
Volker Ruppert
b4269dca92 - 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
2005-09-04 09:38:28 +00:00
Volker Ruppert
2e8dccf684 - 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
2005-08-26 17:47:16 +00:00
Volker Ruppert
86c3c68dc4 - 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
2005-08-24 20:45:57 +00:00
Volker Ruppert
b6f484f606 - fixed INT 09h keyboard flags handling 2005-08-14 17:19:44 +00:00
Volker Ruppert
c688161ddf - INT 70h has destroyed the upper word of EAX; save/restore all 32-bit registers now 2005-08-13 08:53:59 +00:00
Volker Ruppert
e5b7fa1b4b - fixed segment and offset in int70h and modify the high bit only 2005-08-12 19:50:45 +00:00
Volker Ruppert
218e6b8450 - missing scancodes for F11 and F12 added to translation table
- unknown scancode info message improved
2005-06-14 18:23:03 +00:00
Volker Ruppert
57a8322ac4 - 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
2005-05-07 15:56:27 +00:00
Volker Ruppert
37f92c320a - 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
2005-04-30 11:11:16 +00:00
Volker Ruppert
c5b7f5e3ef - 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
2005-04-28 17:54:32 +00:00
Volker Ruppert
b1dc8c910d - 4-cpu SMP table fixed (patch by jermar@itbs.cz) 2005-04-26 20:23:07 +00:00
Volker Ruppert
69d610c254 - APM support for 16 bit protected mode added (patch from Struan Bartlett) 2005-04-06 18:05:47 +00:00
Volker Ruppert
561e617362 - using fixed values for the diskette parameter table instead of int vector 0x1E
fixes floppy problems in Win9x guests
2005-02-13 08:48:23 +00:00
Volker Ruppert
5ec5e89575 - 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)
2005-02-02 19:14:24 +00:00
Volker Ruppert
3f909bd46d - fixed real mode PCI BIOS error reporting 2005-01-31 18:36:54 +00:00
Volker Ruppert
0785fe48b2 - don't panic when an unsupported mouse packet size is requested 2005-01-27 18:05:09 +00:00
Volker Ruppert
5499cb0c34 - PS/2 mouse scaling functions implemented
- int15_function_mouse(): removed unused variables
2005-01-02 09:46:34 +00:00
Volker Ruppert
e0c5b9d7af - Win9x CD boot fixed (SF patch #1087537 by lukewarm) 2004-12-20 17:02:20 +00:00
Volker Ruppert
5a36efedfa - 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)
2004-12-07 21:13:20 +00:00
Volker Ruppert
ebf9cb86ca - 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
2004-12-05 16:41:46 +00:00
Volker Ruppert
a15de4430b - 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.
2004-10-15 15:37:01 +00:00
Volker Ruppert
5d7cc42431 - 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
2004-10-04 19:31:02 +00:00
Volker Ruppert
a6d14987cd - PCI IRQs must always be level sensitive (setup ELCR1/ELCR2 in pcibios init) 2004-10-02 12:29:54 +00:00
Volker Ruppert
0fd0fc7384 - pci irq initialisation added (TODO: initialize pci memory + i/o space) 2004-09-25 17:23:06 +00:00
Volker Ruppert
b3d0c18838 - int 15 / ah=87h should not clear cr0 when setting bit 0 (SF patch #969967
by Ben Lunt)
2004-09-13 17:54:53 +00:00
Volker Ruppert
9956e47f3e - 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
2004-09-05 17:57:22 +00:00
Volker Ruppert
e5761d230c - calculate checksum of expansion rom (must be 0) 2004-09-03 19:52:24 +00:00
Volker Ruppert
b4fbbe3af1 - 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
2004-08-21 13:33:28 +00:00
Volker Ruppert
40e576cbb3 - 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)
2004-08-20 10:02:04 +00:00
Volker Ruppert
c6834907ad - 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
2004-07-04 17:10:05 +00:00
Volker Ruppert
1f33aa72b8 - APM and system shutdown support for 16-bit real mode and 32-bit protected mode
(patch from Fabrice Bellard)
2004-06-20 18:28:40 +00:00
Volker Ruppert
c757b06db8 - int13_cdrom / 32 bit register update fix (aka FreeBSD cdrom boot) (patch from
Fabrice Bellard found in LGPL'd VGABIOS patches section)
2004-05-31 13:13:58 +00:00
Volker Ruppert
b66c8403f7 - turn floppy motor off 2 seconds after last read/write/recalibrate command
(patch from Ben Lunt)
2004-02-09 16:49:41 +00:00
Volker Ruppert
a0457f980e - int17_function updated for multiple parallel ports
- detection of serial port 3 + 4 added
2004-01-28 19:14:56 +00:00
Volker Ruppert
795cb05b42 - fixed int13_harddisk function 10h 2004-01-25 22:15:56 +00:00
Daniel Gimpelevich
eae5c1eaba Rebuilt BIOS from latest rombios.c 2004-01-15 03:32:14 +00:00
Volker Ruppert
623ba8b00d - INT 16h function 05h implemented (grabbed from patch #707931) 2003-12-18 16:49:22 +00:00
Christophe Bothamy
9d38eca4c5 - recompile rombios.c rev1.102 2003-11-27 00:35:24 +00:00
Christophe Bothamy
93ff40743f - recompiled with rombios.c rev1.100 2003-11-15 00:03:57 +00:00
Volker Ruppert
568cd93523 - detect_serial: detection simplified using IER and IIR
- detect_parport: save base address and timeout using push/pop
2003-11-02 12:40:51 +00:00
Volker Ruppert
5be03ffb09 - int 0x16 function 0x0A implemented (GET KEYBOARD ID)
- int 0x16 functions 0x10/0x11 fixed (don't change the ascii code to 0xE0)
2003-10-16 19:31:33 +00:00
Daniel Gimpelevich
227933bc11 Fix ATA/Serial ioport conflict 2003-10-07 01:44:34 +00:00
Christophe Bothamy
1e568ccba3 - regen from rombios.c rev1.95 2003-08-16 20:13:18 +00:00
Christophe Bothamy
6712256448 - recompile rombios.c rev1.94 2003-08-07 00:04:05 +00:00
Christophe Bothamy
b5562fc8ee - compile rombios rev1.93 2003-04-25 22:15:30 +00:00
Christophe Bothamy
20091e7f3c - compile rombios.c rev 1.92 2003-03-08 23:01:07 +00:00
Christophe Bothamy
dd2618a315 - compile rombios.c rev1.91 2003-02-06 23:19:23 +00:00
Christophe Bothamy
44502c00dc - compile rombios.c rev1.90 2003-01-18 19:23:14 +00:00
Christophe Bothamy
cfdcae68ca - compile rombios.c rev 1.89 2003-01-14 18:06:59 +00:00
Christophe Bothamy
d007a8e93b - compile rombios.c rev 1.87 2003-01-13 12:55:59 +00:00
Christophe Bothamy
56eb9dfe7a - compile from rombios rev1.86 2003-01-06 02:03:57 +00:00
Christophe Bothamy
c837f9961e - compile reombios.c revision 1.85 2002-12-13 16:32:31 +00:00
Bryce Denney
1d65a45575 - recompile bioses for rombios.c 1.84 2002-12-09 13:24:48 +00:00
Christophe Bothamy
f97ba30ac1 - compile from rombios.c r1.83 2002-11-26 11:09:43 +00:00
Christophe Bothamy
27247753ce - compile from rombios.c r1.82 2002-11-25 21:32:50 +00:00
Christophe Bothamy
1a10b8f87b - compile BIOSes from rombios.c r1.81 2002-11-22 14:41:06 +00:00
Bryce Denney
7fde35e253 - 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.
2002-11-21 19:09:36 +00:00
Bryce Denney
4a7303c896 - 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
2002-11-14 20:05:57 +00:00
Christophe Bothamy
48200d4936 - compile rombios.c r1.78 2002-11-07 21:58:19 +00:00
Christophe Bothamy
b8fc42d6a7 - compile rombios.s r1.77 2002-11-04 23:57:53 +00:00
Christophe Bothamy
b8bbe1c7c2 - compile rombios.c r1.74 2002-10-28 00:18:40 +00:00
Christophe Bothamy
ffc3d88be3 - compile rombios.c r1.73 2002-10-27 21:27:00 +00:00
Christophe Bothamy
fd81d2c4cb - compile bios from rombios.c r1.70 2002-10-19 17:09:25 +00:00
Christophe Bothamy
4ec9e8d5b1 - compiled rombios.c rev1.69 2002-10-16 14:05:28 +00:00
Christophe Bothamy
80caacdb40 - compiled rombios.c rev 1.68 2002-10-16 07:40:09 +00:00
Volker Ruppert
d460ec396a - 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()
2002-10-07 16:16:04 +00:00
Volker Ruppert
4158c1e862 - 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
2002-09-28 15:03:32 +00:00
Volker Ruppert
b98975c832 - parallel port detection for two ports added to the POST code 2002-09-28 12:27:56 +00:00
Christophe Bothamy
f36fb4fb58 - merged rombios-new-ata.c in rombios.c
- compiled BIOS-bochs-latest from latest rombios.c
2002-09-24 21:56:31 +00:00
Volker Ruppert
efbcf33bc7 - 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
2002-09-20 19:36:05 +00:00
Volker Ruppert
a6d07ad166 - 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
2002-08-01 07:37:56 +00:00
Volker Ruppert
e46d56fad1 - 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
2002-07-23 18:46:17 +00:00
Volker Ruppert
54a5e86cc6 - 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
2002-06-22 15:23:05 +00:00
Volker Ruppert
aa57c0e171 - 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)
2002-06-04 17:44:02 +00:00
Volker Ruppert
c2941ec36b - 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
2002-05-11 13:44:39 +00:00
Christophe Bothamy
2a39e35322 - updated with rombios.c v1.56 2002-05-04 16:56:22 +00:00
Christophe Bothamy
2f2f9880ca - 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 ])
2002-04-24 07:54:23 +00:00
Christophe Bothamy
bf9b01035f - fixed win2k boot from cd bug 2002-04-11 00:20:31 +00:00
instinc
7159f3fdba with bug 433003 fix 2002-04-10 23:25:17 +00:00
Bryce Denney
949ac3bbf0 - Dave Poirier fixed bug #466292: kbd fails in scandisk, freedos edit.
I recompiled the BIOS with the fix.
2002-04-08 01:24:49 +00:00
Christophe Bothamy
7f3fb09f49 - added fix for freeBSD boot 2002-04-04 16:58:31 +00:00
Bryce Denney
8ceca1a4c5 - 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.
2002-03-28 07:10:18 +00:00
Bryce Denney
8ef7c284fd - apply Christophe's patch.rombios-no-gpl
- update binary bioses
- remove the patch from patches
2002-03-26 13:17:44 +00:00
Christophe Bothamy
0119c65408 - update to rombios.c 1.40, with right version number this time! 2002-03-24 23:15:37 +00:00
Christophe Bothamy
b0cbd43510 - update to rombios.c 1.40 2002-03-24 23:10:15 +00:00
Christophe Bothamy
cee75f1f3a *** empty log message *** 2002-03-20 21:08:56 +00:00
Volker Ruppert
6c4a3581c7 - removed unnecessary delay loop after keyboard reset in POST 2002-03-12 18:44:07 +00:00
Christophe Bothamy
f25dc70678 - 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
2002-03-11 00:17:31 +00:00
Volker Ruppert
873aa0c127 - 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
2002-01-27 09:26:23 +00:00
Volker Ruppert
14679e9413 - floppy hardware interrupt handler issues 'sense interrupt status' if there
are no result bytes to read
2002-01-24 20:32:22 +00:00
Volker Ruppert
f0937a06b9 - 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
2002-01-20 00:25:59 +00:00
Volker Ruppert
ed04aff2ca - romscan routine from plex86 BIOS integrated 2002-01-15 21:22:00 +00:00
Volker Ruppert
7add6391d6 - DMA initialisation complete: unmask cascade channel 2002-01-02 09:59:32 +00:00
Volker Ruppert
17ab2fa85f - 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
2002-01-01 21:39:28 +00:00
Volker Ruppert
c7b6a1c58b - int 13 floppy function 08 returns always the pointer to the param table in ROM 2001-12-26 14:53:40 +00:00
Bryce Denney
a1a9beac3b - update to rombios.c version 1.25 2001-12-06 04:50:08 +00:00
Volker Ruppert
014687aa97 - extended keyboard funktion waits for a key, too - don't panic 2001-12-05 20:38:32 +00:00
Volker Ruppert
db4401adb8 - serial functions added, MF-II keyboard functions added, parport updates 2001-11-26 07:26:55 +00:00
Bryce Denney
26b2c0254c - 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.
2001-11-21 02:33:05 +00:00
Bryce Denney
fea759a204 - apply patch.pci from Volker Ruppert. See
[ #481546 ] pci patch (Volker Ruppert) for any followups.
2001-11-14 01:39:22 +00:00
Bryce Denney
c685af1bdc - in sync with rombios.c 1.20. The change is from patch.parport by
Volker Ruppert which fixes parallel port access.
2001-11-12 01:34:20 +00:00