From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v3 0/9] xen/arm: vgic: Support 32-bit access for 64-bit register Date: Wed, 7 Oct 2015 15:41:02 +0100 Message-ID: <1444228871-383-1-git-send-email-julien.grall@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Zjpvh-0001zw-EE for xen-devel@lists.xenproject.org; Wed, 07 Oct 2015 14:42:53 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Julien Grall , ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org Hi all, This series aims to fixc the 32-bit access on 64-bit register. Some guest OS such as FreeBSD and Linux (only in ITS) use 32-bit access and will crash at boot time. I took the opportunity to go further and optimize the way Xen is storing registers such as GICD_IPRIORITYR, GICD_ITARGETSR and GICD_IROUTER. For all changes see in each patch. A branch has been pushed based on the latest staging: git://xenbits.xen.org/people/julieng/xen-unstable.git branch gicv3-32bit-v2 Julien Grall (9): xen/arm: io: remove mmio_check_t typedef xen/arm: io: Extend write/read handler to pass the register in parameter xen/arm: io: Support sign-extension for every read access xen/arm: vgic: ctlr stores a 32-bit hardware register so use uint32_t xen/arm: vgic: Optimize the way to store GICD_IPRIORITYR in the rank xen/arm: vgic: Introduce a new field to store the rank index and use it xen/arm: vgic: Optimize the way to store the target vCPU in the rank xen/arm: vgic: Introduce helpers to extract/update/clear/set vGIC register ... xen/arm: vgic-v3: Support 32-bit access for 64-bit registers xen/arch/arm/io.c | 34 ++++- xen/arch/arm/vgic-v2.c | 308 +++++++++++++++++++------------------ xen/arch/arm/vgic-v3.c | 353 +++++++++++++++++++++++-------------------- xen/arch/arm/vgic.c | 70 +++++++-- xen/arch/arm/vuart.c | 20 ++- xen/include/asm-arm/domain.h | 2 +- xen/include/asm-arm/mmio.h | 7 +- xen/include/asm-arm/vgic.h | 151 ++++++++++++++---- 8 files changed, 582 insertions(+), 363 deletions(-) -- 2.1.4