Message ID | 20200124005131.16276-23-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
Series | target/avr merger | expand |
Philippe Mathieu-Daudé <f4bug@amsat.org> writes: > From: Michael Rolnik <mrolnik@gmail.com> > > Make AVR support buildable > > Signed-off-by: Michael Rolnik <mrolnik@gmail.com> > Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com> > Message-Id: <20200118191416.19934-19-mrolnik@gmail.com> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > configure | 7 +++++++ > default-configs/avr-softmmu.mak | 5 +++++ > target/avr/Makefile.objs | 34 +++++++++++++++++++++++++++++++++ > 3 files changed, 46 insertions(+) > create mode 100644 default-configs/avr-softmmu.mak > create mode 100644 target/avr/Makefile.objs > > diff --git a/configure b/configure > index 557e4382ea..94e79ca634 100755 > --- a/configure > +++ b/configure > @@ -7612,6 +7612,10 @@ case "$target_name" in > mttcg="yes" > gdb_xml_files="aarch64-core.xml aarch64-fpu.xml arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml" > ;; > + avr) > + gdb_xml_files="avr-cpu.xml" > + target_compiler=$cross_cc_avr I don't think you want this here. target_compiler belongs in the tests/tcg/configure.sh config. A docker target with the compiler would also be nice. > + ;; > cris) > ;; > hppa) > @@ -7831,6 +7835,9 @@ for i in $ARCH $TARGET_BASE_ARCH ; do > disas_config "ARM_A64" > fi > ;; > + avr) > + disas_config "AVR" > + ;; > cris) > disas_config "CRIS" > ;; > diff --git a/default-configs/avr-softmmu.mak b/default-configs/avr-softmmu.mak > new file mode 100644 > index 0000000000..80218add98 > --- /dev/null > +++ b/default-configs/avr-softmmu.mak > @@ -0,0 +1,5 @@ > +# Default configuration for avr-softmmu > + > +# Boards: > +# > +CONFIG_ARDUINO=y > diff --git a/target/avr/Makefile.objs b/target/avr/Makefile.objs > new file mode 100644 > index 0000000000..7523e0c6e2 > --- /dev/null > +++ b/target/avr/Makefile.objs > @@ -0,0 +1,34 @@ > +# > +# QEMU AVR CPU > +# > +# Copyright (c) 2019 Michael Rolnik > +# > +# This library is free software; you can redistribute it and/or > +# modify it under the terms of the GNU Lesser General Public > +# License as published by the Free Software Foundation; either > +# version 2.1 of the License, or (at your option) any later version. > +# > +# This library is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +# Lesser General Public License for more details. > +# > +# You should have received a copy of the GNU Lesser General Public > +# License along with this library; if not, see > +# <http://www.gnu.org/licenses/lgpl-2.1.html> > +# > + > +DECODETREE = $(SRC_PATH)/scripts/decodetree.py > +decode-y = $(SRC_PATH)/target/avr/insn.decode > + > +target/avr/decode_insn.inc.c: $(decode-y) $(DECODETREE) > + $(call quiet-command, \ > + $(PYTHON) $(DECODETREE) -o $@ --decode decode_insn --insnwidth 16 $<, \ > + "GEN", $(TARGET_DIR)$@) > + > +target/avr/translate.o: target/avr/decode_insn.inc.c > + > +obj-y += translate.o cpu.o helper.o > +obj-y += gdbstub.o > +obj-y += disas.o > +obj-$(CONFIG_SOFTMMU) += machine.o
diff --git a/configure b/configure index 557e4382ea..94e79ca634 100755 --- a/configure +++ b/configure @@ -7612,6 +7612,10 @@ case "$target_name" in mttcg="yes" gdb_xml_files="aarch64-core.xml aarch64-fpu.xml arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml" ;; + avr) + gdb_xml_files="avr-cpu.xml" + target_compiler=$cross_cc_avr + ;; cris) ;; hppa) @@ -7831,6 +7835,9 @@ for i in $ARCH $TARGET_BASE_ARCH ; do disas_config "ARM_A64" fi ;; + avr) + disas_config "AVR" + ;; cris) disas_config "CRIS" ;; diff --git a/default-configs/avr-softmmu.mak b/default-configs/avr-softmmu.mak new file mode 100644 index 0000000000..80218add98 --- /dev/null +++ b/default-configs/avr-softmmu.mak @@ -0,0 +1,5 @@ +# Default configuration for avr-softmmu + +# Boards: +# +CONFIG_ARDUINO=y diff --git a/target/avr/Makefile.objs b/target/avr/Makefile.objs new file mode 100644 index 0000000000..7523e0c6e2 --- /dev/null +++ b/target/avr/Makefile.objs @@ -0,0 +1,34 @@ +# +# QEMU AVR CPU +# +# Copyright (c) 2019 Michael Rolnik +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, see +# <http://www.gnu.org/licenses/lgpl-2.1.html> +# + +DECODETREE = $(SRC_PATH)/scripts/decodetree.py +decode-y = $(SRC_PATH)/target/avr/insn.decode + +target/avr/decode_insn.inc.c: $(decode-y) $(DECODETREE) + $(call quiet-command, \ + $(PYTHON) $(DECODETREE) -o $@ --decode decode_insn --insnwidth 16 $<, \ + "GEN", $(TARGET_DIR)$@) + +target/avr/translate.o: target/avr/decode_insn.inc.c + +obj-y += translate.o cpu.o helper.o +obj-y += gdbstub.o +obj-y += disas.o +obj-$(CONFIG_SOFTMMU) += machine.o