qemu-ppc
[Top][All Lists]
Advanced

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

Re: [PATCH for-9.0] ppc440_pcix: Do not expose a bridge device on PCI bu


From: Nicholas Piggin
Subject: Re: [PATCH for-9.0] ppc440_pcix: Do not expose a bridge device on PCI bus
Date: Wed, 10 Apr 2024 14:38:33 +1000

On Wed Apr 10, 2024 at 9:55 AM AEST, BALATON Zoltan wrote:
> Real 460EX SoC apparently does not expose a bridge device and having
> it appear on PCI bus confuses an AmigaOS file system driver that uses
> this to detect which machine it is running on. Since values written
> here by firmware are never read, just ignore these writes and drop the
> bridge device.
>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
> ---
> This is only used by sam460ex and this fixes an issue with AmigaOS on
> this machine so I'd like this to be merged for 9.0 please.

Is it a regression? Does it have a fixes: or resolves: tag?

Unless we broke it in this cycle, I would be inclined to wait,
and we can ask to put it in stable.

Thanks,
Nick

>
>  hw/pci-host/ppc440_pcix.c | 14 +-------------
>  1 file changed, 1 insertion(+), 13 deletions(-)
>
> diff --git a/hw/pci-host/ppc440_pcix.c b/hw/pci-host/ppc440_pcix.c
> index 1926ae2a27..ba38172989 100644
> --- a/hw/pci-host/ppc440_pcix.c
> +++ b/hw/pci-host/ppc440_pcix.c
> @@ -52,7 +52,6 @@ OBJECT_DECLARE_SIMPLE_TYPE(PPC440PCIXState, 
> PPC440_PCIX_HOST)
>  struct PPC440PCIXState {
>      PCIHostState parent_obj;
>  
> -    PCIDevice *dev;
>      struct PLBOutMap pom[PPC440_PCIX_NR_POMS];
>      struct PLBInMap pim[PPC440_PCIX_NR_PIMS];
>      uint32_t sts;
> @@ -170,10 +169,6 @@ static void ppc440_pcix_reg_write4(void *opaque, hwaddr 
> addr,
>  
>      trace_ppc440_pcix_reg_write(addr, val, size);
>      switch (addr) {
> -    case PCI_VENDOR_ID ... PCI_MAX_LAT:
> -        stl_le_p(s->dev->config + addr, val);
> -        break;
> -
>      case PCIX0_POM0LAL:
>          s->pom[0].la &= 0xffffffff00000000ULL;
>          s->pom[0].la |= val;
> @@ -301,10 +296,6 @@ static uint64_t ppc440_pcix_reg_read4(void *opaque, 
> hwaddr addr,
>      uint32_t val;
>  
>      switch (addr) {
> -    case PCI_VENDOR_ID ... PCI_MAX_LAT:
> -        val = ldl_le_p(s->dev->config + addr);
> -        break;
> -
>      case PCIX0_POM0LAL:
>          val = s->pom[0].la;
>          break;
> @@ -498,10 +489,7 @@ static void ppc440_pcix_realize(DeviceState *dev, Error 
> **errp)
>      memory_region_init(&s->iomem, OBJECT(dev), "pci-io", 64 * KiB);
>      h->bus = pci_register_root_bus(dev, NULL, ppc440_pcix_set_irq,
>                           ppc440_pcix_map_irq, &s->irq, &s->busmem, &s->iomem,
> -                         PCI_DEVFN(0, 0), 1, TYPE_PCI_BUS);
> -
> -    s->dev = pci_create_simple(h->bus, PCI_DEVFN(0, 0),
> -                               TYPE_PPC4xx_HOST_BRIDGE);
> +                         PCI_DEVFN(1, 0), 1, TYPE_PCI_BUS);
>  
>      memory_region_init(&s->bm, OBJECT(s), "bm-ppc440-pcix", UINT64_MAX);
>      memory_region_add_subregion(&s->bm, 0x0, &s->busmem);




reply via email to

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