[PULL v2 00/32] AVR port

Philippe Mathieu-Daudé posted 32 patches 3 years, 8 months ago
Only 1 patches received!
There is a newer version of this series
docs/system/target-avr.rst       |   37 +
docs/system/targets.rst          |    1 +
configure                        |    7 +
default-configs/avr-softmmu.mak  |    5 +
qapi/machine.json                |    3 +-
hw/avr/atmega.h                  |   48 +
hw/avr/boot.h                    |   33 +
include/disas/dis-asm.h          |   19 +
include/elf.h                    |    4 +
include/hw/char/avr_usart.h      |   93 +
include/hw/misc/avr_power.h      |   46 +
include/hw/timer/avr_timer16.h   |   94 +
include/sysemu/arch_init.h       |    1 +
target/avr/cpu-param.h           |   36 +
target/avr/cpu-qom.h             |   53 +
target/avr/cpu.h                 |  256 +++
target/avr/helper.h              |   29 +
target/avr/insn.decode           |  187 ++
arch_init.c                      |    2 +
hw/avr/arduino.c                 |  149 ++
hw/avr/atmega.c                  |  458 +++++
hw/avr/boot.c                    |  115 ++
hw/char/avr_usart.c              |  320 ++++
hw/misc/avr_power.c              |  113 ++
hw/timer/avr_timer16.c           |  621 ++++++
target/avr/cpu.c                 |  366 ++++
target/avr/disas.c               |  245 +++
target/avr/gdbstub.c             |   84 +
target/avr/helper.c              |  348 ++++
target/avr/machine.c             |  119 ++
target/avr/translate.c           | 3061 ++++++++++++++++++++++++++++++
tests/qtest/boot-serial-test.c   |   11 +
tests/qtest/machine-none-test.c  |    1 +
MAINTAINERS                      |   30 +
gdb-xml/avr-cpu.xml              |   49 +
hw/Kconfig                       |    1 +
hw/avr/Kconfig                   |    9 +
hw/avr/Makefile.objs             |    3 +
hw/char/Kconfig                  |    3 +
hw/char/Makefile.objs            |    1 +
hw/misc/Kconfig                  |    3 +
hw/misc/Makefile.objs            |    2 +
hw/misc/trace-events             |    4 +
hw/timer/Kconfig                 |    3 +
hw/timer/Makefile.objs           |    2 +
hw/timer/trace-events            |   12 +
target/avr/Makefile.objs         |   34 +
tests/acceptance/machine_avr6.py |   50 +
tests/qtest/Makefile.include     |    2 +
49 files changed, 7172 insertions(+), 1 deletion(-)
create mode 100644 docs/system/target-avr.rst
create mode 100644 default-configs/avr-softmmu.mak
create mode 100644 hw/avr/atmega.h
create mode 100644 hw/avr/boot.h
create mode 100644 include/hw/char/avr_usart.h
create mode 100644 include/hw/misc/avr_power.h
create mode 100644 include/hw/timer/avr_timer16.h
create mode 100644 target/avr/cpu-param.h
create mode 100644 target/avr/cpu-qom.h
create mode 100644 target/avr/cpu.h
create mode 100644 target/avr/helper.h
create mode 100644 target/avr/insn.decode
create mode 100644 hw/avr/arduino.c
create mode 100644 hw/avr/atmega.c
create mode 100644 hw/avr/boot.c
create mode 100644 hw/char/avr_usart.c
create mode 100644 hw/misc/avr_power.c
create mode 100644 hw/timer/avr_timer16.c
create mode 100644 target/avr/cpu.c
create mode 100644 target/avr/disas.c
create mode 100644 target/avr/gdbstub.c
create mode 100644 target/avr/helper.c
create mode 100644 target/avr/machine.c
create mode 100644 target/avr/translate.c
create mode 100644 gdb-xml/avr-cpu.xml
create mode 100644 hw/avr/Kconfig
create mode 100644 hw/avr/Makefile.objs
create mode 100644 target/avr/Makefile.objs
create mode 100644 tests/acceptance/machine_avr6.py
[PULL v2 00/32] AVR port
Posted by Philippe Mathieu-Daudé 3 years, 8 months ago
Since v1:

Fixed issue on big-endian host reported by Peter Maydell.

Possible false-positives from checkpatch:

  WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?

The following changes since commit f2a1cf9180f63e88bb38ff21c169da97c3f2bad5:

  Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2020-07-07-v2'=
 into staging (2020-07-10 14:41:23 +0100)

are available in the Git repository at:

  https://gitlab.com/philmd/qemu.git tags/avr-port-20200710

for you to fetch changes up to 23623ca1f27427d76cc111eb567cac6ce18dab3a:

  target/avr/disas: Fix store instructions display order (2020-07-10 18:13:39=
 +0200)

----------------------------------------------------------------
8bit AVR port from Michael Rolnik.

Michael started to work on the AVR port few years ago [*] and kept
improving the code over various series.

List of people who help him (in chronological order):
- Richard Henderson
- Sarah Harris and Edward Robbins
- Philippe Mathieu-Daud=C3=A9 and Aleksandar Markovic
- Pavel Dovgalyuk
- Thomas Huth

[*] The oldest contribution I could find on the list is from 2016:
https://lists.nongnu.org/archive/html/qemu-devel/2016-06/msg02985.html

----------------------------------------------------------------

Michael Rolnik (25):
  target/avr: Add basic parameters of the new platform
  target/avr: Introduce basic CPU class object
  target/avr: CPU class: Add interrupt handling support
  target/avr: CPU class: Add memory management support
  target/avr: CPU class: Add migration support
  target/avr: CPU class: Add GDB support
  target/avr: Introduce enumeration AVRFeature
  target/avr: Add definitions of AVR core types
  target/avr: Add instruction helpers
  target/avr: Add instruction translation - Register definitions
  target/avr: Add instruction translation - Arithmetic and Logic
    Instructions
  target/avr: Add instruction translation - Branch Instructions
  target/avr: Add instruction translation - Data Transfer Instructions
  target/avr: Add instruction translation - Bit and Bit-test
    Instructions
  target/avr: Add instruction translation - MCU Control Instructions
  target/avr: Add instruction translation - CPU main translation
    function
  target/avr: Initialize TCG register variables
  target/avr: Add support for disassembling via option '-d in_asm'
  target/avr: Register AVR support with the rest of QEMU
  tests/machine-none: Add AVR support
  hw/char: avr: Add limited support for USART peripheral
  hw/timer: avr: Add limited support for 16-bit timer peripheral
  hw/misc: avr: Add limited support for power reduction device
  tests/boot-serial: Test some Arduino boards (AVR based)
  tests/acceptance: Test the Arduino MEGA2560 board

Philippe Mathieu-Daud=C3=A9 (6):
  hw/avr: Add support for loading ELF/raw binaries
  hw/avr: Add some ATmega microcontrollers
  hw/avr: Add limited support for some Arduino boards
  target/avr/cpu: Drop tlb_flush() in avr_cpu_reset()
  target/avr/cpu: Fix $PC displayed address
  target/avr/disas: Fix store instructions display order

Thomas Huth (1):
  target/avr: Add section into QEMU documentation

 docs/system/target-avr.rst       |   37 +
 docs/system/targets.rst          |    1 +
 configure                        |    7 +
 default-configs/avr-softmmu.mak  |    5 +
 qapi/machine.json                |    3 +-
 hw/avr/atmega.h                  |   48 +
 hw/avr/boot.h                    |   33 +
 include/disas/dis-asm.h          |   19 +
 include/elf.h                    |    4 +
 include/hw/char/avr_usart.h      |   93 +
 include/hw/misc/avr_power.h      |   46 +
 include/hw/timer/avr_timer16.h   |   94 +
 include/sysemu/arch_init.h       |    1 +
 target/avr/cpu-param.h           |   36 +
 target/avr/cpu-qom.h             |   53 +
 target/avr/cpu.h                 |  256 +++
 target/avr/helper.h              |   29 +
 target/avr/insn.decode           |  187 ++
 arch_init.c                      |    2 +
 hw/avr/arduino.c                 |  149 ++
 hw/avr/atmega.c                  |  458 +++++
 hw/avr/boot.c                    |  115 ++
 hw/char/avr_usart.c              |  320 ++++
 hw/misc/avr_power.c              |  113 ++
 hw/timer/avr_timer16.c           |  621 ++++++
 target/avr/cpu.c                 |  366 ++++
 target/avr/disas.c               |  245 +++
 target/avr/gdbstub.c             |   84 +
 target/avr/helper.c              |  348 ++++
 target/avr/machine.c             |  119 ++
 target/avr/translate.c           | 3061 ++++++++++++++++++++++++++++++
 tests/qtest/boot-serial-test.c   |   11 +
 tests/qtest/machine-none-test.c  |    1 +
 MAINTAINERS                      |   30 +
 gdb-xml/avr-cpu.xml              |   49 +
 hw/Kconfig                       |    1 +
 hw/avr/Kconfig                   |    9 +
 hw/avr/Makefile.objs             |    3 +
 hw/char/Kconfig                  |    3 +
 hw/char/Makefile.objs            |    1 +
 hw/misc/Kconfig                  |    3 +
 hw/misc/Makefile.objs            |    2 +
 hw/misc/trace-events             |    4 +
 hw/timer/Kconfig                 |    3 +
 hw/timer/Makefile.objs           |    2 +
 hw/timer/trace-events            |   12 +
 target/avr/Makefile.objs         |   34 +
 tests/acceptance/machine_avr6.py |   50 +
 tests/qtest/Makefile.include     |    2 +
 49 files changed, 7172 insertions(+), 1 deletion(-)
 create mode 100644 docs/system/target-avr.rst
 create mode 100644 default-configs/avr-softmmu.mak
 create mode 100644 hw/avr/atmega.h
 create mode 100644 hw/avr/boot.h
 create mode 100644 include/hw/char/avr_usart.h
 create mode 100644 include/hw/misc/avr_power.h
 create mode 100644 include/hw/timer/avr_timer16.h
 create mode 100644 target/avr/cpu-param.h
 create mode 100644 target/avr/cpu-qom.h
 create mode 100644 target/avr/cpu.h
 create mode 100644 target/avr/helper.h
 create mode 100644 target/avr/insn.decode
 create mode 100644 hw/avr/arduino.c
 create mode 100644 hw/avr/atmega.c
 create mode 100644 hw/avr/boot.c
 create mode 100644 hw/char/avr_usart.c
 create mode 100644 hw/misc/avr_power.c
 create mode 100644 hw/timer/avr_timer16.c
 create mode 100644 target/avr/cpu.c
 create mode 100644 target/avr/disas.c
 create mode 100644 target/avr/gdbstub.c
 create mode 100644 target/avr/helper.c
 create mode 100644 target/avr/machine.c
 create mode 100644 target/avr/translate.c
 create mode 100644 gdb-xml/avr-cpu.xml
 create mode 100644 hw/avr/Kconfig
 create mode 100644 hw/avr/Makefile.objs
 create mode 100644 target/avr/Makefile.objs
 create mode 100644 tests/acceptance/machine_avr6.py

--=20
2.21.3


Re: [PULL v2 00/32] AVR port
Posted by Philippe Mathieu-Daudé 3 years, 8 months ago
Peter, please disregard this pullreq as I committed an incorrect line
while rebasing the fix :/ I'll send v3 shortly.

On 7/10/20 7:04 PM, Philippe Mathieu-Daudé wrote:
> Since v1:
> 
> Fixed issue on big-endian host reported by Peter Maydell.
> 
> Possible false-positives from checkpatch:
> 
>   WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> 
> The following changes since commit f2a1cf9180f63e88bb38ff21c169da97c3f2bad5:
> 
>   Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2020-07-07-v2'=
>  into staging (2020-07-10 14:41:23 +0100)
> 
> are available in the Git repository at:
> 
>   https://gitlab.com/philmd/qemu.git tags/avr-port-20200710
> 
> for you to fetch changes up to 23623ca1f27427d76cc111eb567cac6ce18dab3a:
> 
>   target/avr/disas: Fix store instructions display order (2020-07-10 18:13:39=
>  +0200)
> 
> ----------------------------------------------------------------
> 8bit AVR port from Michael Rolnik.
> 
> Michael started to work on the AVR port few years ago [*] and kept
> improving the code over various series.
> 
> List of people who help him (in chronological order):
> - Richard Henderson
> - Sarah Harris and Edward Robbins
> - Philippe Mathieu-Daud=C3=A9 and Aleksandar Markovic
> - Pavel Dovgalyuk
> - Thomas Huth
> 
> [*] The oldest contribution I could find on the list is from 2016:
> https://lists.nongnu.org/archive/html/qemu-devel/2016-06/msg02985.html
> 
> ----------------------------------------------------------------
> 
> Michael Rolnik (25):
>   target/avr: Add basic parameters of the new platform
>   target/avr: Introduce basic CPU class object
>   target/avr: CPU class: Add interrupt handling support
>   target/avr: CPU class: Add memory management support
>   target/avr: CPU class: Add migration support
>   target/avr: CPU class: Add GDB support
>   target/avr: Introduce enumeration AVRFeature
>   target/avr: Add definitions of AVR core types
>   target/avr: Add instruction helpers
>   target/avr: Add instruction translation - Register definitions
>   target/avr: Add instruction translation - Arithmetic and Logic
>     Instructions
>   target/avr: Add instruction translation - Branch Instructions
>   target/avr: Add instruction translation - Data Transfer Instructions
>   target/avr: Add instruction translation - Bit and Bit-test
>     Instructions
>   target/avr: Add instruction translation - MCU Control Instructions
>   target/avr: Add instruction translation - CPU main translation
>     function
>   target/avr: Initialize TCG register variables
>   target/avr: Add support for disassembling via option '-d in_asm'
>   target/avr: Register AVR support with the rest of QEMU
>   tests/machine-none: Add AVR support
>   hw/char: avr: Add limited support for USART peripheral
>   hw/timer: avr: Add limited support for 16-bit timer peripheral
>   hw/misc: avr: Add limited support for power reduction device
>   tests/boot-serial: Test some Arduino boards (AVR based)
>   tests/acceptance: Test the Arduino MEGA2560 board
> 
> Philippe Mathieu-Daud=C3=A9 (6):
>   hw/avr: Add support for loading ELF/raw binaries
>   hw/avr: Add some ATmega microcontrollers
>   hw/avr: Add limited support for some Arduino boards
>   target/avr/cpu: Drop tlb_flush() in avr_cpu_reset()
>   target/avr/cpu: Fix $PC displayed address
>   target/avr/disas: Fix store instructions display order
> 
> Thomas Huth (1):
>   target/avr: Add section into QEMU documentation
> 
>  docs/system/target-avr.rst       |   37 +
>  docs/system/targets.rst          |    1 +
>  configure                        |    7 +
>  default-configs/avr-softmmu.mak  |    5 +
>  qapi/machine.json                |    3 +-
>  hw/avr/atmega.h                  |   48 +
>  hw/avr/boot.h                    |   33 +
>  include/disas/dis-asm.h          |   19 +
>  include/elf.h                    |    4 +
>  include/hw/char/avr_usart.h      |   93 +
>  include/hw/misc/avr_power.h      |   46 +
>  include/hw/timer/avr_timer16.h   |   94 +
>  include/sysemu/arch_init.h       |    1 +
>  target/avr/cpu-param.h           |   36 +
>  target/avr/cpu-qom.h             |   53 +
>  target/avr/cpu.h                 |  256 +++
>  target/avr/helper.h              |   29 +
>  target/avr/insn.decode           |  187 ++
>  arch_init.c                      |    2 +
>  hw/avr/arduino.c                 |  149 ++
>  hw/avr/atmega.c                  |  458 +++++
>  hw/avr/boot.c                    |  115 ++
>  hw/char/avr_usart.c              |  320 ++++
>  hw/misc/avr_power.c              |  113 ++
>  hw/timer/avr_timer16.c           |  621 ++++++
>  target/avr/cpu.c                 |  366 ++++
>  target/avr/disas.c               |  245 +++
>  target/avr/gdbstub.c             |   84 +
>  target/avr/helper.c              |  348 ++++
>  target/avr/machine.c             |  119 ++
>  target/avr/translate.c           | 3061 ++++++++++++++++++++++++++++++
>  tests/qtest/boot-serial-test.c   |   11 +
>  tests/qtest/machine-none-test.c  |    1 +
>  MAINTAINERS                      |   30 +
>  gdb-xml/avr-cpu.xml              |   49 +
>  hw/Kconfig                       |    1 +
>  hw/avr/Kconfig                   |    9 +
>  hw/avr/Makefile.objs             |    3 +
>  hw/char/Kconfig                  |    3 +
>  hw/char/Makefile.objs            |    1 +
>  hw/misc/Kconfig                  |    3 +
>  hw/misc/Makefile.objs            |    2 +
>  hw/misc/trace-events             |    4 +
>  hw/timer/Kconfig                 |    3 +
>  hw/timer/Makefile.objs           |    2 +
>  hw/timer/trace-events            |   12 +
>  target/avr/Makefile.objs         |   34 +
>  tests/acceptance/machine_avr6.py |   50 +
>  tests/qtest/Makefile.include     |    2 +
>  49 files changed, 7172 insertions(+), 1 deletion(-)
>  create mode 100644 docs/system/target-avr.rst
>  create mode 100644 default-configs/avr-softmmu.mak
>  create mode 100644 hw/avr/atmega.h
>  create mode 100644 hw/avr/boot.h
>  create mode 100644 include/hw/char/avr_usart.h
>  create mode 100644 include/hw/misc/avr_power.h
>  create mode 100644 include/hw/timer/avr_timer16.h
>  create mode 100644 target/avr/cpu-param.h
>  create mode 100644 target/avr/cpu-qom.h
>  create mode 100644 target/avr/cpu.h
>  create mode 100644 target/avr/helper.h
>  create mode 100644 target/avr/insn.decode
>  create mode 100644 hw/avr/arduino.c
>  create mode 100644 hw/avr/atmega.c
>  create mode 100644 hw/avr/boot.c
>  create mode 100644 hw/char/avr_usart.c
>  create mode 100644 hw/misc/avr_power.c
>  create mode 100644 hw/timer/avr_timer16.c
>  create mode 100644 target/avr/cpu.c
>  create mode 100644 target/avr/disas.c
>  create mode 100644 target/avr/gdbstub.c
>  create mode 100644 target/avr/helper.c
>  create mode 100644 target/avr/machine.c
>  create mode 100644 target/avr/translate.c
>  create mode 100644 gdb-xml/avr-cpu.xml
>  create mode 100644 hw/avr/Kconfig
>  create mode 100644 hw/avr/Makefile.objs
>  create mode 100644 target/avr/Makefile.objs
>  create mode 100644 tests/acceptance/machine_avr6.py
> 
> --=20
> 2.21.3
> 
>