It's been a loooong time since I posted v1 of this series, but thanks to Thomas' poking, and even volunteering to help move v2 along, I've finally picked it back up. v2: Besides rebasing on latest master, v2 addresses all of David's comments - assembler cleanup - jump into the RTAS blob we get from DT, instead of reproducing it - don't store the RTAS root node, always hunt it down v2 didn't address debug-exit, and we still need a solution for that. Plugging chr-testdev into an spapr vty is probably what we should investigate first (as was suggested by Alex Graf under the v1 review). For this v2 I just kept the hack from v1, but simplified it and explicitly call it out as the hack that it is. Additional known issues: Latest F22 cross-compiler (gcc5 based) doesn't generate working code with this series. I didn't try to debug. The 4.9 based compiler I initially used on v1 works, so I reverted to that one. Testing: I only tested with qemu-system-ppc64 (latest) on x86_64 so far. I'll try to get a machine to test with real hardware (and KVM) unless someone (hi Thomas :-) beats me to it. Standard cover-letter summary: This series brings basic setup; starts a test's C entry point, main(), and printf, exit, and malloc work. Three more series should follow this one which must bring; vector support, mmu support, and smp support, at which point I believe the framework could just evolve with the creation of unit tests. Patches also available here https://github.com/rhdrjones/kvm-unit-tests/commits/ppc64/initial-drop-v2 Andrew Jones (14): lib: asm-generic: add missing casts lib: share arm-selftest utility functions config: no need to mix arch makefiles powerpc/ppc64: start skeleton framework powerpc/pp64: ppc-ify makefiles and linker script powerpc/ppc64: add boot rom source powerpc/ppc64: add bootloader to bounce into memory powerpc/ppc64: add HV putchar powerpc/ppc64: adapt arm's setup powerpc/ppc64: relocate linker VMAs powerpc/ppc64: add run script and unittests.cfg mkstandalone: add support for powerpc powerpc/ppc64: add RTAS support powerpc/ppc64: HACK: make a fake debug-exit Makefile | 2 +- README | 3 +- arm/Makefile | 1 + config/config-arm.mak => arm/Makefile.arm | 2 +- config/config-arm64.mak => arm/Makefile.arm64 | 2 +- .../config-arm-common.mak => arm/Makefile.common | 3 +- arm/selftest.c | 45 +++----- configure | 6 ++ lib/asm-generic/io.h | 12 +-- lib/libcflat.h | 11 +- lib/powerpc/.gitignore | 1 + lib/powerpc/asm/rtas.h | 26 +++++ lib/powerpc/asm/setup.h | 27 +++++ lib/powerpc/io.c | 37 +++++++ lib/powerpc/mmu.c | 0 lib/powerpc/rtas.c | 120 +++++++++++++++++++++ lib/powerpc/setup.c | 91 ++++++++++++++++ lib/powerpc/smp.c | 0 lib/ppc64/.gitignore | 1 + lib/ppc64/asm-offsets.c | 12 +++ lib/ppc64/asm/asm-offsets.h | 1 + lib/ppc64/asm/io.h | 5 + lib/ppc64/asm/page.h | 1 + lib/ppc64/asm/rtas.h | 1 + lib/ppc64/asm/setup.h | 1 + lib/ppc64/asm/spinlock.h | 11 ++ lib/ppc64/processor.c | 0 lib/ppc64/spinlock.c | 11 ++ lib/report.c | 16 +++ lib/util.c | 18 ++++ lib/util.h | 23 ++++ powerpc/Makefile | 1 + powerpc/Makefile.common | 65 +++++++++++ powerpc/Makefile.ppc64 | 21 ++++ powerpc/boot_rom.bin | Bin 0 -> 280 bytes powerpc/cstart64.S | 86 +++++++++++++++ powerpc/flat.lds | 44 ++++++++ powerpc/reloc64.c | 55 ++++++++++ powerpc/rom/.gitignore | 1 + powerpc/rom/Makefile | 36 +++++++ powerpc/rom/header.img | 1 + powerpc/rom/rom.ffs | 4 + powerpc/rom/stage1.S | 5 + powerpc/run | 60 +++++++++++ powerpc/selftest.c | 65 +++++++++++ powerpc/unittests.cfg | 30 ++++++ {config => scripts}/asm-offsets.mak | 0 scripts/mkstandalone.sh | 5 + x86/Makefile | 1 + .../config-x86-common.mak => x86/Makefile.common | 0 config/config-i386.mak => x86/Makefile.i386 | 2 +- config/config-x86_64.mak => x86/Makefile.x86_64 | 2 +- 52 files changed, 924 insertions(+), 50 deletions(-) create mode 100644 arm/Makefile rename config/config-arm.mak => arm/Makefile.arm (90%) rename config/config-arm64.mak => arm/Makefile.arm64 (89%) rename config/config-arm-common.mak => arm/Makefile.common (96%) create mode 100644 lib/powerpc/.gitignore create mode 100644 lib/powerpc/asm/rtas.h create mode 100644 lib/powerpc/asm/setup.h create mode 100644 lib/powerpc/io.c create mode 100644 lib/powerpc/mmu.c create mode 100644 lib/powerpc/rtas.c create mode 100644 lib/powerpc/setup.c create mode 100644 lib/powerpc/smp.c create mode 100644 lib/ppc64/.gitignore create mode 100644 lib/ppc64/asm-offsets.c create mode 100644 lib/ppc64/asm/asm-offsets.h create mode 100644 lib/ppc64/asm/io.h create mode 100644 lib/ppc64/asm/page.h create mode 100644 lib/ppc64/asm/rtas.h create mode 100644 lib/ppc64/asm/setup.h create mode 100644 lib/ppc64/asm/spinlock.h create mode 100644 lib/ppc64/processor.c create mode 100644 lib/ppc64/spinlock.c create mode 100644 lib/util.c create mode 100644 lib/util.h create mode 100644 powerpc/Makefile create mode 100644 powerpc/Makefile.common create mode 100644 powerpc/Makefile.ppc64 create mode 100644 powerpc/boot_rom.bin create mode 100644 powerpc/cstart64.S create mode 100644 powerpc/flat.lds create mode 100644 powerpc/reloc64.c create mode 100644 powerpc/rom/.gitignore create mode 100644 powerpc/rom/Makefile create mode 100644 powerpc/rom/header.img create mode 100644 powerpc/rom/rom.ffs create mode 100644 powerpc/rom/stage1.S create mode 100755 powerpc/run create mode 100644 powerpc/selftest.c create mode 100644 powerpc/unittests.cfg rename {config => scripts}/asm-offsets.mak (100%) create mode 100644 x86/Makefile rename config/config-x86-common.mak => x86/Makefile.common (100%) rename config/config-i386.mak => x86/Makefile.i386 (91%) rename config/config-x86_64.mak => x86/Makefile.x86_64 (93%) -- 2.4.3 -- 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