Re: [Qemu-devel] [PATCH] mps2-an511: Fix wiring of UART overflow interrupt lines

2017-09-12 Thread Alistair Francis
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

2017-09-12 Thread Peter Maydell
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

2017-09-12 Thread Philippe Mathieu-Daudé

(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);
  }