* [PATCH for-9.0] ppc440_pcix: Do not expose a bridge device on PCI bus
@ 2024-04-09 23:55 BALATON Zoltan
2024-04-10 4:38 ` Nicholas Piggin
0 siblings, 1 reply; 6+ messages in thread
From: BALATON Zoltan @ 2024-04-09 23:55 UTC (permalink / raw)
To: qemu-devel, qemu-ppc; +Cc: Nicholas Piggin, Peter Maydell, philmd
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.
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);
--
2.30.9
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH for-9.0] ppc440_pcix: Do not expose a bridge device on PCI bus
2024-04-09 23:55 [PATCH for-9.0] ppc440_pcix: Do not expose a bridge device on PCI bus BALATON Zoltan
@ 2024-04-10 4:38 ` Nicholas Piggin
2024-04-10 11:03 ` BALATON Zoltan
0 siblings, 1 reply; 6+ messages in thread
From: Nicholas Piggin @ 2024-04-10 4:38 UTC (permalink / raw)
To: BALATON Zoltan, qemu-devel, qemu-ppc; +Cc: Peter Maydell, philmd
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);
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH for-9.0] ppc440_pcix: Do not expose a bridge device on PCI bus
2024-04-10 4:38 ` Nicholas Piggin
@ 2024-04-10 11:03 ` BALATON Zoltan
2024-04-16 2:26 ` Nicholas Piggin
0 siblings, 1 reply; 6+ messages in thread
From: BALATON Zoltan @ 2024-04-10 11:03 UTC (permalink / raw)
To: Nicholas Piggin; +Cc: qemu-devel, qemu-ppc, Peter Maydell, philmd
On Wed, 10 Apr 2024, Nicholas Piggin wrote:
> 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.
It's not something that broke in this cycle but since this does not affect
anything else than sam460ex I think it's OK to change this for 9.0. The
changes to 440 tlb in this cycle made sam460ex more useful to run AmigaOS
and this fixes the file system driver on it so it would make 9.0 really
usable. Otherwise people would have to wait longer until August or install
a stable update. Since this has low chance to break anything (tested with
AmogaOS and Linux and MorphOS does not boot due to do_io changes anyway) I
don't think we have to wait with this.
Regards,
BALATON Zoltan
> 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);
>
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH for-9.0] ppc440_pcix: Do not expose a bridge device on PCI bus
2024-04-10 11:03 ` BALATON Zoltan
@ 2024-04-16 2:26 ` Nicholas Piggin
2024-04-16 9:43 ` BALATON Zoltan
0 siblings, 1 reply; 6+ messages in thread
From: Nicholas Piggin @ 2024-04-16 2:26 UTC (permalink / raw)
To: BALATON Zoltan; +Cc: qemu-devel, qemu-ppc, Peter Maydell, philmd
On Wed Apr 10, 2024 at 9:03 PM AEST, BALATON Zoltan wrote:
> On Wed, 10 Apr 2024, Nicholas Piggin wrote:
> > 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.
>
> It's not something that broke in this cycle but since this does not affect
> anything else than sam460ex I think it's OK to change this for 9.0. The
> changes to 440 tlb in this cycle made sam460ex more useful to run AmigaOS
> and this fixes the file system driver on it so it would make 9.0 really
> usable. Otherwise people would have to wait longer until August or install
> a stable update. Since this has low chance to break anything (tested with
> AmogaOS and Linux and MorphOS does not boot due to do_io changes anyway) I
> don't think we have to wait with this.
Hey, travelling / at a conference / on vacation for the next couple of
weeks.
It's just a bit late for hard freeze IMO, since we didn't break it
before the prior release or a bad security / crash bug. Will put it in
9.1.
Thanks,
Nick
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH for-9.0] ppc440_pcix: Do not expose a bridge device on PCI bus
2024-04-16 2:26 ` Nicholas Piggin
@ 2024-04-16 9:43 ` BALATON Zoltan
2024-04-17 2:09 ` Nicholas Piggin
0 siblings, 1 reply; 6+ messages in thread
From: BALATON Zoltan @ 2024-04-16 9:43 UTC (permalink / raw)
To: Nicholas Piggin; +Cc: qemu-devel, qemu-ppc, Peter Maydell, philmd
On Tue, 16 Apr 2024, Nicholas Piggin wrote:
> On Wed Apr 10, 2024 at 9:03 PM AEST, BALATON Zoltan wrote:
>> On Wed, 10 Apr 2024, Nicholas Piggin wrote:
>>> 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.
>>
>> It's not something that broke in this cycle but since this does not affect
>> anything else than sam460ex I think it's OK to change this for 9.0. The
>> changes to 440 tlb in this cycle made sam460ex more useful to run AmigaOS
>> and this fixes the file system driver on it so it would make 9.0 really
>> usable. Otherwise people would have to wait longer until August or install
>> a stable update. Since this has low chance to break anything (tested with
>> AmogaOS and Linux and MorphOS does not boot due to do_io changes anyway) I
>> don't think we have to wait with this.
>
> Hey, travelling / at a conference / on vacation for the next couple of
> weeks.
>
> It's just a bit late for hard freeze IMO, since we didn't break it
> before the prior release or a bad security / crash bug. Will put it in
> 9.1.
Philippe already queued this (and another) patch. This fixes AmigaOS on
sam460ex which became usable with the tlbwe changes in this cycle but it's
not really usable without a file system driver that this patch fixes.
Please allow this in 9.0 so users who want to try it don't have to wait a
few months more. Sorry for sending it this late but it was reported late
and took time to debug it.
Regards,
BALATON Zoltan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH for-9.0] ppc440_pcix: Do not expose a bridge device on PCI bus
2024-04-16 9:43 ` BALATON Zoltan
@ 2024-04-17 2:09 ` Nicholas Piggin
0 siblings, 0 replies; 6+ messages in thread
From: Nicholas Piggin @ 2024-04-17 2:09 UTC (permalink / raw)
To: BALATON Zoltan; +Cc: qemu-devel, qemu-ppc, Peter Maydell, philmd
On Tue Apr 16, 2024 at 7:43 PM AEST, BALATON Zoltan wrote:
> On Tue, 16 Apr 2024, Nicholas Piggin wrote:
> > On Wed Apr 10, 2024 at 9:03 PM AEST, BALATON Zoltan wrote:
> >> On Wed, 10 Apr 2024, Nicholas Piggin wrote:
> >>> 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.
> >>
> >> It's not something that broke in this cycle but since this does not affect
> >> anything else than sam460ex I think it's OK to change this for 9.0. The
> >> changes to 440 tlb in this cycle made sam460ex more useful to run AmigaOS
> >> and this fixes the file system driver on it so it would make 9.0 really
> >> usable. Otherwise people would have to wait longer until August or install
> >> a stable update. Since this has low chance to break anything (tested with
> >> AmogaOS and Linux and MorphOS does not boot due to do_io changes anyway) I
> >> don't think we have to wait with this.
> >
> > Hey, travelling / at a conference / on vacation for the next couple of
> > weeks.
> >
> > It's just a bit late for hard freeze IMO, since we didn't break it
> > before the prior release or a bad security / crash bug. Will put it in
> > 9.1.
>
> Philippe already queued this (and another) patch. This fixes AmigaOS on
> sam460ex which became usable with the tlbwe changes in this cycle but it's
> not really usable without a file system driver that this patch fixes.
> Please allow this in 9.0 so users who want to try it don't have to wait a
> few months more. Sorry for sending it this late but it was reported late
> and took time to debug it.
No worries, I don't have a problem with the patch so if Philippe
thinks it's okay then I'm fine with that.
Thanks,
Nick
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-04-17 2:10 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-09 23:55 [PATCH for-9.0] ppc440_pcix: Do not expose a bridge device on PCI bus BALATON Zoltan
2024-04-10 4:38 ` Nicholas Piggin
2024-04-10 11:03 ` BALATON Zoltan
2024-04-16 2:26 ` Nicholas Piggin
2024-04-16 9:43 ` BALATON Zoltan
2024-04-17 2:09 ` Nicholas Piggin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).