Stanislav Shwartsman
92aecadb18
allow to emulate more guest RAM that host could allocate, it is fine until guest tries to access all the allocated memory
2009-10-16 17:10:36 +00:00
Stanislav Shwartsman
140d2d1508
cleanups
2009-10-15 21:39:40 +00:00
Stanislav Shwartsman
3dbb1da68a
remove "dirty" pages tracking - it is too memory consuming and can fit with >4G phy addr space
2009-10-15 20:50:33 +00:00
Stanislav Shwartsman
5880d7f49c
bugfix with phy addr long
2009-08-11 15:56:09 +00:00
Stanislav Shwartsman
f29b5a97d6
fixes with long phy addr
2009-08-10 08:08:25 +00:00
Stanislav Shwartsman
b15792f955
dbg stuff fixes for > 32 bit phy mem
2009-08-10 07:51:41 +00:00
Stanislav Shwartsman
74c62a59ab
Fixes for > 32-bit physical addr range
2009-08-03 15:01:07 +00:00
Stanislav Shwartsman
3ffda1442a
Allow loading roms bigger than 0x10000. Set the limit to 0x20000.
2009-03-29 20:08:27 +00:00
Stanislav Shwartsman
6fe0b40b44
move a20 handling into getHostAddr method of BX_MEM
2009-03-08 21:23:40 +00:00
Stanislav Shwartsman
1b72e66bb3
support for apic global disable
...
separate between I/O apic and local apic
2009-02-18 22:25:04 +00:00
Stanislav Shwartsman
3a1852ea23
take local APIC read/write access into CPU class from BX_MEM (needed for APIC virtualization later)
2009-02-17 19:20:47 +00:00
Volker Ruppert
e5eac65b59
- removed wrong character from FSF address (converted invisible and useless
...
2-byte character)
- updated FSF address in some files
- added license to some files
2009-02-08 09:05:52 +00:00
Stanislav Shwartsman
9929e6ed78
- updated FSF address
2009-01-16 18:18:59 +00:00
Volker Ruppert
501952efdd
- removed unused logfunctions member 'type' and related method 'settype()'
...
- updated FSF address in copyright
2009-01-10 11:30:20 +00:00
Volker Ruppert
01b0ed241b
- fixed endianness problems at PCI DMA block transfers using getHostMemAddr()
...
and memcpy()
- changes in getHostMemAddr() for the usage outside of the cpu
2008-12-13 11:03:36 +00:00
Stanislav Shwartsman
d7fa44d270
optimize code access detection
2008-12-05 22:34:42 +00:00
Stanislav Shwartsman
0f5f075e4d
- Fixed theoretically possible pageWriteStamp overflow
2008-10-21 19:50:05 +00:00
Stanislav Shwartsman
d12c08f720
Typo fixed
2008-10-18 18:14:04 +00:00
Stanislav Shwartsman
ce425f02d9
Small fix towards 40-bit physical address emulated
2008-10-18 18:10:14 +00:00
Stanislav Shwartsman
f6b7fecba2
For future 64-bit ph.addr
2008-05-10 21:36:55 +00:00
Stanislav Shwartsman
6ebae41ad7
print physcial address with special format - preparations for 64-bit physical address emu
2008-05-09 22:33:37 +00:00
Stanislav Shwartsman
73d8bd3af4
Hide more memory variables
2008-05-01 20:28:36 +00:00
Stanislav Shwartsman
d8c77cc1ae
Small cleanup for memory class
2008-04-17 20:20:43 +00:00
Stanislav Shwartsman
fda4d38959
32-bit systems have a problem to allocate large amount of physical memory for Bochs simulation which makes simulation with 4G address space virtually impossible. But in most of the cases when 4G physical address space defined - it is not touched by default on every run so it is possible to allocate only really accessed blocks. This commit made all necessary preparations for it.
2008-04-17 14:39:33 +00:00
Stanislav Shwartsman
a459a64f3e
whispace, tab2space, indent, dos2unix and other cleanups
2008-02-15 22:05:43 +00:00
Stanislav Shwartsman
25a9b9fef1
whitespace cleanup again
2008-02-03 20:27:06 +00:00
Stanislav Shwartsman
72d72c92d4
Fixed warnings of VC2008
2007-12-30 18:02:22 +00:00
Stanislav Shwartsman
838fb2a048
Fixing V2008 warnings - they found a bug in sse_pfp.cc !
2007-12-23 17:21:28 +00:00
Stanislav Shwartsman
92f7a3a805
Fixed several compilation errors under OSX
2007-12-10 19:05:07 +00:00
Volker Ruppert
cc80157a94
- fixed compilation error
2007-11-02 23:30:07 +00:00
Stanislav Shwartsman
e137560b14
Complete MONITOR/MWAIT implemntation (including monitoring of memory range)
...
Fixed PANIC in read/write Cr/Dr - should #UD with unkown register used
2007-11-01 18:03:48 +00:00
Stanislav Shwartsman
a4e20e9d29
warnings fixed
2007-10-24 23:02:09 +00:00
Stanislav Shwartsman
071c5c1a26
A lot of changes but everything is really trivial.
...
Make save/restore default feature, the configure option for save/restore removed from configure script and save/restore made available forever. All code now assume it is exists. Bochs save/restore tree previosly called "save_restore" renamed to "bochs" tree and it will be havily used everywhere, starting from save/restore and ending by various bochs debugger functions. I am going to rework debugger code to get rid of debug CPU access functions and use this "bochs" param tree instead
2007-09-28 19:52:08 +00:00
Stanislav Shwartsman
593f9d5f36
Fixed typo
2007-05-15 12:48:59 +00:00
Stanislav Shwartsman
9d907b5f65
Try to specify everywhere the list size in bx_list_c constructor
2007-04-03 22:38:49 +00:00
Volker Ruppert
0c827dcbf1
- implemented debugger access to SMRAM area
2006-10-02 17:40:20 +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
0a804aeb18
- memory cleanup code moved to a separate method (called from bx_atexit())
...
- fixed memory handler init and cleanup code (memory leaks)
2006-09-15 17:02:52 +00:00
Volker Ruppert
a3908d6e86
- moved BX_USE_MEM_SMF to all the other SMF definitions in config.h.in (should
...
be set to 1, since there is only one address space present)
- fixed memory object member to support the static case (SMF)
2006-09-02 12:08:28 +00:00
Volker Ruppert
77217aa7b8
- fixed memory init code for restart support in wx (a lot more changes in other
...
parts of Bochs are needed to make it really work)
2006-09-01 18:14:13 +00:00
Stanislav Shwartsman
1deddb9f0e
Fix linking problem with debugger enabled
2006-06-06 16:46:08 +00:00
Stanislav Shwartsman
fea15294b5
Fixed compilation error in init.cc
...
Move initialization of memory object to misc_mem.cc
2006-06-03 12:59:14 +00:00
Stanislav Shwartsman
594b8cce47
Fixed segfault with bochs debugger but reported today
2006-05-31 17:20:52 +00:00
Stanislav Shwartsman
8b0df8e99b
Merge SAVE_RESTORE branch to CVS
2006-05-27 15:54:49 +00:00
Stanislav Shwartsman
6a0d15ee31
Veto direct write to the 0x000C0000 to 0x000EFFFF area
2006-04-29 16:55:22 +00:00
Stanislav Shwartsman
41204ede1a
Fixed compilation err with debugger ON
2006-04-06 16:43:36 +00:00
Volker Ruppert
05280a1eba
- fixed handling of BIOS extensions with base address within the 0xe0000 segment
...
- fixed a warning
2006-04-05 16:58:22 +00:00
Stanislav Shwartsman
4fd9bd53c3
Change Bit32u -> bx_phy_address in memory
2006-03-28 16:53:02 +00:00
Stanislav Shwartsman
da3d26d7f4
Preliminary implemntation of SMM save statei
...
Fixed fetchModeMask for load32bitOsStack
2006-03-27 18:02:07 +00:00
Stanislav Shwartsman
c7d142200f
Implement SMRAM conrol register in i440fx chipset and all its functionality in memory class
2006-03-26 22:15:07 +00:00
Stanislav Shwartsman
f3ac069c90
initialize new BX_MEM_C member
2006-03-26 19:48:54 +00:00
Stanislav Shwartsman
b8be848943
Use access_type param in getHostMemAddr, less efficient but no copy-paste at least
2006-03-26 19:39:37 +00:00
Stanislav Shwartsman
5c3fba4399
Support access to SMRAM in memory object
...
Cleanup in CPU code
2006-03-26 18:58:01 +00:00
Stanislav Shwartsman
7b6c2587a9
Now devices could be compiled separatelly from CPU
...
Averything that required cpu.h include now has it explicitly and there are a lot of files not dependant by CPU at all which will compile a lot faster now ...
2006-03-06 22:03:16 +00:00
Stanislav Shwartsman
5fad793989
move local apic handling to the access_linear function for the memory class.
...
speedup the whole simulation by 2% !
2006-03-01 22:32:24 +00:00
Stanislav Shwartsman
dfeaf141f0
Register I/O APIC as memory handler, optimize memory handlers array
2006-02-27 19:04:01 +00:00
Volker Ruppert
6311fface8
- pci options rewritten to a parameter tree
...
- proposed parameter tree updated
- pci presence flag stored in the memory code
2006-02-19 21:35:50 +00:00
Volker Ruppert
7a48a576b5
- fixed ROM address range check
2006-02-11 09:35:54 +00:00
Stanislav Shwartsman
c7dd4185a7
Do not pass crc32 function as parameter to memory class - it is available as global function now
2006-01-28 16:16:03 +00:00
Stanislav Shwartsman
37eb82c69c
Totally remove the cosimulation code from Bochs.
...
The Bochs anyway even doesn't compile if cosimulation configured enabled.
But in the same time the cosimulation code only disturbs to the future development of Bochs debugger, for example adding x86-64 functionality ...
For those of you who still may want to see the cosimulation code inside I put it in patch and upload it Bochs CVS patches folder. Read comments for the patch ! ----------------------------------------------------------------------
2006-01-25 22:20:00 +00:00
Stanislav Shwartsman
18afa9fd2d
This is cumulative patch for bochs debugger, it is only very first step towards working debugger supporting all new simulator functionalitieS.
...
- move crc.cc from debugger to bochs folder and make it projct-wide and not local for debugger
- added new 'info sse' command for debugger
- extend 'modebp' command to break on any mode change
- remove unimplemened 'info program' function, it is always printed fixed text
- move debugger help to parser, cleanup and simplify it
2006-01-24 19:03:55 +00:00
Stanislav Shwartsman
aacabd00f9
Generate MP tables only when APIC enabled
2006-01-18 19:11:05 +00:00
Stanislav Shwartsman
f2fc4bbe5a
Generate MP tables even for single CPU configurations
2006-01-17 18:15:49 +00:00
Stanislav Shwartsman
96c074f87b
Fix MP table generated by Bochs
2006-01-10 18:33:27 +00:00
Volker Ruppert
28853fe54c
- calculate BIOS ROM start address from image size if no address parameter is
...
used or address is set to 0.
2005-12-27 16:59:27 +00:00
Volker Ruppert
81dd23c68f
- create SMP specific tables dynamicly ("backported" from qemu - already mentioned
...
in our TODO list items 9.1 and 9.2)
2005-12-25 19:30:48 +00:00
Volker Ruppert
dd384f68ed
- report checksum error only if the original Bochs BIOS is used
...
- prepared dynamicly created SMP tables (should be at F000:B000, so we can get
rid of the SMP specific BIOS images)
- MSVC warning fixed
2005-12-19 20:48:51 +00:00
Stanislav Shwartsman
0f8c8c85ed
indent changes
2005-11-27 19:40:56 +00:00
Volker Ruppert
f8d7f31f89
- always use BX_N_OPTROM_IMAGES as the maximum number for RAM & ROM
...
- reset code for RAM & ROM simplified
- fixed some typos and warnings
2005-10-28 06:33:53 +00:00
Kevin Lawton
641650e7e1
Added optramimage directive for .bochsrc files, with same syntax as
...
optromimage. You can load up to 4 arbitrary binary images into RAM.
I didn't do any checking on the addresses, so it's up to you to make
sure they don't collide with anything else. Should only be used for
placing files into standard RAM.
2005-10-28 00:12:27 +00:00
Volker Ruppert
dab91288a9
- a rom extension starting in the 0xdxxxx space must end at max. 0xdffff
...
- don't create a checksum for BIOS extensions without signature at 0xe0000
2005-10-25 19:12:54 +00:00
Volker Ruppert
9d3cbbdb76
- accept an optional rom image in the 0xe0000 area and load them into BIOS memory
2005-10-25 08:33:55 +00:00
Volker Ruppert
0e2f0a4392
- support for large BIOS images with up to 512k size added (initial patch by magicfox)
2005-10-12 17:11:44 +00:00
Volker Ruppert
2cb4d376fd
- only panic if the VGABIOS checksum is wrong
2005-07-07 16:57:53 +00:00
Volker Ruppert
69fe0b00d4
- some more warnings in MSVC fixed
2005-06-07 19:26:21 +00:00
Stanislav Shwartsman
1755589376
Separate pageWriteStamp from ICACHE. The pageWriteStamp has totally independant structure and could be used in future with icache structure. Also it could be significantly speeded up using BX_SMF analog constructions.
2005-04-10 19:42:48 +00:00
Volker Ruppert
780bcd3579
- fixed getHostMemAddr() for memory regions assigned to a memory handler
...
(e.g. PCI PnP memory)
2005-01-29 23:29:08 +00:00
Volker Ruppert
2da42331ff
- missing break statement added in function getHostMemAddr()
2004-11-28 08:54:59 +00:00
Stanislav Shwartsman
02fc33a86b
Fix CS.base register after #RESET
...
update changes
2004-11-16 19:19:13 +00:00
Volker Ruppert
82ea615428
- getHostMemAddr() now returns a pointer to a 4k memory array filled with 0xff
...
if an unexisting memory address is requested
- rom array initialized with 0xff
- fixed access to aliased bios rom in dbg_fetch_mem()
2004-11-16 18:50:21 +00:00
Volker Ruppert
229ff0195a
- 128k BIOS ROM space now aliased on memory top
2004-11-14 14:06:43 +00:00
Volker Ruppert
d3d33d3e7a
- unaligned shadow RAM array replaced by an aligned ROM array. Shadow RAM is now
...
normal RAM and the ROMs are stored in the ROM array. TODO: alias BIOS on
memory top.
2004-11-11 20:55:29 +00:00
Stanislav Shwartsman
a9022ac5cb
Fixed compilation prroblem reported in bug
...
[ bochs-Bugs-913418 ] compiler errors with --enable-external-debugger option
Remove code duplication
2004-10-29 21:15:48 +00:00
Stanislav Shwartsman
5e23909c7c
prepations for NX bit implementation
2004-10-21 18:20:40 +00:00
Volker Ruppert
03b5797db9
- rom image size check (multiple 512) enabled again
...
- rom checksum test added (TODO: checksum test in rombios)
2004-09-02 18:24:50 +00:00
Volker Ruppert
9a6a7ec2fd
- rom address space check added to avoid overlapping rom images
...
- vgaromimage option now compatible with the other rom options. Old style syntax
(without 'file=...") is still supported.
- load order for the rom images fixed (system, vga, other)
- rom images sizes not multiple 512 cause a BX_INFO for now. The original check
will be enabled after updating the vgabios files
- optromimage error messages fixed
- some updates of the bochsrc sample
2004-09-01 18:12:23 +00:00
Stanislav Shwartsman
016207b222
Commented problematic check in misc_mem.cc
...
Implemnted lazy-flags and undocumented flags handling for IMUL instructions
2004-08-30 21:47:24 +00:00
Volker Ruppert
1b2769e73a
- added some sanity checks in function load_ROM()
...
- removed unused and obsolete stuff from the memory code
2004-08-26 07:58:33 +00:00
Volker Ruppert
d06c80cee3
- changed all iodev config macros to BX_SUPPORT_xxx
...
- removed incorrect SDL/ prefix from include paths (patch from Robin KAY)
2004-08-06 15:49:55 +00:00
Stanislav Shwartsman
f9bd2b74be
1. Fixed bug in FSUB instruction
...
2. Fixed bug
[ 989478 ] I-Cache and undefined Instruktions
The L4 microkernel uses an undefined instruction to
trap for a special requests into the kernel (LOCK NOP).
The handler fixes this up and gives the user a special
code page with syscall stubs. If you're not using the
I-Cache optimization everthing works find on bochs. But
if you enable the I-Cache (--enable-icache), then the
undefined opcode exception is thrown only once for ever
virtual address it occurs. See the demodisk of the
L4KA::pistachio
(http://www.l4ka.org/projects/pistachio/download.php ).
In this case the pingpong benchmark of this demo is of
interest. Everything runs fine until the program tries
to spawn a new task for its measurements. This new task
shares the code of the creating program. But the new
task stops executing at the undefined instruction
explained above and no exception is thrown.
2004-07-29 20:15:19 +00:00
Stanislav Shwartsman
5873b26a82
Speed up compilation process.
...
bochs.h already not include iodev.h which reduces compilation dependences for almost all cpu and fpu files, now cpu files will not be recompiled if iodev includes was changed
2004-06-19 15:20:15 +00:00
Volker Ruppert
36d7f60c21
- VBE LFB memory now registered using DEV_register_memory_handlers (static LFB
...
memory handling in memory.cc removed)
- type of memory handlers changed to bx_bool
- misc_mem.cc: fixed a warning
2004-06-06 17:01:19 +00:00
Daniel Gimpelevich
6c26e6a65f
Introduced Frank Cornelis's PCIDEV patch.
2004-01-15 02:08:37 +00:00
Volker Ruppert
88667a4759
- removed obsolete symbols (hard disk and cdrom names, dynamic translation)
...
- symbol BX_PROVIDE_BIOS_HOOKS removed and "romimage" description updated
- symbol BX_SUPPORT_VGA removed (VGA support is always present)
2003-09-10 16:34:56 +00:00
Christophe Bothamy
42ad2eaa1e
- fix Bochs failing to panic when BIOS images can not be loaded
2003-08-06 08:24:14 +00:00
Christophe Bothamy
575287a144
-fix segfault bhen running with smp enabled
2003-08-05 13:19:35 +00:00
Volker Ruppert
d1652093ac
- applied some parts of the patch from Andrew Zabolotny <zap@cobra.ru>
...
* changed all %ll format descriptions to FMT_LL macro so that
Microsoft Visual C works correctly (it uses %I64)
* missing type conversions added
* cdrom.cc: variable types for win32 fixed
* removed some unused variables in eth_win32.cc and harddrv.cc
* added missing includes in make_cmos_image.c and niclist.c
2003-06-07 19:16:55 +00:00
Volker Ruppert
6b184eb3b5
- better error handling in function load_ROM():
...
* cause a BX_PANIC if the path of the system BIOS or VGA BIOS is empty
* open() and fstat() now cause a BX_ERROR if the rom image is optional
2003-04-02 17:03:34 +00:00
Christophe Bothamy
50efc3b8c7
- apply Conn Clark's patch.perf-regparm-cclark :
...
- it works only on x86 with gcc2.95+
- uses the GCC function atribute "regparm(n)" to declare that certain
functions use the register calling convention
- performance improvement is about 6%
2003-03-02 23:59:12 +00:00
Christophe Bothamy
b2dbcdb993
- apply Zwane's patch.highmem patch
...
It can be easily removed if things go wrong on win32
2003-01-29 15:01:16 +00:00