[PATCH v7 00/14] kvm-unit-tests/arm: initial drop

Andrew Jones
2014-07-16T08:47:52Z

This is v7 of a series that introduces arm to kvm-unit-tests. Three
of the v6 patches were already merged, so this is the remainder.
No new patches have been added, but some of the summaries have
changed.

This series first adds support for device trees (libfdt), and for
chr-testdev (virtio). 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 qemu must have mach-virt, and the chr-testdev patch[1].

These patches (v7) are also available from a git repo here
https://github.com/rhdrjones/kvm-unit-tests/commits/arm/v7-initial-drop

The v6 patches are also available from a git repo here
https://github.com/rhdrjones/kvm-unit-tests/commits/arm/v6-initial-drop%2Cchr-testdev

and, the v5 patches are still available here
https://github.com/rhdrjones/kvm-unit-tests/commits/arm/v5-initial-drop

The main changes since v6 are the moving/redesigning/reAPIing of
arm's memregions to common code as phys_alloc, and the splitting of
virtio and virtio-mmio code into separate files. The main change
since v5 (as stated in the v6 cover letter) is the switch from
virtio-testdev to chr-testdev. Also, as stated in the v6 cover letter,
I've kept Christoffer's *-by's, and mainly the already Reviewed-by
patches

05/14 add minimal virtio support for devtree virtio-mmio
09/14 arm: initial drop

should get a second look (or interdiffed).

Thanks in advance for reviews!

[1] http://lists.nongnu.org/archive/html/qemu-devel/2014-07/msg01960.html

Andrew Jones (12):
libfdt: Import libfdt source
add support for Linux device trees
Introduce asm-generic/*.h files
Introduce lib/alloc
add minimal virtio support for devtree virtio-mmio
lib/asm-generic: add page.h and virt_to_phys/phys_to_virt
virtio: add minimal support for virtqueues
Introduce chr-testdev
arm: initial drop
arm: Add arch-specific asm/page.h and __va/__pa
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 | 1 +
Makefile | 25 +-
arm/cstart.S | 209 ++++++
arm/flat.lds | 23 +
arm/run | 46 ++
arm/selftest.c | 210 ++++++
arm/unittests.cfg | 30 +
config/asm-offsets.mak | 41 ++
config/config-arm.mak | 81 +++
configure | 23 +-
lib/alloc.c | 176 +++++
lib/alloc.h | 123 ++++
lib/argv.c | 9 +
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 | 94 +++
lib/arm/asm/page.h | 33 +
lib/arm/asm/processor.h | 39 ++
lib/arm/asm/ptrace.h | 100 +++
lib/arm/asm/setup.h | 27 +
lib/arm/asm/spinlock.h | 11 +
lib/arm/eabi_compat.c | 20 +
lib/arm/io.c | 65 ++
lib/arm/processor.c | 111 ++++
lib/arm/setup.c | 82 +++
lib/arm/spinlock.c | 28 +
lib/asm-generic/io.h | 175 +++++
lib/asm-generic/page.h | 28 +
lib/asm-generic/spinlock.h | 4 +
lib/chr-testdev.c | 72 ++
lib/chr-testdev.h | 14 +
lib/devicetree.c | 272 ++++++++
lib/devicetree.h | 236 +++++++
lib/generated/.gitignore | 1 +
lib/libcflat.h | 2 +
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/virtio-mmio.c | 175 +++++
lib/virtio-mmio.h | 65 ++
lib/virtio.c | 130 ++++
lib/virtio.h | 149 +++++
56 files changed, 6794 insertions(+), 6 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
create mode 100644 config/asm-offsets.mak
create mode 100644 config/config-arm.mak
create mode 100644 lib/alloc.c
create mode 100644 lib/alloc.h
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/page.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/page.h
create mode 100644 lib/asm-generic/spinlock.h
create mode 100644 lib/chr-testdev.c
create mode 100644 lib/chr-testdev.h
create mode 100644 lib/devicetree.c
create mode 100644 lib/devicetree.h
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
create mode 100644 lib/virtio-mmio.c
create mode 100644 lib/virtio-mmio.h
create mode 100644 lib/virtio.c
create mode 100644 lib/virtio.h

--
1.9.3