Re: [kvm-unit-tests PATCH v6 00/18] ppc64: initial drop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

based on Drew's work, I've written two small patches to add support of
ppc64le host and target.

As Drew's series is not merged I don't send yet theses patches, but you
can find them here:

https://github.com/vivier/kvm-unit-tests/commits/ppc64/endianness-v1

1- powerpc: allow to build big-endian binaries on little-endian host
2- powerpc: select endianness

Patch 2 allows to build and test ppc64le target.

I don't know what to do about these two patches: should I wait Drew's
series is merged or should I send them now for review?

Thanks,
Laurent

On 19/02/2016 16:58, 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, and Laurent has tested it on
> both a PowerMac G5 (kvm_pr) and a kvm_hv machine. I'm looking forward
> to hearing more testing feedback from others though.
> 
> Patches also available here
> https://github.com/rhdrjones/kvm-unit-tests/commits/ppc64/initial-drop-v6
> 
> v6:
>  - setup: capture i & d cache size and use as needed [David]
>  - setup: only capture cache size once, rather than every cpu node read [drew]
>  - rtas: deal with the endianness of the rtas blob [David]
>  - more David r-b's
>  - one r-b from Radim
> 
> v5:
>  - add vprintf [David & drew]
>  - move hcall and hcall_patch_broken_sc1 to assembler [David]
>  - get cache line size from DT [David]
>    (I left Thomas' r-b on "powerpc/ppc64: adapt arm's setup", but Thomas
>     will probably want to look again, as this change added a few lines
>     there. The commit message was updated to point out the changes.)
>  - rename uart_lock (as it's not a uart) [David]
>  - drop unused variables from powerpc makefiles
>    (LOADADDR, phys_base, kernel_offset) [David & drew]
>  - mkstandalone: only introduce a single firmware variable and set the
>    trap handler first [Radim]
>  - added more r-b's from David
> 
> v4:
>  - check for H_PRIVILEGE in broken sc1 probe [David]
>  - rename rtas' lock from lock to rtas_lock [Thomas]
>  - rtas: should only iterate to size/4 [drew]
>  - add powerpc/.gitignore (ignore boot_rom.bin) [drew]
> 
> 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.
> 
> 
> Andrew Jones (18):
>   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: add vprintf
>   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                                     |  12 +-
>  lib/powerpc/.gitignore                             |   1 +
>  lib/powerpc/asm/hcall.h                            |  37 +++++
>  lib/powerpc/asm/rtas.h                             |  26 ++++
>  lib/powerpc/asm/setup.h                            |  29 ++++
>  lib/powerpc/hcall.c                                |  33 +++++
>  lib/powerpc/io.c                                   |  37 +++++
>  lib/powerpc/rtas.c                                 | 139 +++++++++++++++++++
>  lib/powerpc/setup.c                                | 150 +++++++++++++++++++++
>  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/printf.c                                       |  14 +-
>  lib/report.c                                       |  18 ++-
>  lib/util.c                                         |  18 +++
>  lib/util.h                                         |  23 ++++
>  powerpc/.gitignore                                 |   1 +
>  powerpc/Makefile                                   |   1 +
>  powerpc/Makefile.common                            |  65 +++++++++
>  powerpc/Makefile.ppc64                             |  19 +++
>  powerpc/boot_rom.S                                 |   5 +
>  powerpc/cstart64.S                                 |  90 +++++++++++++
>  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 +-
>  53 files changed, 1110 insertions(+), 79 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/.gitignore
>  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%)
> 
--
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



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux