qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [v2][PATCH 2/5] hw:pci-host:piix: split i440fx_init


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [v2][PATCH 2/5] hw:pci-host:piix: split i440fx_init
Date: Thu, 31 Jul 2014 17:47:24 +0200

On Thu, Jul 31, 2014 at 08:10:53PM +0800, Chen, Tiejun wrote:
> On 2014/7/31 18:12, Chen, Tiejun wrote:
> >On 2014/7/31 17:53, Michael S. Tsirkin wrote:
> >>On Thu, Jul 31, 2014 at 05:26:41PM +0800, Chen, Tiejun wrote:
> >>>On 2014/7/31 17:10, Michael S. Tsirkin wrote:
> >>>>On Thu, Jul 31, 2014 at 02:31:36PM +0800, Tiejun Chen wrote:
> >>>>>We'd like to split i440fx_init and then we can share something
> >>>>>with other stuff.
> >>>>>
> >>>>>Signed-off-by: Tiejun Chen <address@hidden>
> >>>>
> >>>>I think this is too much work for very little benefit.
> >>>>Just pass const char *type to i440fx_init.
> >>>
> >>>You know we will introduce that faked PCIe device represented that PCH
> >>>later,
> >>
> >>Later when? On top of this patch series? Would like to see it all
> >>before applying this ...
> >
> >I will send this with other IGD stuff after this series is fine to you
> >since its just creating a simple PCIe device.
> >
> >I think you should know this whole story since as you guys discussed we
> >don't fix that PCH at 1f.0. So it may be like this,
> >
> >static int create_pseudo_pch_isa_bridge(PCIBus *bus, XenHostPCIDevice
> >*hdev)
> >{
> >
> >     struct PCIDevice *dev;
> >
> >     char rid;
> >
> >     /* We havt to use a simple PCI device to fake this ISA bridge
> >      * to avoid making some confusion to BIOS and ACPI.
> >      */
> >     dev = pci_create(bus, -1, "pseudo-intel-pch-isa-bridge");
> >
> >     qdev_init_nofail(&dev->qdev);
> >     pci_config_set_vendor_id(dev->config, XEN_SUBSYSTEM_ID));
> >                         ^
> >                 I don't remember this exactly.
> >     pci_config_set_device_id(dev->config, hdev->device_id);
> >
> >     return 0;
> >}
> >
> >>
> >>>so how to distinguish them? Are you saying I should check the type
> >>>like this?
> >>>
> >>>if(Xen-Type)
> >>>{}
> >>>else
> >>>{}
> >>>
> >>
> >>No! Put the code in init function for the respective class,
> >>pass type as an argument:
> >
> >If you mean we don't introduce any "if/else", I still don't understand
> >how to insert such that function above, could you show this exactly?
> >
> 
> I think I can do this inside that into
> xen_igd_passthrough_pc_machine_pci_bus_init(). There, we can just follow
> pci_bus = i440fx_init() since create_pseudo_pch_isa_bridge() just needs
> pci_bus as a parameter.
> 
> Thanks
> Tiejun

Do it in xen_igd_i440fx_class_init: constructor for your class.
This device is not hot-pluggable right?
If so I would prefer not to make this xen specific.
Instead, find the device and tweak the id when you
initialize the card.

-- 
MST



reply via email to

[Prev in Thread] Current Thread [Next in Thread]