* [PATCH 0/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() @ 2020-10-12 7:19 Philippe Mathieu-Daudé 2020-10-12 7:19 ` [PATCH 1/4] hw/pci-host/prep: Update coding style to make checkpatch.pl happy Philippe Mathieu-Daudé ` (3 more replies) 0 siblings, 4 replies; 14+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-12 7:19 UTC (permalink / raw) To: qemu-devel Cc: Hervé Poussineau, Thomas Huth, qemu-ppc, Philippe Mathieu-Daudé Fix a bug in the Raven PCI host, plus few cleanups while here. Philippe Mathieu-Daudé (4): hw/pci-host/prep: Update coding style to make checkpatch.pl happy hw/pci-host/prep: Remove legacy PReP machine temporary workaround hw/pci-host/prep: Fix PCI swizzling in map_irq() docs/system/target-ppc.rst: Update PReP historical information docs/system/target-ppc.rst | 8 ++++---- hw/pci-host/prep.c | 32 ++++++++++++-------------------- 2 files changed, 16 insertions(+), 24 deletions(-) -- 2.26.2 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/4] hw/pci-host/prep: Update coding style to make checkpatch.pl happy 2020-10-12 7:19 [PATCH 0/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() Philippe Mathieu-Daudé @ 2020-10-12 7:19 ` Philippe Mathieu-Daudé 2020-10-12 9:37 ` Mark Cave-Ayland 2020-11-02 1:51 ` David Gibson 2020-10-12 7:19 ` [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround Philippe Mathieu-Daudé ` (2 subsequent siblings) 3 siblings, 2 replies; 14+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-12 7:19 UTC (permalink / raw) To: qemu-devel Cc: Hervé Poussineau, Thomas Huth, qemu-ppc, Philippe Mathieu-Daudé To make the next commit easier to review, clean this code first. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- hw/pci-host/prep.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c index d0323fefb10..80dfb67da43 100644 --- a/hw/pci-host/prep.c +++ b/hw/pci-host/prep.c @@ -234,8 +234,10 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) sysbus_init_irq(dev, &s->pci_irqs[i]); } } else { - /* According to PReP specification section 6.1.6 "System Interrupt - * Assignments", all PCI interrupts are routed via IRQ 15 */ + /* + * According to PReP specification section 6.1.6 "System Interrupt + * Assignments", all PCI interrupts are routed via IRQ 15 + */ s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, &error_fatal); -- 2.26.2 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/4] hw/pci-host/prep: Update coding style to make checkpatch.pl happy 2020-10-12 7:19 ` [PATCH 1/4] hw/pci-host/prep: Update coding style to make checkpatch.pl happy Philippe Mathieu-Daudé @ 2020-10-12 9:37 ` Mark Cave-Ayland 2020-11-02 1:51 ` David Gibson 1 sibling, 0 replies; 14+ messages in thread From: Mark Cave-Ayland @ 2020-10-12 9:37 UTC (permalink / raw) To: Philippe Mathieu-Daudé, qemu-devel Cc: qemu-ppc, Thomas Huth, Hervé Poussineau On 12/10/2020 08:19, Philippe Mathieu-Daudé wrote: > To make the next commit easier to review, clean this code first. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > hw/pci-host/prep.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c > index d0323fefb10..80dfb67da43 100644 > --- a/hw/pci-host/prep.c > +++ b/hw/pci-host/prep.c > @@ -234,8 +234,10 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) > sysbus_init_irq(dev, &s->pci_irqs[i]); > } > } else { > - /* According to PReP specification section 6.1.6 "System Interrupt > - * Assignments", all PCI interrupts are routed via IRQ 15 */ > + /* > + * According to PReP specification section 6.1.6 "System Interrupt > + * Assignments", all PCI interrupts are routed via IRQ 15 > + */ > s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); > object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, > &error_fatal); Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> ATB, Mark. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/4] hw/pci-host/prep: Update coding style to make checkpatch.pl happy 2020-10-12 7:19 ` [PATCH 1/4] hw/pci-host/prep: Update coding style to make checkpatch.pl happy Philippe Mathieu-Daudé 2020-10-12 9:37 ` Mark Cave-Ayland @ 2020-11-02 1:51 ` David Gibson 1 sibling, 0 replies; 14+ messages in thread From: David Gibson @ 2020-11-02 1:51 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: qemu-ppc, Thomas Huth, Hervé Poussineau, qemu-devel [-- Attachment #1: Type: text/plain, Size: 1409 bytes --] On Mon, Oct 12, 2020 at 09:19:03AM +0200, Philippe Mathieu-Daudé wrote: > To make the next commit easier to review, clean this code first. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> > --- > hw/pci-host/prep.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c > index d0323fefb10..80dfb67da43 100644 > --- a/hw/pci-host/prep.c > +++ b/hw/pci-host/prep.c > @@ -234,8 +234,10 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) > sysbus_init_irq(dev, &s->pci_irqs[i]); > } > } else { > - /* According to PReP specification section 6.1.6 "System Interrupt > - * Assignments", all PCI interrupts are routed via IRQ 15 */ > + /* > + * According to PReP specification section 6.1.6 "System Interrupt > + * Assignments", all PCI interrupts are routed via IRQ 15 > + */ > s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); > object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, > &error_fatal); -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround 2020-10-12 7:19 [PATCH 0/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() Philippe Mathieu-Daudé 2020-10-12 7:19 ` [PATCH 1/4] hw/pci-host/prep: Update coding style to make checkpatch.pl happy Philippe Mathieu-Daudé @ 2020-10-12 7:19 ` Philippe Mathieu-Daudé 2020-10-12 7:28 ` Thomas Huth ` (2 more replies) 2020-10-12 7:19 ` [PATCH 3/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() Philippe Mathieu-Daudé 2020-10-12 7:19 ` [PATCH 4/4] docs/system/target-ppc.rst: Update PReP historical information Philippe Mathieu-Daudé 3 siblings, 3 replies; 14+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-12 7:19 UTC (permalink / raw) To: qemu-devel Cc: Hervé Poussineau, Thomas Huth, qemu-ppc, Philippe Mathieu-Daudé The legacy PReP machine has been removed in commit b2ce76a0730 ("hw/ppc/prep: Remove the deprecated "prep" machine and the OpenHackware BIOS"). This temporary workaround is no more required, remove it. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- hw/pci-host/prep.c | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c index 80dfb67da43..064593d1e52 100644 --- a/hw/pci-host/prep.c +++ b/hw/pci-host/prep.c @@ -75,7 +75,6 @@ struct PRePPCIState { RavenPCIState pci_dev; int contiguous_map; - bool is_legacy_prep; }; #define BIOS_SIZE (1 * MiB) @@ -229,24 +228,18 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) MemoryRegion *address_space_mem = get_system_memory(); int i; - if (s->is_legacy_prep) { - for (i = 0; i < PCI_NUM_PINS; i++) { - sysbus_init_irq(dev, &s->pci_irqs[i]); - } - } else { - /* - * According to PReP specification section 6.1.6 "System Interrupt - * Assignments", all PCI interrupts are routed via IRQ 15 - */ - s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); - object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, - &error_fatal); - qdev_realize(DEVICE(s->or_irq), NULL, &error_fatal); - sysbus_init_irq(dev, &s->or_irq->out_irq); + /* + * According to PReP specification section 6.1.6 "System Interrupt + * Assignments", all PCI interrupts are routed via IRQ 15. + */ + s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); + object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, + &error_fatal); + qdev_realize(DEVICE(s->or_irq), NULL, &error_fatal); + sysbus_init_irq(dev, &s->or_irq->out_irq); - for (i = 0; i < PCI_NUM_PINS; i++) { - s->pci_irqs[i] = qdev_get_gpio_in(DEVICE(s->or_irq), i); - } + for (i = 0; i < PCI_NUM_PINS; i++) { + s->pci_irqs[i] = qdev_get_gpio_in(DEVICE(s->or_irq), i); } qdev_init_gpio_in(d, raven_change_gpio, 1); @@ -403,9 +396,6 @@ static Property raven_pcihost_properties[] = { DEFINE_PROP_UINT32("elf-machine", PREPPCIState, pci_dev.elf_machine, EM_NONE), DEFINE_PROP_STRING("bios-name", PREPPCIState, pci_dev.bios_name), - /* Temporary workaround until legacy prep machine is removed */ - DEFINE_PROP_BOOL("is-legacy-prep", PREPPCIState, is_legacy_prep, - false), DEFINE_PROP_END_OF_LIST() }; -- 2.26.2 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround 2020-10-12 7:19 ` [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround Philippe Mathieu-Daudé @ 2020-10-12 7:28 ` Thomas Huth 2020-10-12 8:19 ` Philippe Mathieu-Daudé 2020-10-12 9:29 ` Mark Cave-Ayland 2020-11-02 1:52 ` David Gibson 2 siblings, 1 reply; 14+ messages in thread From: Thomas Huth @ 2020-10-12 7:28 UTC (permalink / raw) To: Philippe Mathieu-Daudé, qemu-devel; +Cc: Hervé Poussineau, qemu-ppc On 12/10/2020 09.19, Philippe Mathieu-Daudé wrote: > The legacy PReP machine has been removed in commit b2ce76a0730 > ("hw/ppc/prep: Remove the deprecated "prep" machine and the > OpenHackware BIOS"). This temporary workaround is no more > required, remove it. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > hw/pci-host/prep.c | 32 +++++++++++--------------------- > 1 file changed, 11 insertions(+), 21 deletions(-) > > diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c > index 80dfb67da43..064593d1e52 100644 > --- a/hw/pci-host/prep.c > +++ b/hw/pci-host/prep.c > @@ -75,7 +75,6 @@ struct PRePPCIState { > RavenPCIState pci_dev; > > int contiguous_map; > - bool is_legacy_prep; > }; > > #define BIOS_SIZE (1 * MiB) > @@ -229,24 +228,18 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) > MemoryRegion *address_space_mem = get_system_memory(); > int i; > > - if (s->is_legacy_prep) { > - for (i = 0; i < PCI_NUM_PINS; i++) { > - sysbus_init_irq(dev, &s->pci_irqs[i]); > - } > - } else { > - /* > - * According to PReP specification section 6.1.6 "System Interrupt > - * Assignments", all PCI interrupts are routed via IRQ 15 > - */ > - s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); > - object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, > - &error_fatal); > - qdev_realize(DEVICE(s->or_irq), NULL, &error_fatal); > - sysbus_init_irq(dev, &s->or_irq->out_irq); > + /* > + * According to PReP specification section 6.1.6 "System Interrupt > + * Assignments", all PCI interrupts are routed via IRQ 15. > + */ Since you're changing the indentation of these lines anyway, I think you could also simply squash patch 1 into this one here (just a matter of taste, though). > + s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); > + object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, > + &error_fatal); > + qdev_realize(DEVICE(s->or_irq), NULL, &error_fatal); > + sysbus_init_irq(dev, &s->or_irq->out_irq); > > - for (i = 0; i < PCI_NUM_PINS; i++) { > - s->pci_irqs[i] = qdev_get_gpio_in(DEVICE(s->or_irq), i); > - } > + for (i = 0; i < PCI_NUM_PINS; i++) { > + s->pci_irqs[i] = qdev_get_gpio_in(DEVICE(s->or_irq), i); > } > > qdev_init_gpio_in(d, raven_change_gpio, 1); > @@ -403,9 +396,6 @@ static Property raven_pcihost_properties[] = { > DEFINE_PROP_UINT32("elf-machine", PREPPCIState, pci_dev.elf_machine, > EM_NONE), > DEFINE_PROP_STRING("bios-name", PREPPCIState, pci_dev.bios_name), > - /* Temporary workaround until legacy prep machine is removed */ > - DEFINE_PROP_BOOL("is-legacy-prep", PREPPCIState, is_legacy_prep, > - false), > DEFINE_PROP_END_OF_LIST() > }; > > Reviewed-by: Thomas Huth <thuth@redhat.com> ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround 2020-10-12 7:28 ` Thomas Huth @ 2020-10-12 8:19 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 14+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-12 8:19 UTC (permalink / raw) To: Thomas Huth, qemu-devel; +Cc: qemu-ppc, Hervé Poussineau On 10/12/20 9:28 AM, Thomas Huth wrote: > On 12/10/2020 09.19, Philippe Mathieu-Daudé wrote: >> The legacy PReP machine has been removed in commit b2ce76a0730 >> ("hw/ppc/prep: Remove the deprecated "prep" machine and the >> OpenHackware BIOS"). This temporary workaround is no more >> required, remove it. >> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> --- >> hw/pci-host/prep.c | 32 +++++++++++--------------------- >> 1 file changed, 11 insertions(+), 21 deletions(-) >> >> diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c >> index 80dfb67da43..064593d1e52 100644 >> --- a/hw/pci-host/prep.c >> +++ b/hw/pci-host/prep.c >> @@ -75,7 +75,6 @@ struct PRePPCIState { >> RavenPCIState pci_dev; >> >> int contiguous_map; >> - bool is_legacy_prep; >> }; >> >> #define BIOS_SIZE (1 * MiB) >> @@ -229,24 +228,18 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) >> MemoryRegion *address_space_mem = get_system_memory(); >> int i; >> >> - if (s->is_legacy_prep) { >> - for (i = 0; i < PCI_NUM_PINS; i++) { >> - sysbus_init_irq(dev, &s->pci_irqs[i]); >> - } >> - } else { >> - /* >> - * According to PReP specification section 6.1.6 "System Interrupt >> - * Assignments", all PCI interrupts are routed via IRQ 15 >> - */ >> - s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); >> - object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, >> - &error_fatal); >> - qdev_realize(DEVICE(s->or_irq), NULL, &error_fatal); >> - sysbus_init_irq(dev, &s->or_irq->out_irq); >> + /* >> + * According to PReP specification section 6.1.6 "System Interrupt >> + * Assignments", all PCI interrupts are routed via IRQ 15. >> + */ > > Since you're changing the indentation of these lines anyway, I think you > could also simply squash patch 1 into this one here (just a matter of taste, > though). Then the diff is not trivial to review :/ > >> + s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); >> + object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, >> + &error_fatal); >> + qdev_realize(DEVICE(s->or_irq), NULL, &error_fatal); >> + sysbus_init_irq(dev, &s->or_irq->out_irq); >> >> - for (i = 0; i < PCI_NUM_PINS; i++) { >> - s->pci_irqs[i] = qdev_get_gpio_in(DEVICE(s->or_irq), i); >> - } >> + for (i = 0; i < PCI_NUM_PINS; i++) { >> + s->pci_irqs[i] = qdev_get_gpio_in(DEVICE(s->or_irq), i); >> } >> >> qdev_init_gpio_in(d, raven_change_gpio, 1); >> @@ -403,9 +396,6 @@ static Property raven_pcihost_properties[] = { >> DEFINE_PROP_UINT32("elf-machine", PREPPCIState, pci_dev.elf_machine, >> EM_NONE), >> DEFINE_PROP_STRING("bios-name", PREPPCIState, pci_dev.bios_name), >> - /* Temporary workaround until legacy prep machine is removed */ >> - DEFINE_PROP_BOOL("is-legacy-prep", PREPPCIState, is_legacy_prep, >> - false), >> DEFINE_PROP_END_OF_LIST() >> }; >> >> > > Reviewed-by: Thomas Huth <thuth@redhat.com> Thanks! ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround 2020-10-12 7:19 ` [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround Philippe Mathieu-Daudé 2020-10-12 7:28 ` Thomas Huth @ 2020-10-12 9:29 ` Mark Cave-Ayland 2020-11-02 1:52 ` David Gibson 2 siblings, 0 replies; 14+ messages in thread From: Mark Cave-Ayland @ 2020-10-12 9:29 UTC (permalink / raw) To: Philippe Mathieu-Daudé, qemu-devel Cc: qemu-ppc, Thomas Huth, Hervé Poussineau On 12/10/2020 08:19, Philippe Mathieu-Daudé wrote: > The legacy PReP machine has been removed in commit b2ce76a0730 > ("hw/ppc/prep: Remove the deprecated "prep" machine and the > OpenHackware BIOS"). This temporary workaround is no more > required, remove it. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > hw/pci-host/prep.c | 32 +++++++++++--------------------- > 1 file changed, 11 insertions(+), 21 deletions(-) > > diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c > index 80dfb67da43..064593d1e52 100644 > --- a/hw/pci-host/prep.c > +++ b/hw/pci-host/prep.c > @@ -75,7 +75,6 @@ struct PRePPCIState { > RavenPCIState pci_dev; > > int contiguous_map; > - bool is_legacy_prep; > }; > > #define BIOS_SIZE (1 * MiB) > @@ -229,24 +228,18 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) > MemoryRegion *address_space_mem = get_system_memory(); > int i; > > - if (s->is_legacy_prep) { > - for (i = 0; i < PCI_NUM_PINS; i++) { > - sysbus_init_irq(dev, &s->pci_irqs[i]); > - } > - } else { > - /* > - * According to PReP specification section 6.1.6 "System Interrupt > - * Assignments", all PCI interrupts are routed via IRQ 15 > - */ > - s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); > - object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, > - &error_fatal); > - qdev_realize(DEVICE(s->or_irq), NULL, &error_fatal); > - sysbus_init_irq(dev, &s->or_irq->out_irq); > + /* > + * According to PReP specification section 6.1.6 "System Interrupt > + * Assignments", all PCI interrupts are routed via IRQ 15. > + */ > + s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); > + object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, > + &error_fatal); > + qdev_realize(DEVICE(s->or_irq), NULL, &error_fatal); > + sysbus_init_irq(dev, &s->or_irq->out_irq); > > - for (i = 0; i < PCI_NUM_PINS; i++) { > - s->pci_irqs[i] = qdev_get_gpio_in(DEVICE(s->or_irq), i); > - } > + for (i = 0; i < PCI_NUM_PINS; i++) { > + s->pci_irqs[i] = qdev_get_gpio_in(DEVICE(s->or_irq), i); > } > > qdev_init_gpio_in(d, raven_change_gpio, 1); > @@ -403,9 +396,6 @@ static Property raven_pcihost_properties[] = { > DEFINE_PROP_UINT32("elf-machine", PREPPCIState, pci_dev.elf_machine, > EM_NONE), > DEFINE_PROP_STRING("bios-name", PREPPCIState, pci_dev.bios_name), > - /* Temporary workaround until legacy prep machine is removed */ > - DEFINE_PROP_BOOL("is-legacy-prep", PREPPCIState, is_legacy_prep, > - false), > DEFINE_PROP_END_OF_LIST() > }; Yes indeed, this workaround is certainly no longer needed. Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> ATB, Mark. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround 2020-10-12 7:19 ` [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround Philippe Mathieu-Daudé 2020-10-12 7:28 ` Thomas Huth 2020-10-12 9:29 ` Mark Cave-Ayland @ 2020-11-02 1:52 ` David Gibson 2 siblings, 0 replies; 14+ messages in thread From: David Gibson @ 2020-11-02 1:52 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: qemu-ppc, Thomas Huth, Hervé Poussineau, qemu-devel [-- Attachment #1: Type: text/plain, Size: 3157 bytes --] On Mon, Oct 12, 2020 at 09:19:04AM +0200, Philippe Mathieu-Daudé wrote: > The legacy PReP machine has been removed in commit b2ce76a0730 > ("hw/ppc/prep: Remove the deprecated "prep" machine and the > OpenHackware BIOS"). This temporary workaround is no more > required, remove it. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> > --- > hw/pci-host/prep.c | 32 +++++++++++--------------------- > 1 file changed, 11 insertions(+), 21 deletions(-) > > diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c > index 80dfb67da43..064593d1e52 100644 > --- a/hw/pci-host/prep.c > +++ b/hw/pci-host/prep.c > @@ -75,7 +75,6 @@ struct PRePPCIState { > RavenPCIState pci_dev; > > int contiguous_map; > - bool is_legacy_prep; > }; > > #define BIOS_SIZE (1 * MiB) > @@ -229,24 +228,18 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) > MemoryRegion *address_space_mem = get_system_memory(); > int i; > > - if (s->is_legacy_prep) { > - for (i = 0; i < PCI_NUM_PINS; i++) { > - sysbus_init_irq(dev, &s->pci_irqs[i]); > - } > - } else { > - /* > - * According to PReP specification section 6.1.6 "System Interrupt > - * Assignments", all PCI interrupts are routed via IRQ 15 > - */ > - s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); > - object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, > - &error_fatal); > - qdev_realize(DEVICE(s->or_irq), NULL, &error_fatal); > - sysbus_init_irq(dev, &s->or_irq->out_irq); > + /* > + * According to PReP specification section 6.1.6 "System Interrupt > + * Assignments", all PCI interrupts are routed via IRQ 15. > + */ > + s->or_irq = OR_IRQ(object_new(TYPE_OR_IRQ)); > + object_property_set_int(OBJECT(s->or_irq), "num-lines", PCI_NUM_PINS, > + &error_fatal); > + qdev_realize(DEVICE(s->or_irq), NULL, &error_fatal); > + sysbus_init_irq(dev, &s->or_irq->out_irq); > > - for (i = 0; i < PCI_NUM_PINS; i++) { > - s->pci_irqs[i] = qdev_get_gpio_in(DEVICE(s->or_irq), i); > - } > + for (i = 0; i < PCI_NUM_PINS; i++) { > + s->pci_irqs[i] = qdev_get_gpio_in(DEVICE(s->or_irq), i); > } > > qdev_init_gpio_in(d, raven_change_gpio, 1); > @@ -403,9 +396,6 @@ static Property raven_pcihost_properties[] = { > DEFINE_PROP_UINT32("elf-machine", PREPPCIState, pci_dev.elf_machine, > EM_NONE), > DEFINE_PROP_STRING("bios-name", PREPPCIState, pci_dev.bios_name), > - /* Temporary workaround until legacy prep machine is removed */ > - DEFINE_PROP_BOOL("is-legacy-prep", PREPPCIState, is_legacy_prep, > - false), > DEFINE_PROP_END_OF_LIST() > }; > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() 2020-10-12 7:19 [PATCH 0/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() Philippe Mathieu-Daudé 2020-10-12 7:19 ` [PATCH 1/4] hw/pci-host/prep: Update coding style to make checkpatch.pl happy Philippe Mathieu-Daudé 2020-10-12 7:19 ` [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround Philippe Mathieu-Daudé @ 2020-10-12 7:19 ` Philippe Mathieu-Daudé 2020-10-12 9:37 ` Mark Cave-Ayland 2020-10-12 7:19 ` [PATCH 4/4] docs/system/target-ppc.rst: Update PReP historical information Philippe Mathieu-Daudé 3 siblings, 1 reply; 14+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-12 7:19 UTC (permalink / raw) To: qemu-devel Cc: Thomas Huth, Jocelyn Mayer, Philippe Mathieu-Daudé, Hervé Poussineau, Julian Seward, qemu-ppc In commit a01d8cadadf we changed the number of IRQs to 4 but forgot to update the map_irq() function. Do it now. Fixes: a01d8cadadf ("Fix memory corruption ... in PreP emulation") Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- Cc: Jocelyn Mayer <l_indien@magic.fr> Cc: Julian Seward <julian@valgrind.org> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- hw/pci-host/prep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c index 064593d1e52..2224135fedb 100644 --- a/hw/pci-host/prep.c +++ b/hw/pci-host/prep.c @@ -195,7 +195,7 @@ static const MemoryRegionOps raven_io_ops = { static int raven_map_irq(PCIDevice *pci_dev, int irq_num) { - return (irq_num + (pci_dev->devfn >> 3)) & 1; + return (irq_num + (pci_dev->devfn >> 3)) & 3; } static void raven_set_irq(void *opaque, int irq_num, int level) -- 2.26.2 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 3/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() 2020-10-12 7:19 ` [PATCH 3/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() Philippe Mathieu-Daudé @ 2020-10-12 9:37 ` Mark Cave-Ayland 2020-10-12 11:01 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 14+ messages in thread From: Mark Cave-Ayland @ 2020-10-12 9:37 UTC (permalink / raw) To: Philippe Mathieu-Daudé, qemu-devel Cc: qemu-ppc, Thomas Huth, Hervé Poussineau, Jocelyn Mayer, Julian Seward On 12/10/2020 08:19, Philippe Mathieu-Daudé wrote: > In commit a01d8cadadf we changed the number of IRQs to 4 but > forgot to update the map_irq() function. Do it now. > > Fixes: a01d8cadadf ("Fix memory corruption ... in PreP emulation") > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > Cc: Jocelyn Mayer <l_indien@magic.fr> > Cc: Julian Seward <julian@valgrind.org> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > hw/pci-host/prep.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c > index 064593d1e52..2224135fedb 100644 > --- a/hw/pci-host/prep.c > +++ b/hw/pci-host/prep.c > @@ -195,7 +195,7 @@ static const MemoryRegionOps raven_io_ops = { > > static int raven_map_irq(PCIDevice *pci_dev, int irq_num) > { > - return (irq_num + (pci_dev->devfn >> 3)) & 1; > + return (irq_num + (pci_dev->devfn >> 3)) & 3; > } > > static void raven_set_irq(void *opaque, int irq_num, int level) It feels like this should also have a corresponding change in OpenBIOS for consistency, even though technically because of the OR on IRQ 15 it doesn't really matter. The relevant part in OpenBIOS can be found here: https://git.qemu.org/?p=openbios.git;a=blob;f=drivers/pci.c;h=34ae69a907b6312a3a7ab218afe8ba9efded1df7;hb=7f28286f5cb1ca682e3ba0a8706d8884f12bc49e#l2001 and in particular this section: /* Use the same "physical" routing as QEMU's raven_map_irq() although ultimately all 4 PCI interrupts are ORd to IRQ 15 as indicated by the PReP specification */ props[(*ncells)++] = arch->irqs[((intno - 1) + (addr >> 11)) & 1]; ATB, Mark. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() 2020-10-12 9:37 ` Mark Cave-Ayland @ 2020-10-12 11:01 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 14+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-12 11:01 UTC (permalink / raw) To: Mark Cave-Ayland, qemu-devel Cc: Hervé Poussineau, Thomas Huth, qemu-ppc, Jocelyn Mayer, Julian Seward On 10/12/20 11:37 AM, Mark Cave-Ayland wrote: > On 12/10/2020 08:19, Philippe Mathieu-Daudé wrote: > >> In commit a01d8cadadf we changed the number of IRQs to 4 but >> forgot to update the map_irq() function. Do it now. >> >> Fixes: a01d8cadadf ("Fix memory corruption ... in PreP emulation") >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> --- >> Cc: Jocelyn Mayer <l_indien@magic.fr> >> Cc: Julian Seward <julian@valgrind.org> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> --- >> hw/pci-host/prep.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c >> index 064593d1e52..2224135fedb 100644 >> --- a/hw/pci-host/prep.c >> +++ b/hw/pci-host/prep.c >> @@ -195,7 +195,7 @@ static const MemoryRegionOps raven_io_ops = { >> >> static int raven_map_irq(PCIDevice *pci_dev, int irq_num) >> { >> - return (irq_num + (pci_dev->devfn >> 3)) & 1; >> + return (irq_num + (pci_dev->devfn >> 3)) & 3; >> } >> >> static void raven_set_irq(void *opaque, int irq_num, int level) > > It feels like this should also have a corresponding change in OpenBIOS for > consistency, even though technically because of the OR on IRQ 15 it doesn't really > matter. The relevant part in OpenBIOS can be found here: > https://git.qemu.org/?p=openbios.git;a=blob;f=drivers/pci.c;h=34ae69a907b6312a3a7ab218afe8ba9efded1df7;hb=7f28286f5cb1ca682e3ba0a8706d8884f12bc49e#l2001 > and in particular this section: > > /* Use the same "physical" routing as QEMU's raven_map_irq() although > ultimately all 4 PCI interrupts are ORd to IRQ 15 as indicated > by the PReP specification */ > props[(*ncells)++] = arch->irqs[((intno - 1) + (addr >> 11)) & 1]; Done: https://github.com/openbios/openbios/pull/7 > > > ATB, > > Mark. > ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 4/4] docs/system/target-ppc.rst: Update PReP historical information 2020-10-12 7:19 [PATCH 0/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() Philippe Mathieu-Daudé ` (2 preceding siblings ...) 2020-10-12 7:19 ` [PATCH 3/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() Philippe Mathieu-Daudé @ 2020-10-12 7:19 ` Philippe Mathieu-Daudé 2020-10-12 7:32 ` Thomas Huth 3 siblings, 1 reply; 14+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-12 7:19 UTC (permalink / raw) To: qemu-devel Cc: Jocelyn Mayer, Hervé Poussineau, Thomas Huth, qemu-ppc, Philippe Mathieu-Daudé Link Jocelyn Mayer's web page from the Wayback Machine, and correct the PReP acronym. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- Cc: Jocelyn Mayer <l_indien@magic.fr> --- docs/system/target-ppc.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/system/target-ppc.rst b/docs/system/target-ppc.rst index a2f04c533c2..1f57966771d 100644 --- a/docs/system/target-ppc.rst +++ b/docs/system/target-ppc.rst @@ -3,7 +3,7 @@ PowerPC System emulator ----------------------- -Use the executable ``qemu-system-ppc`` to simulate a complete 40P (PREP) +Use the executable ``qemu-system-ppc`` to simulate a complete 40P (PReP) or PowerMac PowerPC system. QEMU emulates the following PowerMac peripherals: @@ -20,7 +20,7 @@ QEMU emulates the following PowerMac peripherals: - VIA-CUDA with ADB keyboard and mouse. -QEMU emulates the following 40P (PREP) peripherals: +QEMU emulates the following 40P (PReP) peripherals: - PCI Bridge @@ -43,5 +43,5 @@ the g3beige and mac99 PowerMac and the 40p machines. OpenBIOS is a free (GPL v2) portable firmware implementation. The goal is to implement a 100% IEEE 1275-1994 (referred to as Open Firmware) compliant firmware. -More information is available at -http://perso.magic.fr/l_indien/qemu-ppc/. +Archived historical information is available at +https://web.archive.org/web/20051212135300/http://perso.magic.fr/l_indien/qemu-ppc/. -- 2.26.2 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 4/4] docs/system/target-ppc.rst: Update PReP historical information 2020-10-12 7:19 ` [PATCH 4/4] docs/system/target-ppc.rst: Update PReP historical information Philippe Mathieu-Daudé @ 2020-10-12 7:32 ` Thomas Huth 0 siblings, 0 replies; 14+ messages in thread From: Thomas Huth @ 2020-10-12 7:32 UTC (permalink / raw) To: Philippe Mathieu-Daudé, qemu-devel Cc: Hervé Poussineau, Jocelyn Mayer, qemu-ppc On 12/10/2020 09.19, Philippe Mathieu-Daudé wrote: > Link Jocelyn Mayer's web page from the Wayback Machine, > and correct the PReP acronym. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > Cc: Jocelyn Mayer <l_indien@magic.fr> > --- > docs/system/target-ppc.rst | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/docs/system/target-ppc.rst b/docs/system/target-ppc.rst > index a2f04c533c2..1f57966771d 100644 > --- a/docs/system/target-ppc.rst > +++ b/docs/system/target-ppc.rst > @@ -3,7 +3,7 @@ > PowerPC System emulator > ----------------------- > > -Use the executable ``qemu-system-ppc`` to simulate a complete 40P (PREP) > +Use the executable ``qemu-system-ppc`` to simulate a complete 40P (PReP) > or PowerMac PowerPC system. > > QEMU emulates the following PowerMac peripherals: > @@ -20,7 +20,7 @@ QEMU emulates the following PowerMac peripherals: > > - VIA-CUDA with ADB keyboard and mouse. > > -QEMU emulates the following 40P (PREP) peripherals: > +QEMU emulates the following 40P (PReP) peripherals: > > - PCI Bridge > > @@ -43,5 +43,5 @@ the g3beige and mac99 PowerMac and the 40p machines. OpenBIOS is a free > (GPL v2) portable firmware implementation. The goal is to implement a > 100% IEEE 1275-1994 (referred to as Open Firmware) compliant firmware. > > -More information is available at > -http://perso.magic.fr/l_indien/qemu-ppc/. > +Archived historical information is available at > +https://web.archive.org/web/20051212135300/http://perso.magic.fr/l_indien/qemu-ppc/. There seems to be a later version available in the archive, too: https://web.archive.org/web/20080212093125/http://perso.magic.fr/l_indien/qemu-ppc/ ... but I think the contents did not change anymore. So: Reviewed-by: Thomas Huth <thuth@redhat.com> ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2020-11-02 2:06 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-10-12 7:19 [PATCH 0/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() Philippe Mathieu-Daudé 2020-10-12 7:19 ` [PATCH 1/4] hw/pci-host/prep: Update coding style to make checkpatch.pl happy Philippe Mathieu-Daudé 2020-10-12 9:37 ` Mark Cave-Ayland 2020-11-02 1:51 ` David Gibson 2020-10-12 7:19 ` [PATCH 2/4] hw/pci-host/prep: Remove legacy PReP machine temporary workaround Philippe Mathieu-Daudé 2020-10-12 7:28 ` Thomas Huth 2020-10-12 8:19 ` Philippe Mathieu-Daudé 2020-10-12 9:29 ` Mark Cave-Ayland 2020-11-02 1:52 ` David Gibson 2020-10-12 7:19 ` [PATCH 3/4] hw/pci-host/prep: Fix PCI swizzling in map_irq() Philippe Mathieu-Daudé 2020-10-12 9:37 ` Mark Cave-Ayland 2020-10-12 11:01 ` Philippe Mathieu-Daudé 2020-10-12 7:19 ` [PATCH 4/4] docs/system/target-ppc.rst: Update PReP historical information Philippe Mathieu-Daudé 2020-10-12 7:32 ` Thomas Huth
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.