[LinuxBIOS] LinuxBIOS, VMWare & CMOS

Borg No. One borg_no.one at gmx.net
Mon Mar 12 13:40:59 CET 2007

Hi all,

it is great to see that the topic: "LinuxBIOS in VMware" is current again* and that there are new advances.

*="again" means following:

-- http://www.google.de/search?q=bios440+linuxbios
-- http://www.mail-archive.com/linuxbios@clustermatic.org/msg09993.html
-- http://www.mail-archive.com/linuxbios@clustermatic.org/msg10054.html
-- http://linuxbios.org/pipermail/linuxbios/2006-January/013288.html
-- ...

Well, because it would really interessting to use an open source BIOS in VMware soon, here are some further information and notes which may be helpful for running experiments with:
-- VMware and LinuxBIOS
-- different VMware Option ROMs
-- VMware Option ROM related switches in the VMware configuration file

bios440.filename = ""
--> it is the magic switch to avoid that VMware uses the built-in BIOS and that it uses an external BIOS file instead.

Jamie Gavahan wrote:
> notice there is no parameter for e1000 cards.

In contrast to the emulated devices: "AMD Am79C970A - PCnet LANCE PCI Ethernet Controller" and: "VMXNET - VMware PCI Ethernet Adapter",
there seems to be no parameter for disabling the emulated "Intel E1000" Option ROM / for "removing" the virtual e1000 Option ROM FlashROM .

But there is a switch to set the Option ROM size: ".opromsize"
If you set the size to zero, then no e1000 Option ROM will be loaded.

Example for an emulated e1000 NIC without OPROM:

ethernet0.present = "True"
ethernet0.virtualDev = "e1000"
ethernet0.startConnected = "TRUE"
ethernet0.connectionType = "custom"
ethernet0.flashWriteable = "True"
ethernet0.opromsize = "0" # ( "4294967295" = max. size without getting an VMware error message ;-) .)

Jamie Gavahan wrote:
> These have unknown values:
> svga.noOprom
> ethernet%u.opromsize

svga.noOprom = "True" # (default= "False")
... means that the emulated VMware VGA device will be used, but will not have an Option ROM.
If you start VMware with: "svga.noOprom = "True"" then the VMware Phoenix BIOS will output the typical PC speaker sounds ;-) .

a) svga.vramSize = "xxx" # ( "16777216" = max value)
... can change the video memory size

vbios.filename= "path to video BIOS file"
... forces VMware to uses an external Video BIOS filename

To simply get/extract the VMware VGABIOS file and the other VMware Option ROMs / BIOS files from the VMware executable(without starting VMware and without building a bootdisk that would contain a VGABIOS dumping tool), you can use:
a) "objdump" and "objcopy"

b) "resource hacker"/"reshack" (or other resource editors) --> for Windows users / for VMware Windows version

Interesting links:

-------- Original-Nachricht --------
Datum: Sun, 11 Mar 2007 04:32:49 -0600
Von: "Jamie Gavahan" <redpike at gmail.com>
An: "Joe Pub" <joepubber at googlemail.com>
CC: linuxbios at linuxbios.org
Betreff: Re: [LinuxBIOS] LinuxBIOS, VMWare & CMOS

> On 3/9/07, Joe Pub <joepubber at googlemail.com> wrote:
> > Hi All,
> >
> > I am getting closer to having VMWare working with a LinuxBIOS BIOS.  I
> > had an issue which I was unsure of, where certain compile options
> > would just not work with VMWare.  I have finnaly figured out why that
> > is.
> >
> > By enabling CONFIG_PCI_ROM_RUN for instance, includes extra object
> > files within the resulting binary, hence making the used part of the
> > ROM image greater.  Here lies my problem.  VMWare seems to load the
> > LinuxBIOS rom, but then overwrite the address at 0xFA000 with 8K of
> > NVRAM data, basically overwriting portions of the LinuxBIOS code.
> >
> > So what I was wondering, what would be the best approach to reserve
> > that area of memory to that it does not corrupt any of the LinuxBIOS
> > code.
> Have you figured out what VMWare is overwriting part of linuxBIOS with?
> Is linuxBIOS loaded into VMWare with the bios440.filename parameter?
> I think that VMWare is overwriting that part of memory with updated
> NVRAM information, loading video BIOS, or loading ethernet card ROM
> to that address. I'm not sure what you've tried already, but I've found
> some
> configuration file parameters that might help figure out what's going on.
> nvram.mode = "nonpersistent"
> This prevents changes to NVRAM; maybe this is what you are looking for?
> nvram = "/path/file"
> This defines a custom NVRAM to be loaded.
> vlance.noOprom = "true"
> vmxnet.noOprom = "true"
> These disable the ROM on ethernet cards, freeing up some memory;
> notice there is no parameter for e1000 cards.
> e1000bios.filename = "/path/file"
> nbios.filename = "/path/file"
> The former is the path to a ROM file for the Intel ethernet card; the
> latter
> is the path to a ROM file for the AMD PCnet and VMXnet ethernet adapters.
> These have unknown values:
> svga.noOprom
> ethernet%u.opromsize
> I'm going to start looking into linuxBIOS in VMWare, both as a replacement
> BIOS for guest OSs, and to develop with linuxBIOS easier. I haven't tested
> any of the parameters above, but plan to soon; now you can tinker with
> them
> too!
> jgav
> -- 
> linuxbios mailing list
> linuxbios at linuxbios.org
> http://www.openbios.org/mailman/listinfo/linuxbios

Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer

More information about the coreboot mailing list