Changes in 2.3 (August 27, 2006):
Brief summary :
- limited save/restore support added (config + log options, hardware state)
- configuration parameter handling rewritten to a parameter tree
- lots of cpu and internal debugger fixes
- hard disk geometry autodetection now supported by most of the image types
- hard disk emulation now supports ATA-3 (multiple sector transfers)
- VBE memory size increased to 8MB and several VGA/VBE fixes
- updated LGPL'd VGABIOS to version 0.6a
Detailed change log :
- CPU and internal debugger fixes
- Fixed bug in FSTENV instruction (Stanislav Shwartsman)
- Recognize #XF exception (19) when SSE is enabled
- Fixed bug in PSRAW/PSRAD MMX and SSE instructions
- Save and restore RIP/RSP only for FAULT-type exceptions, not for traps
- Correctly decode, disassemble and execute multi-byte NOP '0F F1' opcode
- Raise A20 line after system reset (Stanislav Shwartsman)
- Implemented SMI and NMI delivery (APIC) and handling in CPU (Stanislav)
- Experimental implementation of System Management Mode (Stanislav)
- Added emulation of SSE4 instructions (Stanislav Shwarstman)
- Save and restore FPU opcode, FIP and FDP in FXSAVE/FRSTOR instructions
- Fixed bug in MOVD_EdVd opcode (always generated #UD exception)
- Fixed critical issue, Bochs was not supporting > 16 bit LDT.LIMIT values
- Many fixes in Bochs debugger and disassembler
- CPU x86-64 fixes
- Fixed SYSRET instruction implementation
- Fixed bug in CALL/JMP far through 64-bit callgate in x86-64 mode
- Correctly decode, disassemble and execute 'XCHG R8, rAX' instruction
- Correctly decode and execute 'BSWAP R8-R15' instructions
- Fixed ENTER and LEAVE instructions in x86-64 mode (Stanislav)
- Fixed CR4 exception condition (No Name)
- Fixed x86 debugger to support x86-64 mode (Stanislav)
- APIC and SMP
- Support for Dual Core and Intel(R) HyperThreading Technology. Now you
could choose amount of cores per processor and amount of HT threads per
core from .bochsrc for SMP simulation (Stanislav Shwartsman)
- Allow to control SMP quantum value through .bochsrc CPU
option parameter. Previous Bochs versions used hardcoded quantum=5
value.
- Fixed interrupt priority bug in service_local_apic()
- Fixed again reading of APIC IRR/ISR/TMR registers. Finally it becomes
fully correct :-)
- Configure and compile
- Moved configure time --enable-reset-on-triple-fault option to runtime,
the 'cpu' option in .bochsrc is extended and the old configure option
is deprecated (Stanislav Shwartsman)
- Removed --enable-pni configure option, to compile with PNI use
--enable-sse=3 instead (Stanislav Shwartsman)
- enable SEP (SYSENTER/SYSEXIT) support by default for Penitum II+
processor emulation (i.e. if cpu-level >= 6 and MMX is enabled)
- general
- Limited save/restore support added. The state of CPU, memory and all
devices can be saved now (state of harddisk images not handled yet).
- Fixed several memory leaks
- configuration interface
- Configuration parameter handling rewritten to a parameter tree. This is
required for dynamic menus/dialogs, user-defined options and save/restore.
- Support for user-defined bochsrc options added
- help support at the parameter prompt in textconfig added
- I/O devices (Volker)
- Floppy
- partial sector transfers fixed
- Hard drive / cdrom
- several fixes to the IDE register behaviour (e.g. in case of a channel
with only one drive connected)
- fixed data alignment of 'growing' hard drive images (sharing images
between Windows and Linux now possible)
- disk geometry autodetection now supported by most of the image types
(unsupported: external, dll and compressed modes)
- multi sector read/write commands implemented
- hard disk now reporting ATA-3 supported
- ATAPI 'inquiry' now returns a unique device name
- Keyboard
- reset sent to keyboard has no effect on the 8042 (scancode translation)
- PCI
- forward PIRQ register changes to the I/O APIC (if present)
- attempt to fix and update the emulation part of 'pcidev' (untested)
- VGA
- VBE memory size increased to 8MB and several VBE fixes
- VGA memory read access fixed (bit plane access and read mode)
- VGA memory is now a part of the common video memory
- System BIOS (Volker)
- enable interrupts before executing INT 19h
- fixed ATA device detection in case of one drive only connected to
controller
- improved INT 15h function AX=E820h
- real mode PCI BIOS now returns IRQ routing information (function 0Eh)
- keyboard LED flags handling fixed and improved
- fixed handling of extended keys in INT 09h
- Updated LGPL'd VGABIOS to version 0.6a
- SF patches applied
[1340111] fixes and updates to usb support by Ben Lunt
[1539420] minor addition to pci_usb code by Ben Lunt
[1455958] call/jmp through call gate in 64-bit mode
[1433107] PATCH: fix compile with wxwindows 2.6 (unicode / utf8) by jwrdegoede
[1386671] Combined dual core and hyper-threading patch
- these S.F. bugs were closed
[833927] TTD: System Error TNT.40025: Unexpected processor exception
[789230] Sending code that shows lock up when setting idt
[909670] Problems with Symantec Ghost
[1540241] include missing in osdep.cc
[1539373] Incorrect disasm for "mov moffset,bla" in 64bit
[1538419] incorrect disassembly of [rip+disp] with rex.b
[1535432] shift+cursor key maps to a digit
[1504891] Knoopix 5.0.1 error
[1424355] bochs-2.2.6 ata failure in windoze 98se
[1533979] wrong disassembly of IN instruction
[620059] paste won't stop
[1164904] status bar doesn't show num/caps/scroll lock status
[1061720] ATA Support level for HD
[1522196] Broken CHANGES link in main page
[1438415] crash if screen scrolled downwards
[778441] Shouldn't interrupts be enable after BIOS?
[1514949] I got a problem with the 8253 timer
[1513544] disasm of 0xec (in AL,DX) returns ilen of 2 instead of 1
[1508947] APIC interrupt priority checking and interrupt delivery
[766286] Debugger halts after any GPF exception
[639143] va_list is not a pointer on linuxppc
[1501815] debugger examines memory over page-boundary wrong
[1503978] movsb/w/d doesn't work when direction is stored
[1499405] WinPCap has changed URL hosting
[1498519] APIC IRR bits not set while interrupts disabled
[1498193] Bochs segfaults on LTR instruction
[787140] Guest2HostTLB optimization bug
[1492070] instrument stop
[1487772] No SEP on P4
[1488335] Growing hard disk images severe interoperability errors!
[1076312] Shadow RAM and TLB
[1282249] The real i440FX chipset Award bios hangs
[1479763] mistake "mov ax,[es:di]" for "mov ax,[ds:di]"
[1453575] Misconfigured floppy DMA transfers do not terminate.
[1460068] Incorrect handling for the Options Menu Item
[910203] bochs-2.1.1 wx.lo failed
[1438654] PANIC when trying to run install-amd64-minimal-2005.0.iso
[1458320] compile hdimage.h fails
[1455880] bochs-2.2.6,2: make error on FreeBSD
[696890] Network wouldn't run under W2k hosting MSDOS
[673391] SMP timer problems
[1291059] wxWindows GUI on non-windows/configure issue
[1356450] bochs 2.2.1 errors-omittions
[1178017] Win98 guest cannot receive network packets from host
[1076315] a20_mask after restarting
[1436323] real hw does not panic when bad Ib in CMPSS_VssWssIb
[1435269] cdrom_amigaos is not compilable
[1433314] disasm issues
[1170614] relative jumps/calls wrong in debugger
[758121] user might get confused when interrupt handler invoked
[1170622] You cannot toggle OFF "show" flags
[1406387] JMP instruction should display absolute address
[1428813] PANIC: ROM address space out of range
[1426288] DR-DOSs EMM386 problem
[1412036] Bochs cannot recognize PCI NIC correctly
[435115] dbg: modebp broken and no docs
[1419366] disasm cs:eip does not work anymore
[1419393] SSE's #XF exception -> "exception(19): bad vector"
[1419429] disassembly of "260f6f00" show DS: instead of ES: prefix
[1417583] Interrupt behaviour changed from 2.2.1 to 2.2.5
[1418281] 'push' (6A) incorrectly disassembled
[1417791] FLDENV generating exception when real hw does not.
[1264583] OS/2 1.1 doesn't run
Voice Phones: 972-4-8330554 (home), 972-5-4481073 (cell)
Bye ! [Team Intel Centrino Technology]
Stanislav (AKA Night's Man) [Team Technion]