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

Re: [XEN v3 01/13] GICv3: Emulate GICD_IGRPMODR as RAZ / WI


  • To: Ayan Kumar Halder <ayankuma@xxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Tue, 25 Oct 2022 07:36:50 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0+vHZb59A5QNvyJ+NKkFl4+p37pscCh3MHGL2aQuNPI=; b=jfcPcJbqSHdopKWQKH7rxT55K7qjz7/FHJMgufy90A3nkovViEhHcWQ3vUE4DrgSnASJOp5RN/xNt4o8SYlyGCNduzemHKc5jXhJYiq5Co/4yHWr28AElzp6nA1PsESNvKJHGRVlx7yeG3ZQLL8nCPhxfTg1WptWPSG0E6iu5FfAntKwBG9Zzy+jdLpzMtmmDOvk8DrLn2+76jjZPsDicMeEDricMzVjzgvODcW3C5rUVOIpiph3e8spUo3dsXksV3iqgDWe5kGnmLIfstlJSHy1jZ/+c3Vk5ALtDQnp7yTTkNlnU54HqZ4r8VdgTMWnt1eRllxxdDVHd73j8Nmk4Q==
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0+vHZb59A5QNvyJ+NKkFl4+p37pscCh3MHGL2aQuNPI=; b=TBloC0z/Mvi2tiLzjgQ2PxNdYiRNrVUNMk7YiaYZxgVS7mtifTKol89mFoq/vjyLSTcVQ85ovVLdWdqbsweC038VTfi0h0RDPeIAQ7IrZ50Ivd6qZtTWUUiBjd5kaCkkfUwvpMrSxz946hYBYFrtk46JP286/lpISLJhdeqesCx8boYH2V2ZGjtNuiiRN/qIHH9KtAjxtf3DrTBbqjuAgjdp3Q2RiIyO/iIeIwZYxMkQ96Ez0ntM7+lliB9KnyQA7avYqGB4MXgdOkk/QtrmO6grIFPMLkEc+ZmD2Xwz2Pgq+FMXWRc/gKtMHifp8DzHtsi8y3Mqu7PZXsHxbm4T9w==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=ZpE/WYIbMZIqRA82rem/2vpsxZYnVIQwzbDFDu348l5vSJmASs+YOuvmRw9c1ldMo+dGZiiOtSh5nShkb1W3hiOYFirze8+HKzNsYxI60YB5NpeL/y2ILiku9LhxWhYxyfHmi9iNqJ5wKxoPnBwaYETzBmY4RfToyXwQ9kmGIzwkl4llJegwrt/tXvjzL47fx465rJqL7XXXAxNJkvBSvHtGwpjeixRaNfykdklr4U+Z0lWvEbO33DH4UF/Ry/DM2puUStkilyi1FFUPwoKO0FLTgZE7t2Dq/+weDZ08Q9x63QiNPRQhY0PjJObzz0PbOZlJ5M555XlqUbn6x/9LJw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N0VRAWx0RZcklsp3HzPRAiVKdxJLHPdT8Nklyh3uYYCOKPh7YqUayrmudaGXiZUFjI8gIJTbm4w6DhWGGrRdxD+kKGd5HjMU6MCfTyUpuHYkr5YkB82IArSXS8PU27Cl362ZF6YC8mtBzzvYlzvG163siai6ueWifKQg3TzdoOwVmzTZjTPjrr+KI7hUSsV4icfGbLXhB1fHyPdmHjIjWEFGq3GW9GFHNI9/gSplYiIs8PZeqWHhq3vyxB6ESVa9ZAqNl9oONB1uo2iT4R+sGmJ6gDZKh+PURZX8S3kYbOo2fjLRujgMqV56lL/Uxfduwcp3ixbwQPdZVgmmPINwOg==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "sstabellini@xxxxxxxxxx" <sstabellini@xxxxxxxxxx>, "stefanos@xxxxxxxxxx" <stefanos@xxxxxxxxxx>, "julien@xxxxxxx" <julien@xxxxxxx>, "Volodymyr_Babchuk@xxxxxxxx" <Volodymyr_Babchuk@xxxxxxxx>, "michalo@xxxxxxx" <michalo@xxxxxxx>
  • Delivery-date: Tue, 25 Oct 2022 07:37:31 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHY59YEGqCNePqK20O7iZ+lc5NQpK4euWmA
  • Thread-topic: [XEN v3 01/13] GICv3: Emulate GICD_IGRPMODR as RAZ / WI

Hi Ayan,

> On 24 Oct 2022, at 19:25, Ayan Kumar Halder <ayankuma@xxxxxxx> wrote:
> 
> Refer GIC v3 specification (Arm IHI 0069H ID020922), IGRPMODR is emulated
> as RAZ / WI for the guests as "GICD_CTLR.ARE_S==0" is true.
> Xen is currently supported to run in non-secure mode, so guests will run in
> non-secure mode only.
> 
> Also, if Xen was supposed to run in secure mode with guests, the programming
> of the interrupts (ie whether it belongs to secure/non secure and group 0/1)
> will be done by Xen only. The guests will not be allowed to change this.

Thanks a lot this description is a lot better.

> 
> Signed-off-by: Ayan Kumar Halder <ayankuma@xxxxxxx>
Reviewed-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>

I do not think this is something for 4.17 so it will need to be on hold until 
staging reopens unless someone thinks otherwise ?

Cheers
Bertrand


> ---
> 
> Observed the issue while running Zephyr on R52.
> Also, found that KVM has similar behaviour.
> 
> Changes from:-
> v1 - Moved the definitions of GICD_IGRPMODR, GICD_IGRPMODRN to gic_v3
> specific header.
> 
> v2 - Updated the commit message.
> 
> xen/arch/arm/include/asm/gic_v3_defs.h | 2 ++
> xen/arch/arm/vgic-v3.c                 | 4 ++++
> 2 files changed, 6 insertions(+)
> 
> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h 
> b/xen/arch/arm/include/asm/gic_v3_defs.h
> index 34ed5f857d..728e28d5e5 100644
> --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> @@ -30,6 +30,8 @@
> #define GICD_CLRSPI_NSR              (0x048)
> #define GICD_SETSPI_SR               (0x050)
> #define GICD_CLRSPI_SR               (0x058)
> +#define GICD_IGRPMODR                (0xD00)
> +#define GICD_IGRPMODRN               (0xD7C)
> #define GICD_IROUTER                 (0x6000)
> #define GICD_IROUTER32               (0x6100)
> #define GICD_IROUTER1019             (0x7FD8)
> diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
> index 7fb99a9ff2..0c23f6df9d 100644
> --- a/xen/arch/arm/vgic-v3.c
> +++ b/xen/arch/arm/vgic-v3.c
> @@ -685,6 +685,7 @@ static int __vgic_v3_distr_common_mmio_read(const char 
> *name, struct vcpu *v,
>     switch ( reg )
>     {
>     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
> +    case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
>         /* We do not implement security extensions for guests, read zero */
>         if ( dabt.size != DABT_WORD ) goto bad_width;
>         goto read_as_zero;
> @@ -781,6 +782,7 @@ static int __vgic_v3_distr_common_mmio_write(const char 
> *name, struct vcpu *v,
>     switch ( reg )
>     {
>     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
> +    case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
>         /* We do not implement security extensions for guests, write ignore */
>         goto write_ignore_32;
> 
> @@ -1192,6 +1194,7 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, 
> mmio_info_t *info,
>     case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
>     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
>     case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
> +    case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
>         /*
>          * Above all register are common with GICR and GICD
>          * Manage in common
> @@ -1379,6 +1382,7 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v, 
> mmio_info_t *info,
>     case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
>     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
>     case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
> +    case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
>         /* Above registers are common with GICR and GICD
>          * Manage in common */
>         return __vgic_v3_distr_common_mmio_write("vGICD", v, info,
> -- 
> 2.17.1
> 




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.