qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] c8c0d2: target/avr: Add basic parameters of t


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] c8c0d2: target/avr: Add basic parameters of the new platform
Date: Sun, 12 Jul 2020 07:45:29 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: c8c0d267fd423dcda81fec5dc35ca7a6c3207213
      
https://github.com/qemu/qemu/commit/c8c0d267fd423dcda81fec5dc35ca7a6c3207213
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-10 (Fri, 10 Jul 2020)

  Changed paths:
    M MAINTAINERS
    A target/avr/cpu-param.h
    A target/avr/cpu.h

  Log Message:
  -----------
  target/avr: Add basic parameters of the new platform

This includes definitions of various basic parameters needed
for integration of a new platform into QEMU.

[AM: Split a larger AVR introduction patch into logical units]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Co-developed-by: Michael Rolnik <mrolnik@gmail.com>
Co-developed-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
[thuth: Simplify MAINTAINERS right from the start]
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-2-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: f1c671f96cb34deb28418c1b856f4132a752e87d
      
https://github.com/qemu/qemu/commit/f1c671f96cb34deb28418c1b856f4132a752e87d
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-10 (Fri, 10 Jul 2020)

  Changed paths:
    A target/avr/cpu-qom.h
    A target/avr/cpu.c
    M target/avr/cpu.h

  Log Message:
  -----------
  target/avr: Introduce basic CPU class object

This patch introduces AVR CPU class object and its basic elements
and functions.

[AM: Split a larger AVR introduction patch into logical units]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Co-developed-by: Michael Rolnik <mrolnik@gmail.com>
Co-developed-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
[thuth: Adjusted reset and parent_reset handling]
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-3-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 7ccda78ff3a1c4d7005eb211207ca11ed719cc11
      
https://github.com/qemu/qemu/commit/7ccda78ff3a1c4d7005eb211207ca11ed719cc11
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-10 (Fri, 10 Jul 2020)

  Changed paths:
    M target/avr/cpu.c
    A target/avr/helper.c

  Log Message:
  -----------
  target/avr: CPU class: Add interrupt handling support

This patch introduces functions avr_cpu_do_interrupt() and
avr_cpu_exec_interrupt() that are part of AVR CPU class object.

[AM: Split a larger AVR introduction patch into logical units]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Co-developed-by: Michael Rolnik <mrolnik@gmail.com>
Co-developed-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-4-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: e2a2b0b9187308c450a109ff967f720af4e399e6
      
https://github.com/qemu/qemu/commit/e2a2b0b9187308c450a109ff967f720af4e399e6
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-10 (Fri, 10 Jul 2020)

  Changed paths:
    M target/avr/cpu.c
    M target/avr/helper.c

  Log Message:
  -----------
  target/avr: CPU class: Add memory management support

This patch introduces three memory-management-related functions
that will become part of AVR CPU class object.

[AM: Split a larger AVR introduction patch into logical units]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Co-developed-by: Michael Rolnik <mrolnik@gmail.com>
Co-developed-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-5-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 3fa28dd6cf848c5f7fddba84a6d7789027c58a25
      
https://github.com/qemu/qemu/commit/3fa28dd6cf848c5f7fddba84a6d7789027c58a25
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-10 (Fri, 10 Jul 2020)

  Changed paths:
    M target/avr/cpu.c
    M target/avr/cpu.h
    A target/avr/machine.c

  Log Message:
  -----------
  target/avr: CPU class: Add migration support

Add migration-related functions of AVR CPU class object.

[AM: Split a larger AVR introduction patch into logical units]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Co-developed-by: Michael Rolnik <mrolnik@gmail.com>
Co-developed-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-6-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 12b35405476fa7f733538ec6bb3ffc91129c0555
      
https://github.com/qemu/qemu/commit/12b35405476fa7f733538ec6bb3ffc91129c0555
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-10 (Fri, 10 Jul 2020)

  Changed paths:
    M MAINTAINERS
    A gdb-xml/avr-cpu.xml
    M target/avr/cpu.c
    M target/avr/cpu.h
    A target/avr/gdbstub.c

  Log Message:
  -----------
  target/avr: CPU class: Add GDB support

This includes GDB hooks for reading from wnd wrtiting to AVR
registers, and xml register definition file as well.

[AM: Split a larger AVR introduction patch into logical units]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Co-developed-by: Michael Rolnik <mrolnik@gmail.com>
Co-developed-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
[thuth: Fixed avr_cpu_gdb_read_register() parameter]
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-7-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 25a08409ab449fe9666e3dc15fe87b2a8e5bb979
      
https://github.com/qemu/qemu/commit/25a08409ab449fe9666e3dc15fe87b2a8e5bb979
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-10 (Fri, 10 Jul 2020)

  Changed paths:
    M target/avr/cpu.h

  Log Message:
  -----------
  target/avr: Introduce enumeration AVRFeature

This patch introduces enumeration "AVRFeature" that will be
used for defining various AVR core types.

[AM: Split a larger AVR introduction patch into logical units]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Co-developed-by: Michael Rolnik <mrolnik@gmail.com>
Co-developed-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-8-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 669d27e2f57a5c016caebf859196ec77c420a330
      
https://github.com/qemu/qemu/commit/669d27e2f57a5c016caebf859196ec77c420a330
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-10 (Fri, 10 Jul 2020)

  Changed paths:
    M target/avr/cpu.c

  Log Message:
  -----------
  target/avr: Add definitions of AVR core types

AVR core types are:

  - avr5
  - avr51
  - avr6

Each core type covers multiple AVR MCUs, mentioned in the comments
before definition of particular AVR core type (part of this patch).

AVR core type defines shared features that are valid for all AVR
MCUs belonging in that type.

[AM: Split a larger AVR introduction patch into logical units]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Co-developed-by: Michael Rolnik <mrolnik@gmail.com>
Co-developed-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-9-huth@tuxfamily.org>
[PMD: Only include reviewed cores: avr5/avr51/avr6]
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 84a71e9a447b50ddfc818aed4d626574423d7945
      
https://github.com/qemu/qemu/commit/84a71e9a447b50ddfc818aed4d626574423d7945
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/helper.c
    A target/avr/helper.h

  Log Message:
  -----------
  target/avr: Add instruction helpers

Add helpers for instructions that need to interact with QEMU. Also,
add stubs for unimplemented instructions. Instructions SPM and WDR
are left unimplemented because they require emulation of complex
peripherals. The implementation of instruction SLEEP is very limited
due to the lack of peripherals to generate wake interrupts. Memory
access instructions are implemented here because some address ranges
actually refer to CPU registers.

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-10-huth@tuxfamily.org>
[PMD: Replace cpu_physical_memory() API by address_space_ldst()
      API to fix running on big-endian host,
      reported and suggested by Peter Maydell]
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: e03feba0079472da577cd940adb43041a40ea337
      
https://github.com/qemu/qemu/commit/e03feba0079472da577cd940adb43041a40ea337
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    A target/avr/translate.c

  Log Message:
  -----------
  target/avr: Add instruction translation - Register definitions

Start implementation of instructions by adding register definitions.

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-11-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 865f3bb9e16365a27efaf3e5b4787fd402764484
      
https://github.com/qemu/qemu/commit/865f3bb9e16365a27efaf3e5b4787fd402764484
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    A target/avr/insn.decode
    M target/avr/translate.c

  Log Message:
  -----------
  target/avr: Add instruction translation - Arithmetic and Logic Instructions

This includes:
- ADD, ADC, ADIW
- SBIW, SUB, SUBI, SBC, SBCI
- AND, ANDI
- OR, ORI, EOR
- COM, NEG
- INC, DEC
- MUL, MULS, MULSU
- FMUL, FMULS, FMULSU
- DES

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-12-huth@tuxfamily.org>
[PMD: Added qemu_log_mask(LOG_UNIMP) in trans_DES()]
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 9d316c75abafbefb1e40e8429e41858b2ab3eeb0
      
https://github.com/qemu/qemu/commit/9d316c75abafbefb1e40e8429e41858b2ab3eeb0
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/insn.decode
    M target/avr/translate.c

  Log Message:
  -----------
  target/avr: Add instruction translation - Branch Instructions

This includes:
    - RJMP, IJMP, EIJMP, JMP
    - RCALL, ICALL, EICALL, CALL
    - RET, RETI
    - CPSE, CP, CPC, CPI
    - SBRC, SBRS, SBIC, SBIS
    - BRBC, BRBS

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-13-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 9732b024f79217fbc685895791c4897d14096ef3
      
https://github.com/qemu/qemu/commit/9732b024f79217fbc685895791c4897d14096ef3
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/insn.decode
    M target/avr/translate.c

  Log Message:
  -----------
  target/avr: Add instruction translation - Data Transfer Instructions

This includes:
    - MOV, MOVW
    - LDI, LDS LDX LDY LDZ
    - LDDY, LDDZ
    - STS, STX STY STZ
    - STDY, STDZ
    - LPM, LPMX
    - ELPM, ELPMX
    - SPM, SPMX
    - IN, OUT
    - PUSH, POP
    - XCH
    - LAS, LAC LAT

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-14-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 5718cef05a0fe306646dd0481eb6ccf4fef3979e
      
https://github.com/qemu/qemu/commit/5718cef05a0fe306646dd0481eb6ccf4fef3979e
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/insn.decode
    M target/avr/translate.c

  Log Message:
  -----------
  target/avr: Add instruction translation - Bit and Bit-test Instructions

This includes:
    - LSR, ROR
    - ASR
    - SWAP
    - SBI, CBI
    - BST, BLD
    - BSET, BCLR

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-15-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 46188cabae4a13add28493f85b0f65ddde3ead41
      
https://github.com/qemu/qemu/commit/46188cabae4a13add28493f85b0f65ddde3ead41
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/insn.decode
    M target/avr/translate.c

  Log Message:
  -----------
  target/avr: Add instruction translation - MCU Control Instructions

This includes:
    - BREAK
    - NOP
    - SLEEP
    - WDR

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-16-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 9baade8d3be8506daa9962ce54d39e25b2b220f1
      
https://github.com/qemu/qemu/commit/9baade8d3be8506daa9962ce54d39e25b2b220f1
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/translate.c

  Log Message:
  -----------
  target/avr: Add instruction translation - CPU main translation function

Add the core of translation mechanism.

Co-developed-by: Richard Henderson <richard.henderson@linaro.org>
Co-developed-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-17-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: a107fdb07264098295af806706001f62d39fdddd
      
https://github.com/qemu/qemu/commit/a107fdb07264098295af806706001f62d39fdddd
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/translate.c

  Log Message:
  -----------
  target/avr: Initialize TCG register variables

Initialize TCG register variables.

Co-developed-by: Richard Henderson <richard.henderson@linaro.org>
Co-developed-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-18-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 9d8caa67a24ea4375a6dd110d8e7704acb1c8030
      
https://github.com/qemu/qemu/commit/9d8caa67a24ea4375a6dd110d8e7704acb1c8030
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/cpu.c
    M target/avr/cpu.h
    A target/avr/disas.c
    M target/avr/translate.c

  Log Message:
  -----------
  target/avr: Add support for disassembling via option '-d in_asm'

Provide function disassembles executed instruction when '-d in_asm' is
provided.

Example:

$ qemu-system-avr -bios free-rtos/Demo/AVR_ATMega2560_GCC/demo.elf -d in_asm
    ...
    IN:
    0x0000014a:  CALL      0x3808

    IN: main
    0x00003808:  CALL      0x4b4

    IN: vParTestInitialise
    0x000004b4:  LDI       r24, 255
    0x000004b6:  STS       r24, 0
    0x000004b8:  MULS      r16, r20
    0x000004ba:  OUT       $1, r24
    0x000004bc:  LDS       r24, 0
    0x000004be:  MULS      r16, r20
    0x000004c0:  OUT       $2, r24
    0x000004c2:  RET
    ...

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Suggested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
[rth: Fix spacing and const mnemonic arrays]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-19-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 42f3ff001339e37df4f13b709d2db00a488ee45c
      
https://github.com/qemu/qemu/commit/42f3ff001339e37df4f13b709d2db00a488ee45c
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M MAINTAINERS
    M arch_init.c
    M configure
    A default-configs/avr-softmmu.mak
    M include/disas/dis-asm.h
    M include/sysemu/arch_init.h
    M qapi/machine.json
    A target/avr/Makefile.objs

  Log Message:
  -----------
  target/avr: Register AVR support with the rest of QEMU

Add AVR related definitions into QEMU, make AVR support buildable.

[AM: Remove word 'Atmel' from filenames and all elements of code]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-23-huth@tuxfamily.org>
[PMD: Fixed @avr tag in qapi/machine.json]
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 754cea8c4e5e1dea6465fa7a13077ecbf0e03f08
      
https://github.com/qemu/qemu/commit/754cea8c4e5e1dea6465fa7a13077ecbf0e03f08
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M tests/qtest/machine-none-test.c

  Log Message:
  -----------
  tests/machine-none: Add AVR support

Add a single code line that will automatically provide
'machine none' test.

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-28-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 429ca9d6658019e27ee07e459a495f112f4dbb96
      
https://github.com/qemu/qemu/commit/429ca9d6658019e27ee07e459a495f112f4dbb96
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M MAINTAINERS
    M hw/char/Kconfig
    M hw/char/Makefile.objs
    A hw/char/avr_usart.c
    A include/hw/char/avr_usart.h

  Log Message:
  -----------
  hw/char: avr: Add limited support for USART peripheral

These were designed to facilitate testing but should provide enough
function to be useful in other contexts.  Only a subset of the functions
of each peripheral is implemented, mainly due to the lack of a standard
way to handle electrical connections (like GPIO pins).

[AM: Remove word 'Atmel' from filenames and all elements of code]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[rth: Squash I/O size fix and file rename from f4bug]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-20-huth@tuxfamily.org>


  Commit: 8ff47bc1a0c798141479530bf9cb3836b49fc5e1
      
https://github.com/qemu/qemu/commit/8ff47bc1a0c798141479530bf9cb3836b49fc5e1
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M MAINTAINERS
    M hw/timer/Kconfig
    M hw/timer/Makefile.objs
    A hw/timer/avr_timer16.c
    M hw/timer/trace-events
    A include/hw/timer/avr_timer16.h

  Log Message:
  -----------
  hw/timer: avr: Add limited support for 16-bit timer peripheral

These were designed to facilitate testing but should provide enough
function to be useful in other contexts.  Only a subset of the functions
of each peripheral is implemented, mainly due to the lack of a standard
way to handle electrical connections (like GPIO pins).

[AM: Remove word 'Atmel' from filenames and all elements of code]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Sarah Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Ed Robbins <E.J.C.Robbins@kent.ac.uk>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[rth: Squash info mtree fixes and a file rename from f4bug]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
[PMD: Use qemu_log_mask(LOG_UNIMP), replace goto by return]
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-21-huth@tuxfamily.org>
[PMD: Check cpu-frequency-hz property in realize()]
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: dc288de082a3e4e6970737fde2286bfc1d5ab9d7
      
https://github.com/qemu/qemu/commit/dc288de082a3e4e6970737fde2286bfc1d5ab9d7
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M MAINTAINERS
    M hw/misc/Kconfig
    M hw/misc/Makefile.objs
    A hw/misc/avr_power.c
    M hw/misc/trace-events
    A include/hw/misc/avr_power.h

  Log Message:
  -----------
  hw/misc: avr: Add limited support for power reduction device

This is a simple device of just one register, and whenever this
register is written to it calls qemu_set_irq function for each
of 8 bits/IRQs. It is used to implement AVR Power Reduction.

[AM: Remove word 'Atmel' from filenames and all elements of code]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[rth: Squash include fix and file rename from f4bug]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-22-huth@tuxfamily.org>


  Commit: 7dd8f6fde417a7625de15cd759a79988f09aae0d
      
https://github.com/qemu/qemu/commit/7dd8f6fde417a7625de15cd759a79988f09aae0d
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M MAINTAINERS
    A hw/avr/Makefile.objs
    A hw/avr/boot.c
    A hw/avr/boot.h
    M include/elf.h

  Log Message:
  -----------
  hw/avr: Add support for loading ELF/raw binaries

Add avr_load_firmware() function to load firmware in ELF or
raw binary format.

[AM: Corrected the type of the variable containing e_flags]
[AM: Moved definition of e_flags conversion function to boot.c]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Reviewed-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-24-huth@tuxfamily.org>
[PMD: Replace load_image_targphys() by load_image_mr()]
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: af55b781aaf2f50a00869a0c9fdab521f8ba78ea
      
https://github.com/qemu/qemu/commit/af55b781aaf2f50a00869a0c9fdab521f8ba78ea
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    A hw/avr/Kconfig
    M hw/avr/Makefile.objs
    A hw/avr/atmega.c
    A hw/avr/atmega.h

  Log Message:
  -----------
  hw/avr: Add some ATmega microcontrollers

Add some AVR microcontrollers from the ATmega family:

  - middle range: ATmega168 and ATmega328
  - high range: ATmega1280 and ATmega2560

For product comparison:
  https://www.microchip.com/wwwproducts/ProductCompare/ATmega168P/ATmega328P
  https://www.microchip.com/wwwproducts/ProductCompare/ATmega1280/ATmega2560

Datasheets:
  
http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf
  
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf

[AM: Remove word 'Atmel' from filenames and all elements of code]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
[thuth: Rebased to master, fixed object_initialize_child() calls etc.]
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-25-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: 50486d63fba7451b7a04bf85cec61369391a90c6
      
https://github.com/qemu/qemu/commit/50486d63fba7451b7a04bf85cec61369391a90c6
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M MAINTAINERS
    M default-configs/avr-softmmu.mak
    M hw/Kconfig
    M hw/avr/Kconfig
    M hw/avr/Makefile.objs
    A hw/avr/arduino.c

  Log Message:
  -----------
  hw/avr: Add limited support for some Arduino boards

Arduino boards are build with AVR chipsets. Add some of these
boards:

  - Arduino Duemilanove
  - Arduino Uno
  - Arduino Mega

For more information:
  https://www.arduino.cc/en/Main/Products
  https://store.arduino.cc/arduino-genuino/most-popular

[AM: Remove word 'Atmel' from filenames and all elements of code]
Suggested-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Joaquin de Andres <me@xcancerberox.com.ar>
[thuth: sysbus_init_child_obj() ==> object_initialize_child()]
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-26-huth@tuxfamily.org>


  Commit: 36838e5f7827fc81b406659c4cf6fcfb01c3c2f8
      
https://github.com/qemu/qemu/commit/36838e5f7827fc81b406659c4cf6fcfb01c3c2f8
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M tests/qtest/Makefile.include
    M tests/qtest/boot-serial-test.c

  Log Message:
  -----------
  tests/boot-serial: Test some Arduino boards (AVR based)

Print out 'T' through serial port.

The Arduino Duemilanove is based on a AVR5 CPU, while the
Arduino MEGA2560 on a AVR6 CPU.

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[rth: Squash Arduino adjustments from f4bug]
Tested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-29-huth@tuxfamily.org>


  Commit: f5d31d6541ca0943d564d061a6764d1cb8b8024e
      
https://github.com/qemu/qemu/commit/f5d31d6541ca0943d564d061a6764d1cb8b8024e
  Author: Michael Rolnik <mrolnik@gmail.com>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M MAINTAINERS
    A tests/acceptance/machine_avr6.py

  Log Message:
  -----------
  tests/acceptance: Test the Arduino MEGA2560 board

The test is based on
https://github.com/seharris/qemu-avr-tests/tree/master/free-rtos/Demo
demo which. If working correctly, prints 'ABCDEFGHIJKLMNOPQRSTUVWX' out.
it also demostrates that timer and IRQ are working

As the path name demonstrates, the FreeRTOS tests target a
board based on a ATMega2560 MCU. We have one, the Arduino
MEGA2560.

Complementary documentation:

https://feilipu.me/2012/01/15/ethermega-arduino-mega-2560-and-freertos/
https://feilipu.me/2015/11/24/arduino_freertos/ (see 'Compatibility')

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[rth: Squash multiple avocado fixups from f4bug]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Tested-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>


  Commit: c0a659f9de8230289f6d1906b6a24c7d228c12de
      
https://github.com/qemu/qemu/commit/c0a659f9de8230289f6d1906b6a24c7d228c12de
  Author: Thomas Huth <huth@tuxfamily.org>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    A docs/system/target-avr.rst
    M docs/system/targets.rst

  Log Message:
  -----------
  target/avr: Add section into QEMU documentation

The new section explains basic ways of using AVR target in QEMU.

Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
[thuth: Converted doc from texi to Sphinx syntax]
Signed-off-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20200705140315.260514-31-huth@tuxfamily.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


  Commit: a291bc851d482907d643db990b70c1cdb98c730a
      
https://github.com/qemu/qemu/commit/a291bc851d482907d643db990b70c1cdb98c730a
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/cpu.c

  Log Message:
  -----------
  target/avr/cpu: Drop tlb_flush() in avr_cpu_reset()

Since commit 1f5c00cfdb tlb_flush() is called from cpu_common_reset().

Reviewed-by: Thomas Huth <huth@tuxfamily.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20200707070021.10031-2-f4bug@amsat.org>


  Commit: 2e34e622c2cbda6828bbb395b6bdd4e0240b8217
      
https://github.com/qemu/qemu/commit/2e34e622c2cbda6828bbb395b6bdd4e0240b8217
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/cpu.c

  Log Message:
  -----------
  target/avr/cpu: Fix $PC displayed address

$PC is 16-bit wide. Other registers display addresses on a byte
granularity.
To have a coherent ouput, display $PC using byte granularity too.

Reviewed-by: Thomas Huth <huth@tuxfamily.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20200707070021.10031-3-f4bug@amsat.org>


  Commit: 19b293472f1514b5424ef4d9b092e02bd9b106c2
      
https://github.com/qemu/qemu/commit/19b293472f1514b5424ef4d9b092e02bd9b106c2
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M target/avr/disas.c

  Log Message:
  -----------
  target/avr/disas: Fix store instructions display order

While LOAD instructions use the target register as first
argument, STORE instructions use it as second argument:

  LD Rd, X        // Rd <- (X)

  ST Y, Rd        // (Y) <- Rr

Reported-by: Joaquin de Andres <me@xcancerberox.com.ar>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20200707070021.10031-4-f4bug@amsat.org>


  Commit: d34498309cff7560ac90c422c56e3137e6a64b19
      
https://github.com/qemu/qemu/commit/d34498309cff7560ac90c422c56e3137e6a64b19
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-11 (Sat, 11 Jul 2020)

  Changed paths:
    M MAINTAINERS
    M configure
    A default-configs/avr-softmmu.mak
    A docs/system/target-avr.rst
    M docs/system/targets.rst
    A gdb-xml/avr-cpu.xml
    M hw/Kconfig
    A hw/avr/Kconfig
    A hw/avr/Makefile.objs
    A hw/avr/arduino.c
    A hw/avr/atmega.c
    A hw/avr/atmega.h
    A hw/avr/boot.c
    A hw/avr/boot.h
    M hw/char/Kconfig
    M hw/char/Makefile.objs
    A hw/char/avr_usart.c
    M hw/misc/Kconfig
    M hw/misc/Makefile.objs
    A hw/misc/avr_power.c
    M hw/misc/trace-events
    M hw/timer/Kconfig
    M hw/timer/Makefile.objs
    A hw/timer/avr_timer16.c
    M hw/timer/trace-events
    M include/disas/dis-asm.h
    M include/elf.h
    A include/hw/char/avr_usart.h
    A include/hw/misc/avr_power.h
    A include/hw/timer/avr_timer16.h
    M include/sysemu/arch_init.h
    M qapi/machine.json
    M softmmu/arch_init.c
    A target/avr/Makefile.objs
    A target/avr/cpu-param.h
    A target/avr/cpu-qom.h
    A target/avr/cpu.c
    A target/avr/cpu.h
    A target/avr/disas.c
    A target/avr/gdbstub.c
    A target/avr/helper.c
    A target/avr/helper.h
    A target/avr/insn.decode
    A target/avr/machine.c
    A target/avr/translate.c
    A tests/acceptance/machine_avr6.py
    M tests/qtest/Makefile.include
    M tests/qtest/boot-serial-test.c
    M tests/qtest/machine-none-test.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/philmd-gitlab/tags/avr-port-20200711' 
into staging

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é 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

Tests included:

$ avocado --show=app run -t arch:avr tests/acceptance/
Fetching asset from tests/acceptance/machine_avr6.py:AVR6Machine.test_freertos
 (1/1) tests/acceptance/machine_avr6.py:AVR6Machine.test_freertos: PASS (2.13 s)
RESULTS    : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB TIME   : 2.35 s

$ make check-qtest-avr
  TEST    check-qtest-avr: tests/qtest/boot-serial-test
  TEST    check-qtest-avr: tests/qtest/cdrom-test
  TEST    check-qtest-avr: tests/qtest/device-introspect-test
  TEST    check-qtest-avr: tests/qtest/machine-none-test
  TEST    check-qtest-avr: tests/qtest/qmp-test
  TEST    check-qtest-avr: tests/qtest/qmp-cmd-test
  TEST    check-qtest-avr: tests/qtest/qom-test
  TEST    check-qtest-avr: tests/qtest/test-hmp
  TEST    check-qtest-avr: tests/qtest/qos-test

CI results:
. https://cirrus-ci.com/build/5697049146425344
. https://gitlab.com/philmd/qemu/-/pipelines/165328058
. https://travis-ci.org/github/philmd/qemu/builds/705817933
. https://app.shippable.com/github/philmd/qemu/runs/822/summary/console

# gpg: Signature made Sat 11 Jul 2020 10:03:11 BST
# gpg:                using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE
# gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org>" 
[full]
# Primary key fingerprint: FAAB E75E 1291 7221 DCFD  6BB2 E3E3 2C2C DEAD C0DE

* remotes/philmd-gitlab/tags/avr-port-20200711: (32 commits)
  target/avr/disas: Fix store instructions display order
  target/avr/cpu: Fix $PC displayed address
  target/avr/cpu: Drop tlb_flush() in avr_cpu_reset()
  target/avr: Add section into QEMU documentation
  tests/acceptance: Test the Arduino MEGA2560 board
  tests/boot-serial: Test some Arduino boards (AVR based)
  hw/avr: Add limited support for some Arduino boards
  hw/avr: Add some ATmega microcontrollers
  hw/avr: Add support for loading ELF/raw binaries
  hw/misc: avr: Add limited support for power reduction device
  hw/timer: avr: Add limited support for 16-bit timer peripheral
  hw/char: avr: Add limited support for USART peripheral
  tests/machine-none: Add AVR support
  target/avr: Register AVR support with the rest of QEMU
  target/avr: Add support for disassembling via option '-d in_asm'
  target/avr: Initialize TCG register variables
  target/avr: Add instruction translation - CPU main translation function
  target/avr: Add instruction translation - MCU Control Instructions
  target/avr: Add instruction translation - Bit and Bit-test Instructions
  target/avr: Add instruction translation - Data Transfer Instructions
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/2033cc6efa98...d34498309cff



reply via email to

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