From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37556) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTqeh-0006Dg-8E for qemu-devel@nongnu.org; Thu, 11 Feb 2016 07:47:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTqed-00057Z-3L for qemu-devel@nongnu.org; Thu, 11 Feb 2016 07:47:31 -0500 From: Thomas Huth Date: Thu, 11 Feb 2016 13:47:17 +0100 Message-Id: <1455194841-4283-1-git-send-email-thuth@redhat.com> Subject: [Qemu-devel] [PATCH v2 0/4] hw/ppc/spapr: Add "Processor Register Hypervisor Resource Access" H-calls List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-ppc@nongnu.org, david@gibson.dropbear.id.au Cc: qemu-devel@nongnu.org While we were recently debugging a problem with the H_SET_DABR call [1], I noticed that some hypercalls from the chapter 14.5.4.3 ("Processor Register Hypervisor Resource Access") from the LoPAPR spec [2] are still missing in QEMU. So here's are some patches that implement these hypercalls. Linux apparently does not depend on these hypercalls yet (otherwise somebody would have noticed this earlier), but the hypercalls are rather simple, so I think the implementations are quite straight-forward and easy to read. v2: - Don't use set_spr() and set cpu->env.spr[] directly instead - Completely reworked the H_PAGE_INIT patch to map the source and target pages for higher speed, and to be able to flush now the caches if requested. [1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=760a7364f27d974d [2] https://members.openpowerfoundation.org/document/dl/469 Thomas Huth (4): hw/ppc/spapr: Add h_set_sprg0 hypercall hw/ppc/spapr: Implement h_set_dabr hw/ppc/spapr: Implement the h_set_xdabr hypercall hw/ppc/spapr: Implement the h_page_init hypercall hw/ppc/spapr_hcall.c | 132 ++++++++++++++++++++++++++++++++++++++++++++++++--- target-ppc/kvm_ppc.h | 24 +++++++++- 2 files changed, 147 insertions(+), 9 deletions(-) -- 1.8.3.1