Changes in 2.4.5 (April 25, 2010):
Brief summary:
- Major configure/cpu rework allowing to enable/disable CPU options at runtime through .bochsrc (Stanislav)
- Bugfixes for CPU emulation correctness and stability
- Implemented X2APIC extensions (Stanislav)
- Implemented Intel VMXx2 extensions (Stanislav)
- Extended VMX capability MSRs, APIC Virtualization, X2APIC Virtualization, Extended Page Tables (EPT), VPID, Unrestricted Guests, new VMX controls.
- Implemented PCLMULQDQ AES instruction
- Extended Bochs internal debugger functionality
- USB HP DeskJet 920C printer device emulation (Ben Lunt)
Detailed change log:
Configure rework
- Deprecate --enable-popcnt configure option. POPCNT instruction will be enabled automatically iff SSE4_2 is supported (like in hardware).
- Make --ignore-bad-msrs runtime option in .bochsrc. Old --ignore-bad-msrs configure option is deprecated and should not be used anymore.
- Enable changing part of CPU functionality at runtime through .bochsrc.
- Now you could enable/disable any of SSEx/AES/MOVBE/SYSENTER_SYSEXIT/XSAVE instruction sets using new CPUID option in .bochsrc.
- When x86-64 support is compiled in, you could enable/disable long mode 1G pages support without recompile using new CPUID option in .bochsrc.
Configure options:
--enable-mmx, --enable-sse, --enable-movbe, --enable-xsave,
--enable-sep, --enable-aes, --enable-1g-pages
are deprecated and should not be used anymore.
- Local APIC configure option --enable-apic is deprecated and should not be used anymore. The LAPIC option now automatically determined from other configure options. XAPIC functionality could be enabled using new CPUID .bochsrc option.
- Changed default CPU configuration (generated by configure script with default options) to BX_CPU_LEVEL=6 with SSE2 enabled.
CPU
- Implemented PCLMULQDQ AES instruction
- Implemented X2APIC extensions / enable extended topology CPUID leaf (0xb), in order to enable X2APIC configure with --enable-x2apic
- Implemented Intel VMXx2 extensions:
- Enabled extended VMX capability MSRs
- Implemented VMX controls for loading/storing of MSR_PAT and MSR_EFER
- Enabled/Implemented secondary proc-based vmexec controls:
- Implemented APIC virtualization
- Implemented Extended Page Tables (EPT) mode
- Implemented Descriptor Table Access VMEXIT control
- Implemented RDTSCP VMEXIT control
- Implemented Virtualize X2APIC mode control
- Implemented Virtual Process ID (VPID)
- Implemented WBINVD VMEXIT control
- Implemented Unrestricted Guest mode
In order to enable emulation of VMXx2 extensions configure with
--enable-vmx=2 option (x86-64 must be enabled)
- Bugfixes for CPU emulation correctness
- Fixed Bochs crash when accessing the first byte above emulated memory size
Internal Debugger
- Introduced range read/write physical watchpoints
- Allow reloading of segment registers from internal debugger
- Improved verbose physical memory access tracing
BIOS
- Fix MTRR configuration (prevented boot of modern Linux kernels)
- Fix interrupt vectors for INT 60h-66h (reserved for user interrupt) by setting them to zero
- Fix BIOS INT13 function 08 when the number of cylinders on the disk = 1
I/O Devices
- USB HP DeskJet 920C printer device emulation (Ben Lunt)
Misc
- Updated Bochs TESTFORM to version 0.5
SF patches applied
[2864402] outstanding x2apic patches by Stanislav
[2960379] Fix build with -Wformat -Werror=format-security by Per Oyvind Karlsen
[2938273] allow instrumentation to change execute by Konrad Grochowski
[2926072] Indirection operators in expressions by Derek Peschel
[2914433] makesym.perl misses symbols by John R. Jackson
[2908481] USB Printer by Ben Lunt
these S.F. bugs were closed/fixed
[2861662] dbg_xlate_linear2phy needs to be updated
[2956217] INT13 AH=8 returns wrong values when cylinders=1
[2981161] Allow DMA transfers to continue when CPU is in HALT state
[2795115] NX fault could be missed
[2964824] bad newline sequence in aspi-win32.h
[913419] configure options and build process needs some work
[2938398] gdbstub compile error with x86_64 enabled
[2734455] shutdown/reset type 05 should reinit the PICs
[1921294] extended memory less than 1M wrong size
[1947249] BX_USE_EBDA_TABLES and MP table placement
[1933859] BX_USE_EBDA_TABLES and memory overlapping
[2923680] "help dregs" is a syntax error
[2919661] CPU may fail to do 16bit near call
[2790768] Memory corruption with SMP > 32, Panic BIOS Keyboard Error
[2902118] interrupts vectors 0x60 to 67 should be NULL !
[2912502] Instruction Pointer behaving erratically
[2901047]
Bochs crashed, closed by guest os
[2905385]
Bochs crash
[2901481] Instruction SYSRET and SS(PL)
[2900632] Broken long mode RETF to outer priviledge with null SS
[1429011] Use bx_phyaddr_t for physaddr vars and bx_adress for lin adr
these S.F. feature requests were closed/implemented
[2955911] RPM preuninstall scriptlet removes /core
[2947863] don´t abort on unrecognised options
[2878861] numerics in the disassembler output
[2900619] make more CPU state changeable