WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Re: [PATCH][RFC] gfx_passthru: warning when vgabios rom

To: weidong.han@xxxxxxxxx, Ian.Jackson@xxxxxxxxxxxxx
Subject: Re: [Xen-devel] Re: [PATCH][RFC] gfx_passthru: warning when vgabios rom has invalid checksum
From: Noboru Iwamatsu <n_iwamatsu@xxxxxxxxxxxxxx>
Date: Thu, 25 Feb 2010 13:54:54 +0900
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Wed, 24 Feb 2010 20:56:01 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4B849401.7090703@xxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4B8219F1.5040301@xxxxxxxxxxxxxx> <4B823088.8090706@xxxxxxxxx> <4B82398B.6020109@xxxxxxxxxxxxxx> <4B8246C5.4090005@xxxxxxxxx> <4B8252A5.4020008@xxxxxxxxxxxxxx> <4B8257A9.8080600@xxxxxxxxx> <19332.6040.166229.889595@xxxxxxxxxxxxxxxxxxxxxxxx> <4B848239.2060603@xxxxxxxxxxxxxx> <4B849401.7090703@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.7) Gecko/20100111 Thunderbird/3.0.1
Hi,

Generally, we should validate the checksum right.

Weidong, have you seen the checksum adjusting?

I only saw it in Q35+IGD.
You know my Q35 is buggy. If this is the only issue of my Q35,
2nd patch (validate and disable) is the best way, I think.

Or, is this a IGD specific issue?
If so, checksum adjusting should be a workaround for IGD pass-through.
I assume IGD's VGABIOS is included in the system BIOS and might be
expanded to the RAM in a different way from the PCI gfx card.

I attach 3rd patch:
When invalid checksum is detected, adjust it if igd_passthru is enabled. In other case, stop loading.

I tried this on my Q35+IGD, the checksum has been adjusted and worked.

Do you have any idea?

Regards,
Noboru.

Signed-off-by: Noboru Iwamatsu <n_iwamatsu@xxxxxxxxxxxxxx>

Noboru Iwamatsu wrote:
Hi,

Weidong Han writes ("Re: [Xen-devel] Re: [PATCH][RFC] gfx_passthru:
warning when vgabios rom has invalid checksum"):
Now I understand. Because your Q35 works with recalculated checksum, I
prefer to only add a warning message, and continue to load rom for gfx
passthru.
Having read this thread I'm still a bit confused. The problem is that
the VGA BIOS on the graphics card is broken and has a broken checksum,
and the proposed workaround is to recalculate the checksum for the
benefit of the guest ?

In the native environment, the VGABIOS, the expansion ROM on the
graphics card, is placed into the 0C0000h address space, and then
executed. Of course, the checksum of the ROM must be valid.

After this initialization, the system BIOS, the actual BIOS of the M/B,
can resize the expansion ROM code to reduce the amount of occupied
space. If the system BIOS resizes it, a new checksum must be calculated
and stored in the ROM image that is on the RAM.

So, normally, shadowed VGABIOS, that is placed in 0C0000h, is already
modified and its checksum must be recalculated.

Qemu-dm copies 0C0000h's contents of the dom0 to guest's 0C0000h.
Guest re-uses dom0's used-up VGABIOS.

The problem that I mentioned is about this recalculated checksum.

System BIOS must guarantee the checksum after the resizing, but,
some M/B does not.
However, after adjusting the checksum, guest seems to work, and
current qemu-dm does so. The buggy system BIOS might just forgets
to recalculate.

Should we check strictly here?

Does this incorrectly checksummed BIOS work natively (ie without
passthrough) and if so why is passthrough different ? Alternatively
if it doesn't work native why are we trying to make it work with
passthrough ?

On another level, Weidong, are you suggesting you'd like to see Noboru
produce a different patch which just produces a warning ?

I sent "just warning" patch on the first of this thread.
I resend it.
Yes, I ack this one. Acked-by: Weidong Han <weidong.han@xxxxxxxxx>

Regards,
Weidong
Noboru.

Signed-off-by: Noboru Iwamatsu <n_iwamatsu@xxxxxxxxxxxxxx>





Attachment: adjust-checksum-for-igd.patch
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel