mbox series

[rc1,00/15] hw: Renesas patches (SH4 and RX)

Message ID 20200617191519.14842-1-f4bug@amsat.org
Headers show
Series hw: Renesas patches (SH4 and RX) | expand

Message

Philippe Mathieu-Daudé June 17, 2020, 7:15 p.m. UTC
Hi Richard, Yoshinori,

This is a merger of the latest SH4 patches (add a common entry for
Renesas hardware in MAINTAINERS, an acceptance test from Thomas),
and Yoshinori's v32 [*] of the RX machine.
Call this release, or merge, candidate 1.

[*] https://www.mail-archive.com/qemu-devel@nongnu.org/msg682290.html

---

Richard,

A few months ago, I volunteered to integrate the RX port posted last
year on the list, to help you ease the burden of your heavy workload.

As it took a long time, at some point I suggested doing the integration
in two parts, first the architecture part (target/ directory), then the
hardware (hw/ directory). You disagreed, arguing that this approach
could be dangerous, as we don’t want to maintain a partly integrated
port. In hindsight I learned the hard way that you were right!

When I decided to send the architectural part first, I made the
commitment to you to finish the full integration before the following
release. The second part has been a painful experience.

With this series, I have now fulfilled this commitment. I don't plan
to continue working on the RX port.

Thank you for your support during this experiment, I learned a lot,
and I’d be grateful to work with you again in the future in other
parts of the project.

---

Yoshinori,

I appreciated integrating your work, which is of very good quality
overall. Despite the numerous iterations you had to go through, the
outcome has proven worthwhile.
Working with you has been a great experience.

I volunteered to help maintain the RX hardware in my leisure time.
Such hobby projects are supposed to be fun, and not have the same
level of pressure as paid work.

Sadly, my experience trying to get your work merged has not been fun:
too much aggressive criticism, and constant demands for more work.
The pressure has become too great for what is, essentially, unpaid
work.

---

Missing review: patches 2 and 12
- 02/15 MAINTAINERS: Add an entry for common Renesas peripherals
- 12/15 hw/rx: Register R5F562N7 and R5F562N8 MCUs

Changes since v32:

- Rebased on DeviceReset API change
- Renamed CPU -> MCU
- Renamed device -> microcontroller
- Rebased on device_class_set_parent_realize API change
- Split timer patch in two distincts: CMT and TMR
- Rebased on ramdev API change
- Use TYPE_RX62N_CPU definition
- Use RX62N_NR_TMR/CMT/SCI definitions
- Replace obsolete set_machine() by machine tag
- Split rx-virt patch in two distinct, MCU first, machine next
- Renamed machined as gdbsim
- Make TYPE_RX62N_MCU an abstract class,
  add TYPE_R5F562N7_MCU and TYPE_R5F562N8_MCU models
- Rename the machine gdbsim-r5f562n8, also add the gdbsim-r5f562n7
- Filled various VMStateField for migration
- Rebase on qdev/sysbus API change

CI:
https://travis-ci.org/github/philmd/qemu/builds/698974425

Philippe Mathieu-Daudé (7):
  MAINTAINERS: Cover sh_intc files in the R2D/Shix machine sections
  MAINTAINERS: Add an entry for common Renesas peripherals
  hw/sh4: Use MemoryRegion typedef
  hw/sh4: Extract timer definitions to 'hw/timer/tmu012.h'
  hw/timer/sh_timer: Remove unused 'qemu/timer.h' include
  hw/rx: Register R5F562N7 and R5F562N8 MCUs
  BootLinuxConsoleTest: Test the RX GDB simulator

Richard Henderson (1):
  hw/rx: Honor -accel qtest

Yoshinori Sato (7):
  hw/intc: RX62N interrupt controller (ICUa)
  hw/timer: RX62N 8-Bit timer (TMR)
  hw/timer: RX62N compare match timer (CMT)
  hw/char: RX62N serial communication interface (SCI)
  hw/rx: RX62N microcontroller (MCU)
  hw/rx: Add RX GDB simulator
  docs: Document the RX target

 docs/system/target-rx.rst             |  36 ++
 docs/system/targets.rst               |   1 +
 default-configs/rx-softmmu.mak        |   1 +
 include/hw/char/renesas_sci.h         |  51 +++
 include/hw/intc/rx_icu.h              |  76 ++++
 include/hw/rx/rx62n.h                 |  78 +++++
 include/hw/sh4/sh.h                   |  12 +-
 include/hw/timer/renesas_cmt.h        |  40 +++
 include/hw/timer/renesas_tmr.h        |  55 +++
 include/hw/timer/tmu012.h             |  23 ++
 hw/char/renesas_sci.c                 | 350 +++++++++++++++++++
 hw/intc/rx_icu.c                      | 397 +++++++++++++++++++++
 hw/rx/rx-gdbsim.c                     | 196 +++++++++++
 hw/rx/rx62n.c                         | 318 +++++++++++++++++
 hw/sh4/sh7750.c                       |   1 +
 hw/timer/renesas_cmt.c                | 283 +++++++++++++++
 hw/timer/renesas_tmr.c                | 477 ++++++++++++++++++++++++++
 hw/timer/sh_timer.c                   |   3 +-
 MAINTAINERS                           |  33 +-
 hw/Kconfig                            |   1 +
 hw/char/Kconfig                       |   3 +
 hw/char/Makefile.objs                 |   1 +
 hw/intc/Kconfig                       |   3 +
 hw/intc/Makefile.objs                 |   1 +
 hw/rx/Kconfig                         |  10 +
 hw/rx/Makefile.objs                   |   2 +
 hw/timer/Kconfig                      |   6 +
 hw/timer/Makefile.objs                |   2 +
 tests/acceptance/machine_rx_gdbsim.py |  68 ++++
 29 files changed, 2515 insertions(+), 13 deletions(-)
 create mode 100644 docs/system/target-rx.rst
 create mode 100644 include/hw/char/renesas_sci.h
 create mode 100644 include/hw/intc/rx_icu.h
 create mode 100644 include/hw/rx/rx62n.h
 create mode 100644 include/hw/timer/renesas_cmt.h
 create mode 100644 include/hw/timer/renesas_tmr.h
 create mode 100644 include/hw/timer/tmu012.h
 create mode 100644 hw/char/renesas_sci.c
 create mode 100644 hw/intc/rx_icu.c
 create mode 100644 hw/rx/rx-gdbsim.c
 create mode 100644 hw/rx/rx62n.c
 create mode 100644 hw/timer/renesas_cmt.c
 create mode 100644 hw/timer/renesas_tmr.c
 create mode 100644 hw/rx/Kconfig
 create mode 100644 hw/rx/Makefile.objs
 create mode 100644 tests/acceptance/machine_rx_gdbsim.py

Comments

no-reply@patchew.org June 17, 2020, 7:44 p.m. UTC | #1
Patchew URL: https://patchew.org/QEMU/20200617191519.14842-1-f4bug@amsat.org/



Hi,

This series failed the asan build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
export ARCH=x86_64
make docker-image-fedora V=1 NETWORK=1
time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1
=== TEST SCRIPT END ===

  CC      qga/commands.o
  CC      qga/guest-agent-command-state.o
  CC      qga/main.o
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  CC      qga/commands-posix.o
  CC      qga/channel-posix.o
  CC      qga/qapi-generated/qga-qapi-types.o
---
  GEN     docs/interop/qemu-ga-ref.html
  GEN     docs/interop/qemu-ga-ref.txt
  GEN     docs/interop/qemu-ga-ref.7
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    qemu-keymap
  LINK    ivshmem-client
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    ivshmem-server
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    qemu-nbd
  LINK    qemu-storage-daemon
  AS      pc-bios/optionrom/multiboot.o
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    qemu-img
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    qemu-io
  LINK    qemu-edid
  LINK    fsdev/virtfs-proxy-helper
---
  BUILD   pc-bios/optionrom/multiboot.raw
  BUILD   pc-bios/optionrom/linuxboot_dma.img
  BUILD   pc-bios/optionrom/pvh.raw
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    vhost-user-input
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  BUILD   pc-bios/optionrom/linuxboot_dma.raw
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  BUILD   pc-bios/optionrom/kvmvapic.img
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)/usr/bin/ld
: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  SIGN    pc-bios/optionrom/multiboot.bin
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  BUILD   pc-bios/optionrom/linuxboot.img
  SIGN    pc-bios/optionrom/linuxboot_dma.bin
  BUILD   pc-bios/optionrom/kvmvapic.raw
  SIGN    pc-bios/optionrom/pvh.bin
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  BUILD   pc-bios/optionrom/linuxboot.raw
  SIGN    pc-bios/optionrom/kvmvapic.bin
  SIGN    pc-bios/optionrom/linuxboot.bin
  LINK    qemu-ga
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  GEN     x86_64-softmmu/hmp-commands.h
  GEN     x86_64-softmmu/hmp-commands-info.h
  GEN     x86_64-softmmu/config-devices.h
---
  CC      x86_64-softmmu/hw/virtio/virtio-crypto.o
  CC      x86_64-softmmu/hw/virtio/vhost-user-fs.o
  CC      x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
/tmp/qemu-test/src/fpu/softfloat.c:3365:13: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
    absZ &= ~ ( ( ( roundBits ^ 0x40 ) == 0 ) & roundNearestEven );
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            !
/tmp/qemu-test/src/fpu/softfloat.c:3423:18: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
        absZ0 &= ~ ( ( (uint64_t) ( absZ1<<1 ) == 0 ) & roundNearestEven );
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 !
/tmp/qemu-test/src/fpu/softfloat.c:3483:18: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
        absZ0 &= ~(((uint64_t)(absZ1<<1) == 0) & roundNearestEven);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 !
/tmp/qemu-test/src/fpu/softfloat.c:3606:13: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
    zSig &= ~ ( ( ( roundBits ^ 0x40 ) == 0 ) & roundNearestEven );
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            !
/tmp/qemu-test/src/fpu/softfloat.c:3760:13: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
    zSig &= ~ ( ( ( roundBits ^ 0x200 ) == 0 ) & roundNearestEven );
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            !
/tmp/qemu-test/src/fpu/softfloat.c:3987:21: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
                    ~ ( ( (uint64_t) ( zSig1<<1 ) == 0 ) & roundNearestEven );
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    !
/tmp/qemu-test/src/fpu/softfloat.c:4003:22: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
            zSig0 &= ~ ( ( (uint64_t) ( zSig1<<1 ) == 0 ) & roundNearestEven );
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     !
/tmp/qemu-test/src/fpu/softfloat.c:4273:18: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
        zSig1 &= ~ ( ( zSig2 + zSig2 == 0 ) & roundNearestEven );
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 !
8 errors generated.
make[1]: *** [/tmp/qemu-test/src/rules.mak:69: fpu/softfloat.o] Error 1
make[1]: *** Waiting for unfinished jobs....
/tmp/qemu-test/src/migration/ram.c:919:45: error: implicit conversion from 'unsigned long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Werror,-Wimplicit-int-float-conversion]
            xbzrle_counters.encoding_rate = UINT64_MAX;
                                          ~ ^~~~~~~~~~
/usr/include/stdint.h:130:23: note: expanded from macro 'UINT64_MAX'
---
18446744073709551615UL
^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[1]: *** [/tmp/qemu-test/src/rules.mak:69: migration/ram.o] Error 1
make: *** [Makefile:527: x86_64-softmmu/all] Error 2
Traceback (most recent call last):
  File "./tests/docker/docker.py", line 669, in <module>
    sys.exit(main())
---
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=3a7831a127594556bfa87f417528a9a8', '-u', '1001', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=x86_64-softmmu', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-g0f5n67e/src/docker-src.2020-06-17-15.40.45.9879:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-debug']' returned non-zero exit status 2.
filter=--filter=label=com.qemu.instance.uuid=3a7831a127594556bfa87f417528a9a8
make[1]: *** [docker-run] Error 1
make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-g0f5n67e/src'
make: *** [docker-run-test-debug@fedora] Error 2

real    4m5.743s
user    0m8.415s


The full log is available at
http://patchew.org/logs/20200617191519.14842-1-f4bug@amsat.org/testing.asan/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Yoshinori Sato June 18, 2020, 3:12 p.m. UTC | #2
On Thu, 18 Jun 2020 04:15:04 +0900,
Philippe Mathieu-Daudé wrote:
> 
> Hi Richard, Yoshinori,
> 
> This is a merger of the latest SH4 patches (add a common entry for
> Renesas hardware in MAINTAINERS, an acceptance test from Thomas),
> and Yoshinori's v32 [*] of the RX machine.
> Call this release, or merge, candidate 1.
> 
> [*] https://www.mail-archive.com/qemu-devel@nongnu.org/msg682290.html
> 
> ---
> 
> Richard,
> 
> A few months ago, I volunteered to integrate the RX port posted last
> year on the list, to help you ease the burden of your heavy workload.
> 
> As it took a long time, at some point I suggested doing the integration
> in two parts, first the architecture part (target/ directory), then the
> hardware (hw/ directory). You disagreed, arguing that this approach
> could be dangerous, as we don’t want to maintain a partly integrated
> port. In hindsight I learned the hard way that you were right!
> 
> When I decided to send the architectural part first, I made the
> commitment to you to finish the full integration before the following
> release. The second part has been a painful experience.
> 
> With this series, I have now fulfilled this commitment. I don't plan
> to continue working on the RX port.
> 
> Thank you for your support during this experiment, I learned a lot,
> and I’d be grateful to work with you again in the future in other
> parts of the project.
> 
> ---
> 
> Yoshinori,
> 
> I appreciated integrating your work, which is of very good quality
> overall. Despite the numerous iterations you had to go through, the
> outcome has proven worthwhile.
> Working with you has been a great experience.
> 
> I volunteered to help maintain the RX hardware in my leisure time.
> Such hobby projects are supposed to be fun, and not have the same
> level of pressure as paid work.
> 
> Sadly, my experience trying to get your work merged has not been fun:
> too much aggressive criticism, and constant demands for more work.
> The pressure has become too great for what is, essentially, unpaid
> work.
>

Thank you very much.
I wouldn't have been able to achieve such an outcome without your
great cooperation.
There are still some functions that I want to implement on the RX port,
so I will continue working.

> ---
> 
> Missing review: patches 2 and 12
> - 02/15 MAINTAINERS: Add an entry for common Renesas peripherals
> - 12/15 hw/rx: Register R5F562N7 and R5F562N8 MCUs
> 
> Changes since v32:
> 
> - Rebased on DeviceReset API change
> - Renamed CPU -> MCU
> - Renamed device -> microcontroller
> - Rebased on device_class_set_parent_realize API change
> - Split timer patch in two distincts: CMT and TMR
> - Rebased on ramdev API change
> - Use TYPE_RX62N_CPU definition
> - Use RX62N_NR_TMR/CMT/SCI definitions
> - Replace obsolete set_machine() by machine tag
> - Split rx-virt patch in two distinct, MCU first, machine next
> - Renamed machined as gdbsim
> - Make TYPE_RX62N_MCU an abstract class,
>   add TYPE_R5F562N7_MCU and TYPE_R5F562N8_MCU models
> - Rename the machine gdbsim-r5f562n8, also add the gdbsim-r5f562n7
> - Filled various VMStateField for migration
> - Rebase on qdev/sysbus API change
> 
> CI:
> https://travis-ci.org/github/philmd/qemu/builds/698974425
> 
> Philippe Mathieu-Daudé (7):
>   MAINTAINERS: Cover sh_intc files in the R2D/Shix machine sections
>   MAINTAINERS: Add an entry for common Renesas peripherals
>   hw/sh4: Use MemoryRegion typedef
>   hw/sh4: Extract timer definitions to 'hw/timer/tmu012.h'
>   hw/timer/sh_timer: Remove unused 'qemu/timer.h' include
>   hw/rx: Register R5F562N7 and R5F562N8 MCUs
>   BootLinuxConsoleTest: Test the RX GDB simulator
> 
> Richard Henderson (1):
>   hw/rx: Honor -accel qtest
> 
> Yoshinori Sato (7):
>   hw/intc: RX62N interrupt controller (ICUa)
>   hw/timer: RX62N 8-Bit timer (TMR)
>   hw/timer: RX62N compare match timer (CMT)
>   hw/char: RX62N serial communication interface (SCI)
>   hw/rx: RX62N microcontroller (MCU)
>   hw/rx: Add RX GDB simulator
>   docs: Document the RX target
> 
>  docs/system/target-rx.rst             |  36 ++
>  docs/system/targets.rst               |   1 +
>  default-configs/rx-softmmu.mak        |   1 +
>  include/hw/char/renesas_sci.h         |  51 +++
>  include/hw/intc/rx_icu.h              |  76 ++++
>  include/hw/rx/rx62n.h                 |  78 +++++
>  include/hw/sh4/sh.h                   |  12 +-
>  include/hw/timer/renesas_cmt.h        |  40 +++
>  include/hw/timer/renesas_tmr.h        |  55 +++
>  include/hw/timer/tmu012.h             |  23 ++
>  hw/char/renesas_sci.c                 | 350 +++++++++++++++++++
>  hw/intc/rx_icu.c                      | 397 +++++++++++++++++++++
>  hw/rx/rx-gdbsim.c                     | 196 +++++++++++
>  hw/rx/rx62n.c                         | 318 +++++++++++++++++
>  hw/sh4/sh7750.c                       |   1 +
>  hw/timer/renesas_cmt.c                | 283 +++++++++++++++
>  hw/timer/renesas_tmr.c                | 477 ++++++++++++++++++++++++++
>  hw/timer/sh_timer.c                   |   3 +-
>  MAINTAINERS                           |  33 +-
>  hw/Kconfig                            |   1 +
>  hw/char/Kconfig                       |   3 +
>  hw/char/Makefile.objs                 |   1 +
>  hw/intc/Kconfig                       |   3 +
>  hw/intc/Makefile.objs                 |   1 +
>  hw/rx/Kconfig                         |  10 +
>  hw/rx/Makefile.objs                   |   2 +
>  hw/timer/Kconfig                      |   6 +
>  hw/timer/Makefile.objs                |   2 +
>  tests/acceptance/machine_rx_gdbsim.py |  68 ++++
>  29 files changed, 2515 insertions(+), 13 deletions(-)
>  create mode 100644 docs/system/target-rx.rst
>  create mode 100644 include/hw/char/renesas_sci.h
>  create mode 100644 include/hw/intc/rx_icu.h
>  create mode 100644 include/hw/rx/rx62n.h
>  create mode 100644 include/hw/timer/renesas_cmt.h
>  create mode 100644 include/hw/timer/renesas_tmr.h
>  create mode 100644 include/hw/timer/tmu012.h
>  create mode 100644 hw/char/renesas_sci.c
>  create mode 100644 hw/intc/rx_icu.c
>  create mode 100644 hw/rx/rx-gdbsim.c
>  create mode 100644 hw/rx/rx62n.c
>  create mode 100644 hw/timer/renesas_cmt.c
>  create mode 100644 hw/timer/renesas_tmr.c
>  create mode 100644 hw/rx/Kconfig
>  create mode 100644 hw/rx/Makefile.objs
>  create mode 100644 tests/acceptance/machine_rx_gdbsim.py
> 
> -- 
> 2.21.3
> 
>