mbox series

[0/4] target/arm: Support for Data Cache Clean up to PoP

Message ID 20190910095610.4546-1-beata.michalska@linaro.org (mailing list archive)
Headers show
Series target/arm: Support for Data Cache Clean up to PoP | expand

Message

Beata Michalska Sept. 10, 2019, 9:56 a.m. UTC
ARMv8.2 introduced support for Data Cache Clean instructions to PoP
(point-of-persistence) and PoDP (point-of-deep-persistence):
ARMv8.2-DCCVAP &  ARMv8.2-DCCVADP respectively.
This patch set adds support for emulating both, though there is no
distinction between the two points: the PoDP is assumed to represent
the same point of persistence as PoP. Case there is no such point specified
for the considered memory system both will fall back to the DV CVAC inst
(clean up to the point of coherency).
The changes introduced include adding probe_read for validating read memory
access to allow verification for mandatory read access for both cache
clean instructions, along with support for writeback for requested memory
regions through msync, if one is available, based otherwise on fsyncdata.

As currently the virt platform is missing support for NVDIMM,
the changes have been tested  with [1] & [2]


[1] https://patchwork.kernel.org/cover/10830237/
[2] https://patchwork.kernel.org/project/qemu-devel/list/?series=159441


Beata Michalska (4):
  tcg: cputlb: Add probe_read
  Memory: Enable writeback for given memory region
  migration: ram: Switch to ram block writeback
  target/arm: Add support for DC CVAP & DC CVADP ins

 configure                  | 24 ++++++++++++++++++++++++
 exec.c                     | 38 ++++++++++++++++++++++++++++++++++++++
 include/exec/exec-all.h    |  6 ++++++
 include/exec/memory.h      |  6 ++++++
 include/exec/ram_addr.h    |  6 ++++++
 linux-user/elfload.c       | 18 +++++++++++++++++-
 memory.c                   | 12 ++++++++++++
 migration/ram.c            |  5 +----
 target/arm/cpu.h           | 13 ++++++++++++-
 target/arm/cpu64.c         |  1 +
 target/arm/helper.c        | 24 ++++++++++++++++++++++++
 target/arm/helper.h        |  1 +
 target/arm/op_helper.c     | 36 ++++++++++++++++++++++++++++++++++++
 target/arm/translate-a64.c |  5 +++++
 14 files changed, 189 insertions(+), 6 deletions(-)