On Wed, Aug 30, 2017 at 7:47 AM, Philippe Mathieu-Daudé <f4...@amsat.org> wrote: > On 08/30/2017 09:26 AM, Peter Maydell wrote: >> >> On 30 August 2017 at 03:45, Philippe Mathieu-Daudé <f4...@amsat.org> >> wrote: >>> >>> I think they might be issues if you start QEMU without -serial and then >>> use >>> a firmware polling for an uart, the device won't be mapped and the memory >>> accesses are mostly ignored. >>> >>> I'd rather use: >>> >>> for (i = 0; i < MSF2_NUM_UARTS && i < MAX_SERIAL_PORTS; i++) { >>> static const char *serial[] = {"serial0", "serial1"}; >>> >>> if (!serial_hds[i]) { >>> serial_hds[i] = qemu_chr_new(serial[i], "null"); >>> >>> } >>> >>>> + serial_mm_init(get_system_memory(), uart_addr[i], 2, >>>> + qdev_get_gpio_in(armv7m, uart_irq[i]), >>>> + 115200, serial_hds[i], >>>> DEVICE_NATIVE_ENDIAN); >>>> + } >>>> + } >> >> >> It would be better to fix serial_mm_init() to handle having >> a NULL chardev pointer, because we already have a lot of >> SoC code that just passes it serial_hds[] regardless. > > > clever :) > >> I'd leave this code as it is and we can fix serial_mm_init >> separately (somebody pointed out this issue for a xilinx >> board recently).
Ah, I'll look into this then. Thanks, Alistair > > > Sure.