-
Notifications
You must be signed in to change notification settings - Fork 107
/
CHANGES
4619 lines (4249 loc) · 225 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changes in 2.8 (March 10, 2024):
The Bochs source tree has been transitioned from SVN to GIT hosted on GitHub
(https://github.com/bochs-emu/Bochs). We welcome every new contributor !
Brief summary :
- Bugfixes for CPU emulation correctness (MONITOR/MWAIT, VMX/SVM, x87, AVX-VNNI, AVX-512, CET)
- Critical CPU emulation bugfixes for SHA and GFNI instructions, ADOX and XRSTOR/XRSTORS instructions (prevented boot of Win10)
! SVM: Implemented SVM VM_CR_MSR and INIT redirect (required for booting SMP with SVM)
! Implemented VMX MBE (Mode Based Execution Control) emulation required for Windows 11 guest
! Implemented VMX 'Shadow Stack Prematurely Busy' control
! Implemented MSR IA32_SPEC_CTRL Virtualization VMX extension
! Implemented Posted-Interrupt Processing VMX extension emulation
! Implemented Linear Address Separation (LASS) extension
! Implemented 57-bit Linear Address and 5-Level Paging support
! Implemented User-Level Interrupt (UINTR) extension
! Implemented Intel AMX extensions (AMX, AMX_INT8, AMX_BF16, AMX_FP16, AMX_COMPLEX)
! Implemented Intel instruction sets:
- MOVDIRI/MOVDIR64B, AVX512 BF16, AVX IFMA52, VNNI-INT8/VNNI-INT16, AVX-NE-CONVERT, CMPCCXADD, SM3/SM4, SHA512, WRMSRNS, MSRLIST, WAITPKG, SERIALIZE
! CPUID: Added Xeon Sapphire Rapids CPU definition
- Improved 64-bit guest support in Bochs internal debugger, added new internal debugger commands
- Bochs debugger enhanced with new commands (setpmem, loadmem, deref, ...)
Enhanced magic breakpoint capabilities. Refer to user documentation for more details.
- Updated Bochs instrumentation examples for new disassembler introduced in Bochs 2.7 release
- USB: Fixed/added USB 2.0 Compliance to all devices. Hub still needs a few additions
- USB: xHCI: added the ability to have more than one model of xHCI hardware. Currently there are two.
- USB: Added experimental MSD UASP emulation
- USB: Added OHCI as an EHCI Companion option. Now allows UHCI or OHCI specified as a configuration parameter.
- Disk images: Allows large VHD image files
- Fixed and enhanced the Floppy Disk emulation, VGA emulation fixes
- Expand maximum resolution for Banshee and Voodoo 3 from 1600x1280 to 1920x1440
- LGPL'd VGABIOS updated to version 0.9a (several VBE fixes / additions)
- Documentation updates and fixes
Detailed change log :
- General
- Improved parsing bochsrc options passed on the command line
- Allow setting disabled parameters makes parsing options less strict
- CPU/CPUDB
- Bugfixes for CPU emulation correctness (MONITOR/MWAIT, VMX/SVM, x87, AVX-VNNI, AVX-512, CET)
- Critical CPU emulation bugfixes for SHA and GFNI instructions, ADOX and XRSTOR/XRSTORS instructions (prevented boot of Win10)
- SVM: Implemented SVM VM_CR_MSR and INIT redirect (required for booting SMP with SVM)
- Implemented VMX MBE (Mode Based Execution Control) emulation required for Windows 11 guest
- Implemented advanced VM-exit information for EPT violations (tied to MBE Control)
- Implemented VMX 'Shadow Stack Prematurely Busy' control
- Implemented MSR IA32_SPEC_CTRL Virtualization VMX extension
- Implemented Posted-Interrupt Processing VMX extension emulation
- Implemented Linear Address Separation (LASS) extension
- Implemented 57-bit Linear Address and 5-Level Paging support
- Implemented User-Level Interrupt (UINTR) extension
- Implemented Intel AMX extensions (AMX, AMX_INT8, AMX_BF16, AMX_FP16, AMX_COMPLEX)
- Implemented Intel instruction sets:
- MOVDIRI/MOVDIR64B, AVX512 BF16, AVX IFMA52, VNNI-INT8/VNNI-INT16, AVX-NE-CONVERT, CMPCCXADD, SM3/SM4, SHA512, WRMSRNS, MSRLIST, WAITPKG, SERIALIZE
- CPUID: Added Xeon Sapphire Rapids CPU definition
- Features AMX/AMX_INT8/AMX_BF16, PKS, WAITPKG, UINTR, AVX-VNNI, AVX512_BF16, MOVDIRI/MOVDIR64, LA57, SERIALIZE and more
Not yet supported but will be added in future: AVX512_FP16, VMX Extensions (HLAT, IPI Virtualization)
- Bochs Debugger and Instrumentation
- Updated Bochs instrumentation examples for new disassembler introduced in Bochs 2.7 release.
- Implemented option to allow port-e0-hack and iodebug from any protection ring (without x86 permissions checking)
- Enhanced magic breakpoint capabilities
- Bochs debugger enhanced with new commands (setpmem, loadmem, deref, ...)
Refer to user documentation for more details.
- Improved debugger 'info gdt'/'info ldt' commands x86-64 support
- Added symbol info to 'info idt' in protected 32-bit mode
- Fixed instruction pointer truncation in gdbstub
- Configure and compile
- Apply standard CPPFLAGS from environment in all makefiles
- Config interface
- Show message box while saving and restoring Bochs state
- GUI and display libraries
- SDL / SDL2: change fullscreen toggle to key combination ALT+ENTER.
- SDL2: Save / restore window position when using fullscreen toggle
- win32: fixed internal palette handling when switching from/to 16 bpp modes
- win32: cancel topmost window mode after leaving fullscreen mode
- Memory
- Fixed memory handling in volatile BIOS write support
- Added 'flash_data' parameter for loading/saving the config space of the
flash BIOS rom and save/restore support for it (unused by Bochs BIOS).
- I/O Devices
- Timers
- Fixed APIC MWAIT timer activation
- APIC: Removed timer handles from save/restore list
- PIT
- PIT82C54: According to documentation (8254.pdf), mode 6 is the same as mode 2 and mode 7 is the same as mode 3.
Writes with mode 6 and 7 were not supported.
- CMOS
- Fixed and improved RTC handling in CMOS and BIOS (based on SF patch by Michele Giacomone).
- Added runtime option for turning on/off saving CMOS image on exit.
- PCI
- Fixed and improved PCI slot config error handling
- VGA
- Implemented accurate memory handling for all access modes (chain4, odd/even, planar)
- Fixes in MAP13 disabled mode (VGA mode 6): half dot clock, color support
- Fixes for the VGA mode 0x13 (Added split screen support)
- Fixes for non-chain4 256-color VGA mode called modeX (address wrap, horizonal scrolling)
- VGA text mode: implemented secondary charmap support
- mem_write(): in text mode don't mark graphics tiles for update
- Increase maximum VGA update frequency to 75 and set default to 10
- VGA update frequency value 0 enables support for using frame rate of emulated gfx device
- Fixes for emulated CGA mode
- Implemented more accurate vertical timing by using one timer with two alternating
periods. Set display start address from CRTC at vertical retrace end and after second
period the display start time for retrace and blanking detection
- SVGA Cirrus:
- PCI MMIO space is not disabled if the Cirrus card is in VGA mode
- Fixed color expand bitblt with dword granularity enabled
- BLT System-to-screen Dword Pointer (GR2F[6:5]) implemented
- Fixed redraw values for backward BitBlt
- Fixed bitblt issues caused by unhandled address wrap and unaligned drawing region
- Double scan support for color depth > 8 implemented (double width if necessary)
- Voodoo
- Expand maximum resolution for Banshee and Voodoo 3 from 1600x1280 to 1920x1440
- Fixed backward screen-to-screen copy operation for > 8 bpp modes
- Fixed Voodoo device compilation for big endian architectures
- Fixed randomly missing color palette updates
- Fixed Banshee read from ROM and mem_write() for any size and endianness
- Fixed Banshee bitblt redraw in 3D mode and pitch used in this mode
- Banshee: Implement 8 and 16 byte writes to CMDFIFO
- Double the screen width in 'half mode' if height > width
- CD-ROM:
- Fix to enable TEAC CD-ROM driver to work
- Allow to change the CD-ROM via the Bochs Ribbon, as well as properly "ejecting" a CD from the guest.
This fix simulates an open tray and then a closed tray for all CD changes.
- Bug fix which now closes the cdrom image file when using win32 configuration
- Hard drive / HD image
- Allow large VHD image files.
The size in question doesn't necessarily mean the size of the VHD file on disk. The size is the total
size of the image emulated. The total size increased from roughly 32gig to a limit of 2TB.
- VVFAT: Fixed short name generation in case base name length is > 8
- Floppy drive
- Allows a choice of multiple FDC Controllers to emulate.
Using a compile time #define, you can choose a specified Controller type/manufacture to emulate.
- Added most all FDC supported commands.
Use the 'FDC_TYPE_BOCHS' type to support all commands.
Other types will only support their respected supported commands.
Commands of note: 'format & write', 'read track', 'part id', and corrected the 'version' command.
Did not add the 'Write Deleted Data' command, since there is no way to mark the emulated image
file as a deleted sector. The 'Read Deleted Data' command ignores the SK bit.
- Fixed and enhanced the Format command and function.
- Fixed the Multi-track and EOT function.
A read/write/verify must stop at the end of a track (multi-track aware).
- Fixed the cmos floppy type setting (config.cc::get_floppy_devtype_from_type())
- IGNORE_DEBUG_03F6: set this define so that the log file is not flooded with reads/writes
to this register by the harddrive code.
- The new command/result max size is now a #define (MAX_PHASE_SIZE)
- The SCANEQ/SCANLOWEQ/SCANHIGHEQ commands are untested. I don't have a 'real hardware' controller that
supports these commands. Even though the controller is a 82078, which specifies that it should
support these commands, it returns 'command unsupported'. If I find another controller type, I will
try that one. It would surprise me if any of them actually support this rarely used command.
- This new code fixes an error where Win98 and older Windows versions would set the high order
drive select bit in error. This would specify drive 2 for drive 0, and drive 3 for drive 1.
- Replaced the broken 82078 datasheet URL with one from the QEMU wiki. It should be static now.
- USB
- Added the ability to change interfaces (ex: BBB to UASP).
- Added the Toggle bit check to all controllers/devices. (optional with a #define)
- Added the ability to trigger an over-current to all controllers.
- Added numberous BX_DEBUG checks to the USB_COMMON emulation to help show bugs in a Guest's device driver.
- Added BX_DEBUG if the first requested packet after a reset is not 8 bytes.
- Added a BX_DEBUG check to make sure the speed indicator is correct within TDs.
- Added BX_DEBUG checks to all request lengths, max packet size, and other length checks.
- Return default speed of device/controller combination.
- Check that the bochsrc file doesn't specify two different devices for the same port.
- Check that the bochsrc file has a super-speed device defined on a correct port number.
- Re-wrote how the USB_COMMON passed on packets to allow for zero-length packets to be accepted.
- Fixed the Floppy CBI/CB configuration descriptor.
- Fixed/added USB 2.0 Compliance to all devices. Hub still needs a few additions.
- Floppies (using the CB/CBI protocol) can only be full-speed.
- Fixed the Endpoint Clear Feature request (halted, etc.).
- Added the Endpoint Get Status request to each device.
- Hub power switching emulation.
- Fixed the return/request error on Device Qualifier requests.
- Fixed Device Qualifier and Other Speed requests.
- Added hints to the xHCI configuration Port Option display.
- Added the ability to catch 0xEE descriptors (Microsoft specific).
- Added experimental MSD UASP emulation.
- HID: added multiple mouse modes to have different HID Reports, including a physical report, and an irregular report.
- HID: added the Boot Protocol function.
- HUB: fixed/Added a more accurate DeviceRemovable emulation.
- HUB: Allow USB 1.0 or USB 1.1 emulation (there is a difference).
- HUB: Add bit 0 function to the returned report (change status bit).
- HUB: Some Guests think a NAK on the Interrupt EP is an error. (option to ignore this)
- MSD: fixed USB 2.0 only descriptor emulation. (Device Qualifier, etc.)
- OHCI: fixed the toggle emulation.
- SCSI: added the Event Status command (0x4a).
- SCSI: added BX_DEBUG checks to the command sent by the Guest.
- SCSI: added the block_size in the Read Capacity command (0x25).
- SCSI: added some 0x9E/xx commands. ReadCapacity(16).
- UHCI: re-wrote the uhci stack to better support control/bulk reclamation.
- UHCI: check that a reset doesn't clear the CSC bit during a reset, but should after the reset is complete.
- xHCI: added the ability to have more than one model of xHCI hardware. Currently there are two.
- xHCI: added the ability to indicate the port count.
- xHCI: check the USB2 and USB3 port assignments.
- xHCI: added experimental Stream emulation.
- xHCI: added the (vendor) Dump Controller command (Specific to Bochs).
- xHCI: added checks to the Evaluate Context and Address Device commands.
- xHCI: fixed/updated the Port Status Change Event emulation.
- xHCI: fixed/updated the port bandwidth emulation.
- Many documentation additions.
- Networking
- E1000: Added support for i/o mapped register access to make DOS driver work.
- HPET
- Bugfixes in HPET emulation
- Fixed hang after HPET reset in legacy mode
- SB16
- Set default value for SB16 dmatimer to 1000000 and updated docs
- Align SB16 DMA buffer size to 4 to avoid crash in 16-bit stereo mode
- Added 16-bit write support for even i/o addresses
- Keyboard/Mouse
- Reduce default keyboard serial delay to 150 to avoid timeouts
- BIOS / VGABIOS
- Added capability to enter keycode with ALT + numeric keypad
- LGPL'd VGABIOS updated to version 0.9a (from https://github.com/bochs-emu/VGABIOS)
- Added VBE get/set palette data support for Banshee and Cirrus versions
- Fixed order of colors in VBE function get/set palette data
- Added VBE set palette data support to protected mode interface
- VESA BIOS function 0x4f00 now stores strings in OemData (for VBE 2.0)
- Implemented AH=12h / BL=36h (video refresh control)
- Banshee: Added support for VBE function get/set palette format
- Fixed video mode detection for TTY functions
- Fixed Cirrus vertical timing parameters for 800x600 modes
- Added protected mode interface for the Banshee and Cirrus version
- Cirrus: Added support for 1152x864x8 video mode
-------------------------------------------------------------------------
Changes in 2.7 (August 1, 2021):
Brief summary :
- Bugfixes for CPU emulation correctness (CPUID/VMX/SVM fixes to support
Windows Hyper-V as guest in Bochs)
- Improvements for the plugin handling to simplify Bochs extensions
- Added "multiple NICs" support to the NE2000 and E1000 devices
- Added experimental FTP service for networking modules 'vnet' and 'socket'
- Fixes and improvements for all supported Voodoo graphics adapters
- Added USB keyboard emulation with most of the keys supported
- GUI "cmdmode": create a headerbar event with key combo starting with F7
- LGPL'd VGABIOS updated to version 0.8a (new VGABIOS for Voodoo Banshee)
Detailed change log :
- General
- Improved plugins handling: all available plugins in path are detected at
startup (including externally developed ones). These types are supported in
Bochs configuration: config interfaces, display libraries, VGA compatile
adapters, optional PCI/ISA devices, pluggable USB devices, disk image,
networking and sound driver modules.
- Save/Restore bugfixes
- Removed legacy "load32bitOShack" feature.
- Removed "svga" display library designed for the obsolete Linux SVGALib.
- Configure and compile
- Added example shortcut script for cross compiling on Linux for Windows.
- Visual Studio workspace files upgraded to VS2019 format.
- Config interface
- The config interfaces 'textconfig' and 'win32config' are now plugins.
- Switch config interface to 'textconfig' at runtime in case the gui doesn't
support dialogs (rfb and vncsrv on Windows).
- CPU/CPUDB
- Bugfixes for CPU emulation correctness (CPUID/VMX/SVM fixes to support Windows Hyper-V as guest in Bochs)
- TSC: Implemented TSC_ADJUST MSR and enabled in all relevant CPU models
- Protection Keys: Implemented Supervisor-Mode Protection Keys (PKS)
- AVX-VNNI: Implemented AVX encoded VNNI instructions
! CPUID: Added TigerLake CPU definition (features CET and CLWB support)
- Memory
- Improved BIOS write support by implementing Intel(tm) flash chip emulation.
- Bochs Debugger and Instrumentation
- Switching to new internal instruction disassembler implementation based on Bochs internal instruction decoder.
New disassembler supporting natively all instruction extensions that Bochs is able to emulate, including AVX512*.
Old disassembler module is outdate and was removed from the source tree.
- Add more symbol lookups to disasm methods
- I/O Devices
- Networking
- Added "multiple NICs" support to the NE2000 and E1000 devices. Up to 4 devices
per model are supported. Use the zero-based "card" parameter to specify device.
- Added experimental FTP service for networking modules 'vnet' and 'socket'.
- Fixes for iPXE network boot support (modules 'slirp', 'socket', 'vnet').
- Added config file support for the 'vnet' module (similar to 'slirp').
- Added log file support to 'bxhub' utility (networking module 'socket').
- Packet logging in text format for the 'slirp' and 'vnet' modules controlled
by runtime option ("pktlog" option in config).
- VGA
- Voodoo (all models): Now using CLUT for gamma correction in 16 bpp modes.
- Voodoo2: Added most of the bitblt capabilities.
- Voodoo Banshee: Added "Polygon Fill" command and 2D colorkey support.
- Removed lfb_enabled switch from Bochs VBE code. Now banked and LFB writes
to VRAM are always valid. Fixes GRUB bootloader menu when using Bochs VBE.
- DDC: Added "ddc" parameter to the "vga" option to make it possible
either to disable the DDC feature or to read the monitor EDID from file.
- PCI (general)
- Added config parameter to set up advanced PCI options. Now it is possible
to disable ACPI or HPET in case the i440FX chipset is selected. For the
i440BX chipset it is possible to disable the incomplete AGP subsystem.
- USB
- Added keyboard emulation with most of the keys supported.
- Added support for USB packet logging in PCAP format.
- Changed handling of device options in the USB port configuration
(see bochsrc sample).
- Sound
- Added PC speaker volume control for the lowlevel sound support.
- GUI and display libraries
- Added support for calling a headerbar handler after pressing F7 (enabled
with "cmdmode" option / present in sdl, sdl2, win32 and x).
- Added support for saving text mode snapshot in BMP format.
- Write marker to log file by pressing "m" button (guis with "cmdmode" on).
- X11 keymaps: added new one for Swiss-German and improved Italian map.
- RFB / vncsrv: VGA features h/v pel panning and split screen now supported.
- RFB: added support for the pixel format RGB332.
- added display library option for disabling the Bochs gui console to use
the default system console instead (rfb, sdl, sdl2, vncsrv, x).
- win32: added display library option "autoscale" to scale a small
simulation window by factor 2, 4 or 8 depending in desktop window size.
- wx: fixed status bar handling to avoid segfaults and deadlocks.
- VGABIOS
- LGPL'd VGABIOS updated to version 0.8a.
- Added initial version of the VGABIOS for Voodoo Banshee adapters.
- Added 'write character' support for non-VGA 8-bpp modes (Bochs VBE /
Cirrus / Banshee). Cirrus code uses bitblt engine.
- Fixed text output and scrolling in VGA graphics modes.
- Some small fixes in the VBE code and several code optimizations.
- Misc
- Added support for converting VDI images to another format with bximage.
-------------------------------------------------------------------------
Changes in 2.6.11 (January 5, 2020):
- General
- Added 64-bit support to the NSIS installer script
- Several fixes in the build system based on Debian patches
- CPU / CPUDB
- Bugfixes for CPU emulation correctness
- Many critical bugfixes for Protection Keys, AVX512*, VMX/SVM, SHA, GFNI emulation
! Implemented CET (Control Flow Enforcement Technology) emulation according to Intel SDM rev071
- I/O Devices
- Added missing Cirrus SVGA bitblt feature "transparent color compare"
- Some fixes in HPET emulation (patch by Oleg)
- Fixed disk image lock mechanism in the USB MSD case
- BIOS / VGABIOS
- LGPL'd VGABIOS updated to version 0.7b (Fixed VESA extension 'read EDID'
for Bochs VBE and Cirrus)
- Updated SeaBIOS ROM image to current version 1.13.0
- Added SeaVGABIOS ROM image for the Cirrus adapter
- Bochs BIOS built to work with CPU level 5 again
-------------------------------------------------------------------------
Changes in 2.6.10 (December 1, 2019):
Brief summary :
- CPU: Bugfixes for CPU emulation correctness (critical bugfixes for PCID, ADCX/ADOX, MOVBE, AVX/AVX-512 and VMX emulation)
- CPU: implemented AVX-512 VBMI2/VNNI/BITALG, VAES, VPCLMULQDQ / GFNI instructions emulation
- VMX: Implement EPT-Based Sub-Page Protection
- CPUID: Added new CPU models Skylake-X, Cannonlake and Icelake-U
- CPUID: Implemented side-channel attack prevention reporting and corresponding MSR registers, enabled for Icelake-U
- Added basic support for the i440BX PCI/AGP chipset.
- Added basic Voodoo Banshee / Voodoo3 emulation support.
- Added basic DDC support for the VGA-compatible adapters.
- Implemented HPET emulation (ported from Qemu).
Detailed change log :
- General
- Disabled legacy "load32bitOShack" feature.
- Improved NSIS win32 installer script.
- CPU / CPUDB
- Significant speedup to simulation of milti-threaded guest (patch by Luigu.B)
- Bugfixes for CPU emulation correctness (critical bugfixes for PCID, ADCX/ADOX, MOVBE, AVX/AVX-512 and VMX emulation)
! x87: implemented FOPCODE and FDP deprecation features
! AVX-512: implemented AVX-512 VBMI2/VNNI/BITALG instructions
! Crypto: Implemented VAES instructions / VPCLMULQDQ / GFNI instruction
! VMX: Implement EPT-Based Sub-Page Protection
! CPUID: Added Skylake-X CPU definition (features AVX-512 support)
! CPUID: Added Cannonlake CPU definition (features more AVX-512 levels, UMIP, SHA, PKU support)
! CPUID: Added Icelake-U CPU definition (features more AVX-512 levels, UMIP, SHA, GFNI, VAES, PKU support)
! CPUID: Implemented SCA (Side-Channel-Attack) Prevention reporting and corresponding MSR registers, enabled for Icelake-U CPU definition
- Bochs Debugger and Instrumentation
- Added support for conditional breakpoints and conditional step/continue to Bochs debugger
- Support 'info tab' command for 64-bit mode as well
- Bochs debugger improvements patch by Doug Gale
- better handling of 64-bit addresses in the debugger, added support for 64 bit symbols,
added more symbol lookups.
- I/O Devices
- PCI
- Added basic support for the i440BX PCI/AGP chipset.
- Timers
- Implemented HPET emulation (ported from Qemu).
- Hard drive / HD image
- Added support for unlocking disk images (locks leftover from previous
Bochs session) with the new command line argument '-unlock'.
- Added ATAPI command "get event status notification".
- Bugfix: undoable/volatile mode images now inherit the base image geometry
if present.
- Voodoo
- Voodoo1 emulation speedup with combined PCI / memory FIFO implementation
and multi-threading support (separate FIFO thread).
- Voodoo2 model now working after some fixes and implementation of the
CMDFIFO (using FIFO thread) and one of the bitBLT functions.
- Added Voodoo Banshee / Voodoo3 emulation support (still under construction,
but basically usable). The AGP models are available if chipset is i440BX.
- Display (general)
- Added basic DDC support for Bochs VBE, Cirrus and Voodoo Banshee / Voodoo3
adapters (reporting plug&play monitor "Bochs Screen").
- USB
- Now creating separate plugins for each USB device implementation.
- Added sector size option for USB disks (size 1024 and 4096 supported).
- Networking
- bxhub: Added DNS service support for the server "vnet" and connected
clients.
- Sound
- PC speaker now can play digitized sound by driving speaker gate.
- GUI and display libraries
- Added new win32 gui option "traphotkeys" for fullscreen mode.
- wx: Fixes and updates for wxWidgets 3.0 support.
- Removed legacy guis "macos" and "svga" from display library auto-
detection (still available using --with-XXX option).
- LGPL'd VGABIOS updated from CVS (VESA extension 'read EDID' for Bochs VBE
and Cirrus added).
- Misc
- Added sector size option to bximage for creating flat, sparse and growing
mode images with big sectors (size 1024 and 4096 currently supported).
-------------------------------------------------------------------------
Changes in 2.6.9 (April 9, 2017):
Brief summary :
- CPU: implemented new instructions and x86 architecture extensions.
- Bugfixes for CPU emulation correctness.
- Added Android host platform support.
- Added USB EHCI device emulation support.
- Added USB floppy (UFI/CBI) support.
- Added ethernet module 'socket', designed to interconnect Bochs instances.
- Show textconfig at runtime in the Bochs VGA window (gui console).
Detailed change log :
- General
- Added new log action "warn", designed to show a message box on error events.
- Show message box before exit if log action is set to "fatal".
- Added macro BX_FATAL for all cases when continuing is not recommended, since
it can cause an application crash or incorrect simulation behaviour.
- Configure and compile
- Added Android host platform support.
- Configure script now prints warnings for features not maintained yet.
- GUI and display libraries
- Show the runtime configuration in the Bochs VGA window (gui console) instead
of console / xterm (rfb, sdl, sdl2, vncsrv and X11 guis).
- SDL2: Added get/set clipboard text support.
- CPU / CPUDB
- Bugfixes for CPU emulation correctness (critical bugfix for x86-64 and AVX opcodes emulation,
fixed assertion failures in proc_ctrl.cc)
! VMX: Implemented Page Modification Logging (PML)
! VMX: Implemented TSC Scaling Extension
! Paging: Implemented Protection Keys
! Implemented UMIP: User Mode Instruction Prevention (don't allow execution of SLDT/SIDT/SGDT/STR/SMSW with CPL>0)
! Implemented RDPID instruction
! Implemented VPOPCNTD/VPOPCNTQ AVX512 instructions
! Implemented XSAVES/XRSTORS instructions and IA32_XSS MSR
! Implemented Translation Cache Extensions (TCE) for AMD CPUID and EFER.TCE control
! Implemented CLZERO instruction (AMD), enabled in Ryzen CPU model
! Implemented MONITORX/MWAITX instructions (AMD), enabled in Ryzen CPU model
! CPUDB: Added AMD Ryzen configuration to CPUDB
- I/O Devices
- Busmouse
- Added standard bus mouse support in addition to the existing InPort
emulation code. (patch by Ben Lunt).
- Hard drive
- Implemented lock mechanism for hard disk images. An image that is opened
in r/w mode cannot be used multiple times (e.g. by another Bochs session).
- Several fixes in some disk image modes.
- Serial / Parallel ports
- Added support for changing output file at runtime.
- Networking
- Added ethernet module 'socket', designed to interconnect Bochs instances
with external program 'bxhub' (simulating a multi-port ethernet hub).
- Now creating separate plugins for each network driver implementation
(slirp, win32, etc.).
- Sound
- Added PCM output data resampling in a separate thread. The resampler
requires either libsamplerate or the SoX resampler library installed.
- SDL: Added audio capture support (requires library version >= 2.0.5).
- Now creating separate plugins for each sound driver (alsa, win, etc.).
- USB
- Added USB EHCI device emulation support (EHCI core ported from Qemu).
- Added USB floppy (UFI/CBI) support (patch by Ben Lunt).
- Added asynchronus USB packet completion support (needed by disk/cdrom
seek and read/write latency emulation).
- Implemented USB remote wakeup mechanism.
- Fixed NAK response handling in all USB HCs.
- USB printer: added support for changing output file at runtime.
- Added common USB device option "debug" to turn on BX_DEBUG reporting at
connection time.
- ROM BIOS
- Implemented Bochs BIOS option "fastboot" for skipping the boot menu delay.
-------------------------------------------------------------------------
Changes in 2.6.8 (May 3, 2015):
- CPU / CPUDB
- Bugfixes for CPU emulation correctness (critical bugfix for x86-64 emulation)
- Memory type calculation support for Bochs debugger and instrumentation,
to enable configure with --enable-memtype option.
- CPUDB: Added Pentium (P54C) configuration to CPUDB
- CPUDB: Added Broadwell ULT configuration to CPUDB
- Updated definition of instrumentation callbacks, see description in
instrumentation.txt / Fixed instrumentation examples
- Configure and compile
- Configure option --enable-fast-function-calls now also used for MSVC nmake.
- Some configure fixes for the GTK debugger support.
- GUI and display libraries
- The VGA update timer mode now can be selected with the 'vga' option.
- Release all pressed keys when the simwindow gets back the keyboard focus.
- Win32 gui: Captured mouse cursor now really trapped in window.
- SDL2: Implemented yes/no dialog (e.g. for VVFAT commit).
- Some fixes for wxWidgets 3.0 and unicode version compatiblity.
- Full save/restore support for enhanced gui debugger settings (window+font).
- Added debugger support for the term gui using a pseudo-terminal.
- I/O Devices
- Hard drive
- Added Oracle(tm) VM VirtualBox image support (VDI version 1.1)
- Re-enable "bulk I/O" repeat speedups extension.
- Some lowlevel cdrom code fixes for Windows and Linux.
- Sound
- SB16: Fixed OPL chip detection by implementing ISA bus delay.
- SB16: Ported OPL3 emulation from DOSBox and partly removed legacy code.
- ES1370: Added MIDI UART output support.
- ES1370: Fixed critical bug that made Win9x drivers crash.
- Major rewrite of the lowlevel sound code.
- Added mixer thread support (required for all modules except 'sdl').
- New mixer and SDL mixer are polling data from the PCM output buffers,
the PC speaker beep generator and the OPL3 FM generator.
- PCM format conversion to 16 bit signed little endian.
- Added sound 'file' module for VOC, WAV, MID and raw data output
and added dual output support (device+file) in midi/wave mode 3.
- Added capability to set up the sound driver per service.
- Floppy
- Fixed "Read ID" command for single-sided media (patch by Ben Lunt).
- ROM BIOS
- Fixed keyboard scancode processing after keyboard intercept.
- Fixed rombios32 code to avoid incorrect ACPI table detection.
-------------------------------------------------------------------------
Changes in 2.6.7 (November 2, 2014):
- CPU / CPUDB
- Implemented AVX-512BW/AVX-512DQ/AVX-512VL extensions emulation.
- implemented AVX512-IFMA532 instructions emulation.
- implemented AVX512-VBMI instructions emulation.
- Bugfixes for CPU emulation correctness (critical fixes for AVX-512, CMPXCHG16B and VMX)
- Fixed Bochs segmentation fault crash with Handlers Chaining Speedups enabled when
compiling with gcc, especially with low optimization levels.
- Reverted removal of reporting Architectural Perfmon support in pre-defined CPUID modules.
Windows 8 and Windows 10 require Performance Monitoring to be reported to boot.
To workaround possible Windows 7 64-bit installation issues: use bx_generic CPUID module,
which doesn't report Performance Monitoring in CPUID.
- GUI and display libraries
- The VGA update timer and the status LED timer now always use the realtime mode
independent from the 'clock' option setting.
- Added native SDL2 GUI support to Bochs. To enable configure with --with-sdl2.
- Added new user shortcut "scrlck" (SDL/SDL2 using "Scroll Lock" for fullscreen toggle).
- Write enhanced gui debugger settings to file on exit and restore on initialization.
- I/O Devices
- USB
- xHCI model now emulates a NEC/Renesas uPD720202 device (patch by Ben Lunt).
- Added USB port specific option 'size' for VVFAT disks (range 128M ... 128G).
If the size is not specified or invalid, it defaults to 504M.
- Hard drive / HD image
- Fixed crash when using a "fixed" type VPC image.
- ROM BIOS
- Fixed int74_function() for 4-byte (wheel mouse) packets.
- LGPL'd VGABIOS updated from CVS (fixed building VBE modes list)
- Misc
- Visual Studio workspace files updated to VS2013Ex format.
- bximage_old/bxcommit: removed old obsolete image manipulation tools.
- Documentation fixes and updates.
-------------------------------------------------------------------------
Changes in 2.6.6 (June 15, 2014):
- CPU / CPUDB
- allow sandy bridge configuration even when AVX is not compiled in
- Configure and compile
- fixed compilation error when 3dnow support is enabled
- speedup Visual Studio build by almost 20% by adding /Gr compiler option
- Misc
- fixed minimizing win32 gui window and resolution change while minimized
- added compiled SeaBIOS 1.7.5 image into Bochs tree along with Bochs BIOS images
- documentation fixes and updates
-------------------------------------------------------------------------
Changes in 2.6.5 (June 1, 2014):
Brief summary :
- CPU: extra 5-10% emulation speedup with new trace linking optimization
- CPU: implemented new instructions (e.g. AVX-512, SHA, XSAVEC)
- CPUDB: added 2 new CPU models
- Bugfixes for CPU emulation correctness (including some critical ones)
- Gui debugger output window now can be used as a log viewer
- Added built-in slirp (user-mode networking) support (ported from Qemu)
- Added global sound config option and volume control support to the devices
- Added new experimental gui 'vncsrv" using the LibVNCServer library
- Rewrite of the bximage utility in C++ for image creation, conversion and resize
Detailed change log :
- CPU
- Bugfixes for CPU emulation correctness (critical fixes for XSAVE, VMX, TBM/BMI and RDRAND instructions)
- Implemented FCS/FDS Deprecation CPU feature
- Implemented SHA instructions emulation
- Implemented XSAVEC instruction emulation and XINUSE optimization in the XSAVEOPT instruction
- Implemented AVX-512 instructions emulation (experimental)
! CPUDB: Added Intel(R) Core(TM) i7-4770 CPU (Haswell) configuration to CPUDB
! CPUDB: Added AMD A8-5600K APU (Trinity) configuration to CPUDB
- Replace 'SSE' and 'AVX' .bochsrc option with single 'SIMD' option which controls presence
of all CPU SIMD extensions from SSE to AVX-512
- Extra 5-10% emulation speedup with new trace linking optimization. The optimization
is enabled by default when configuring with --enable-all-optimizations option,
to disable trace linking optimization configure with --disable-trace-linking.
The optimization require to compile Bochs with at least -O2 optimization level on gcc.
- Bochs Debugger and Instrumentation
- Added disasm for Bochs internal instruction representation, especially useful for instrumentation
- Updated definition of instrumentation callbacks, see description in
instrumentation.txt / Fixed instrumentation examples
- added capability to use the gui debugger output window as a log viewer
- General
- Increased max. device log prefix size to 6 and added / modified prefixes
- plugin version now uses the native DLL handling code for all Windows ports
- critical bugfixes in save/restore functionality
- Configure and compile
- configure and compilation fixes for Cygwin and Visual Studio environment
- configure option --enable-cdrom now only controls the presence of
platform-specific code for device access
- building plugin version with MSVC nmake now supported
- Config interface
- Added global sound control option for the driver and wave input/output
- Added new bochsrc option to control the speaker output mode
- Added support to specify the initial time for 'clock' option in ctime(3) string format
- Added support for the LTDL_LIBRARY_PATH variable with MSVC plugins
- All SB16 / ES1370 options are now changeable at runtime
- textconfig: added menu item for saving configuration at runtime
- Added bochsrc option for the Voodoo Graphics emulation (experimental)
- I/O Devices
- Hard drive / CD-ROM
- seek latency implemented for ATA/ATAPI read commands
- portable ISO image file access now available on all platforms
- Networking
- added built-in slirp (user-mode networking) support (ported from Qemu)
- removed the "slirp backend" support (required external slirp binary)
- slirp/vnet: all supported TFTP extension options implemented now
- Sound
- SB16 / ES1370: added volume control support for wave output
- SB16: fixed audio distortion when playing stereo wave files
- ES1370: added 'wavemode' support similar to the SB16
- soundwin: added capability to specify the ID of the MIDI device to use
- Serial
- Serial mouse detection fixes
- Busmouse
- Non-functional device rewritten to make it work in DOS and Win95 guests
(use --enable-busmouse to configure and "mouse: type=bus" at runtime)
- ROM BIOS
- PS/2 mouse function: allow setting mouse packet size to 4 for wheel support
- GUI and display libraries
- Added new experimental gui 'vncsrv" using the LibVNCServer library
- RFB: set maximum resolution to 1280x1024 (same as vncsrv)
- RFB: don't wait for client connection on startup if timeout is set to 0
- Added mouse wheel support to the rfb, vncsrv and wx guis
- wx: added viewer window for the Bochs log output
- win32: fixes and improvements for the fullscreen mode
- Tools
- bximage utility rewritten in C++ for image creation, conversion, resize
and redolog commit. Now vmware4 and vpc images can be created.
-------------------------------------------------------------------------
Changes in 2.6.2 (May 26, 2013):
- CPU
- VMX: implemented VMENTER to non-active guest state (HLT, SHUTDOWN, WAIT-FOR-SIPI)
- VMX: fixed write of guest segment access rights VMCS fields (32-bit field
was truncated to 16-bit)
- CPUID: Don't report Architectural Performance Monitoring in CPUID.
Reporting true capabilities without actually supporting them breaks Win7 x64 installation.
- CPUID: Fixed bx_generic CPUID std leafs (all std leafs > 2 were corrupted)
- CPUID: Enable all supported VMX capabilities for bx_generic CPUID configuration.
- CPUID: Enable X2APIC support for Ivy Bridge CPUDB configuration.
- Configure and compile
- Enabled VMX compilation by default in shortcut scripts.
- Allow CPU_LEVEL=5 configurations (pentium_mmx and amd_k2_chomper) even when Bochs was
compiled with CPU_LEVEL > 5.
- Misc
- Fixes for Bochs port on MorphOS (based on a patch by Thore Sittly):
missing functions, byte-swapping and cdrom support.
-------------------------------------------------------------------------
Changes in 2.6.1 (April 7, 2013):
- CPU / CPUDB
- Bochs is fully aligned with rev45 of the of Intel(R) Architecture Manual.
- Implemented Supervisor Mode Access Prevention (SMAP) support
- Implemented VMX APIC Registers Virtualization and VMX Virtual Interrupt Delivery
- Implemented VMCS Shadowing and #VE exception secondary VMEXIT controls emulation
- Implemented RDRAND and RDSEED instructions
! CPUDB: Added AMD FX-4100 (Zambezi) configuration to CPUDB
- Bugfixes for CPU emulation correctness (critical fixes for SVM and AVX2 emulation)
- Bochs Debugger and Instrumentation
- Use Enhanced GUI Debugger instead of old-style wx debugger with wx gui.
The old-style wx debugger support was deprecated and removed from the source code.
- I/O Devices
- Implemented 3dfx Voodoo Graphics card emulation based on DOSBox patch, to enable
configure with --enable-voodoo option.
- Hard drive / HD image
- Added full save restore support for most of the disk image formats
- undoable / volatile mode: added support of other types of r/o base images
- DLL HD support rewritten and enabled for WIN32 host
- PCI chipset
- Implemented i430FX chipset emulation
- USB UHCI always enabled in the i440FX case
- Config interface
- Configure option --enable-misaligned-sse moved to runtime option in .bochsrc. The old
option is deprecated and should not be used anymore.
- moved 'user_shortcut' bochsrc option to the 'keyboard' option
- save log options per device to bochsrc
- win32: implemented scrollable dialog items for large parameter lists
- GUI and display libraries
- Graphics snapshot feature rewritten to support all kinds of graphics modes
- wx: starting a second simulation without closing Bochs now almost possible
- Tools
- bxcommit: added support for converting flat to growing mode images
-------------------------------------------------------------------------
Changes in 2.6 (September 2, 2012):
Brief summary :
- More than 10% CPU emulation speedup !
- Support for AMD's SVM hardware emulation (including extended XAPIC support).
- Implemented support for new x86 ISA extensions.
Bochs is fully aligned with rev043 of Intel(R) Architecture Manual.
- Improved emulation accuracy (critical fixes for APIC, VMX and AVX/XOP emulation).
- Bochs internal debugger: new command to show state of a device from the debugger.
- ROM BIOS: improved PCI boot ROM support (for VGA and other devices)
- Networking:
- Ported Intel(R) 82540EM Gigabit Ethernet adapter emulation from Qemu.
- Added PCI network boot ROM support to all network adapters.
- Added TFTP support to the 'slirp' networking module.
- Harddrive: added support for VirtualPC disk images, fixed sparse disk images.
- Sound:
- implemented PC speaker beep using the lowlevel sound interface.
- SDL audio output support.
- Added ability to set log action per device from .bochsrc.
- Moved disk imaging, networking, sound and USB devices to subdirectories
in the iodev folder.
Detailed change log :
- CPU
- Implemented EPT A/D extensions support.
Bochs is fully aligned with rev043 of the of Intel(R) Architecture Manual.
- Implemented ADX (ADCX/ADOX) instructions support, the feature can
be enabled using .bochsrc CPUID option.
- More than 10% CPU emulation speedup with even more optimal lazy flags
handling, stack access optimizations and cross branch trace linking.
- Support for AMD's SVM hardware emulation in Bochs CPU, to enable
configure with --enable-svm option
- Implemented AMD Extended XAPIC support, to enable set .bochsrc CPU
APIC option to 'xapic_ext'
! Added Corei5 750 (Lynnfield) configuration to the CPUDB
! Added Turion64 (Tyler) configuration to the CPUDB
! Added AMD Phenom X3 8650 (Toliman) configuration to the CPUDB
! Added Corei7 3770K (Ivy Bridge) configuration to the CPUDB
- Bugfixes for CPU emulation correctness and stability
(critical fixes for APIC/X2APIC, VMX and AVX/XOP emulation)
- Bochs Debugger and Instrumentation
- Implemented new debugger command 'info device [string]' that shows the
state of the device specified in 'string'
- Improved debug dump for ne2k, pci, pic and vga/cirrus devices. Added
debug dump for pci2isa, i/o apic, cmos, pit, floppy and dma devices.
- Added TLB to CPU param tree - now it can be browsed from Bochs internal
debugger and Bochs debugger GUI through param tree interfaces
- Implemented 'writemem' debugger command to dump virtual memory block
starting from selected linear address into a file
- Updated definition of instrumentation callbacks, see description in
instrumentation.txt / Fixed instrumentation examples
- Configure and compile
- Moved disk imaging, networking, sound and USB devices to subdirectories
in the iodev folder.
- pcidev: enable support for Linux kernel 3.x (Debian patch by Guillem Jover)
- debugger: generate parser / lexer files only if all required tools are present
- Config interface
- Added support for direct device plugin loading with bochsrc directive for
devices which have the same name for the plugin and config option.
- The bochsrc option 'plugin_ctrl' can now be used to load/unload optional
plugins directly when parsing the config file or command line. See the bochsrc
sample for supported devices.
- Moved bochsrc parsing / writing and config parameter handling for networking,
sound and USB devices to the plugin device code. The options are only
available when the corresponding plugin device is loaded.
- Added ability to set log action per device from .bochsrc.
- Added new command line option '-noconsole' to disable the console
window on Windows host.
- Renamed PCI Pseudo NIC option to "pcipnic" (for direct plugin loading)
- Moved several related options to the new "keyboard" bochsrc option.
- Added new parameter 'rtc_sync' for the 'clock' option. If this option
is enabled together with the realtime synchronization, the RTC runs
at realtime speed.
- Moved MWAIT_IS_NOP bochsrc option from CPUID to CPU so it can be set
even if cpu was configured using pre-defined CPUDB profile.
- Allow larger CPU 'quantum' values when emulating SMP systems for speed
(quantum values up to 32 are allowed now).
- I/O Devices
- Networking
- Ported Intel(R) 82540EM Gigabit Ethernet adapter emulation from Qemu,
to enable configure with option --enable-e1000
- Added PCI network boot ROM support to all network adapters
- Added TFTP support to the 'slirp' networking module
- PCI
- added "auto-assign to PCI slot" feature for PCI-only devices
- DMA
- Added the capability to transfer more then one byte / word per ISA DMA cycle
- VGA
- Major rewrite of the vga / cirrus code:
- vgacore (shared standard VGA emulation code)
- vga (Bochs VBE and PCI VGA)
- cirrus (CL-GD 5430 ISA / CL-GD 5446 PCI)
- Added VGA graphics blinking support
- More accurate vertical and horizontal retrace emulation
(based on the DOSBox implementation)
- hard drive / hdimage
- added new disk image mode 'vpc' for VirtualPC images
- undoable mode: added coherency check (flat image size and timestamp)
- sparse mode: fixed read support
- Sound
- implemented PC speaker beep using the lowlevel sound interface
- added SDL audio output support
- ROM BIOS
- improved PCI boot ROM support (for VGA and other devices)
- added MADT entry for Interrupt Source Override to ACPI tables
- GUI and display libraries
- implemented "auto-off" timer for status LEDs indicating a data transfer
- Added support for sending absolute mouse position values from the gui if an
absolute pointing device (USB tablet) is active (rfb, sdl, win32, wx, x).
- Gui debugger now supported when using sdl gui on Windows
- Implemented "hideIPS" option in rfb, sdl, win32 and wx libraries
- wx: fixed random freezes with wxGTK and "show ips" feature enabled
- rfb: the "show ips" feature now works on Windows host
- Tools
- bxcommit: added support for converting growing to flat mode images
- bxcommit: support command line options and non-interactive (quiet) mode
- bximage: increased maximum disk size to 8 TB
- SF patches applied
[3540389] Patch 5 : Change memory reference functions argument order by Yeong-uk Jo
[3539254] Patch 4 : Memory reference optimization 2 by Yeong-uk Jo
[3539251] Patch 3 : Memory reference optimization by Yeong-uk Jo
[3539237] Patch 2 : Some optimization by Yeong-uk Jo
[3539228] Patch 1 : ROM BIOS Compatibility patch by Yeong-uk Jo
[3505209] Fixed combo box size by Konrad Grochowski
[2864391] Gui debugger default regs by Thomas Nilsen
[3486555] Fix critical stack leak in Win32 GUI by Carlo Bramini
- these S.F. bugs were closed/fixed
[625877] wx: power button -> thread deadlock
[3534063] Configure does not check for flex presence
[3555237] NE2000 doesn't compile on OS/X
[3553168] X doesn't build in latest code on OS/X
[3550175] Crash when saving snapshot to directory instead of file
[3548109] VMX State Not Restored After Entering SMM on 32-bit Systems
[3548108] VMEXIT Instruction Length Not Always Getting Updated
[3545941] Typo in preprocessor symbol
[3538731] Missing CR8 register
[3538574] Missing XD flag ( Execute Disable ) when showing PTEs
[3537556] Missing initializations
[3537309] Unable to use the debug GUI with SDL and plugins
[3537473] GUI debugger only shows 32-bit CRx registers in x86-64 mode
[3533426] UHCI PCI interrupts
[3459359] svga cirrus initialization
[3535228] info gdt does not show long mode segments
[3531806] Bochs crashes (SIGSEGV) when starting via ssh console
[3531807] Various missing initialization values reported by Valgrind
[635789] mapping mode 0 not supported
[3307201] BOCHS panics when execute HBIOS.COM
[3528809] IO APIC index register width
[3528516] Missing #if in soundmod.h
[3526069] MADT:Interrupt Source Override missed
[3518753] update dump after manual chages to memory contents
[3516859] bug in svn e1000 module
[3516029] stepping not working in debugger GUI in case of smp vm
[3510403] closing config dialog box closes entire simulator
[3459998] Bochs cannot be compiled outside the source tree
[2905969] can't use --enable-gdb-stub on vs2008
[3294001] Bochs GUI doesn't appear properly for 2nd Bochs copy
[3493315] Changing VGA 9/8 dot mode causes screen corruption
- these S.F. feature requests were closed/implemented
[3540441] automatically enable devices in plugin control
[1251456] command line method to query bochs for features
[3409396] sdl sound
[3519794] debugger's ability to save physical/linear memory dumps
[1429612] Idea how to speedup simulation - stack direct access
[1703452] Other Network Devices?
[2919376] Disable show the console window
[534271] can't set log action by device (bochsrc)
-------------------------------------------------------------------------
Changes in 2.5.1 (January 6, 2012):
- CPU / CPUDB
! Added Athlon64 (Venice) configuration to the CPUDB
- BMI: fixed EFLAGS after BMI instructions
- MSR: access to AMD extended MSR space was impossible due to a bug in RDMSR/WRMSR
- VMX: fixed VMFUNC instruction behavior to align with Intel SDM revision 041
- VMX: fixed Bochs PANIC when doing I/O access crossing VMX I/O permission bitmaps
- VMX: fixed VirtualBox VMX guest Guru Meditation - FS.BASE got corrupted after
saving/restoring unusable FS selector
- VMX: fixed VirtualBox failures with VMX+EPT enabled
- Better report of supported CPUID features when not using pre-defined CPUID profile
- Debugger / Instrumentation
- fixed typo - closing SF bug [3461405] step all command fails in SMP mode
- instrumentation: added special indication for indirect call/jump
- Configure and compile
- fixed compilation err in instrumentation call (tasking.cc)
- fixed compilation err with x86 hw breakpoint enabled and CPU_LEVEL < 6
- fixed compilation issue under win32 --with-nogui
- added missing dependencies for cdrom_osx.o