Hi Weidong,
> How did you recalculate it? is it possible to recalculate it when detect
> invalid checksum?
Checking and recalculating the VGABIOS checksum is being processed
in setup_vga_pt() in hw/pass-through.c.
I thought you have written that part.
If the checksum is invalid, current setup_vga_pt() always overwrites
it with the recalculated value.
What I mention is: the VGABIOS checksum must have been already
recalculated by system BIOS. So, when setup_vga_pt() detects the
invalid one, something might be wrong.
But, I'm not sure all BIOS should work as described in PCIFW Spec.
Actually, my Q35 had invalid checksum.
I attach another patch:
This stops loading vgabios if the checksum is wrong.
Signed-off-by: Noboru Iwamatsu <n_iwamatsu@xxxxxxxxxxxxxx>
Noboru Iwamatsu wrote:
Hi,
>> Intel DX58SO + GeForce GTS250: checksum is OK.
>> Intel DX58SO + GeForce 9600GT: checksum is OK.
>> Fujitsu Q35 M/B + IGD: checksum is bad.
>>
> What does "checksum is bad" mean here?
It means shadowed VGABIOS has invalid checksum
and requires recalculating.
>> What do you think, Weidong?
>> Is just warning enough? Or, should we stop loading the rom?
>>
>>
> Does it still work or not when checksum is bad? If it works, we should
> not stop loading the rom.
When the checksum is bad,
if it is not recalculated, guest has some trouble about handling the
VGA (unable to show BIOS screen, unable to load the gfx driver
properly, ...).
For this case, it's reasonable to warning and stop loading rom. We
didn't encounter this issue.
If it is recalculated, it seems to work fine.
How did you recalculate it? is it possible to recalculate it when detect
invalid checksum?
Regards,
Weidong
Regards,
Noboru.
Noboru Iwamatsu wrote:
Hi,
According to the "PCI Firmware Spec Rev 3.0",
the system firmware have to write the new checksum after resizing
the expansion ROM area.
So, when re-using the shadowed VGABIOS, the checksum must
be valid, and if it is invalid, we should consider the BIOS has
a bug or memory area is corrupted.
This patch just add the warning message when checksum requires
recalculation.
I tried this following environments.
Intel DX58SO + GeForce GTS250: checksum is OK.
Intel DX58SO + GeForce 9600GT: checksum is OK.
Fujitsu Q35 M/B + IGD: checksum is bad.
What does "checksum is bad" mean here?
What do you think, Weidong?
Is just warning enough? Or, should we stop loading the rom?
Does it still work or not when checksum is bad? If it works, we should
not stop loading the rom.
Regards,
Weidong
Regards,
Noboru.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
vgabios-checksum-validation.patch
Description: Text document
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|