On 13/02/2016 17:28, Andrew Jones wrote: > 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. > > Tested on TCG and a P8 kvm_pr machine. I'm looking forward to hearing > more testing feedback from others. Maybe I should have added an RFT. > > v3: > Paolo's comments: > - got rid of zero-sized files > > Thomas' review comments: > - remove useless casts in needed cast adding patch > - got rid of build_romfs building (and committing a binary), just > offset the rom binary by 256 bytes now > - added a better error message for a -smp N, N > NR_CPUS user error > - got rid of infinite loop with broken rtas-poweroff > - one r-b (wasn't sure the "looks good"'s counted, so didn't add more) > > Laurent's testing led me to > - fix a problem on kvm_pr with broken sc1 > - fix handling of memory regions, expect more than one > - and a fix to DT code so that works > > Additionally: > - new patches > - cscope: ppc64 needs to look in lib/powerpc/asm too, > and arm64 in lib/arm/asm > - handle memory regions better also for arm > - a misc trivial fix for arm... > - align toc to 256 bytes for later gcc > > 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 > > We still haven't addressed debug-exit. 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 now we keep the hack from v1, but simplified. > > Patches also available here > https://github.com/rhdrjones/kvm-unit-tests/commits/ppc64/initial-drop-v3 > > > Andrew Jones (17): > arm/arm64: trivial: another assert fix > Makefile: cscope: also look in arch shared asm > lib: asm-generic: add missing casts > devicetree: fix dt_get_memory_params > arm/arm64: setup improvements > lib: share arm-selftest utility functions > config: no need to mix arch makefiles > powerpc/ppc64: start skeleton framework > powerpc/ppc64: ppc-ify makefiles and linker script > powerpc/ppc64: add a boot rom > powerpc/ppc64: add hcall support and 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: make a fake debug-exit > > Makefile | 8 +- > 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/arm/asm/setup.h | 9 ++ > lib/arm/io.c | 3 +- > lib/arm/setup.c | 66 +++++++--- > lib/asm-generic/io.h | 12 +- > lib/devicetree.c | 8 +- > lib/libcflat.h | 11 +- > lib/powerpc/.gitignore | 1 + > lib/powerpc/asm/hcall.h | 43 +++++++ > lib/powerpc/asm/rtas.h | 26 ++++ > lib/powerpc/asm/setup.h | 36 ++++++ > lib/powerpc/hcall.c | 79 ++++++++++++ > lib/powerpc/io.c | 37 ++++++ > lib/powerpc/rtas.c | 139 +++++++++++++++++++++ > lib/powerpc/setup.c | 119 ++++++++++++++++++ > lib/ppc64/.gitignore | 1 + > lib/ppc64/asm-offsets.c | 12 ++ > lib/ppc64/asm/asm-offsets.h | 1 + > lib/ppc64/asm/hcall.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/spinlock.c | 11 ++ > lib/report.c | 16 +++ > lib/util.c | 18 +++ > lib/util.h | 23 ++++ > powerpc/Makefile | 1 + > powerpc/Makefile.common | 71 +++++++++++ > powerpc/Makefile.ppc64 | 20 +++ > powerpc/boot_rom.S | 5 + > powerpc/cstart64.S | 83 ++++++++++++ > powerpc/flat.lds | 44 +++++++ > powerpc/reloc64.c | 55 ++++++++ > powerpc/run | 55 ++++++++ > powerpc/selftest.c | 64 ++++++++++ > 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 +- > 51 files changed, 1124 insertions(+), 75 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/hcall.h > create mode 100644 lib/powerpc/asm/rtas.h > create mode 100644 lib/powerpc/asm/setup.h > create mode 100644 lib/powerpc/hcall.c > create mode 100644 lib/powerpc/io.c > create mode 100644 lib/powerpc/rtas.c > create mode 100644 lib/powerpc/setup.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/hcall.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/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.S > create mode 100644 powerpc/cstart64.S > create mode 100644 powerpc/flat.lds > create mode 100644 powerpc/reloc64.c > 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%) > Tested-by: Laurent Vivier <lvivier@xxxxxxxxxx> tested with kvm_pr and kvm_hv. Just a note for the next release: $ ./run_tests.sh ./run_tests.sh: line 51: test.log: Permission denied scripts/runtime.bash: line 48: test.log: Permission denied PASS selftest-setup You should check current user can write into test.log. Laurent -- 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