Re: [Qemu-devel] [PATCH] mps2-an511: Fix wiring of UART overflow interrupt lines
On Tue, Sep 12, 2017 at 9:13 AM, Peter Maydell wrote: > Fix an error that meant we were wiring every UART's overflow > interrupts into the same inputs 0 and 1 of the OR gate, > rather than giving each its own input. > > Cc: qemu-sta...@nongnu.org > Signed-off-by: Peter Maydell Reviewed-by: Alistair Francis Thanks, Alistair > --- > hw/arm/mps2.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c > index abb0ab6..769cff8 100644 > --- a/hw/arm/mps2.c > +++ b/hw/arm/mps2.c > @@ -287,8 +287,8 @@ static void mps2_common_init(MachineState *machine) > cmsdk_apb_uart_create(uartbase[i], >qdev_get_gpio_in(txrx_orgate_dev, 0), >qdev_get_gpio_in(txrx_orgate_dev, 1), > - qdev_get_gpio_in(orgate_dev, 0), > - qdev_get_gpio_in(orgate_dev, 1), > + qdev_get_gpio_in(orgate_dev, i * 2), > + qdev_get_gpio_in(orgate_dev, i * 2 + 1), >NULL, >uartchr, SYSCLK_FRQ); > } > -- > 2.7.4 > >
Re: [Qemu-devel] [PATCH] mps2-an511: Fix wiring of UART overflow interrupt lines
On 12 September 2017 at 17:22, Philippe Mathieu-Daudé wrote: > (CC'ed qemu-arm) > > Hi Peter, > > On 09/12/2017 01:13 PM, Peter Maydell wrote: >> >> Fix an error that meant we were wiring every UART's overflow >> interrupts into the same inputs 0 and 1 of the OR gate, >> rather than giving each its own input. > > > oops tricky to catch > >> >> Cc: qemu-sta...@nongnu.org >> Signed-off-by: Peter Maydell >> --- >> hw/arm/mps2.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c >> index abb0ab6..769cff8 100644 >> --- a/hw/arm/mps2.c >> +++ b/hw/arm/mps2.c > > > /* The overflow IRQs for all UARTs are ORed together. > * Tx and Rx IRQs for each UART are ORed together. > */ > > can you update this comment? The comment is correct. "txrx_orgate_dev" is a 2-input OR gate, which we create one of per UART. It ORs together the TX IRQ and the RX IRQ. "orgate_dev" is a 10-input OR gate, which ORs together the TX overflow IRQ and the RX overflow IRQ from each UART. The bug here is just that we were using the wrong input pins on orgate_dev. thanks -- PMM
Re: [Qemu-devel] [PATCH] mps2-an511: Fix wiring of UART overflow interrupt lines
(CC'ed qemu-arm) Hi Peter, On 09/12/2017 01:13 PM, Peter Maydell wrote: Fix an error that meant we were wiring every UART's overflow interrupts into the same inputs 0 and 1 of the OR gate, rather than giving each its own input. oops tricky to catch Cc: qemu-sta...@nongnu.org Signed-off-by: Peter Maydell --- hw/arm/mps2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index abb0ab6..769cff8 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c /* The overflow IRQs for all UARTs are ORed together. * Tx and Rx IRQs for each UART are ORed together. */ can you update this comment? Reviewed-by: Philippe Mathieu-Daudé @@ -287,8 +287,8 @@ static void mps2_common_init(MachineState *machine) cmsdk_apb_uart_create(uartbase[i], qdev_get_gpio_in(txrx_orgate_dev, 0), qdev_get_gpio_in(txrx_orgate_dev, 1), - qdev_get_gpio_in(orgate_dev, 0), - qdev_get_gpio_in(orgate_dev, 1), + qdev_get_gpio_in(orgate_dev, i * 2), + qdev_get_gpio_in(orgate_dev, i * 2 + 1), NULL, uartchr, SYSCLK_FRQ); }