From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ross Philipson Subject: Re: [PATCH 3/3] qemu-xen-trad: IGD passthrough: Expose vendor specific pci cap on host bridge. Date: Tue, 25 Jun 2013 10:08:14 -0400 Message-ID: <51C9A44E.1050309@citrix.com> References: <1360253528-5424-1-git-send-email-firemeteor@users.sourceforge.net> <1360253528-5424-4-git-send-email-firemeteor@users.sourceforge.net> <5113E71B02000078000BCF86@nat28.tlf.novell.com> <5114BDC202000078000BD138@nat28.tlf.novell.com> <20130621180335.GC15809@phenom.dumpdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20130621180335.GC15809@phenom.dumpdata.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel Cc: Ian Campbell , Konrad Rzeszutek Wilk , "G.R." , Stefano Stabellini , Jan Beulich , Jean Guyader List-Id: xen-devel@lists.xenproject.org On 06/21/2013 02:03 PM, Konrad Rzeszutek Wilk wrote: > On Wed, Jun 19, 2013 at 06:37:06PM +0800, G.R. wrote: >> I'm going to rework this patch to address Jan's concern. >> Here is my proposal, please review and comment before I begin: >> >> The proposal is to read a shadow copy of the exposed host register into >> the config space of the emulated host bridge and relies on the >> pci_default_read_config() function >> to provide proper access. >> >> This methodology only works for constant values, which is our case here. >> The exposed value is either read-only or write-locked (for BIOS). >> >> The only exception is that the PAVPC (0x58) register is write-locked >> but not for BIOS. > > So only SeaBIOS or hvmloader should touch it? > >> This is exposed for RW and my proposal is to perform write-through in >> the register write-support. > > What does PAVPC do? As in if the driver wrote 0xdeadbeef in there what > would happen? Is there a list of the appropiate values it should > accept? > >> >>> >>> Also, why would removing the next capability be correct here, >>> when you're not removing _all_ other capabilities? >> I have no answer about this question. *Jean*, could you help comment >> since this is from your code? > > > If he doesn't answer - if you don't remove the capability does it > still work? So I actually originally found this issue with the vendor capabilities and created the original patch for it. This was quite some time ago so I had to go back and look. IIRC the vendor specific capabilities were always the first one in the chain and the unchaining code would drop all further capabilities (which we did not want to pass directly to the guest). We never saw a configuration where the vendor capabilities were not the first. I guess the suggestion is that to make the patch consistent, preceding capabilities should be detected and handled. I am not sure what the best way to do it would be. Perhaps scanning through the chain until 0x09 is found and reporting its offset through 0x34 instead of what is there would be the way to go. Then unchain anything past the 0x09 caps too as is currently done. >> >> Thanks, >> Timothy >> >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@lists.xen.org >> http://lists.xen.org/xen-devel >> > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel