I'm stuck with a few questions about applying SeaBIOS to Bochs (Windows), hoping someone is willing to give out some helpful hints.
1) Can the downloadable v1.6.3 binary directly be used in Bochs, or is a recompile needed? Thought I read some docs about MTRR config options.
2) What minimal system requirements does SeaBIOS put on a virtual machine? 80586, 2MB, PCI ? 80386, 1MB, ISA ?
3) Is there an opensource BIOS, usable in Bochs and QEMU, that does work with only 1MB RAM assigned to the VM? SeaBIOS fails this.
As much as I like VMware, and QEMU (including SeaBIOS) as well, evaluation of all the 22 criteria for my goal (see [1]) resulted selecting Bochs as least bad emulation/virtualisation/simulation solution. Hopefully QEMU can match these criteria someday.
with best regards,
Bernd Blaauw
[1] : [ http://sourceforge.net/mailarchive/message.php?msg_id=28786659 ]
On Tue, Feb 14, 2012 at 08:44:59PM +0100, Bernd Blaauw wrote:
I'm stuck with a few questions about applying SeaBIOS to Bochs (Windows), hoping someone is willing to give out some helpful hints.
- Can the downloadable v1.6.3 binary directly be used in Bochs, or
is a recompile needed? Thought I read some docs about MTRR config options.
I think you may need to change some config options. Try enabling CONFIG_OPTIONROMS_DEPLOYED and disabling CONFIG_MTRR_INIT. I think the latest version of Bochs may no longer need one or both of these, but I'm not sure. Sebastian may know.
- What minimal system requirements does SeaBIOS put on a virtual
machine? 80586, 2MB, PCI ? 80386, 1MB, ISA ?
SeaBIOS should work okay with 1MB. This seems to fail in recent QEMU versions, but I think that is specific to QEMU.
Retesting seabios with qemu-0.13 - it looks like some regressions made it into seabios - see attached patch for a fix. (With patch below, it works okay for me with qemu-0.13 with "-m 1" option.)
The latest SeaBIOS tip will work on 80386 - the 1.6.3 version requires a 80586. I think PCI may be required (to unlock ram).
- Is there an opensource BIOS, usable in Bochs and QEMU, that does
work with only 1MB RAM assigned to the VM? SeaBIOS fails this.
SeaBIOS should work. If there are SeaBIOS issues, they should be fixed.
-Kevin
diff --git a/src/acpi.c b/src/acpi.c index 107469f..7bc662d 100644 --- a/src/acpi.c +++ b/src/acpi.c @@ -496,6 +496,10 @@ static void* build_pcihp(void) int i;
u8 *ssdt = malloc_high(sizeof ssdp_pcihp_aml); + if (!ssdt) { + warn_noalloc(); + return NULL; + } memcpy(ssdt, ssdp_pcihp_aml, sizeof ssdp_pcihp_aml);
/* Runtime patching of EJ0: to disable hotplug for a slot, diff --git a/src/pmm.c b/src/pmm.c index 82a0b1d..c649fd8 100644 --- a/src/pmm.c +++ b/src/pmm.c @@ -214,7 +214,8 @@ malloc_fixupreloc(void) int i; for (i=0; i<ARRAY_SIZE(Zones); i++) { struct zone_s *zone = Zones[i]; - zone->info->pprev = &zone->info; + if (zone->info) + zone->info->pprev = &zone->info; }
// Add space free'd during relocation in f-segment to ZoneFSeg
On Wed, Feb 15, 2012 at 3:21 AM, Kevin O'Connor kevin@koconnor.net wrote:
The latest SeaBIOS tip will work on 80386 - the 1.6.3 version requires a 80586. I think PCI may be required (to unlock ram).
I think 386 is an ok minimum. How about 286 though? Will SeaBIOS work on 286? If not, why not? Is it possible to make it work? Is it worth it?
Kevin O'Connor wrote:
On Tue, Feb 14, 2012 at 08:44:59PM +0100, Bernd Blaauw wrote:
I'm stuck with a few questions about applying SeaBIOS to Bochs (Windows), hoping someone is willing to give out some helpful hints.
- Can the downloadable v1.6.3 binary directly be used in Bochs, or
is a recompile needed? Thought I read some docs about MTRR config options.
I think you may need to change some config options. Try enabling CONFIG_OPTIONROMS_DEPLOYED and disabling CONFIG_MTRR_INIT. I think the latest version of Bochs may no longer need one or both of these, but I'm not sure. Sebastian may know.
bios.bin-1.6.3 [1] works in Bochs x86 Emulator 2.5.1.svn.
- Is there an opensource BIOS, usable in Bochs and QEMU, that does
work with only 1MB RAM assigned to the VM? SeaBIOS fails this.
SeaBIOS should work. If there are SeaBIOS issues, they should be fixed.
Bochs BIOS (latest and legacy) should both work. vbxbios (old and new) [2][3] might work too.
[1] http://www.linuxtogo.org/~kevin/SeaBIOS/bios.bin-1.6.3 [2] https://www.virtualbox.org/browser/trunk/src/VBox/Devices/PC/BIOS [3] https://www.virtualbox.org/browser/trunk/src/VBox/Devices/PC/BIOS-new
Sebastian
I'm trying to debug SeaBIOS (built into coreboot) with GDB. Would someone point me to information on how I would generate debug symbols for SeaBIOS?
Thanks! -- Steve G.
One other question if you're able to help: Where can I find documentation on the syntax of entries in the bootorder file? I need to add them for my platform, but I'm a bit confused as to how they're constructed. I'm googling, but I've not found a description of the syntax.
Help?
Thanks! -- Steve G.