diff mbox series

hvmloader crashed when passthrough bridge device but not intel piix4 acpi pm

Message ID 12faee3a.750c.16b64f00e8e.Coremail.lcy985a@126.com (mailing list archive)
State New, archived
Headers show
Series hvmloader crashed when passthrough bridge device but not intel piix4 acpi pm | expand

Commit Message

lcy985a June 17, 2019, 10:16 a.m. UTC
When passthrough a PLX PCI9056 PCI to IOBus bridge,
    hvmloader will crashed for it disallow init bridge class pci device
    except intel PIIX4 ACPI PM.
   
    Signed-off-by: Beyond Lee <lcy985a@126.com>

Comments

Jan Beulich June 17, 2019, 10:33 a.m. UTC | #1
>>> On 17.06.19 at 12:16, <lcy985a@126.com> wrote:
> When passthrough a PLX PCI9056 PCI to IOBus bridge,
>     hvmloader will crashed for it disallow init bridge class pci device
>     except intel PIIX4 ACPI PM.

Right now the conceptual model implies that bridges aren't supposed
to be passed through in the first place. At least that's my understanding.
Could you explain why you need to do so in the first place?

Furthermore making an exclusion on a vendor/device ID basis is
something you can use for your own purposes, but is unlikely to be
suitable for upstream inclusion: Why would this one specific device
be different from all other similar ones?

Jan
lcy985a June 18, 2019, 1:20 a.m. UTC | #2
In my case, this PLX bridge must work with some special software which can't 
run on domain-0。So I have no  choice without passthrough it.
I'm not sure are there some other devices working similar with this bridge,
And not sure it is  suitable for others.
Just deal with the one  I faced.




At 2019-06-17 18:33:02, "Jan Beulich" <JBeulich@suse.com> wrote:
>>>> On 17.06.19 at 12:16, <lcy985a@126.com> wrote:
>> When passthrough a PLX PCI9056 PCI to IOBus bridge,
>>     hvmloader will crashed for it disallow init bridge class pci device
>>     except intel PIIX4 ACPI PM.
>
>Right now the conceptual model implies that bridges aren't supposed
>to be passed through in the first place. At least that's my understanding.
>Could you explain why you need to do so in the first place?
>
>Furthermore making an exclusion on a vendor/device ID basis is
>something you can use for your own purposes, but is unlikely to be
>suitable for upstream inclusion: Why would this one specific device
>be different from all other similar ones?
>
>Jan
>
<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div>In my case, this PLX bridge must work with some special software which can't&nbsp;</div><div>run on domain-0。So I have no&nbsp; choice without passthrough it.</div><div>I'm not sure are there some other devices working similar with this bridge,</div><div>And not sure it is&nbsp; suitable for others.</div><div>Just deal with the one&nbsp; I faced.<br></div><div id="divNeteaseMailCard"></div><br><pre><br>At 2019-06-17 18:33:02, "Jan Beulich" &lt;JBeulich@suse.com&gt; wrote:
&gt;&gt;&gt;&gt; On 17.06.19 at 12:16, &lt;lcy985a@126.com&gt; wrote:
&gt;&gt; When passthrough a PLX PCI9056 PCI to IOBus bridge,
&gt;&gt;     hvmloader will crashed for it disallow init bridge class pci device
&gt;&gt;     except intel PIIX4 ACPI PM.
&gt;
&gt;Right now the conceptual model implies that bridges aren't supposed
&gt;to be passed through in the first place. At least that's my understanding.
&gt;Could you explain why you need to do so in the first place?
&gt;
&gt;Furthermore making an exclusion on a vendor/device ID basis is
&gt;something you can use for your own purposes, but is unlikely to be
&gt;suitable for upstream inclusion: Why would this one specific device
&gt;be different from all other similar ones?
&gt;
&gt;Jan
&gt;
</pre></div><br><br><span title="neteasefooter"><p>&nbsp;</p></span>
diff mbox series

Patch

diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
index 0b708bf..33aadc7 100644
--- a/tools/firmware/hvmloader/pci.c
+++ b/tools/firmware/hvmloader/pci.c
@@ -189,6 +189,8 @@  void pci_setup(void)
             break;
         case 0x0680:
             /* PIIX4 ACPI PM. Special device with special PCI config space. */
+            if ( (vendor_id == 0x10b5) && (device_id == 0x9056) )
+                break;
             ASSERT((vendor_id == 0x8086) && (device_id == 0x7113));
             pci_writew(devfn, 0x20, 0x0000); /* No smb bus IO enable */
             pci_writew(devfn, 0xd2, 0x0000); /* No smb bus IO enable */