qemu-doc.texi | 51 + configure | 7 + default-configs/avr-softmmu.mak | 5 + qapi/machine.json | 3 +- hw/avr/atmel_atmega.h | 48 + hw/avr/boot.h | 33 + include/disas/dis-asm.h | 19 + include/elf.h | 2 + include/hw/char/atmel_usart.h | 93 + include/hw/elf_ops.h | 6 +- include/hw/loader.h | 6 +- include/hw/misc/atmel_power.h | 46 + include/hw/timer/atmel_timer16.h | 94 + include/sysemu/arch_init.h | 1 + target/avr/cpu-param.h | 37 + target/avr/cpu-qom.h | 54 + target/avr/cpu.h | 259 +++ target/avr/helper.h | 29 + arch_init.c | 2 + hw/avr/arduino.c | 151 ++ hw/avr/atmel_atmega.c | 470 +++++ hw/avr/boot.c | 74 + hw/char/atmel_usart.c | 320 ++++ hw/core/loader.c | 15 +- hw/misc/atmel_power.c | 112 ++ hw/riscv/boot.c | 2 +- hw/timer/atmel_timer16.c | 605 ++++++ target/avr/cpu.c | 826 ++++++++ target/avr/disas.c | 246 +++ target/avr/gdbstub.c | 84 + target/avr/helper.c | 347 ++++ target/avr/machine.c | 121 ++ target/avr/translate.c | 2997 ++++++++++++++++++++++++++++++ tests/qtest/boot-serial-test.c | 11 + tests/qtest/machine-none-test.c | 1 + .travis.yml | 2 +- MAINTAINERS | 30 + gdb-xml/avr-cpu.xml | 49 + 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/timer/Kconfig | 3 + hw/timer/Makefile.objs | 2 + target/avr/Makefile.objs | 34 + target/avr/insn.decode | 182 ++ tests/acceptance/machine_avr6.py | 50 + tests/qtest/Makefile.include | 2 + 50 files changed, 7539 insertions(+), 13 deletions(-) create mode 100644 default-configs/avr-softmmu.mak create mode 100644 hw/avr/atmel_atmega.h create mode 100644 hw/avr/boot.h create mode 100644 include/hw/char/atmel_usart.h create mode 100644 include/hw/misc/atmel_power.h create mode 100644 include/hw/timer/atmel_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 hw/avr/arduino.c create mode 100644 hw/avr/atmel_atmega.c create mode 100644 hw/avr/boot.c create mode 100644 hw/char/atmel_usart.c create mode 100644 hw/misc/atmel_power.c create mode 100644 hw/timer/atmel_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 target/avr/insn.decode create mode 100644 tests/acceptance/machine_avr6.py
This is the AVR port from Michael release (merge) candidate 2.
Since v1 [1]:
- Addressed Thomas comments
- Fixed a non-critical bug in ATmega (incorrect SRAM base address)
- Added ELF parsing requested by Aleksandar
- Dropped default machine (as with the ARM port)
Change since rc1:
$ git backport-diff -u avr-rc1 -r origin/master..
Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
001/25:[----] [--] 'target/avr: Add outward facing interfaces and core CPU logic'
002/25:[----] [--] 'target/avr: Add instruction helpers'
003/25:[----] [--] 'target/avr: Add instruction translation - Registers definition'
004/25:[----] [--] 'target/avr: Add instruction translation - Arithmetic and Logic Instructions'
005/25:[----] [--] 'target/avr: Add instruction translation - Branch Instructions'
006/25:[----] [--] 'target/avr: Add instruction translation - Data Transfer Instructions'
007/25:[----] [--] 'target/avr: Add instruction translation - Bit and Bit-test Instructions'
008/25:[----] [--] 'target/avr: Add instruction translation - MCU Control Instructions'
009/25:[----] [--] 'target/avr: Add instruction translation - CPU main translation function'
010/25:[----] [--] 'target/avr: Add instruction disassembly function'
011/25:[----] [--] 'hw/char: Add limited support for Atmel USART peripheral'
012/25:[0045] [FC] 'hw/timer: Add limited support for Atmel 16 bit timer peripheral'
013/25:[----] [--] 'hw/misc: Add Atmel power device'
014/25:[0024] [FC] 'target/avr: Add section about AVR into QEMU documentation'
015/25:[----] [--] 'target/avr: Register AVR support with the rest of QEMU'
016/25:[----] [--] 'target/avr: Add machine none test'
017/25:[0002] [FC] 'target/avr: Update MAINTAINERS file'
018/25:[down] 'hw/core/loader: Let load_elf populate the processor-specific flags'
019/25:[down] 'hw/avr: Add helper to load raw/ELF firmware binaries'
020/25:[0015] [FC] 'hw/avr: Add some ATmega microcontrollers'
021/25:[0040] [FC] 'hw/avr: Add some Arduino boards'
022/25:[----] [--] 'target/avr: Update build system'
023/25:[----] [--] 'tests/boot-serial-test: Test some Arduino boards (AVR based)'
024/25:[----] [--] 'tests/acceptance: Test the Arduino MEGA2560 board'
025/25:[----] [--] '.travis.yml: Run the AVR acceptance tests'
Repo: https://gitlab.com/philmd/qemu/commits/avr-rc2
[1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg672926.html
Supersedes: <20200123000307.11541-1-richard.henderson@linaro.org>
Michael Rolnik (20):
target/avr: Add outward facing interfaces and core CPU logic
target/avr: Add instruction helpers
target/avr: Add instruction translation - Registers definition
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: Add instruction disassembly function
hw/char: Add limited support for Atmel USART peripheral
hw/timer: Add limited support for Atmel 16 bit timer peripheral
hw/misc: Add Atmel power device
target/avr: Add section about AVR into QEMU documentation
target/avr: Register AVR support with the rest of QEMU
target/avr: Add machine none test
target/avr: Update MAINTAINERS file
target/avr: Update build system
tests/boot-serial-test: Test some Arduino boards (AVR based)
tests/acceptance: Test the Arduino MEGA2560 board
Philippe Mathieu-Daudé (5):
hw/core/loader: Let load_elf populate the processor-specific flags
hw/avr: Add helper to load raw/ELF firmware binaries
hw/avr: Add some ATmega microcontrollers
hw/avr: Add some Arduino boards
.travis.yml: Run the AVR acceptance tests
qemu-doc.texi | 51 +
configure | 7 +
default-configs/avr-softmmu.mak | 5 +
qapi/machine.json | 3 +-
hw/avr/atmel_atmega.h | 48 +
hw/avr/boot.h | 33 +
include/disas/dis-asm.h | 19 +
include/elf.h | 2 +
include/hw/char/atmel_usart.h | 93 +
include/hw/elf_ops.h | 6 +-
include/hw/loader.h | 6 +-
include/hw/misc/atmel_power.h | 46 +
include/hw/timer/atmel_timer16.h | 94 +
include/sysemu/arch_init.h | 1 +
target/avr/cpu-param.h | 37 +
target/avr/cpu-qom.h | 54 +
target/avr/cpu.h | 259 +++
target/avr/helper.h | 29 +
arch_init.c | 2 +
hw/avr/arduino.c | 151 ++
hw/avr/atmel_atmega.c | 470 +++++
hw/avr/boot.c | 74 +
hw/char/atmel_usart.c | 320 ++++
hw/core/loader.c | 15 +-
hw/misc/atmel_power.c | 112 ++
hw/riscv/boot.c | 2 +-
hw/timer/atmel_timer16.c | 605 ++++++
target/avr/cpu.c | 826 ++++++++
target/avr/disas.c | 246 +++
target/avr/gdbstub.c | 84 +
target/avr/helper.c | 347 ++++
target/avr/machine.c | 121 ++
target/avr/translate.c | 2997 ++++++++++++++++++++++++++++++
tests/qtest/boot-serial-test.c | 11 +
tests/qtest/machine-none-test.c | 1 +
.travis.yml | 2 +-
MAINTAINERS | 30 +
gdb-xml/avr-cpu.xml | 49 +
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/timer/Kconfig | 3 +
hw/timer/Makefile.objs | 2 +
target/avr/Makefile.objs | 34 +
target/avr/insn.decode | 182 ++
tests/acceptance/machine_avr6.py | 50 +
tests/qtest/Makefile.include | 2 +
50 files changed, 7539 insertions(+), 13 deletions(-)
create mode 100644 default-configs/avr-softmmu.mak
create mode 100644 hw/avr/atmel_atmega.h
create mode 100644 hw/avr/boot.h
create mode 100644 include/hw/char/atmel_usart.h
create mode 100644 include/hw/misc/atmel_power.h
create mode 100644 include/hw/timer/atmel_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 hw/avr/arduino.c
create mode 100644 hw/avr/atmel_atmega.c
create mode 100644 hw/avr/boot.c
create mode 100644 hw/char/atmel_usart.c
create mode 100644 hw/misc/atmel_power.c
create mode 100644 hw/timer/atmel_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 target/avr/insn.decode
create mode 100644 tests/acceptance/machine_avr6.py
--
2.21.1
On Fri, Jan 24, 2020 at 1:51 AM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: > > This is the AVR port from Michael release (merge) candidate 2. > > Since v1 [1]: > - Addressed Thomas comments > - Fixed a non-critical bug in ATmega (incorrect SRAM base address) > - Added ELF parsing requested by Aleksandar > - Dropped default machine (as with the ARM port) > > Change since rc1: > > $ git backport-diff -u avr-rc1 -r origin/master.. > Key: > [----] : patches are identical > [####] : number of functional differences between upstream/downstream patch > [down] : patch is downstream-only > The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively > > 001/25:[----] [--] 'target/avr: Add outward facing interfaces and core CPU logic' > 002/25:[----] [--] 'target/avr: Add instruction helpers' > 003/25:[----] [--] 'target/avr: Add instruction translation - Registers definition' > 004/25:[----] [--] 'target/avr: Add instruction translation - Arithmetic and Logic Instructions' > 005/25:[----] [--] 'target/avr: Add instruction translation - Branch Instructions' > 006/25:[----] [--] 'target/avr: Add instruction translation - Data Transfer Instructions' > 007/25:[----] [--] 'target/avr: Add instruction translation - Bit and Bit-test Instructions' > 008/25:[----] [--] 'target/avr: Add instruction translation - MCU Control Instructions' > 009/25:[----] [--] 'target/avr: Add instruction translation - CPU main translation function' > 010/25:[----] [--] 'target/avr: Add instruction disassembly function' > 011/25:[----] [--] 'hw/char: Add limited support for Atmel USART peripheral' > 012/25:[0045] [FC] 'hw/timer: Add limited support for Atmel 16 bit timer peripheral' > 013/25:[----] [--] 'hw/misc: Add Atmel power device' > 014/25:[0024] [FC] 'target/avr: Add section about AVR into QEMU documentation' > 015/25:[----] [--] 'target/avr: Register AVR support with the rest of QEMU' > 016/25:[----] [--] 'target/avr: Add machine none test' > 017/25:[0002] [FC] 'target/avr: Update MAINTAINERS file' > 018/25:[down] 'hw/core/loader: Let load_elf populate the processor-specific flags' > 019/25:[down] 'hw/avr: Add helper to load raw/ELF firmware binaries' > 020/25:[0015] [FC] 'hw/avr: Add some ATmega microcontrollers' > 021/25:[0040] [FC] 'hw/avr: Add some Arduino boards' Patchew can be used to quickly visualize the few changes: https://patchew.org/QEMU/20200123000307.11541-1-richard.henderson@linaro.org/diff/20200124005131.16276-1-f4bug@amsat.org/ > 022/25:[----] [--] 'target/avr: Update build system' > 023/25:[----] [--] 'tests/boot-serial-test: Test some Arduino boards (AVR based)' > 024/25:[----] [--] 'tests/acceptance: Test the Arduino MEGA2560 board' > 025/25:[----] [--] '.travis.yml: Run the AVR acceptance tests' > > Repo: https://gitlab.com/philmd/qemu/commits/avr-rc2 > > [1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg672926.html > Supersedes: <20200123000307.11541-1-richard.henderson@linaro.org> > > Michael Rolnik (20): > target/avr: Add outward facing interfaces and core CPU logic > target/avr: Add instruction helpers > target/avr: Add instruction translation - Registers definition > 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: Add instruction disassembly function > hw/char: Add limited support for Atmel USART peripheral > hw/timer: Add limited support for Atmel 16 bit timer peripheral > hw/misc: Add Atmel power device > target/avr: Add section about AVR into QEMU documentation > target/avr: Register AVR support with the rest of QEMU > target/avr: Add machine none test > target/avr: Update MAINTAINERS file > target/avr: Update build system > tests/boot-serial-test: Test some Arduino boards (AVR based) > tests/acceptance: Test the Arduino MEGA2560 board > > Philippe Mathieu-Daudé (5): > hw/core/loader: Let load_elf populate the processor-specific flags > hw/avr: Add helper to load raw/ELF firmware binaries > hw/avr: Add some ATmega microcontrollers > hw/avr: Add some Arduino boards > .travis.yml: Run the AVR acceptance tests > > qemu-doc.texi | 51 + > configure | 7 + > default-configs/avr-softmmu.mak | 5 + > qapi/machine.json | 3 +- > hw/avr/atmel_atmega.h | 48 + > hw/avr/boot.h | 33 + > include/disas/dis-asm.h | 19 + > include/elf.h | 2 + > include/hw/char/atmel_usart.h | 93 + > include/hw/elf_ops.h | 6 +- > include/hw/loader.h | 6 +- > include/hw/misc/atmel_power.h | 46 + > include/hw/timer/atmel_timer16.h | 94 + > include/sysemu/arch_init.h | 1 + > target/avr/cpu-param.h | 37 + > target/avr/cpu-qom.h | 54 + > target/avr/cpu.h | 259 +++ > target/avr/helper.h | 29 + > arch_init.c | 2 + > hw/avr/arduino.c | 151 ++ > hw/avr/atmel_atmega.c | 470 +++++ > hw/avr/boot.c | 74 + > hw/char/atmel_usart.c | 320 ++++ > hw/core/loader.c | 15 +- > hw/misc/atmel_power.c | 112 ++ > hw/riscv/boot.c | 2 +- > hw/timer/atmel_timer16.c | 605 ++++++ > target/avr/cpu.c | 826 ++++++++ > target/avr/disas.c | 246 +++ > target/avr/gdbstub.c | 84 + > target/avr/helper.c | 347 ++++ > target/avr/machine.c | 121 ++ > target/avr/translate.c | 2997 ++++++++++++++++++++++++++++++ > tests/qtest/boot-serial-test.c | 11 + > tests/qtest/machine-none-test.c | 1 + > .travis.yml | 2 +- > MAINTAINERS | 30 + > gdb-xml/avr-cpu.xml | 49 + > 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/timer/Kconfig | 3 + > hw/timer/Makefile.objs | 2 + > target/avr/Makefile.objs | 34 + > target/avr/insn.decode | 182 ++ > tests/acceptance/machine_avr6.py | 50 + > tests/qtest/Makefile.include | 2 + > 50 files changed, 7539 insertions(+), 13 deletions(-) > create mode 100644 default-configs/avr-softmmu.mak > create mode 100644 hw/avr/atmel_atmega.h > create mode 100644 hw/avr/boot.h > create mode 100644 include/hw/char/atmel_usart.h > create mode 100644 include/hw/misc/atmel_power.h > create mode 100644 include/hw/timer/atmel_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 hw/avr/arduino.c > create mode 100644 hw/avr/atmel_atmega.c > create mode 100644 hw/avr/boot.c > create mode 100644 hw/char/atmel_usart.c > create mode 100644 hw/misc/atmel_power.c > create mode 100644 hw/timer/atmel_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 target/avr/insn.decode > create mode 100644 tests/acceptance/machine_avr6.py > > -- > 2.21.1 >
On 24/01/2020 01.51, Philippe Mathieu-Daudé wrote: > This is the AVR port from Michael release (merge) candidate 2. > > Since v1 [1]: > - Addressed Thomas comments > - Fixed a non-critical bug in ATmega (incorrect SRAM base address) > - Added ELF parsing requested by Aleksandar > - Dropped default machine (as with the ARM port) If you don't have a default machine, I'd expect to see a change to tests/qemu-iotests/check in the patchset. Please make sure that "make check" (i.e. "make check-block" in this case) continues to work if you run "configure" just with this single architecture (--target-list=avr-softmmu). Thanks, Thomas
Tested-by: Michael Rolnik <mrolnik@gmail.com> The only thing I want to change is instead of -kernel put -bios in qemu-doc.texi file. Should I send a new series? On Fri, Jan 24, 2020 at 2:51 AM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: > This is the AVR port from Michael release (merge) candidate 2. > > Since v1 [1]: > - Addressed Thomas comments > - Fixed a non-critical bug in ATmega (incorrect SRAM base address) > - Added ELF parsing requested by Aleksandar > - Dropped default machine (as with the ARM port) > > Change since rc1: > > $ git backport-diff -u avr-rc1 -r origin/master.. > Key: > [----] : patches are identical > [####] : number of functional differences between upstream/downstream patch > [down] : patch is downstream-only > The flags [FC] indicate (F)unctional and (C)ontextual differences, > respectively > > 001/25:[----] [--] 'target/avr: Add outward facing interfaces and core CPU > logic' > 002/25:[----] [--] 'target/avr: Add instruction helpers' > 003/25:[----] [--] 'target/avr: Add instruction translation - Registers > definition' > 004/25:[----] [--] 'target/avr: Add instruction translation - Arithmetic > and Logic Instructions' > 005/25:[----] [--] 'target/avr: Add instruction translation - Branch > Instructions' > 006/25:[----] [--] 'target/avr: Add instruction translation - Data > Transfer Instructions' > 007/25:[----] [--] 'target/avr: Add instruction translation - Bit and > Bit-test Instructions' > 008/25:[----] [--] 'target/avr: Add instruction translation - MCU Control > Instructions' > 009/25:[----] [--] 'target/avr: Add instruction translation - CPU main > translation function' > 010/25:[----] [--] 'target/avr: Add instruction disassembly function' > 011/25:[----] [--] 'hw/char: Add limited support for Atmel USART > peripheral' > 012/25:[0045] [FC] 'hw/timer: Add limited support for Atmel 16 bit timer > peripheral' > 013/25:[----] [--] 'hw/misc: Add Atmel power device' > 014/25:[0024] [FC] 'target/avr: Add section about AVR into QEMU > documentation' > 015/25:[----] [--] 'target/avr: Register AVR support with the rest of QEMU' > 016/25:[----] [--] 'target/avr: Add machine none test' > 017/25:[0002] [FC] 'target/avr: Update MAINTAINERS file' > 018/25:[down] 'hw/core/loader: Let load_elf populate the > processor-specific flags' > 019/25:[down] 'hw/avr: Add helper to load raw/ELF firmware binaries' > 020/25:[0015] [FC] 'hw/avr: Add some ATmega microcontrollers' > 021/25:[0040] [FC] 'hw/avr: Add some Arduino boards' > 022/25:[----] [--] 'target/avr: Update build system' > 023/25:[----] [--] 'tests/boot-serial-test: Test some Arduino boards (AVR > based)' > 024/25:[----] [--] 'tests/acceptance: Test the Arduino MEGA2560 board' > 025/25:[----] [--] '.travis.yml: Run the AVR acceptance tests' > > Repo: https://gitlab.com/philmd/qemu/commits/avr-rc2 > > [1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg672926.html > Supersedes: <20200123000307.11541-1-richard.henderson@linaro.org> > > Michael Rolnik (20): > target/avr: Add outward facing interfaces and core CPU logic > target/avr: Add instruction helpers > target/avr: Add instruction translation - Registers definition > 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: Add instruction disassembly function > hw/char: Add limited support for Atmel USART peripheral > hw/timer: Add limited support for Atmel 16 bit timer peripheral > hw/misc: Add Atmel power device > target/avr: Add section about AVR into QEMU documentation > target/avr: Register AVR support with the rest of QEMU > target/avr: Add machine none test > target/avr: Update MAINTAINERS file > target/avr: Update build system > tests/boot-serial-test: Test some Arduino boards (AVR based) > tests/acceptance: Test the Arduino MEGA2560 board > > Philippe Mathieu-Daudé (5): > hw/core/loader: Let load_elf populate the processor-specific flags > hw/avr: Add helper to load raw/ELF firmware binaries > hw/avr: Add some ATmega microcontrollers > hw/avr: Add some Arduino boards > .travis.yml: Run the AVR acceptance tests > > qemu-doc.texi | 51 + > configure | 7 + > default-configs/avr-softmmu.mak | 5 + > qapi/machine.json | 3 +- > hw/avr/atmel_atmega.h | 48 + > hw/avr/boot.h | 33 + > include/disas/dis-asm.h | 19 + > include/elf.h | 2 + > include/hw/char/atmel_usart.h | 93 + > include/hw/elf_ops.h | 6 +- > include/hw/loader.h | 6 +- > include/hw/misc/atmel_power.h | 46 + > include/hw/timer/atmel_timer16.h | 94 + > include/sysemu/arch_init.h | 1 + > target/avr/cpu-param.h | 37 + > target/avr/cpu-qom.h | 54 + > target/avr/cpu.h | 259 +++ > target/avr/helper.h | 29 + > arch_init.c | 2 + > hw/avr/arduino.c | 151 ++ > hw/avr/atmel_atmega.c | 470 +++++ > hw/avr/boot.c | 74 + > hw/char/atmel_usart.c | 320 ++++ > hw/core/loader.c | 15 +- > hw/misc/atmel_power.c | 112 ++ > hw/riscv/boot.c | 2 +- > hw/timer/atmel_timer16.c | 605 ++++++ > target/avr/cpu.c | 826 ++++++++ > target/avr/disas.c | 246 +++ > target/avr/gdbstub.c | 84 + > target/avr/helper.c | 347 ++++ > target/avr/machine.c | 121 ++ > target/avr/translate.c | 2997 ++++++++++++++++++++++++++++++ > tests/qtest/boot-serial-test.c | 11 + > tests/qtest/machine-none-test.c | 1 + > .travis.yml | 2 +- > MAINTAINERS | 30 + > gdb-xml/avr-cpu.xml | 49 + > 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/timer/Kconfig | 3 + > hw/timer/Makefile.objs | 2 + > target/avr/Makefile.objs | 34 + > target/avr/insn.decode | 182 ++ > tests/acceptance/machine_avr6.py | 50 + > tests/qtest/Makefile.include | 2 + > 50 files changed, 7539 insertions(+), 13 deletions(-) > create mode 100644 default-configs/avr-softmmu.mak > create mode 100644 hw/avr/atmel_atmega.h > create mode 100644 hw/avr/boot.h > create mode 100644 include/hw/char/atmel_usart.h > create mode 100644 include/hw/misc/atmel_power.h > create mode 100644 include/hw/timer/atmel_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 hw/avr/arduino.c > create mode 100644 hw/avr/atmel_atmega.c > create mode 100644 hw/avr/boot.c > create mode 100644 hw/char/atmel_usart.c > create mode 100644 hw/misc/atmel_power.c > create mode 100644 hw/timer/atmel_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 target/avr/insn.decode > create mode 100644 tests/acceptance/machine_avr6.py > > -- > 2.21.1 > > -- Best Regards, Michael Rolnik
On 1/24/20 12:41 PM, Michael Rolnik wrote: > Tested-by: Michael Rolnik <mrolnik@gmail.com <mailto:mrolnik@gmail.com>> Thanks a lot! > The only thing I want to change is instead of -kernel put -bios in > qemu-doc.texi file. Should I send a new series? Please do NOT :) Richard can do the trivial fixup directly. > On Fri, Jan 24, 2020 at 2:51 AM Philippe Mathieu-Daudé <f4bug@amsat.org > <mailto:f4bug@amsat.org>> wrote: > > This is the AVR port from Michael release (merge) candidate 2. > > Since v1 [1]: > - Addressed Thomas comments > - Fixed a non-critical bug in ATmega (incorrect SRAM base address) > - Added ELF parsing requested by Aleksandar > - Dropped default machine (as with the ARM port) > > Change since rc1: > > $ git backport-diff -u avr-rc1 -r origin/master.. > Key: > [----] : patches are identical > [####] : number of functional differences between > upstream/downstream patch > [down] : patch is downstream-only > The flags [FC] indicate (F)unctional and (C)ontextual differences, > respectively > > 001/25:[----] [--] 'target/avr: Add outward facing interfaces and > core CPU logic' > 002/25:[----] [--] 'target/avr: Add instruction helpers' > 003/25:[----] [--] 'target/avr: Add instruction translation - > Registers definition' > 004/25:[----] [--] 'target/avr: Add instruction translation - > Arithmetic and Logic Instructions' > 005/25:[----] [--] 'target/avr: Add instruction translation - Branch > Instructions' > 006/25:[----] [--] 'target/avr: Add instruction translation - Data > Transfer Instructions' > 007/25:[----] [--] 'target/avr: Add instruction translation - Bit > and Bit-test Instructions' > 008/25:[----] [--] 'target/avr: Add instruction translation - MCU > Control Instructions' > 009/25:[----] [--] 'target/avr: Add instruction translation - CPU > main translation function' > 010/25:[----] [--] 'target/avr: Add instruction disassembly function' > 011/25:[----] [--] 'hw/char: Add limited support for Atmel USART > peripheral' > 012/25:[0045] [FC] 'hw/timer: Add limited support for Atmel 16 bit > timer peripheral' > 013/25:[----] [--] 'hw/misc: Add Atmel power device' > 014/25:[0024] [FC] 'target/avr: Add section about AVR into QEMU > documentation' > 015/25:[----] [--] 'target/avr: Register AVR support with the rest > of QEMU' > 016/25:[----] [--] 'target/avr: Add machine none test' > 017/25:[0002] [FC] 'target/avr: Update MAINTAINERS file' > 018/25:[down] 'hw/core/loader: Let load_elf populate the > processor-specific flags' > 019/25:[down] 'hw/avr: Add helper to load raw/ELF firmware > binaries' > 020/25:[0015] [FC] 'hw/avr: Add some ATmega microcontrollers' > 021/25:[0040] [FC] 'hw/avr: Add some Arduino boards' > 022/25:[----] [--] 'target/avr: Update build system' > 023/25:[----] [--] 'tests/boot-serial-test: Test some Arduino boards > (AVR based)' > 024/25:[----] [--] 'tests/acceptance: Test the Arduino MEGA2560 board' > 025/25:[----] [--] '.travis.yml: Run the AVR acceptance tests' > > Repo: https://gitlab.com/philmd/qemu/commits/avr-rc2 > > [1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg672926.html > Supersedes: <20200123000307.11541-1-richard.henderson@linaro.org > <mailto:20200123000307.11541-1-richard.henderson@linaro.org>> > > Michael Rolnik (20): > target/avr: Add outward facing interfaces and core CPU logic > target/avr: Add instruction helpers > target/avr: Add instruction translation - Registers definition > 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: Add instruction disassembly function > hw/char: Add limited support for Atmel USART peripheral > hw/timer: Add limited support for Atmel 16 bit timer peripheral > hw/misc: Add Atmel power device > target/avr: Add section about AVR into QEMU documentation > target/avr: Register AVR support with the rest of QEMU > target/avr: Add machine none test > target/avr: Update MAINTAINERS file > target/avr: Update build system > tests/boot-serial-test: Test some Arduino boards (AVR based) > tests/acceptance: Test the Arduino MEGA2560 board > > Philippe Mathieu-Daudé (5): > hw/core/loader: Let load_elf populate the processor-specific flags > hw/avr: Add helper to load raw/ELF firmware binaries > hw/avr: Add some ATmega microcontrollers > hw/avr: Add some Arduino boards > .travis.yml: Run the AVR acceptance tests > > qemu-doc.texi | 51 + > configure | 7 + > default-configs/avr-softmmu.mak | 5 + > qapi/machine.json | 3 +- > hw/avr/atmel_atmega.h | 48 + > hw/avr/boot.h | 33 + > include/disas/dis-asm.h | 19 + > include/elf.h | 2 + > include/hw/char/atmel_usart.h | 93 + > include/hw/elf_ops.h | 6 +- > include/hw/loader.h | 6 +- > include/hw/misc/atmel_power.h | 46 + > include/hw/timer/atmel_timer16.h | 94 + > include/sysemu/arch_init.h | 1 + > target/avr/cpu-param.h | 37 + > target/avr/cpu-qom.h | 54 + > target/avr/cpu.h | 259 +++ > target/avr/helper.h | 29 + > arch_init.c | 2 + > hw/avr/arduino.c | 151 ++ > hw/avr/atmel_atmega.c | 470 +++++ > hw/avr/boot.c | 74 + > hw/char/atmel_usart.c | 320 ++++ > hw/core/loader.c | 15 +- > hw/misc/atmel_power.c | 112 ++ > hw/riscv/boot.c | 2 +- > hw/timer/atmel_timer16.c | 605 ++++++ > target/avr/cpu.c | 826 ++++++++ > target/avr/disas.c | 246 +++ > target/avr/gdbstub.c | 84 + > target/avr/helper.c | 347 ++++ > target/avr/machine.c | 121 ++ > target/avr/translate.c | 2997 ++++++++++++++++++++++++++++++ > tests/qtest/boot-serial-test.c | 11 + > tests/qtest/machine-none-test.c | 1 + > .travis.yml | 2 +- > MAINTAINERS | 30 + > gdb-xml/avr-cpu.xml | 49 + > 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/timer/Kconfig | 3 + > hw/timer/Makefile.objs | 2 + > target/avr/Makefile.objs | 34 + > target/avr/insn.decode | 182 ++ > tests/acceptance/machine_avr6.py | 50 + > tests/qtest/Makefile.include | 2 + > 50 files changed, 7539 insertions(+), 13 deletions(-) > create mode 100644 default-configs/avr-softmmu.mak > create mode 100644 hw/avr/atmel_atmega.h > create mode 100644 hw/avr/boot.h > create mode 100644 include/hw/char/atmel_usart.h > create mode 100644 include/hw/misc/atmel_power.h > create mode 100644 include/hw/timer/atmel_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 hw/avr/arduino.c > create mode 100644 hw/avr/atmel_atmega.c > create mode 100644 hw/avr/boot.c > create mode 100644 hw/char/atmel_usart.c > create mode 100644 hw/misc/atmel_power.c > create mode 100644 hw/timer/atmel_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 target/avr/insn.decode > create mode 100644 tests/acceptance/machine_avr6.py > > -- > 2.21.1 > > > > -- > Best Regards, > Michael Rolnik
Just one patch attached.
Thanks.
On Fri, Jan 24, 2020 at 2:49 PM Philippe Mathieu-Daudé <philmd@redhat.com>
wrote:
> On 1/24/20 12:41 PM, Michael Rolnik wrote:
> > Tested-by: Michael Rolnik <mrolnik@gmail.com <mailto:mrolnik@gmail.com>>
>
> Thanks a lot!
>
> > The only thing I want to change is instead of -kernel put -bios in
> > qemu-doc.texi file. Should I send a new series?
>
> Please do NOT :)
>
> Richard can do the trivial fixup directly.
>
> > On Fri, Jan 24, 2020 at 2:51 AM Philippe Mathieu-Daudé <f4bug@amsat.org
> > <mailto:f4bug@amsat.org>> wrote:
> >
> > This is the AVR port from Michael release (merge) candidate 2.
> >
> > Since v1 [1]:
> > - Addressed Thomas comments
> > - Fixed a non-critical bug in ATmega (incorrect SRAM base address)
> > - Added ELF parsing requested by Aleksandar
> > - Dropped default machine (as with the ARM port)
> >
> > Change since rc1:
> >
> > $ git backport-diff -u avr-rc1 -r origin/master..
> > Key:
> > [----] : patches are identical
> > [####] : number of functional differences between
> > upstream/downstream patch
> > [down] : patch is downstream-only
> > The flags [FC] indicate (F)unctional and (C)ontextual differences,
> > respectively
> >
> > 001/25:[----] [--] 'target/avr: Add outward facing interfaces and
> > core CPU logic'
> > 002/25:[----] [--] 'target/avr: Add instruction helpers'
> > 003/25:[----] [--] 'target/avr: Add instruction translation -
> > Registers definition'
> > 004/25:[----] [--] 'target/avr: Add instruction translation -
> > Arithmetic and Logic Instructions'
> > 005/25:[----] [--] 'target/avr: Add instruction translation - Branch
> > Instructions'
> > 006/25:[----] [--] 'target/avr: Add instruction translation - Data
> > Transfer Instructions'
> > 007/25:[----] [--] 'target/avr: Add instruction translation - Bit
> > and Bit-test Instructions'
> > 008/25:[----] [--] 'target/avr: Add instruction translation - MCU
> > Control Instructions'
> > 009/25:[----] [--] 'target/avr: Add instruction translation - CPU
> > main translation function'
> > 010/25:[----] [--] 'target/avr: Add instruction disassembly function'
> > 011/25:[----] [--] 'hw/char: Add limited support for Atmel USART
> > peripheral'
> > 012/25:[0045] [FC] 'hw/timer: Add limited support for Atmel 16 bit
> > timer peripheral'
> > 013/25:[----] [--] 'hw/misc: Add Atmel power device'
> > 014/25:[0024] [FC] 'target/avr: Add section about AVR into QEMU
> > documentation'
> > 015/25:[----] [--] 'target/avr: Register AVR support with the rest
> > of QEMU'
> > 016/25:[----] [--] 'target/avr: Add machine none test'
> > 017/25:[0002] [FC] 'target/avr: Update MAINTAINERS file'
> > 018/25:[down] 'hw/core/loader: Let load_elf populate the
> > processor-specific flags'
> > 019/25:[down] 'hw/avr: Add helper to load raw/ELF firmware
> > binaries'
> > 020/25:[0015] [FC] 'hw/avr: Add some ATmega microcontrollers'
> > 021/25:[0040] [FC] 'hw/avr: Add some Arduino boards'
> > 022/25:[----] [--] 'target/avr: Update build system'
> > 023/25:[----] [--] 'tests/boot-serial-test: Test some Arduino boards
> > (AVR based)'
> > 024/25:[----] [--] 'tests/acceptance: Test the Arduino MEGA2560
> board'
> > 025/25:[----] [--] '.travis.yml: Run the AVR acceptance tests'
> >
> > Repo: https://gitlab.com/philmd/qemu/commits/avr-rc2
> >
> > [1]
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg672926.html
> > Supersedes: <20200123000307.11541-1-richard.henderson@linaro.org
> > <mailto:20200123000307.11541-1-richard.henderson@linaro.org>>
> >
> > Michael Rolnik (20):
> > target/avr: Add outward facing interfaces and core CPU logic
> > target/avr: Add instruction helpers
> > target/avr: Add instruction translation - Registers definition
> > 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: Add instruction disassembly function
> > hw/char: Add limited support for Atmel USART peripheral
> > hw/timer: Add limited support for Atmel 16 bit timer peripheral
> > hw/misc: Add Atmel power device
> > target/avr: Add section about AVR into QEMU documentation
> > target/avr: Register AVR support with the rest of QEMU
> > target/avr: Add machine none test
> > target/avr: Update MAINTAINERS file
> > target/avr: Update build system
> > tests/boot-serial-test: Test some Arduino boards (AVR based)
> > tests/acceptance: Test the Arduino MEGA2560 board
> >
> > Philippe Mathieu-Daudé (5):
> > hw/core/loader: Let load_elf populate the processor-specific flags
> > hw/avr: Add helper to load raw/ELF firmware binaries
> > hw/avr: Add some ATmega microcontrollers
> > hw/avr: Add some Arduino boards
> > .travis.yml: Run the AVR acceptance tests
> >
> > qemu-doc.texi | 51 +
> > configure | 7 +
> > default-configs/avr-softmmu.mak | 5 +
> > qapi/machine.json | 3 +-
> > hw/avr/atmel_atmega.h | 48 +
> > hw/avr/boot.h | 33 +
> > include/disas/dis-asm.h | 19 +
> > include/elf.h | 2 +
> > include/hw/char/atmel_usart.h | 93 +
> > include/hw/elf_ops.h | 6 +-
> > include/hw/loader.h | 6 +-
> > include/hw/misc/atmel_power.h | 46 +
> > include/hw/timer/atmel_timer16.h | 94 +
> > include/sysemu/arch_init.h | 1 +
> > target/avr/cpu-param.h | 37 +
> > target/avr/cpu-qom.h | 54 +
> > target/avr/cpu.h | 259 +++
> > target/avr/helper.h | 29 +
> > arch_init.c | 2 +
> > hw/avr/arduino.c | 151 ++
> > hw/avr/atmel_atmega.c | 470 +++++
> > hw/avr/boot.c | 74 +
> > hw/char/atmel_usart.c | 320 ++++
> > hw/core/loader.c | 15 +-
> > hw/misc/atmel_power.c | 112 ++
> > hw/riscv/boot.c | 2 +-
> > hw/timer/atmel_timer16.c | 605 ++++++
> > target/avr/cpu.c | 826 ++++++++
> > target/avr/disas.c | 246 +++
> > target/avr/gdbstub.c | 84 +
> > target/avr/helper.c | 347 ++++
> > target/avr/machine.c | 121 ++
> > target/avr/translate.c | 2997
> ++++++++++++++++++++++++++++++
> > tests/qtest/boot-serial-test.c | 11 +
> > tests/qtest/machine-none-test.c | 1 +
> > .travis.yml | 2 +-
> > MAINTAINERS | 30 +
> > gdb-xml/avr-cpu.xml | 49 +
> > 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/timer/Kconfig | 3 +
> > hw/timer/Makefile.objs | 2 +
> > target/avr/Makefile.objs | 34 +
> > target/avr/insn.decode | 182 ++
> > tests/acceptance/machine_avr6.py | 50 +
> > tests/qtest/Makefile.include | 2 +
> > 50 files changed, 7539 insertions(+), 13 deletions(-)
> > create mode 100644 default-configs/avr-softmmu.mak
> > create mode 100644 hw/avr/atmel_atmega.h
> > create mode 100644 hw/avr/boot.h
> > create mode 100644 include/hw/char/atmel_usart.h
> > create mode 100644 include/hw/misc/atmel_power.h
> > create mode 100644 include/hw/timer/atmel_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 hw/avr/arduino.c
> > create mode 100644 hw/avr/atmel_atmega.c
> > create mode 100644 hw/avr/boot.c
> > create mode 100644 hw/char/atmel_usart.c
> > create mode 100644 hw/misc/atmel_power.c
> > create mode 100644 hw/timer/atmel_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 target/avr/insn.decode
> > create mode 100644 tests/acceptance/machine_avr6.py
> >
> > --
> > 2.21.1
> >
> >
> >
> > --
> > Best Regards,
> > Michael Rolnik
>
>
--
Best Regards,
Michael Rolnik
From 7a03872e892b0ed95bbf6a34b8da2a67f65aed07 Mon Sep 17 00:00:00 2001
From: Michael Rolnik <mrolnik@gmail.com>
Date: Fri, 24 Jan 2020 01:51:20 +0100
Subject: [PATCH] target/avr: Add section about AVR into QEMU documentation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Michael Rolnik <mrolnik@gmail.com>
Message-Id: <20200118191416.19934-16-mrolnik@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
[PMD: Fixed typos]
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
qemu-doc.texi | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/qemu-doc.texi b/qemu-doc.texi
index 2328e7ea47..aaf4e5478e 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -1723,6 +1723,7 @@ differences are mentioned in the following sections.
* Microblaze System emulator::
* SH4 System emulator::
* Xtensa System emulator::
+* AVR System emulator::
@end menu
@node PowerPC System emulator
@@ -2496,6 +2497,56 @@ so should only be used with trusted guest OS.
@c man end
+@node AVR System emulator
+@section AVR System emulator
+@cindex system emulation (AVR)
+
+Use the executable @file{qemu-system-avr} to emulates a AVR 8 bit based machine
+having one for the following cores: avr1, avr2, avr25, avr3, avr31, avr35, avr4,
+avr5, avr51, avr6, avrtiny, xmega2, xmega3, xmega4, xmega5, xmega6 and xmega7.
+
+As for now it supports few Arduino boards for educational and testing purposes.
+These boards use a ATmega controller, which model is limited to USART & 16 bit
+timer devices, enought to run FreeRTOS based applications (like this @url{https://github.com/seharris/qemu-avr-tests/blob/master/free-rtos/Demo/AVR_ATMega2560_GCC/demo.elf,,demo})
+
+Following are examples of possible usages, assuming demo.elf is compiled for
+AVR cpu
+@itemize
+
+@item Continuous non interrupted execution
+@example
+qemu-system-avr -machine mega2560 -bios demo.elf
+@end example
+
+@item Continuous non interrupted execution with serial output into telnet window
+@example
+qemu-system-avr -machine mega2560 -bios demo.elf -serial tcp::5678,server,nowait -nographic
+@end example
+and then in another shell
+@example
+telnet localhost 5678
+@end example
+
+@item Debugging wit GDB debugger
+@example
+qemu-system-avr -machine mega2560 -bios demo.elf -s -S
+@end example
+and then in another shell
+@example
+avr-gdb demo.elf
+@end example
+and then within GDB shell
+@example
+target remote :1234
+@end example
+
+@item Print out executed instructions
+@example
+qemu-system-avr -machine mega2560 -bios demo.elf -d in_asm
+@end example
+
+@end itemize
+
@node QEMU User space emulator
@chapter QEMU User space emulator
--
2.17.2 (Apple Git-113)
© 2016 - 2025 Red Hat, Inc.