This is a v4 of a series that introduces arm to kvm-unit-tests. First, it does some tidying up of the repo. Then, it adds support for device trees (libfdt), and for virtio-testdev[1]. Next, it adds the basic infrastructure for booting a test case (guest), and adds a first test case, a self-test to confirm setup was completed successfully. Finally, it further prepares the framework for more complicated tests by adding vector support, and extends the self-test to test that too. This initial drop doesn't require kvmarm. qemu-system-arm is enough, but it must have mach-virt, and the virtio-testdev patch[1]. These patches (v4) are also available from a git repo here https://github.com/rhdrjones/kvm-unit-tests/commits/arm/v4-initial-drop The v3 patches are available for reference here https://github.com/rhdrjones/kvm-unit-tests/commits/arm/v3-initial-drop Major v3->v4 differences are noted in each patch that has some under the '---'. There are also some new patches since v3 in this series, and a few v3 patches were dropped. Some more interesting v3->v4 changes are: * rebased to "7505ea2: realmode: make performance test run..." * generation of asm-offsets.h now done like Kbuild * cleaner build in general (new asm dir, no libfdt changes) * introduction of memregions * introduction of spinlocks * determination of nr_cpus on setup * reworked devicetree.[ch] to cleanup api and better document * a more general virtio_bind() implementation * more code comments and commit messages Thanks in advance for reviews! [1] http://lists.nongnu.org/archive/html/qemu-devel/2013-12/msg00690.html Andrew Jones (17): remove unused files makefile and run_tests tweaks clean root dir of all x86-ness add distclean target and gitignore more add 'make cscope' support libfdt: Import libfdt source libfdt: get libfdt to build add support for Linux device trees libcflat: add abort() and assert() Introduce asm-generic/*.h files add minimal virtio support for devtree virtio-mmio Introduce virtio-testdev libcflat: clean up libcflat.h and add string.h printf: support field padding arm: initial drop arm: add useful headers from the Linux kernel arm: vectors support Christoffer Dall (2): arm: Add spinlock implementation arm: Add IO accessors to avoid register-writeback .gitignore | 6 + Makefile | 55 +- README | 59 +- arm/cstart.S | 209 ++++++ arm/flat.lds | 23 + arm/run | 31 + arm/selftest.c | 207 ++++++ arm/unittests.cfg | 30 + config-i386.mak | 13 - config-ia64.mak | 7 - config-powerpc-440.mak | 15 - config-powerpc.mak | 39 -- config-x86-common.mak | 124 ---- config-x86_64.mak | 14 - config/asm-offsets.mak | 41 ++ config/config-arm.mak | 79 +++ config/config-i386.mak | 12 + config/config-x86-common.mak | 122 ++++ config/config-x86_64.mak | 13 + configure | 40 +- docs/testdev.txt | 13 + flat.lds | 21 - formats | 31 - iotable.c | 53 -- iotable.h | 40 -- kvmtrace.c | 706 -------------------- kvmtrace_format | 532 --------------- lib/argv.c | 6 + lib/arm/.gitignore | 1 + lib/arm/asm-offsets.c | 39 ++ lib/arm/asm/asm-offsets.h | 1 + lib/arm/asm/barrier.h | 18 + lib/arm/asm/cp15.h | 37 ++ lib/arm/asm/io.h | 81 +++ lib/arm/asm/processor.h | 40 ++ lib/arm/asm/ptrace.h | 100 +++ lib/arm/asm/setup.h | 39 ++ lib/arm/asm/spinlock.h | 11 + lib/arm/eabi_compat.c | 20 + lib/arm/io.c | 66 ++ lib/arm/processor.c | 115 ++++ lib/arm/setup.c | 142 ++++ lib/arm/spinlock.c | 28 + lib/asm-generic/io.h | 154 +++++ lib/asm-generic/spinlock.h | 4 + lib/devicetree.c | 289 ++++++++ lib/devicetree.h | 230 +++++++ lib/fwcfg.c | 58 -- lib/generated/.gitignore | 1 + lib/libcflat.h | 59 +- lib/libfdt/Makefile.libfdt | 10 + lib/libfdt/README | 4 + lib/libfdt/fdt.c | 250 +++++++ lib/libfdt/fdt.h | 111 ++++ lib/libfdt/fdt_empty_tree.c | 84 +++ lib/libfdt/fdt_ro.c | 573 ++++++++++++++++ lib/libfdt/fdt_rw.c | 492 ++++++++++++++ lib/libfdt/fdt_strerror.c | 96 +++ lib/libfdt/fdt_sw.c | 256 +++++++ lib/libfdt/fdt_wip.c | 118 ++++ lib/libfdt/libfdt.h | 1514 ++++++++++++++++++++++++++++++++++++++++++ lib/libfdt/libfdt_env.h | 111 ++++ lib/libfdt/libfdt_internal.h | 95 +++ lib/libfdt/version.lds | 60 ++ lib/panic.c | 13 - lib/powerpc/44x/map.c | 51 -- lib/powerpc/44x/timebase.S | 28 - lib/powerpc/44x/timebase.h | 25 - lib/powerpc/44x/tlbwe.S | 29 - lib/powerpc/io.c | 35 - lib/printf.c | 82 ++- lib/string.c | 54 ++ lib/string.h | 15 + lib/virtio-testdev.c | 137 ++++ lib/virtio-testdev.h | 18 + lib/virtio.c | 166 +++++ lib/virtio.h | 89 +++ main-ppc.c | 383 ----------- powerpc/44x/tlbsx.S | 33 - powerpc/44x/tlbwe.S | 27 - powerpc/44x/tlbwe_16KB.S | 35 - powerpc/44x/tlbwe_hole.S | 27 - powerpc/cstart.S | 38 -- powerpc/exit.c | 23 - powerpc/helloworld.c | 27 - powerpc/io.S | 32 - powerpc/spin.S | 4 - powerpc/sprg.S | 7 - run_tests.sh | 22 +- testdev.txt | 14 - x86-run | 41 -- x86/README | 59 +- x86/flat.lds | 21 + x86/print.h | 19 - x86/run | 41 ++ x86/run-kvm-unit-tests | 6 - 96 files changed, 6782 insertions(+), 2667 deletions(-) create mode 100644 arm/cstart.S create mode 100644 arm/flat.lds create mode 100755 arm/run create mode 100644 arm/selftest.c create mode 100644 arm/unittests.cfg delete mode 100644 config-i386.mak delete mode 100644 config-ia64.mak delete mode 100644 config-powerpc-440.mak delete mode 100644 config-powerpc.mak delete mode 100644 config-x86-common.mak delete mode 100644 config-x86_64.mak create mode 100644 config/asm-offsets.mak create mode 100644 config/config-arm.mak create mode 100644 config/config-i386.mak create mode 100644 config/config-x86-common.mak create mode 100644 config/config-x86_64.mak create mode 100644 docs/testdev.txt delete mode 100644 flat.lds delete mode 100644 formats delete mode 100644 iotable.c delete mode 100644 iotable.h delete mode 100644 kvmtrace.c delete mode 100755 kvmtrace_format create mode 100644 lib/arm/.gitignore create mode 100644 lib/arm/asm-offsets.c create mode 100644 lib/arm/asm/asm-offsets.h create mode 100644 lib/arm/asm/barrier.h create mode 100644 lib/arm/asm/cp15.h create mode 100644 lib/arm/asm/io.h create mode 100644 lib/arm/asm/processor.h create mode 100644 lib/arm/asm/ptrace.h create mode 100644 lib/arm/asm/setup.h create mode 100644 lib/arm/asm/spinlock.h create mode 100644 lib/arm/eabi_compat.c create mode 100644 lib/arm/io.c create mode 100644 lib/arm/processor.c create mode 100644 lib/arm/setup.c create mode 100644 lib/arm/spinlock.c create mode 100644 lib/asm-generic/io.h create mode 100644 lib/asm-generic/spinlock.h create mode 100644 lib/devicetree.c create mode 100644 lib/devicetree.h delete mode 100644 lib/fwcfg.c create mode 100644 lib/generated/.gitignore create mode 100644 lib/libfdt/Makefile.libfdt create mode 100644 lib/libfdt/README create mode 100644 lib/libfdt/fdt.c create mode 100644 lib/libfdt/fdt.h create mode 100644 lib/libfdt/fdt_empty_tree.c create mode 100644 lib/libfdt/fdt_ro.c create mode 100644 lib/libfdt/fdt_rw.c create mode 100644 lib/libfdt/fdt_strerror.c create mode 100644 lib/libfdt/fdt_sw.c create mode 100644 lib/libfdt/fdt_wip.c create mode 100644 lib/libfdt/libfdt.h create mode 100644 lib/libfdt/libfdt_env.h create mode 100644 lib/libfdt/libfdt_internal.h create mode 100644 lib/libfdt/version.lds delete mode 100644 lib/panic.c delete mode 100644 lib/powerpc/44x/map.c delete mode 100644 lib/powerpc/44x/timebase.S delete mode 100644 lib/powerpc/44x/timebase.h delete mode 100644 lib/powerpc/44x/tlbwe.S delete mode 100644 lib/powerpc/io.c create mode 100644 lib/string.h create mode 100644 lib/virtio-testdev.c create mode 100644 lib/virtio-testdev.h create mode 100644 lib/virtio.c create mode 100644 lib/virtio.h delete mode 100644 main-ppc.c delete mode 100644 powerpc/44x/tlbsx.S delete mode 100644 powerpc/44x/tlbwe.S delete mode 100644 powerpc/44x/tlbwe_16KB.S delete mode 100644 powerpc/44x/tlbwe_hole.S delete mode 100644 powerpc/cstart.S delete mode 100644 powerpc/exit.c delete mode 100644 powerpc/helloworld.c delete mode 100644 powerpc/io.S delete mode 100644 powerpc/spin.S delete mode 100644 powerpc/sprg.S delete mode 100644 testdev.txt delete mode 100755 x86-run create mode 100644 x86/flat.lds delete mode 100644 x86/print.h create mode 100755 x86/run delete mode 100644 x86/run-kvm-unit-tests -- 1.8.1.4 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html