qemu-trivial
[Top][All Lists]
Advanced

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

Re: [Qemu-trivial] [PATCH] grlib_apbuart: always enable tx and rx


From: KONRAD Frederic
Subject: Re: [Qemu-trivial] [PATCH] grlib_apbuart: always enable tx and rx
Date: Thu, 1 Mar 2018 15:32:48 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

Hi Phil,

I see your point. But I tend to prefer modifying the uart than
having a bunch of hand assembled code in the machine.

Note that the result is the same.

Thanks,
Fred

On 03/01/2018 11:49 AM, Philippe Mathieu-Daudé wrote:
Hi Frederic,

On 03/01/2018 07:02 AM, KONRAD Frederic wrote:
We often use a bootloader for this board. So lets set the uart in a state
which it can emit characters as if we were using a bootloader.

Signed-off-by: KONRAD Frederic <address@hidden>
---
  hw/char/grlib_apbuart.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/char/grlib_apbuart.c b/hw/char/grlib_apbuart.c
index bac11be..a8020ea 100644
--- a/hw/char/grlib_apbuart.c
+++ b/hw/char/grlib_apbuart.c
@@ -265,8 +265,8 @@ static void grlib_apbuart_reset(DeviceState *d)
/* Transmitter FIFO and shift registers are always empty in QEMU */
      uart->status =  UART_TRANSMIT_FIFO_EMPTY | UART_TRANSMIT_SHIFT_EMPTY;
-    /* Everything is off */
-    uart->control = 0;
+    /* Enable Tx and Rx as the bootloader would do */
+    uart->control = UART_RECEIVE_ENABLE | UART_TRANSMIT_ENABLE;

I don't think this is the correct approach, as we want to reflect the
real hardware behavior here.

I think the correct QEMU-way is add a tiny asm bootloader in ram in
leon3_generic_hw_init(), which enables the UART.
See write_bootloader() in hw/mips/mips_fulong2e.c for example.

Regards,

Phil.

      /* Flush receive FIFO */
      uart->len = 0;
      uart->current = 0;




reply via email to

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