|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH 24/27] grackle: remove broken pci device |
Date: | Mon, 02 Jan 2012 18:53:54 -0600 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110922 Lightning/1.0b2 Thunderbird/3.1.15 |
On 01/02/2012 04:41 PM, Andreas Färber wrote:
Am 20.12.2011 17:51, schrieb Anthony Liguori:I have no idea what's going on here, but this is broken and cannot possibly work because: 1) It's qdev name conflicts with a device that sits on SysBus 2) The PCI constructor expects a SysBus device... but's it's a PCIDevice If you do qdev_create("grackle"), the code expects to get the SysBus version so drop the mystery PCI version.Nack. That's most definitely wrong! The qdev_create("grackle") SysBus device instantiates the PCI host via pci_create_simple(..., "grackle"), which does work, whether intentionally or by accent. (cc'ing mst) For PReP we have the same situation in the patch I'm rebasing, two named "prep-pci". I'll just change the name then. Guess that's what we should do for grackle and uni-north as well. (cc'ing Alex) Anthony, please cc us next time you have doubts about ppc emulation!
Yes, qemu-test now tests powerpc targets and I've caught that this patch breaks it. I'll look into what the right fix should be next week.
From what I recall from the code, I think it's pure luck that this works at all. Regards, Anthony Liguori
AndreasSigned-off-by: Anthony Liguori<address@hidden> --- hw/grackle_pci.c | 17 ----------------- 1 files changed, 0 insertions(+), 17 deletions(-) diff --git a/hw/grackle_pci.c b/hw/grackle_pci.c index 1e529fb..84f1a47 100644 --- a/hw/grackle_pci.c +++ b/hw/grackle_pci.c @@ -115,27 +115,10 @@ static int pci_grackle_init_device(SysBusDevice *dev) return 0; } -static int grackle_pci_host_init(PCIDevice *d) -{ - d->config[0x09] = 0x01; - return 0; -} - -static PCIDeviceInfo grackle_pci_host_info = { - .qdev.name = "grackle", - .qdev.size = sizeof(PCIDevice), - .init = grackle_pci_host_init, - .vendor_id = PCI_VENDOR_ID_MOTOROLA, - .device_id = PCI_DEVICE_ID_MOTOROLA_MPC106, - .revision = 0x00, - .class_id = PCI_CLASS_BRIDGE_HOST, -}; - static void grackle_register_devices(void) { sysbus_register_dev("grackle", sizeof(GrackleState), pci_grackle_init_device); - pci_qdev_register(&grackle_pci_host_info); } device_init(grackle_register_devices)
[Prev in Thread] | Current Thread | [Next in Thread] |