On 1/31/20 1:03 AM, Aleksandar Markovic wrote:
From: Michael Rolnik <mrol...@gmail.com>

Add AVR related definitions into QEMU.

[AM: Remove word 'Atmel' from filenames and all elements of code]
Suggested-by: Aleksandar Markovic <aleksandar.m.m...@gmail.com>

Signed-off-by: Michael Rolnik <mrol...@gmail.com>
Tested-by: Philippe Mathieu-Daudé <phi...@redhat.com>
Reviewed-by: Aleksandar Markovic <amarko...@wavecomp.com>
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
Signed-off-by: Aleksandar Markovic <aleksandar.m.m...@gmail.com>
---
  arch_init.c                |  2 ++
  include/disas/dis-asm.h    | 19 +++++++++++++++++++
  include/sysemu/arch_init.h |  1 +
  qapi/machine.json          |  3 ++-
  4 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/arch_init.c b/arch_init.c
index 705d0b9..6a74116 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -89,6 +89,8 @@ int graphic_depth = 32;
  #define QEMU_ARCH QEMU_ARCH_UNICORE32
  #elif defined(TARGET_XTENSA)
  #define QEMU_ARCH QEMU_ARCH_XTENSA
+#elif defined(TARGET_AVR)
+#define QEMU_ARCH QEMU_ARCH_AVR
  #endif
const uint32_t arch_type = QEMU_ARCH;
diff --git a/include/disas/dis-asm.h b/include/disas/dis-asm.h
index f87f468..a36e658 100644
--- a/include/disas/dis-asm.h
+++ b/include/disas/dis-asm.h
@@ -211,6 +211,25 @@ enum bfd_architecture
  #define bfd_mach_m32r          0  /* backwards compatibility */
    bfd_arch_mn10200,    /* Matsushita MN10200 */
    bfd_arch_mn10300,    /* Matsushita MN10300 */
+  bfd_arch_avr,        /* AVR microcontrollers */
+#define bfd_mach_avr1       1
+#define bfd_mach_avr2       2
+#define bfd_mach_avr25      25
+#define bfd_mach_avr3       3
+#define bfd_mach_avr31      31
+#define bfd_mach_avr35      35
+#define bfd_mach_avr4       4
+#define bfd_mach_avr5       5
+#define bfd_mach_avr51      51
+#define bfd_mach_avr6       6
+#define bfd_mach_avrtiny    100
+#define bfd_mach_avrxmega1  101
+#define bfd_mach_avrxmega2  102
+#define bfd_mach_avrxmega3  103
+#define bfd_mach_avrxmega4  104
+#define bfd_mach_avrxmega5  105
+#define bfd_mach_avrxmega6  106
+#define bfd_mach_avrxmega7  107

I think the changes in include/disas/dis-asm.h should go in patch #6 "target/avr: Add defintions of AVR core types" where the definitions are used:

const char *avr_flags_to_cpu_type(uint32_t flags, const char *def_cpu_type)
  {
      switch (flags & EF_AVR_MACH) {
      case bfd_mach_avr1:
          return AVR_CPU_TYPE_NAME("avr1");

    bfd_arch_cris,       /* Axis CRIS */
  #define bfd_mach_cris_v0_v10   255
  #define bfd_mach_cris_v32      32
diff --git a/include/sysemu/arch_init.h b/include/sysemu/arch_init.h
index 62c6fe4..893df26 100644
--- a/include/sysemu/arch_init.h
+++ b/include/sysemu/arch_init.h
@@ -24,6 +24,7 @@ enum {
      QEMU_ARCH_NIOS2 = (1 << 17),
      QEMU_ARCH_HPPA = (1 << 18),
      QEMU_ARCH_RISCV = (1 << 19),
+    QEMU_ARCH_AVR = (1 << 20),
  };
extern const uint32_t arch_type;
diff --git a/qapi/machine.json b/qapi/machine.json
index b3d30bc..f2dc385 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -21,11 +21,12 @@
  #        is true even for "qemu-system-x86_64".
  #
  # ppcemb: dropped in 3.1
+# avr: since 5.0
  #
  # Since: 3.0
  ##
  { 'enum' : 'SysEmuTarget',
-  'data' : [ 'aarch64', 'alpha', 'arm', 'cris', 'hppa', 'i386', 'lm32',
+  'data' : [ 'aarch64', 'alpha', 'arm', 'avr', 'cris', 'hppa', 'i386', 'lm32',
               'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64',
               'mips64el', 'mipsel', 'moxie', 'nios2', 'or1k', 'ppc',
               'ppc64', 'riscv32', 'riscv64', 's390x', 'sh4',



Reply via email to