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.
Thanks guys.
Hi, We are trying to boot our board with LinuxBIOS.
When we are trying to start the processor, It stops after debug message "Jumping to LinuxBIOS".
We are using Northbridge/Via/vt8606. It was origninally taken from vt8601.
Can anybody pls see the two log and tell why not i am able to go beyound "Jumping to the LinuxBIOS". In the 2nd log, we have also tried to dump north. We have also captured first 70 byte from Serial EEPROM through read_spd mean for SDRAM. I see lots of differences in ouput of lspci and dumpnorth output. Only the first row is matching all other are different.
We have the output of command from runnung machine with vendor BIOS: # lspci -xxx -s 0:0.0 00: 06 11 05 06 06 00 10 22 00 00 00 06 00 00 00 00 10: 08 00 00 ec 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 a0 00 00 00 00 00 00 00 00 00 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: fd db c8 fe 02 00 20 20 e0 00 10 20 20 20 20 20 60: 3f 2a 00 a0 e6 00 00 00 41 7c 43 0f 08 21 00 00 70: c4 80 cc 0c 0e a1 d2 00 01 b4 09 00 00 00 00 00 80: 0f 40 00 00 c0 00 00 00 02 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 02 c0 20 00 01 02 00 1f 00 00 00 00 27 12 00 00 b0: c0 ff 10 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 04 00 32 42 00 b0 00 00 00 00 ------------------------------------------------------------------------------------
Below is the log captured when try to boot the board with LinuxBIOS: --------------------------------------------------- LinuxBIOS-2.0.0.Fallback Fri Mar 9 20:02:10 IST 2007 starting... 01 is the comm register SMBus controller enabled vt8606 init starting 00000000 is the north 1106 0605 0120Serial EPROM dump 80 80 80 80 80 80 80 80 08 08 08 08 08 08 08 08 04 04 04 04 04 04 04 04 0d 0d 0d 0d 0d 0d 0d 0d 09 09 09 09 09 09 09 09 02 02 02 02 02 02 02 02 40 40 40 40 40 40 40 40 00 00 00 00 00 00 00 00 01 01 01 01 01 01 01 01 75 75 75 75 75 75 75 75 54 54 54 54 54 54 54 54 00 00 00 00 00 00 00 00 82 82 82 82 82 82 82 82 10 10 10 10 10 10 10 10 00 00 00 00 00 00 00 00 01 01 01 01 01 01 01 01 8f 8f 8f 8f 8f 8f 8f 8f 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 00 0e 0e 0e 0e 0e 0e 0e 0e a0 a0 a0 a0 a0 a0 a0 a0 60 60 60 60 60 60 60 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 14 14 14 14 14 14 14 0f 0f 0f 0f 0f 0f 0f 0f 14 14 14 14 14 14 14 14 2d 2d 2d 2d 2d 2d 2d 2d 20 20 20 20 20 20 20 20 15 15 15 15 15 15 15 15 08 08 08 08 08 08 08 08 15 15 15 15 15 15 15 15 08 08 08 08 08 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 02 02 02 02 02 02 02 a8 a8 a8 a8 a8 a8 a8 a8 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff Serial EPROM dump end d4 is the computed timing NOP PRECHARGE DUMMY READS CBR MRS NORMAL set ref. rate enable multi-page open Slot 00 is SDRAM 08000000 bytes x2 0100 is the chip size 000e is the MA type Slot 01 is empty Slot 02 is empty Slot 03 is empty 00:06 11 05 06 06 00 10 22 00 00 00 06 00 00 00 00 10:08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30:00 00 00 00 a0 00 00 00 00 00 00 00 00 00 00 00 40:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50:ac 08 80 03 00 00 20 20 e0 00 10 20 20 20 20 20 60:3f 00 00 30 e4 e4 e4 00 41 ac 65 0d 08 7f 00 00 70:00 00 00 00 00 00 00 00 01 f0 00 02 00 00 00 00 80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0:02 c0 20 00 01 02 00 1f 00 00 00 00 00 02 00 00 b0:80 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0:01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 d0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0:00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 ----------------------------------------------------------------------------------------------------------
Joe Pub joepubber@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.
Thanks guys.
On 3/9/07, Joe Pub joepubber@googlemail.com wrote:
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.
One possibility that comes to mind is an ldscript. They can be unreliable but this is one case where it might be very helpful.
Just set up the script to tear a hole in memory at a certain address.
This might work, I have not tried it :-)
ron
On 3/9/07, Joe Pub joepubber@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
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
1.) 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.
2.) 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 ;-) .)
3.) 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 ;-) .
Hints: a) svga.vramSize = "xxx" # ( "16777216" = max value) ... can change the video memory size
b) vbios.filename= "path to video BIOS file" ... forces VMware to uses an external Video BIOS filename
4.) 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" http://www.vmware.com/community/thread.jspa?threadID=28149&tstart=0
b) "resource hacker"/"reshack" (or other resource editors) --> for Windows users / for VMware Windows version
5.) Interesting links: http://www.google.de/search?q=bios440+linuxbios http://www.google.de/search?q=vmware+linuxbios http://www.etherboot.org/wiki/vmwarebios
-------- Original-Nachricht -------- Datum: Sun, 11 Mar 2007 04:32:49 -0600 Von: "Jamie Gavahan" redpike@gmail.com An: "Joe Pub" joepubber@googlemail.com CC: linuxbios@linuxbios.org Betreff: Re: [LinuxBIOS] LinuxBIOS, VMWare & CMOS
On 3/9/07, Joe Pub joepubber@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@linuxbios.org http://www.openbios.org/mailman/listinfo/linuxbios