references in the other manpages are updated.
- the version placeholder is now written in lowercase. This prevents the
modification of the sed argument by 'configure'
- install/uninstall commands for the manpages in Makefile.in modified to make
the changes obove work.
- header and footer of the manpages fixed
- pathnames of installed files updated (FHS compatibility)
- "parport1" section in the bochsrc manpage added
- new option "cdrom" in the "boot" section of the bochsrc manpage added
to describe the format of the log prefix. This option can be any string
with special tokens being replaced at run time :
# %t : 11 decimal digits timer tick
# %i : 8 hexadecimal digits of cpu0 current eip
# %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
# %d : 5 characters string of the device, between brackets
the default is "%t%i%d", so the logprefix is the same as before.
New tokens can be easily added or changed if needed.
Modified Files:
.bochsrc bochs.h logio.cc main.cc gui/control.cc
gui/siminterface.h gui/siminterface.cc
patches/patch.logfilefmteip
see patch [ 551811 ]
Location of some files on Bochs installation breaks the
Filesystem Hierrachy Standard, to be found at:
http://www.pathname.com/fhs/
It is important to comply with FHS because most
distributions require it in order to accept packages.
in a multiprocessor simulation. Imagine that! Without the patch, there is
just one FPU for all the processors, which is clearly wrong.
See bug [ 461762 ] multiple processors but only one FPU
- 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
DMA functions defined. Most of the changes are based on the "bochs sync"
version of plex86. Here is the list of changes:
* register/unregister functions for DMA channels added. The DMA controller
can use the DMA read/write handlers of registered devices directly.
* "hardwired" code in dma.cc removed
* all DMA related code in devices.cc and iodev.h removed
* DMA related code in pc_system.* removed except HRQ handling
* macros for DMA functions defined in bochs.h
* floppy and SB16 code modified to use the changes described above
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)
Specific changes from the patch:
1.) renamed fdcache_eip to fdcache_ip, as it is using
the RIP instead of the EIP.
2.) added a Boolean array fdcache_is32 which uses is32
to determine icache hits. Otherwise we could run 32-bit
code as 16-bit or vice versa.
Modified Files:
config.h.in cpu/cpu.cc cpu/cpu.h memory/memory.cc
The new function register_pci_handlers() is similar to the register functions
for i/o addresses. A PCI device can register the read/write handlers for it's
private PCI configuration space. The i/o mapped registers of the host bridge
control the access to the configuration registers of each PCI device. You can
select the bus, device, function and register address with the confAddr
register. The confData register is a window to the configuration space of the
selected device.
- reset sets the values of the i/o mapped registers to 0
- changed some BX_INFO messages to BX_DEBUG
This means that the REALTIME_PIT now only works on machines
that are capable of sustaining 150000 IPS, in aggregate. This
seems a reasonable requirement, as even my 200Mhz PPC with 16MB
of memory can sustain that.
This is now probably ready for primetime, so I need to get it
added to the configure options.
this little patch brings a significant speed improvement to
the bximage utility. when bximage creates a disk image, it writes
a lot of zeros. actually as much zeros as the size of the image file.
this takes quite a while for large images (at least in my win98/cygwin box).
a faster way to create the image file is to seek to its end and write a
single byte.
to see the speed improvement, create a 100mb image with the old bximge.
then apply this patch and do the same.
This seems to work, but I don't think it works on slow machines (like mine.)
At least, I'm getting fails with the dlxlinux image, but they're pretty
sporadic. This code shouldn't cause any fails.
* dimension_update() stores the global variables columns, rows and
font_height_orig; it uses X font sizes to recalculate the screen size
* text_update() uses the columns, rows and X font sizes when redrawing the
screen; it adjusts the cursor shape using the font sizes
- 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
- added ASM_START / ASM_END instead of #asm / #endasm.
Now we are (tested) able to compile with both gcc2 and gcc3
compiler (Eventually!) Aren't you happy Jeroen ? ;-)
- fixed [ 549815 ]. I included back int19_relocated at the bios
space could not hold the new mov ex, ax
- int19 calls int18 if the boot has failed. I hope this is the
right behavior.
floppy_bootsig_check: disabled=[0|1]. It is not disabled by default.
Sorry for any inconvenience it could cause
- changed the default (if cmos reg is 0) behavior for the floppy boot signature
check, so the new bios is compatible with older bochs binaries (useful if we
want to use the new bios when we release 1.4.1) :
1 : disabled
0 : enabled
- added info at launch time about the boot device and the floppy boot signature
check
- added a "LBA capable" flag in the ata controller
- fixed opened netdevice name (/dev/net/tun...)
- fixed test on iface name (tun instead of tap)
- cosmetic changes
- added example in .bochsrc
Much of these fixes have been contributed by Frederic Bothamy
- 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 ])
- 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 ])
- The emulated vga card issues a dimension_update() using the real
screen dimensions and the real font height.
- The gui selects a font with the requested height or it recalculates
the screen height if the font height is not available.
- The text_update() function uses a new variable 'ncols' instead of the
fixed value of 80 for the number of text columns.
I have tested the changes with X11/Linux, SDL, wxGTK and win32. The changes
in the other guis are not tested yet.
cursor size issue a screen update request
- reading an invalid CRTC register returns 0 / writing is ignored
- bit 7 of CRTC address register is always 0
- debug messages for CRTC registers updated / panics removed
- use the number of visible columns in text mode when calculating the screen
width and the cursor position
not required to use a patched wxWindows library, but it allows us to
do much better key mapping. Bryce sent this patch to the wxWindows
developers, and wxWindows 2.3.3 will include these changes.
60 bytes. It may be simpler to just put the padding code into
ne2k.cc instead. As Peter says:
> I don't think it really matters, but for correctness, the eth_*.cc modules
> should probably all be patched as they are simulating what appears on the
> wire (which is wrong). The ne2k.cc module takes what's on the wire and
> assembles it into packets. By doing it that way, the bug is fixed for all
> NIC drivers in the future.
. ports 0x0400 0x0401 and 0xfff0 : rombios
. ports 0x0500 0x0501 and 0x0502 : vgabios
The rombios log output was previously handled by the unmmapped device
- fixed handling of rotate_on_autoeoi for master PIC in in IAC()
- removed old IRQ handling functions (trigger_irq / untrigger_irq)
- replaced BX_INFO in case of bx_dbg.pic by BX_DEBUG calls
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.
all of the window especially after a resize". This causes screen corruption
on my win98 box whenever Bochs changes resolution, so I removed it from cvs
and checked it in as patches/patch.win32-resize instead.
the SMP interrupt handling is to blame. So I'm putting the 1.46 changes
back into the code. Now keyboard.cc is exactly the same as revision 1.51
again. A copy of the changes is now in patches/patch.eks-port64 so that
they can be easily examined by SMP debugging people.
boot of linux 2.2.17 to freeze forever. I don't understand what's being
done in this rev, so I'll ask Dave to check over it and see he can find
anything suspicious.