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 ])