From xen-users-bounces@lists.xenproject.org Tue Jun 01 12:43:28 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Jun 2021 12:43:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.134628.250794 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo3jK-0008RG-DH; Tue, 01 Jun 2021 12:42:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 134628.250794; Tue, 01 Jun 2021 12:42:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo3jK-0008R8-9M; Tue, 01 Jun 2021 12:42:46 +0000
Received: by outflank-mailman (input) for mailman id 134628;
 Tue, 01 Jun 2021 03:38:59 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3H6t=K3=xilinx.com=mubinusm@srs-us1.protection.inumbo.net>)
 id 1lnvF5-0003Lx-KY
 for xen-users@lists.xenproject.org; Tue, 01 Jun 2021 03:38:59 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com (unknown
 [40.107.94.68]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 83e1b78b-95c4-417d-893e-d65ddda8993d;
 Tue, 01 Jun 2021 03:38:54 +0000 (UTC)
Received: from BYAPR02MB4278.namprd02.prod.outlook.com (2603:10b6:a03:55::33)
 by SJ0PR02MB7790.namprd02.prod.outlook.com (2603:10b6:a03:32a::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.24; Tue, 1 Jun
 2021 03:38:50 +0000
Received: from BYAPR02MB4278.namprd02.prod.outlook.com
 ([fe80::cd9e:eccf:e3c6:b920]) by BYAPR02MB4278.namprd02.prod.outlook.com
 ([fe80::cd9e:eccf:e3c6:b920%5]) with mapi id 15.20.4173.030; Tue, 1 Jun 2021
 03:38:50 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 83e1b78b-95c4-417d-893e-d65ddda8993d
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=U3hNnCDqtF+ze1/llobsVjXA3a41fyeIwS8G5Tusi6HX5/xMoZjgpaulsMA34L3GQiSQgmGaGftYH012y2pGNlTZYjUZRNM4ruW27r+Y2ILexF0db8vhlmX6zRjX8y3xurlD1HAIyzJSDSVYGMjwbZhzebI/2k2IZVz8UJezcDaDUCJvY5RROc+JkKt4Puj3xp166bQTPXlYRUnynYqVhaJ3b361/zsYHOSiOy9/Cmj/AlFU9SVieXKWTKhoEvC4cmhfAbfeYmQi07yB4LB9HnqkaKBn4fshzsbFwWUhXBfwEXEZ3HgiNrqLgEtSd2DUsgJ5tdFny//rlPCk7Is7rA==
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-SenderADCheck;
 bh=D/WKnR9iArX4mODeiAspSGsZcpqfDvaEsAeFSKhkbYs=;
 b=DFR7nYYKb63253KZlWQIBxNxqpUNZttqnJvT7MxcGFzklu9fI/ozbL/7ompbSuyhBDhXyozqKkcHDF34KKhtqqGXowFkO5gI/4j0e6Wd6QODXB0DCmeN2gZyqHtb3PObnU4heYfeGWNI/BXDupi8Ytv3vHbd8rtJbYXOE7+uSJ79l+61wwrtyfRgjN/ITeq/eRJkaFsu8pkh4nV7LnmRNmtJ7jCCqIgRc4wXo0OJs14bKhCrXNHDHudEmxzH9wGibx3n/rN+X2feO1/8P8depHaidzYKJ7vMVc+EXt7HLLTynnjWt/a0u6GPKHnMkNxMT6Sr9Y5ssGqoxtdrKIbkIw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=xilinx.com; dmarc=pass action=none header.from=xilinx.com;
 dkim=pass header.d=xilinx.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=D/WKnR9iArX4mODeiAspSGsZcpqfDvaEsAeFSKhkbYs=;
 b=A3/lXhw1sLTKwmHPXAS/Emtjs+JHZMuKTQCFwHFsn3vBJud8064Au850Nj9+v20W0AUsHQGmT1qBzDDb2+fgqq5TrCBOvOM9FYDbGXzM16uljt5DJ8HfGXVi1EuzlXT0uAY/nKPsrS4pcacNU/iT2hZuqMRaElx4BsHhku2SWJ4=
From: Mubin Usman Sayyed <MUBINUSM@xilinx.com>
To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>, Stefano Stabellini
	<stefanos@xilinx.com>
CC: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>, Jovita
 Castelino <JOVITAC@xilinx.com>
Subject: RE: Help: Information required for AXI DMA passthrough for PL masters
 in ZCU102 dev kit
Thread-Topic: Help: Information required for AXI DMA passthrough for PL
 masters in ZCU102 dev kit
Thread-Index: AQHXU1uPDvzDIj5TKU6UC6uIsgqb4Kr49gcAgABGGACABOIRAIAAaB7A
Date: Tue, 1 Jun 2021 03:38:50 +0000
Message-ID:
 <BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9@BYAPR02MB4278.namprd02.prod.outlook.com>
References:
 <VI1PR05MB4430D5035127951DEC282E5189429@VI1PR05MB4430.eurprd05.prod.outlook.com>
 <VI1PR05MB44301EF272123606BA726C4989509@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105141402210.14426@sstabellini-ThinkPad-T480s>
 <DB7PR05MB4428427AC94C07C59D139FA489509@DB7PR05MB4428.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105141509220.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430B2C2C3FAC23D77021605892D9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105171729480.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB44301C4198B1E9EF7FD8864A892C9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105181109020.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430F091D37D614EFAD15C6E89239@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105271745210.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB443063BF7A7C514C1C9C37C489229@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105281140360.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430B62D7D79E47B784FA34C893F9@VI1PR05MB4430.eurprd05.prod.outlook.com>
In-Reply-To:
 <VI1PR05MB4430B62D7D79E47B784FA34C893F9@VI1PR05MB4430.eurprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-TNEF-Correlator:
authentication-results: evoleotech.com; dkim=none (message not signed)
 header.d=none;evoleotech.com; dmarc=none action=none header.from=xilinx.com;
x-originating-ip: [149.199.50.128]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 6a47c007-8da3-488c-757d-08d924aec57f
x-ms-traffictypediagnostic: SJ0PR02MB7790:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs:
 <SJ0PR02MB779037CEE02ADD09A880F0E0A13E9@SJ0PR02MB7790.namprd02.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:1060;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 zwsqYvTx30NBMTTK3WDgTyVxjXYrDNAiWzhYuoNcJDpmQHBVhtuFY+N+ogjSwmJ9TTKxscUrETmJB++nvsCXTwCdcE8Cmp7RMaMD3i9oGN/e6TD8HDbxpp4HBJsWSgcFzIqZMx8wJ/298/H0k9NPvSROv9UqKjfNhawzFIsmjKBaTr0H0chcTAAmV2DfbzuwDeqwUdCzQbT94u/UK5yd3SMSZQ8garka4wstzFH8I+tiG2xuoG3QmU/1j8gBddxveWHsnQOkxnrd9OsiDfhzFLnbUg4B5y3DWTpZblMxa9mixK/tEdxONYlYdZ/LSB2DdivBzcpVcffD/g/iBRMxag2+BNrppN+xcpE4/schjG47PQQk6H/jQLLMy6hw4UY8Ek2l3NG5N0t92oQAMeXT2Xo+kOOj6bGiheWScFPQ/Je7LfoBme7ZFDImNTbycmjYjh7SKpujDzgbwXwlN1ZIUNfG7b5xZMLz5hssvdrifmwad/FEc4QOOdvmfZUaVeSnZpiorX7padD7vKYV1tAYGzVHQpmDhVUpO/8edBbWLBs5yNxrVSsN5Hh8ZzO3RvH3RFyXMMX6VFBsRkT3lH99OA/BMs4TmLJZrDBQfZc0FO+A8FvsmEuMV7LVuLdDkVxSrKapEFiXa1+MnWM+neZvDR6d7D8jf4aK9h/cIRucvPspvUXcjB7l0Ms8OosO5um8Ny9ey5t07fRHmGsmxqUKK6bWJ0n60gaewsKul3BzEUtLl+vdTwQsLrb2jU5GKwE2
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR02MB4278.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39850400004)(136003)(376002)(346002)(366004)(396003)(66446008)(64756008)(66556008)(66476007)(83380400001)(66946007)(21615005)(33656002)(107886003)(166002)(8936002)(52536014)(30864003)(478600001)(8676002)(38100700002)(76116006)(122000001)(4326008)(54906003)(186003)(110136005)(26005)(5660300002)(45080400002)(86362001)(6636002)(316002)(2906002)(53546011)(6506007)(55016002)(7696005)(966005)(9686003)(71200400001)(579004);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 2
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?tB1iFt+GBFk3ZB/Dp1++KcxR/8fapZYLqxsN1KuK9LffPOciX4ZdqFgsD/xm?=
 =?us-ascii?Q?2JWW0+8Htg2I0TPAfhbyUQ2k2vjEmz/urP88evZp++v3NHSeZkveVlpFlVJl?=
 =?us-ascii?Q?h/UosR2Gfc49PUGSITmxlOiEYJoLGf3FH4+sGT9zjfUXvmTtRhANEtZzu6LQ?=
 =?us-ascii?Q?MWnDJ4ey0596VPMHKXT1Km6ciGUU6gRqEtXrkvUsRIkAB4DfVWyG7LFnBddY?=
 =?us-ascii?Q?QINTZ399lb+SEKPI4wZefYZof/gkXLNnTy8U5AtCYv8q0WjeS8wN4wNhrYCq?=
 =?us-ascii?Q?fYXijec0/iQPUHwUOUiqh3AW4YpmlZKt5HnwKB+w4CnAY5c+aI73kPbKh20k?=
 =?us-ascii?Q?QGn7bYSmyPaxKO8SRxT2/tlfa0L0GpCdlDEB6dTnGFGzTU4C95IT61l5ZCp2?=
 =?us-ascii?Q?w/mJxnKkitJpKfP71APBXQFRjVe61Dn3A5Csx2pv8cmAq+XgyfuDjmqWWfM9?=
 =?us-ascii?Q?4ThOJoYT3fgI1PI9Qu5AZ655ZV/umJloSx1lErZ2T8Aj69WyxdoCJV+maxdy?=
 =?us-ascii?Q?aq6IzapQChgfqekiZazzZiFQdmK0Itcacj6igcgurtkdtoIvu75BjZVR8WxF?=
 =?us-ascii?Q?cVs4HTkt7WIyEsAsyCrpTarfmr/Dcvea+Fx2E/VvJl4p2GxA8vGpFOXxTlYv?=
 =?us-ascii?Q?k4LmDoSiOlRuBD1xCagl15EQpV+WBNL7SdqCM9nn1EFbUGgTykQl/IngbwJf?=
 =?us-ascii?Q?rkftgrHbAwAzDEmAUM/3yCzQPc/6lpOBJkK9o56EqxU3ou8MJhZjqqFNTO4j?=
 =?us-ascii?Q?3tiREi5pC5DYz86ggJs2x/MWBNpo1ja0Cag+YHiwB3oPQ0t8HnmF3GcMd77G?=
 =?us-ascii?Q?Yo82gXkPn6PWT6m+JzDk4lc7/U3IQOOBKCWshNdlWzUon6X0g42Hh9zrAK0J?=
 =?us-ascii?Q?bAnQuhqUaOhwPz21yvoVMnfzHxM4/LRWSJDMcXJdPt24T+Ub/RhE/o3baRU0?=
 =?us-ascii?Q?WxSGI9pCoX3hVYuGTVKhrFjxXz0ticqbt7MTLj8D?=
x-ms-exchange-antispam-messagedata-1:
 DDKdXIOWZxSOh1vvgRe/fVNht1trG+q8TyBzEJGRzmJFwjgyv9RDKsljc4UZqCMk4yelkFEeVQsD5XTRfKtjRg3q+n+R0wFGiZukmS4dhovMJRGZ/xdXWRyCyGXUrEjoCu7AD1LLQFOFCOO6Omk3WuW+1vUrhknDbUfYLFI9pYjhDokFBThvDBtDGwSFROyH7ZBB8bIhdKMrEdn/FR47fGF1aiCGYT7CJRTxhFtKi79sAsY7SUTx7Qc3gncR1yIQBO4QvhIfl9nB2JBFyKjG2gMu4dj7F0BZ++j4Z1mEpSAtLN1+XbCUmTAJST9uEaoPCSl2M1aXs9NOXwvRBprcHzbE
Content-Type: multipart/alternative;
	boundary="_000_BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9BYAPR02MB4278namp_"
MIME-Version: 1.0
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BYAPR02MB4278.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6a47c007-8da3-488c-757d-08d924aec57f
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jun 2021 03:38:50.3908
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: B7ZeVjmFXUWy+IOwz/MiIFRAZVcyJNc7yoaf8iNCCttvANDtdJGCbYIX8zBd3gqJzcjIwgMM3lNCGDmfVkDoJg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB7790

--_000_BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9BYAPR02MB4278namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

In case of FreeRTOS,  you need to use APIs from FreeRTOS port for interrupt=
 handling  (https://github.com/Xilinx/embeddedsw/blob/master/ThirdParty/bsp=
/freertos10_xilinx/examples/freertos_intr_example.c#L192 and line 194). Ple=
ase make sure that you are taking care of that in DMA interrupt example .

Thanks,
Mubin

From: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
Sent: Tuesday, June 1, 2021 2:48 AM
To: Stefano Stabellini <stefanos@xilinx.com>
Cc: xen-users@lists.xenproject.org; Jovita Castelino <JOVITAC@xilinx.com>; =
Mubin Usman Sayyed <MUBINUSM@xilinx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit


Hi Stefano and Mubin,
Thank you very much for your replies.
@Stefano Stabellini<mailto:stefano.stabellini@xilinx.com> Sorry to bother y=
ou again, and thank you for pointing this out, the TTC0 is by default enabl=
ed for FreeRTOS to generate ticks, although this says only for R5 core, i w=
ould have never figured this out. As soon as I added the irqs and iomem and=
 gave a xen passthrough in the xen.dtsi as you have suggested, FreeRTOS gue=
st started working for other peripherals except for my DMA (FreeRTOS guest =
does not work with interrupt and DMA).

I can see my DMA is enabled because i have LEDs configured to blink for eve=
ry interrupt I get from the PL. I don't see my interrupts being processed, =
but when I destroy the guest, I get this output periodically when an interr=
upt occurs.

(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000
(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000
(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000

>From section 3.6 of the wiki https://xilinx-wiki.atlassian.net/wiki/spaces/=
A/pages/18842066/Xen+and+PL+Masters
Xen and PL Masters - Xilinx Wiki - Confluence<https://xilinx-wiki.atlassian=
.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters>
3.4 Stream IDs in the Device Tree. For Xen based systems the stream IDs of =
PL masters must be added to the Linux Dom0 device tree. Automated device tr=
ee generation does not generate the stream IDs for the PL masters so that t=
he user must add them into the device tree manually.
xilinx-wiki.atlassian.net
The fault indicates an unidentified stream ID has been received by the SMMU=
 as shown in the GFSR register. The GFSYNR1 register contains the stream ID=
 that was unidentified. A stream ID of 0xE80 was unidentified in the above =
fault.

But I think i have already added that in my smmu and iommu in xen.dtsi beca=
use my baremetal application works well as expected. I have attached my xen=
.dtsi, system.dtsi, baremetal.cfg(working) and freertos.cfg(not working).
What could I be missing here? Do I have to enable the ttc0 in the device tr=
ee?
Also what does (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq: =
99990 KHz mean when XEN boots up?
Thanks, I look forward for your reply.

Best Regards,
Prem


________________________________
From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.stab=
ellini@xilinx.com>>
Sent: Friday, May 28, 2021 20:43
To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.harikri=
shnan@evoleotech.com>>
Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.stabel=
lini@xilinx.com>>; xen-users@lists.xenproject.org<mailto:xen-users@lists.xe=
nproject.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xenpro=
ject.org>>; JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com> <JOVITAC@xilinx.c=
om<mailto:JOVITAC@xilinx.com>>; MUBINUSM@xilinx.com<mailto:MUBINUSM@xilinx.=
com> <MUBINUSM@xilinx.com<mailto:MUBINUSM@xilinx.com>>
Subject: Re: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit

>From the gpa address, it looks like FreeRTOS is trying to access the TTC
timer? If you look at device tree, the corresponding node is
timer@ff110000.

If FreeRTOS is configured to access the TTC timer, then you need to
assign it to it. Did you assign the TTC timer to the FreeRTOS domU by
any chance?

You can do that by adding:

irqs =3D [ 68, 69, 70 ]
iomem =3D [ "0xff110,1" ]


On Fri, 28 May 2021, Prem Harikrishnan wrote:
> Hi Stefano,
> Thanks for your reply. I am pretty sure I followed the steps you mentione=
d below to run the FreeRTOS hello world example. I already added
> printfs and i can see XEN cannot start the scheduler and i get the follow=
ing out put on XEN.
>
> Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]
> (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D2 memfl=
ags=3D0xc0 (0 of 64)
> (XEN) memory_map:add: dom2 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0
> (XEN) sched_null.c:344: 1 <-- d2v0
> (XEN) traps.c:1973:d2v0 HSR=3D0x93820007 pc=3D0x00000040012b08 gva=3D0xff=
11000c gpa=3D0x000000ff11000c
>
>
> I also see that according to this article
> https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as=
-a-Xen-Virtual-Machine/ba-p/947030
> [52662iFAD1733707609204?v=3Dv2]
> Partner: FreeRTOS as a Xen Virtual Machine - Community Forums
> Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks Wh=
at is FreeRTOS? The FreeRTOS kernel is a market leading real-time
> operating system for embedded systems. As embedded applications grow in c=
omplexity, there is a growing need for a lightweight kernel
> capable of task scheduling...
> forums.xilinx.com
> FreeRTOS does not run out of the box for XEN, although the article is 2 y=
ears old, I am not sure if there are any updates on this after
> that. Can you please confirm?
>
> Thanks and Best Regards,
> Prem
>
> _________________________________________________________________________=
__________________________________________________________________
> From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.st=
abellini@xilinx.com>>
> Sent: Friday, May 28, 2021 02:51
> To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.harik=
rishnan@evoleotech.com>>
> Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.stab=
ellini@xilinx.com>>; xen-users@lists.xenproject.org<mailto:xen-users@lists.=
xenproject.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xenp=
roject.org>>; JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>
> <JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>>; MUBINUSM@xilinx.com<mail=
to:MUBINUSM@xilinx.com> <MUBINUSM@xilinx.com<mailto:MUBINUSM@xilinx.com>>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL ma=
sters in ZCU102 dev kit
> +Mubin
>
>
> Hi Prem,
>
> Did you make sure to build FreeRTOS as "hypervisor guest"? I think
> FreeRTOS is built to run at EL3 by default so if that is not changed
> there are errors when run on any hypervisor. It is possible to build
> FreeRTOS to run on Xen but it requires a couple of manual steps:
>
> - source settings64.sh from Vitis builds
> - xsct
> - set WORKSPACE .
> - setws -switch $WORKSPACE
> - app create -name freertos-hello-world -template {FreeRTOS Hello World} =
-proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx
> - bsp config stdin psu_uart_1
> - bsp config stdout psu_uart_1
> - bsp config hypervisor_guest true
> - Go to application source path and modify the linker script start addres=
s to 0x40000000,
> - app build -name freertos-hello-world
> - Run command to generate BIN file from executable "aarch64-linux-gnu-obj=
copy -O binary --gap-fill 0  <elf path> BOOT.BIN"
>
> The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,
> might be able to provide additional info.
>
>
>
> On Thu, 27 May 2021, Prem Harikrishnan wrote:
> > Hi Stefano,
> > Sorry to bother you again.
> > I am currently trying to run my custom IP which sends periodic dma inte=
rrupts to the PS with cache coloring enabled. I have now compiled
> my
> > guest running with FreeRTOS and it generates a trap.
> > Petalinux and VITIS IDE Version is 2020.2.
> >
> > Please find the log attached. After the trap occurs, for every interrup=
t XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context fault:
> > fsr=3D0x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1
> >
> > root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing config fro=
m apu_freertos.cfg
> > (XEN) Dom1 colors: [ 8 ]
> > (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D1 mem=
flags=3D0xc0 (0 of 64)
> > (XEN) memory_map:add: dom1 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0
> > (XEN) memory_map:add: dom1 gfn=3Da0010 mfn=3Da0010 nr=3D1 cache=3D0
> > (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000
> > (XEN) sched_null.c:344: 1 <-- d1v0
> > (XEN) traps.c:1973:d1v0 HSR=3D0x93820007 pc=3D0x00000040013188 gva=3D0x=
ff11000c gpa=3D0x000000ff11000c
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> >
> > The same application works as expected without FreeRTOS, i.e as a barem=
etal guest. I look forward for your comment on this.
> >
> > Although i see performance degradation, normally i can measure delta ti=
me for each interrupt configured to 1ms (without XEN), with XEN
> for
> > the same measurement shows 16 ms for each interval (but the performance=
 is not a priority for now).
> > Thanks and Best Regards,
> > Prem
> >
> >________________________________________________________________________=
__________________________________________________________________
> _
> > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.=
stabellini@xilinx.com>>
> > Sent: Tuesday, May 18, 2021 20:09
> > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.har=
ikrishnan@evoleotech.com>>
> > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.st=
abellini@xilinx.com>>; xen-users@lists.xenproject.org<mailto:xen-users@list=
s.xenproject.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xe=
nproject.org>>;
> JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>
> > <JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>>
> > Subject: Re: Help: Information required for AXI DMA passthrough for PL =
masters in ZCU102 dev kit
> > Great to hear! Thank you for reporting back.
> >
> >
> > On Tue, 18 May 2021, Prem Harikrishnan wrote:
> > > Dear Stefano,
> > > Thank you very much for your guidance and support. I finally fixed th=
e issue. I made an error in base memory address like you pointed
> > out.
> > > I actually modified the base address correctly to 0x40000000 but the =
default C code had an additional offset of 0x1100000 , and the
> DomU
> > > memory allocated was only 8MB. I either had to change the offset or a=
llocate more memory to the DomU guest which i missed until you
> > pointed
> > > out. Additionally i had to set to AxPROT bits to 0x2 in Vivado and th=
e SMID required is 0xE80.
> > >
> > > Thanks again i was able get my custom IP also working as an AXI maste=
r from PL.
> > >
> > > Best Regards,
> > > Prem
> > >
> >>_______________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefan=
o.stabellini@xilinx.com>>
> > > Sent: Tuesday, May 18, 2021 02:35
> > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.h=
arikrishnan@evoleotech.com>>
> > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.=
stabellini@xilinx.com>>; Brian Woods <brian.woods@xilinx.com<mailto:brian.w=
oods@xilinx.com>>; Julien Grall <julien@xen.org<mailto:julien@xen.org>>; St=
efano
> > > Stabellini <sstabellini@kernel.org<mailto:sstabellini@kernel.org>>; x=
en-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org> <xen-u=
sers@lists.xenproject.org<mailto:xen-users@lists.xenproject.org>>; fnuv@xil=
inx.com<mailto:fnuv@xilinx.com>
> <fnuv@xilinx.com<mailto:fnuv@xilinx.com>>;
> > > edgari@xilinx.com<mailto:edgari@xilinx.com> <edgari@xilinx.com<mailto=
:edgari@xilinx.com>>; bwoods288@gmail.com<mailto:bwoods288@gmail.com> <bwoo=
ds288@gmail.com<mailto:bwoods288@gmail.com>>; Renato Costa Amorim <renato.a=
morim@evoleotech.com<mailto:renato.amorim@evoleotech.com>>;
> > > JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com> <JOVITAC@xilinx.com<mai=
lto:JOVITAC@xilinx.com>>
> > > Subject: Re: Help: Information required for AXI DMA passthrough for P=
L masters in ZCU102 dev kit
> > > Your configuration looks correct as far as I can tell.
> > >
> > > You need dtdev because it triggers the SMMU configuration for your PL
> > > block. You don't need device_tree because your baremetal application =
is
> > > not going to read it, but it is not going to cause any issues either.
> > >
> > > When you say "the execution does not complete the loop at line 244", =
it
> > > means that you see the execution entering the loop and then never
> > > leaving? Like an infinite loop?
> > >
> > > If so, then I imagine the issue could be that the application is
> > > crashing when trying to access TxBufferPtr, which is pointing to
> > > TX_BUFFER_BASE, which is:
> > >
> > >
> > > #ifndef DDR_BASE_ADDR
> > > #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \
> > >                  DEFAULT SET TO 0x01000000
> > > #define MEM_BASE_ADDR           0x01000000
> > > #else
> > > #define MEM_BASE_ADDR           (DDR_BASE_ADDR + 0x1000000)
> > > #endif
> > >
> > > #define TX_BUFFER_BASE          (MEM_BASE_ADDR + 0x00100000)
> > >
> > >
> > >
> > > Can you double check that TX_BUFFER_BASE is pointing to a correct
> > > address? Memory starts at 0x40000000 in a Xen DomU.
> > >
> > > Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?
> > >
> > >
> > > On Mon, 17 May 2021, Prem Harikrishnan wrote:
> > > > Hi Stefano,
> > > > Thanks again for your reply and your suggestion.  I did try to repl=
ace the Xil_DCacheFlushRange with Xil_DCacheInvalidateRange(works
> > only
> > > > in EL3), I added printfs to debug, i can see that the execution doe=
s not complete the loop at line 244
> > > > https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPL=
ib/drivers/axidma/examples/xaxidma_example_simple_poll.c  and
> > > > Xil_DCacheFlushRange is not reached. Please find attached my xen bo=
otlog.txt.
> > > > I am still unable to find out why??
> > > >
> > > > Can you please atleast verify that my xen.dtsi, and pl.dtb is corre=
ct? and do i need dtdev and device_tree in my guest config file
> when
> > > it
> > > > is already added to xen.dtsi?
> > > >
> > > > Best Regards,
> > > > Prem
> > > >
> > > >
> >>>______________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stef=
ano.stabellini@xilinx.com>>
> > > > Sent: Saturday, May 15, 2021 00:25
> > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem=
.harikrishnan@evoleotech.com>>
> > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefan=
o.stabellini@xilinx.com>>; Brian Woods <brian.woods@xilinx.com<mailto:brian=
.woods@xilinx.com>>; Julien Grall <julien@xen.org<mailto:julien@xen.org>>; =
Stefano
> > > > Stabellini <sstabellini@kernel.org<mailto:sstabellini@kernel.org>>;=
 xen-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org> <xen=
-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org>>; fnuv@x=
ilinx.com<mailto:fnuv@xilinx.com>
> > <fnuv@xilinx.com<mailto:fnuv@xilinx.com>>;
> > > > edgari@xilinx.com<mailto:edgari@xilinx.com> <edgari@xilinx.com<mail=
to:edgari@xilinx.com>>; bwoods288@gmail.com<mailto:bwoods288@gmail.com> <bw=
oods288@gmail.com<mailto:bwoods288@gmail.com>>; Renato Costa Amorim <renato=
.amorim@evoleotech.com<mailto:renato.amorim@evoleotech.com>>;
> > > > JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com> <JOVITAC@xilinx.com<m=
ailto:JOVITAC@xilinx.com>>
> > > > Subject: Re: Help: Information required for AXI DMA passthrough for=
 PL masters in ZCU102 dev kit
> > > > Hi Prem,
> > > >
> > > > Some older versions of Xil_DCacheFlushRange were implemented using
> > > > deprecated set/way instructions that are known to cause problems in
> > > > virtualized environments.
> > > >
> > > > More recent implementations use the "dc civac" intruction that shou=
ldn't
> > > > have any issues.
> > > >
> > > > Can you double-check that you are calling the 64-bit version implem=
ented
> > > > by CIVAC?
> > > >
> >>>https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb18eda0182f3=
577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#L4
> 1
> > 4
> > >
> > > >
> > > >
> > > >
> > > >
> > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > Hi Stefano,
> > > > > Thanks for your reply. Yes the axidma application is a baremetal =
application from the xilinx vitis ide example.
> > > > > Also yes, I have already run hello world as DomU guest, with UART=
1.
> > > > >
> > > > > I am using the simple mode using polling and not interrupts(they =
are disabled in the c code), which is Why I didn't include in the
> > > guest
> > > > > config file. This works well when I compile it normally (as EL3).=
 When compiled as hypervisor guest, the execution stops before the
> > > > > function xil_dcacheflushrange(). Please find the c code attached
> > > > > in https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcess=
orIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c
> > > > >
> > > > > I found the SATA example similar to my use case, also using DMA a=
nd SMMU. I just used it as a reference to create my pl.dtb to pass
> > > > through
> > > > > in the guest config.(from pl.dtsi, which I manually created).
> > > > >
> > > > > Thanks and Best Regards,
> > > > > Prem
> > > > >
> > > > > Get Outlook for Android
> > > > >
> >>>>_____________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:st=
efano.stabellini@xilinx.com>>
> > > > > Sent: Friday 14 May 2021, 23:16
> > > > > To: Prem Harikrishnan
> > > > > Cc: Brian Woods; Stefano Stabellini; Julien Grall; Stefano Stabel=
lini; xen-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org>=
; fnuv@xilinx.com<mailto:fnuv@xilinx.com>;
> > > > edgari@xilinx.com<mailto:edgari@xilinx.com>;
> > > > > bwoods288@gmail.com<mailto:bwoods288@gmail.com>; Renato Costa Amo=
rim; JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>
> > > > > Subject: Re: Help: Information required for AXI DMA passthrough f=
or PL masters in ZCU102 dev kit
> > > > >
> > > > > I take that the guest kernel "/bin/xaxidma_example_simple_poll_1.=
bin" is
> > > > > a baremetal application? Can you run it successfully, just printi=
ng
> > > > > "hello world", if you only assign the UART and nothing else?
> > > > >
> > > > > I am asking just to verify that you can run the baremetal VM
> > > > > successfully, aside from the PL device assignment.
> > > > >
> > > > >
> > > > > In regards to the PL device assignment, I'll let Brian answer on =
the
> > > > > Vivado configuration and SMID calculation. But I noticed that you=
 only
> > > > > assigned IRQ 54 to the DomU which is the one for UART1. You haven=
't
> > > > > assigned any IRQs for axi_dma_0. Looking at pl_from_petalinux.dts=
i, it
> > > > > looks like there are two related IRQs: 121 and 122.
> > > > >
> > > > > Finally, why did you mention SATA passthrough in your reply? I do=
n't
> > > > > follow: I cannot see any SATA controller assignment in your
> > > > > configuration.
> > > > >
> > > > >
> > > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > > Dear Brian, Stefano and Julien,
> > > > > >
> > > > > > Thank you very much for your replies.
> > > > > > Hi Brian and Stefano, Can you please help me with the following=
 questions?
> > > > > >
> > > > > > @Brian Woods Please find attached my vivado configuration, when=
 i added my AXI DMA now running on simple polling mode(previously
> i
> > > > tried
> > > > > it
> > > > > > with Scatter Gather mode), Run Automation automatically generat=
ed, 1 AXI Interconnect and 1 smart connect. Since there is only 1
> > > master
> > > > > and
> > > > > > I use the S_AXI _HP0_FPD, I finally get a value of 0xE80 for th=
e stream IDs.
> > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/=
Xen+and+PL+Masters According to this link section 6.5 I have
> > manually
> > > > tied
> > > > > > of AxPROT bits to value of 0x2 to create non secure transaction=
s. Can you please confirm that my Vivado configuration is correct?
> I
> > > can
> > > > > > update you soon with an ILA trace on Vivado.
> > > > > >
> > > > > > @Stefano Stabellini Please find attached my pl.dtsi generated f=
rom petalinux and system.dtsi also generated after manually adding
> > > > > xen.dtsi.
> > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561=
/Building+Xen+Hypervisor+with+Petalinux+2020.1+and+2020.2 Using
> this
> > > > SATA
> > > > > > passthrough, i made my own pl.dtsi for passthrough used in dma.=
cfg. I could really use your help to identify what is missing in
> my
> > > xen
> > > > > > configuration.
> > > > > >
> > > > > > Thanks and Best Regards,
> > > > > > Prem
> > > > > >
> >>>>>____________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > From: Brian Woods <brian.woods@xilinx.com<mailto:brian.woods@xi=
linx.com>>
> > > > > > Sent: Thursday, May 13, 2021 17:13
> > > > > > To: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:st=
efano.stabellini@xilinx.com>>
> > > > > > Cc: Julien Grall <julien@xen.org<mailto:julien@xen.org>>; Prem =
Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.harikrishnan@evo=
leotech.com>>; Stefano Stabellini
> > <sstabellini@kernel.org<mailto:sstabellini@kernel.org>>;
> > > > > > xen-users@lists.xenproject.org<mailto:xen-users@lists.xenprojec=
t.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.or=
g>>; brian.woods@xilinx.com<mailto:brian.woods@xilinx.com> <brian.woods@xil=
inx.com<mailto:brian.woods@xilinx.com>>; fnuv@xilinx.com<mailto:fnuv@xilinx=
.com>
> > > > > > <fnuv@xilinx.com<mailto:fnuv@xilinx.com>>; edgari@xilinx.com<ma=
ilto:edgari@xilinx.com> <edgari@xilinx.com<mailto:edgari@xilinx.com>>; bwoo=
ds288@gmail.com<mailto:bwoods288@gmail.com> <bwoods288@gmail.com<mailto:bwo=
ods288@gmail.com>>
> > > > > > Subject: Re: Help: Information required for AXI DMA passthrough=
 for PL masters in ZCU102 dev kit
> > > > > > Prem,
> > > > > >
> > > > > > Sorry for the late email, I've been under the weather and have =
been away
> > > > > > from my computer.  In the Zynq SOCs this is how the SMMU IDs in=
 PL are
> > > > > > calculated:
> > > > > >
> > > > > > 14-10: TBU bits
> > > > > > 9-6: Master ID bits
> > > > > > 5-0: AXI ID bits
> > > > > >
> > > > > > https://www.xilinx.com/support/documentation/user_guides/ug1085=
-zynq-ultrascale-trm.pdf
> > > > > > To look up the TBU value, see UG1085 and look for the "System M=
asters"
> > > > > > table which is table 16-4 on page 409.
> > > > > >
> > > > > > For the master ID, see UG1085 and look for the "Master IDs List=
" table
> > > > > > which is table 16-13 on page 429.
> > > > > >
> > > > > > The AXI ID bits is a bit trickery since it's going to be out in=
 PL.
> > > > > > See: https://www.xilinx.com/support/answers/69447.html
> > > > > > With SmartConnect all the AXI IDs are 0, they aren't passed on.=
  There
> > > > > > are work arounds.  Here's a couple of examples (with example nu=
mbers):
> > > > > >
> > > > > > AXI master -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001
> > > > > >
> > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000
> > > > > >
> > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > >                            -> PS slave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0000
> > > > > >
> > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000 (both share)
> > > > > >
> > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > >                                 -> PS slave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000 (both share)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0000 (both share)
> > > > > >
> > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS s=
lave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0002 (master #2)
> > > > > >
> > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS s=
lave port 0
> > > > > >                                                         -> PS s=
lave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0002 (master #2)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0002 (master #2)
> > > > > >
> > > > > > The "sideband -> SmartConenct -> sideband" can also be function=
ally
> > > > > > replaced with "AXI Interconnect" to my knowledge.  So the AXI I=
D bits are
> > > > > > fairly simple but with some caveats.
> > > > > >
> > > > > > You can also read in the SMMU faults from Xen and use:
> > > > > > https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_ar=
chitecture_specification.pdf
> > > > > > to decode them. That should tell you the SMMU IDs as well.
> > > > > >
> > > > > > Let me know if this isn't clear or you have any other questions=
.
> > > > > >
> > > > > > Brian
> > > > > >
> > > > > > On Mon, May 10, 2021 at 06:49:07PM -0700, Stefano Stabellini wr=
ote:
> > > > > > > On Mon, 10 May 2021, Julien Grall wrote:
> > > > > > > > On 26/04/2021 15:41, Prem Harikrishnan wrote:
> > > > > > > > > Hello everyone,
> > > > > > > >
> > > > > > > > Hi Prem,
> > > > > > > >
> > > > > > > > > I am using the latest version of the xilinx mpsoc zcu102 =
development board
> > > > > > > > > and i am trying to create a barematal application that us=
es the AXI DMA on
> > > > > > > > > the programmable logic, using the scatter gather example =
from the xilinx
> > > > > > > > > repository. This works perfectly well for the baremetal a=
pplication. The
> > > > > > > > > diagram below represents the information flow. The AXI DM=
A and the AXI data
> > > > > > > > > FIFO are in the Programable logic (FPGA). This AXI DMA is=
 out of the box IP
> > > > > > > > > from Vivado and uses a single channel (Does not use AxUSE=
R) which means the
> > > > > > > > > AXI ID cannot manually be set.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Now i want to make this as a baremetal hypervisor guest, =
in future this will
> > > > > > > > > be replaced by a custom IP with cache colouring enabled. =
I want to pass
> > > > > > > > > through the AXI DMA in the PL. (Not to be used by Dom0)
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I followed this tutorial Baremetal + DomU
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
842536/XEN+EL1+Baremetal+DomU>
> > > > > > > > > guest changed the base address to 0x4000000,(1GB allocate=
d to Dom-0) to
> > > > > > > > > create my EL1 binary. I used Petalinux 2020.2 to generate=
 my linux, xen
> > > > > > > > > image and use tftp to boot.
> > > > > > > > >
> > > > > > > > >  From what i understand from the xilinx tutorials Xen+and=
+PL+Masters
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
842066/Xen+and+PL+Masters>
> > > > > > > > > section 3 and MPSOC SMMU
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
841981/Zynq+UltraScale+MPSOC+SMMU>
> > > > > > > > > section 4, stream ids are required by the SMMU to get the=
 correct address
> > > > > > > > > translation.
> > > > > > > > >
> > > > > > > > > I am still unable to figure out how to get the iommu prop=
erty for my AXI DMA
> > > > > > > > > and how to set the dtdev config for my hypervisor guest.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I can also see some new updates with the XEN 2020.1 and 2=
020.2 releases
> > > > > > > > > which i can be useful to my application
> > > > > > > > >
> > > > > > > > >   *   1:1 memory mappings for Xen virtual machines, enabl=
ing device
> > > > > > > > >     assignments without SMMU
> > > > > > > > >   *
> > > > > > > > >       Static assignment of PL blocks, including bus-maste=
ring blocks, to
> > > > > > > > >     Xen virtual machines
> > > > > > > > >   *   Support for PL Device Passthrough to DomU in Xen
> > > > > > > >
> > > > > > > > You are usiong a version of Xen that has been customised by=
 Xilinx. So I would
> > > > > > > > recommend to contact them directly.
> > > > > > > >
> > > > > > > > I have CCed Stefano who might be able to help you.
> > > > > > >
> > > > > > > Hi Julien,
> > > > > > >
> > > > > > > Many thanks for CC'ing me, I missed the email.
> > > > > > >
> > > > > > >
> > > > > > > Hi Prem,
> > > > > > >
> > > > > > > Let me CC a few people that might be able to help.
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>

--_000_BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9BYAPR02MB4278namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"Segoe UI";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:"Segoe UI Light";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">In case of FreeRTOS, &nbsp;you need to use APIs from=
 FreeRTOS port for interrupt handling &nbsp;(<a href=3D"https://github.com/=
Xilinx/embeddedsw/blob/master/ThirdParty/bsp/freertos10_xilinx/examples/fre=
ertos_intr_example.c#L192">https://github.com/Xilinx/embeddedsw/blob/master=
/ThirdParty/bsp/freertos10_xilinx/examples/freertos_intr_example.c#L192</a>
 and line 194). Please make sure that you are taking care of that in DMA in=
terrupt example .<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks,<o:p></o:p></p>
<p class=3D"MsoNormal">Mubin<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Prem Harikrishnan &lt;prem.harikrishnan=
@evoleotech.com&gt;
<br>
<b>Sent:</b> Tuesday, June 1, 2021 2:48 AM<br>
<b>To:</b> Stefano Stabellini &lt;stefanos@xilinx.com&gt;<br>
<b>Cc:</b> xen-users@lists.xenproject.org; Jovita Castelino &lt;JOVITAC@xil=
inx.com&gt;; Mubin Usman Sayyed &lt;MUBINUSM@xilinx.com&gt;<br>
<b>Subject:</b> Re: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black"><o:p>&n=
bsp;</o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">Hi Stef=
ano and Mubin,<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">Thank y=
ou very much for your replies.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black"><a id=
=3D"OWAAM333653" href=3D"mailto:stefano.stabellini@xilinx.com"><span style=
=3D"font-family:&quot;Calibri&quot;,sans-serif;text-decoration:none">@Stefa=
no Stabellini</span></a> Sorry to bother you again, and
 thank you for pointing this out, the TTC0 is by default enabled for FreeRT=
OS to generate ticks, although this says only for R5 core, i would have nev=
er figured this out. As soon as I added the irqs and iomem and gave a xen p=
assthrough in the xen.dtsi as you
 have suggested, FreeRTOS guest started working for other peripherals excep=
t for my DMA (FreeRTOS guest does not work with interrupt and DMA).
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black"><o:p>&n=
bsp;</o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">I can s=
ee my DMA is enabled because i have LEDs configured to blink for every inte=
rrupt I get from the PL. I don't see my interrupts being processed, but whe=
n I destroy the guest, I get this output
 periodically when an interrupt occurs.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black"><o:p>&n=
bsp;</o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">(XEN) s=
mmu: /smmu@fd800000: Unexpected global fault, this could be serious<br>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000<o:p></o:p></span></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">(XEN) s=
mmu: /smmu@fd800000: Unexpected global fault, this could be serious<br>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000<o:p></o:p></span></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">(XEN) s=
mmu: /smmu@fd800000: Unexpected global fault, this could be serious<br>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black"><o:p>&n=
bsp;</o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">From se=
ction 3.6 of the wiki
<a href=3D"https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/X=
en+and+PL+Masters">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+M=
asters</a>
<o:p></o:p></span></p>
</div>
<div>
<div style=3D"margin-top:12.0pt;margin-bottom:12.0pt;min-width: 424px" id=
=3D"LPBorder_GTaHR0cHM6Ly94aWxpbngtd2lraS5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2Vz=
L0EvcGFnZXMvMTg4NDIwNjYvWGVuK2FuZCtQTCtNYXN0ZXJz">
<table class=3D"MsoNormalTable" border=3D"1" cellpadding=3D"0" width=3D"100=
%" style=3D"width:100.0%;border:solid #C8C8C8 1.0pt">
<tbody>
<tr>
<td width=3D"100%" valign=3D"top" style=3D"width:100.0%;border:none;padding=
:9.0pt 27.0pt 9.0pt 9.0pt">
<div style=3D"margin-right:6.0pt;margin-bottom:9.0pt" id=3D"LPTitle907457">
<p class=3D"MsoNormal"><span style=3D"font-size:16.0pt;font-family:&quot;Se=
goe UI Light&quot;,sans-serif"><a href=3D"https://xilinx-wiki.atlassian.net=
/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters" target=3D"_blank"><span s=
tyle=3D"text-decoration:none">Xen and PL Masters - Xilinx
 Wiki - Confluence</span></a><o:p></o:p></span></p>
</div>
<div style=3D"margin-right:6.0pt;margin-bottom:9.0pt;max-height: 100px;over=
flow:hidden" id=3D"LPDescription907457">
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Se=
goe UI&quot;,sans-serif;color:#666666">3.4 Stream IDs in the Device Tree. F=
or Xen based systems the stream IDs of PL masters must be added to the Linu=
x Dom0 device tree. Automated device tree generation
 does not generate the stream IDs for the PL masters so that the user must =
add them into the device tree manually.<o:p></o:p></span></p>
</div>
<div id=3D"LPMetadata907457">
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Se=
goe UI&quot;,sans-serif;color:#A6A6A6">xilinx-wiki.atlassian.net<o:p></o:p>=
</span></p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p class=3D"MsoNormal"><span style=3D"color:black">The fault indicates an u=
nidentified stream ID has been received by the SMMU as shown in the GFSR re=
gister. The GFSYNR1 register contains the stream ID that was unidentified. =
A stream ID of 0xE80 was unidentified
 in the above fault.</span><span style=3D"font-size:12.0pt;color:black"><o:=
p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black"><o:p>&n=
bsp;</o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">But I t=
hink i have already added that in my smmu and iommu in xen.dtsi because my =
baremetal application works well as expected. I have attached my xen.dtsi, =
system.dtsi, baremetal.cfg(working)
 and freertos.cfg(not working).<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">What co=
uld I be missing here? Do I have to enable the ttc0 in the device tree?
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">Also wh=
at does (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq: 99990 K=
Hz mean when XEN boots up?<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">Thanks,=
 I look forward for your reply.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black"><o:p>&n=
bsp;</o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">Best Re=
gards,<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">Prem<o:=
p></o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black"><o:p>&n=
bsp;</o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black"><o:p>&n=
bsp;</o:p></span></p>
</div>
<div class=3D"MsoNormal" align=3D"center" style=3D"text-align:center">
<hr size=3D"2" width=3D"98%" align=3D"center">
</div>
<div id=3D"divRplyFwdMsg">
<p class=3D"MsoNormal"><b><span style=3D"color:black">From:</span></b><span=
 style=3D"color:black"> Stefano Stabellini &lt;<a href=3D"mailto:stefano.st=
abellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
<b>Sent:</b> Friday, May 28, 2021 20:43<br>
<b>To:</b> Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishnan@evoleo=
tech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
<b>Cc:</b> Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@xili=
nx.com">stefano.stabellini@xilinx.com</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a> &lt;<a href=3D=
"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;;
<a href=3D"mailto:MUBINUSM@xilinx.com">MUBINUSM@xilinx.com</a> &lt;<a href=
=3D"mailto:MUBINUSM@xilinx.com">MUBINUSM@xilinx.com</a>&gt;<br>
<b>Subject:</b> Re: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit</span>
<o:p></o:p></p>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">From the gpa address, it looks like FreeRTOS is tryi=
ng to access the TTC<br>
timer? If you look at device tree, the corresponding node is<br>
timer@ff110000.<br>
<br>
If FreeRTOS is configured to access the TTC timer, then you need to<br>
assign it to it. Did you assign the TTC timer to the FreeRTOS domU by<br>
any chance?<br>
<br>
You can do that by adding:<br>
<br>
irqs =3D [ 68, 69, 70 ]<br>
iomem =3D [ &quot;0xff110,1&quot; ]<br>
<br>
<br>
On Fri, 28 May 2021, Prem Harikrishnan wrote:<br>
&gt; Hi Stefano,<br>
&gt; Thanks for your reply. I am pretty sure I followed the steps you menti=
oned below to run the FreeRTOS hello world example. I already added<br>
&gt; printfs and i can see XEN cannot start the scheduler and i get the fol=
lowing out put on XEN.<br>
&gt; <br>
&gt; Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]<br>
&gt; (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D2 me=
mflags=3D0xc0 (0 of 64)<br>
&gt; (XEN) memory_map:add: dom2 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0<br=
>
&gt; (XEN) sched_null.c:344: 1 &lt;-- d2v0<br>
&gt; (XEN) traps.c:1973:d2v0 HSR=3D0x93820007 pc=3D0x00000040012b08 gva=3D0=
xff11000c gpa=3D0x000000ff11000c<br>
&gt; <br>
&gt; <br>
&gt; I also see that according to this article<br>
&gt; <a href=3D"https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partn=
er-FreeRTOS-as-a-Xen-Virtual-Machine/ba-p/947030">
https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as-a=
-Xen-Virtual-Machine/ba-p/947030</a><br>
&gt; [52662iFAD1733707609204?v=3Dv2]<br>
&gt; Partner: FreeRTOS as a Xen Virtual Machine - Community Forums<br>
&gt; Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks=
 What is FreeRTOS? The FreeRTOS kernel is a market leading real-time<br>
&gt; operating system for embedded systems. As embedded applications grow i=
n complexity, there is a growing need for a lightweight kernel<br>
&gt; capable of task scheduling...<br>
&gt; forums.xilinx.com<br>
&gt; FreeRTOS does not run out of the box for XEN, although the article is =
2 years old, I am not sure if there are any updates on this after<br>
&gt; that. Can you please confirm?<br>
&gt; <br>
&gt; Thanks and Best Regards,<br>
&gt; Prem<br>
&gt; <br>
&gt; ______________________________________________________________________=
_____________________________________________________________________<br>
&gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@xili=
nx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; Sent: Friday, May 28, 2021 02:51<br>
&gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishnan@evoleote=
ch.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@xilinx=
.com">stefano.stabellini@xilinx.com</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a><br>
&gt; &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;; =
<a href=3D"mailto:MUBINUSM@xilinx.com">
MUBINUSM@xilinx.com</a> &lt;<a href=3D"mailto:MUBINUSM@xilinx.com">MUBINUSM=
@xilinx.com</a>&gt;<br>
&gt; Subject: Re: Help: Information required for AXI DMA passthrough for PL=
 masters in ZCU102 dev kit &nbsp;<br>
&gt; +Mubin<br>
&gt; <br>
&gt; <br>
&gt; Hi Prem,<br>
&gt; <br>
&gt; Did you make sure to build FreeRTOS as &quot;hypervisor guest&quot;? I=
 think<br>
&gt; FreeRTOS is built to run at EL3 by default so if that is not changed<b=
r>
&gt; there are errors when run on any hypervisor. It is possible to build<b=
r>
&gt; FreeRTOS to run on Xen but it requires a couple of manual steps:<br>
&gt; <br>
&gt; - source settings64.sh from Vitis builds<br>
&gt; - xsct<br>
&gt; - set WORKSPACE .<br>
&gt; - setws -switch $WORKSPACE<br>
&gt; - app create -name freertos-hello-world -template {FreeRTOS Hello Worl=
d} -proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx<br>
&gt; - bsp config stdin psu_uart_1<br>
&gt; - bsp config stdout psu_uart_1<br>
&gt; - bsp config hypervisor_guest true<br>
&gt; - Go to application source path and modify the linker script start add=
ress to 0x40000000,<br>
&gt; - app build -name freertos-hello-world<br>
&gt; - Run command to generate BIN file from executable &quot;aarch64-linux=
-gnu-objcopy -O binary --gap-fill 0&nbsp; &lt;elf path&gt; BOOT.BIN&quot;<b=
r>
&gt; <br>
&gt; The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,<=
br>
&gt; might be able to provide additional info.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On Thu, 27 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; Hi Stefano,<br>
&gt; &gt; Sorry to bother you again.<br>
&gt; &gt; I am currently trying to run my custom IP which sends periodic dm=
a interrupts to the PS with cache coloring enabled. I have now compiled<br>
&gt; my<br>
&gt; &gt; guest running with FreeRTOS and it generates a trap.<br>
&gt; &gt; Petalinux and VITIS IDE Version is 2020.2.<br>
&gt; &gt;<br>
&gt; &gt; Please find the log attached. After the trap occurs, for every in=
terrupt XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context fault:<br>
&gt; &gt; fsr=3D0x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt;<br>
&gt; &gt; root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing conf=
ig from apu_freertos.cfg<br>
&gt; &gt; (XEN) Dom1 colors: [ 8 ]<br>
&gt; &gt; (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=
=3D1 memflags=3D0xc0 (0 of 64)<br>
&gt; &gt; (XEN) memory_map:add: dom1 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=
=3D0<br>
&gt; &gt; (XEN) memory_map:add: dom1 gfn=3Da0010 mfn=3Da0010 nr=3D1 cache=
=3D0<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000<br>
&gt; &gt; (XEN) sched_null.c:344: 1 &lt;-- d1v0<br>
&gt; &gt; (XEN) traps.c:1973:d1v0 HSR=3D0x93820007 pc=3D0x00000040013188 gv=
a=3D0xff11000c gpa=3D0x000000ff11000c<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt;<br>
&gt; &gt; The same application works as expected without FreeRTOS, i.e as a=
 baremetal guest. I look forward for your comment on this.<br>
&gt; &gt;<br>
&gt; &gt; Although i see performance degradation, normally i can measure de=
lta time for each interrupt configured to 1ms (without XEN), with XEN<br>
&gt; for<br>
&gt; &gt; the same measurement shows 16 ms for each interval (but the perfo=
rmance is not a priority for now).<br>
&gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; Prem<br>
&gt; &gt;<br>
&gt; &gt;__________________________________________________________________=
________________________________________________________________________<br=
>
&gt; _<br>
&gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini=
@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; Sent: Tuesday, May 18, 2021 20:09<br>
&gt; &gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishnan@evo=
leotech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; &gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@x=
ilinx.com">stefano.stabellini@xilinx.com</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;<br>
&gt; <a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a><br>
&gt; &gt; &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&=
gt;<br>
&gt; &gt; Subject: Re: Help: Information required for AXI DMA passthrough f=
or PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; Great to hear! Thank you for reporting back.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Tue, 18 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; Dear Stefano,<br>
&gt; &gt; &gt; Thank you very much for your guidance and support. I finally=
 fixed the issue. I made an error in base memory address like you pointed<b=
r>
&gt; &gt; out.<br>
&gt; &gt; &gt; I actually modified the base address correctly to 0x40000000=
 but the default C code had an additional offset of 0x1100000 , and the<br>
&gt; DomU<br>
&gt; &gt; &gt; memory allocated was only 8MB. I either had to change the of=
fset or allocate more memory to the DomU guest which i missed until you<br>
&gt; &gt; pointed<br>
&gt; &gt; &gt; out. Additionally i had to set to AxPROT bits to 0x2 in Viva=
do and the SMID required is 0xE80.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Thanks again i was able get my custom IP also working as an =
AXI master from PL.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; Prem<br>
&gt; &gt; &gt;<br>
&gt; &gt;&gt;______________________________________________________________=
___________________________________________________________________________=
<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabe=
llini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; Sent: Tuesday, May 18, 2021 02:35<br>
&gt; &gt; &gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishna=
n@evoleotech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; &gt; &gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabell=
ini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;; Brian Woods &lt;<a h=
ref=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;; Julie=
n Grall &lt;<a href=3D"mailto:julien@xen.org">julien@xen.org</a>&gt;;
 Stefano<br>
&gt; &gt; &gt; Stabellini &lt;<a href=3D"mailto:sstabellini@kernel.org">sst=
abellini@kernel.org</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a><br>
&gt; &lt;<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a>&gt;;<br>
&gt; &gt; &gt; <a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com</a> &=
lt;<a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com</a>&gt;;
<a href=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a> &lt;<a href=
=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a>&gt;; Renato Costa A=
morim &lt;<a href=3D"mailto:renato.amorim@evoleotech.com">renato.amorim@evo=
leotech.com</a>&gt;;<br>
&gt; &gt; &gt; <a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>=
 &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; Subject: Re: Help: Information required for AXI DMA passthro=
ugh for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; Your configuration looks correct as far as I can tell.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; You need dtdev because it triggers the SMMU configuration fo=
r your PL<br>
&gt; &gt; &gt; block. You don't need device_tree because your baremetal app=
lication is<br>
&gt; &gt; &gt; not going to read it, but it is not going to cause any issue=
s either.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; When you say &quot;the execution does not complete the loop =
at line 244&quot;, it<br>
&gt; &gt; &gt; means that you see the execution entering the loop and then =
never<br>
&gt; &gt; &gt; leaving? Like an infinite loop?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; If so, then I imagine the issue could be that the applicatio=
n is<br>
&gt; &gt; &gt; crashing when trying to access TxBufferPtr, which is pointin=
g to<br>
&gt; &gt; &gt; TX_BUFFER_BASE, which is:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; #ifndef DDR_BASE_ADDR<br>
&gt; &gt; &gt; #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \=
<br>
&gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT SET TO 0x01000000<br>
&gt; &gt; &gt; #define MEM_BASE_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; 0x01000000<br>
&gt; &gt; &gt; #else<br>
&gt; &gt; &gt; #define MEM_BASE_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; (DDR_BASE_ADDR + 0x1000000)<br>
&gt; &gt; &gt; #endif<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; #define TX_BUFFER_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; (MEM_BASE_ADDR + 0x00100000)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Can you double check that TX_BUFFER_BASE is pointing to a co=
rrect<br>
&gt; &gt; &gt; address? Memory starts at 0x40000000 in a Xen DomU.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Mon, 17 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; Hi Stefano,<br>
&gt; &gt; &gt; &gt; Thanks again for your reply and your suggestion.&nbsp; =
I did try to replace the Xil_DCacheFlushRange with Xil_DCacheInvalidateRang=
e(works<br>
&gt; &gt; only<br>
&gt; &gt; &gt; &gt; in EL3), I added printfs to debug, i can see that the e=
xecution does not complete the loop at line 244<br>
&gt; &gt; &gt; &gt; <a href=3D"https://github.com/Xilinx/embeddedsw/blob/ma=
ster/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_example_simple_po=
ll.c">
https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drive=
rs/axidma/examples/xaxidma_example_simple_poll.c</a>&nbsp; and<br>
&gt; &gt; &gt; &gt; Xil_DCacheFlushRange is not reached. Please find attach=
ed my xen bootlog.txt.<br>
&gt; &gt; &gt; &gt; I am still unable to find out why??<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can you please atleast verify that my xen.dtsi, and pl.=
dtb is correct? and do i need dtdev and device_tree in my guest config file=
<br>
&gt; when<br>
&gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt; is already added to xen.dtsi?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;__________________________________________________________=
___________________________________________________________________________=
___<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.=
stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; Sent: Saturday, May 15, 2021 00:25<br>
&gt; &gt; &gt; &gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikr=
ishnan@evoleotech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; &gt; &gt; &gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.st=
abellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;; Brian Woods &lt=
;<a href=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;; =
Julien Grall &lt;<a href=3D"mailto:julien@xen.org">julien@xen.org</a>&gt;;
 Stefano<br>
&gt; &gt; &gt; &gt; Stabellini &lt;<a href=3D"mailto:sstabellini@kernel.org=
">sstabellini@kernel.org</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a><br>
&gt; &gt; &lt;<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a>&gt;;<b=
r>
&gt; &gt; &gt; &gt; <a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com<=
/a> &lt;<a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com</a>&gt;;
<a href=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a> &lt;<a href=
=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a>&gt;; Renato Costa A=
morim &lt;<a href=3D"mailto:renato.amorim@evoleotech.com">renato.amorim@evo=
leotech.com</a>&gt;;<br>
&gt; &gt; &gt; &gt; <a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.co=
m</a> &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;<=
br>
&gt; &gt; &gt; &gt; Subject: Re: Help: Information required for AXI DMA pas=
sthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Some older versions of Xil_DCacheFlushRange were implem=
ented using<br>
&gt; &gt; &gt; &gt; deprecated set/way instructions that are known to cause=
 problems in<br>
&gt; &gt; &gt; &gt; virtualized environments.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; More recent implementations use the &quot;dc civac&quot=
; intruction that shouldn't<br>
&gt; &gt; &gt; &gt; have any issues.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can you double-check that you are calling the 64-bit ve=
rsion implemented<br>
&gt; &gt; &gt; &gt; by CIVAC?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;<a href=3D"https://github.com/Xilinx/embeddedsw/blob/875dc=
c7a4dca47ccb18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/=
xil_cache.c#L4">https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb=
18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#=
L4</a><br>
&gt; 1<br>
&gt; &gt; 4<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Fri, 14 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; Hi Stefano,&nbsp;<br>
&gt; &gt; &gt; &gt; &gt; Thanks for your reply. Yes the axidma application =
is a baremetal application from the xilinx vitis ide example.&nbsp;<br>
&gt; &gt; &gt; &gt; &gt; Also yes, I have already run hello world as DomU g=
uest, with UART1.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I am using the simple mode using polling and not i=
nterrupts(they are disabled in the c code), which is Why I didn't include i=
n the<br>
&gt; &gt; &gt; guest<br>
&gt; &gt; &gt; &gt; &gt; config file. This works well when I compile it nor=
mally (as EL3). When compiled as hypervisor guest, the execution stops befo=
re the<br>
&gt; &gt; &gt; &gt; &gt; function xil_dcacheflushrange(). Please find the c=
 code attached<br>
&gt; &gt; &gt; &gt; &gt; in&nbsp;<a href=3D"https://github.com/Xilinx/embed=
dedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_exam=
ple_simple_poll.c">https://github.com/Xilinx/embeddedsw/blob/master/XilinxP=
rocessorIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c</a>&nbs=
p;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I found the SATA example similar to my use case, a=
lso using DMA and SMMU. I just used it as a reference to create my pl.dtb t=
o pass<br>
&gt; &gt; &gt; &gt; through<br>
&gt; &gt; &gt; &gt; &gt; in the guest config.(from pl.dtsi, which I manuall=
y created).<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Get Outlook for Android<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;______________________________________________________=
___________________________________________________________________________=
______<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:ste=
fano.stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; Sent: Friday 14 May 2021, 23:16<br>
&gt; &gt; &gt; &gt; &gt; To: Prem Harikrishnan<br>
&gt; &gt; &gt; &gt; &gt; Cc: Brian Woods; Stefano Stabellini; Julien Grall;=
 Stefano Stabellini; <a href=3D"mailto:xen-users@lists.xenproject.org">
xen-users@lists.xenproject.org</a>; <a href=3D"mailto:fnuv@xilinx.com">fnuv=
@xilinx.com</a>;<br>
&gt; &gt; &gt; &gt; <a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com<=
/a>;<br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"mailto:bwoods288@gmail.com">bwoods288@g=
mail.com</a>; Renato Costa Amorim;
<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a><br>
&gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required for AXI DM=
A passthrough for PL masters in ZCU102 dev kit<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I take that the guest kernel &quot;/bin/xaxidma_ex=
ample_simple_poll_1.bin&quot; is<br>
&gt; &gt; &gt; &gt; &gt; a baremetal application? Can you run it successful=
ly, just printing<br>
&gt; &gt; &gt; &gt; &gt; &quot;hello world&quot;, if you only assign the UA=
RT and nothing else?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I am asking just to verify that you can run the ba=
remetal VM<br>
&gt; &gt; &gt; &gt; &gt; successfully, aside from the PL device assignment.=
<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; In regards to the PL device assignment, I'll let B=
rian answer on the<br>
&gt; &gt; &gt; &gt; &gt; Vivado configuration and SMID calculation. But I n=
oticed that you only<br>
&gt; &gt; &gt; &gt; &gt; assigned IRQ 54 to the DomU which is the one for U=
ART1. You haven't<br>
&gt; &gt; &gt; &gt; &gt; assigned any IRQs for axi_dma_0. Looking at pl_fro=
m_petalinux.dtsi, it<br>
&gt; &gt; &gt; &gt; &gt; looks like there are two related IRQs: 121 and 122=
.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Finally, why did you mention SATA passthrough in y=
our reply? I don't<br>
&gt; &gt; &gt; &gt; &gt; follow: I cannot see any SATA controller assignmen=
t in your<br>
&gt; &gt; &gt; &gt; &gt; configuration.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; On Fri, 14 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; Dear Brian, Stefano and Julien,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thank you very much for your replies.<br>
&gt; &gt; &gt; &gt; &gt; &gt; Hi Brian and Stefano, Can you please help me =
with the following questions?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; @Brian Woods Please find attached my vivado c=
onfiguration, when i added my AXI DMA now running on simple polling mode(pr=
eviously<br>
&gt; i<br>
&gt; &gt; &gt; &gt; tried<br>
&gt; &gt; &gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt; &gt; &gt; with Scatter Gather mode), Run Automation aut=
omatically generated, 1 AXI Interconnect and 1 smart connect. Since there i=
s only 1<br>
&gt; &gt; &gt; master<br>
&gt; &gt; &gt; &gt; &gt; and<br>
&gt; &gt; &gt; &gt; &gt; &gt; I use the S_AXI _HP0_FPD, I finally get a val=
ue of 0xE80 for the stream IDs.<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://xilinx-wiki.atlassian.net/=
wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+M=
asters</a> According to this link section 6.5 I have<br>
&gt; &gt; manually<br>
&gt; &gt; &gt; &gt; tied<br>
&gt; &gt; &gt; &gt; &gt; &gt; of AxPROT bits to value of 0x2 to create non =
secure transactions. Can you please confirm that my Vivado configuration is=
 correct?<br>
&gt; I<br>
&gt; &gt; &gt; can<br>
&gt; &gt; &gt; &gt; &gt; &gt; update you soon with an ILA trace on Vivado.<=
br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; @Stefano Stabellini Please find attached my p=
l.dtsi generated from petalinux and system.dtsi also generated after manual=
ly adding<br>
&gt; &gt; &gt; &gt; &gt; xen.dtsi.<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://xilinx-wiki.atlassian.net/=
wiki/spaces/A/pages/384663561/Building+Xen+Hypervisor+with+Petalinux+2020.1=
+and+2020.2">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561/Building+Xe=
n+Hypervisor+with+Petalinux+2020.1+and+2020.2</a> Using<br>
&gt; this<br>
&gt; &gt; &gt; &gt; SATA<br>
&gt; &gt; &gt; &gt; &gt; &gt; passthrough, i made my own pl.dtsi for passth=
rough used in dma.cfg. I could really use your help to identify what is mis=
sing in<br>
&gt; my<br>
&gt; &gt; &gt; xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; configuration.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;__________________________________________________=
___________________________________________________________________________=
_________<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; &gt; From: Brian Woods &lt;<a href=3D"mailto:brian=
.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sent: Thursday, May 13, 2021 17:13<br>
&gt; &gt; &gt; &gt; &gt; &gt; To: Stefano Stabellini &lt;<a href=3D"mailto:=
stefano.stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Cc: Julien Grall &lt;<a href=3D"mailto:julien=
@xen.org">julien@xen.org</a>&gt;; Prem Harikrishnan &lt;<a href=3D"mailto:p=
rem.harikrishnan@evoleotech.com">prem.harikrishnan@evoleotech.com</a>&gt;; =
Stefano Stabellini<br>
&gt; &gt; &lt;<a href=3D"mailto:sstabellini@kernel.org">sstabellini@kernel.=
org</a>&gt;;<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"mailto:xen-users@lists.xenproject.=
org">xen-users@lists.xenproject.org</a> &lt;<a href=3D"mailto:xen-users@lis=
ts.xenproject.org">xen-users@lists.xenproject.org</a>&gt;;
<a href=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a> &lt;<a=
 href=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;;
<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"mailto:fnuv@xilinx.com">fnuv@x=
ilinx.com</a>&gt;; <a href=3D"mailto:edgari@xilinx.com">
edgari@xilinx.com</a> &lt;<a href=3D"mailto:edgari@xilinx.com">edgari@xilin=
x.com</a>&gt;;
<a href=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a> &lt;<a href=
=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required for A=
XI DMA passthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sorry for the late email, I've been under the=
 weather and have been away<br>
&gt; &gt; &gt; &gt; &gt; &gt; from my computer.&nbsp; In the Zynq SOCs this=
 is how the SMMU IDs in PL are<br>
&gt; &gt; &gt; &gt; &gt; &gt; calculated:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 14-10: TBU bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; 9-6: Master ID bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; 5-0: AXI ID bits<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://www.xilinx.com/support/doc=
umentation/user_guides/ug1085-zynq-ultrascale-trm.pdf">
https://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultras=
cale-trm.pdf</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; To look up the TBU value, see UG1085 and look=
 for the &quot;System Masters&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; table which is table 16-4 on page 409.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; For the master ID, see UG1085 and look for th=
e &quot;Master IDs List&quot; table<br>
&gt; &gt; &gt; &gt; &gt; &gt; which is table 16-13 on page 429.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; The AXI ID bits is a bit trickery since it's =
going to be out in PL.<br>
&gt; &gt; &gt; &gt; &gt; &gt; See: <a href=3D"https://www.xilinx.com/suppor=
t/answers/69447.html">https://www.xilinx.com/support/answers/69447.html</a>=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; With SmartConnect all the AXI IDs are 0, they=
 aren't passed on.&nbsp; There<br>
&gt; &gt; &gt; &gt; &gt; &gt; are work arounds.&nbsp; Here's a couple of ex=
amples (with example numbers):<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; SmartConnect -&gt; PS slave =
port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; SmartConnect -&gt; PS slave =
port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; SmartConnect -&gt; PS s=
lave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; SmartConnect -&gt; PS s=
lave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS=
 slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; sideband -&gt; SmartCon=
nect -&gt; sideband -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; sideband -&gt; SmartCon=
nect -&gt; sideband -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS slave=
 port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; The &quot;sideband -&gt; SmartConenct -&gt; s=
ideband&quot; can also be functionally<br>
&gt; &gt; &gt; &gt; &gt; &gt; replaced with &quot;AXI Interconnect&quot; to=
 my knowledge.&nbsp; So the AXI ID bits are<br>
&gt; &gt; &gt; &gt; &gt; &gt; fairly simple but with some caveats.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; You can also read in the SMMU faults from Xen=
 and use:<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://static.docs.arm.com/ihi006=
2/dc/IHI0062D_c_system_mmu_architecture_specification.pdf">
https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_architecture_s=
pecification.pdf</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; to decode them. That should tell you the SMMU=
 IDs as well.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Let me know if this isn't clear or you have a=
ny other questions.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Brian<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Mon, May 10, 2021 at 06:49:07PM -0700, Ste=
fano Stabellini wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; On Mon, 10 May 2021, Julien Grall wrote:=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On 26/04/2021 15:41, Prem Harikrish=
nan wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hello everyone,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am using the latest version =
of the xilinx mpsoc zcu102 development board<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and i am trying to create a ba=
rematal application that uses the AXI DMA on<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the programmable logic, using =
the scatter gather example from the xilinx<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; repository. This works perfect=
ly well for the baremetal application. The<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; diagram below represents the i=
nformation flow. The AXI DMA and the AXI data<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; FIFO are in the Programable lo=
gic (FPGA). This AXI DMA is out of the box IP<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; from Vivado and uses a single =
channel (Does not use AxUSER) which means the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; AXI ID cannot manually be set.=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Now i want to make this as a b=
aremetal hypervisor guest, in future this will<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; be replaced by a custom IP wit=
h cache colouring enabled. I want to pass<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; through the AXI DMA in the PL.=
 (Not to be used by Dom0)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I followed this tutorial Barem=
etal + DomU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremetal+DomU">htt=
ps://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremet=
al+DomU</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; guest changed the base address=
 to 0x4000000,(1GB allocated to Dom-0) to<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; create my EL1 binary. I used P=
etalinux 2020.2 to generate my linux, xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; image and use tftp to boot.<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp; From what i understand f=
rom the xilinx tutorials Xen+and+PL+Masters<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">https:/=
/xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters<=
/a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section 3 and MPSOC SMMU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraScale+MPSOC+SMMU"=
>https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraS=
cale+MPSOC+SMMU</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section 4, stream ids are requ=
ired by the SMMU to get the correct address<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; translation.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am still unable to figure ou=
t how to get the iommu property for my AXI DMA<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and how to set the dtdev confi=
g for my hypervisor guest.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I can also see some new update=
s with the XEN 2020.1 and 2020.2 releases<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; which i can be useful to my ap=
plication<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *&nbsp; &nbsp;1:1 =
memory mappings for Xen virtual machines, enabling device<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; assign=
ments without SMMU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;Static assignment of PL blocks, including bus-mastering blocks, to<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Xen vi=
rtual machines<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *&nbsp; &nbsp;Supp=
ort for PL Device Passthrough to DomU in Xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; You are usiong a version of Xen tha=
t has been customised by Xilinx. So I would<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; recommend to contact them directly.=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I have CCed Stefano who might be ab=
le to help you.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Julien,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Many thanks for CC'ing me, I missed the =
email.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Let me CC a few people that might be abl=
e to help.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; <br>
&gt; <o:p></o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9BYAPR02MB4278namp_--


From xen-users-bounces@lists.xenproject.org Tue Jun 01 12:43:28 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Jun 2021 12:43:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.134588.250776 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo3jF-00080H-Jx; Tue, 01 Jun 2021 12:42:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 134588.250776; Tue, 01 Jun 2021 12:42:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo3jF-000808-F6; Tue, 01 Jun 2021 12:42:41 +0000
Received: by outflank-mailman (input) for mailman id 134588;
 Mon, 31 May 2021 21:18:20 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8N5Y=K2=evoleotech.com=prem.harikrishnan@srs-us1.protection.inumbo.net>)
 id 1lnpIi-0003h9-0F
 for xen-users@lists.xenproject.org; Mon, 31 May 2021 21:18:20 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown
 [40.107.7.104]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 7e8677e1-ebe1-401b-8905-81b0302e6211;
 Mon, 31 May 2021 21:18:13 +0000 (UTC)
Received: from VI1PR05MB4430.eurprd05.prod.outlook.com (2603:10a6:803:46::26)
 by VI1PR05MB4430.eurprd05.prod.outlook.com (2603:10a6:803:46::26)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20; Mon, 31 May
 2021 21:18:09 +0000
Received: from VI1PR05MB4430.eurprd05.prod.outlook.com
 ([fe80::ed7b:e5f9:618a:3eea]) by VI1PR05MB4430.eurprd05.prod.outlook.com
 ([fe80::ed7b:e5f9:618a:3eea%3]) with mapi id 15.20.4173.030; Mon, 31 May 2021
 21:18:09 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e8677e1-ebe1-401b-8905-81b0302e6211
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PmMH/LY+obVlo8kvPm5Sk0mKEkACgR0xI6ueiIKnvqhGn1CC1RTJSRrHImGP+PE2mBgAx1j7JTsCt4JtWfjD9f5r3eZeShTMk0xCPrKKt4gOXCjbznJkk9Y1AEKqwi2mZK+0ArzeOZDNbyK0dKeu5WjyUDbFE/PAvyCpzr0bM3jvhvId/Yy3MDOoTQpv8Qy3ZVwmWdKu2Yf4d0cOjQMx6I5KvaC5A2SmIiFYkPjblBsC4AUJWmm/sDNH+C407WTxAYGbFHmspRiONPTvQuaSonkW+ErldhxAn6HEog+BS4kgmT7lh8DyWOFn8OJR+pX7LR3s36ItoKfXb/iPHC1ceQ==
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-SenderADCheck;
 bh=I+SUIcnXPMh/ARvfc+H9cg0DfdergMnKtaT+e95zXuc=;
 b=cN5Kaz0urLyc2HWyKbtgbt9rCyGCY9lMzLpKIiWaAoTBY467NTGDkeYE5DtxNXxzVt8vt/9Sjhcfq7iaZ0R0d+D7d34XUSoZC90oVAwtlgAcPByJFaCtf1xk0YTcEUFmEUlnc/d8JmmxpbFt+l4LTEpttoDQnFDwVKBR2RbS7OIEh+L3QxXG7HBehWvlhId7uVzxoAN9Gfp5ZXmu+4gN5TqE8sszAW/5Zgu5CyK4OD/fnyqrlLphcXE7Dz2itueEDrmGEbN+gny7kqICNbGpxyztarQh/QtNYo59BzDfU/LAy2qgvqRwNLgjMDBg01D4boUS17Zd10ZapevNg8kMPg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=evoleotech.com; dmarc=pass action=none
 header.from=evoleotech.com; dkim=pass header.d=evoleotech.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=evoleotechnologies.onmicrosoft.com;
 s=selector2-evoleotechnologies-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=I+SUIcnXPMh/ARvfc+H9cg0DfdergMnKtaT+e95zXuc=;
 b=LnobvXdufgiJN64Kwy3xb5+P+GPlOPAdW7x9qSWfDwag5K+jy8jLCmhxGTkMu4UYrDT4SXBvr3aCY5yOIJMjvguPa+7lMUzA0ijPTw+eQMYkekjJdQk8kRYFk5mht2AtWzEhMZnRjmXjY4qBukiEomyw4wcM+j4JsQJ2vgmwtAA=
From: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
To: Stefano Stabellini <stefano.stabellini@xilinx.com>
CC: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>,
	"JOVITAC@xilinx.com" <JOVITAC@xilinx.com>, "MUBINUSM@xilinx.com"
	<MUBINUSM@xilinx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL masters
 in ZCU102 dev kit
Thread-Topic: Help: Information required for AXI DMA passthrough for PL
 masters in ZCU102 dev kit
Thread-Index:
 AQHXOqMAPewhx/0ZVE2fbco7T/GOXKrdFmqAgACD+ICABAVYgIABrlVrgABJdgCAAATIt4AADpaAgARL642AAI9eAIABDuwsgAAXkYCADm9DhoAAJeiAgADiys+AAEjyAIAE2Mzd
Date: Mon, 31 May 2021 21:18:08 +0000
Message-ID:
 <VI1PR05MB4430B62D7D79E47B784FA34C893F9@VI1PR05MB4430.eurprd05.prod.outlook.com>
References:
 <VI1PR05MB4430D5035127951DEC282E5189429@VI1PR05MB4430.eurprd05.prod.outlook.com>
 <VI1PR05MB44301EF272123606BA726C4989509@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105141402210.14426@sstabellini-ThinkPad-T480s>
 <DB7PR05MB4428427AC94C07C59D139FA489509@DB7PR05MB4428.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105141509220.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430B2C2C3FAC23D77021605892D9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105171729480.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB44301C4198B1E9EF7FD8864A892C9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105181109020.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430F091D37D614EFAD15C6E89239@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105271745210.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB443063BF7A7C514C1C9C37C489229@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105281140360.7272@sstabellini-ThinkPad-T480s>
In-Reply-To: <alpine.DEB.2.21.2105281140360.7272@sstabellini-ThinkPad-T480s>
Accept-Language: en-US
Content-Language: en-US
X-Mentions: stefano.stabellini@xilinx.com
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
authentication-results: xilinx.com; dkim=none (message not signed)
 header.d=none;xilinx.com; dmarc=none action=none header.from=evoleotech.com;
x-originating-ip: [80.81.14.67]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 102c0cdd-ece7-4759-0bc1-08d9247996f3
x-ms-traffictypediagnostic: VI1PR05MB4430:
x-microsoft-antispam-prvs:
 <VI1PR05MB44300D022D62CB43A91CD911893F9@VI1PR05MB4430.eurprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:3276;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 3FugOTWkm60kMWC97lrNVlMH6x5teWmS0IrcNuRf78OgUj+uwM9C7JXbV65X9QwilLDewSqRDhFYHChgptBQEmYK+c9xrX1SE6HbXqJWuuTTA9q8tvfPBJdggs8XjQP5b/airfWG2wvqe2RBG7cs5/eWTNbGDkLGZhUENmt+eZiumc+jpbxdvURFSpJ4wLLYQSrqlk0DXjzNp1Sdz23GoQUdbr4gAN+17tpNwajL/fUCE64PQvq8k3kvIi4gXVZL+SnQ6p3PuPW3tRNbi+/sHcPCD5AqyUWz0QAIcTOuyoT8pEXHc5Tfc1KgP5Cy7gUiBdwrK3Cza5cnzImdD7b3AWaAZ3+UiWgKTotfkPGwteWqJgIq6Ihx/CV1wIwSmAdphtbTN5bHiogmDAUmRpN3jIN6vXjos6LfSXmqAOk/wdodttZvjv5V6974XlpVzJ4mybcGBZ+38pfKRTYicwdR6XXHhk/o5wIuF18Ijov3+zN1xHZ+lu8xLbGweVUSPXmIpPKGYXqqTgiAN42fSWUHefamtl6YyXYlXx/erBm98mPzeotnquQJ2j5cSlKiJDDSpFZZpvf/1f5jIEeIARK/giJnEShuSw9zcBhHmHtbb5NVsiVZIMWwVC0R0dCHF/oD+IN0hsnCQaXrwxDL7OVIz2SoCh/WaHSXn0oWFWgkK8oHKz2qCB8EdBKWi1R7H0YDtucpqSj5JaKXfYui+Qhszw==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR05MB4430.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(136003)(396003)(346002)(39830400003)(366004)(45080400002)(8676002)(5660300002)(6916009)(99936003)(66576008)(19627405001)(21615005)(71200400001)(55016002)(54906003)(966005)(2906002)(33656002)(478600001)(38100700002)(83380400001)(66446008)(66946007)(64756008)(66556008)(30864003)(9686003)(53546011)(8936002)(4326008)(86362001)(186003)(316002)(7696005)(166002)(52536014)(26005)(6506007)(76116006)(122000001)(66476007)(44832011)(579004);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata:
 =?us-ascii?Q?i9jU+CP57C0qawh7FxGAh1qBvmlzqLjyZ2YimsOvRWqsBupr+7w0k8uCNdVy?=
 =?us-ascii?Q?X6C4YZ0ThEss9dMTZjf4BWWpwiQ/D6P/qO85UeR3kYuqjnSfzTJ5/dC55Kei?=
 =?us-ascii?Q?43l9LJlW78mu7Q/DnQiKi4hZiRdnuxHnsZnme2Kwu6mB4lREBrlXRx1NVqrG?=
 =?us-ascii?Q?3KA9facSK33k7DGWlb/qDV2UzcwdGPFsJmTraEZHBo2LJXmdqirAHcPyXgE2?=
 =?us-ascii?Q?qgGsf/zpyw2YgYhxCUVEF2NeJDMIFw0gpzUEo4lQGt/ZwdmqTpc+vYCHVuXk?=
 =?us-ascii?Q?J+bB7VPRHu6Q+AYF/gJfR4Glx4wteh4YGo011lcaulLIYR1up9dxmu92mXhp?=
 =?us-ascii?Q?P5DFcHSobulzx2XWIDljF7vLczmHQ44gu/M3icuVoYetJmHWfK5rIpa1mk4C?=
 =?us-ascii?Q?cIpt33Z06FguFGRdpAat0oauRi/rYd34zZGO8ZDh+W71v5wubrHhgOj5nS3m?=
 =?us-ascii?Q?NaZnRIMNMXylpT8qHaJN4SpMEjqJBA89ri6DSmHrp2yAB1IGwAZBl5dOscp2?=
 =?us-ascii?Q?TkskJcvAeEY/LFM6M7o+f9EHUCeUB9GzHMi092MTbn2HKwOgP3fU13EKekPx?=
 =?us-ascii?Q?0Qn7VOIs2W6hVV3YHB8lFpGB0iiNaSZu5gwZLfvs91a2hqJSQTE24A02EfRr?=
 =?us-ascii?Q?O9M2KyHruxoHT7pyXfwrdvGCeaT6MCwgTeaBUEIaL6NX/6zhSd9S7PPuyDBo?=
 =?us-ascii?Q?uUIHsBA5ej0OIvwTtV+KmvJNOsYEUR7XMeHtcNUGJv0oQ4xOAhAMYm50M1rS?=
 =?us-ascii?Q?97ouG/nNUf2EOWdl/rW24HOcpYB3GTCXjEr/JMd+lxoB1aLTQAWjHiCnCJxr?=
 =?us-ascii?Q?5lx44gBqeuko/khC9m5ut/rPuSluF+k0gknIAW5R/azy6jodGLrklIzGsQtM?=
 =?us-ascii?Q?Zp+2cx3tIowNssMGz+opOjRVzY7FBLflnEf5AD4eWS1XHGuLazRTYBUrNiRO?=
 =?us-ascii?Q?x9NA7zPm7fpU9AOdKIlkw+xVCfFcrqgmHa9j0j1FBl+Yo/Fw/OwShE1M538c?=
 =?us-ascii?Q?xmB22ADLPru4JSOG0ljJasZKkCcuBb4fpaOulXZ1WV4UEbPJhdshsUZxoJtY?=
 =?us-ascii?Q?ETlURNejNHI1yWqIALduwlrGIH/dfF3XOlTU4889GAOsQhbVSb41LiImLFj0?=
 =?us-ascii?Q?GWGm1OwmRWlpz0k8jSUBYXqX1WR9h7ajtmn5XqwN+iG2VU8kUR89wKv41NHl?=
 =?us-ascii?Q?hh9kCa5N2Owb8C6/Kqw447CC3pvI1SMUIvY69lkkarmSsMMI1CYuRLPik6qe?=
 =?us-ascii?Q?SFLfxrCHeBQMjrHnn8vy9wiqZC6doIm8xth5KfsTH+6C3neusgQ/2hvk+M5f?=
 =?us-ascii?Q?IO4=3D?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/mixed;
	boundary="_009_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_"
MIME-Version: 1.0
X-OriginatorOrg: evoleotech.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR05MB4430.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 102c0cdd-ece7-4759-0bc1-08d9247996f3
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 May 2021 21:18:08.9530
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 34ebafdc-9323-4bfe-8f24-6bb9f135b0a9
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: QibDiNfFy5lK/tEVqNPNKXeUKf/gvf7ECGNfuSYHKP8jb51XGfLlSp93Td8ydI5yNWjRTHDPmywd1e3mv7T+3RKonmbjub/V5Hj4js13REcziig3QVeP9qJIOMGSu2HV
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4430

--_009_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_
Content-Type: multipart/alternative;
	boundary="_000_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_"

--_000_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable


Hi Stefano and Mubin,
Thank you very much for your replies.
@Stefano Stabellini<mailto:stefano.stabellini@xilinx.com> Sorry to bother y=
ou again, and thank you for pointing this out, the TTC0 is by default enabl=
ed for FreeRTOS to generate ticks, although this says only for R5 core, i w=
ould have never figured this out. As soon as I added the irqs and iomem and=
 gave a xen passthrough in the xen.dtsi as you have suggested, FreeRTOS gue=
st started working for other peripherals except for my DMA (FreeRTOS guest =
does not work with interrupt and DMA).

I can see my DMA is enabled because i have LEDs configured to blink for eve=
ry interrupt I get from the PL. I don't see my interrupts being processed, =
but when I destroy the guest, I get this output periodically when an interr=
upt occurs.

(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000
(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000
(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000

>From section 3.6 of the wiki https://xilinx-wiki.atlassian.net/wiki/spaces/=
A/pages/18842066/Xen+and+PL+Masters
Xen and PL Masters - Xilinx Wiki - Confluence<https://xilinx-wiki.atlassian=
.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters>
3.4 Stream IDs in the Device Tree. For Xen based systems the stream IDs of =
PL masters must be added to the Linux Dom0 device tree. Automated device tr=
ee generation does not generate the stream IDs for the PL masters so that t=
he user must add them into the device tree manually.
xilinx-wiki.atlassian.net
The fault indicates an unidentified stream ID has been received by the SMMU=
 as shown in the GFSR register. The GFSYNR1 register contains the stream ID=
 that was unidentified. A stream ID of 0xE80 was unidentified in the above =
fault.

But I think i have already added that in my smmu and iommu in xen.dtsi beca=
use my baremetal application works well as expected. I have attached my xen=
.dtsi, system.dtsi, baremetal.cfg(working) and freertos.cfg(not working).
What could I be missing here? Do I have to enable the ttc0 in the device tr=
ee?
Also what does (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq: =
99990 KHz mean when XEN boots up?
Thanks, I look forward for your reply.

Best Regards,
Prem


________________________________
From: Stefano Stabellini <stefano.stabellini@xilinx.com>
Sent: Friday, May 28, 2021 20:43
To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists.xen=
project.org <xen-users@lists.xenproject.org>; JOVITAC@xilinx.com <JOVITAC@x=
ilinx.com>; MUBINUSM@xilinx.com <MUBINUSM@xilinx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit

>From the gpa address, it looks like FreeRTOS is trying to access the TTC
timer? If you look at device tree, the corresponding node is
timer@ff110000.

If FreeRTOS is configured to access the TTC timer, then you need to
assign it to it. Did you assign the TTC timer to the FreeRTOS domU by
any chance?

You can do that by adding:

irqs =3D [ 68, 69, 70 ]
iomem =3D [ "0xff110,1" ]


On Fri, 28 May 2021, Prem Harikrishnan wrote:
> Hi Stefano,
> Thanks for your reply. I am pretty sure I followed the steps you mentione=
d below to run the FreeRTOS hello world example. I already added
> printfs and i can see XEN cannot start the scheduler and i get the follow=
ing out put on XEN.
>
> Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]
> (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D2 memfl=
ags=3D0xc0 (0 of 64)
> (XEN) memory_map:add: dom2 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0
> (XEN) sched_null.c:344: 1 <-- d2v0
> (XEN) traps.c:1973:d2v0 HSR=3D0x93820007 pc=3D0x00000040012b08 gva=3D0xff=
11000c gpa=3D0x000000ff11000c
>
>
> I also see that according to this article
> https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as=
-a-Xen-Virtual-Machine/ba-p/947030
> [52662iFAD1733707609204?v=3Dv2]
> Partner: FreeRTOS as a Xen Virtual Machine - Community Forums
> Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks Wh=
at is FreeRTOS? The FreeRTOS kernel is a market leading real-time
> operating system for embedded systems. As embedded applications grow in c=
omplexity, there is a growing need for a lightweight kernel
> capable of task scheduling...
> forums.xilinx.com
> FreeRTOS does not run out of the box for XEN, although the article is 2 y=
ears old, I am not sure if there are any updates on this after
> that. Can you please confirm?
>
> Thanks and Best Regards,
> Prem
>
> _________________________________________________________________________=
__________________________________________________________________
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> Sent: Friday, May 28, 2021 02:51
> To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists.x=
enproject.org <xen-users@lists.xenproject.org>; JOVITAC@xilinx.com
> <JOVITAC@xilinx.com>; MUBINUSM@xilinx.com <MUBINUSM@xilinx.com>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL ma=
sters in ZCU102 dev kit
> +Mubin
>
>
> Hi Prem,
>
> Did you make sure to build FreeRTOS as "hypervisor guest"? I think
> FreeRTOS is built to run at EL3 by default so if that is not changed
> there are errors when run on any hypervisor. It is possible to build
> FreeRTOS to run on Xen but it requires a couple of manual steps:
>
> - source settings64.sh from Vitis builds
> - xsct
> - set WORKSPACE .
> - setws -switch $WORKSPACE
> - app create -name freertos-hello-world -template {FreeRTOS Hello World} =
-proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx
> - bsp config stdin psu_uart_1
> - bsp config stdout psu_uart_1
> - bsp config hypervisor_guest true
> - Go to application source path and modify the linker script start addres=
s to 0x40000000,
> - app build -name freertos-hello-world
> - Run command to generate BIN file from executable "aarch64-linux-gnu-obj=
copy -O binary --gap-fill 0  <elf path> BOOT.BIN"
>
> The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,
> might be able to provide additional info.
>
>
>
> On Thu, 27 May 2021, Prem Harikrishnan wrote:
> > Hi Stefano,
> > Sorry to bother you again.
> > I am currently trying to run my custom IP which sends periodic dma inte=
rrupts to the PS with cache coloring enabled. I have now compiled
> my
> > guest running with FreeRTOS and it generates a trap.
> > Petalinux and VITIS IDE Version is 2020.2.
> >
> > Please find the log attached. After the trap occurs, for every interrup=
t XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context fault:
> > fsr=3D0x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1
> >
> > root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing config fro=
m apu_freertos.cfg
> > (XEN) Dom1 colors: [ 8 ]
> > (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D1 mem=
flags=3D0xc0 (0 of 64)
> > (XEN) memory_map:add: dom1 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0
> > (XEN) memory_map:add: dom1 gfn=3Da0010 mfn=3Da0010 nr=3D1 cache=3D0
> > (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000
> > (XEN) sched_null.c:344: 1 <-- d1v0
> > (XEN) traps.c:1973:d1v0 HSR=3D0x93820007 pc=3D0x00000040013188 gva=3D0x=
ff11000c gpa=3D0x000000ff11000c
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> >
> > The same application works as expected without FreeRTOS, i.e as a barem=
etal guest. I look forward for your comment on this.
> >
> > Although i see performance degradation, normally i can measure delta ti=
me for each interrupt configured to 1ms (without XEN), with XEN
> for
> > the same measurement shows 16 ms for each interval (but the performance=
 is not a priority for now).
> > Thanks and Best Regards,
> > Prem
> >
> >________________________________________________________________________=
__________________________________________________________________
> _
> > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > Sent: Tuesday, May 18, 2021 20:09
> > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists=
.xenproject.org <xen-users@lists.xenproject.org>;
> JOVITAC@xilinx.com
> > <JOVITAC@xilinx.com>
> > Subject: Re: Help: Information required for AXI DMA passthrough for PL =
masters in ZCU102 dev kit
> > Great to hear! Thank you for reporting back.
> >
> >
> > On Tue, 18 May 2021, Prem Harikrishnan wrote:
> > > Dear Stefano,
> > > Thank you very much for your guidance and support. I finally fixed th=
e issue. I made an error in base memory address like you pointed
> > out.
> > > I actually modified the base address correctly to 0x40000000 but the =
default C code had an additional offset of 0x1100000 , and the
> DomU
> > > memory allocated was only 8MB. I either had to change the offset or a=
llocate more memory to the DomU guest which i missed until you
> > pointed
> > > out. Additionally i had to set to AxPROT bits to 0x2 in Vivado and th=
e SMID required is 0xE80.
> > >
> > > Thanks again i was able get my custom IP also working as an AXI maste=
r from PL.
> > >
> > > Best Regards,
> > > Prem
> > >
> >>_______________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > Sent: Tuesday, May 18, 2021 02:35
> > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; Brian Woods <=
brian.woods@xilinx.com>; Julien Grall <julien@xen.org>; Stefano
> > > Stabellini <sstabellini@kernel.org>; xen-users@lists.xenproject.org <=
xen-users@lists.xenproject.org>; fnuv@xilinx.com
> <fnuv@xilinx.com>;
> > > edgari@xilinx.com <edgari@xilinx.com>; bwoods288@gmail.com <bwoods288=
@gmail.com>; Renato Costa Amorim <renato.amorim@evoleotech.com>;
> > > JOVITAC@xilinx.com <JOVITAC@xilinx.com>
> > > Subject: Re: Help: Information required for AXI DMA passthrough for P=
L masters in ZCU102 dev kit
> > > Your configuration looks correct as far as I can tell.
> > >
> > > You need dtdev because it triggers the SMMU configuration for your PL
> > > block. You don't need device_tree because your baremetal application =
is
> > > not going to read it, but it is not going to cause any issues either.
> > >
> > > When you say "the execution does not complete the loop at line 244", =
it
> > > means that you see the execution entering the loop and then never
> > > leaving? Like an infinite loop?
> > >
> > > If so, then I imagine the issue could be that the application is
> > > crashing when trying to access TxBufferPtr, which is pointing to
> > > TX_BUFFER_BASE, which is:
> > >
> > >
> > > #ifndef DDR_BASE_ADDR
> > > #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \
> > >                  DEFAULT SET TO 0x01000000
> > > #define MEM_BASE_ADDR           0x01000000
> > > #else
> > > #define MEM_BASE_ADDR           (DDR_BASE_ADDR + 0x1000000)
> > > #endif
> > >
> > > #define TX_BUFFER_BASE          (MEM_BASE_ADDR + 0x00100000)
> > >
> > >
> > >
> > > Can you double check that TX_BUFFER_BASE is pointing to a correct
> > > address? Memory starts at 0x40000000 in a Xen DomU.
> > >
> > > Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?
> > >
> > >
> > > On Mon, 17 May 2021, Prem Harikrishnan wrote:
> > > > Hi Stefano,
> > > > Thanks again for your reply and your suggestion.  I did try to repl=
ace the Xil_DCacheFlushRange with Xil_DCacheInvalidateRange(works
> > only
> > > > in EL3), I added printfs to debug, i can see that the execution doe=
s not complete the loop at line 244
> > > > https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPL=
ib/drivers/axidma/examples/xaxidma_example_simple_poll.c  and
> > > > Xil_DCacheFlushRange is not reached. Please find attached my xen bo=
otlog.txt.
> > > > I am still unable to find out why??
> > > >
> > > > Can you please atleast verify that my xen.dtsi, and pl.dtb is corre=
ct? and do i need dtdev and device_tree in my guest config file
> when
> > > it
> > > > is already added to xen.dtsi?
> > > >
> > > > Best Regards,
> > > > Prem
> > > >
> > > >
> >>>______________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > Sent: Saturday, May 15, 2021 00:25
> > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; Brian Woods=
 <brian.woods@xilinx.com>; Julien Grall <julien@xen.org>; Stefano
> > > > Stabellini <sstabellini@kernel.org>; xen-users@lists.xenproject.org=
 <xen-users@lists.xenproject.org>; fnuv@xilinx.com
> > <fnuv@xilinx.com>;
> > > > edgari@xilinx.com <edgari@xilinx.com>; bwoods288@gmail.com <bwoods2=
88@gmail.com>; Renato Costa Amorim <renato.amorim@evoleotech.com>;
> > > > JOVITAC@xilinx.com <JOVITAC@xilinx.com>
> > > > Subject: Re: Help: Information required for AXI DMA passthrough for=
 PL masters in ZCU102 dev kit
> > > > Hi Prem,
> > > >
> > > > Some older versions of Xil_DCacheFlushRange were implemented using
> > > > deprecated set/way instructions that are known to cause problems in
> > > > virtualized environments.
> > > >
> > > > More recent implementations use the "dc civac" intruction that shou=
ldn't
> > > > have any issues.
> > > >
> > > > Can you double-check that you are calling the 64-bit version implem=
ented
> > > > by CIVAC?
> > > >
> >>>https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb18eda0182f3=
577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#L4
> 1
> > 4
> > >
> > > >
> > > >
> > > >
> > > >
> > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > Hi Stefano,
> > > > > Thanks for your reply. Yes the axidma application is a baremetal =
application from the xilinx vitis ide example.
> > > > > Also yes, I have already run hello world as DomU guest, with UART=
1.
> > > > >
> > > > > I am using the simple mode using polling and not interrupts(they =
are disabled in the c code), which is Why I didn't include in the
> > > guest
> > > > > config file. This works well when I compile it normally (as EL3).=
 When compiled as hypervisor guest, the execution stops before the
> > > > > function xil_dcacheflushrange(). Please find the c code attached
> > > > > in https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcess=
orIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c
> > > > >
> > > > > I found the SATA example similar to my use case, also using DMA a=
nd SMMU. I just used it as a reference to create my pl.dtb to pass
> > > > through
> > > > > in the guest config.(from pl.dtsi, which I manually created).
> > > > >
> > > > > Thanks and Best Regards,
> > > > > Prem
> > > > >
> > > > > Get Outlook for Android
> > > > >
> >>>>_____________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > Sent: Friday 14 May 2021, 23:16
> > > > > To: Prem Harikrishnan
> > > > > Cc: Brian Woods; Stefano Stabellini; Julien Grall; Stefano Stabel=
lini; xen-users@lists.xenproject.org; fnuv@xilinx.com;
> > > > edgari@xilinx.com;
> > > > > bwoods288@gmail.com; Renato Costa Amorim; JOVITAC@xilinx.com
> > > > > Subject: Re: Help: Information required for AXI DMA passthrough f=
or PL masters in ZCU102 dev kit
> > > > >
> > > > > I take that the guest kernel "/bin/xaxidma_example_simple_poll_1.=
bin" is
> > > > > a baremetal application? Can you run it successfully, just printi=
ng
> > > > > "hello world", if you only assign the UART and nothing else?
> > > > >
> > > > > I am asking just to verify that you can run the baremetal VM
> > > > > successfully, aside from the PL device assignment.
> > > > >
> > > > >
> > > > > In regards to the PL device assignment, I'll let Brian answer on =
the
> > > > > Vivado configuration and SMID calculation. But I noticed that you=
 only
> > > > > assigned IRQ 54 to the DomU which is the one for UART1. You haven=
't
> > > > > assigned any IRQs for axi_dma_0. Looking at pl_from_petalinux.dts=
i, it
> > > > > looks like there are two related IRQs: 121 and 122.
> > > > >
> > > > > Finally, why did you mention SATA passthrough in your reply? I do=
n't
> > > > > follow: I cannot see any SATA controller assignment in your
> > > > > configuration.
> > > > >
> > > > >
> > > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > > Dear Brian, Stefano and Julien,
> > > > > >
> > > > > > Thank you very much for your replies.
> > > > > > Hi Brian and Stefano, Can you please help me with the following=
 questions?
> > > > > >
> > > > > > @Brian Woods Please find attached my vivado configuration, when=
 i added my AXI DMA now running on simple polling mode(previously
> i
> > > > tried
> > > > > it
> > > > > > with Scatter Gather mode), Run Automation automatically generat=
ed, 1 AXI Interconnect and 1 smart connect. Since there is only 1
> > > master
> > > > > and
> > > > > > I use the S_AXI _HP0_FPD, I finally get a value of 0xE80 for th=
e stream IDs.
> > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/=
Xen+and+PL+Masters According to this link section 6.5 I have
> > manually
> > > > tied
> > > > > > of AxPROT bits to value of 0x2 to create non secure transaction=
s. Can you please confirm that my Vivado configuration is correct?
> I
> > > can
> > > > > > update you soon with an ILA trace on Vivado.
> > > > > >
> > > > > > @Stefano Stabellini Please find attached my pl.dtsi generated f=
rom petalinux and system.dtsi also generated after manually adding
> > > > > xen.dtsi.
> > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561=
/Building+Xen+Hypervisor+with+Petalinux+2020.1+and+2020.2 Using
> this
> > > > SATA
> > > > > > passthrough, i made my own pl.dtsi for passthrough used in dma.=
cfg. I could really use your help to identify what is missing in
> my
> > > xen
> > > > > > configuration.
> > > > > >
> > > > > > Thanks and Best Regards,
> > > > > > Prem
> > > > > >
> >>>>>____________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > From: Brian Woods <brian.woods@xilinx.com>
> > > > > > Sent: Thursday, May 13, 2021 17:13
> > > > > > To: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > > Cc: Julien Grall <julien@xen.org>; Prem Harikrishnan <prem.hari=
krishnan@evoleotech.com>; Stefano Stabellini
> > <sstabellini@kernel.org>;
> > > > > > xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>=
; brian.woods@xilinx.com <brian.woods@xilinx.com>; fnuv@xilinx.com
> > > > > > <fnuv@xilinx.com>; edgari@xilinx.com <edgari@xilinx.com>; bwood=
s288@gmail.com <bwoods288@gmail.com>
> > > > > > Subject: Re: Help: Information required for AXI DMA passthrough=
 for PL masters in ZCU102 dev kit
> > > > > > Prem,
> > > > > >
> > > > > > Sorry for the late email, I've been under the weather and have =
been away
> > > > > > from my computer.  In the Zynq SOCs this is how the SMMU IDs in=
 PL are
> > > > > > calculated:
> > > > > >
> > > > > > 14-10: TBU bits
> > > > > > 9-6: Master ID bits
> > > > > > 5-0: AXI ID bits
> > > > > >
> > > > > > https://www.xilinx.com/support/documentation/user_guides/ug1085=
-zynq-ultrascale-trm.pdf
> > > > > > To look up the TBU value, see UG1085 and look for the "System M=
asters"
> > > > > > table which is table 16-4 on page 409.
> > > > > >
> > > > > > For the master ID, see UG1085 and look for the "Master IDs List=
" table
> > > > > > which is table 16-13 on page 429.
> > > > > >
> > > > > > The AXI ID bits is a bit trickery since it's going to be out in=
 PL.
> > > > > > See: https://www.xilinx.com/support/answers/69447.html
> > > > > > With SmartConnect all the AXI IDs are 0, they aren't passed on.=
  There
> > > > > > are work arounds.  Here's a couple of examples (with example nu=
mbers):
> > > > > >
> > > > > > AXI master -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001
> > > > > >
> > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000
> > > > > >
> > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > >                            -> PS slave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0000
> > > > > >
> > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000 (both share)
> > > > > >
> > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > >                                 -> PS slave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000 (both share)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0000 (both share)
> > > > > >
> > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS s=
lave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0002 (master #2)
> > > > > >
> > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS s=
lave port 0
> > > > > >                                                         -> PS s=
lave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0002 (master #2)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0002 (master #2)
> > > > > >
> > > > > > The "sideband -> SmartConenct -> sideband" can also be function=
ally
> > > > > > replaced with "AXI Interconnect" to my knowledge.  So the AXI I=
D bits are
> > > > > > fairly simple but with some caveats.
> > > > > >
> > > > > > You can also read in the SMMU faults from Xen and use:
> > > > > > https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_ar=
chitecture_specification.pdf
> > > > > > to decode them. That should tell you the SMMU IDs as well.
> > > > > >
> > > > > > Let me know if this isn't clear or you have any other questions=
.
> > > > > >
> > > > > > Brian
> > > > > >
> > > > > > On Mon, May 10, 2021 at 06:49:07PM -0700, Stefano Stabellini wr=
ote:
> > > > > > > On Mon, 10 May 2021, Julien Grall wrote:
> > > > > > > > On 26/04/2021 15:41, Prem Harikrishnan wrote:
> > > > > > > > > Hello everyone,
> > > > > > > >
> > > > > > > > Hi Prem,
> > > > > > > >
> > > > > > > > > I am using the latest version of the xilinx mpsoc zcu102 =
development board
> > > > > > > > > and i am trying to create a barematal application that us=
es the AXI DMA on
> > > > > > > > > the programmable logic, using the scatter gather example =
from the xilinx
> > > > > > > > > repository. This works perfectly well for the baremetal a=
pplication. The
> > > > > > > > > diagram below represents the information flow. The AXI DM=
A and the AXI data
> > > > > > > > > FIFO are in the Programable logic (FPGA). This AXI DMA is=
 out of the box IP
> > > > > > > > > from Vivado and uses a single channel (Does not use AxUSE=
R) which means the
> > > > > > > > > AXI ID cannot manually be set.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Now i want to make this as a baremetal hypervisor guest, =
in future this will
> > > > > > > > > be replaced by a custom IP with cache colouring enabled. =
I want to pass
> > > > > > > > > through the AXI DMA in the PL. (Not to be used by Dom0)
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I followed this tutorial Baremetal + DomU
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
842536/XEN+EL1+Baremetal+DomU>
> > > > > > > > > guest changed the base address to 0x4000000,(1GB allocate=
d to Dom-0) to
> > > > > > > > > create my EL1 binary. I used Petalinux 2020.2 to generate=
 my linux, xen
> > > > > > > > > image and use tftp to boot.
> > > > > > > > >
> > > > > > > > >  From what i understand from the xilinx tutorials Xen+and=
+PL+Masters
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
842066/Xen+and+PL+Masters>
> > > > > > > > > section 3 and MPSOC SMMU
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
841981/Zynq+UltraScale+MPSOC+SMMU>
> > > > > > > > > section 4, stream ids are required by the SMMU to get the=
 correct address
> > > > > > > > > translation.
> > > > > > > > >
> > > > > > > > > I am still unable to figure out how to get the iommu prop=
erty for my AXI DMA
> > > > > > > > > and how to set the dtdev config for my hypervisor guest.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I can also see some new updates with the XEN 2020.1 and 2=
020.2 releases
> > > > > > > > > which i can be useful to my application
> > > > > > > > >
> > > > > > > > >   *   1:1 memory mappings for Xen virtual machines, enabl=
ing device
> > > > > > > > >     assignments without SMMU
> > > > > > > > >   *
> > > > > > > > >       Static assignment of PL blocks, including bus-maste=
ring blocks, to
> > > > > > > > >     Xen virtual machines
> > > > > > > > >   *   Support for PL Device Passthrough to DomU in Xen
> > > > > > > >
> > > > > > > > You are usiong a version of Xen that has been customised by=
 Xilinx. So I would
> > > > > > > > recommend to contact them directly.
> > > > > > > >
> > > > > > > > I have CCed Stefano who might be able to help you.
> > > > > > >
> > > > > > > Hi Julien,
> > > > > > >
> > > > > > > Many thanks for CC'ing me, I missed the email.
> > > > > > >
> > > > > > >
> > > > > > > Hi Prem,
> > > > > > >
> > > > > > > Let me CC a few people that might be able to help.
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>

--_000_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Hi Stefano and Mubin,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Thank you very much for your replies.</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<a id=3D"OWAAM333653" class=3D"_1OtrSZdhKXVv3UhaivrdJ4 mention ms-bgc-nlr m=
s-fcl-b" href=3D"mailto:stefano.stabellini@xilinx.com">@Stefano Stabellini<=
/a> Sorry to bother you again, and thank you for pointing this out, the TTC=
0 is by default enabled for FreeRTOS to
 generate ticks, although this says only for R5 core, i would have never fi=
gured this out. As soon as I added the irqs and iomem and gave a xen passth=
rough in the xen.dtsi as you have suggested, FreeRTOS guest started working=
 for other peripherals except for
 my DMA (FreeRTOS guest does not work with interrupt and DMA). <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
I can see my DMA is enabled because i have LEDs configured to blink for eve=
ry interrupt I get from the PL. I don't see my interrupts being processed, =
but when I destroy the guest, I get this output periodically when an interr=
upt occurs.</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious<=
br>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<span style=3D"font-size:12pt"></span>
<div style=3D"font-size:12pt">(XEN) smmu: /smmu@fd800000: Unexpected global=
 fault, this could be serious<br>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000</div>
<div style=3D"font-size:12pt"><span style=3D"font-size:12pt"></span>
<div style=3D"font-size:12pt">(XEN) smmu: /smmu@fd800000: Unexpected global=
 fault, this could be serious<br>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000</div>
<div style=3D"font-size:12pt"><br>
</div>
<div style=3D"font-size:12pt">From section 3.6 of the wiki <a href=3D"https=
://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Master=
s" id=3D"LPlnk">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+M=
asters</a>
<br>
</div>
<div class=3D"_Entity _EType_OWALinkPreview _EId_OWALinkPreview _EReadonly_=
1">
<div id=3D"LPBorder_GTaHR0cHM6Ly94aWxpbngtd2lraS5hdGxhc3NpYW4ubmV0L3dpa2kvc=
3BhY2VzL0EvcGFnZXMvMTg4NDIwNjYvWGVuK2FuZCtQTCtNYXN0ZXJz" class=3D"LPBorder9=
07457" style=3D"width: 100%; margin-top: 16px; margin-bottom: 16px; positio=
n: relative; max-width: 800px; min-width: 424px;">
<table id=3D"LPContainer907457" role=3D"presentation" style=3D"padding: 12p=
x 36px 12px 12px; width: 100%; border-width: 1px; border-style: solid; bord=
er-color: rgb(200, 200, 200); border-radius: 2px;">
<tbody>
<tr style=3D"border-spacing: 0px;" valign=3D"top">
<td style=3D"width: 100%;">
<div id=3D"LPTitle907457" style=3D"font-size: 21px; font-weight: 300; margi=
n-right: 8px; font-family: &quot;wf_segoe-ui_light&quot;, &quot;Segoe UI Li=
ght&quot;, &quot;Segoe WP Light&quot;, &quot;Segoe UI&quot;, &quot;Segoe WP=
&quot;, Tahoma, Arial, sans-serif; margin-bottom: 12px;">
<a target=3D"_blank" id=3D"LPUrlAnchor907457" href=3D"https://xilinx-wiki.a=
tlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters" style=3D"text=
-decoration: none; color:var(--themePrimary);">Xen and PL Masters - Xilinx =
Wiki - Confluence</a></div>
<div id=3D"LPDescription907457" style=3D"font-size: 14px; max-height: 100px=
; color: rgb(102, 102, 102); font-family: &quot;wf_segoe-ui_normal&quot;, &=
quot;Segoe UI&quot;, &quot;Segoe WP&quot;, Tahoma, Arial, sans-serif; margi=
n-bottom: 12px; margin-right: 8px; overflow: hidden;">
3.4 Stream IDs in the Device Tree. For Xen based systems the stream IDs of =
PL masters must be added to the Linux Dom0 device tree. Automated device tr=
ee generation does not generate the stream IDs for the PL masters so that t=
he user must add them into the device
 tree manually.</div>
<div id=3D"LPMetadata907457" style=3D"font-size: 14px; font-weight: 400; co=
lor: rgb(166, 166, 166); font-family: &quot;wf_segoe-ui_normal&quot;, &quot=
;Segoe UI&quot;, &quot;Segoe WP&quot;, Tahoma, Arial, sans-serif;">
xilinx-wiki.atlassian.net</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<span style=3D"font-family:Calibri;font-size:11.0pt">The fault indicates an=
 unidentified stream ID has been received by the SMMU as shown in the GFSR =
register. The GFSYNR1 register contains the stream ID that was unidentified=
. A stream ID of 0xE80 was unidentified
 in the above fault.</span></div>
<div style=3D"font-size:12pt"><br>
</div>
<div style=3D"font-size:12pt">But I think i have already added that in my s=
mmu and iommu in xen.dtsi because my baremetal application works well as ex=
pected. I have attached my xen.dtsi, system.dtsi, baremetal.cfg(working) an=
d freertos.cfg(not working).</div>
<div style=3D"font-size:12pt">What could I be missing here? Do I have to en=
able the ttc0 in the device tree?
<br>
</div>
<div style=3D"font-size:12pt">Also what does (XEN) Generic Timer IRQ: phys=
=3D30 hyp=3D26 virt=3D27 Freq: 99990 KHz mean when XEN boots up?<br>
</div>
<div style=3D"font-size:12pt">Thanks, I look forward for your reply.</div>
<div style=3D"font-size:12pt"><br>
</div>
<div style=3D"font-size:12pt">Best Regards,</div>
<div style=3D"font-size:12pt">Prem<br>
</div>
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Stefano Stabellini &l=
t;stefano.stabellini@xilinx.com&gt;<br>
<b>Sent:</b> Friday, May 28, 2021 20:43<br>
<b>To:</b> Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;<br>
<b>Cc:</b> Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;; xen-us=
ers@lists.xenproject.org &lt;xen-users@lists.xenproject.org&gt;; JOVITAC@xi=
linx.com &lt;JOVITAC@xilinx.com&gt;; MUBINUSM@xilinx.com &lt;MUBINUSM@xilin=
x.com&gt;<br>
<b>Subject:</b> Re: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit</font>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt;=
">
<div class=3D"PlainText">From the gpa address, it looks like FreeRTOS is tr=
ying to access the TTC<br>
timer? If you look at device tree, the corresponding node is<br>
timer@ff110000.<br>
<br>
If FreeRTOS is configured to access the TTC timer, then you need to<br>
assign it to it. Did you assign the TTC timer to the FreeRTOS domU by<br>
any chance?<br>
<br>
You can do that by adding:<br>
<br>
irqs =3D [ 68, 69, 70 ]<br>
iomem =3D [ &quot;0xff110,1&quot; ]<br>
<br>
<br>
On Fri, 28 May 2021, Prem Harikrishnan wrote:<br>
&gt; Hi Stefano,<br>
&gt; Thanks for your reply. I am pretty sure I followed the steps you menti=
oned below to run the FreeRTOS hello world example. I already added<br>
&gt; printfs and i can see XEN cannot start the scheduler and i get the fol=
lowing out put on XEN.<br>
&gt; <br>
&gt; Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]<br>
&gt; (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D2 me=
mflags=3D0xc0 (0 of 64)<br>
&gt; (XEN) memory_map:add: dom2 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0<br=
>
&gt; (XEN) sched_null.c:344: 1 &lt;-- d2v0<br>
&gt; (XEN) traps.c:1973:d2v0 HSR=3D0x93820007 pc=3D0x00000040012b08 gva=3D0=
xff11000c gpa=3D0x000000ff11000c<br>
&gt; <br>
&gt; <br>
&gt; I also see that according to this article<br>
&gt; <a href=3D"https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partn=
er-FreeRTOS-as-a-Xen-Virtual-Machine/ba-p/947030">
https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as-a=
-Xen-Virtual-Machine/ba-p/947030</a><br>
&gt; [52662iFAD1733707609204?v=3Dv2]<br>
&gt; Partner: FreeRTOS as a Xen Virtual Machine - Community Forums<br>
&gt; Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks=
 What is FreeRTOS? The FreeRTOS kernel is a market leading real-time<br>
&gt; operating system for embedded systems. As embedded applications grow i=
n complexity, there is a growing need for a lightweight kernel<br>
&gt; capable of task scheduling...<br>
&gt; forums.xilinx.com<br>
&gt; FreeRTOS does not run out of the box for XEN, although the article is =
2 years old, I am not sure if there are any updates on this after<br>
&gt; that. Can you please confirm?<br>
&gt; <br>
&gt; Thanks and Best Regards,<br>
&gt; Prem<br>
&gt; <br>
&gt; ______________________________________________________________________=
_____________________________________________________________________<br>
&gt; From: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;<br>
&gt; Sent: Friday, May 28, 2021 02:51<br>
&gt; To: Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;<br>
&gt; Cc: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;; xen-user=
s@lists.xenproject.org &lt;xen-users@lists.xenproject.org&gt;; JOVITAC@xili=
nx.com<br>
&gt; &lt;JOVITAC@xilinx.com&gt;; MUBINUSM@xilinx.com &lt;MUBINUSM@xilinx.co=
m&gt;<br>
&gt; Subject: Re: Help: Information required for AXI DMA passthrough for PL=
 masters in ZCU102 dev kit &nbsp;<br>
&gt; +Mubin<br>
&gt; <br>
&gt; <br>
&gt; Hi Prem,<br>
&gt; <br>
&gt; Did you make sure to build FreeRTOS as &quot;hypervisor guest&quot;? I=
 think<br>
&gt; FreeRTOS is built to run at EL3 by default so if that is not changed<b=
r>
&gt; there are errors when run on any hypervisor. It is possible to build<b=
r>
&gt; FreeRTOS to run on Xen but it requires a couple of manual steps:<br>
&gt; <br>
&gt; - source settings64.sh from Vitis builds<br>
&gt; - xsct<br>
&gt; - set WORKSPACE .<br>
&gt; - setws -switch $WORKSPACE<br>
&gt; - app create -name freertos-hello-world -template {FreeRTOS Hello Worl=
d} -proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx<br>
&gt; - bsp config stdin psu_uart_1<br>
&gt; - bsp config stdout psu_uart_1<br>
&gt; - bsp config hypervisor_guest true<br>
&gt; - Go to application source path and modify the linker script start add=
ress to 0x40000000,<br>
&gt; - app build -name freertos-hello-world<br>
&gt; - Run command to generate BIN file from executable &quot;aarch64-linux=
-gnu-objcopy -O binary --gap-fill 0&nbsp; &lt;elf path&gt; BOOT.BIN&quot;<b=
r>
&gt; <br>
&gt; The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,<=
br>
&gt; might be able to provide additional info.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On Thu, 27 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; Hi Stefano,<br>
&gt; &gt; Sorry to bother you again.<br>
&gt; &gt; I am currently trying to run my custom IP which sends periodic dm=
a interrupts to the PS with cache coloring enabled. I have now compiled<br>
&gt; my<br>
&gt; &gt; guest running with FreeRTOS and it generates a trap.<br>
&gt; &gt; Petalinux and VITIS IDE Version is 2020.2.<br>
&gt; &gt;<br>
&gt; &gt; Please find the log attached. After the trap occurs, for every in=
terrupt XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context fault:<br>
&gt; &gt; fsr=3D0x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt;<br>
&gt; &gt; root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing conf=
ig from apu_freertos.cfg<br>
&gt; &gt; (XEN) Dom1 colors: [ 8 ]<br>
&gt; &gt; (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=
=3D1 memflags=3D0xc0 (0 of 64)<br>
&gt; &gt; (XEN) memory_map:add: dom1 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=
=3D0<br>
&gt; &gt; (XEN) memory_map:add: dom1 gfn=3Da0010 mfn=3Da0010 nr=3D1 cache=
=3D0<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000<br>
&gt; &gt; (XEN) sched_null.c:344: 1 &lt;-- d1v0<br>
&gt; &gt; (XEN) traps.c:1973:d1v0 HSR=3D0x93820007 pc=3D0x00000040013188 gv=
a=3D0xff11000c gpa=3D0x000000ff11000c<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt;<br>
&gt; &gt; The same application works as expected without FreeRTOS, i.e as a=
 baremetal guest. I look forward for your comment on this.<br>
&gt; &gt;<br>
&gt; &gt; Although i see performance degradation, normally i can measure de=
lta time for each interrupt configured to 1ms (without XEN), with XEN<br>
&gt; for<br>
&gt; &gt; the same measurement shows 16 ms for each interval (but the perfo=
rmance is not a priority for now).<br>
&gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; Prem<br>
&gt; &gt;<br>
&gt; &gt;__________________________________________________________________=
________________________________________________________________________<br=
>
&gt; _<br>
&gt; &gt; From: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;<br=
>
&gt; &gt; Sent: Tuesday, May 18, 2021 20:09<br>
&gt; &gt; To: Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;<br=
>
&gt; &gt; Cc: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;; xen=
-users@lists.xenproject.org &lt;xen-users@lists.xenproject.org&gt;;<br>
&gt; JOVITAC@xilinx.com<br>
&gt; &gt; &lt;JOVITAC@xilinx.com&gt;<br>
&gt; &gt; Subject: Re: Help: Information required for AXI DMA passthrough f=
or PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; Great to hear! Thank you for reporting back.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Tue, 18 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; Dear Stefano,<br>
&gt; &gt; &gt; Thank you very much for your guidance and support. I finally=
 fixed the issue. I made an error in base memory address like you pointed<b=
r>
&gt; &gt; out.<br>
&gt; &gt; &gt; I actually modified the base address correctly to 0x40000000=
 but the default C code had an additional offset of 0x1100000 , and the<br>
&gt; DomU<br>
&gt; &gt; &gt; memory allocated was only 8MB. I either had to change the of=
fset or allocate more memory to the DomU guest which i missed until you<br>
&gt; &gt; pointed<br>
&gt; &gt; &gt; out. Additionally i had to set to AxPROT bits to 0x2 in Viva=
do and the SMID required is 0xE80.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Thanks again i was able get my custom IP also working as an =
AXI master from PL.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; Prem<br>
&gt; &gt; &gt;<br>
&gt; &gt;&gt;______________________________________________________________=
___________________________________________________________________________=
<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; From: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&g=
t;<br>
&gt; &gt; &gt; Sent: Tuesday, May 18, 2021 02:35<br>
&gt; &gt; &gt; To: Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&g=
t;<br>
&gt; &gt; &gt; Cc: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;=
; Brian Woods &lt;brian.woods@xilinx.com&gt;; Julien Grall &lt;julien@xen.o=
rg&gt;; Stefano<br>
&gt; &gt; &gt; Stabellini &lt;sstabellini@kernel.org&gt;; xen-users@lists.x=
enproject.org &lt;xen-users@lists.xenproject.org&gt;; fnuv@xilinx.com<br>
&gt; &lt;fnuv@xilinx.com&gt;;<br>
&gt; &gt; &gt; edgari@xilinx.com &lt;edgari@xilinx.com&gt;; bwoods288@gmail=
.com &lt;bwoods288@gmail.com&gt;; Renato Costa Amorim &lt;renato.amorim@evo=
leotech.com&gt;;<br>
&gt; &gt; &gt; JOVITAC@xilinx.com &lt;JOVITAC@xilinx.com&gt;<br>
&gt; &gt; &gt; Subject: Re: Help: Information required for AXI DMA passthro=
ugh for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; Your configuration looks correct as far as I can tell.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; You need dtdev because it triggers the SMMU configuration fo=
r your PL<br>
&gt; &gt; &gt; block. You don't need device_tree because your baremetal app=
lication is<br>
&gt; &gt; &gt; not going to read it, but it is not going to cause any issue=
s either.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; When you say &quot;the execution does not complete the loop =
at line 244&quot;, it<br>
&gt; &gt; &gt; means that you see the execution entering the loop and then =
never<br>
&gt; &gt; &gt; leaving? Like an infinite loop?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; If so, then I imagine the issue could be that the applicatio=
n is<br>
&gt; &gt; &gt; crashing when trying to access TxBufferPtr, which is pointin=
g to<br>
&gt; &gt; &gt; TX_BUFFER_BASE, which is:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; #ifndef DDR_BASE_ADDR<br>
&gt; &gt; &gt; #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \=
<br>
&gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT SET TO 0x01000000<br>
&gt; &gt; &gt; #define MEM_BASE_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; 0x01000000<br>
&gt; &gt; &gt; #else<br>
&gt; &gt; &gt; #define MEM_BASE_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; (DDR_BASE_ADDR + 0x1000000)<br>
&gt; &gt; &gt; #endif<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; #define TX_BUFFER_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; (MEM_BASE_ADDR + 0x00100000)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Can you double check that TX_BUFFER_BASE is pointing to a co=
rrect<br>
&gt; &gt; &gt; address? Memory starts at 0x40000000 in a Xen DomU.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Mon, 17 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; Hi Stefano,<br>
&gt; &gt; &gt; &gt; Thanks again for your reply and your suggestion.&nbsp; =
I did try to replace the Xil_DCacheFlushRange with Xil_DCacheInvalidateRang=
e(works<br>
&gt; &gt; only<br>
&gt; &gt; &gt; &gt; in EL3), I added printfs to debug, i can see that the e=
xecution does not complete the loop at line 244<br>
&gt; &gt; &gt; &gt; <a href=3D"https://github.com/Xilinx/embeddedsw/blob/ma=
ster/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_example_simple_po=
ll.c">
https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drive=
rs/axidma/examples/xaxidma_example_simple_poll.c</a>&nbsp; and<br>
&gt; &gt; &gt; &gt; Xil_DCacheFlushRange is not reached. Please find attach=
ed my xen bootlog.txt.<br>
&gt; &gt; &gt; &gt; I am still unable to find out why??<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can you please atleast verify that my xen.dtsi, and pl.=
dtb is correct? and do i need dtdev and device_tree in my guest config file=
<br>
&gt; when<br>
&gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt; is already added to xen.dtsi?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;__________________________________________________________=
___________________________________________________________________________=
___<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;stefano.stabellini@xilinx.=
com&gt;<br>
&gt; &gt; &gt; &gt; Sent: Saturday, May 15, 2021 00:25<br>
&gt; &gt; &gt; &gt; To: Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.=
com&gt;<br>
&gt; &gt; &gt; &gt; Cc: Stefano Stabellini &lt;stefano.stabellini@xilinx.co=
m&gt;; Brian Woods &lt;brian.woods@xilinx.com&gt;; Julien Grall &lt;julien@=
xen.org&gt;; Stefano<br>
&gt; &gt; &gt; &gt; Stabellini &lt;sstabellini@kernel.org&gt;; xen-users@li=
sts.xenproject.org &lt;xen-users@lists.xenproject.org&gt;; fnuv@xilinx.com<=
br>
&gt; &gt; &lt;fnuv@xilinx.com&gt;;<br>
&gt; &gt; &gt; &gt; edgari@xilinx.com &lt;edgari@xilinx.com&gt;; bwoods288@=
gmail.com &lt;bwoods288@gmail.com&gt;; Renato Costa Amorim &lt;renato.amori=
m@evoleotech.com&gt;;<br>
&gt; &gt; &gt; &gt; JOVITAC@xilinx.com &lt;JOVITAC@xilinx.com&gt;<br>
&gt; &gt; &gt; &gt; Subject: Re: Help: Information required for AXI DMA pas=
sthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Some older versions of Xil_DCacheFlushRange were implem=
ented using<br>
&gt; &gt; &gt; &gt; deprecated set/way instructions that are known to cause=
 problems in<br>
&gt; &gt; &gt; &gt; virtualized environments.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; More recent implementations use the &quot;dc civac&quot=
; intruction that shouldn't<br>
&gt; &gt; &gt; &gt; have any issues.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can you double-check that you are calling the 64-bit ve=
rsion implemented<br>
&gt; &gt; &gt; &gt; by CIVAC?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;<a href=3D"https://github.com/Xilinx/embeddedsw/blob/875dc=
c7a4dca47ccb18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/=
xil_cache.c#L4">https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb=
18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#=
L4</a><br>
&gt; 1<br>
&gt; &gt; 4<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Fri, 14 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; Hi Stefano,&nbsp;<br>
&gt; &gt; &gt; &gt; &gt; Thanks for your reply. Yes the axidma application =
is a baremetal application from the xilinx vitis ide example.&nbsp;<br>
&gt; &gt; &gt; &gt; &gt; Also yes, I have already run hello world as DomU g=
uest, with UART1.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I am using the simple mode using polling and not i=
nterrupts(they are disabled in the c code), which is Why I didn't include i=
n the<br>
&gt; &gt; &gt; guest<br>
&gt; &gt; &gt; &gt; &gt; config file. This works well when I compile it nor=
mally (as EL3). When compiled as hypervisor guest, the execution stops befo=
re the<br>
&gt; &gt; &gt; &gt; &gt; function xil_dcacheflushrange(). Please find the c=
 code attached<br>
&gt; &gt; &gt; &gt; &gt; in&nbsp;<a href=3D"https://github.com/Xilinx/embed=
dedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_exam=
ple_simple_poll.c">https://github.com/Xilinx/embeddedsw/blob/master/XilinxP=
rocessorIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c</a>&nbs=
p;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I found the SATA example similar to my use case, a=
lso using DMA and SMMU. I just used it as a reference to create my pl.dtb t=
o pass<br>
&gt; &gt; &gt; &gt; through<br>
&gt; &gt; &gt; &gt; &gt; in the guest config.(from pl.dtsi, which I manuall=
y created).<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Get Outlook for Android<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;______________________________________________________=
___________________________________________________________________________=
______<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;stefano.stabellini@xi=
linx.com&gt;<br>
&gt; &gt; &gt; &gt; &gt; Sent: Friday 14 May 2021, 23:16<br>
&gt; &gt; &gt; &gt; &gt; To: Prem Harikrishnan<br>
&gt; &gt; &gt; &gt; &gt; Cc: Brian Woods; Stefano Stabellini; Julien Grall;=
 Stefano Stabellini; xen-users@lists.xenproject.org; fnuv@xilinx.com;<br>
&gt; &gt; &gt; &gt; edgari@xilinx.com;<br>
&gt; &gt; &gt; &gt; &gt; bwoods288@gmail.com; Renato Costa Amorim; JOVITAC@=
xilinx.com<br>
&gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required for AXI DM=
A passthrough for PL masters in ZCU102 dev kit<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I take that the guest kernel &quot;/bin/xaxidma_ex=
ample_simple_poll_1.bin&quot; is<br>
&gt; &gt; &gt; &gt; &gt; a baremetal application? Can you run it successful=
ly, just printing<br>
&gt; &gt; &gt; &gt; &gt; &quot;hello world&quot;, if you only assign the UA=
RT and nothing else?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I am asking just to verify that you can run the ba=
remetal VM<br>
&gt; &gt; &gt; &gt; &gt; successfully, aside from the PL device assignment.=
<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; In regards to the PL device assignment, I'll let B=
rian answer on the<br>
&gt; &gt; &gt; &gt; &gt; Vivado configuration and SMID calculation. But I n=
oticed that you only<br>
&gt; &gt; &gt; &gt; &gt; assigned IRQ 54 to the DomU which is the one for U=
ART1. You haven't<br>
&gt; &gt; &gt; &gt; &gt; assigned any IRQs for axi_dma_0. Looking at pl_fro=
m_petalinux.dtsi, it<br>
&gt; &gt; &gt; &gt; &gt; looks like there are two related IRQs: 121 and 122=
.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Finally, why did you mention SATA passthrough in y=
our reply? I don't<br>
&gt; &gt; &gt; &gt; &gt; follow: I cannot see any SATA controller assignmen=
t in your<br>
&gt; &gt; &gt; &gt; &gt; configuration.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; On Fri, 14 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; Dear Brian, Stefano and Julien,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thank you very much for your replies.<br>
&gt; &gt; &gt; &gt; &gt; &gt; Hi Brian and Stefano, Can you please help me =
with the following questions?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; @Brian Woods Please find attached my vivado c=
onfiguration, when i added my AXI DMA now running on simple polling mode(pr=
eviously<br>
&gt; i<br>
&gt; &gt; &gt; &gt; tried<br>
&gt; &gt; &gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt; &gt; &gt; with Scatter Gather mode), Run Automation aut=
omatically generated, 1 AXI Interconnect and 1 smart connect. Since there i=
s only 1<br>
&gt; &gt; &gt; master<br>
&gt; &gt; &gt; &gt; &gt; and<br>
&gt; &gt; &gt; &gt; &gt; &gt; I use the S_AXI _HP0_FPD, I finally get a val=
ue of 0xE80 for the stream IDs.<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://xilinx-wiki.atlassian.net/=
wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+M=
asters</a> According to this link section 6.5 I have<br>
&gt; &gt; manually<br>
&gt; &gt; &gt; &gt; tied<br>
&gt; &gt; &gt; &gt; &gt; &gt; of AxPROT bits to value of 0x2 to create non =
secure transactions. Can you please confirm that my Vivado configuration is=
 correct?<br>
&gt; I<br>
&gt; &gt; &gt; can<br>
&gt; &gt; &gt; &gt; &gt; &gt; update you soon with an ILA trace on Vivado.<=
br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; @Stefano Stabellini Please find attached my p=
l.dtsi generated from petalinux and system.dtsi also generated after manual=
ly adding<br>
&gt; &gt; &gt; &gt; &gt; xen.dtsi.<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://xilinx-wiki.atlassian.net/=
wiki/spaces/A/pages/384663561/Building+Xen+Hypervisor+with+Petalinux+2020.1=
+and+2020.2">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561/Building+Xe=
n+Hypervisor+with+Petalinux+2020.1+and+2020.2</a> Using<br>
&gt; this<br>
&gt; &gt; &gt; &gt; SATA<br>
&gt; &gt; &gt; &gt; &gt; &gt; passthrough, i made my own pl.dtsi for passth=
rough used in dma.cfg. I could really use your help to identify what is mis=
sing in<br>
&gt; my<br>
&gt; &gt; &gt; xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; configuration.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;__________________________________________________=
___________________________________________________________________________=
_________<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; &gt; From: Brian Woods &lt;brian.woods@xilinx.com&=
gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sent: Thursday, May 13, 2021 17:13<br>
&gt; &gt; &gt; &gt; &gt; &gt; To: Stefano Stabellini &lt;stefano.stabellini=
@xilinx.com&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Cc: Julien Grall &lt;julien@xen.org&gt;; Prem=
 Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;; Stefano Stabellini<=
br>
&gt; &gt; &lt;sstabellini@kernel.org&gt;;<br>
&gt; &gt; &gt; &gt; &gt; &gt; xen-users@lists.xenproject.org &lt;xen-users@=
lists.xenproject.org&gt;; brian.woods@xilinx.com &lt;brian.woods@xilinx.com=
&gt;; fnuv@xilinx.com<br>
&gt; &gt; &gt; &gt; &gt; &gt; &lt;fnuv@xilinx.com&gt;; edgari@xilinx.com &l=
t;edgari@xilinx.com&gt;; bwoods288@gmail.com &lt;bwoods288@gmail.com&gt;<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required for A=
XI DMA passthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sorry for the late email, I've been under the=
 weather and have been away<br>
&gt; &gt; &gt; &gt; &gt; &gt; from my computer.&nbsp; In the Zynq SOCs this=
 is how the SMMU IDs in PL are<br>
&gt; &gt; &gt; &gt; &gt; &gt; calculated:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 14-10: TBU bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; 9-6: Master ID bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; 5-0: AXI ID bits<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://www.xilinx.com/support/doc=
umentation/user_guides/ug1085-zynq-ultrascale-trm.pdf">
https://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultras=
cale-trm.pdf</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; To look up the TBU value, see UG1085 and look=
 for the &quot;System Masters&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; table which is table 16-4 on page 409.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; For the master ID, see UG1085 and look for th=
e &quot;Master IDs List&quot; table<br>
&gt; &gt; &gt; &gt; &gt; &gt; which is table 16-13 on page 429.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; The AXI ID bits is a bit trickery since it's =
going to be out in PL.<br>
&gt; &gt; &gt; &gt; &gt; &gt; See: <a href=3D"https://www.xilinx.com/suppor=
t/answers/69447.html">https://www.xilinx.com/support/answers/69447.html</a>=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; With SmartConnect all the AXI IDs are 0, they=
 aren't passed on.&nbsp; There<br>
&gt; &gt; &gt; &gt; &gt; &gt; are work arounds.&nbsp; Here's a couple of ex=
amples (with example numbers):<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; SmartConnect -&gt; PS slave =
port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; SmartConnect -&gt; PS slave =
port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; SmartConnect -&gt; PS s=
lave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; SmartConnect -&gt; PS s=
lave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS=
 slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; sideband -&gt; SmartCon=
nect -&gt; sideband -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; sideband -&gt; SmartCon=
nect -&gt; sideband -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS slave=
 port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; The &quot;sideband -&gt; SmartConenct -&gt; s=
ideband&quot; can also be functionally<br>
&gt; &gt; &gt; &gt; &gt; &gt; replaced with &quot;AXI Interconnect&quot; to=
 my knowledge.&nbsp; So the AXI ID bits are<br>
&gt; &gt; &gt; &gt; &gt; &gt; fairly simple but with some caveats.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; You can also read in the SMMU faults from Xen=
 and use:<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://static.docs.arm.com/ihi006=
2/dc/IHI0062D_c_system_mmu_architecture_specification.pdf">
https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_architecture_s=
pecification.pdf</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; to decode them. That should tell you the SMMU=
 IDs as well.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Let me know if this isn't clear or you have a=
ny other questions.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Brian<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Mon, May 10, 2021 at 06:49:07PM -0700, Ste=
fano Stabellini wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; On Mon, 10 May 2021, Julien Grall wrote:=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On 26/04/2021 15:41, Prem Harikrish=
nan wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hello everyone,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am using the latest version =
of the xilinx mpsoc zcu102 development board<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and i am trying to create a ba=
rematal application that uses the AXI DMA on<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the programmable logic, using =
the scatter gather example from the xilinx<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; repository. This works perfect=
ly well for the baremetal application. The<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; diagram below represents the i=
nformation flow. The AXI DMA and the AXI data<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; FIFO are in the Programable lo=
gic (FPGA). This AXI DMA is out of the box IP<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; from Vivado and uses a single =
channel (Does not use AxUSER) which means the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; AXI ID cannot manually be set.=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Now i want to make this as a b=
aremetal hypervisor guest, in future this will<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; be replaced by a custom IP wit=
h cache colouring enabled. I want to pass<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; through the AXI DMA in the PL.=
 (Not to be used by Dom0)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I followed this tutorial Barem=
etal + DomU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremetal+DomU">htt=
ps://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremet=
al+DomU</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; guest changed the base address=
 to 0x4000000,(1GB allocated to Dom-0) to<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; create my EL1 binary. I used P=
etalinux 2020.2 to generate my linux, xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; image and use tftp to boot.<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp; From what i understand f=
rom the xilinx tutorials Xen+and+PL+Masters<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">https:/=
/xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters<=
/a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section 3 and MPSOC SMMU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraScale+MPSOC+SMMU"=
>https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraS=
cale+MPSOC+SMMU</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section 4, stream ids are requ=
ired by the SMMU to get the correct address<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; translation.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am still unable to figure ou=
t how to get the iommu property for my AXI DMA<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and how to set the dtdev confi=
g for my hypervisor guest.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I can also see some new update=
s with the XEN 2020.1 and 2020.2 releases<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; which i can be useful to my ap=
plication<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *&nbsp; &nbsp;1:1 =
memory mappings for Xen virtual machines, enabling device<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; assign=
ments without SMMU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;Static assignment of PL blocks, including bus-mastering blocks, to<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Xen vi=
rtual machines<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *&nbsp; &nbsp;Supp=
ort for PL Device Passthrough to DomU in Xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; You are usiong a version of Xen tha=
t has been customised by Xilinx. So I would<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; recommend to contact them directly.=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I have CCed Stefano who might be ab=
le to help you.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Julien,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Many thanks for CC'ing me, I missed the =
email.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Let me CC a few people that might be abl=
e to help.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; <br>
&gt; </div>
</span></font></div>
</body>
</html>

--_000_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_--

--_009_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_
Content-Type: image/png; name="ttc_timer_config.png"
Content-Description: ttc_timer_config.png
Content-Disposition: attachment; filename="ttc_timer_config.png"; size=118653;
	creation-date="Mon, 31 May 2021 21:07:38 GMT";
	modification-date="Mon, 31 May 2021 21:15:00 GMT"
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAABPwAAAJCCAYAAABULdnJAAAABHNCSVQICAgIfAhkiAAAABl0RVh0
U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AACAASURBVHic7N13eBTV28bx7+ymV0KAhEBC
KKGG3gQNoDQpUgQEQZogIgoiiPqqqCAqzQIWFAVFBERAkaaogIqIIkoXFKVLLwmkkWR33j8SWrKp
ZEPI7/5cVy7NzuyZM3OeGXafPDPHOB8TbSIiIiIiIiIiIiJFguVGd0BERERERERERETyjxJ+IiIi
IiIiIiIiRYgSfiIiIiIiIiIiIkWIEn4iIiIiIiIiIiJFiBJ+IiIiIiIiIiIiRYgSfiIiIiIiIiIi
IkWIEn4iIiIiIiIiIiJFiBJ+IiIiIiIiIiIiRYgSfiIiIiIiIiIiIkWIEn4iIiIiIiIiIiJFiBJ+
IkWd3cLy570YOdeC7Ub3RUREREREREScrlAl/MyE/Xz33jgefWAgfe7rz9NLj5B8aBnPPTSKD7bE
Y96wjiVy6u+t7DyScG0fbHtZ+NRDPD5vN0nO2vRVx6Rv/8GMmLmZeCdtq6CZF6x8MMyHyDB/ipf0
o8Yjrpwv8E4YHPzVhXW7jRsXX/kt2cr4pn40eMaFBAC7wR9fubLxYNo+pl8uIiIiIiIiIkWKS05X
NBOP8tvKL/n6l50cOBmLzdWP4Ao1uKVDT7rUDsC47q7Y+HfpO8z9M4QeQ5+kqr8Vt8BgrEkBlC5d
mhLeLvmwjbx2bR/Lp0/jYPuJ1CjreeV1w5PipUtTuriXkzKn6Y8JJLmF4Jn9G3PFTPyPTauW8+0v
O9l3MhbTI5DQqg24o1NHmlfwTTvuJvH71vHpZ9+wee9xLqS44FOiLJWb3s3Au2tRLA+D8/tUL/7v
RxvPzkjk1lIQ72XDJ5/3LVvJVqb192b7wxdoXs10SozF7XLjgR4exI25wNKBV23DZuG7SR6M/ciF
f2NNqrRNYuKUi9xa4jo3aIHSFe1EhJhY87JcRERERERERG5qOUr4mfG7+eyV11h+PJD6d3Ti/oiS
eCRF898/fxJ7MZ9SBuZp9vx1muKNhtCufsRViYgoHnouKn+2kd8sZWn96HO0dlb7mR6TfNxE7C7m
v/I6X50OpkmbrjwQHoDlwhG2/bCaWeM389ewZxnSKADOb2LWlI/YXqIZXQb2oIyPyYVj//KvxQvv
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

--_009_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_
Content-Type: application/octet-stream; name="baremetal.cfg"
Content-Description: baremetal.cfg
Content-Disposition: attachment; filename="baremetal.cfg"; size=445;
	creation-date="Mon, 31 May 2021 21:07:51 GMT";
	modification-date="Mon, 31 May 2021 21:15:00 GMT"
Content-Transfer-Encoding: base64

I0d1ZXN0IG5hbWUKICBuYW1lID0gImJhcmVtZXRhbCIKIyBLZXJuZWwgaW1hZ2UgdG8gYm9vdAog
IGtlcm5lbCA9ICIvYmluL2JhcmVtZXRhbC5iaW4iCiMgS2VybmVsIGNvbW1hbmQgbGluZSBvcHRp
b25zIC0gQWxsb2NhdGUgMTI4TUIKICBtZW1vcnkgPSAxMjgKIyBOdW1iZXIgb2YgVkNQVVMKICB2
Y3B1cyA9IDEKIyBQaW4gdG8gQ1BVIDAKICBjcHVzID0gWzFdCiMgSVJRcyBQYXNzdGhyb3VnaAog
IGlycXMgPSBbIDU0LDY4LDY5LDcwLDEyMV0KIyBCYXNlIEFkZHJlc3Mgb2YgRGV2aWNlcyBQYXNz
dGhyb3VnaCB3aXRoIHBhZ2UgYWxsb2NhdGlvbgogIGlvbWVtID0gWyAiMHhmZjAxMCwxIiwiMHhm
ZjExMCwxIiwiMHhhMDAxMCwxIl0KICBkdGRldiA9IFsgIi9NMDFfQVhJX0ZQREBhMDAxMDAwMCIg
XQojIEd1ZXN0IENvbG9yIEFsbG9jYXRpb24KIyBjb2xvcnMgPSBbIjgtOCJdCg==

--_009_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_
Content-Type: application/octet-stream; name="freertos.cfg"
Content-Description: freertos.cfg
Content-Disposition: attachment; filename="freertos.cfg"; size=443;
	creation-date="Mon, 31 May 2021 21:07:52 GMT";
	modification-date="Mon, 31 May 2021 21:15:00 GMT"
Content-Transfer-Encoding: base64

I0d1ZXN0IG5hbWUKICBuYW1lID0gImZyZWVydG9zIgojIEtlcm5lbCBpbWFnZSB0byBib290CiAg
a2VybmVsID0gIi9iaW4vZnJlZXJ0b3MuYmluIgojIEtlcm5lbCBjb21tYW5kIGxpbmUgb3B0aW9u
cyAtIEFsbG9jYXRlIDEyOE1CCiAgbWVtb3J5ID0gMTI4CiMgTnVtYmVyIG9mIFZDUFVTCiAgdmNw
dXMgPSAxCiMgUGluIHRvIENQVSAwCiAgY3B1cyA9IFsxXQojIElSUXMgUGFzc3Rocm91Z2gKICBp
cnFzID0gWyA1NCw2OCw2OSw3MCwxMjFdCiMgQmFzZSBBZGRyZXNzIG9mIERldmljZXMgUGFzc3Ro
cm91Z2ggd2l0aCBwYWdlIGFsbG9jYXRpb24KICBpb21lbSA9IFsgIjB4ZmYwMTAsMSIsIjB4ZmYx
MTAsMSIsIjB4YTAwMTAsMSJdCiAgZHRkZXYgPSBbICIvTTAxX0FYSV9GUERAYTAwMTAwMDAiIF0K
IyBHdWVzdCBDb2xvciBBbGxvY2F0aW9uCiMgY29sb3JzID0gWyI4LTgiXQo=

--_009_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_
Content-Type: application/octet-stream; name="xen.dtsi"
Content-Description: xen.dtsi
Content-Disposition: attachment; filename="xen.dtsi"; size=1084;
	creation-date="Mon, 31 May 2021 21:08:27 GMT";
	modification-date="Mon, 31 May 2021 21:15:00 GMT"
Content-Transfer-Encoding: base64

JnNtbXUgewoJc3RhdHVzID0gIm9rYXkiOwoJbW11LW1hc3RlcnMgPSA8ICZnZW0wIDB4ODc0CgkJ
CSZnZW0xIDB4ODc1CgkJCSZnZW0yIDB4ODc2CgkJCSZnZW0zIDB4ODc3CgkJCSZkd2MzXzAgMHg4
NjAKCQkJJmR3YzNfMSAweDg2MQoJCQkmcXNwaSAweDg3MwoJCQkmbHBkX2RtYV9jaGFuMSAweDg2
OAoJCQkmbHBkX2RtYV9jaGFuMiAweDg2OQoJCQkmbHBkX2RtYV9jaGFuMyAweDg2YQoJCQkmbHBk
X2RtYV9jaGFuNCAweDg2YgoJCQkmbHBkX2RtYV9jaGFuNSAweDg2YwoJCQkmbHBkX2RtYV9jaGFu
NiAweDg2ZAoJCQkmbHBkX2RtYV9jaGFuNyAweDg2ZQoJCQkmbHBkX2RtYV9jaGFuOCAweDg2ZgoJ
CQkmZnBkX2RtYV9jaGFuMSAweDE0ZTgKCQkJJmZwZF9kbWFfY2hhbjIgMHgxNGU5CgkJCSZmcGRf
ZG1hX2NoYW4zIDB4MTRlYQoJCQkmZnBkX2RtYV9jaGFuNCAweDE0ZWIKCQkJJmZwZF9kbWFfY2hh
bjUgMHgxNGVjCgkJCSZmcGRfZG1hX2NoYW42IDB4MTRlZAoJCQkmZnBkX2RtYV9jaGFuNyAweDE0
ZWUKCQkJJmZwZF9kbWFfY2hhbjggMHgxNGVmCgkJCSZzZGhjaTAgMHg4NzAKCQkJJnNkaGNpMSAw
eDg3MQoJCQkmbmFuZDAgMHg4NzIKCQkJJk0wMV9BWElfRlBENCAweEU4MD47Cn07CgomdWFydDF7
Cgl4ZW4scGFzc3Rocm91Z2ggPSA8MHgxPjsKfTsKCiZ0dGMwewkKCXhlbixwYXNzdGhyb3VnaCA9
IDwweDE+Owp9OwoKJk0wMV9BWElfRlBENHsKCXN0YXR1cyA9ICJva2F5IjsJCgkjc3RyZWFtLWlk
LWNlbGxzID0gPDB4MT47Cglpb21tdXMgPSA8JnNtbXUgMHhFODA+OwoJaW50ZXJydXB0LXBhcmVu
dCA9IDwmZ2ljPjsKCWludGVycnVwdHMgPSA8MCA4OSA0PjsKCXhlbixwYXNzdGhyb3VnaCA9IDww
eDE+Owp9OwoKJk0wMl9BWElfRlBENnsKCXhlbixwYXNzdGhyb3VnaCA9IDwweDE+Owp9OwoKJk0w
MF9BWElfUEwzewoJeGVuLHBhc3N0aHJvdWdoID0gPDB4MT47Cn07CgomTTAyX0FYSV9QTDd7Cgl4
ZW4scGFzc3Rocm91Z2ggPSA8MHgxPjsKfTsKCiZNMDFfQVhJX1BMNXsKCXhlbixwYXNzdGhyb3Vn
aCA9IDwweDE+Owp9OwoKJk0wM19BWElfUEw5ewoJeGVuLHBhc3N0aHJvdWdoID0gPDB4MT47Cn07
Cg==

--_009_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_
Content-Type: text/plain; name="xen_bootlog.txt"
Content-Description: xen_bootlog.txt
Content-Disposition: attachment; filename="xen_bootlog.txt"; size=3480;
	creation-date="Mon, 31 May 2021 21:08:35 GMT";
	modification-date="Mon, 31 May 2021 21:15:00 GMT"
Content-Transfer-Encoding: base64

IFhlbiA0LjEzLjAKKFhFTikgWGVuIHZlcnNpb24gNC4xMy4wIChldm9sZW9AKSAoYWFyY2g2NC14
aWxpbngtbGludXgtZ2NjIChHQ0MpIDkuMi4wKSBkZWJ1Zz1uICBNb24gTWF5IDMxIDE5OjI1OjA3
IFVUQyAyMDIxCihYRU4pIExhdGVzdCBDaGFuZ2VTZXQ6IFR1ZSBTZXAgMjkgMTU6MzQ6MzEgMjAy
MCAtMDcwMCBnaXQ6ZGZhNThkMWEzZi1kaXJ0eQooWEVOKSBQcm9jZXNzb3I6IDQxMGZkMDM0OiAi
QVJNIExpbWl0ZWQiLCB2YXJpYW50OiAweDAsIHBhcnQgMHhkMDMsIHJldiAweDQKKFhFTikgNjQt
Yml0IEV4ZWN1dGlvbjoKKFhFTikgICBQcm9jZXNzb3IgRmVhdHVyZXM6IDAwMDAwMDAwMDAwMDIy
MjIgMDAwMDAwMDAwMDAwMDAwMAooWEVOKSAgICAgRXhjZXB0aW9uIExldmVsczogRUwzOjY0KzMy
IEVMMjo2NCszMiBFTDE6NjQrMzIgRUwwOjY0KzMyCihYRU4pICAgICBFeHRlbnNpb25zOiBGbG9h
dGluZ1BvaW50IEFkdmFuY2VkU0lNRAooWEVOKSAgIERlYnVnIEZlYXR1cmVzOiAwMDAwMDAwMDEw
MzA1MTA2IDAwMDAwMDAwMDAwMDAwMDAKKFhFTikgICBBdXhpbGlhcnkgRmVhdHVyZXM6IDAwMDAw
MDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMAooWEVOKSAgIE1lbW9yeSBNb2RlbCBGZWF0dXJl
czogMDAwMDAwMDAwMDAwMTEyMiAwMDAwMDAwMDAwMDAwMDAwCihYRU4pICAgSVNBIEZlYXR1cmVz
OiAgMDAwMDAwMDAwMDAxMTEyMCAwMDAwMDAwMDAwMDAwMDAwCihYRU4pIDMyLWJpdCBFeGVjdXRp
b246CihYRU4pICAgUHJvY2Vzc29yIEZlYXR1cmVzOiAwMDAwMDEzMTowMDAxMTAxMQooWEVOKSAg
ICAgSW5zdHJ1Y3Rpb24gU2V0czogQUFyY2gzMiBBMzIgVGh1bWIgVGh1bWItMiBKYXplbGxlCihY
RU4pICAgICBFeHRlbnNpb25zOiBHZW5lcmljVGltZXIgU2VjdXJpdHkKKFhFTikgICBEZWJ1ZyBG
ZWF0dXJlczogMDMwMTAwNjYKKFhFTikgICBBdXhpbGlhcnkgRmVhdHVyZXM6IDAwMDAwMDAwCihY
RU4pICAgTWVtb3J5IE1vZGVsIEZlYXR1cmVzOiAxMDIwMTEwNSA0MDAwMDAwMCAwMTI2MDAwMCAw
MjEwMjIxMQooWEVOKSAgSVNBIEZlYXR1cmVzOiAwMjEwMTExMCAxMzExMjExMSAyMTIzMjA0MiAw
MTExMjEzMSAwMDAxMTE0MiAwMDAxMTEyMQooWEVOKSBHZW5lcmljIFRpbWVyIElSUTogcGh5cz0z
MCBoeXA9MjYgdmlydD0yNyBGcmVxOiA5OTk5MCBLSHoKKFhFTikgR0lDdjIgaW5pdGlhbGl6YXRp
b246CihYRU4pICAgICAgICAgZ2ljX2Rpc3RfYWRkcj0wMDAwMDAwMGY5MDEwMDAwCihYRU4pICAg
ICAgICAgZ2ljX2NwdV9hZGRyPTAwMDAwMDAwZjkwMjAwMDAKKFhFTikgICAgICAgICBnaWNfaHlw
X2FkZHI9MDAwMDAwMDBmOTA0MDAwMAooWEVOKSAgICAgICAgIGdpY192Y3B1X2FkZHI9MDAwMDAw
MDBmOTA2MDAwMAooWEVOKSAgICAgICAgIGdpY19tYWludGVuYW5jZV9pcnE9MjUKKFhFTikgR0lD
djI6IEFkanVzdGluZyBDUFUgaW50ZXJmYWNlIGJhc2UgdG8gMHhmOTAyZjAwMAooWEVOKSBHSUN2
MjogMTkyIGxpbmVzLCA0IGNwdXMsIHNlY3VyZSAoSUlEIDAyMDAxNDNiKS4KKFhFTikgWFNNIEZy
YW1ld29yayB2MS4wLjAgaW5pdGlhbGl6ZWQKKFhFTikgSW5pdGlhbGlzaW5nIFhTTSBTSUxPIG1v
ZGUKKFhFTikgVXNpbmcgc2NoZWR1bGVyOiBudWxsIFNjaGVkdWxlciAobnVsbCkKKFhFTikgSW5p
dGlhbGl6aW5nIG51bGwgc2NoZWR1bGVyCihYRU4pIFdBUk5JTkc6IFRoaXMgaXMgZXhwZXJpbWVu
dGFsIHNvZnR3YXJlIGluIGRldmVsb3BtZW50LgooWEVOKSBVc2UgYXQgeW91ciBvd24gcmlzay4K
KFhFTikgQWxsb2NhdGVkIGNvbnNvbGUgcmluZyBvZiAxNiBLaUIuCihYRU4pIEJyaW5naW5nIHVw
IENQVTEKKFhFTikgQnJpbmdpbmcgdXAgQ1BVMgooWEVOKSBCcmluZ2luZyB1cCBDUFUzCihYRU4p
IEJyb3VnaHQgdXAgNCBDUFVzCihYRU4pIEkvTyB2aXJ0dWFsaXNhdGlvbiBlbmFibGVkCihYRU4p
ICAtIERvbTAgbW9kZTogUmVsYXhlZAooWEVOKSBJbnRlcnJ1cHQgcmVtYXBwaW5nIGVuYWJsZWQK
KFhFTikgUDJNOiA0MC1iaXQgSVBBIHdpdGggNDAtYml0IFBBIGFuZCA4LWJpdCBWTUlECihYRU4p
IFAyTTogMyBsZXZlbHMgd2l0aCBvcmRlci0xIHJvb3QsIFZUQ1IgMHg4MDAyMzU1OAooWEVOKSAq
KiogTE9BRElORyBET01BSU4gMCAqKioKKFhFTikgTG9hZGluZyBkMCBrZXJuZWwgZnJvbSBib290
IG1vZHVsZSBAIDAwMDAwMDAwMDEwMDAwMDAKKFhFTikgTG9hZGluZyByYW1kaXNrIGZyb20gYm9v
dCBtb2R1bGUgQCAwMDAwMDAwMDAyMjAwMDAwCihYRU4pIEFsbG9jYXRpbmcgMToxIG1hcHBpbmdz
IHRvdGFsbGluZyAxMDI0TUIgZm9yIGRvbTA6CihYRU4pIEJBTktbMF0gMHgwMDAwMDAyMDAwMDAw
MC0weDAwMDAwMDYwMDAwMDAwICgxMDI0TUIpCihYRU4pIEdyYW50IHRhYmxlIHJhbmdlOiAweDAw
MDAwMDAwZTAwMDAwLTB4MDAwMDAwMDBlNDAwMDAKKFhFTikgQWxsb2NhdGluZyBQUEkgMTYgZm9y
IGV2ZW50IGNoYW5uZWwgaW50ZXJydXB0CihYRU4pIExvYWRpbmcgekltYWdlIGZyb20gMDAwMDAw
MDAwMTAwMDAwMCB0byAwMDAwMDAwMDIwMDgwMDAwLTAwMDAwMDAwMjExODkyMDAKKFhFTikgTG9h
ZGluZyBkMCBpbml0cmQgZnJvbSAwMDAwMDAwMDAyMjAwMDAwIHRvIDB4MDAwMDAwMDAyODIwMDAw
MC0weDAwMDAwMDAwMmEwMWEwMmYKKFhFTikgTG9hZGluZyBkMCBEVEIgdG8gMHgwMDAwMDAwMDI4
MDAwMDAwLTB4MDAwMDAwMDAyODAwYmU4NAooWEVOKSBJbml0aWFsIGxvdyBtZW1vcnkgdmlycSB0
aHJlc2hvbGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4KKFhFTikgU3RkLiBMb2dsZXZlbDogRXJyb3Jz
IGFuZCB3YXJuaW5ncwooWEVOKSBHdWVzdCBMb2dsZXZlbDogTm90aGluZyAoUmF0ZS1saW1pdGVk
OiBFcnJvcnMgYW5kIHdhcm5pbmdzKQooWEVOKSAqKiogU2VyaWFsIGlucHV0IHRvIERPTTAgKHR5
cGUgJ0NUUkwtYScgdGhyZWUgdGltZXMgdG8gc3dpdGNoIGlucHV0KQooWEVOKSBGcmVlZCAzNDhr
QiBpbml0IG1lbW9yeS4KKFhFTikgZDB2MDogdkdJQ0Q6IHVuaGFuZGxlZCB3b3JkIHdyaXRlIDB4
MDAwMDAwZmZmZmZmZmYgdG8gSUNBQ1RJVkVSNAooWEVOKSBkMHYwOiB2R0lDRDogdW5oYW5kbGVk
IHdvcmQgd3JpdGUgMHgwMDAwMDBmZmZmZmZmZiB0byBJQ0FDVElWRVI4CihYRU4pIGQwdjA6IHZH
SUNEOiB1bmhhbmRsZWQgd29yZCB3cml0ZSAweDAwMDAwMGZmZmZmZmZmIHRvIElDQUNUSVZFUjEy
CihYRU4pIGQwdjA6IHZHSUNEOiB1bmhhbmRsZWQgd29yZCB3cml0ZSAweDAwMDAwMGZmZmZmZmZm
IHRvIElDQUNUSVZFUjE2CihYRU4pIGQwdjA6IHZHSUNEOiB1bmhhbmRsZWQgd29yZCB3cml0ZSAw
eDAwMDAwMGZmZmZmZmZmIHRvIElDQUNUSVZFUjIwCihYRU4pIGQwdjA6IHZHSUNEOiB1bmhhbmRs
ZWQgd29yZCB3cml0ZSAweDAwMDAwMGZmZmZmZmZmIHRvIElDQUNUSVZFUjAKWyAgICAwLjAwMDAw
MF0gQm9vdGluZyBMaW51eCBvbiBwaHlzaWNhbCBDUFUgMHgwMDAwMDAwMDAwIFsweDQxMGZkMDM0
XQoK

--_009_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_
Content-Type: application/octet-stream; name="system.dtsi"
Content-Description: system.dtsi
Content-Disposition: attachment; filename="system.dtsi"; size=61544;
	creation-date="Mon, 31 May 2021 21:13:24 GMT";
	modification-date="Mon, 31 May 2021 21:15:00 GMT"
Content-Transfer-Encoding: base64

L2R0cy12MS87CgovIHsKCWNvbXBhdGlibGUgPSAieGxueCx6eW5xbXAtemN1MTAyLXJldjEuMCIs
ICJ4bG54LHp5bnFtcC16Y3UxMDIiLCAieGxueCx6eW5xbXAiOwoJI2FkZHJlc3MtY2VsbHMgPSA8
MHgyPjsKCSNzaXplLWNlbGxzID0gPDB4Mj47Cgltb2RlbCA9ICJaeW5xTVAgWkNVMTAyIFJldjEu
MCI7CgoJY3B1cyB7CgkJI2FkZHJlc3MtY2VsbHMgPSA8MHgxPjsKCQkjc2l6ZS1jZWxscyA9IDww
eDA+OwoKCQljcHVAMCB7CgkJCWNvbXBhdGlibGUgPSAiYXJtLGNvcnRleC1hNTMiOwoJCQlkZXZp
Y2VfdHlwZSA9ICJjcHUiOwoJCQllbmFibGUtbWV0aG9kID0gInBzY2kiOwoJCQlvcGVyYXRpbmct
cG9pbnRzLXYyID0gPDB4MT47CgkJCXJlZyA9IDwweDA+OwoJCQljcHUtaWRsZS1zdGF0ZXMgPSA8
MHgyPjsKCQkJY2xvY2tzID0gPDB4MyAweGE+OwoJCQlwaGFuZGxlID0gPDB4NTM+OwoJCX07CgoJ
CWNwdUAxIHsKCQkJY29tcGF0aWJsZSA9ICJhcm0sY29ydGV4LWE1MyI7CgkJCWRldmljZV90eXBl
ID0gImNwdSI7CgkJCWVuYWJsZS1tZXRob2QgPSAicHNjaSI7CgkJCXJlZyA9IDwweDE+OwoJCQlv
cGVyYXRpbmctcG9pbnRzLXYyID0gPDB4MT47CgkJCWNwdS1pZGxlLXN0YXRlcyA9IDwweDI+OwoJ
CQlwaGFuZGxlID0gPDB4NTQ+OwoJCX07CgoJCWNwdUAyIHsKCQkJY29tcGF0aWJsZSA9ICJhcm0s
Y29ydGV4LWE1MyI7CgkJCWRldmljZV90eXBlID0gImNwdSI7CgkJCWVuYWJsZS1tZXRob2QgPSAi
cHNjaSI7CgkJCXJlZyA9IDwweDI+OwoJCQlvcGVyYXRpbmctcG9pbnRzLXYyID0gPDB4MT47CgkJ
CWNwdS1pZGxlLXN0YXRlcyA9IDwweDI+OwoJCQlwaGFuZGxlID0gPDB4NTU+OwoJCX07CgoJCWNw
dUAzIHsKCQkJY29tcGF0aWJsZSA9ICJhcm0sY29ydGV4LWE1MyI7CgkJCWRldmljZV90eXBlID0g
ImNwdSI7CgkJCWVuYWJsZS1tZXRob2QgPSAicHNjaSI7CgkJCXJlZyA9IDwweDM+OwoJCQlvcGVy
YXRpbmctcG9pbnRzLXYyID0gPDB4MT47CgkJCWNwdS1pZGxlLXN0YXRlcyA9IDwweDI+OwoJCQlw
aGFuZGxlID0gPDB4NTY+OwoJCX07CgoJCWlkbGUtc3RhdGVzIHsKCQkJZW50cnktbWV0aG9kID0g
InBzY2kiOwoKCQkJY3B1LXNsZWVwLTAgewoJCQkJY29tcGF0aWJsZSA9ICJhcm0saWRsZS1zdGF0
ZSI7CgkJCQlhcm0scHNjaS1zdXNwZW5kLXBhcmFtID0gPDB4NDAwMDAwMDA+OwoJCQkJbG9jYWwt
dGltZXItc3RvcDsKCQkJCWVudHJ5LWxhdGVuY3ktdXMgPSA8MHgxMmM+OwoJCQkJZXhpdC1sYXRl
bmN5LXVzID0gPDB4MjU4PjsKCQkJCW1pbi1yZXNpZGVuY3ktdXMgPSA8MHgyNzEwPjsKCQkJCXBo
YW5kbGUgPSA8MHgyPjsKCQkJfTsKCQl9OwoJfTsKCgljcHUtb3BwLXRhYmxlIHsKCQljb21wYXRp
YmxlID0gIm9wZXJhdGluZy1wb2ludHMtdjIiOwoJCW9wcC1zaGFyZWQ7CgkJcGhhbmRsZSA9IDww
eDE+OwoKCQlvcHAwMCB7CgkJCW9wcC1oeiA9IDwweDAgMHg0Nzg2OGJmND47CgkJCW9wcC1taWNy
b3ZvbHQgPSA8MHhmNDI0MD47CgkJCWNsb2NrLWxhdGVuY3ktbnMgPSA8MHg3YTEyMD47CgkJfTsK
CgkJb3BwMDEgewoJCQlvcHAtaHogPSA8MHgwIDB4MjNjMzQ1ZmE+OwoJCQlvcHAtbWljcm92b2x0
ID0gPDB4ZjQyNDA+OwoJCQljbG9jay1sYXRlbmN5LW5zID0gPDB4N2ExMjA+OwoJCX07CgoJCW9w
cDAyIHsKCQkJb3BwLWh6ID0gPDB4MCAweDE3ZDc4M2ZjPjsKCQkJb3BwLW1pY3Jvdm9sdCA9IDww
eGY0MjQwPjsKCQkJY2xvY2stbGF0ZW5jeS1ucyA9IDwweDdhMTIwPjsKCQl9OwoKCQlvcHAwMyB7
CgkJCW9wcC1oeiA9IDwweDAgMHgxMWUxYTJmZD47CgkJCW9wcC1taWNyb3ZvbHQgPSA8MHhmNDI0
MD47CgkJCWNsb2NrLWxhdGVuY3ktbnMgPSA8MHg3YTEyMD47CgkJfTsKCX07CgoJenlucW1wX2lw
aSB7CgkJdS1ib290LGRtLXByZS1yZWxvYzsKCQljb21wYXRpYmxlID0gInhsbngsenlucW1wLWlw
aS1tYWlsYm94IjsKCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJaW50ZXJydXB0cyA9IDww
eDAgMHgyMyAweDQ+OwoJCXhsbngsaXBpLWlkID0gPDB4MD47CgkJI2FkZHJlc3MtY2VsbHMgPSA8
MHgyPjsKCQkjc2l6ZS1jZWxscyA9IDwweDI+OwoJCXJhbmdlczsKCgkJbWFpbGJveEBmZjk5MDQw
MCB7CgkJCXUtYm9vdCxkbS1wcmUtcmVsb2M7CgkJCXJlZyA9IDwweDAgMHhmZjk5MDVjMCAweDAg
MHgyMCAweDAgMHhmZjk5MDVlMCAweDAgMHgyMCAweDAgMHhmZjk5MGU4MCAweDAgMHgyMCAweDAg
MHhmZjk5MGVhMCAweDAgMHgyMD47CgkJCXJlZy1uYW1lcyA9ICJsb2NhbF9yZXF1ZXN0X3JlZ2lv
biIsICJsb2NhbF9yZXNwb25zZV9yZWdpb24iLCAicmVtb3RlX3JlcXVlc3RfcmVnaW9uIiwgInJl
bW90ZV9yZXNwb25zZV9yZWdpb24iOwoJCQkjbWJveC1jZWxscyA9IDwweDE+OwoJCQl4bG54LGlw
aS1pZCA9IDwweDQ+OwoJCQlwaGFuZGxlID0gPDB4NT47CgkJfTsKCX07CgoJZGNjIHsKCQljb21w
YXRpYmxlID0gImFybSxkY2MiOwoJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CgkJdS1ib290LGRtLXBy
ZS1yZWxvYzsKCQlwaGFuZGxlID0gPDB4NTc+OwoJfTsKCglwbXUgewoJCWNvbXBhdGlibGUgPSAi
YXJtLGFybXY4LXBtdXYzIjsKCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJaW50ZXJydXB0
cyA9IDwweDAgMHg4ZiAweDQgMHgwIDB4OTAgMHg0IDB4MCAweDkxIDB4NCAweDAgMHg5MiAweDQ+
OwoJfTsKCglwc2NpIHsKCQljb21wYXRpYmxlID0gImFybSxwc2NpLTAuMiI7CgkJbWV0aG9kID0g
InNtYyI7Cgl9OwoKCWZpcm13YXJlIHsKCgkJenlucW1wLWZpcm13YXJlIHsKCQkJY29tcGF0aWJs
ZSA9ICJ4bG54LHp5bnFtcC1maXJtd2FyZSI7CgkJCXUtYm9vdCxkbS1wcmUtcmVsb2M7CgkJCW1l
dGhvZCA9ICJzbWMiOwoJCQkjcG93ZXItZG9tYWluLWNlbGxzID0gPDB4MT47CgkJCXBoYW5kbGUg
PSA8MHgyNz47CgoJCQlwY2FwIHsKCQkJCWNvbXBhdGlibGUgPSAieGxueCx6eW5xbXAtcGNhcC1m
cGdhIjsKCQkJCWNsb2NrLW5hbWVzID0gInJlZl9jbGsiOwoJCQkJY2xvY2tzID0gPDB4MyAweDI5
PjsKCQkJCXBoYW5kbGUgPSA8MHhiPjsKCQkJfTsKCgkJCXp5bnFtcC1wb3dlciB7CgkJCQl1LWJv
b3QsZG0tcHJlLXJlbG9jOwoJCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1wb3dlciI7CgkJ
CQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDIzIDB4
ND47CgkJCQltYm94ZXMgPSA8MHg1IDB4MCAweDUgMHgxPjsKCQkJCW1ib3gtbmFtZXMgPSAidHgi
LCAicngiOwoJCQkJcGhhbmRsZSA9IDwweDU4PjsKCQkJfTsKCgkJCXJlc2V0LWNvbnRyb2xsZXIg
ewoJCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1yZXNldCI7CgkJCQkjcmVzZXQtY2VsbHMg
PSA8MHgxPjsKCQkJCXBoYW5kbGUgPSA8MHgzNT47CgkJCX07CgoJCQlwaW5jdHJsIHsKCQkJCWNv
bXBhdGlibGUgPSAieGxueCx6eW5xbXAtcGluY3RybCI7CgkJCQlzdGF0dXMgPSAib2theSI7CgkJ
CQlwaGFuZGxlID0gPDB4NTk+OwoKCQkJCWkyYzAtZGVmYXVsdCB7CgkJCQkJcGhhbmRsZSA9IDww
eDJkPjsKCgkJCQkJbXV4IHsKCQkJCQkJZ3JvdXBzID0gImkyYzBfM19ncnAiOwoJCQkJCQlmdW5j
dGlvbiA9ICJpMmMwIjsKCQkJCQl9OwoKCQkJCQljb25mIHsKCQkJCQkJZ3JvdXBzID0gImkyYzBf
M19ncnAiOwoJCQkJCQliaWFzLXB1bGwtdXA7CgkJCQkJCXNsZXctcmF0ZSA9IDwweDE+OwoJCQkJ
CQlpby1zdGFuZGFyZCA9IDwweDE+OwoJCQkJCX07CgkJCQl9OwoKCQkJCWkyYzAtZ3BpbyB7CgkJ
CQkJcGhhbmRsZSA9IDwweDJlPjsKCgkJCQkJbXV4IHsKCQkJCQkJZ3JvdXBzID0gImdwaW8wXzE0
X2dycCIsICJncGlvMF8xNV9ncnAiOwoJCQkJCQlmdW5jdGlvbiA9ICJncGlvMCI7CgkJCQkJfTsK
CgkJCQkJY29uZiB7CgkJCQkJCWdyb3VwcyA9ICJncGlvMF8xNF9ncnAiLCAiZ3BpbzBfMTVfZ3Jw
IjsKCQkJCQkJc2xldy1yYXRlID0gPDB4MT47CgkJCQkJCWlvLXN0YW5kYXJkID0gPDB4MT47CgkJ
CQkJfTsKCQkJCX07CgoJCQkJaTJjMS1kZWZhdWx0IHsKCQkJCQlwaGFuZGxlID0gPDB4MzA+OwoK
CQkJCQltdXggewoJCQkJCQlncm91cHMgPSAiaTJjMV80X2dycCI7CgkJCQkJCWZ1bmN0aW9uID0g
ImkyYzEiOwoJCQkJCX07CgoJCQkJCWNvbmYgewoJCQkJCQlncm91cHMgPSAiaTJjMV80X2dycCI7
CgkJCQkJCWJpYXMtcHVsbC11cDsKCQkJCQkJc2xldy1yYXRlID0gPDB4MT47CgkJCQkJCWlvLXN0
YW5kYXJkID0gPDB4MT47CgkJCQkJfTsKCQkJCX07CgoJCQkJaTJjMS1ncGlvIHsKCQkJCQlwaGFu
ZGxlID0gPDB4MzE+OwoKCQkJCQltdXggewoJCQkJCQlncm91cHMgPSAiZ3BpbzBfMTZfZ3JwIiwg
ImdwaW8wXzE3X2dycCI7CgkJCQkJCWZ1bmN0aW9uID0gImdwaW8wIjsKCQkJCQl9OwoKCQkJCQlj
b25mIHsKCQkJCQkJZ3JvdXBzID0gImdwaW8wXzE2X2dycCIsICJncGlvMF8xN19ncnAiOwoJCQkJ
CQlzbGV3LXJhdGUgPSA8MHgxPjsKCQkJCQkJaW8tc3RhbmRhcmQgPSA8MHgxPjsKCQkJCQl9OwoJ
CQkJfTsKCgkJCQl1YXJ0MC1kZWZhdWx0IHsKCQkJCQlwaGFuZGxlID0gPDB4Mzg+OwoKCQkJCQlt
dXggewoJCQkJCQlncm91cHMgPSAidWFydDBfNF9ncnAiOwoJCQkJCQlmdW5jdGlvbiA9ICJ1YXJ0
MCI7CgkJCQkJfTsKCgkJCQkJY29uZiB7CgkJCQkJCWdyb3VwcyA9ICJ1YXJ0MF80X2dycCI7CgkJ
CQkJCXNsZXctcmF0ZSA9IDwweDE+OwoJCQkJCQlpby1zdGFuZGFyZCA9IDwweDE+OwoJCQkJCX07
CgoJCQkJCWNvbmYtcnggewoJCQkJCQlwaW5zID0gIk1JTzE4IjsKCQkJCQkJYmlhcy1oaWdoLWlt
cGVkYW5jZTsKCQkJCQl9OwoKCQkJCQljb25mLXR4IHsKCQkJCQkJcGlucyA9ICJNSU8xOSI7CgkJ
CQkJCWJpYXMtZGlzYWJsZTsKCQkJCQl9OwoJCQkJfTsKCgkJCQl1YXJ0MS1kZWZhdWx0IHsKCQkJ
CQlwaGFuZGxlID0gPDB4Mzk+OwoKCQkJCQltdXggewoJCQkJCQlncm91cHMgPSAidWFydDFfNV9n
cnAiOwoJCQkJCQlmdW5jdGlvbiA9ICJ1YXJ0MSI7CgkJCQkJfTsKCgkJCQkJY29uZiB7CgkJCQkJ
CWdyb3VwcyA9ICJ1YXJ0MV81X2dycCI7CgkJCQkJCXNsZXctcmF0ZSA9IDwweDE+OwoJCQkJCQlp
by1zdGFuZGFyZCA9IDwweDE+OwoJCQkJCX07CgoJCQkJCWNvbmYtcnggewoJCQkJCQlwaW5zID0g
Ik1JTzIxIjsKCQkJCQkJYmlhcy1oaWdoLWltcGVkYW5jZTsKCQkJCQl9OwoKCQkJCQljb25mLXR4
IHsKCQkJCQkJcGlucyA9ICJNSU8yMCI7CgkJCQkJCWJpYXMtZGlzYWJsZTsKCQkJCQl9OwoJCQkJ
fTsKCgkJCQl1c2IwLWRlZmF1bHQgewoJCQkJCXBoYW5kbGUgPSA8MHgzYT47CgoJCQkJCW11eCB7
CgkJCQkJCWdyb3VwcyA9ICJ1c2IwXzBfZ3JwIjsKCQkJCQkJZnVuY3Rpb24gPSAidXNiMCI7CgkJ
CQkJfTsKCgkJCQkJY29uZiB7CgkJCQkJCWdyb3VwcyA9ICJ1c2IwXzBfZ3JwIjsKCQkJCQkJc2xl
dy1yYXRlID0gPDB4MT47CgkJCQkJCWlvLXN0YW5kYXJkID0gPDB4MT47CgkJCQkJfTsKCgkJCQkJ
Y29uZi1yeCB7CgkJCQkJCXBpbnMgPSAiTUlPNTIiLCAiTUlPNTMiLCAiTUlPNTUiOwoJCQkJCQli
aWFzLWhpZ2gtaW1wZWRhbmNlOwoJCQkJCX07CgoJCQkJCWNvbmYtdHggewoJCQkJCQlwaW5zID0g
Ik1JTzU0IiwgIk1JTzU2IiwgIk1JTzU3IiwgIk1JTzU4IiwgIk1JTzU5IiwgIk1JTzYwIiwgIk1J
TzYxIiwgIk1JTzYyIiwgIk1JTzYzIjsKCQkJCQkJYmlhcy1kaXNhYmxlOwoJCQkJCX07CgkJCQl9
OwoKCQkJCWdlbTMtZGVmYXVsdCB7CgkJCQkJcGhhbmRsZSA9IDwweDJiPjsKCgkJCQkJbXV4IHsK
CQkJCQkJZnVuY3Rpb24gPSAiZXRoZXJuZXQzIjsKCQkJCQkJZ3JvdXBzID0gImV0aGVybmV0M18w
X2dycCI7CgkJCQkJfTsKCgkJCQkJY29uZiB7CgkJCQkJCWdyb3VwcyA9ICJldGhlcm5ldDNfMF9n
cnAiOwoJCQkJCQlzbGV3LXJhdGUgPSA8MHgxPjsKCQkJCQkJaW8tc3RhbmRhcmQgPSA8MHgxPjsK
CQkJCQl9OwoKCQkJCQljb25mLXJ4IHsKCQkJCQkJcGlucyA9ICJNSU83MCIsICJNSU83MSIsICJN
SU83MiIsICJNSU83MyIsICJNSU83NCIsICJNSU83NSI7CgkJCQkJCWJpYXMtaGlnaC1pbXBlZGFu
Y2U7CgkJCQkJCWxvdy1wb3dlci1kaXNhYmxlOwoJCQkJCX07CgoJCQkJCWNvbmYtdHggewoJCQkJ
CQlwaW5zID0gIk1JTzY0IiwgIk1JTzY1IiwgIk1JTzY2IiwgIk1JTzY3IiwgIk1JTzY4IiwgIk1J
TzY5IjsKCQkJCQkJYmlhcy1kaXNhYmxlOwoJCQkJCQlsb3ctcG93ZXItZW5hYmxlOwoJCQkJCX07
CgoJCQkJCW11eC1tZGlvIHsKCQkJCQkJZnVuY3Rpb24gPSAibWRpbzMiOwoJCQkJCQlncm91cHMg
PSAibWRpbzNfMF9ncnAiOwoJCQkJCX07CgoJCQkJCWNvbmYtbWRpbyB7CgkJCQkJCWdyb3VwcyA9
ICJtZGlvM18wX2dycCI7CgkJCQkJCXNsZXctcmF0ZSA9IDwweDE+OwoJCQkJCQlpby1zdGFuZGFy
ZCA9IDwweDE+OwoJCQkJCQliaWFzLWRpc2FibGU7CgkJCQkJfTsKCQkJCX07CgoJCQkJY2FuMS1k
ZWZhdWx0IHsKCQkJCQlwaGFuZGxlID0gPDB4Mjg+OwoKCQkJCQltdXggewoJCQkJCQlmdW5jdGlv
biA9ICJjYW4xIjsKCQkJCQkJZ3JvdXBzID0gImNhbjFfNl9ncnAiOwoJCQkJCX07CgoJCQkJCWNv
bmYgewoJCQkJCQlncm91cHMgPSAiY2FuMV82X2dycCI7CgkJCQkJCXNsZXctcmF0ZSA9IDwweDE+
OwoJCQkJCQlpby1zdGFuZGFyZCA9IDwweDE+OwoJCQkJCX07CgoJCQkJCWNvbmYtcnggewoJCQkJ
CQlwaW5zID0gIk1JTzI1IjsKCQkJCQkJYmlhcy1oaWdoLWltcGVkYW5jZTsKCQkJCQl9OwoKCQkJ
CQljb25mLXR4IHsKCQkJCQkJcGlucyA9ICJNSU8yNCI7CgkJCQkJCWJpYXMtZGlzYWJsZTsKCQkJ
CQl9OwoJCQkJfTsKCgkJCQlzZGhjaTEtZGVmYXVsdCB7CgkJCQkJcGhhbmRsZSA9IDwweDM3PjsK
CgkJCQkJbXV4IHsKCQkJCQkJZ3JvdXBzID0gInNkaW8xXzBfZ3JwIjsKCQkJCQkJZnVuY3Rpb24g
PSAic2RpbzEiOwoJCQkJCX07CgoJCQkJCWNvbmYgewoJCQkJCQlncm91cHMgPSAic2RpbzFfMF9n
cnAiOwoJCQkJCQlzbGV3LXJhdGUgPSA8MHgxPjsKCQkJCQkJaW8tc3RhbmRhcmQgPSA8MHgxPjsK
CQkJCQkJYmlhcy1kaXNhYmxlOwoJCQkJCX07CgoJCQkJCW11eC1jZCB7CgkJCQkJCWdyb3VwcyA9
ICJzZGlvMV9jZF8wX2dycCI7CgkJCQkJCWZ1bmN0aW9uID0gInNkaW8xX2NkIjsKCQkJCQl9OwoK
CQkJCQljb25mLWNkIHsKCQkJCQkJZ3JvdXBzID0gInNkaW8xX2NkXzBfZ3JwIjsKCQkJCQkJYmlh
cy1oaWdoLWltcGVkYW5jZTsKCQkJCQkJYmlhcy1wdWxsLXVwOwoJCQkJCQlzbGV3LXJhdGUgPSA8
MHgxPjsKCQkJCQkJaW8tc3RhbmRhcmQgPSA8MHgxPjsKCQkJCQl9OwoKCQkJCQltdXgtd3AgewoJ
CQkJCQlncm91cHMgPSAic2RpbzFfd3BfMF9ncnAiOwoJCQkJCQlmdW5jdGlvbiA9ICJzZGlvMV93
cCI7CgkJCQkJfTsKCgkJCQkJY29uZi13cCB7CgkJCQkJCWdyb3VwcyA9ICJzZGlvMV93cF8wX2dy
cCI7CgkJCQkJCWJpYXMtaGlnaC1pbXBlZGFuY2U7CgkJCQkJCWJpYXMtcHVsbC11cDsKCQkJCQkJ
c2xldy1yYXRlID0gPDB4MT47CgkJCQkJCWlvLXN0YW5kYXJkID0gPDB4MT47CgkJCQkJfTsKCQkJ
CX07CgoJCQkJZ3Bpby1kZWZhdWx0IHsKCQkJCQlwaGFuZGxlID0gPDB4MmM+OwoKCQkJCQltdXgt
c3cgewoJCQkJCQlmdW5jdGlvbiA9ICJncGlvMCI7CgkJCQkJCWdyb3VwcyA9ICJncGlvMF8yMl9n
cnAiLCAiZ3BpbzBfMjNfZ3JwIjsKCQkJCQl9OwoKCQkJCQljb25mLXN3IHsKCQkJCQkJZ3JvdXBz
ID0gImdwaW8wXzIyX2dycCIsICJncGlvMF8yM19ncnAiOwoJCQkJCQlzbGV3LXJhdGUgPSA8MHgx
PjsKCQkJCQkJaW8tc3RhbmRhcmQgPSA8MHgxPjsKCQkJCQl9OwoKCQkJCQltdXgtbXNwIHsKCQkJ
CQkJZnVuY3Rpb24gPSAiZ3BpbzAiOwoJCQkJCQlncm91cHMgPSAiZ3BpbzBfMTNfZ3JwIiwgImdw
aW8wXzM4X2dycCI7CgkJCQkJfTsKCgkJCQkJY29uZi1tc3AgewoJCQkJCQlncm91cHMgPSAiZ3Bp
bzBfMTNfZ3JwIiwgImdwaW8wXzM4X2dycCI7CgkJCQkJCXNsZXctcmF0ZSA9IDwweDE+OwoJCQkJ
CQlpby1zdGFuZGFyZCA9IDwweDE+OwoJCQkJCX07CgoJCQkJCWNvbmYtcHVsbC11cCB7CgkJCQkJ
CXBpbnMgPSAiTUlPMjIiLCAiTUlPMjMiOwoJCQkJCQliaWFzLXB1bGwtdXA7CgkJCQkJfTsKCgkJ
CQkJY29uZi1wdWxsLW5vbmUgewoJCQkJCQlwaW5zID0gIk1JTzEzIiwgIk1JTzM4IjsKCQkJCQkJ
Ymlhcy1kaXNhYmxlOwoJCQkJCX07CgkJCQl9OwoJCQl9OwoKCQkJY2xvY2stY29udHJvbGxlciB7
CgkJCQl1LWJvb3QsZG0tcHJlLXJlbG9jOwoJCQkJI2Nsb2NrLWNlbGxzID0gPDB4MT47CgkJCQlj
b21wYXRpYmxlID0gInhsbngsenlucW1wLWNsayI7CgkJCQljbG9ja3MgPSA8MHg2IDB4NyAweDgg
MHg5IDB4YT47CgkJCQljbG9jay1uYW1lcyA9ICJwc3NfcmVmX2NsayIsICJ2aWRlb19jbGsiLCAi
cHNzX2FsdF9yZWZfY2xrIiwgImF1eF9yZWZfY2xrIiwgImd0X2NyeF9yZWZfY2xrIjsKCQkJCXBo
YW5kbGUgPSA8MHgzPjsKCQkJfTsKCQl9OwoJfTsKCgl0aW1lciB7CgkJY29tcGF0aWJsZSA9ICJh
cm0sYXJtdjgtdGltZXIiOwoJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQlpbnRlcnJ1cHRz
ID0gPDB4MSAweGQgMHhmMDggMHgxIDB4ZSAweGYwOCAweDEgMHhiIDB4ZjA4IDB4MSAweGEgMHhm
MDg+OwoJfTsKCgllZGFjIHsKCQljb21wYXRpYmxlID0gImFybSxjb3J0ZXgtYTUzLWVkYWMiOwoJ
fTsKCglmcGdhLWZ1bGwgewoJCWNvbXBhdGlibGUgPSAiZnBnYS1yZWdpb24iOwoJCWZwZ2EtbWdy
ID0gPDB4Yj47CgkJI2FkZHJlc3MtY2VsbHMgPSA8MHgyPjsKCQkjc2l6ZS1jZWxscyA9IDwweDI+
OwoJCXJhbmdlczsKCQlwaGFuZGxlID0gPDB4NWE+OwoJfTsKCgludm1lbV9maXJtd2FyZSB7CgkJ
Y29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1udm1lbS1mdyI7CgkJI2FkZHJlc3MtY2VsbHMgPSA8
MHgxPjsKCQkjc2l6ZS1jZWxscyA9IDwweDE+OwoKCQlzb2NfcmV2aXNpb25AMCB7CgkJCXJlZyA9
IDwweDAgMHg0PjsKCQkJcGhhbmRsZSA9IDwweDM0PjsKCQl9OwoKCQllZnVzZV9kbmFAYyB7CgkJ
CXJlZyA9IDwweGMgMHhjPjsKCQkJcGhhbmRsZSA9IDwweDViPjsKCQl9OwoKCQllZnVzZV91c3Iw
QDIwIHsKCQkJcmVnID0gPDB4MjAgMHg0PjsKCQkJcGhhbmRsZSA9IDwweDVjPjsKCQl9OwoKCQll
ZnVzZV91c3IxQDI0IHsKCQkJcmVnID0gPDB4MjQgMHg0PjsKCQkJcGhhbmRsZSA9IDwweDVkPjsK
CQl9OwoKCQllZnVzZV91c3IyQDI4IHsKCQkJcmVnID0gPDB4MjggMHg0PjsKCQkJcGhhbmRsZSA9
IDwweDVlPjsKCQl9OwoKCQllZnVzZV91c3IzQDJjIHsKCQkJcmVnID0gPDB4MmMgMHg0PjsKCQkJ
cGhhbmRsZSA9IDwweDVmPjsKCQl9OwoKCQllZnVzZV91c3I0QDMwIHsKCQkJcmVnID0gPDB4MzAg
MHg0PjsKCQkJcGhhbmRsZSA9IDwweDYwPjsKCQl9OwoKCQllZnVzZV91c3I1QDM0IHsKCQkJcmVn
ID0gPDB4MzQgMHg0PjsKCQkJcGhhbmRsZSA9IDwweDYxPjsKCQl9OwoKCQllZnVzZV91c3I2QDM4
IHsKCQkJcmVnID0gPDB4MzggMHg0PjsKCQkJcGhhbmRsZSA9IDwweDYyPjsKCQl9OwoKCQllZnVz
ZV91c3I3QDNjIHsKCQkJcmVnID0gPDB4M2MgMHg0PjsKCQkJcGhhbmRsZSA9IDwweDYzPjsKCQl9
OwoKCQllZnVzZV9taXNjdXNyQDQwIHsKCQkJcmVnID0gPDB4NDAgMHg0PjsKCQkJcGhhbmRsZSA9
IDwweDY0PjsKCQl9OwoKCQllZnVzZV9jaGFzaEA1MCB7CgkJCXJlZyA9IDwweDUwIDB4ND47CgkJ
CXBoYW5kbGUgPSA8MHg2NT47CgkJfTsKCgkJZWZ1c2VfcHVmbWlzY0A1NCB7CgkJCXJlZyA9IDww
eDU0IDB4ND47CgkJCXBoYW5kbGUgPSA8MHg2Nj47CgkJfTsKCgkJZWZ1c2Vfc2VjQDU4IHsKCQkJ
cmVnID0gPDB4NTggMHg0PjsKCQkJcGhhbmRsZSA9IDwweDY3PjsKCQl9OwoKCQllZnVzZV9zcGtp
ZEA1YyB7CgkJCXJlZyA9IDwweDVjIDB4ND47CgkJCXBoYW5kbGUgPSA8MHg2OD47CgkJfTsKCgkJ
ZWZ1c2VfcHBrMGhhc2hAYTAgewoJCQlyZWcgPSA8MHhhMCAweDMwPjsKCQkJcGhhbmRsZSA9IDww
eDY5PjsKCQl9OwoKCQllZnVzZV9wcGsxaGFzaEBkMCB7CgkJCXJlZyA9IDwweGQwIDB4MzA+OwoJ
CQlwaGFuZGxlID0gPDB4NmE+OwoJCX07Cgl9OwoKCXp5bnFtcF9yc2EgewoJCWNvbXBhdGlibGUg
PSAieGxueCx6eW5xbXAtcnNhIjsKCQlwaGFuZGxlID0gPDB4NmI+OwoJfTsKCglzaGEzODQgewoJ
CWNvbXBhdGlibGUgPSAieGxueCx6eW5xbXAta2VjY2FrLTM4NCI7CgkJcGhhbmRsZSA9IDwweDZj
PjsKCX07CgoJenlucW1wX2FlcyB7CgkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1hZXMiOwoJ
CXBoYW5kbGUgPSA8MHg2ZD47Cgl9OwoKCWFtYmEtYXB1QDAgewoJCWNvbXBhdGlibGUgPSAic2lt
cGxlLWJ1cyI7CgkJI2FkZHJlc3MtY2VsbHMgPSA8MHgyPjsKCQkjc2l6ZS1jZWxscyA9IDwweDE+
OwoJCXJhbmdlcyA9IDwweDAgMHgwIDB4MCAweDAgMHhmZmZmZmZmZj47CgkJcGhhbmRsZSA9IDww
eDZlPjsKCgkJaW50ZXJydXB0LWNvbnRyb2xsZXJAZjkwMTAwMDAgewoJCQljb21wYXRpYmxlID0g
ImFybSxnaWMtNDAwIjsKCQkJI2ludGVycnVwdC1jZWxscyA9IDwweDM+OwoJCQlyZWcgPSA8MHgw
IDB4ZjkwMTAwMDAgMHgxMDAwMCAweDAgMHhmOTAyMDAwMCAweDIwMDAwIDB4MCAweGY5MDQwMDAw
IDB4MjAwMDAgMHgwIDB4ZjkwNjAwMDAgMHgyMDAwMD47CgkJCWludGVycnVwdC1jb250cm9sbGVy
OwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJCWludGVycnVwdHMgPSA8MHgxIDB4OSAw
eGYwND47CgkJCW51bV9jcHVzID0gPDB4Mj47CgkJCW51bV9pbnRlcnJ1cHRzID0gPDB4NjA+OwoJ
CQlwaGFuZGxlID0gPDB4ND47CgkJfTsKCX07CgoJc21tdUBmZDgwMDAwMCB7CgkJY29tcGF0aWJs
ZSA9ICJhcm0sbW11LTUwMCI7CgkJcmVnID0gPDB4MCAweGZkODAwMDAwIDB4MCAweDIwMDAwPjsK
CQkjaW9tbXUtY2VsbHMgPSA8MHgxPjsKCQlzdGF0dXMgPSAib2theSI7CgkJI2dsb2JhbC1pbnRl
cnJ1cHRzID0gPDB4MT47CgkJaW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCWludGVycnVwdHMg
PSA8MHgwIDB4OWIgMHg0IDB4MCAweDliIDB4NCAweDAgMHg5YiAweDQgMHgwIDB4OWIgMHg0IDB4
MCAweDliIDB4NCAweDAgMHg5YiAweDQgMHgwIDB4OWIgMHg0IDB4MCAweDliIDB4NCAweDAgMHg5
YiAweDQgMHgwIDB4OWIgMHg0IDB4MCAweDliIDB4NCAweDAgMHg5YiAweDQgMHgwIDB4OWIgMHg0
IDB4MCAweDliIDB4NCAweDAgMHg5YiAweDQgMHgwIDB4OWIgMHg0IDB4MCAweDliIDB4ND47CgkJ
bW11LW1hc3RlcnMgPSA8MHhjIDB4ODc0IDB4ZCAweDg3NSAweGUgMHg4NzYgMHhmIDB4ODc3IDB4
MTAgMHg4NjAgMHgxMSAweDg2MSAweDEyIDB4ODczIDB4MTMgMHg4NjggMHgxNCAweDg2OSAweDE1
IDB4ODZhIDB4MTYgMHg4NmIgMHgxNyAweDg2YyAweDE4IDB4ODZkIDB4MTkgMHg4NmUgMHgxYSAw
eDg2ZiAweDFiIDB4MTRlOCAweDFjIDB4MTRlOSAweDFkIDB4MTRlYSAweDFlIDB4MTRlYiAweDFm
IDB4MTRlYyAweDIwIDB4MTRlZCAweDIxIDB4MTRlZSAweDIyIDB4MTRlZiAweDIzIDB4ODcwIDB4
MjQgMHg4NzEgMHgyNSAweDg3MiAweDI2IDB4ZTgwPjsKCQlwaGFuZGxlID0gPDB4Mjk+OwoJfTsK
CglhbWJhIHsKCQljb21wYXRpYmxlID0gInNpbXBsZS1idXMiOwoJCXUtYm9vdCxkbS1wcmUtcmVs
b2M7CgkJI2FkZHJlc3MtY2VsbHMgPSA8MHgyPjsKCQkjc2l6ZS1jZWxscyA9IDwweDI+OwoJCXJh
bmdlczsKCQlwaGFuZGxlID0gPDB4NmY+OwoKCQljYW5AZmYwNjAwMDAgewoJCQljb21wYXRpYmxl
ID0gInhsbngsenlucS1jYW4tMS4wIjsKCQkJc3RhdHVzID0gImRpc2FibGVkIjsKCQkJY2xvY2st
bmFtZXMgPSAiY2FuX2NsayIsICJwY2xrIjsKCQkJcmVnID0gPDB4MCAweGZmMDYwMDAwIDB4MCAw
eDEwMDA+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDE3IDB4ND47CgkJCWludGVycnVwdC1wYXJl
bnQgPSA8MHg0PjsKCQkJdHgtZmlmby1kZXB0aCA9IDwweDQwPjsKCQkJcngtZmlmby1kZXB0aCA9
IDwweDQwPjsKCQkJcG93ZXItZG9tYWlucyA9IDwweDI3IDB4MmY+OwoJCQljbG9ja3MgPSA8MHgz
IDB4M2YgMHgzIDB4MWY+OwoJCQlwaGFuZGxlID0gPDB4NzA+OwoJCX07CgoJCWNhbkBmZjA3MDAw
MCB7CgkJCWNvbXBhdGlibGUgPSAieGxueCx6eW5xLWNhbi0xLjAiOwoJCQlzdGF0dXMgPSAib2th
eSI7CgkJCWNsb2NrLW5hbWVzID0gImNhbl9jbGsiLCAicGNsayI7CgkJCXJlZyA9IDwweDAgMHhm
ZjA3MDAwMCAweDAgMHgxMDAwPjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHgxOCAweDQ+OwoJCQlp
bnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJCXR4LWZpZm8tZGVwdGggPSA8MHg0MD47CgkJCXJ4
LWZpZm8tZGVwdGggPSA8MHg0MD47CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgyNyAweDMwPjsKCQkJ
Y2xvY2tzID0gPDB4MyAweDQwIDB4MyAweDFmPjsKCQkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0
IjsKCQkJcGluY3RybC0wID0gPDB4Mjg+OwoJCQlwaGFuZGxlID0gPDB4NzE+OwoJCX07CgoJCWNj
aUBmZDZlMDAwMCB7CgkJCWNvbXBhdGlibGUgPSAiYXJtLGNjaS00MDAiOwoJCQlzdGF0dXMgPSAi
b2theSI7CgkJCXJlZyA9IDwweDAgMHhmZDZlMDAwMCAweDAgMHg5MDAwPjsKCQkJcmFuZ2VzID0g
PDB4MCAweDAgMHhmZDZlMDAwMCAweDEwMDAwPjsKCQkJI2FkZHJlc3MtY2VsbHMgPSA8MHgxPjsK
CQkJI3NpemUtY2VsbHMgPSA8MHgxPjsKCQkJcGhhbmRsZSA9IDwweDcyPjsKCgkJCXBtdUA5MDAw
IHsKCQkJCWNvbXBhdGlibGUgPSAiYXJtLGNjaS00MDAtcG11LHIxIjsKCQkJCXJlZyA9IDwweDkw
MDAgMHg1MDAwPjsKCQkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJCWludGVycnVwdHMg
PSA8MHgwIDB4N2IgMHg0IDB4MCAweDdiIDB4NCAweDAgMHg3YiAweDQgMHgwIDB4N2IgMHg0IDB4
MCAweDdiIDB4ND47CgkJCX07CgkJfTsKCgkJZG1hQGZkNTAwMDAwIHsKCQkJc3RhdHVzID0gIm9r
YXkiOwoJCQljb21wYXRpYmxlID0gInhsbngsenlucW1wLWRtYS0xLjAiOwoJCQlyZWcgPSA8MHgw
IDB4ZmQ1MDAwMDAgMHgwIDB4MTAwMD47CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJ
aW50ZXJydXB0cyA9IDwweDAgMHg3YyAweDQ+OwoJCQljbG9jay1uYW1lcyA9ICJjbGtfbWFpbiIs
ICJjbGtfYXBiIjsKCQkJeGxueCxidXMtd2lkdGggPSA8MHg4MD47CgkJCSNzdHJlYW0taWQtY2Vs
bHMgPSA8MHgxPjsKCQkJaW9tbXVzID0gPDB4MjkgMHgxNGU4PjsKCQkJcG93ZXItZG9tYWlucyA9
IDwweDI3IDB4MmE+OwoJCQljbG9ja3MgPSA8MHgzIDB4MTMgMHgzIDB4MWY+OwoJCQlwaGFuZGxl
ID0gPDB4MWI+OwoJCX07CgoJCWRtYUBmZDUxMDAwMCB7CgkJCXN0YXR1cyA9ICJva2F5IjsKCQkJ
Y29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1kbWEtMS4wIjsKCQkJcmVnID0gPDB4MCAweGZkNTEw
MDAwIDB4MCAweDEwMDA+OwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJCWludGVycnVw
dHMgPSA8MHgwIDB4N2QgMHg0PjsKCQkJY2xvY2stbmFtZXMgPSAiY2xrX21haW4iLCAiY2xrX2Fw
YiI7CgkJCXhsbngsYnVzLXdpZHRoID0gPDB4ODA+OwoJCQkjc3RyZWFtLWlkLWNlbGxzID0gPDB4
MT47CgkJCWlvbW11cyA9IDwweDI5IDB4MTRlOT47CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgyNyAw
eDJhPjsKCQkJY2xvY2tzID0gPDB4MyAweDEzIDB4MyAweDFmPjsKCQkJcGhhbmRsZSA9IDwweDFj
PjsKCQl9OwoKCQlkbWFAZmQ1MjAwMDAgewoJCQlzdGF0dXMgPSAib2theSI7CgkJCWNvbXBhdGli
bGUgPSAieGxueCx6eW5xbXAtZG1hLTEuMCI7CgkJCXJlZyA9IDwweDAgMHhmZDUyMDAwMCAweDAg
MHgxMDAwPjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4
MCAweDdlIDB4ND47CgkJCWNsb2NrLW5hbWVzID0gImNsa19tYWluIiwgImNsa19hcGIiOwoJCQl4
bG54LGJ1cy13aWR0aCA9IDwweDgwPjsKCQkJI3N0cmVhbS1pZC1jZWxscyA9IDwweDE+OwoJCQlp
b21tdXMgPSA8MHgyOSAweDE0ZWE+OwoJCQlwb3dlci1kb21haW5zID0gPDB4MjcgMHgyYT47CgkJ
CWNsb2NrcyA9IDwweDMgMHgxMyAweDMgMHgxZj47CgkJCXBoYW5kbGUgPSA8MHgxZD47CgkJfTsK
CgkJZG1hQGZkNTMwMDAwIHsKCQkJc3RhdHVzID0gIm9rYXkiOwoJCQljb21wYXRpYmxlID0gInhs
bngsenlucW1wLWRtYS0xLjAiOwoJCQlyZWcgPSA8MHgwIDB4ZmQ1MzAwMDAgMHgwIDB4MTAwMD47
CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHg3ZiAw
eDQ+OwoJCQljbG9jay1uYW1lcyA9ICJjbGtfbWFpbiIsICJjbGtfYXBiIjsKCQkJeGxueCxidXMt
d2lkdGggPSA8MHg4MD47CgkJCSNzdHJlYW0taWQtY2VsbHMgPSA8MHgxPjsKCQkJaW9tbXVzID0g
PDB4MjkgMHgxNGViPjsKCQkJcG93ZXItZG9tYWlucyA9IDwweDI3IDB4MmE+OwoJCQljbG9ja3Mg
PSA8MHgzIDB4MTMgMHgzIDB4MWY+OwoJCQlwaGFuZGxlID0gPDB4MWU+OwoJCX07CgoJCWRtYUBm
ZDU0MDAwMCB7CgkJCXN0YXR1cyA9ICJva2F5IjsKCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFt
cC1kbWEtMS4wIjsKCQkJcmVnID0gPDB4MCAweGZkNTQwMDAwIDB4MCAweDEwMDA+OwoJCQlpbnRl
cnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJCWludGVycnVwdHMgPSA8MHgwIDB4ODAgMHg0PjsKCQkJ
Y2xvY2stbmFtZXMgPSAiY2xrX21haW4iLCAiY2xrX2FwYiI7CgkJCXhsbngsYnVzLXdpZHRoID0g
PDB4ODA+OwoJCQkjc3RyZWFtLWlkLWNlbGxzID0gPDB4MT47CgkJCWlvbW11cyA9IDwweDI5IDB4
MTRlYz47CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgyNyAweDJhPjsKCQkJY2xvY2tzID0gPDB4MyAw
eDEzIDB4MyAweDFmPjsKCQkJcGhhbmRsZSA9IDwweDFmPjsKCQl9OwoKCQlkbWFAZmQ1NTAwMDAg
ewoJCQlzdGF0dXMgPSAib2theSI7CgkJCWNvbXBhdGlibGUgPSAieGxueCx6eW5xbXAtZG1hLTEu
MCI7CgkJCXJlZyA9IDwweDAgMHhmZDU1MDAwMCAweDAgMHgxMDAwPjsKCQkJaW50ZXJydXB0LXBh
cmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDgxIDB4ND47CgkJCWNsb2NrLW5h
bWVzID0gImNsa19tYWluIiwgImNsa19hcGIiOwoJCQl4bG54LGJ1cy13aWR0aCA9IDwweDgwPjsK
CQkJI3N0cmVhbS1pZC1jZWxscyA9IDwweDE+OwoJCQlpb21tdXMgPSA8MHgyOSAweDE0ZWQ+OwoJ
CQlwb3dlci1kb21haW5zID0gPDB4MjcgMHgyYT47CgkJCWNsb2NrcyA9IDwweDMgMHgxMyAweDMg
MHgxZj47CgkJCXBoYW5kbGUgPSA8MHgyMD47CgkJfTsKCgkJZG1hQGZkNTYwMDAwIHsKCQkJc3Rh
dHVzID0gIm9rYXkiOwoJCQljb21wYXRpYmxlID0gInhsbngsenlucW1wLWRtYS0xLjAiOwoJCQly
ZWcgPSA8MHgwIDB4ZmQ1NjAwMDAgMHgwIDB4MTAwMD47CgkJCWludGVycnVwdC1wYXJlbnQgPSA8
MHg0PjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHg4MiAweDQ+OwoJCQljbG9jay1uYW1lcyA9ICJj
bGtfbWFpbiIsICJjbGtfYXBiIjsKCQkJeGxueCxidXMtd2lkdGggPSA8MHg4MD47CgkJCSNzdHJl
YW0taWQtY2VsbHMgPSA8MHgxPjsKCQkJaW9tbXVzID0gPDB4MjkgMHgxNGVlPjsKCQkJcG93ZXIt
ZG9tYWlucyA9IDwweDI3IDB4MmE+OwoJCQljbG9ja3MgPSA8MHgzIDB4MTMgMHgzIDB4MWY+OwoJ
CQlwaGFuZGxlID0gPDB4MjE+OwoJCX07CgoJCWRtYUBmZDU3MDAwMCB7CgkJCXN0YXR1cyA9ICJv
a2F5IjsKCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1kbWEtMS4wIjsKCQkJcmVnID0gPDB4
MCAweGZkNTcwMDAwIDB4MCAweDEwMDA+OwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJ
CWludGVycnVwdHMgPSA8MHgwIDB4ODMgMHg0PjsKCQkJY2xvY2stbmFtZXMgPSAiY2xrX21haW4i
LCAiY2xrX2FwYiI7CgkJCXhsbngsYnVzLXdpZHRoID0gPDB4ODA+OwoJCQkjc3RyZWFtLWlkLWNl
bGxzID0gPDB4MT47CgkJCWlvbW11cyA9IDwweDI5IDB4MTRlZj47CgkJCXBvd2VyLWRvbWFpbnMg
PSA8MHgyNyAweDJhPjsKCQkJY2xvY2tzID0gPDB4MyAweDEzIDB4MyAweDFmPjsKCQkJcGhhbmRs
ZSA9IDwweDIyPjsKCQl9OwoKCQlncHVAZmQ0YjAwMDAgewoJCQlzdGF0dXMgPSAib2theSI7CgkJ
CWNvbXBhdGlibGUgPSAiYXJtLG1hbGktNDAwIiwgImFybSxtYWxpLXV0Z2FyZCI7CgkJCXJlZyA9
IDwweDAgMHhmZDRiMDAwMCAweDAgMHgxMDAwMD47CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0
PjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHg4NCAweDQgMHgwIDB4ODQgMHg0IDB4MCAweDg0IDB4
NCAweDAgMHg4NCAweDQgMHgwIDB4ODQgMHg0IDB4MCAweDg0IDB4ND47CgkJCWludGVycnVwdC1u
YW1lcyA9ICJJUlFHUCIsICJJUlFHUE1NVSIsICJJUlFQUDAiLCAiSVJRUFBNTVUwIiwgIklSUVBQ
MSIsICJJUlFQUE1NVTEiOwoJCQljbG9jay1uYW1lcyA9ICJncHUiLCAiZ3B1X3BwMCIsICJncHVf
cHAxIjsKCQkJcG93ZXItZG9tYWlucyA9IDwweDI3IDB4M2E+OwoJCQljbG9ja3MgPSA8MHgzIDB4
MTggMHgzIDB4MTkgMHgzIDB4MWE+OwoJCQl4bG54LHR6LW5vbnNlY3VyZSA9IDwweDE+OwoJCQlw
aGFuZGxlID0gPDB4NzM+OwoJCX07CgoJCWRtYUBmZmE4MDAwMCB7CgkJCXN0YXR1cyA9ICJva2F5
IjsKCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1kbWEtMS4wIjsKCQkJcmVnID0gPDB4MCAw
eGZmYTgwMDAwIDB4MCAweDEwMDA+OwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJCWlu
dGVycnVwdHMgPSA8MHgwIDB4NGQgMHg0PjsKCQkJY2xvY2stbmFtZXMgPSAiY2xrX21haW4iLCAi
Y2xrX2FwYiI7CgkJCXhsbngsYnVzLXdpZHRoID0gPDB4NDA+OwoJCQkjc3RyZWFtLWlkLWNlbGxz
ID0gPDB4MT47CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgyNyAweDJiPjsKCQkJY2xvY2tzID0gPDB4
MyAweDQ0IDB4MyAweDFmPjsKCQkJcGhhbmRsZSA9IDwweDEzPjsKCQl9OwoKCQlkbWFAZmZhOTAw
MDAgewoJCQlzdGF0dXMgPSAib2theSI7CgkJCWNvbXBhdGlibGUgPSAieGxueCx6eW5xbXAtZG1h
LTEuMCI7CgkJCXJlZyA9IDwweDAgMHhmZmE5MDAwMCAweDAgMHgxMDAwPjsKCQkJaW50ZXJydXB0
LXBhcmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDRlIDB4ND47CgkJCWNsb2Nr
LW5hbWVzID0gImNsa19tYWluIiwgImNsa19hcGIiOwoJCQl4bG54LGJ1cy13aWR0aCA9IDwweDQw
PjsKCQkJI3N0cmVhbS1pZC1jZWxscyA9IDwweDE+OwoJCQlwb3dlci1kb21haW5zID0gPDB4Mjcg
MHgyYj47CgkJCWNsb2NrcyA9IDwweDMgMHg0NCAweDMgMHgxZj47CgkJCXBoYW5kbGUgPSA8MHgx
ND47CgkJfTsKCgkJZG1hQGZmYWEwMDAwIHsKCQkJc3RhdHVzID0gIm9rYXkiOwoJCQljb21wYXRp
YmxlID0gInhsbngsenlucW1wLWRtYS0xLjAiOwoJCQlyZWcgPSA8MHgwIDB4ZmZhYTAwMDAgMHgw
IDB4MTAwMD47CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJaW50ZXJydXB0cyA9IDww
eDAgMHg0ZiAweDQ+OwoJCQljbG9jay1uYW1lcyA9ICJjbGtfbWFpbiIsICJjbGtfYXBiIjsKCQkJ
eGxueCxidXMtd2lkdGggPSA8MHg0MD47CgkJCSNzdHJlYW0taWQtY2VsbHMgPSA8MHgxPjsKCQkJ
cG93ZXItZG9tYWlucyA9IDwweDI3IDB4MmI+OwoJCQljbG9ja3MgPSA8MHgzIDB4NDQgMHgzIDB4
MWY+OwoJCQlwaGFuZGxlID0gPDB4MTU+OwoJCX07CgoJCWRtYUBmZmFiMDAwMCB7CgkJCXN0YXR1
cyA9ICJva2F5IjsKCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1kbWEtMS4wIjsKCQkJcmVn
ID0gPDB4MCAweGZmYWIwMDAwIDB4MCAweDEwMDA+OwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4
ND47CgkJCWludGVycnVwdHMgPSA8MHgwIDB4NTAgMHg0PjsKCQkJY2xvY2stbmFtZXMgPSAiY2xr
X21haW4iLCAiY2xrX2FwYiI7CgkJCXhsbngsYnVzLXdpZHRoID0gPDB4NDA+OwoJCQkjc3RyZWFt
LWlkLWNlbGxzID0gPDB4MT47CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgyNyAweDJiPjsKCQkJY2xv
Y2tzID0gPDB4MyAweDQ0IDB4MyAweDFmPjsKCQkJcGhhbmRsZSA9IDwweDE2PjsKCQl9OwoKCQlk
bWFAZmZhYzAwMDAgewoJCQlzdGF0dXMgPSAib2theSI7CgkJCWNvbXBhdGlibGUgPSAieGxueCx6
eW5xbXAtZG1hLTEuMCI7CgkJCXJlZyA9IDwweDAgMHhmZmFjMDAwMCAweDAgMHgxMDAwPjsKCQkJ
aW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDUxIDB4ND47
CgkJCWNsb2NrLW5hbWVzID0gImNsa19tYWluIiwgImNsa19hcGIiOwoJCQl4bG54LGJ1cy13aWR0
aCA9IDwweDQwPjsKCQkJI3N0cmVhbS1pZC1jZWxscyA9IDwweDE+OwoJCQlwb3dlci1kb21haW5z
ID0gPDB4MjcgMHgyYj47CgkJCWNsb2NrcyA9IDwweDMgMHg0NCAweDMgMHgxZj47CgkJCXBoYW5k
bGUgPSA8MHgxNz47CgkJfTsKCgkJZG1hQGZmYWQwMDAwIHsKCQkJc3RhdHVzID0gIm9rYXkiOwoJ
CQljb21wYXRpYmxlID0gInhsbngsenlucW1wLWRtYS0xLjAiOwoJCQlyZWcgPSA8MHgwIDB4ZmZh
ZDAwMDAgMHgwIDB4MTAwMD47CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJaW50ZXJy
dXB0cyA9IDwweDAgMHg1MiAweDQ+OwoJCQljbG9jay1uYW1lcyA9ICJjbGtfbWFpbiIsICJjbGtf
YXBiIjsKCQkJeGxueCxidXMtd2lkdGggPSA8MHg0MD47CgkJCSNzdHJlYW0taWQtY2VsbHMgPSA8
MHgxPjsKCQkJcG93ZXItZG9tYWlucyA9IDwweDI3IDB4MmI+OwoJCQljbG9ja3MgPSA8MHgzIDB4
NDQgMHgzIDB4MWY+OwoJCQlwaGFuZGxlID0gPDB4MTg+OwoJCX07CgoJCWRtYUBmZmFlMDAwMCB7
CgkJCXN0YXR1cyA9ICJva2F5IjsKCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1kbWEtMS4w
IjsKCQkJcmVnID0gPDB4MCAweGZmYWUwMDAwIDB4MCAweDEwMDA+OwoJCQlpbnRlcnJ1cHQtcGFy
ZW50ID0gPDB4ND47CgkJCWludGVycnVwdHMgPSA8MHgwIDB4NTMgMHg0PjsKCQkJY2xvY2stbmFt
ZXMgPSAiY2xrX21haW4iLCAiY2xrX2FwYiI7CgkJCXhsbngsYnVzLXdpZHRoID0gPDB4NDA+OwoJ
CQkjc3RyZWFtLWlkLWNlbGxzID0gPDB4MT47CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgyNyAweDJi
PjsKCQkJY2xvY2tzID0gPDB4MyAweDQ0IDB4MyAweDFmPjsKCQkJcGhhbmRsZSA9IDwweDE5PjsK
CQl9OwoKCQlkbWFAZmZhZjAwMDAgewoJCQlzdGF0dXMgPSAib2theSI7CgkJCWNvbXBhdGlibGUg
PSAieGxueCx6eW5xbXAtZG1hLTEuMCI7CgkJCXJlZyA9IDwweDAgMHhmZmFmMDAwMCAweDAgMHgx
MDAwPjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAw
eDU0IDB4ND47CgkJCWNsb2NrLW5hbWVzID0gImNsa19tYWluIiwgImNsa19hcGIiOwoJCQl4bG54
LGJ1cy13aWR0aCA9IDwweDQwPjsKCQkJI3N0cmVhbS1pZC1jZWxscyA9IDwweDE+OwoJCQlwb3dl
ci1kb21haW5zID0gPDB4MjcgMHgyYj47CgkJCWNsb2NrcyA9IDwweDMgMHg0NCAweDMgMHgxZj47
CgkJCXBoYW5kbGUgPSA8MHgxYT47CgkJfTsKCgkJbWVtb3J5LWNvbnRyb2xsZXJAZmQwNzAwMDAg
ewoJCQljb21wYXRpYmxlID0gInhsbngsenlucW1wLWRkcmMtMi40MGEiOwoJCQlyZWcgPSA8MHgw
IDB4ZmQwNzAwMDAgMHgwIDB4MzAwMDA+OwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJ
CWludGVycnVwdHMgPSA8MHgwIDB4NzAgMHg0PjsKCQkJcGhhbmRsZSA9IDwweDc0PjsKCQl9OwoK
CQluYW5kQGZmMTAwMDAwIHsKCQkJY29tcGF0aWJsZSA9ICJhcmFzYW4sbmZjLXYzcDEwIjsKCQkJ
c3RhdHVzID0gImRpc2FibGVkIjsKCQkJcmVnID0gPDB4MCAweGZmMTAwMDAwIDB4MCAweDEwMDA+
OwoJCQljbG9jay1uYW1lcyA9ICJjbGtfc3lzIiwgImNsa19mbGFzaCI7CgkJCWludGVycnVwdC1w
YXJlbnQgPSA8MHg0PjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHhlIDB4ND47CgkJCSNhZGRyZXNz
LWNlbGxzID0gPDB4MT47CgkJCSNzaXplLWNlbGxzID0gPDB4MD47CgkJCSNzdHJlYW0taWQtY2Vs
bHMgPSA8MHgxPjsKCQkJaW9tbXVzID0gPDB4MjkgMHg4NzI+OwoJCQlwb3dlci1kb21haW5zID0g
PDB4MjcgMHgyYz47CgkJCWNsb2NrcyA9IDwweDMgMHgzYyAweDMgMHgxZj47CgkJCXBoYW5kbGUg
PSA8MHgyNT47CgkJfTsKCgkJZXRoZXJuZXRAZmYwYjAwMDAgewoJCQljb21wYXRpYmxlID0gImNk
bnMsenlucW1wLWdlbSIsICJjZG5zLGdlbSI7CgkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CgkJCWlu
dGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHgzOSAweDQgMHgw
IDB4MzkgMHg0PjsKCQkJcmVnID0gPDB4MCAweGZmMGIwMDAwIDB4MCAweDEwMDA+OwoJCQljbG9j
ay1uYW1lcyA9ICJwY2xrIiwgImhjbGsiLCAidHhfY2xrIiwgInJ4X2NsayIsICJ0c3VfY2xrIjsK
CQkJI2FkZHJlc3MtY2VsbHMgPSA8MHgxPjsKCQkJI3NpemUtY2VsbHMgPSA8MHgwPjsKCQkJI3N0
cmVhbS1pZC1jZWxscyA9IDwweDE+OwoJCQlpb21tdXMgPSA8MHgyOSAweDg3ND47CgkJCXBvd2Vy
LWRvbWFpbnMgPSA8MHgyNyAweDFkPjsKCQkJY2xvY2tzID0gPDB4MyAweDFmIDB4MyAweDY4IDB4
MyAweDJkIDB4MyAweDMxIDB4MyAweDJjPjsKCQkJcGhhbmRsZSA9IDwweGM+OwoJCX07CgoJCWV0
aGVybmV0QGZmMGMwMDAwIHsKCQkJY29tcGF0aWJsZSA9ICJjZG5zLHp5bnFtcC1nZW0iLCAiY2Ru
cyxnZW0iOwoJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4
ND47CgkJCWludGVycnVwdHMgPSA8MHgwIDB4M2IgMHg0IDB4MCAweDNiIDB4ND47CgkJCXJlZyA9
IDwweDAgMHhmZjBjMDAwMCAweDAgMHgxMDAwPjsKCQkJY2xvY2stbmFtZXMgPSAicGNsayIsICJo
Y2xrIiwgInR4X2NsayIsICJyeF9jbGsiLCAidHN1X2NsayI7CgkJCSNhZGRyZXNzLWNlbGxzID0g
PDB4MT47CgkJCSNzaXplLWNlbGxzID0gPDB4MD47CgkJCSNzdHJlYW0taWQtY2VsbHMgPSA8MHgx
PjsKCQkJaW9tbXVzID0gPDB4MjkgMHg4NzU+OwoJCQlwb3dlci1kb21haW5zID0gPDB4MjcgMHgx
ZT47CgkJCWNsb2NrcyA9IDwweDMgMHgxZiAweDMgMHg2OSAweDMgMHgyZSAweDMgMHgzMiAweDMg
MHgyYz47CgkJCXBoYW5kbGUgPSA8MHhkPjsKCQl9OwoKCQlldGhlcm5ldEBmZjBkMDAwMCB7CgkJ
CWNvbXBhdGlibGUgPSAiY2Rucyx6eW5xbXAtZ2VtIiwgImNkbnMsZ2VtIjsKCQkJc3RhdHVzID0g
ImRpc2FibGVkIjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0g
PDB4MCAweDNkIDB4NCAweDAgMHgzZCAweDQ+OwoJCQlyZWcgPSA8MHgwIDB4ZmYwZDAwMDAgMHgw
IDB4MTAwMD47CgkJCWNsb2NrLW5hbWVzID0gInBjbGsiLCAiaGNsayIsICJ0eF9jbGsiLCAicnhf
Y2xrIiwgInRzdV9jbGsiOwoJCQkjYWRkcmVzcy1jZWxscyA9IDwweDE+OwoJCQkjc2l6ZS1jZWxs
cyA9IDwweDA+OwoJCQkjc3RyZWFtLWlkLWNlbGxzID0gPDB4MT47CgkJCWlvbW11cyA9IDwweDI5
IDB4ODc2PjsKCQkJcG93ZXItZG9tYWlucyA9IDwweDI3IDB4MWY+OwoJCQljbG9ja3MgPSA8MHgz
IDB4MWYgMHgzIDB4NmEgMHgzIDB4MmYgMHgzIDB4MzMgMHgzIDB4MmM+OwoJCQlwaGFuZGxlID0g
PDB4ZT47CgkJfTsKCgkJZXRoZXJuZXRAZmYwZTAwMDAgewoJCQljb21wYXRpYmxlID0gImNkbnMs
enlucW1wLWdlbSIsICJjZG5zLGdlbSI7CgkJCXN0YXR1cyA9ICJva2F5IjsKCQkJaW50ZXJydXB0
LXBhcmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDNmIDB4NCAweDAgMHgzZiAw
eDQ+OwoJCQlyZWcgPSA8MHgwIDB4ZmYwZTAwMDAgMHgwIDB4MTAwMD47CgkJCWNsb2NrLW5hbWVz
ID0gInBjbGsiLCAiaGNsayIsICJ0eF9jbGsiLCAicnhfY2xrIiwgInRzdV9jbGsiOwoJCQkjYWRk
cmVzcy1jZWxscyA9IDwweDE+OwoJCQkjc2l6ZS1jZWxscyA9IDwweDA+OwoJCQkjc3RyZWFtLWlk
LWNlbGxzID0gPDB4MT47CgkJCWlvbW11cyA9IDwweDI5IDB4ODc3PjsKCQkJcG93ZXItZG9tYWlu
cyA9IDwweDI3IDB4MjA+OwoJCQljbG9ja3MgPSA8MHgzIDB4MWYgMHgzIDB4NmIgMHgzIDB4MzAg
MHgzIDB4MzQgMHgzIDB4MmM+OwoJCQlwaHktaGFuZGxlID0gPDB4MmE+OwoJCQlwaW5jdHJsLW5h
bWVzID0gImRlZmF1bHQiOwoJCQlwaW5jdHJsLTAgPSA8MHgyYj47CgkJCXBoeS1tb2RlID0gInJn
bWlpLWlkIjsKCQkJeGxueCxwdHAtZW5ldC1jbG9jayA9IDwweDA+OwoJCQlsb2NhbC1tYWMtYWRk
cmVzcyA9IFswMCAwYSAzNSAwMCAyMiAwMV07CgkJCXBoYW5kbGUgPSA8MHhmPjsKCgkJCWV0aGVy
bmV0LXBoeUBjIHsKCQkJCXJlZyA9IDwweGM+OwoJCQkJdGkscngtaW50ZXJuYWwtZGVsYXkgPSA8
MHg4PjsKCQkJCXRpLHR4LWludGVybmFsLWRlbGF5ID0gPDB4YT47CgkJCQl0aSxmaWZvLWRlcHRo
ID0gPDB4MT47CgkJCQl0aSxkcDgzODY3LXJ4Y3RybC1zdHJhcC1xdWlyazsKCQkJCXBoYW5kbGUg
PSA8MHgyYT47CgkJCX07CgkJfTsKCgkJZ3Bpb0BmZjBhMDAwMCB7CgkJCWNvbXBhdGlibGUgPSAi
eGxueCx6eW5xbXAtZ3Bpby0xLjAiOwoJCQlzdGF0dXMgPSAib2theSI7CgkJCSNncGlvLWNlbGxz
ID0gPDB4Mj47CgkJCWdwaW8tY29udHJvbGxlcjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDwweDQ+
OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDEwIDB4ND47CgkJCWludGVycnVwdC1jb250cm9sbGVy
OwoJCQkjaW50ZXJydXB0LWNlbGxzID0gPDB4Mj47CgkJCXJlZyA9IDwweDAgMHhmZjBhMDAwMCAw
eDAgMHgxMDAwPjsKCQkJcG93ZXItZG9tYWlucyA9IDwweDI3IDB4MmU+OwoJCQljbG9ja3MgPSA8
MHgzIDB4MWY+OwoJCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOwoJCQlwaW5jdHJsLTAgPSA8
MHgyYz47CgkJCWVtaW8tZ3Bpby13aWR0aCA9IDwweDIwPjsKCQkJZ3Bpby1tYXNrLWhpZ2ggPSA8
MHgwPjsKCQkJZ3Bpby1tYXNrLWxvdyA9IDwweDU2MDA+OwoJCQlwaGFuZGxlID0gPDB4MmY+OwoJ
CX07CgoJCWkyY0BmZjAyMDAwMCB7CgkJCWNvbXBhdGlibGUgPSAiY2RucyxpMmMtcjFwMTQiLCAi
Y2RucyxpMmMtcjFwMTAiOwoJCQlzdGF0dXMgPSAib2theSI7CgkJCWludGVycnVwdC1wYXJlbnQg
PSA8MHg0PjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHgxMSAweDQ+OwoJCQlyZWcgPSA8MHgwIDB4
ZmYwMjAwMDAgMHgwIDB4MTAwMD47CgkJCSNhZGRyZXNzLWNlbGxzID0gPDB4MT47CgkJCSNzaXpl
LWNlbGxzID0gPDB4MD47CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgyNyAweDI1PjsKCQkJY2xvY2tz
ID0gPDB4MyAweDNkPjsKCQkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IiwgImdwaW8iOwoJCQlw
aW5jdHJsLTAgPSA8MHgyZD47CgkJCXBpbmN0cmwtMSA9IDwweDJlPjsKCQkJc2NsLWdwaW9zID0g
PDB4MmYgMHhlIDB4MD47CgkJCXNkYS1ncGlvcyA9IDwweDJmIDB4ZiAweDA+OwoJCQljbG9jay1m
cmVxdWVuY3kgPSA8MHg2MWE4MD47CgkJCXBoYW5kbGUgPSA8MHg3NT47CgoJCQlncGlvQDIwIHsK
CQkJCWNvbXBhdGlibGUgPSAidGksdGNhNjQxNiI7CgkJCQlyZWcgPSA8MHgyMD47CgkJCQlncGlv
LWNvbnRyb2xsZXI7CgkJCQkjZ3Bpby1jZWxscyA9IDwweDI+OwoJCQkJZ3Bpby1saW5lLW5hbWVz
ID0gIlBTX0dUUl9MQU5fU0VMMCIsICJQU19HVFJfTEFOX1NFTDEiLCAiUFNfR1RSX0xBTl9TRUwy
IiwgIlBTX0dUUl9MQU5fU0VMMyIsICJQQ0lfQ0xLX0RJUl9TRUwiLCAiSUlDX01VWF9SRVNFVF9C
IiwgIkdFTTNfRVhQX1JFU0VUX0IiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIi
OwoJCQkJcGhhbmRsZSA9IDwweDc2PjsKCQkJfTsKCgkJCWdwaW9AMjEgewoJCQkJY29tcGF0aWJs
ZSA9ICJ0aSx0Y2E2NDE2IjsKCQkJCXJlZyA9IDwweDIxPjsKCQkJCWdwaW8tY29udHJvbGxlcjsK
CQkJCSNncGlvLWNlbGxzID0gPDB4Mj47CgkJCQlncGlvLWxpbmUtbmFtZXMgPSAiVkNDUFNQTExf
RU4iLCAiTUdUUkFWQ0NfRU4iLCAiTUdUUkFWVFRfRU4iLCAiVkNDUFNERFJQTExfRU4iLCAiTUlP
MjZfUE1VX0lOUFVUX0xTIiwgIlBMX1BNQlVTX0FMRVJUIiwgIlBTX1BNQlVTX0FMRVJUIiwgIk1B
WElNX1BNQlVTX0FMRVJUIiwgIlBMX0REUjRfVlRFUk1fRU4iLCAiUExfRERSNF9WUFBfMlY1X0VO
IiwgIlBTX0RJTU1fVkREUV9UT19QU1ZDQ09fT04iLCAiUFNfRElNTV9TVVNQRU5EX0VOIiwgIlBT
X0REUjRfVlRFUk1fRU4iLCAiUFNfRERSNF9WUFBfMlY1X0VOIiwgIiIsICIiOwoJCQkJcGhhbmRs
ZSA9IDwweDc3PjsKCQkJfTsKCgkJCWkyYy1tdXhANzUgewoJCQkJY29tcGF0aWJsZSA9ICJueHAs
cGNhOTU0NCI7CgkJCQkjYWRkcmVzcy1jZWxscyA9IDwweDE+OwoJCQkJI3NpemUtY2VsbHMgPSA8
MHgwPjsKCQkJCXJlZyA9IDwweDc1PjsKCgkJCQlpMmNAMCB7CgkJCQkJI2FkZHJlc3MtY2VsbHMg
PSA8MHgxPjsKCQkJCQkjc2l6ZS1jZWxscyA9IDwweDA+OwoJCQkJCXJlZyA9IDwweDA+OwoKCQkJ
CQlpbmEyMjZANDAgewoJCQkJCQljb21wYXRpYmxlID0gInRpLGluYTIyNiI7CgkJCQkJCSNpby1j
aGFubmVsLWNlbGxzID0gPDB4MT47CgkJCQkJCWxhYmVsID0gImluYTIyNi11NzYiOwoJCQkJCQly
ZWcgPSA8MHg0MD47CgkJCQkJCXNodW50LXJlc2lzdG9yID0gPDB4MTM4OD47CgkJCQkJCXBoYW5k
bGUgPSA8MHg0MT47CgkJCQkJfTsKCgkJCQkJaW5hMjI2QDQxIHsKCQkJCQkJY29tcGF0aWJsZSA9
ICJ0aSxpbmEyMjYiOwoJCQkJCQkjaW8tY2hhbm5lbC1jZWxscyA9IDwweDE+OwoJCQkJCQlsYWJl
bCA9ICJpbmEyMjYtdTc3IjsKCQkJCQkJcmVnID0gPDB4NDE+OwoJCQkJCQlzaHVudC1yZXNpc3Rv
ciA9IDwweDEzODg+OwoJCQkJCQlwaGFuZGxlID0gPDB4NDI+OwoJCQkJCX07CgoJCQkJCWluYTIy
NkA0MiB7CgkJCQkJCWNvbXBhdGlibGUgPSAidGksaW5hMjI2IjsKCQkJCQkJI2lvLWNoYW5uZWwt
Y2VsbHMgPSA8MHgxPjsKCQkJCQkJbGFiZWwgPSAiaW5hMjI2LXU3OCI7CgkJCQkJCXJlZyA9IDww
eDQyPjsKCQkJCQkJc2h1bnQtcmVzaXN0b3IgPSA8MHgxMzg4PjsKCQkJCQkJcGhhbmRsZSA9IDww
eDQzPjsKCQkJCQl9OwoKCQkJCQlpbmEyMjZANDMgewoJCQkJCQljb21wYXRpYmxlID0gInRpLGlu
YTIyNiI7CgkJCQkJCSNpby1jaGFubmVsLWNlbGxzID0gPDB4MT47CgkJCQkJCWxhYmVsID0gImlu
YTIyNi11ODciOwoJCQkJCQlyZWcgPSA8MHg0Mz47CgkJCQkJCXNodW50LXJlc2lzdG9yID0gPDB4
MTM4OD47CgkJCQkJCXBoYW5kbGUgPSA8MHg0ND47CgkJCQkJfTsKCgkJCQkJaW5hMjI2QDQ0IHsK
CQkJCQkJY29tcGF0aWJsZSA9ICJ0aSxpbmEyMjYiOwoJCQkJCQkjaW8tY2hhbm5lbC1jZWxscyA9
IDwweDE+OwoJCQkJCQlsYWJlbCA9ICJpbmEyMjYtdTg1IjsKCQkJCQkJcmVnID0gPDB4NDQ+OwoJ
CQkJCQlzaHVudC1yZXNpc3RvciA9IDwweDEzODg+OwoJCQkJCQlwaGFuZGxlID0gPDB4NDU+OwoJ
CQkJCX07CgoJCQkJCWluYTIyNkA0NSB7CgkJCQkJCWNvbXBhdGlibGUgPSAidGksaW5hMjI2IjsK
CQkJCQkJI2lvLWNoYW5uZWwtY2VsbHMgPSA8MHgxPjsKCQkJCQkJbGFiZWwgPSAiaW5hMjI2LXU4
NiI7CgkJCQkJCXJlZyA9IDwweDQ1PjsKCQkJCQkJc2h1bnQtcmVzaXN0b3IgPSA8MHgxMzg4PjsK
CQkJCQkJcGhhbmRsZSA9IDwweDQ2PjsKCQkJCQl9OwoKCQkJCQlpbmEyMjZANDYgewoJCQkJCQlj
b21wYXRpYmxlID0gInRpLGluYTIyNiI7CgkJCQkJCSNpby1jaGFubmVsLWNlbGxzID0gPDB4MT47
CgkJCQkJCWxhYmVsID0gImluYTIyNi11OTMiOwoJCQkJCQlyZWcgPSA8MHg0Nj47CgkJCQkJCXNo
dW50LXJlc2lzdG9yID0gPDB4MTM4OD47CgkJCQkJCXBoYW5kbGUgPSA8MHg0Nz47CgkJCQkJfTsK
CgkJCQkJaW5hMjI2QDQ3IHsKCQkJCQkJY29tcGF0aWJsZSA9ICJ0aSxpbmEyMjYiOwoJCQkJCQkj
aW8tY2hhbm5lbC1jZWxscyA9IDwweDE+OwoJCQkJCQlsYWJlbCA9ICJpbmEyMjYtdTg4IjsKCQkJ
CQkJcmVnID0gPDB4NDc+OwoJCQkJCQlzaHVudC1yZXNpc3RvciA9IDwweDEzODg+OwoJCQkJCQlw
aGFuZGxlID0gPDB4NDg+OwoJCQkJCX07CgoJCQkJCWluYTIyNkA0YSB7CgkJCQkJCWNvbXBhdGli
bGUgPSAidGksaW5hMjI2IjsKCQkJCQkJI2lvLWNoYW5uZWwtY2VsbHMgPSA8MHgxPjsKCQkJCQkJ
bGFiZWwgPSAiaW5hMjI2LXUxNSI7CgkJCQkJCXJlZyA9IDwweDRhPjsKCQkJCQkJc2h1bnQtcmVz
aXN0b3IgPSA8MHgxMzg4PjsKCQkJCQkJcGhhbmRsZSA9IDwweDQ5PjsKCQkJCQl9OwoKCQkJCQlp
bmEyMjZANGIgewoJCQkJCQljb21wYXRpYmxlID0gInRpLGluYTIyNiI7CgkJCQkJCSNpby1jaGFu
bmVsLWNlbGxzID0gPDB4MT47CgkJCQkJCWxhYmVsID0gImluYTIyNi11OTIiOwoJCQkJCQlyZWcg
PSA8MHg0Yj47CgkJCQkJCXNodW50LXJlc2lzdG9yID0gPDB4MTM4OD47CgkJCQkJCXBoYW5kbGUg
PSA8MHg0YT47CgkJCQkJfTsKCQkJCX07CgoJCQkJaTJjQDEgewoJCQkJCSNhZGRyZXNzLWNlbGxz
ID0gPDB4MT47CgkJCQkJI3NpemUtY2VsbHMgPSA8MHgwPjsKCQkJCQlyZWcgPSA8MHgxPjsKCgkJ
CQkJaW5hMjI2QDQwIHsKCQkJCQkJY29tcGF0aWJsZSA9ICJ0aSxpbmEyMjYiOwoJCQkJCQkjaW8t
Y2hhbm5lbC1jZWxscyA9IDwweDE+OwoJCQkJCQlsYWJlbCA9ICJpbmEyMjYtdTc5IjsKCQkJCQkJ
cmVnID0gPDB4NDA+OwoJCQkJCQlzaHVudC1yZXNpc3RvciA9IDwweDdkMD47CgkJCQkJCXBoYW5k
bGUgPSA8MHg0Yj47CgkJCQkJfTsKCgkJCQkJaW5hMjI2QDQxIHsKCQkJCQkJY29tcGF0aWJsZSA9
ICJ0aSxpbmEyMjYiOwoJCQkJCQkjaW8tY2hhbm5lbC1jZWxscyA9IDwweDE+OwoJCQkJCQlsYWJl
bCA9ICJpbmEyMjYtdTgxIjsKCQkJCQkJcmVnID0gPDB4NDE+OwoJCQkJCQlzaHVudC1yZXNpc3Rv
ciA9IDwweDEzODg+OwoJCQkJCQlwaGFuZGxlID0gPDB4NGM+OwoJCQkJCX07CgoJCQkJCWluYTIy
NkA0MiB7CgkJCQkJCWNvbXBhdGlibGUgPSAidGksaW5hMjI2IjsKCQkJCQkJI2lvLWNoYW5uZWwt
Y2VsbHMgPSA8MHgxPjsKCQkJCQkJbGFiZWwgPSAiaW5hMjI2LXU4MCI7CgkJCQkJCXJlZyA9IDww
eDQyPjsKCQkJCQkJc2h1bnQtcmVzaXN0b3IgPSA8MHgxMzg4PjsKCQkJCQkJcGhhbmRsZSA9IDww
eDRkPjsKCQkJCQl9OwoKCQkJCQlpbmEyMjZANDMgewoJCQkJCQljb21wYXRpYmxlID0gInRpLGlu
YTIyNiI7CgkJCQkJCSNpby1jaGFubmVsLWNlbGxzID0gPDB4MT47CgkJCQkJCWxhYmVsID0gImlu
YTIyNi11ODQiOwoJCQkJCQlyZWcgPSA8MHg0Mz47CgkJCQkJCXNodW50LXJlc2lzdG9yID0gPDB4
MTM4OD47CgkJCQkJCXBoYW5kbGUgPSA8MHg0ZT47CgkJCQkJfTsKCgkJCQkJaW5hMjI2QDQ0IHsK
CQkJCQkJY29tcGF0aWJsZSA9ICJ0aSxpbmEyMjYiOwoJCQkJCQkjaW8tY2hhbm5lbC1jZWxscyA9
IDwweDE+OwoJCQkJCQlsYWJlbCA9ICJpbmEyMjYtdTE2IjsKCQkJCQkJcmVnID0gPDB4NDQ+OwoJ
CQkJCQlzaHVudC1yZXNpc3RvciA9IDwweDEzODg+OwoJCQkJCQlwaGFuZGxlID0gPDB4NGY+OwoJ
CQkJCX07CgoJCQkJCWluYTIyNkA0NSB7CgkJCQkJCWNvbXBhdGlibGUgPSAidGksaW5hMjI2IjsK
CQkJCQkJI2lvLWNoYW5uZWwtY2VsbHMgPSA8MHgxPjsKCQkJCQkJbGFiZWwgPSAiaW5hMjI2LXU2
NSI7CgkJCQkJCXJlZyA9IDwweDQ1PjsKCQkJCQkJc2h1bnQtcmVzaXN0b3IgPSA8MHgxMzg4PjsK
CQkJCQkJcGhhbmRsZSA9IDwweDUwPjsKCQkJCQl9OwoKCQkJCQlpbmEyMjZANDYgewoJCQkJCQlj
b21wYXRpYmxlID0gInRpLGluYTIyNiI7CgkJCQkJCSNpby1jaGFubmVsLWNlbGxzID0gPDB4MT47
CgkJCQkJCWxhYmVsID0gImluYTIyNi11NzQiOwoJCQkJCQlyZWcgPSA8MHg0Nj47CgkJCQkJCXNo
dW50LXJlc2lzdG9yID0gPDB4MTM4OD47CgkJCQkJCXBoYW5kbGUgPSA8MHg1MT47CgkJCQkJfTsK
CgkJCQkJaW5hMjI2QDQ3IHsKCQkJCQkJY29tcGF0aWJsZSA9ICJ0aSxpbmEyMjYiOwoJCQkJCQkj
aW8tY2hhbm5lbC1jZWxscyA9IDwweDE+OwoJCQkJCQlsYWJlbCA9ICJpbmEyMjYtdTc1IjsKCQkJ
CQkJcmVnID0gPDB4NDc+OwoJCQkJCQlzaHVudC1yZXNpc3RvciA9IDwweDEzODg+OwoJCQkJCQlw
aGFuZGxlID0gPDB4NTI+OwoJCQkJCX07CgkJCQl9OwoKCQkJCWkyY0AyIHsKCQkJCQkjYWRkcmVz
cy1jZWxscyA9IDwweDE+OwoJCQkJCSNzaXplLWNlbGxzID0gPDB4MD47CgkJCQkJcmVnID0gPDB4
Mj47CgoJCQkJCW1heDE1MzAxQGEgewoJCQkJCQljb21wYXRpYmxlID0gIm1heGltLG1heDE1MzAx
IjsKCQkJCQkJcmVnID0gPDB4YT47CgkJCQkJfTsKCgkJCQkJbWF4MTUzMDNAYiB7CgkJCQkJCWNv
bXBhdGlibGUgPSAibWF4aW0sbWF4MTUzMDMiOwoJCQkJCQlyZWcgPSA8MHhiPjsKCQkJCQl9OwoK
CQkJCQltYXgxNTMwM0AxMCB7CgkJCQkJCWNvbXBhdGlibGUgPSAibWF4aW0sbWF4MTUzMDMiOwoJ
CQkJCQlyZWcgPSA8MHgxMD47CgkJCQkJfTsKCgkJCQkJbWF4MTUzMDFAMTMgewoJCQkJCQljb21w
YXRpYmxlID0gIm1heGltLG1heDE1MzAxIjsKCQkJCQkJcmVnID0gPDB4MTM+OwoJCQkJCX07CgoJ
CQkJCW1heDE1MzAzQDE0IHsKCQkJCQkJY29tcGF0aWJsZSA9ICJtYXhpbSxtYXgxNTMwMyI7CgkJ
CQkJCXJlZyA9IDwweDE0PjsKCQkJCQl9OwoKCQkJCQltYXgxNTMwM0AxNSB7CgkJCQkJCWNvbXBh
dGlibGUgPSAibWF4aW0sbWF4MTUzMDMiOwoJCQkJCQlyZWcgPSA8MHgxNT47CgkJCQkJfTsKCgkJ
CQkJbWF4MTUzMDNAMTYgewoJCQkJCQljb21wYXRpYmxlID0gIm1heGltLG1heDE1MzAzIjsKCQkJ
CQkJcmVnID0gPDB4MTY+OwoJCQkJCX07CgoJCQkJCW1heDE1MzAzQDE3IHsKCQkJCQkJY29tcGF0
aWJsZSA9ICJtYXhpbSxtYXgxNTMwMyI7CgkJCQkJCXJlZyA9IDwweDE3PjsKCQkJCQl9OwoKCQkJ
CQltYXgxNTMwMUAxOCB7CgkJCQkJCWNvbXBhdGlibGUgPSAibWF4aW0sbWF4MTUzMDEiOwoJCQkJ
CQlyZWcgPSA8MHgxOD47CgkJCQkJfTsKCgkJCQkJbWF4MTUzMDNAMWEgewoJCQkJCQljb21wYXRp
YmxlID0gIm1heGltLG1heDE1MzAzIjsKCQkJCQkJcmVnID0gPDB4MWE+OwoJCQkJCX07CgoJCQkJ
CW1heDE1MzAzQDFiIHsKCQkJCQkJY29tcGF0aWJsZSA9ICJtYXhpbSxtYXgxNTMwMyI7CgkJCQkJ
CXJlZyA9IDwweDFiPjsKCQkJCQl9OwoKCQkJCQltYXgxNTMwM0AxZCB7CgkJCQkJCWNvbXBhdGli
bGUgPSAibWF4aW0sbWF4MTUzMDMiOwoJCQkJCQlyZWcgPSA8MHgxZD47CgkJCQkJfTsKCgkJCQkJ
bWF4MjA3NTFANzIgewoJCQkJCQljb21wYXRpYmxlID0gIm1heGltLG1heDIwNzUxIjsKCQkJCQkJ
cmVnID0gPDB4NzI+OwoJCQkJCX07CgoJCQkJCW1heDIwNzUxQDczIHsKCQkJCQkJY29tcGF0aWJs
ZSA9ICJtYXhpbSxtYXgyMDc1MSI7CgkJCQkJCXJlZyA9IDwweDczPjsKCQkJCQl9OwoJCQkJfTsK
CQkJfTsKCQl9OwoKCQlpMmNAZmYwMzAwMDAgewoJCQljb21wYXRpYmxlID0gImNkbnMsaTJjLXIx
cDE0IiwgImNkbnMsaTJjLXIxcDEwIjsKCQkJc3RhdHVzID0gIm9rYXkiOwoJCQlpbnRlcnJ1cHQt
cGFyZW50ID0gPDB4ND47CgkJCWludGVycnVwdHMgPSA8MHgwIDB4MTIgMHg0PjsKCQkJcmVnID0g
PDB4MCAweGZmMDMwMDAwIDB4MCAweDEwMDA+OwoJCQkjYWRkcmVzcy1jZWxscyA9IDwweDE+OwoJ
CQkjc2l6ZS1jZWxscyA9IDwweDA+OwoJCQlwb3dlci1kb21haW5zID0gPDB4MjcgMHgyNj47CgkJ
CWNsb2NrcyA9IDwweDMgMHgzZT47CgkJCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCIsICJncGlv
IjsKCQkJcGluY3RybC0wID0gPDB4MzA+OwoJCQlwaW5jdHJsLTEgPSA8MHgzMT47CgkJCXNjbC1n
cGlvcyA9IDwweDJmIDB4MTAgMHgwPjsKCQkJc2RhLWdwaW9zID0gPDB4MmYgMHgxMSAweDA+OwoJ
CQljbG9jay1mcmVxdWVuY3kgPSA8MHg2MWE4MD47CgkJCXBoYW5kbGUgPSA8MHg3OD47CgoJCQlp
MmMtbXV4QDc0IHsKCQkJCWNvbXBhdGlibGUgPSAibnhwLHBjYTk1NDgiOwoJCQkJI2FkZHJlc3Mt
Y2VsbHMgPSA8MHgxPjsKCQkJCSNzaXplLWNlbGxzID0gPDB4MD47CgkJCQlyZWcgPSA8MHg3ND47
CgoJCQkJaTJjQDAgewoJCQkJCSNhZGRyZXNzLWNlbGxzID0gPDB4MT47CgkJCQkJI3NpemUtY2Vs
bHMgPSA8MHgwPjsKCQkJCQlyZWcgPSA8MHgwPjsKCgkJCQkJZWVwcm9tQDU0IHsKCQkJCQkJY29t
cGF0aWJsZSA9ICJhdG1lbCwyNGMwOCI7CgkJCQkJCXJlZyA9IDwweDU0PjsKCQkJCQkJI2FkZHJl
c3MtY2VsbHMgPSA8MHgxPjsKCQkJCQkJI3NpemUtY2VsbHMgPSA8MHgxPjsKCQkJCQkJcGhhbmRs
ZSA9IDwweDc5PjsKCgkJCQkJCWJvYXJkLXNuQDAgewoJCQkJCQkJcmVnID0gPDB4MCAweDE0PjsK
CQkJCQkJCXBoYW5kbGUgPSA8MHg3YT47CgkJCQkJCX07CgoJCQkJCQlldGgtbWFjQDIwIHsKCQkJ
CQkJCXJlZyA9IDwweDIwIDB4Nj47CgkJCQkJCQlwaGFuZGxlID0gPDB4N2I+OwoJCQkJCQl9OwoK
CQkJCQkJYm9hcmQtbmFtZUBkMCB7CgkJCQkJCQlyZWcgPSA8MHhkMCAweDY+OwoJCQkJCQkJcGhh
bmRsZSA9IDwweDdjPjsKCQkJCQkJfTsKCgkJCQkJCWJvYXJkLXJldmlzaW9uQGUwIHsKCQkJCQkJ
CXJlZyA9IDwweGUwIDB4Mz47CgkJCQkJCQlwaGFuZGxlID0gPDB4N2Q+OwoJCQkJCQl9OwoJCQkJ
CX07CgkJCQl9OwoKCQkJCWkyY0AxIHsKCQkJCQkjYWRkcmVzcy1jZWxscyA9IDwweDE+OwoJCQkJ
CSNzaXplLWNlbGxzID0gPDB4MD47CgkJCQkJcmVnID0gPDB4MT47CgoJCQkJCWNsb2NrLWdlbmVy
YXRvckAzNiB7CgkJCQkJCWNvbXBhdGlibGUgPSAic2lsYWJzLHNpNTM0MSI7CgkJCQkJCXJlZyA9
IDwweDM2PjsKCQkJCQkJcGhhbmRsZSA9IDwweDdlPjsKCQkJCQl9OwoJCQkJfTsKCgkJCQlpMmNA
MiB7CgkJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MHgxPjsKCQkJCQkjc2l6ZS1jZWxscyA9IDwweDA+
OwoJCQkJCXJlZyA9IDwweDI+OwoKCQkJCQljbG9jay1nZW5lcmF0b3JANWQgewoJCQkJCQkjY2xv
Y2stY2VsbHMgPSA8MHgwPjsKCQkJCQkJY29tcGF0aWJsZSA9ICJzaWxhYnMsc2k1NzAiOwoJCQkJ
CQlyZWcgPSA8MHg1ZD47CgkJCQkJCXRlbXBlcmF0dXJlLXN0YWJpbGl0eSA9IDwweDMyPjsKCQkJ
CQkJZmFjdG9yeS1mb3V0ID0gPDB4MTFlMWEzMDA+OwoJCQkJCQljbG9jay1mcmVxdWVuY3kgPSA8
MHgxMWUxYTMwMD47CgkJCQkJCWNsb2NrLW91dHB1dC1uYW1lcyA9ICJzaTU3MF91c2VyIjsKCQkJ
CQkJcGhhbmRsZSA9IDwweDdmPjsKCQkJCQl9OwoJCQkJfTsKCgkJCQlpMmNAMyB7CgkJCQkJI2Fk
ZHJlc3MtY2VsbHMgPSA8MHgxPjsKCQkJCQkjc2l6ZS1jZWxscyA9IDwweDA+OwoJCQkJCXJlZyA9
IDwweDM+OwoKCQkJCQljbG9jay1nZW5lcmF0b3JANWQgewoJCQkJCQkjY2xvY2stY2VsbHMgPSA8
MHgwPjsKCQkJCQkJY29tcGF0aWJsZSA9ICJzaWxhYnMsc2k1NzAiOwoJCQkJCQlyZWcgPSA8MHg1
ZD47CgkJCQkJCXRlbXBlcmF0dXJlLXN0YWJpbGl0eSA9IDwweDMyPjsKCQkJCQkJZmFjdG9yeS1m
b3V0ID0gPDB4OTUwMmY5MD47CgkJCQkJCWNsb2NrLWZyZXF1ZW5jeSA9IDwweDhkOWVlMjA+OwoJ
CQkJCQljbG9jay1vdXRwdXQtbmFtZXMgPSAic2k1NzBfbWd0IjsKCQkJCQkJcGhhbmRsZSA9IDww
eDgwPjsKCQkJCQl9OwoJCQkJfTsKCgkJCQlpMmNANCB7CgkJCQkJI2FkZHJlc3MtY2VsbHMgPSA8
MHgxPjsKCQkJCQkjc2l6ZS1jZWxscyA9IDwweDA+OwoJCQkJCXJlZyA9IDwweDQ+OwoKCQkJCQlj
bG9jay1nZW5lcmF0b3JANjkgewoJCQkJCQljb21wYXRpYmxlID0gInNpbGFicyxzaTUzMjgiOwoJ
CQkJCQlyZWcgPSA8MHg2OT47CgkJCQkJCXBoYW5kbGUgPSA8MHg4MT47CgkJCQkJfTsKCQkJCX07
CgkJCX07CgoJCQlpMmMtbXV4QDc1IHsKCQkJCWNvbXBhdGlibGUgPSAibnhwLHBjYTk1NDgiOwoJ
CQkJI2FkZHJlc3MtY2VsbHMgPSA8MHgxPjsKCQkJCSNzaXplLWNlbGxzID0gPDB4MD47CgkJCQly
ZWcgPSA8MHg3NT47CgoJCQkJaTJjQDAgewoJCQkJCSNhZGRyZXNzLWNlbGxzID0gPDB4MT47CgkJ
CQkJI3NpemUtY2VsbHMgPSA8MHgwPjsKCQkJCQlyZWcgPSA8MHgwPjsKCQkJCX07CgoJCQkJaTJj
QDEgewoJCQkJCSNhZGRyZXNzLWNlbGxzID0gPDB4MT47CgkJCQkJI3NpemUtY2VsbHMgPSA8MHgw
PjsKCQkJCQlyZWcgPSA8MHgxPjsKCQkJCX07CgoJCQkJaTJjQDIgewoJCQkJCSNhZGRyZXNzLWNl
bGxzID0gPDB4MT47CgkJCQkJI3NpemUtY2VsbHMgPSA8MHgwPjsKCQkJCQlyZWcgPSA8MHgyPjsK
CQkJCX07CgoJCQkJaTJjQDMgewoJCQkJCSNhZGRyZXNzLWNlbGxzID0gPDB4MT47CgkJCQkJI3Np
emUtY2VsbHMgPSA8MHgwPjsKCQkJCQlyZWcgPSA8MHgzPjsKCQkJCX07CgoJCQkJaTJjQDQgewoJ
CQkJCSNhZGRyZXNzLWNlbGxzID0gPDB4MT47CgkJCQkJI3NpemUtY2VsbHMgPSA8MHgwPjsKCQkJ
CQlyZWcgPSA8MHg0PjsKCQkJCX07CgoJCQkJaTJjQDUgewoJCQkJCSNhZGRyZXNzLWNlbGxzID0g
PDB4MT47CgkJCQkJI3NpemUtY2VsbHMgPSA8MHgwPjsKCQkJCQlyZWcgPSA8MHg1PjsKCQkJCX07
CgoJCQkJaTJjQDYgewoJCQkJCSNhZGRyZXNzLWNlbGxzID0gPDB4MT47CgkJCQkJI3NpemUtY2Vs
bHMgPSA8MHgwPjsKCQkJCQlyZWcgPSA8MHg2PjsKCQkJCX07CgoJCQkJaTJjQDcgewoJCQkJCSNh
ZGRyZXNzLWNlbGxzID0gPDB4MT47CgkJCQkJI3NpemUtY2VsbHMgPSA8MHgwPjsKCQkJCQlyZWcg
PSA8MHg3PjsKCQkJCX07CgkJCX07CgkJfTsKCgkJbWVtb3J5LWNvbnRyb2xsZXJAZmY5NjAwMDAg
ewoJCQljb21wYXRpYmxlID0gInhsbngsenlucW1wLW9jbWMtMS4wIjsKCQkJcmVnID0gPDB4MCAw
eGZmOTYwMDAwIDB4MCAweDEwMDA+OwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJCWlu
dGVycnVwdHMgPSA8MHgwIDB4YSAweDQ+OwoJCQlwaGFuZGxlID0gPDB4ODI+OwoJCX07CgoJCXBl
cmYtbW9uaXRvckBmZmEwMDAwMCB7CgkJCWNvbXBhdGlibGUgPSAieGxueCxheGktcGVyZi1tb25p
dG9yIjsKCQkJcmVnID0gPDB4MCAweGZmYTAwMDAwIDB4MCAweDEwMDAwPjsKCQkJaW50ZXJydXB0
cyA9IDwweDAgMHgxOSAweDQ+OwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJCXhsbngs
ZW5hYmxlLXByb2ZpbGUgPSA8MHgwPjsKCQkJeGxueCxlbmFibGUtdHJhY2UgPSA8MHgwPjsKCQkJ
eGxueCxudW0tbW9uaXRvci1zbG90cyA9IDwweDE+OwoJCQl4bG54LGVuYWJsZS1ldmVudC1jb3Vu
dCA9IDwweDE+OwoJCQl4bG54LGVuYWJsZS1ldmVudC1sb2cgPSA8MHgxPjsKCQkJeGxueCxoYXZl
LXNhbXBsZWQtbWV0cmljLWNudCA9IDwweDE+OwoJCQl4bG54LG51bS1vZi1jb3VudGVycyA9IDww
eDg+OwoJCQl4bG54LG1ldHJpYy1jb3VudC13aWR0aCA9IDwweDIwPjsKCQkJeGxueCxtZXRyaWNz
LXNhbXBsZS1jb3VudC13aWR0aCA9IDwweDIwPjsKCQkJeGxueCxnbG9iYWwtY291bnQtd2lkdGgg
PSA8MHgyMD47CgkJCXhsbngsbWV0cmljLWNvdW50LXNjYWxlID0gPDB4MT47CgkJCWNsb2NrcyA9
IDwweDMgMHgxZj47CgkJCXBoYW5kbGUgPSA8MHg4Mz47CgkJfTsKCgkJcGVyZi1tb25pdG9yQGZk
MGIwMDAwIHsKCQkJY29tcGF0aWJsZSA9ICJ4bG54LGF4aS1wZXJmLW1vbml0b3IiOwoJCQlyZWcg
PSA8MHgwIDB4ZmQwYjAwMDAgMHgwIDB4MTAwMDA+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDdi
IDB4ND47CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJeGxueCxlbmFibGUtcHJvZmls
ZSA9IDwweDA+OwoJCQl4bG54LGVuYWJsZS10cmFjZSA9IDwweDA+OwoJCQl4bG54LG51bS1tb25p
dG9yLXNsb3RzID0gPDB4Nj47CgkJCXhsbngsZW5hYmxlLWV2ZW50LWNvdW50ID0gPDB4MT47CgkJ
CXhsbngsZW5hYmxlLWV2ZW50LWxvZyA9IDwweDA+OwoJCQl4bG54LGhhdmUtc2FtcGxlZC1tZXRy
aWMtY250ID0gPDB4MT47CgkJCXhsbngsbnVtLW9mLWNvdW50ZXJzID0gPDB4YT47CgkJCXhsbngs
bWV0cmljLWNvdW50LXdpZHRoID0gPDB4MjA+OwoJCQl4bG54LG1ldHJpY3Mtc2FtcGxlLWNvdW50
LXdpZHRoID0gPDB4MjA+OwoJCQl4bG54LGdsb2JhbC1jb3VudC13aWR0aCA9IDwweDIwPjsKCQkJ
eGxueCxtZXRyaWMtY291bnQtc2NhbGUgPSA8MHgxPjsKCQkJY2xvY2tzID0gPDB4MyAweDFjPjsK
CQkJcGhhbmRsZSA9IDwweDg0PjsKCQl9OwoKCQlwZXJmLW1vbml0b3JAZmQ0OTAwMDAgewoJCQlj
b21wYXRpYmxlID0gInhsbngsYXhpLXBlcmYtbW9uaXRvciI7CgkJCXJlZyA9IDwweDAgMHhmZDQ5
MDAwMCAweDAgMHgxMDAwMD47CgkJCWludGVycnVwdHMgPSA8MHgwIDB4N2IgMHg0PjsKCQkJaW50
ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQl4bG54LGVuYWJsZS1wcm9maWxlID0gPDB4MD47CgkJ
CXhsbngsZW5hYmxlLXRyYWNlID0gPDB4MD47CgkJCXhsbngsbnVtLW1vbml0b3Itc2xvdHMgPSA8
MHgxPjsKCQkJeGxueCxlbmFibGUtZXZlbnQtY291bnQgPSA8MHgxPjsKCQkJeGxueCxlbmFibGUt
ZXZlbnQtbG9nID0gPDB4MD47CgkJCXhsbngsaGF2ZS1zYW1wbGVkLW1ldHJpYy1jbnQgPSA8MHgx
PjsKCQkJeGxueCxudW0tb2YtY291bnRlcnMgPSA8MHg4PjsKCQkJeGxueCxtZXRyaWMtY291bnQt
d2lkdGggPSA8MHgyMD47CgkJCXhsbngsbWV0cmljcy1zYW1wbGUtY291bnQtd2lkdGggPSA8MHgy
MD47CgkJCXhsbngsZ2xvYmFsLWNvdW50LXdpZHRoID0gPDB4MjA+OwoJCQl4bG54LG1ldHJpYy1j
b3VudC1zY2FsZSA9IDwweDE+OwoJCQljbG9ja3MgPSA8MHgzIDB4MWM+OwoJCQlwaGFuZGxlID0g
PDB4ODU+OwoJCX07CgoJCXBlcmYtbW9uaXRvckBmZmExMDAwMCB7CgkJCWNvbXBhdGlibGUgPSAi
eGxueCxheGktcGVyZi1tb25pdG9yIjsKCQkJcmVnID0gPDB4MCAweGZmYTEwMDAwIDB4MCAweDEw
MDAwPjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHgxOSAweDQ+OwoJCQlpbnRlcnJ1cHQtcGFyZW50
ID0gPDB4ND47CgkJCXhsbngsZW5hYmxlLXByb2ZpbGUgPSA8MHgwPjsKCQkJeGxueCxlbmFibGUt
dHJhY2UgPSA8MHgwPjsKCQkJeGxueCxudW0tbW9uaXRvci1zbG90cyA9IDwweDE+OwoJCQl4bG54
LGVuYWJsZS1ldmVudC1jb3VudCA9IDwweDE+OwoJCQl4bG54LGVuYWJsZS1ldmVudC1sb2cgPSA8
MHgxPjsKCQkJeGxueCxoYXZlLXNhbXBsZWQtbWV0cmljLWNudCA9IDwweDE+OwoJCQl4bG54LG51
bS1vZi1jb3VudGVycyA9IDwweDg+OwoJCQl4bG54LG1ldHJpYy1jb3VudC13aWR0aCA9IDwweDIw
PjsKCQkJeGxueCxtZXRyaWNzLXNhbXBsZS1jb3VudC13aWR0aCA9IDwweDIwPjsKCQkJeGxueCxn
bG9iYWwtY291bnQtd2lkdGggPSA8MHgyMD47CgkJCXhsbngsbWV0cmljLWNvdW50LXNjYWxlID0g
PDB4MT47CgkJCWNsb2NrcyA9IDwweDMgMHgxZj47CgkJCXBoYW5kbGUgPSA8MHg4Nj47CgkJfTsK
CgkJcGNpZUBmZDBlMDAwMCB7CgkJCWNvbXBhdGlibGUgPSAieGxueCxud2wtcGNpZS0yLjExIjsK
CQkJc3RhdHVzID0gImRpc2FibGVkIjsKCQkJI2FkZHJlc3MtY2VsbHMgPSA8MHgzPjsKCQkJI3Np
emUtY2VsbHMgPSA8MHgyPjsKCQkJI2ludGVycnVwdC1jZWxscyA9IDwweDE+OwoJCQltc2ktY29u
dHJvbGxlcjsKCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDww
eDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDc2IDB4NCAweDAgMHg3NSAweDQgMHgwIDB4NzQg
MHg0IDB4MCAweDczIDB4NCAweDAgMHg3MiAweDQ+OwoJCQlpbnRlcnJ1cHQtbmFtZXMgPSAibWlz
YyIsICJkdW1teSIsICJpbnR4IiwgIm1zaTEiLCAibXNpMCI7CgkJCW1zaS1wYXJlbnQgPSA8MHgz
Mj47CgkJCXJlZyA9IDwweDAgMHhmZDBlMDAwMCAweDAgMHgxMDAwIDB4MCAweGZkNDgwMDAwIDB4
MCAweDEwMDAgMHg4MCAweDAgMHgwIDB4MTAwMDAwMD47CgkJCXJlZy1uYW1lcyA9ICJicmVnIiwg
InBjaXJlZyIsICJjZmciOwoJCQlyYW5nZXMgPSA8MHgyMDAwMDAwIDB4MCAweGUwMDAwMDAwIDB4
MCAweGUwMDAwMDAwIDB4MCAweDEwMDAwMDAwIDB4NDMwMDAwMDAgMHg2IDB4MCAweDYgMHgwIDB4
MiAweDA+OwoJCQlpbnRlcnJ1cHQtbWFwLW1hc2sgPSA8MHgwIDB4MCAweDAgMHg3PjsKCQkJYnVz
LXJhbmdlID0gPDB4MCAweGZmPjsKCQkJaW50ZXJydXB0LW1hcCA9IDwweDAgMHgwIDB4MCAweDEg
MHgzMyAweDEgMHgwIDB4MCAweDAgMHgyIDB4MzMgMHgyIDB4MCAweDAgMHgwIDB4MyAweDMzIDB4
MyAweDAgMHgwIDB4MCAweDQgMHgzMyAweDQ+OwoJCQlwb3dlci1kb21haW5zID0gPDB4MjcgMHgz
Yj47CgkJCWNsb2NrcyA9IDwweDMgMHgxNz47CgkJCXBoYW5kbGUgPSA8MHgzMj47CgoJCQlsZWdh
Y3ktaW50ZXJydXB0LWNvbnRyb2xsZXIgewoJCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7CgkJCQkj
YWRkcmVzcy1jZWxscyA9IDwweDA+OwoJCQkJI2ludGVycnVwdC1jZWxscyA9IDwweDE+OwoJCQkJ
cGhhbmRsZSA9IDwweDMzPjsKCQkJfTsKCQl9OwoKCQlzcGlAZmYwZjAwMDAgewoJCQl1LWJvb3Qs
ZG0tcHJlLXJlbG9jOwoJCQljb21wYXRpYmxlID0gInhsbngsenlucW1wLXFzcGktMS4wIjsKCQkJ
c3RhdHVzID0gIm9rYXkiOwoJCQljbG9jay1uYW1lcyA9ICJyZWZfY2xrIiwgInBjbGsiOwoJCQlp
bnRlcnJ1cHRzID0gPDB4MCAweGYgMHg0PjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJ
CQludW0tY3MgPSA8MHgxPjsKCQkJcmVnID0gPDB4MCAweGZmMGYwMDAwIDB4MCAweDEwMDAgMHgw
IDB4YzAwMDAwMDAgMHgwIDB4ODAwMDAwMD47CgkJCSNhZGRyZXNzLWNlbGxzID0gPDB4MT47CgkJ
CSNzaXplLWNlbGxzID0gPDB4MD47CgkJCSNzdHJlYW0taWQtY2VsbHMgPSA8MHgxPjsKCQkJaW9t
bXVzID0gPDB4MjkgMHg4NzM+OwoJCQlwb3dlci1kb21haW5zID0gPDB4MjcgMHgyZD47CgkJCWNs
b2NrcyA9IDwweDMgMHgzNSAweDMgMHgxZj47CgkJCWlzLWR1YWwgPSA8MHgxPjsKCQkJc3BpLXJ4
LWJ1cy13aWR0aCA9IDwweDQ+OwoJCQlzcGktdHgtYnVzLXdpZHRoID0gPDB4ND47CgkJCXBoYW5k
bGUgPSA8MHgxMj47CgoJCQlmbGFzaEAwIHsKCQkJCWNvbXBhdGlibGUgPSAibTI1cDgwIiwgImpl
ZGVjLHNwaS1ub3IiOwoJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MHgxPjsKCQkJCSNzaXplLWNlbGxz
ID0gPDB4MT47CgkJCQlyZWcgPSA8MHgwPjsKCQkJCXNwaS10eC1idXMtd2lkdGggPSA8MHgxPjsK
CQkJCXNwaS1yeC1idXMtd2lkdGggPSA8MHg0PjsKCQkJCXNwaS1tYXgtZnJlcXVlbmN5ID0gPDB4
NjZmZjMwMD47CgkJCQlwaGFuZGxlID0gPDB4ODc+OwoKCQkJCXBhcnRpdGlvbkAwIHsKCQkJCQls
YWJlbCA9ICJib290IjsKCQkJCQlyZWcgPSA8MHgwIDB4MTAwMDAwPjsKCQkJCX07CgoJCQkJcGFy
dGl0aW9uQDEgewoJCQkJCWxhYmVsID0gImJvb3RlbnYiOwoJCQkJCXJlZyA9IDwweDEwMDAwMCAw
eDQwMDAwPjsKCQkJCX07CgoJCQkJcGFydGl0aW9uQDIgewoJCQkJCWxhYmVsID0gImtlcm5lbCI7
CgkJCQkJcmVnID0gPDB4MTQwMDAwIDB4MTYwMDAwMD47CgkJCQl9OwoJCQl9OwoJCX07CgoJCXJ0
Y0BmZmE2MDAwMCB7CgkJCWNvbXBhdGlibGUgPSAieGxueCx6eW5xbXAtcnRjIjsKCQkJc3RhdHVz
ID0gIm9rYXkiOwoJCQlyZWcgPSA8MHgwIDB4ZmZhNjAwMDAgMHgwIDB4MTAwPjsKCQkJaW50ZXJy
dXB0LXBhcmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDFhIDB4NCAweDAgMHgx
YiAweDQ+OwoJCQlpbnRlcnJ1cHQtbmFtZXMgPSAiYWxhcm0iLCAic2VjIjsKCQkJY2FsaWJyYXRp
b24gPSA8MHg4MDAwPjsKCQkJcGhhbmRsZSA9IDwweDg4PjsKCQl9OwoKCQl6eW5xbXBfcGh5QGZk
NDAwMDAwIHsKCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1wc2d0ci12MS4xIjsKCQkJc3Rh
dHVzID0gIm9rYXkiOwoJCQlyZWcgPSA8MHgwIDB4ZmQ0MDAwMDAgMHgwIDB4NDAwMDAgMHgwIDB4
ZmQzZDAwMDAgMHgwIDB4MTAwMD47CgkJCXJlZy1uYW1lcyA9ICJzZXJkZXMiLCAic2lvdSI7CgkJ
CW52bWVtLWNlbGxzID0gPDB4MzQ+OwoJCQludm1lbS1jZWxsLW5hbWVzID0gInNvY19yZXZpc2lv
biI7CgkJCXJlc2V0cyA9IDwweDM1IDB4MTAgMHgzNSAweDNiIDB4MzUgMHgzYyAweDM1IDB4M2Qg
MHgzNSAweDNlIDB4MzUgMHgzZiAweDM1IDB4NDAgMHgzNSAweDMgMHgzNSAweDFkIDB4MzUgMHgx
ZSAweDM1IDB4MWYgMHgzNSAweDIwPjsKCQkJcmVzZXQtbmFtZXMgPSAic2F0YV9yc3QiLCAidXNi
MF9jcnN0IiwgInVzYjFfY3JzdCIsICJ1c2IwX2hpYnJzdCIsICJ1c2IxX2hpYnJzdCIsICJ1c2Iw
X2FwYnJzdCIsICJ1c2IxX2FwYnJzdCIsICJkcF9yc3QiLCAiZ2VtMF9yc3QiLCAiZ2VtMV9yc3Qi
LCAiZ2VtMl9yc3QiLCAiZ2VtM19yc3QiOwoJCQlwaGFuZGxlID0gPDB4ODk+OwoKCQkJbGFuZTAg
ewoJCQkJI3BoeS1jZWxscyA9IDwweDQ+OwoJCQkJcGhhbmRsZSA9IDwweDhhPjsKCQkJfTsKCgkJ
CWxhbmUxIHsKCQkJCSNwaHktY2VsbHMgPSA8MHg0PjsKCQkJCXBoYW5kbGUgPSA8MHg4Yj47CgkJ
CX07CgoJCQlsYW5lMiB7CgkJCQkjcGh5LWNlbGxzID0gPDB4ND47CgkJCQlwaGFuZGxlID0gPDB4
M2I+OwoJCQl9OwoKCQkJbGFuZTMgewoJCQkJI3BoeS1jZWxscyA9IDwweDQ+OwoJCQkJcGhhbmRs
ZSA9IDwweDM2PjsKCQkJfTsKCQl9OwoKCQlhaGNpQGZkMGMwMDAwIHsKCQkJY29tcGF0aWJsZSA9
ICJjZXZhLGFoY2ktMXY4NCI7CgkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CgkJCXJlZyA9IDwweDAg
MHhmZDBjMDAwMCAweDAgMHgyMDAwPjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQlp
bnRlcnJ1cHRzID0gPDB4MCAweDg1IDB4ND47CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgyNyAweDFj
PjsKCQkJI3N0cmVhbS1pZC1jZWxscyA9IDwweDQ+OwoJCQljbG9ja3MgPSA8MHgzIDB4MTY+OwoJ
CQljZXZhLHAwLWNvbWluaXQtcGFyYW1zID0gPDB4MTg0MDE4Mjg+OwoJCQljZXZhLHAwLWNvbXdh
a2UtcGFyYW1zID0gPDB4NjE0MDgwZT47CgkJCWNldmEscDAtYnVyc3QtcGFyYW1zID0gPDB4MTMw
ODRhMDY+OwoJCQljZXZhLHAwLXJldHJ5LXBhcmFtcyA9IDwweDk2YTQzZmZjPjsKCQkJY2V2YSxw
MS1jb21pbml0LXBhcmFtcyA9IDwweDE4NDAxODI4PjsKCQkJY2V2YSxwMS1jb213YWtlLXBhcmFt
cyA9IDwweDYxNDA4MGU+OwoJCQljZXZhLHAxLWJ1cnN0LXBhcmFtcyA9IDwweDEzMDg0YTA2PjsK
CQkJY2V2YSxwMS1yZXRyeS1wYXJhbXMgPSA8MHg5NmE0M2ZmYz47CgkJCXBoeS1uYW1lcyA9ICJz
YXRhLXBoeSI7CgkJCXBoeXMgPSA8MHgzNiAweDEgMHgxIDB4MSAweDc3MzU5NDA+OwoJCQlwaGFu
ZGxlID0gPDB4OGM+OwoJCX07CgoJCW1tY0BmZjE2MDAwMCB7CgkJCXUtYm9vdCxkbS1wcmUtcmVs
b2M7CgkJCWNvbXBhdGlibGUgPSAieGxueCx6eW5xbXAtOC45YSIsICJhcmFzYW4sc2RoY2ktOC45
YSI7CgkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsK
CQkJaW50ZXJydXB0cyA9IDwweDAgMHgzMCAweDQ+OwoJCQlyZWcgPSA8MHgwIDB4ZmYxNjAwMDAg
MHgwIDB4MTAwMD47CgkJCWNsb2NrLW5hbWVzID0gImNsa194aW4iLCAiY2xrX2FoYiI7CgkJCXhs
bngsZGV2aWNlX2lkID0gPDB4MD47CgkJCSNzdHJlYW0taWQtY2VsbHMgPSA8MHgxPjsKCQkJaW9t
bXVzID0gPDB4MjkgMHg4NzA+OwoJCQlwb3dlci1kb21haW5zID0gPDB4MjcgMHgyNz47CgkJCW52
bWVtLWNlbGxzID0gPDB4MzQ+OwoJCQludm1lbS1jZWxsLW5hbWVzID0gInNvY19yZXZpc2lvbiI7
CgkJCSNjbG9jay1jZWxscyA9IDwweDE+OwoJCQljbG9jay1vdXRwdXQtbmFtZXMgPSAiY2xrX291
dF9zZDAiLCAiY2xrX2luX3NkMCI7CgkJCWNsb2NrcyA9IDwweDMgMHgzNiAweDMgMHgxZj47CgkJ
CXBoYW5kbGUgPSA8MHgyMz47CgkJfTsKCgkJbW1jQGZmMTcwMDAwIHsKCQkJdS1ib290LGRtLXBy
ZS1yZWxvYzsKCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC04LjlhIiwgImFyYXNhbixzZGhj
aS04LjlhIjsKCQkJc3RhdHVzID0gImRpc2FibGVkIjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDww
eDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDMxIDB4ND47CgkJCXJlZyA9IDwweDAgMHhmZjE3
MDAwMCAweDAgMHgxMDAwPjsKCQkJY2xvY2stbmFtZXMgPSAiY2xrX3hpbiIsICJjbGtfYWhiIjsK
CQkJeGxueCxkZXZpY2VfaWQgPSA8MHgxPjsKCQkJI3N0cmVhbS1pZC1jZWxscyA9IDwweDE+OwoJ
CQlpb21tdXMgPSA8MHgyOSAweDg3MT47CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgyNyAweDI4PjsK
CQkJbnZtZW0tY2VsbHMgPSA8MHgzND47CgkJCW52bWVtLWNlbGwtbmFtZXMgPSAic29jX3Jldmlz
aW9uIjsKCQkJI2Nsb2NrLWNlbGxzID0gPDB4MT47CgkJCWNsb2NrLW91dHB1dC1uYW1lcyA9ICJj
bGtfb3V0X3NkMSIsICJjbGtfaW5fc2QxIjsKCQkJY2xvY2tzID0gPDB4MyAweDM3IDB4MyAweDFm
PjsKCQkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKCQkJcGluY3RybC0wID0gPDB4Mzc+OwoJ
CQluby0xLTgtdjsKCQkJcGhhbmRsZSA9IDwweDI0PjsKCQl9OwoKCQlzcGlAZmYwNDAwMDAgewoJ
CQljb21wYXRpYmxlID0gImNkbnMsc3BpLXIxcDYiOwoJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwoJ
CQlpbnRlcnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJCWludGVycnVwdHMgPSA8MHgwIDB4MTMgMHg0
PjsKCQkJcmVnID0gPDB4MCAweGZmMDQwMDAwIDB4MCAweDEwMDA+OwoJCQljbG9jay1uYW1lcyA9
ICJyZWZfY2xrIiwgInBjbGsiOwoJCQkjYWRkcmVzcy1jZWxscyA9IDwweDE+OwoJCQkjc2l6ZS1j
ZWxscyA9IDwweDA+OwoJCQlwb3dlci1kb21haW5zID0gPDB4MjcgMHgyMz47CgkJCWNsb2NrcyA9
IDwweDMgMHgzYSAweDMgMHgxZj47CgkJCXBoYW5kbGUgPSA8MHg4ZD47CgkJfTsKCgkJc3BpQGZm
MDUwMDAwIHsKCQkJY29tcGF0aWJsZSA9ICJjZG5zLHNwaS1yMXA2IjsKCQkJc3RhdHVzID0gImRp
c2FibGVkIjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4
MCAweDE0IDB4ND47CgkJCXJlZyA9IDwweDAgMHhmZjA1MDAwMCAweDAgMHgxMDAwPjsKCQkJY2xv
Y2stbmFtZXMgPSAicmVmX2NsayIsICJwY2xrIjsKCQkJI2FkZHJlc3MtY2VsbHMgPSA8MHgxPjsK
CQkJI3NpemUtY2VsbHMgPSA8MHgwPjsKCQkJcG93ZXItZG9tYWlucyA9IDwweDI3IDB4MjQ+OwoJ
CQljbG9ja3MgPSA8MHgzIDB4M2IgMHgzIDB4MWY+OwoJCQlwaGFuZGxlID0gPDB4OGU+OwoJCX07
CgoJCXRpbWVyQGZmMTEwMDAwIHsKCQkJY29tcGF0aWJsZSA9ICJjZG5zLHR0YyI7CgkJCXN0YXR1
cyA9ICJkaXNhYmxlZCI7CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJaW50ZXJydXB0
cyA9IDwweDAgMHgyNCAweDQgMHgwIDB4MjUgMHg0IDB4MCAweDI2IDB4ND47CgkJCXJlZyA9IDww
eDAgMHhmZjExMDAwMCAweDAgMHgxMDAwPjsKCQkJdGltZXItd2lkdGggPSA8MHgyMD47CgkJCXBv
d2VyLWRvbWFpbnMgPSA8MHgyNyAweDE4PjsKCQkJY2xvY2tzID0gPDB4MyAweDFmPjsKCQkJeGVu
LHBhc3N0aHJvdWdoID0gPDB4MT47CgkJCXBoYW5kbGUgPSA8MHg4Zj47CgkJfTsKCgkJdGltZXJA
ZmYxMjAwMDAgewoJCQljb21wYXRpYmxlID0gImNkbnMsdHRjIjsKCQkJc3RhdHVzID0gImRpc2Fi
bGVkIjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAw
eDI3IDB4NCAweDAgMHgyOCAweDQgMHgwIDB4MjkgMHg0PjsKCQkJcmVnID0gPDB4MCAweGZmMTIw
MDAwIDB4MCAweDEwMDA+OwoJCQl0aW1lci13aWR0aCA9IDwweDIwPjsKCQkJcG93ZXItZG9tYWlu
cyA9IDwweDI3IDB4MTk+OwoJCQljbG9ja3MgPSA8MHgzIDB4MWY+OwoJCQlwaGFuZGxlID0gPDB4
OTA+OwoJCX07CgoJCXRpbWVyQGZmMTMwMDAwIHsKCQkJY29tcGF0aWJsZSA9ICJjZG5zLHR0YyI7
CgkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJ
aW50ZXJydXB0cyA9IDwweDAgMHgyYSAweDQgMHgwIDB4MmIgMHg0IDB4MCAweDJjIDB4ND47CgkJ
CXJlZyA9IDwweDAgMHhmZjEzMDAwMCAweDAgMHgxMDAwPjsKCQkJdGltZXItd2lkdGggPSA8MHgy
MD47CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgyNyAweDFhPjsKCQkJY2xvY2tzID0gPDB4MyAweDFm
PjsKCQkJcGhhbmRsZSA9IDwweDkxPjsKCQl9OwoKCQl0aW1lckBmZjE0MDAwMCB7CgkJCWNvbXBh
dGlibGUgPSAiY2Rucyx0dGMiOwoJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwoJCQlpbnRlcnJ1cHQt
cGFyZW50ID0gPDB4ND47CgkJCWludGVycnVwdHMgPSA8MHgwIDB4MmQgMHg0IDB4MCAweDJlIDB4
NCAweDAgMHgyZiAweDQ+OwoJCQlyZWcgPSA8MHgwIDB4ZmYxNDAwMDAgMHgwIDB4MTAwMD47CgkJ
CXRpbWVyLXdpZHRoID0gPDB4MjA+OwoJCQlwb3dlci1kb21haW5zID0gPDB4MjcgMHgxYj47CgkJ
CWNsb2NrcyA9IDwweDMgMHgxZj47CgkJCXBoYW5kbGUgPSA8MHg5Mj47CgkJfTsKCgkJc2VyaWFs
QGZmMDAwMDAwIHsKCQkJdS1ib290LGRtLXByZS1yZWxvYzsKCQkJY29tcGF0aWJsZSA9ICJjZG5z
LHVhcnQtcjFwMTIiLCAieGxueCx4dWFydHBzIjsKCQkJc3RhdHVzID0gIm9rYXkiOwoJCQlpbnRl
cnJ1cHQtcGFyZW50ID0gPDB4ND47CgkJCWludGVycnVwdHMgPSA8MHgwIDB4MTUgMHg0PjsKCQkJ
cmVnID0gPDB4MCAweGZmMDAwMDAwIDB4MCAweDEwMDA+OwoJCQljbG9jay1uYW1lcyA9ICJ1YXJ0
X2NsayIsICJwY2xrIjsKCQkJcG93ZXItZG9tYWlucyA9IDwweDI3IDB4MjE+OwoJCQljbG9ja3Mg
PSA8MHgzIDB4MzggMHgzIDB4MWY+OwoJCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOwoJCQlw
aW5jdHJsLTAgPSA8MHgzOD47CgkJCWN0cy1vdmVycmlkZTsKCQkJZGV2aWNlX3R5cGUgPSAic2Vy
aWFsIjsKCQkJcG9ydC1udW1iZXIgPSA8MHgwPjsKCQkJcGhhbmRsZSA9IDwweDkzPjsKCQl9OwoK
CQlzZXJpYWxAZmYwMTAwMDAgewoJCQl1LWJvb3QsZG0tcHJlLXJlbG9jOwoJCQljb21wYXRpYmxl
ID0gImNkbnMsdWFydC1yMXAxMiIsICJ4bG54LHh1YXJ0cHMiOwoJCQlzdGF0dXMgPSAib2theSI7
CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHgxNiAw
eDQ+OwoJCQlyZWcgPSA8MHgwIDB4ZmYwMTAwMDAgMHgwIDB4MTAwMD47CgkJCWNsb2NrLW5hbWVz
ID0gInVhcnRfY2xrIiwgInBjbGsiOwoJCQlwb3dlci1kb21haW5zID0gPDB4MjcgMHgyMj47CgkJ
CWNsb2NrcyA9IDwweDMgMHgzOSAweDMgMHgxZj47CgkJCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVs
dCI7CgkJCXBpbmN0cmwtMCA9IDwweDM5PjsKCQkJY3RzLW92ZXJyaWRlOwoJCQlkZXZpY2VfdHlw
ZSA9ICJzZXJpYWwiOwoJCQlwb3J0LW51bWJlciA9IDwweDE+OwoJCQl4ZW4scGFzc3Rocm91Z2gg
PSA8MHgxPjsKCQkJcGhhbmRsZSA9IDwweDk0PjsKCQl9OwoKCQl1c2IwQGZmOWQwMDAwIHsKCQkJ
I2FkZHJlc3MtY2VsbHMgPSA8MHgyPjsKCQkJI3NpemUtY2VsbHMgPSA8MHgyPjsKCQkJc3RhdHVz
ID0gIm9rYXkiOwoJCQljb21wYXRpYmxlID0gInhsbngsenlucW1wLWR3YzMiOwoJCQlyZWcgPSA8
MHgwIDB4ZmY5ZDAwMDAgMHgwIDB4MTAwPjsKCQkJY2xvY2stbmFtZXMgPSAiYnVzX2NsayIsICJy
ZWZfY2xrIjsKCQkJcG93ZXItZG9tYWlucyA9IDwweDI3IDB4MTY+OwoJCQlyYW5nZXM7CgkJCW52
bWVtLWNlbGxzID0gPDB4MzQ+OwoJCQludm1lbS1jZWxsLW5hbWVzID0gInNvY19yZXZpc2lvbiI7
CgkJCWNsb2NrcyA9IDwweDMgMHgyMCAweDMgMHgyMj47CgkJCXBpbmN0cmwtbmFtZXMgPSAiZGVm
YXVsdCI7CgkJCXBpbmN0cmwtMCA9IDwweDNhPjsKCQkJeGxueCx0ei1ub25zZWN1cmUgPSA8MHgx
PjsKCQkJeGxueCx1c2ItcG9sYXJpdHkgPSA8MHgwPjsKCQkJeGxueCx1c2ItcmVzZXQtbW9kZSA9
IDwweDA+OwoJCQlwaGFuZGxlID0gPDB4OTU+OwoKCQkJZHdjM0BmZTIwMDAwMCB7CgkJCQljb21w
YXRpYmxlID0gInNucHMsZHdjMyI7CgkJCQlzdGF0dXMgPSAib2theSI7CgkJCQlyZWcgPSA8MHgw
IDB4ZmUyMDAwMDAgMHgwIDB4NDAwMDA+OwoJCQkJaW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJ
CQkJaW50ZXJydXB0LW5hbWVzID0gImR3Y191c2IzIiwgIm90ZyIsICJoaWJlciI7CgkJCQlpbnRl
cnJ1cHRzID0gPDB4MCAweDQxIDB4NCAweDAgMHg0NSAweDQgMHgwIDB4NGIgMHg0PjsKCQkJCSNz
dHJlYW0taWQtY2VsbHMgPSA8MHgxPjsKCQkJCWlvbW11cyA9IDwweDI5IDB4ODYwPjsKCQkJCXNu
cHMscXVpcmstZnJhbWUtbGVuZ3RoLWFkanVzdG1lbnQgPSA8MHgyMD47CgkJCQlzbnBzLHJlZmNs
a19mbGFkajsKCQkJCXNucHMsZW5hYmxlX2d1Y3RsMV9yZXN1bWVfcXVpcms7CgkJCQlzbnBzLGVu
YWJsZV9ndWN0bDFfaXBkX3F1aXJrOwoJCQkJc25wcyx4aGNpLXN0cmVhbS1xdWlyazsKCQkJCWRy
X21vZGUgPSAiaG9zdCI7CgkJCQlzbnBzLHVzYjNfbHBtX2NhcGFibGU7CgkJCQlwaHktbmFtZXMg
PSAidXNiMy1waHkiOwoJCQkJcGh5cyA9IDwweDNiIDB4NCAweDAgMHgyIDB4MThjYmE4MD47CgkJ
CQltYXhpbXVtLXNwZWVkID0gInN1cGVyLXNwZWVkIjsKCQkJCXBoYW5kbGUgPSA8MHgxMD47CgkJ
CX07CgkJfTsKCgkJdXNiMUBmZjllMDAwMCB7CgkJCSNhZGRyZXNzLWNlbGxzID0gPDB4Mj47CgkJ
CSNzaXplLWNlbGxzID0gPDB4Mj47CgkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CgkJCWNvbXBhdGli
bGUgPSAieGxueCx6eW5xbXAtZHdjMyI7CgkJCXJlZyA9IDwweDAgMHhmZjllMDAwMCAweDAgMHgx
MDA+OwoJCQljbG9jay1uYW1lcyA9ICJidXNfY2xrIiwgInJlZl9jbGsiOwoJCQlwb3dlci1kb21h
aW5zID0gPDB4MjcgMHgxNz47CgkJCXJhbmdlczsKCQkJbnZtZW0tY2VsbHMgPSA8MHgzND47CgkJ
CW52bWVtLWNlbGwtbmFtZXMgPSAic29jX3JldmlzaW9uIjsKCQkJY2xvY2tzID0gPDB4MyAweDIx
IDB4MyAweDIyPjsKCQkJcGhhbmRsZSA9IDwweDk2PjsKCgkJCWR3YzNAZmUzMDAwMDAgewoJCQkJ
Y29tcGF0aWJsZSA9ICJzbnBzLGR3YzMiOwoJCQkJc3RhdHVzID0gImRpc2FibGVkIjsKCQkJCXJl
ZyA9IDwweDAgMHhmZTMwMDAwMCAweDAgMHg0MDAwMD47CgkJCQlpbnRlcnJ1cHQtcGFyZW50ID0g
PDB4ND47CgkJCQlpbnRlcnJ1cHQtbmFtZXMgPSAiZHdjX3VzYjMiLCAib3RnIiwgImhpYmVyIjsK
CQkJCWludGVycnVwdHMgPSA8MHgwIDB4NDYgMHg0IDB4MCAweDRhIDB4NCAweDAgMHg0YyAweDQ+
OwoJCQkJI3N0cmVhbS1pZC1jZWxscyA9IDwweDE+OwoJCQkJaW9tbXVzID0gPDB4MjkgMHg4NjE+
OwoJCQkJc25wcyxxdWlyay1mcmFtZS1sZW5ndGgtYWRqdXN0bWVudCA9IDwweDIwPjsKCQkJCXNu
cHMscmVmY2xrX2ZsYWRqOwoJCQkJc25wcyxlbmFibGVfZ3VjdGwxX3Jlc3VtZV9xdWlyazsKCQkJ
CXNucHMsZW5hYmxlX2d1Y3RsMV9pcGRfcXVpcms7CgkJCQlzbnBzLHhoY2ktc3RyZWFtLXF1aXJr
OwoJCQkJcGhhbmRsZSA9IDwweDExPjsKCQkJfTsKCQl9OwoKCQl3YXRjaGRvZ0BmZDRkMDAwMCB7
CgkJCWNvbXBhdGlibGUgPSAiY2Rucyx3ZHQtcjFwMiI7CgkJCXN0YXR1cyA9ICJva2F5IjsKCQkJ
aW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQlpbnRlcnJ1cHRzID0gPDB4MCAweDcxIDB4MT47
CgkJCXJlZyA9IDwweDAgMHhmZDRkMDAwMCAweDAgMHgxMDAwPjsKCQkJdGltZW91dC1zZWMgPSA8
MHgzYz47CgkJCXJlc2V0LW9uLXRpbWVvdXQ7CgkJCWNsb2NrcyA9IDwweDMgMHg0Yj47CgkJCXBo
YW5kbGUgPSA8MHg5Nz47CgkJfTsKCgkJd2F0Y2hkb2dAZmYxNTAwMDAgewoJCQljb21wYXRpYmxl
ID0gImNkbnMsd2R0LXIxcDIiOwoJCQlzdGF0dXMgPSAib2theSI7CgkJCWludGVycnVwdC1wYXJl
bnQgPSA8MHg0PjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHgzNCAweDE+OwoJCQlyZWcgPSA8MHgw
IDB4ZmYxNTAwMDAgMHgwIDB4MTAwMD47CgkJCXRpbWVvdXQtc2VjID0gPDB4YT47CgkJCWNsb2Nr
cyA9IDwweDMgMHg3MD47CgkJCXBoYW5kbGUgPSA8MHg5OD47CgkJfTsKCgkJYW1zQGZmYTUwMDAw
IHsKCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5bnFtcC1hbXMiOwoJCQlzdGF0dXMgPSAib2theSI7
CgkJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQkJaW50ZXJydXB0cyA9IDwweDAgMHgzOCAw
eDQ+OwoJCQlpbnRlcnJ1cHQtbmFtZXMgPSAiYW1zLWlycSI7CgkJCXJlZyA9IDwweDAgMHhmZmE1
MDAwMCAweDAgMHg4MDA+OwoJCQlyZWctbmFtZXMgPSAiYW1zLWJhc2UiOwoJCQkjYWRkcmVzcy1j
ZWxscyA9IDwweDI+OwoJCQkjc2l6ZS1jZWxscyA9IDwweDI+OwoJCQkjaW8tY2hhbm5lbC1jZWxs
cyA9IDwweDE+OwoJCQlyYW5nZXM7CgkJCWNsb2NrcyA9IDwweDMgMHg0Nj47CgkJCXBoYW5kbGUg
PSA8MHg5OT47CgoJCQlhbXNfcHNAZmZhNTA4MDAgewoJCQkJY29tcGF0aWJsZSA9ICJ4bG54LHp5
bnFtcC1hbXMtcHMiOwoJCQkJc3RhdHVzID0gIm9rYXkiOwoJCQkJcmVnID0gPDB4MCAweGZmYTUw
ODAwIDB4MCAweDQwMD47CgkJCQlwaGFuZGxlID0gPDB4OWE+OwoJCQl9OwoKCQkJYW1zX3BsQGZm
YTUwYzAwIHsKCQkJCWNvbXBhdGlibGUgPSAieGxueCx6eW5xbXAtYW1zLXBsIjsKCQkJCXN0YXR1
cyA9ICJva2F5IjsKCQkJCXJlZyA9IDwweDAgMHhmZmE1MGMwMCAweDAgMHg0MDA+OwoJCQkJcGhh
bmRsZSA9IDwweDliPjsKCQkJfTsKCQl9OwoKCQlkbWFAZmQ0YzAwMDAgewoJCQljb21wYXRpYmxl
ID0gInhsbngsZHBkbWEiOwoJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwoJCQlyZWcgPSA8MHgwIDB4
ZmQ0YzAwMDAgMHgwIDB4MTAwMD47CgkJCWludGVycnVwdHMgPSA8MHgwIDB4N2EgMHg0PjsKCQkJ
aW50ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQljbG9jay1uYW1lcyA9ICJheGlfY2xrIjsKCQkJ
cG93ZXItZG9tYWlucyA9IDwweDI3IDB4Mjk+OwoJCQlkbWEtY2hhbm5lbHMgPSA8MHg2PjsKCQkJ
I2RtYS1jZWxscyA9IDwweDE+OwoJCQljbG9ja3MgPSA8MHgzIDB4MTQ+OwoJCQlwaGFuZGxlID0g
PDB4M2Q+OwoKCQkJZG1hLXZpZGVvMGNoYW5uZWwgewoJCQkJY29tcGF0aWJsZSA9ICJ4bG54LHZp
ZGVvMCI7CgkJCX07CgoJCQlkbWEtdmlkZW8xY2hhbm5lbCB7CgkJCQljb21wYXRpYmxlID0gInhs
bngsdmlkZW8xIjsKCQkJfTsKCgkJCWRtYS12aWRlbzJjaGFubmVsIHsKCQkJCWNvbXBhdGlibGUg
PSAieGxueCx2aWRlbzIiOwoJCQl9OwoKCQkJZG1hLWdyYXBoaWNzY2hhbm5lbCB7CgkJCQljb21w
YXRpYmxlID0gInhsbngsZ3JhcGhpY3MiOwoJCQl9OwoKCQkJZG1hLWF1ZGlvMGNoYW5uZWwgewoJ
CQkJY29tcGF0aWJsZSA9ICJ4bG54LGF1ZGlvMCI7CgkJCX07CgoJCQlkbWEtYXVkaW8xY2hhbm5l
bCB7CgkJCQljb21wYXRpYmxlID0gInhsbngsYXVkaW8xIjsKCQkJfTsKCQl9OwoKCQl6eW5xbXAt
ZGlzcGxheUBmZDRhMDAwMCB7CgkJCWNvbXBhdGlibGUgPSAieGxueCx6eW5xbXAtZHBzdWItMS43
IjsKCQkJc3RhdHVzID0gImRpc2FibGVkIjsKCQkJcmVnID0gPDB4MCAweGZkNGEwMDAwIDB4MCAw
eDEwMDAgMHgwIDB4ZmQ0YWEwMDAgMHgwIDB4MTAwMCAweDAgMHhmZDRhYjAwMCAweDAgMHgxMDAw
IDB4MCAweGZkNGFjMDAwIDB4MCAweDEwMDA+OwoJCQlyZWctbmFtZXMgPSAiZHAiLCAiYmxlbmQi
LCAiYXZfYnVmIiwgImF1ZCI7CgkJCWludGVycnVwdHMgPSA8MHgwIDB4NzcgMHg0PjsKCQkJaW50
ZXJydXB0LXBhcmVudCA9IDwweDQ+OwoJCQljbG9jay1uYW1lcyA9ICJkcF9hcGJfY2xrIiwgImRw
X2F1ZF9jbGsiLCAiZHBfdnRjX3BpeGVsX2Nsa19pbiI7CgkJCXBvd2VyLWRvbWFpbnMgPSA8MHgy
NyAweDI5PjsKCQkJY2xvY2tzID0gPDB4M2MgMHgzIDB4MTEgMHgzIDB4MTA+OwoJCQlwaGFuZGxl
ID0gPDB4OWM+OwoKCQkJdmlkLWxheWVyIHsKCQkJCWRtYS1uYW1lcyA9ICJ2aWQwIiwgInZpZDEi
LCAidmlkMiI7CgkJCQlkbWFzID0gPDB4M2QgMHgwIDB4M2QgMHgxIDB4M2QgMHgyPjsKCQkJfTsK
CgkJCWdmeC1sYXllciB7CgkJCQlkbWEtbmFtZXMgPSAiZ2Z4MCI7CgkJCQlkbWFzID0gPDB4M2Qg
MHgzPjsKCQkJfTsKCgkJCWkyYy1idXMgewoJCQl9OwoKCQkJenlucW1wX2RwX3NuZF9jb2RlYzAg
ewoJCQkJY29tcGF0aWJsZSA9ICJ4bG54LGRwLXNuZC1jb2RlYyI7CgkJCQljbG9jay1uYW1lcyA9
ICJhdWRfY2xrIjsKCQkJCWNsb2NrcyA9IDwweDMgMHgxMT47CgkJCQlwaGFuZGxlID0gPDB4NDA+
OwoJCQl9OwoKCQkJenlucW1wX2RwX3NuZF9wY20wIHsKCQkJCWNvbXBhdGlibGUgPSAieGxueCxk
cC1zbmQtcGNtIjsKCQkJCWRtYXMgPSA8MHgzZCAweDQ+OwoJCQkJZG1hLW5hbWVzID0gInR4IjsK
CQkJCXBoYW5kbGUgPSA8MHgzZT47CgkJCX07CgoJCQl6eW5xbXBfZHBfc25kX3BjbTEgewoJCQkJ
Y29tcGF0aWJsZSA9ICJ4bG54LGRwLXNuZC1wY20iOwoJCQkJZG1hcyA9IDwweDNkIDB4NT47CgkJ
CQlkbWEtbmFtZXMgPSAidHgiOwoJCQkJcGhhbmRsZSA9IDwweDNmPjsKCQkJfTsKCgkJCXp5bnFt
cF9kcF9zbmRfY2FyZCB7CgkJCQljb21wYXRpYmxlID0gInhsbngsZHAtc25kLWNhcmQiOwoJCQkJ
eGxueCxkcC1zbmQtcGNtID0gPDB4M2UgMHgzZj47CgkJCQl4bG54LGRwLXNuZC1jb2RlYyA9IDww
eDQwPjsKCQkJCXBoYW5kbGUgPSA8MHg5ZD47CgkJCX07CgkJfTsKCX07CgoJZmNsazAgewoJCXN0
YXR1cyA9ICJva2F5IjsKCQljb21wYXRpYmxlID0gInhsbngsZmNsayI7CgkJY2xvY2tzID0gPDB4
MyAweDQ3PjsKCQlwaGFuZGxlID0gPDB4OWU+OwoJfTsKCglmY2xrMSB7CgkJc3RhdHVzID0gIm9r
YXkiOwoJCWNvbXBhdGlibGUgPSAieGxueCxmY2xrIjsKCQljbG9ja3MgPSA8MHgzIDB4NDg+OwoJ
CXBoYW5kbGUgPSA8MHg5Zj47Cgl9OwoKCWZjbGsyIHsKCQlzdGF0dXMgPSAib2theSI7CgkJY29t
cGF0aWJsZSA9ICJ4bG54LGZjbGsiOwoJCWNsb2NrcyA9IDwweDMgMHg0OT47CgkJcGhhbmRsZSA9
IDwweGEwPjsKCX07CgoJZmNsazMgewoJCXN0YXR1cyA9ICJva2F5IjsKCQljb21wYXRpYmxlID0g
InhsbngsZmNsayI7CgkJY2xvY2tzID0gPDB4MyAweDRhPjsKCQlwaGFuZGxlID0gPDB4YTE+OwoJ
fTsKCglwc3NfcmVmX2NsayB7CgkJdS1ib290LGRtLXByZS1yZWxvYzsKCQljb21wYXRpYmxlID0g
ImZpeGVkLWNsb2NrIjsKCQkjY2xvY2stY2VsbHMgPSA8MHgwPjsKCQljbG9jay1mcmVxdWVuY3kg
PSA8MHgxZmM5MzUwPjsKCQlwaGFuZGxlID0gPDB4Nj47Cgl9OwoKCXZpZGVvX2NsayB7CgkJdS1i
b290LGRtLXByZS1yZWxvYzsKCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKCQkjY2xvY2st
Y2VsbHMgPSA8MHgwPjsKCQljbG9jay1mcmVxdWVuY3kgPSA8MHgxOWJmY2MwPjsKCQlwaGFuZGxl
ID0gPDB4Nz47Cgl9OwoKCXBzc19hbHRfcmVmX2NsayB7CgkJdS1ib290LGRtLXByZS1yZWxvYzsK
CQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKCQkjY2xvY2stY2VsbHMgPSA8MHgwPjsKCQlj
bG9jay1mcmVxdWVuY3kgPSA8MHgwPjsKCQlwaGFuZGxlID0gPDB4OD47Cgl9OwoKCWd0X2NyeF9y
ZWZfY2xrIHsKCQl1LWJvb3QsZG0tcHJlLXJlbG9jOwoJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xv
Y2siOwoJCSNjbG9jay1jZWxscyA9IDwweDA+OwoJCWNsb2NrLWZyZXF1ZW5jeSA9IDwweDY2ZmYz
MDA+OwoJCXBoYW5kbGUgPSA8MHhhPjsKCX07CgoJYXV4X3JlZl9jbGsgewoJCXUtYm9vdCxkbS1w
cmUtcmVsb2M7CgkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7CgkJI2Nsb2NrLWNlbGxzID0g
PDB4MD47CgkJY2xvY2stZnJlcXVlbmN5ID0gPDB4MTliZmNjMD47CgkJcGhhbmRsZSA9IDwweDk+
OwoJfTsKCglkcF9hY2xrIHsKCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKCQkjY2xvY2st
Y2VsbHMgPSA8MHgwPjsKCQljbG9jay1mcmVxdWVuY3kgPSA8MHg1ZjVlMTAwPjsKCQljbG9jay1h
Y2N1cmFjeSA9IDwweDY0PjsKCQlwaGFuZGxlID0gPDB4M2M+OwoJfTsKCglncGlvLWtleXMgewoJ
CWNvbXBhdGlibGUgPSAiZ3Bpby1rZXlzIjsKCQkjYWRkcmVzcy1jZWxscyA9IDwweDE+OwoJCSNz
aXplLWNlbGxzID0gPDB4MD47CgkJYXV0b3JlcGVhdDsKCgkJc3cxOSB7CgkJCWxhYmVsID0gInN3
MTkiOwoJCQlncGlvcyA9IDwweDJmIDB4MTYgMHgwPjsKCQkJbGludXgsY29kZSA9IDwweDZjPjsK
CQkJd2FrZXVwLXNvdXJjZTsKCQkJYXV0b3JlcGVhdDsKCQl9OwoJfTsKCglsZWRzIHsKCQljb21w
YXRpYmxlID0gImdwaW8tbGVkcyI7CgoJCWhlYXJ0YmVhdC1sZWQgewoJCQlsYWJlbCA9ICJoZWFy
dGJlYXQiOwoJCQlncGlvcyA9IDwweDJmIDB4MTcgMHgwPjsKCQkJbGludXgsZGVmYXVsdC10cmln
Z2VyID0gImhlYXJ0YmVhdCI7CgkJfTsKCX07CgoJY2hvc2VuIHsKCQl4bG54LGVlcHJvbSA9ICIv
YW1iYS9pMmNAZmYwMzAwMDAvaTJjLW11eEA3NC9pMmNAMC9lZXByb21ANTQiOwoJCWJvb3Rhcmdz
ID0gIiBlYXJseWNvbiBjb25zb2xlPXR0eVBTMCwxMTUyMDAgY2xrX2lnbm9yZV91bnVzZWQgcm9v
dD0vZGV2L3JhbTAgcnciOwoJCXN0ZG91dC1wYXRoID0gInNlcmlhbDA6MTE1MjAwbjgiOwoJfTsK
CglpbmEyMjYtdTc2IHsKCQljb21wYXRpYmxlID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMg
PSA8MHg0MSAweDAgMHg0MSAweDEgMHg0MSAweDIgMHg0MSAweDM+OwoJfTsKCglpbmEyMjYtdTc3
IHsKCQljb21wYXRpYmxlID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg0MiAweDAg
MHg0MiAweDEgMHg0MiAweDIgMHg0MiAweDM+OwoJfTsKCglpbmEyMjYtdTc4IHsKCQljb21wYXRp
YmxlID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg0MyAweDAgMHg0MyAweDEgMHg0
MyAweDIgMHg0MyAweDM+OwoJfTsKCglpbmEyMjYtdTg3IHsKCQljb21wYXRpYmxlID0gImlpby1o
d21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg0NCAweDAgMHg0NCAweDEgMHg0NCAweDIgMHg0NCAw
eDM+OwoJfTsKCglpbmEyMjYtdTg1IHsKCQljb21wYXRpYmxlID0gImlpby1od21vbiI7CgkJaW8t
Y2hhbm5lbHMgPSA8MHg0NSAweDAgMHg0NSAweDEgMHg0NSAweDIgMHg0NSAweDM+OwoJfTsKCglp
bmEyMjYtdTg2IHsKCQljb21wYXRpYmxlID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8
MHg0NiAweDAgMHg0NiAweDEgMHg0NiAweDIgMHg0NiAweDM+OwoJfTsKCglpbmEyMjYtdTkzIHsK
CQljb21wYXRpYmxlID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg0NyAweDAgMHg0
NyAweDEgMHg0NyAweDIgMHg0NyAweDM+OwoJfTsKCglpbmEyMjYtdTg4IHsKCQljb21wYXRpYmxl
ID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg0OCAweDAgMHg0OCAweDEgMHg0OCAw
eDIgMHg0OCAweDM+OwoJfTsKCglpbmEyMjYtdTE1IHsKCQljb21wYXRpYmxlID0gImlpby1od21v
biI7CgkJaW8tY2hhbm5lbHMgPSA8MHg0OSAweDAgMHg0OSAweDEgMHg0OSAweDIgMHg0OSAweDM+
OwoJfTsKCglpbmEyMjYtdTkyIHsKCQljb21wYXRpYmxlID0gImlpby1od21vbiI7CgkJaW8tY2hh
bm5lbHMgPSA8MHg0YSAweDAgMHg0YSAweDEgMHg0YSAweDIgMHg0YSAweDM+OwoJfTsKCglpbmEy
MjYtdTc5IHsKCQljb21wYXRpYmxlID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg0
YiAweDAgMHg0YiAweDEgMHg0YiAweDIgMHg0YiAweDM+OwoJfTsKCglpbmEyMjYtdTgxIHsKCQlj
b21wYXRpYmxlID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg0YyAweDAgMHg0YyAw
eDEgMHg0YyAweDIgMHg0YyAweDM+OwoJfTsKCglpbmEyMjYtdTgwIHsKCQljb21wYXRpYmxlID0g
Imlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg0ZCAweDAgMHg0ZCAweDEgMHg0ZCAweDIg
MHg0ZCAweDM+OwoJfTsKCglpbmEyMjYtdTg0IHsKCQljb21wYXRpYmxlID0gImlpby1od21vbiI7
CgkJaW8tY2hhbm5lbHMgPSA8MHg0ZSAweDAgMHg0ZSAweDEgMHg0ZSAweDIgMHg0ZSAweDM+OwoJ
fTsKCglpbmEyMjYtdTE2IHsKCQljb21wYXRpYmxlID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5l
bHMgPSA8MHg0ZiAweDAgMHg0ZiAweDEgMHg0ZiAweDIgMHg0ZiAweDM+OwoJfTsKCglpbmEyMjYt
dTY1IHsKCQljb21wYXRpYmxlID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg1MCAw
eDAgMHg1MCAweDEgMHg1MCAweDIgMHg1MCAweDM+OwoJfTsKCglpbmEyMjYtdTc0IHsKCQljb21w
YXRpYmxlID0gImlpby1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg1MSAweDAgMHg1MSAweDEg
MHg1MSAweDIgMHg1MSAweDM+OwoJfTsKCglpbmEyMjYtdTc1IHsKCQljb21wYXRpYmxlID0gImlp
by1od21vbiI7CgkJaW8tY2hhbm5lbHMgPSA8MHg1MiAweDAgMHg1MiAweDEgMHg1MiAweDIgMHg1
MiAweDM+OwoJfTsKCglNMDFfQVhJX0xQREA4MDAwMDAwMCB7CgkJcmVnID0gPDB4MCAweDgwMDAw
MDAwIDB4MCAweDEwMDAwPjsKCQlwaGFuZGxlID0gPDB4YTI+OwoJfTsKCglNMDJfQVhJX0xQREA4
MDAxMDAwMCB7CgkJcmVnID0gPDB4MCAweDgwMDEwMDAwIDB4MCAweDEwMDAwPjsKCQlwaGFuZGxl
ID0gPDB4YTM+OwoJfTsKCglNMDNfQVhJX0xQREA4MDAyMDAwMCB7CgkJcmVnID0gPDB4MCAweDgw
MDIwMDAwIDB4MCAweDEwMDAwPjsKCQlwaGFuZGxlID0gPDB4YTQ+OwoJfTsKCglNMDBfQVhJX1BM
QGEwMDAwMDAwIHsKCQlyZWcgPSA8MHgwIDB4YTAwMDAwMDAgMHgwIDB4MTAwMDA+OwoJCXhlbixw
YXNzdGhyb3VnaCA9IDwweDE+OwoJCXBoYW5kbGUgPSA8MHhhNT47Cgl9OwoKCU0wMV9BWElfRlBE
QGEwMDEwMDAwIHsKCQlyZWcgPSA8MHgwIDB4YTAwMTAwMDAgMHgwIDB4MTAwMDA+OwoJCXN0YXR1
cyA9ICJva2F5IjsKCQkjc3RyZWFtLWlkLWNlbGxzID0gPDB4MT47CgkJaW9tbXVzID0gPDB4Mjkg
MHhlODA+OwoJCWludGVycnVwdC1wYXJlbnQgPSA8MHg0PjsKCQlpbnRlcnJ1cHRzID0gPDB4MCAw
eDU5IDB4ND47CgkJeGVuLHBhc3N0aHJvdWdoID0gPDB4MT47CgkJcGhhbmRsZSA9IDwweDI2PjsK
CX07CgoJTTAxX0FYSV9QTEBhMDAyMDAwMCB7CgkJcmVnID0gPDB4MCAweGEwMDIwMDAwIDB4MCAw
eDEwMDAwPjsKCQl4ZW4scGFzc3Rocm91Z2ggPSA8MHgxPjsKCQlwaGFuZGxlID0gPDB4YTY+OwoJ
fTsKCglNMDJfQVhJX0ZQREBhMDAzMDAwMCB7CgkJcmVnID0gPDB4MCAweGEwMDMwMDAwIDB4MCAw
eDEwMDAwPjsKCQl4ZW4scGFzc3Rocm91Z2ggPSA8MHgxPjsKCQlwaGFuZGxlID0gPDB4YTc+OwoJ
fTsKCglNMDJfQVhJX1BMQGEwMDQwMDAwIHsKCQlyZWcgPSA8MHgwIDB4YTAwNDAwMDAgMHgwIDB4
MTAwMDA+OwoJCXhlbixwYXNzdGhyb3VnaCA9IDwweDE+OwoJCXBoYW5kbGUgPSA8MHhhOD47Cgl9
OwoKCU0wM19BWElfRlBEQGEwMDUwMDAwIHsKCQlyZWcgPSA8MHgwIDB4YTAwNTAwMDAgMHgwIDB4
MTAwMDA+OwoJCXBoYW5kbGUgPSA8MHhhOT47Cgl9OwoKCU0wM19BWElfUExAYTAwNjAwMDAgewoJ
CXJlZyA9IDwweDAgMHhhMDA2MDAwMCAweDAgMHgxMDAwMD47CgkJeGVuLHBhc3N0aHJvdWdoID0g
PDB4MT47CgkJcGhhbmRsZSA9IDwweGFhPjsKCX07CgoJYWxpYXNlcyB7CgkJZXRoZXJuZXQwID0g
Ii9hbWJhL2V0aGVybmV0QGZmMGUwMDAwIjsKCQlpMmMwID0gIi9hbWJhL2kyY0BmZjAyMDAwMCI7
CgkJaTJjMSA9ICIvYW1iYS9pMmNAZmYwMzAwMDAiOwoJCXNlcmlhbDAgPSAiL2FtYmEvc2VyaWFs
QGZmMDAwMDAwIjsKCQlzZXJpYWwxID0gIi9hbWJhL3NlcmlhbEBmZjAxMDAwMCI7CgkJc3BpMCA9
ICIvYW1iYS9zcGlAZmYwZjAwMDAiOwoJfTsKCgltZW1vcnkgewoJCWRldmljZV90eXBlID0gIm1l
bW9yeSI7CgkJcmVnID0gPDB4MCAweDAgMHgwIDB4N2ZmMDAwMDAgMHg4IDB4MCAweDAgMHg4MDAw
MDAwMD47Cgl9OwoKCV9fc3ltYm9sc19fIHsKCQljcHUwID0gIi9jcHVzL2NwdUAwIjsKCQljcHUx
ID0gIi9jcHVzL2NwdUAxIjsKCQljcHUyID0gIi9jcHVzL2NwdUAyIjsKCQljcHUzID0gIi9jcHVz
L2NwdUAzIjsKCQlDUFVfU0xFRVBfMCA9ICIvY3B1cy9pZGxlLXN0YXRlcy9jcHUtc2xlZXAtMCI7
CgkJY3B1X29wcF90YWJsZSA9ICIvY3B1LW9wcC10YWJsZSI7CgkJaXBpX21haWxib3hfcG11MSA9
ICIvenlucW1wX2lwaS9tYWlsYm94QGZmOTkwNDAwIjsKCQlkY2MgPSAiL2RjYyI7CgkJenlucW1w
X2Zpcm13YXJlID0gIi9maXJtd2FyZS96eW5xbXAtZmlybXdhcmUiOwoJCXp5bnFtcF9wY2FwID0g
Ii9maXJtd2FyZS96eW5xbXAtZmlybXdhcmUvcGNhcCI7CgkJenlucW1wX3Bvd2VyID0gIi9maXJt
d2FyZS96eW5xbXAtZmlybXdhcmUvenlucW1wLXBvd2VyIjsKCQl6eW5xbXBfcmVzZXQgPSAiL2Zp
cm13YXJlL3p5bnFtcC1maXJtd2FyZS9yZXNldC1jb250cm9sbGVyIjsKCQlwaW5jdHJsMCA9ICIv
ZmlybXdhcmUvenlucW1wLWZpcm13YXJlL3BpbmN0cmwiOwoJCXBpbmN0cmxfaTJjMF9kZWZhdWx0
ID0gIi9maXJtd2FyZS96eW5xbXAtZmlybXdhcmUvcGluY3RybC9pMmMwLWRlZmF1bHQiOwoJCXBp
bmN0cmxfaTJjMF9ncGlvID0gIi9maXJtd2FyZS96eW5xbXAtZmlybXdhcmUvcGluY3RybC9pMmMw
LWdwaW8iOwoJCXBpbmN0cmxfaTJjMV9kZWZhdWx0ID0gIi9maXJtd2FyZS96eW5xbXAtZmlybXdh
cmUvcGluY3RybC9pMmMxLWRlZmF1bHQiOwoJCXBpbmN0cmxfaTJjMV9ncGlvID0gIi9maXJtd2Fy
ZS96eW5xbXAtZmlybXdhcmUvcGluY3RybC9pMmMxLWdwaW8iOwoJCXBpbmN0cmxfdWFydDBfZGVm
YXVsdCA9ICIvZmlybXdhcmUvenlucW1wLWZpcm13YXJlL3BpbmN0cmwvdWFydDAtZGVmYXVsdCI7
CgkJcGluY3RybF91YXJ0MV9kZWZhdWx0ID0gIi9maXJtd2FyZS96eW5xbXAtZmlybXdhcmUvcGlu
Y3RybC91YXJ0MS1kZWZhdWx0IjsKCQlwaW5jdHJsX3VzYjBfZGVmYXVsdCA9ICIvZmlybXdhcmUv
enlucW1wLWZpcm13YXJlL3BpbmN0cmwvdXNiMC1kZWZhdWx0IjsKCQlwaW5jdHJsX2dlbTNfZGVm
YXVsdCA9ICIvZmlybXdhcmUvenlucW1wLWZpcm13YXJlL3BpbmN0cmwvZ2VtMy1kZWZhdWx0IjsK
CQlwaW5jdHJsX2NhbjFfZGVmYXVsdCA9ICIvZmlybXdhcmUvenlucW1wLWZpcm13YXJlL3BpbmN0
cmwvY2FuMS1kZWZhdWx0IjsKCQlwaW5jdHJsX3NkaGNpMV9kZWZhdWx0ID0gIi9maXJtd2FyZS96
eW5xbXAtZmlybXdhcmUvcGluY3RybC9zZGhjaTEtZGVmYXVsdCI7CgkJcGluY3RybF9ncGlvX2Rl
ZmF1bHQgPSAiL2Zpcm13YXJlL3p5bnFtcC1maXJtd2FyZS9waW5jdHJsL2dwaW8tZGVmYXVsdCI7
CgkJenlucW1wX2NsayA9ICIvZmlybXdhcmUvenlucW1wLWZpcm13YXJlL2Nsb2NrLWNvbnRyb2xs
ZXIiOwoJCWZwZ2FfZnVsbCA9ICIvZnBnYS1mdWxsIjsKCQlzb2NfcmV2aXNpb24gPSAiL252bWVt
X2Zpcm13YXJlL3NvY19yZXZpc2lvbkAwIjsKCQllZnVzZV9kbmEgPSAiL252bWVtX2Zpcm13YXJl
L2VmdXNlX2RuYUBjIjsKCQllZnVzZV91c3IwID0gIi9udm1lbV9maXJtd2FyZS9lZnVzZV91c3Iw
QDIwIjsKCQllZnVzZV91c3IxID0gIi9udm1lbV9maXJtd2FyZS9lZnVzZV91c3IxQDI0IjsKCQll
ZnVzZV91c3IyID0gIi9udm1lbV9maXJtd2FyZS9lZnVzZV91c3IyQDI4IjsKCQllZnVzZV91c3Iz
ID0gIi9udm1lbV9maXJtd2FyZS9lZnVzZV91c3IzQDJjIjsKCQllZnVzZV91c3I0ID0gIi9udm1l
bV9maXJtd2FyZS9lZnVzZV91c3I0QDMwIjsKCQllZnVzZV91c3I1ID0gIi9udm1lbV9maXJtd2Fy
ZS9lZnVzZV91c3I1QDM0IjsKCQllZnVzZV91c3I2ID0gIi9udm1lbV9maXJtd2FyZS9lZnVzZV91
c3I2QDM4IjsKCQllZnVzZV91c3I3ID0gIi9udm1lbV9maXJtd2FyZS9lZnVzZV91c3I3QDNjIjsK
CQllZnVzZV9taXNjdXNyID0gIi9udm1lbV9maXJtd2FyZS9lZnVzZV9taXNjdXNyQDQwIjsKCQll
ZnVzZV9jaGFzaCA9ICIvbnZtZW1fZmlybXdhcmUvZWZ1c2VfY2hhc2hANTAiOwoJCWVmdXNlX3B1
Zm1pc2MgPSAiL252bWVtX2Zpcm13YXJlL2VmdXNlX3B1Zm1pc2NANTQiOwoJCWVmdXNlX3NlYyA9
ICIvbnZtZW1fZmlybXdhcmUvZWZ1c2Vfc2VjQDU4IjsKCQllZnVzZV9zcGtpZCA9ICIvbnZtZW1f
ZmlybXdhcmUvZWZ1c2Vfc3BraWRANWMiOwoJCWVmdXNlX3BwazBoYXNoID0gIi9udm1lbV9maXJt
d2FyZS9lZnVzZV9wcGswaGFzaEBhMCI7CgkJZWZ1c2VfcHBrMWhhc2ggPSAiL252bWVtX2Zpcm13
YXJlL2VmdXNlX3BwazFoYXNoQGQwIjsKCQl4bG54X3JzYSA9ICIvenlucW1wX3JzYSI7CgkJeGxu
eF9rZWNjYWtfMzg0ID0gIi9zaGEzODQiOwoJCXhsbnhfYWVzID0gIi96eW5xbXBfYWVzIjsKCQlh
bWJhX2FwdSA9ICIvYW1iYS1hcHVAMCI7CgkJZ2ljID0gIi9hbWJhLWFwdUAwL2ludGVycnVwdC1j
b250cm9sbGVyQGY5MDEwMDAwIjsKCQlzbW11ID0gIi9zbW11QGZkODAwMDAwIjsKCQlhbWJhID0g
Ii9hbWJhIjsKCQljYW4wID0gIi9hbWJhL2NhbkBmZjA2MDAwMCI7CgkJY2FuMSA9ICIvYW1iYS9j
YW5AZmYwNzAwMDAiOwoJCWNjaSA9ICIvYW1iYS9jY2lAZmQ2ZTAwMDAiOwoJCWZwZF9kbWFfY2hh
bjEgPSAiL2FtYmEvZG1hQGZkNTAwMDAwIjsKCQlmcGRfZG1hX2NoYW4yID0gIi9hbWJhL2RtYUBm
ZDUxMDAwMCI7CgkJZnBkX2RtYV9jaGFuMyA9ICIvYW1iYS9kbWFAZmQ1MjAwMDAiOwoJCWZwZF9k
bWFfY2hhbjQgPSAiL2FtYmEvZG1hQGZkNTMwMDAwIjsKCQlmcGRfZG1hX2NoYW41ID0gIi9hbWJh
L2RtYUBmZDU0MDAwMCI7CgkJZnBkX2RtYV9jaGFuNiA9ICIvYW1iYS9kbWFAZmQ1NTAwMDAiOwoJ
CWZwZF9kbWFfY2hhbjcgPSAiL2FtYmEvZG1hQGZkNTYwMDAwIjsKCQlmcGRfZG1hX2NoYW44ID0g
Ii9hbWJhL2RtYUBmZDU3MDAwMCI7CgkJZ3B1ID0gIi9hbWJhL2dwdUBmZDRiMDAwMCI7CgkJbHBk
X2RtYV9jaGFuMSA9ICIvYW1iYS9kbWFAZmZhODAwMDAiOwoJCWxwZF9kbWFfY2hhbjIgPSAiL2Ft
YmEvZG1hQGZmYTkwMDAwIjsKCQlscGRfZG1hX2NoYW4zID0gIi9hbWJhL2RtYUBmZmFhMDAwMCI7
CgkJbHBkX2RtYV9jaGFuNCA9ICIvYW1iYS9kbWFAZmZhYjAwMDAiOwoJCWxwZF9kbWFfY2hhbjUg
PSAiL2FtYmEvZG1hQGZmYWMwMDAwIjsKCQlscGRfZG1hX2NoYW42ID0gIi9hbWJhL2RtYUBmZmFk
MDAwMCI7CgkJbHBkX2RtYV9jaGFuNyA9ICIvYW1iYS9kbWFAZmZhZTAwMDAiOwoJCWxwZF9kbWFf
Y2hhbjggPSAiL2FtYmEvZG1hQGZmYWYwMDAwIjsKCQltYyA9ICIvYW1iYS9tZW1vcnktY29udHJv
bGxlckBmZDA3MDAwMCI7CgkJbmFuZDAgPSAiL2FtYmEvbmFuZEBmZjEwMDAwMCI7CgkJZ2VtMCA9
ICIvYW1iYS9ldGhlcm5ldEBmZjBiMDAwMCI7CgkJZ2VtMSA9ICIvYW1iYS9ldGhlcm5ldEBmZjBj
MDAwMCI7CgkJZ2VtMiA9ICIvYW1iYS9ldGhlcm5ldEBmZjBkMDAwMCI7CgkJZ2VtMyA9ICIvYW1i
YS9ldGhlcm5ldEBmZjBlMDAwMCI7CgkJcGh5YyA9ICIvYW1iYS9ldGhlcm5ldEBmZjBlMDAwMC9l
dGhlcm5ldC1waHlAYyI7CgkJZ3BpbyA9ICIvYW1iYS9ncGlvQGZmMGEwMDAwIjsKCQlpMmMwID0g
Ii9hbWJhL2kyY0BmZjAyMDAwMCI7CgkJdGNhNjQxNl91OTcgPSAiL2FtYmEvaTJjQGZmMDIwMDAw
L2dwaW9AMjAiOwoJCXRjYTY0MTZfdTYxID0gIi9hbWJhL2kyY0BmZjAyMDAwMC9ncGlvQDIxIjsK
CQl1NzYgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDAvaW5hMjI2QDQwIjsK
CQl1NzcgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDAvaW5hMjI2QDQxIjsK
CQl1NzggPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDAvaW5hMjI2QDQyIjsK
CQl1ODcgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDAvaW5hMjI2QDQzIjsK
CQl1ODUgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDAvaW5hMjI2QDQ0IjsK
CQl1ODYgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDAvaW5hMjI2QDQ1IjsK
CQl1OTMgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDAvaW5hMjI2QDQ2IjsK
CQl1ODggPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDAvaW5hMjI2QDQ3IjsK
CQl1MTUgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDAvaW5hMjI2QDRhIjsK
CQl1OTIgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDAvaW5hMjI2QDRiIjsK
CQl1NzkgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDEvaW5hMjI2QDQwIjsK
CQl1ODEgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDEvaW5hMjI2QDQxIjsK
CQl1ODAgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDEvaW5hMjI2QDQyIjsK
CQl1ODQgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDEvaW5hMjI2QDQzIjsK
CQl1MTYgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDEvaW5hMjI2QDQ0IjsK
CQl1NjUgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDEvaW5hMjI2QDQ1IjsK
CQl1NzQgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDEvaW5hMjI2QDQ2IjsK
CQl1NzUgPSAiL2FtYmEvaTJjQGZmMDIwMDAwL2kyYy1tdXhANzUvaTJjQDEvaW5hMjI2QDQ3IjsK
CQlpMmMxID0gIi9hbWJhL2kyY0BmZjAzMDAwMCI7CgkJZWVwcm9tID0gIi9hbWJhL2kyY0BmZjAz
MDAwMC9pMmMtbXV4QDc0L2kyY0AwL2VlcHJvbUA1NCI7CgkJYm9hcmRfc24gPSAiL2FtYmEvaTJj
QGZmMDMwMDAwL2kyYy1tdXhANzQvaTJjQDAvZWVwcm9tQDU0L2JvYXJkLXNuQDAiOwoJCWV0aF9t
YWMgPSAiL2FtYmEvaTJjQGZmMDMwMDAwL2kyYy1tdXhANzQvaTJjQDAvZWVwcm9tQDU0L2V0aC1t
YWNAMjAiOwoJCWJvYXJkX25hbWUgPSAiL2FtYmEvaTJjQGZmMDMwMDAwL2kyYy1tdXhANzQvaTJj
QDAvZWVwcm9tQDU0L2JvYXJkLW5hbWVAZDAiOwoJCWJvYXJkX3JldmlzaW9uID0gIi9hbWJhL2ky
Y0BmZjAzMDAwMC9pMmMtbXV4QDc0L2kyY0AwL2VlcHJvbUA1NC9ib2FyZC1yZXZpc2lvbkBlMCI7
CgkJc2k1MzQxID0gIi9hbWJhL2kyY0BmZjAzMDAwMC9pMmMtbXV4QDc0L2kyY0AxL2Nsb2NrLWdl
bmVyYXRvckAzNiI7CgkJc2k1NzBfMSA9ICIvYW1iYS9pMmNAZmYwMzAwMDAvaTJjLW11eEA3NC9p
MmNAMi9jbG9jay1nZW5lcmF0b3JANWQiOwoJCXNpNTcwXzIgPSAiL2FtYmEvaTJjQGZmMDMwMDAw
L2kyYy1tdXhANzQvaTJjQDMvY2xvY2stZ2VuZXJhdG9yQDVkIjsKCQlzaTUzMjggPSAiL2FtYmEv
aTJjQGZmMDMwMDAwL2kyYy1tdXhANzQvaTJjQDQvY2xvY2stZ2VuZXJhdG9yQDY5IjsKCQlvY20g
PSAiL2FtYmEvbWVtb3J5LWNvbnRyb2xsZXJAZmY5NjAwMDAiOwoJCXBlcmZfbW9uaXRvcl9vY20g
PSAiL2FtYmEvcGVyZi1tb25pdG9yQGZmYTAwMDAwIjsKCQlwZXJmX21vbml0b3JfZGRyID0gIi9h
bWJhL3BlcmYtbW9uaXRvckBmZDBiMDAwMCI7CgkJcGVyZl9tb25pdG9yX2NjaSA9ICIvYW1iYS9w
ZXJmLW1vbml0b3JAZmQ0OTAwMDAiOwoJCXBlcmZfbW9uaXRvcl9scGQgPSAiL2FtYmEvcGVyZi1t
b25pdG9yQGZmYTEwMDAwIjsKCQlwY2llID0gIi9hbWJhL3BjaWVAZmQwZTAwMDAiOwoJCXBjaWVf
aW50YyA9ICIvYW1iYS9wY2llQGZkMGUwMDAwL2xlZ2FjeS1pbnRlcnJ1cHQtY29udHJvbGxlciI7
CgkJcXNwaSA9ICIvYW1iYS9zcGlAZmYwZjAwMDAiOwoJCWZsYXNoMCA9ICIvYW1iYS9zcGlAZmYw
ZjAwMDAvZmxhc2hAMCI7CgkJcnRjID0gIi9hbWJhL3J0Y0BmZmE2MDAwMCI7CgkJc2VyZGVzID0g
Ii9hbWJhL3p5bnFtcF9waHlAZmQ0MDAwMDAiOwoJCWxhbmUwID0gIi9hbWJhL3p5bnFtcF9waHlA
ZmQ0MDAwMDAvbGFuZTAiOwoJCWxhbmUxID0gIi9hbWJhL3p5bnFtcF9waHlAZmQ0MDAwMDAvbGFu
ZTEiOwoJCWxhbmUyID0gIi9hbWJhL3p5bnFtcF9waHlAZmQ0MDAwMDAvbGFuZTIiOwoJCWxhbmUz
ID0gIi9hbWJhL3p5bnFtcF9waHlAZmQ0MDAwMDAvbGFuZTMiOwoJCXNhdGEgPSAiL2FtYmEvYWhj
aUBmZDBjMDAwMCI7CgkJc2RoY2kwID0gIi9hbWJhL21tY0BmZjE2MDAwMCI7CgkJc2RoY2kxID0g
Ii9hbWJhL21tY0BmZjE3MDAwMCI7CgkJc3BpMCA9ICIvYW1iYS9zcGlAZmYwNDAwMDAiOwoJCXNw
aTEgPSAiL2FtYmEvc3BpQGZmMDUwMDAwIjsKCQl0dGMwID0gIi9hbWJhL3RpbWVyQGZmMTEwMDAw
IjsKCQl0dGMxID0gIi9hbWJhL3RpbWVyQGZmMTIwMDAwIjsKCQl0dGMyID0gIi9hbWJhL3RpbWVy
QGZmMTMwMDAwIjsKCQl0dGMzID0gIi9hbWJhL3RpbWVyQGZmMTQwMDAwIjsKCQl1YXJ0MCA9ICIv
YW1iYS9zZXJpYWxAZmYwMDAwMDAiOwoJCXVhcnQxID0gIi9hbWJhL3NlcmlhbEBmZjAxMDAwMCI7
CgkJdXNiMCA9ICIvYW1iYS91c2IwQGZmOWQwMDAwIjsKCQlkd2MzXzAgPSAiL2FtYmEvdXNiMEBm
ZjlkMDAwMC9kd2MzQGZlMjAwMDAwIjsKCQl1c2IxID0gIi9hbWJhL3VzYjFAZmY5ZTAwMDAiOwoJ
CWR3YzNfMSA9ICIvYW1iYS91c2IxQGZmOWUwMDAwL2R3YzNAZmUzMDAwMDAiOwoJCXdhdGNoZG9n
MCA9ICIvYW1iYS93YXRjaGRvZ0BmZDRkMDAwMCI7CgkJbHBkX3dhdGNoZG9nID0gIi9hbWJhL3dh
dGNoZG9nQGZmMTUwMDAwIjsKCQl4aWxpbnhfYW1zID0gIi9hbWJhL2Ftc0BmZmE1MDAwMCI7CgkJ
YW1zX3BzID0gIi9hbWJhL2Ftc0BmZmE1MDAwMC9hbXNfcHNAZmZhNTA4MDAiOwoJCWFtc19wbCA9
ICIvYW1iYS9hbXNAZmZhNTAwMDAvYW1zX3BsQGZmYTUwYzAwIjsKCQl4bG54X2RwZG1hID0gIi9h
bWJhL2RtYUBmZDRjMDAwMCI7CgkJenlucW1wX2Rwc3ViID0gIi9hbWJhL3p5bnFtcC1kaXNwbGF5
QGZkNGEwMDAwIjsKCQl6eW5xbXBfZHBfc25kX2NvZGVjMCA9ICIvYW1iYS96eW5xbXAtZGlzcGxh
eUBmZDRhMDAwMC96eW5xbXBfZHBfc25kX2NvZGVjMCI7CgkJenlucW1wX2RwX3NuZF9wY20wID0g
Ii9hbWJhL3p5bnFtcC1kaXNwbGF5QGZkNGEwMDAwL3p5bnFtcF9kcF9zbmRfcGNtMCI7CgkJenlu
cW1wX2RwX3NuZF9wY20xID0gIi9hbWJhL3p5bnFtcC1kaXNwbGF5QGZkNGEwMDAwL3p5bnFtcF9k
cF9zbmRfcGNtMSI7CgkJenlucW1wX2RwX3NuZF9jYXJkMCA9ICIvYW1iYS96eW5xbXAtZGlzcGxh
eUBmZDRhMDAwMC96eW5xbXBfZHBfc25kX2NhcmQiOwoJCWZjbGswID0gIi9mY2xrMCI7CgkJZmNs
azEgPSAiL2ZjbGsxIjsKCQlmY2xrMiA9ICIvZmNsazIiOwoJCWZjbGszID0gIi9mY2xrMyI7CgkJ
cHNzX3JlZl9jbGsgPSAiL3Bzc19yZWZfY2xrIjsKCQl2aWRlb19jbGsgPSAiL3ZpZGVvX2NsayI7
CgkJcHNzX2FsdF9yZWZfY2xrID0gIi9wc3NfYWx0X3JlZl9jbGsiOwoJCWd0X2NyeF9yZWZfY2xr
ID0gIi9ndF9jcnhfcmVmX2NsayI7CgkJYXV4X3JlZl9jbGsgPSAiL2F1eF9yZWZfY2xrIjsKCQlk
cF9hY2xrID0gIi9kcF9hY2xrIjsKCQlNMDFfQVhJX0xQRDAgPSAiL00wMV9BWElfTFBEQDgwMDAw
MDAwIjsKCQlNMDJfQVhJX0xQRDEgPSAiL00wMl9BWElfTFBEQDgwMDEwMDAwIjsKCQlNMDNfQVhJ
X0xQRDIgPSAiL00wM19BWElfTFBEQDgwMDIwMDAwIjsKCQlNMDBfQVhJX1BMMyA9ICIvTTAwX0FY
SV9QTEBhMDAwMDAwMCI7CgkJTTAxX0FYSV9GUEQ0ID0gIi9NMDFfQVhJX0ZQREBhMDAxMDAwMCI7
CgkJTTAxX0FYSV9QTDUgPSAiL00wMV9BWElfUExAYTAwMjAwMDAiOwoJCU0wMl9BWElfRlBENiA9
ICIvTTAyX0FYSV9GUERAYTAwMzAwMDAiOwoJCU0wMl9BWElfUEw3ID0gIi9NMDJfQVhJX1BMQGEw
MDQwMDAwIjsKCQlNMDNfQVhJX0ZQRDggPSAiL00wM19BWElfRlBEQGEwMDUwMDAwIjsKCQlNMDNf
QVhJX1BMOSA9ICIvTTAzX0FYSV9QTEBhMDA2MDAwMCI7Cgl9Owp9Owo=

--_009_VI1PR05MB4430B62D7D79E47B784FA34C893F9VI1PR05MB4430eurp_--


From xen-users-bounces@lists.xenproject.org Tue Jun 01 13:22:02 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Jun 2021 13:22:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.134860.250812 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo4Kp-0005Tb-J1; Tue, 01 Jun 2021 13:21:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 134860.250812; Tue, 01 Jun 2021 13:21:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo4Kp-0005TT-FG; Tue, 01 Jun 2021 13:21:31 +0000
Received: by outflank-mailman (input) for mailman id 134860;
 Tue, 01 Jun 2021 13:21:30 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=SbO/=K3=gmx.de=mangel@srs-us1.protection.inumbo.net>)
 id 1lo4Ko-0005TN-6Z
 for xen-users@lists.xenproject.org; Tue, 01 Jun 2021 13:21:30 +0000
Received: from mout.gmx.net (unknown [212.227.17.21])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5c9a5d64-64c4-4c80-9950-d8f943820ab2;
 Tue, 01 Jun 2021 13:21:28 +0000 (UTC)
Received: from mail.home.chao5.net ([91.64.145.10]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MPXhK-1m0ltN01oo-00McMd
 for <xen-users@lists.xenproject.org>; Tue, 01 Jun 2021 15:21:27 +0200
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c9a5d64-64c4-4c80-9950-d8f943820ab2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;
	s=badeba3b8450; t=1622553687;
	bh=nZeFATPaNk4xhWKGJTNVl71QvMdgbkd1CMOLcSKnKP0=;
	h=X-UI-Sender-Class:Date:From:To:Subject;
	b=IpvetrbwCZ+OGPn3cAzB0sx5CEouSW74QoVmXxI0OFeirZi+DZ6dK7kMFoiGRP0NK
	 uEHc+xGYztpoyy7rjf9+fwEckBGslQExI7UaahbeFKzaJ1kQixKD1HJX+mngG5xdFH
	 MydttH/gq42hqatGALzetYgir/nidOQ7qi38UJRs=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
MIME-Version: 1.0
Date: Tue, 01 Jun 2021 15:21:09 +0200
From: Chris <mangel@gmx.de>
To: xen-users@lists.xenproject.org
Subject: optimized conf for Win!= DomU
Message-ID: <6495b90a87e8fe7af760c9075f7b4546@gmx.de>
X-Sender: mangel@gmx.de
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: quoted-printable
X-Synology-MCP-Status: no
X-Synology-Spam-Flag: no
X-Synology-Spam-Status: score=-0.1, required 5, __TO_NO_BRKTS_FREEMAIL 0, FROM_HAS_DN 0, FREEMAIL_FROM 0.001, TO_MATCH_ENVRCPT_ALL 0, MIME_GOOD -0.1, TO_DN_NONE 0, RCPT_COUNT_ONE 0, SUBJECT_HAS_EXCLAIM 0, RCVD_COUNT_ZERO 0, FROM_EQ_ENVFROM 0, MIME_TRACE 0, FREEMAIL_ENVFROM 0, __NOT_SPOOFED 0, MID_RHS_MATCH_FROM 0, __KHOP_NO_FULL_NAME 0, NO_RECEIVED -0.001
X-Synology-Virus-Status: no
X-Provags-ID: V03:K1:rwsSQ59tgOHB6VhTtbwmBlVH9SODRwZVsqsGyem4XjdfpCTVrnN
 LGD8rGuQjApanA8uGHXwFd4wjeOaqeRn9DQLI24USqWOnmvk7f7LQ4PtiwG0BIz9M4de1Ym
 gNP+2Cw5avzxFeEP5/WGKMAWIty9E9duHdv8E59TTcPYTbNW66K97lM3B6DDNIEP9e9o3ql
 HzgtGCfeXONRzSbvaIuLg==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:6bAUZ8rdY4g=:fvpcVnAyASXzJrlhcQ9Ae+
 IOyh9h+RsrKL0V0DVIZtxnje0QacyDPHpHtV6omslOGjIzRp3AX/KjPR/p+2LZUqPRQAYcbPQ
 93ZC4RruNJnkmMlDfigBTZJIMoSxkpfE7K7Nxeao0eVhl8o09v5lUJgozfnzIbt+juJhKq6Mm
 DjCerYLceXu7nOAdHsCOX1vFPo/KNnzqPNY49kQ2PvPfcZyZoAo9XIPCfxDovngoD9k05Pcku
 jgzSnamiSCVtpsZYK62Jf9Zf2BgKacjbn7VgEV+KL5BXCtOttQeF2XZryaXh6ei4tv1GA0Fc1
 rNmtg1oGBXFqplLK0x+xMiD8Sr8DYPdaTFe303BU2v0WmDZGYWGyqgxHtL2aV+lqjrcXPiLdd
 vvcb8NVYjtKUnXBAv4g/EXC+h3yeCYo3Un4FcBU8wpNdFKYiS66YFV8Mt0yLEWmmH2ChEH+lU
 QarsRRru4sEQ0ZoZmzNUo/Qs6PZ7mM9+1vsWOOtqCKU15VEko+LFSQ7D0i/2B4VDCiE+WgwfK
 7/+BU3DQaGqfVwnYhdmmD/YEsHbCcO/G/6cRPTPe+r7pRcz75LDa1VqLUhmn4sWB9uUFcSe/n
 CTmkME4lXpAEi4nuyRP8wH5+x4UzOAHULJPYM3jHiBfzdd96aBJVHH2uFSQCT6DyZCt+HLUSY
 f9eOLn8dLHuRyhwUiKSaX0AG+ray5sjhXtPKRB+p4ERQ7uOF1qhJanMjRWUI7/E2iUobrx0fQ
 7ild42bQPYXetkpOG9oQofKUFpEVJ7tGDAW87/GOVz6R2FXLs2N5HZ3lOC5IvK/rUI/fNLau4
 4dYp0HKb3AWMtL+dglKPcM0G78KIcN0XNunBhtxFe8FWHamUBbFa5KmS5+sQiTcttvPWxpjtA
 eJ3DZ2dVo07Xeck/InTm5tFCDIuDILXc96DZae4dkA4tEgujZHXnGdqMiAMGpr46VTjJiqKOz
 +4kiLo3LSeV39WK9WhmeKE5kquPg/rqxeXNq30ZASsZ69q09/D0zR7CtfPRXROAPqJHe4uP7N
 fsKFJnkePLSLa09BuV5LJEjWdbo+QlyqkHPv/quKQ8LBjhNE23Y/cefk8tqZa7Rd3Cn1fwaVF
 fDG5ZYmI2QpvbWw/+x7MTeV82LDqsQVNAE6

Hi,

I use xen with win10 and a passed-through rtx2070 for gaming.
At the moment use this config:

name =3D "marax"
uuid =3D "e0de3cb7-3937-417d-8d63-b0993b377b6a"
maxmem =3D 32768
memory =3D 32768
vcpus =3D 16
rtc_timeoffset =3D 0
localtime =3D 1
on_poweroff =3D "destroy"
on_reboot =3D "restart"
on_crash =3D "restart"
boot =3D 'd'
vif =3D [
"mac=3D00:16:3e:05:01:10,bridge=3Dxenbr5,script=3Dvif-bridge,model=3De1000=
" ]
parallel =3D "none"
serial =3D "none"
type =3D "hvm"
loader =3D "/usr/lib64/xen/boot/hvmloader"
bios =3D "ovmf"
device_model_version =3D "qemu-xen"
bios_path_override =3D "/usr/lib64/xen/boot/OVMF.fd"
disk =3D [ "phy:/dev/mapper/marax_c,hda,rw",
"phy:/dev/vg_lilith/lv_marax_d,hdb,rw" ]
max_grant_frames =3D "128"
pci =3D [ "01:00.0", "01:00.1", "01:00.2", "01:00.3", "00:1f.3" ]
pci_permissive  =3D 1
keymap =3D "de"
vnclisten=3D"0.0.0.0:2"
pci_power_mgmt=3D1
xen_platform_pci=3D1
pci_msitranslate=3D1
viridian=3D1
hpet=3D1
acpi=3D1
apic=3D1
pae=3D1
videoram=3D16
stdvga=3D1

it works nice but does someone see something in the config what I can
make better? For gaming there is never enough optimizing and power :D

Thanks in advance!
=2D-
=2D-----
Greetz


From xen-users-bounces@lists.xenproject.org Tue Jun 01 16:07:57 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Jun 2021 16:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.134952.250944 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo6v9-0002hW-E4; Tue, 01 Jun 2021 16:07:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 134952.250944; Tue, 01 Jun 2021 16:07:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo6v9-0002hP-9o; Tue, 01 Jun 2021 16:07:11 +0000
Received: by outflank-mailman (input) for mailman id 134952;
 Tue, 01 Jun 2021 16:07:09 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OJYT=K3=evoleotech.com=prem.harikrishnan@srs-us1.protection.inumbo.net>)
 id 1lo6v7-0002hH-9C
 for xen-users@lists.xenproject.org; Tue, 01 Jun 2021 16:07:09 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (unknown
 [40.107.22.129]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id e1e858db-fb24-4ba4-8415-4baf8cb89ffd;
 Tue, 01 Jun 2021 16:07:04 +0000 (UTC)
Received: from VI1PR05MB4430.eurprd05.prod.outlook.com (2603:10a6:803:46::26)
 by VE1PR05MB7566.eurprd05.prod.outlook.com (2603:10a6:800:1ad::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.24; Tue, 1 Jun
 2021 16:07:01 +0000
Received: from VI1PR05MB4430.eurprd05.prod.outlook.com
 ([fe80::ed7b:e5f9:618a:3eea]) by VI1PR05MB4430.eurprd05.prod.outlook.com
 ([fe80::ed7b:e5f9:618a:3eea%3]) with mapi id 15.20.4173.030; Tue, 1 Jun 2021
 16:07:01 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: e1e858db-fb24-4ba4-8415-4baf8cb89ffd
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Y5E3GAU2jeCnIGS41XFULOp51p9aqR1/oZ1Vc7f+/M2scmil7fCsY7DRcrmFGSSmy3lvkVXXrNyuocVSeoZGFNRzlUnbda+soCXpWeNHl0s7Z/X2LoZjv7+nsIMqE9e2wBt3Z6GG5PWtca4lQBdg9iviSLQllPqUDj8ghridaq6YJ9N4ckLWKj8ix8HdAiFM9jUpng2BD72UHKbx9e6fSA5lJOceI4jVbj9Cjtc+Ab1Z5LKQJKeQ1lZkTr4PfNvC5JwxfioZcmXPqb4pzoobx/avz73lARmFyvbwUH3DTpCF3+Ae1qsZz6J5PKGed6r7Zok93rRr1xuZ5nwX/7J/GA==
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-SenderADCheck;
 bh=Z8U6q2PxfvHSDAQv3MzXiKFnwM0QjE6uP5XeE8XSitM=;
 b=n4Fr1e6SsG079dIUtxsj8jpoCC7Opm6QSeQn0mUbEkIx8qPXg2lMrqQWoYtXFWet5gLEKzf1s3dtANohTEaaeKgt2bpIJNZsDfRaHz5QFpX5L9ZiXKUZac0mOZiJ9T/5563exFb4LjiamhHwXiaopDBNUbXflUOLtOGbZm6Xaq/eMgtPSDwj07Z9WqU9bBgO/2MivYFGZNWn+XsgHvdQpZp6DslrUSYHPLVZbFEAs8JDFnGKz/hnCZnmpuOzC/C/KYqrraEK40hEFNW0AqBQV3VpJnnwfbQRnhJ28Nn6ct1DWrdMsv/RUrA9s4YFwUDha7fSjT728Vlijz/sqUzY5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=evoleotech.com; dmarc=pass action=none
 header.from=evoleotech.com; dkim=pass header.d=evoleotech.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=evoleotechnologies.onmicrosoft.com;
 s=selector2-evoleotechnologies-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Z8U6q2PxfvHSDAQv3MzXiKFnwM0QjE6uP5XeE8XSitM=;
 b=NyHF1FNGS6qr9Lt58bSRJ6Jr51L/zDmqn0Maz6kMsx6+FvoHIS/NSRgZDp8Oer+QJPHjsHcGuK4NQcS0xsq6yVgHExDb9mcrFLleSYo29b6KCmtLkvLhiEzqnYzX+ynw9oD3iGNsfEUqn0MkrfV95Fe2TcHbwfae/Mz4dOiFbH8=
From: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
To: Mubin Usman Sayyed <MUBINUSM@xilinx.com>, Stefano Stabellini
	<stefanos@xilinx.com>
CC: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>, Jovita
 Castelino <JOVITAC@xilinx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL masters
 in ZCU102 dev kit
Thread-Topic: Help: Information required for AXI DMA passthrough for PL
 masters in ZCU102 dev kit
Thread-Index:
 AQHXOqMAPewhx/0ZVE2fbco7T/GOXKrdFmqAgACD+ICABAVYgIABrlVrgABJdgCAAATIt4AADpaAgARL642AAI9eAIABDuwsgAAXkYCADm9DhoAAJeiAgADiys+AAEjyAIAE2MzdgABzowCAAM/6Lg==
Date: Tue, 1 Jun 2021 16:07:01 +0000
Message-ID:
 <VI1PR05MB44308D16502AA518E05B210C893E9@VI1PR05MB4430.eurprd05.prod.outlook.com>
References:
 <VI1PR05MB4430D5035127951DEC282E5189429@VI1PR05MB4430.eurprd05.prod.outlook.com>
 <VI1PR05MB44301EF272123606BA726C4989509@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105141402210.14426@sstabellini-ThinkPad-T480s>
 <DB7PR05MB4428427AC94C07C59D139FA489509@DB7PR05MB4428.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105141509220.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430B2C2C3FAC23D77021605892D9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105171729480.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB44301C4198B1E9EF7FD8864A892C9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105181109020.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430F091D37D614EFAD15C6E89239@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105271745210.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB443063BF7A7C514C1C9C37C489229@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105281140360.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430B62D7D79E47B784FA34C893F9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9@BYAPR02MB4278.namprd02.prod.outlook.com>
In-Reply-To:
 <BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9@BYAPR02MB4278.namprd02.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: xilinx.com; dkim=none (message not signed)
 header.d=none;xilinx.com; dmarc=none action=none header.from=evoleotech.com;
x-originating-ip: [80.81.14.67]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: e5a89b7c-7d86-4a34-9d0f-08d925174a86
x-ms-traffictypediagnostic: VE1PR05MB7566:
x-microsoft-antispam-prvs:
 <VE1PR05MB756675C2EBAA6468EC527A82893E9@VE1PR05MB7566.eurprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:1060;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 6D1fuexZZNmzaXW+fLHPYo14AfmRbILaxlGqzth/RjygoSPJ7t7upeViSiSGTUJxOHBV78hQ7R/2nZ4PHX4xbDs1Is0sOEwji+7ie1sCa7K2/YHXB7hh00v1cm9Q1iD05XtVzaJBJXP+Y89PJGmPpJzwuwntFvBHqu/6NP5DsbT9lrEPtiydI2yDkgk99NNerQMDsCAGfwTHT6ExYT7XPHR7IPzPG8Kf6uOyYjs6zQLWbXbyMIc9WqMPlm4nvhz/ysrU1ahj8/hw1IDlbeei4JkDoz2Fn6mauo+kwlkeGVxPkfjpPzsOYEZY0C400xVPrNBM9P8BGkxAe8vc4EVGSoahyqibSejz2d1kb52wX4dEeubQYN73nacy+FEp466QJaRsU/ndcsjitI/BodnYFfNgqVVx8iDCKQzOHrcluLx/5LRQ029HneHq1B9fnfYNEwG5CSwqNMU1SgxmimJkLfx5EJRqZh92jTcFwqPK64c0oHkx0n4lJOpIewVh5b5om8Ng6JJvBrcEqTn4zpP90DOGoyVWL48IpzBbwZndhqMPkWXBaNL71qIqgPw0+TGaszfzpVJaKInd169F3+7fe9PC7ESCA3BcbcYM6xGCIIhjJRQcHiP58rhonZ3fBvgkuiYtCcywGa/KjO3ydgLzkGjXh42/BEmmY1de+LlpMizD31xd53dFSLMJN5Q1iOaBVyLXa32O4hO0HIrOkk/n7Q==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR05MB4430.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(376002)(396003)(39830400003)(346002)(136003)(64756008)(66446008)(478600001)(8676002)(76116006)(33656002)(66556008)(66476007)(66946007)(55016002)(45080400002)(5660300002)(44832011)(6506007)(8936002)(19627405001)(2906002)(30864003)(86362001)(53546011)(316002)(54906003)(4326008)(110136005)(7696005)(9686003)(166002)(71200400001)(122000001)(38100700002)(26005)(21615005)(83380400001)(19627235002)(966005)(186003)(52536014)(579004);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata:
 =?us-ascii?Q?4wW3DMyJa94Qi3ZjU2wy1Wk/YQoaM2+Dhk2VrZlKYRZOtApg2j+uISuOKld/?=
 =?us-ascii?Q?Qybzg4kl6uDDeIN8kUBrXh2fAOUgYmdUA9PxskGGl42IhW3jXlbevr2bBTOl?=
 =?us-ascii?Q?DgulYFZGq5A/bcsvSr3HLgIi7TWDo5DAHYGPgZCRJnGF6KTfZgUplWhF17Hl?=
 =?us-ascii?Q?caP4mkG8hLQ53ZI0uJH8I7dD/wXJii/XoxhCnfKbQqy1WvU2VIIYVnhuxpDS?=
 =?us-ascii?Q?KdMlCj+koAIy9w8ceis+1LgDVL4mFlpBZCIZ+3j1usvp1H7vl4dp17ywV6al?=
 =?us-ascii?Q?oefnBxgh/CkGjadZe2GdrJS4FzzOI4VfijJK3Z4m61fWDePTufb7+KJyx27x?=
 =?us-ascii?Q?ivfLXAvzxO+HayJ9d4ay7iV6DOca3yt4xkPYOmCXmiHvlDdFxekTZEJfObPN?=
 =?us-ascii?Q?AEIGimgRg6f7H9VMzIopyDEF3MfVEg6HURgVYTY+gOpvdL97mB2GPm2cMoCW?=
 =?us-ascii?Q?QB6FnfTEUFkMUPtxSrV7BMi0hUagpBRdgrpC2flBzB7GU46EeBcBn8ZC+77M?=
 =?us-ascii?Q?km8lnbNQrL5uQ4x9RTT0mOoxqhP5S5MmfXkmuiwjuZFwKtJTo0tR8ZAQGRAU?=
 =?us-ascii?Q?iNDAAd+DLfSNdTPdT9kIqMSwLAh/7J6dTTdKqroZZgkdduYO2o65g3GNuRLf?=
 =?us-ascii?Q?dZdGp2XhzF4CqlGTuXjyI8ecSCTSUy6CWWIgEKCKXzdA3MKGHmi6yLyz0md8?=
 =?us-ascii?Q?zW5yr3dUXAFCn7cMH2mJVTFYupiRHBWsD8wWug3i/GN2HlHa/wxqFfL1HpnK?=
 =?us-ascii?Q?QfJVE8cNOB7rMEKX1FNhKBETZOto8zq3CLPsjbIQlJH6rQ+eLczZ5Z32BcEk?=
 =?us-ascii?Q?CPgnvavf57f258Ov/5tgibW4u09+eMx94fGwd8RtyfPvA8qfF6E3z219y4N0?=
 =?us-ascii?Q?8QWZNcADx2hdVJeGF6twkvCSNl5kq7vCmNuY36p5rW0qF5da1m9rYEB2WzVi?=
 =?us-ascii?Q?u47Ht1HdzPm1UgMrF5wrJDYER/nlOz50UGb/AFWsXxlTCLprzy6bWftyko1H?=
 =?us-ascii?Q?FVv9/439CnRxET5w3IdX13yy8LB9pWDJUoO1B/ryCvuRgZKuYnAcOAX+yB34?=
 =?us-ascii?Q?krwzXkCOekH0De2e+SmqT7+M63eY0Jy30jcEhGRj91uL6tXwUQQym1HQBZoy?=
 =?us-ascii?Q?CKBfOgiteq0RbGLXcmwVdPtbUqLs9taK6kUOSMcqhiMxzo4C4GkHY1EtVHxd?=
 =?us-ascii?Q?6Argn+Px6HAeXoZBE9d5Lv/0UFG9yibZ7WhoGiavwUVU6/LQ1snlEfJpgNbT?=
 =?us-ascii?Q?kZ1k9m7+3IXrlCM1Lp8JAj/HgSNOfkmhx0nNOsgE69JGB6EZtGefdzCxZvQ4?=
 =?us-ascii?Q?A9g=3D?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative;
	boundary="_000_VI1PR05MB44308D16502AA518E05B210C893E9VI1PR05MB4430eurp_"
MIME-Version: 1.0
X-OriginatorOrg: evoleotech.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR05MB4430.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e5a89b7c-7d86-4a34-9d0f-08d925174a86
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jun 2021 16:07:01.2438
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 34ebafdc-9323-4bfe-8f24-6bb9f135b0a9
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: dcOuRp+6dZ52kEJZgosOzeLy770tn5JprLH0ElTalvl1cEyPBcLH7bBHr08zH1a6DO+mlK9QvNbz9CwB2mp/RyKG+O37waR2zGqmNG+XUJyFoElwN8Pc4PKNVRiA4le9
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR05MB7566

--_000_VI1PR05MB44308D16502AA518E05B210C893E9VI1PR05MB4430eurp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Stefano and Mubin,

Thank you very much for helping me setup up FreeRTOS and baremetal guests, =
everything works as expected and I also get expected performance in both ba=
remetal and hypervisor guests. Thank you again for your prompt support duri=
ng the past few weeks.

Best Regrards,
Prem
________________________________
From: Mubin Usman Sayyed <MUBINUSM@xilinx.com>
Sent: Tuesday, June 1, 2021 05:38
To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>; Stefano Stabellin=
i <stefanos@xilinx.com>
Cc: xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; Jovita=
 Castelino <JOVITAC@xilinx.com>
Subject: RE: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit


In case of FreeRTOS,  you need to use APIs from FreeRTOS port for interrupt=
 handling  (https://github.com/Xilinx/embeddedsw/blob/master/ThirdParty/bsp=
/freertos10_xilinx/examples/freertos_intr_example.c#L192 and line 194). Ple=
ase make sure that you are taking care of that in DMA interrupt example .



Thanks,

Mubin



From: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
Sent: Tuesday, June 1, 2021 2:48 AM
To: Stefano Stabellini <stefanos@xilinx.com>
Cc: xen-users@lists.xenproject.org; Jovita Castelino <JOVITAC@xilinx.com>; =
Mubin Usman Sayyed <MUBINUSM@xilinx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit





Hi Stefano and Mubin,

Thank you very much for your replies.

@Stefano Stabellini<mailto:stefano.stabellini@xilinx.com> Sorry to bother y=
ou again, and thank you for pointing this out, the TTC0 is by default enabl=
ed for FreeRTOS to generate ticks, although this says only for R5 core, i w=
ould have never figured this out. As soon as I added the irqs and iomem and=
 gave a xen passthrough in the xen.dtsi as you have suggested, FreeRTOS gue=
st started working for other peripherals except for my DMA (FreeRTOS guest =
does not work with interrupt and DMA).



I can see my DMA is enabled because i have LEDs configured to blink for eve=
ry interrupt I get from the PL. I don't see my interrupts being processed, =
but when I destroy the guest, I get this output periodically when an interr=
upt occurs.



(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000

(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000

(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000



>From section 3.6 of the wiki https://xilinx-wiki.atlassian.net/wiki/spaces/=
A/pages/18842066/Xen+and+PL+Masters

Xen and PL Masters - Xilinx Wiki - Confluence<https://xilinx-wiki.atlassian=
.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters>

3.4 Stream IDs in the Device Tree. For Xen based systems the stream IDs of =
PL masters must be added to the Linux Dom0 device tree. Automated device tr=
ee generation does not generate the stream IDs for the PL masters so that t=
he user must add them into the device tree manually.

xilinx-wiki.atlassian.net

The fault indicates an unidentified stream ID has been received by the SMMU=
 as shown in the GFSR register. The GFSYNR1 register contains the stream ID=
 that was unidentified. A stream ID of 0xE80 was unidentified in the above =
fault.



But I think i have already added that in my smmu and iommu in xen.dtsi beca=
use my baremetal application works well as expected. I have attached my xen=
.dtsi, system.dtsi, baremetal.cfg(working) and freertos.cfg(not working).

What could I be missing here? Do I have to enable the ttc0 in the device tr=
ee?

Also what does (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq: =
99990 KHz mean when XEN boots up?

Thanks, I look forward for your reply.



Best Regards,

Prem





________________________________

From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.stab=
ellini@xilinx.com>>
Sent: Friday, May 28, 2021 20:43
To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.harikri=
shnan@evoleotech.com>>
Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.stabel=
lini@xilinx.com>>; xen-users@lists.xenproject.org<mailto:xen-users@lists.xe=
nproject.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xenpro=
ject.org>>; JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com> <JOVITAC@xilinx.c=
om<mailto:JOVITAC@xilinx.com>>; MUBINUSM@xilinx.com<mailto:MUBINUSM@xilinx.=
com> <MUBINUSM@xilinx.com<mailto:MUBINUSM@xilinx.com>>
Subject: Re: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit



>From the gpa address, it looks like FreeRTOS is trying to access the TTC
timer? If you look at device tree, the corresponding node is
timer@ff110000.

If FreeRTOS is configured to access the TTC timer, then you need to
assign it to it. Did you assign the TTC timer to the FreeRTOS domU by
any chance?

You can do that by adding:

irqs =3D [ 68, 69, 70 ]
iomem =3D [ "0xff110,1" ]


On Fri, 28 May 2021, Prem Harikrishnan wrote:
> Hi Stefano,
> Thanks for your reply. I am pretty sure I followed the steps you mentione=
d below to run the FreeRTOS hello world example. I already added
> printfs and i can see XEN cannot start the scheduler and i get the follow=
ing out put on XEN.
>
> Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]
> (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D2 memfl=
ags=3D0xc0 (0 of 64)
> (XEN) memory_map:add: dom2 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0
> (XEN) sched_null.c:344: 1 <-- d2v0
> (XEN) traps.c:1973:d2v0 HSR=3D0x93820007 pc=3D0x00000040012b08 gva=3D0xff=
11000c gpa=3D0x000000ff11000c
>
>
> I also see that according to this article
> https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as=
-a-Xen-Virtual-Machine/ba-p/947030
> [52662iFAD1733707609204?v=3Dv2]
> Partner: FreeRTOS as a Xen Virtual Machine - Community Forums
> Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks Wh=
at is FreeRTOS? The FreeRTOS kernel is a market leading real-time
> operating system for embedded systems. As embedded applications grow in c=
omplexity, there is a growing need for a lightweight kernel
> capable of task scheduling...
> forums.xilinx.com
> FreeRTOS does not run out of the box for XEN, although the article is 2 y=
ears old, I am not sure if there are any updates on this after
> that. Can you please confirm?
>
> Thanks and Best Regards,
> Prem
>
> _________________________________________________________________________=
__________________________________________________________________
> From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.st=
abellini@xilinx.com>>
> Sent: Friday, May 28, 2021 02:51
> To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.harik=
rishnan@evoleotech.com>>
> Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.stab=
ellini@xilinx.com>>; xen-users@lists.xenproject.org<mailto:xen-users@lists.=
xenproject.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xenp=
roject.org>>; JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>
> <JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>>; MUBINUSM@xilinx.com<mail=
to:MUBINUSM@xilinx.com> <MUBINUSM@xilinx.com<mailto:MUBINUSM@xilinx.com>>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL ma=
sters in ZCU102 dev kit
> +Mubin
>
>
> Hi Prem,
>
> Did you make sure to build FreeRTOS as "hypervisor guest"? I think
> FreeRTOS is built to run at EL3 by default so if that is not changed
> there are errors when run on any hypervisor. It is possible to build
> FreeRTOS to run on Xen but it requires a couple of manual steps:
>
> - source settings64.sh from Vitis builds
> - xsct
> - set WORKSPACE .
> - setws -switch $WORKSPACE
> - app create -name freertos-hello-world -template {FreeRTOS Hello World} =
-proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx
> - bsp config stdin psu_uart_1
> - bsp config stdout psu_uart_1
> - bsp config hypervisor_guest true
> - Go to application source path and modify the linker script start addres=
s to 0x40000000,
> - app build -name freertos-hello-world
> - Run command to generate BIN file from executable "aarch64-linux-gnu-obj=
copy -O binary --gap-fill 0  <elf path> BOOT.BIN"
>
> The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,
> might be able to provide additional info.
>
>
>
> On Thu, 27 May 2021, Prem Harikrishnan wrote:
> > Hi Stefano,
> > Sorry to bother you again.
> > I am currently trying to run my custom IP which sends periodic dma inte=
rrupts to the PS with cache coloring enabled. I have now compiled
> my
> > guest running with FreeRTOS and it generates a trap.
> > Petalinux and VITIS IDE Version is 2020.2.
> >
> > Please find the log attached. After the trap occurs, for every interrup=
t XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context fault:
> > fsr=3D0x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1
> >
> > root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing config fro=
m apu_freertos.cfg
> > (XEN) Dom1 colors: [ 8 ]
> > (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D1 mem=
flags=3D0xc0 (0 of 64)
> > (XEN) memory_map:add: dom1 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0
> > (XEN) memory_map:add: dom1 gfn=3Da0010 mfn=3Da0010 nr=3D1 cache=3D0
> > (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000
> > (XEN) sched_null.c:344: 1 <-- d1v0
> > (XEN) traps.c:1973:d1v0 HSR=3D0x93820007 pc=3D0x00000040013188 gva=3D0x=
ff11000c gpa=3D0x000000ff11000c
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> >
> > The same application works as expected without FreeRTOS, i.e as a barem=
etal guest. I look forward for your comment on this.
> >
> > Although i see performance degradation, normally i can measure delta ti=
me for each interrupt configured to 1ms (without XEN), with XEN
> for
> > the same measurement shows 16 ms for each interval (but the performance=
 is not a priority for now).
> > Thanks and Best Regards,
> > Prem
> >
> >________________________________________________________________________=
__________________________________________________________________
> _
> > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.=
stabellini@xilinx.com>>
> > Sent: Tuesday, May 18, 2021 20:09
> > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.har=
ikrishnan@evoleotech.com>>
> > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.st=
abellini@xilinx.com>>; xen-users@lists.xenproject.org<mailto:xen-users@list=
s.xenproject.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xe=
nproject.org>>;
> JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>
> > <JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>>
> > Subject: Re: Help: Information required for AXI DMA passthrough for PL =
masters in ZCU102 dev kit
> > Great to hear! Thank you for reporting back.
> >
> >
> > On Tue, 18 May 2021, Prem Harikrishnan wrote:
> > > Dear Stefano,
> > > Thank you very much for your guidance and support. I finally fixed th=
e issue. I made an error in base memory address like you pointed
> > out.
> > > I actually modified the base address correctly to 0x40000000 but the =
default C code had an additional offset of 0x1100000 , and the
> DomU
> > > memory allocated was only 8MB. I either had to change the offset or a=
llocate more memory to the DomU guest which i missed until you
> > pointed
> > > out. Additionally i had to set to AxPROT bits to 0x2 in Vivado and th=
e SMID required is 0xE80.
> > >
> > > Thanks again i was able get my custom IP also working as an AXI maste=
r from PL.
> > >
> > > Best Regards,
> > > Prem
> > >
> >>_______________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefan=
o.stabellini@xilinx.com>>
> > > Sent: Tuesday, May 18, 2021 02:35
> > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.h=
arikrishnan@evoleotech.com>>
> > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.=
stabellini@xilinx.com>>; Brian Woods <brian.woods@xilinx.com<mailto:brian.w=
oods@xilinx.com>>; Julien Grall <julien@xen.org<mailto:julien@xen.org>>; St=
efano
> > > Stabellini <sstabellini@kernel.org<mailto:sstabellini@kernel.org>>; x=
en-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org> <xen-u=
sers@lists.xenproject.org<mailto:xen-users@lists.xenproject.org>>; fnuv@xil=
inx.com<mailto:fnuv@xilinx.com>
> <fnuv@xilinx.com<mailto:fnuv@xilinx.com>>;
> > > edgari@xilinx.com<mailto:edgari@xilinx.com> <edgari@xilinx.com<mailto=
:edgari@xilinx.com>>; bwoods288@gmail.com<mailto:bwoods288@gmail.com> <bwoo=
ds288@gmail.com<mailto:bwoods288@gmail.com>>; Renato Costa Amorim <renato.a=
morim@evoleotech.com<mailto:renato.amorim@evoleotech.com>>;
> > > JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com> <JOVITAC@xilinx.com<mai=
lto:JOVITAC@xilinx.com>>
> > > Subject: Re: Help: Information required for AXI DMA passthrough for P=
L masters in ZCU102 dev kit
> > > Your configuration looks correct as far as I can tell.
> > >
> > > You need dtdev because it triggers the SMMU configuration for your PL
> > > block. You don't need device_tree because your baremetal application =
is
> > > not going to read it, but it is not going to cause any issues either.
> > >
> > > When you say "the execution does not complete the loop at line 244", =
it
> > > means that you see the execution entering the loop and then never
> > > leaving? Like an infinite loop?
> > >
> > > If so, then I imagine the issue could be that the application is
> > > crashing when trying to access TxBufferPtr, which is pointing to
> > > TX_BUFFER_BASE, which is:
> > >
> > >
> > > #ifndef DDR_BASE_ADDR
> > > #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \
> > >                  DEFAULT SET TO 0x01000000
> > > #define MEM_BASE_ADDR           0x01000000
> > > #else
> > > #define MEM_BASE_ADDR           (DDR_BASE_ADDR + 0x1000000)
> > > #endif
> > >
> > > #define TX_BUFFER_BASE          (MEM_BASE_ADDR + 0x00100000)
> > >
> > >
> > >
> > > Can you double check that TX_BUFFER_BASE is pointing to a correct
> > > address? Memory starts at 0x40000000 in a Xen DomU.
> > >
> > > Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?
> > >
> > >
> > > On Mon, 17 May 2021, Prem Harikrishnan wrote:
> > > > Hi Stefano,
> > > > Thanks again for your reply and your suggestion.  I did try to repl=
ace the Xil_DCacheFlushRange with Xil_DCacheInvalidateRange(works
> > only
> > > > in EL3), I added printfs to debug, i can see that the execution doe=
s not complete the loop at line 244
> > > > https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPL=
ib/drivers/axidma/examples/xaxidma_example_simple_poll.c  and
> > > > Xil_DCacheFlushRange is not reached. Please find attached my xen bo=
otlog.txt.
> > > > I am still unable to find out why??
> > > >
> > > > Can you please atleast verify that my xen.dtsi, and pl.dtb is corre=
ct? and do i need dtdev and device_tree in my guest config file
> when
> > > it
> > > > is already added to xen.dtsi?
> > > >
> > > > Best Regards,
> > > > Prem
> > > >
> > > >
> >>>______________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stef=
ano.stabellini@xilinx.com>>
> > > > Sent: Saturday, May 15, 2021 00:25
> > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem=
.harikrishnan@evoleotech.com>>
> > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefan=
o.stabellini@xilinx.com>>; Brian Woods <brian.woods@xilinx.com<mailto:brian=
.woods@xilinx.com>>; Julien Grall <julien@xen.org<mailto:julien@xen.org>>; =
Stefano
> > > > Stabellini <sstabellini@kernel.org<mailto:sstabellini@kernel.org>>;=
 xen-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org> <xen=
-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org>>; fnuv@x=
ilinx.com<mailto:fnuv@xilinx.com>
> > <fnuv@xilinx.com<mailto:fnuv@xilinx.com>>;
> > > > edgari@xilinx.com<mailto:edgari@xilinx.com> <edgari@xilinx.com<mail=
to:edgari@xilinx.com>>; bwoods288@gmail.com<mailto:bwoods288@gmail.com> <bw=
oods288@gmail.com<mailto:bwoods288@gmail.com>>; Renato Costa Amorim <renato=
.amorim@evoleotech.com<mailto:renato.amorim@evoleotech.com>>;
> > > > JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com> <JOVITAC@xilinx.com<m=
ailto:JOVITAC@xilinx.com>>
> > > > Subject: Re: Help: Information required for AXI DMA passthrough for=
 PL masters in ZCU102 dev kit
> > > > Hi Prem,
> > > >
> > > > Some older versions of Xil_DCacheFlushRange were implemented using
> > > > deprecated set/way instructions that are known to cause problems in
> > > > virtualized environments.
> > > >
> > > > More recent implementations use the "dc civac" intruction that shou=
ldn't
> > > > have any issues.
> > > >
> > > > Can you double-check that you are calling the 64-bit version implem=
ented
> > > > by CIVAC?
> > > >
> >>>https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb18eda0182f3=
577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#L4
> 1
> > 4
> > >
> > > >
> > > >
> > > >
> > > >
> > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > Hi Stefano,
> > > > > Thanks for your reply. Yes the axidma application is a baremetal =
application from the xilinx vitis ide example.
> > > > > Also yes, I have already run hello world as DomU guest, with UART=
1.
> > > > >
> > > > > I am using the simple mode using polling and not interrupts(they =
are disabled in the c code), which is Why I didn't include in the
> > > guest
> > > > > config file. This works well when I compile it normally (as EL3).=
 When compiled as hypervisor guest, the execution stops before the
> > > > > function xil_dcacheflushrange(). Please find the c code attached
> > > > > in https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcess=
orIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c
> > > > >
> > > > > I found the SATA example similar to my use case, also using DMA a=
nd SMMU. I just used it as a reference to create my pl.dtb to pass
> > > > through
> > > > > in the guest config.(from pl.dtsi, which I manually created).
> > > > >
> > > > > Thanks and Best Regards,
> > > > > Prem
> > > > >
> > > > > Get Outlook for Android
> > > > >
> >>>>_____________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:st=
efano.stabellini@xilinx.com>>
> > > > > Sent: Friday 14 May 2021, 23:16
> > > > > To: Prem Harikrishnan
> > > > > Cc: Brian Woods; Stefano Stabellini; Julien Grall; Stefano Stabel=
lini; xen-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org>=
; fnuv@xilinx.com<mailto:fnuv@xilinx.com>;
> > > > edgari@xilinx.com<mailto:edgari@xilinx.com>;
> > > > > bwoods288@gmail.com<mailto:bwoods288@gmail.com>; Renato Costa Amo=
rim; JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>
> > > > > Subject: Re: Help: Information required for AXI DMA passthrough f=
or PL masters in ZCU102 dev kit
> > > > >
> > > > > I take that the guest kernel "/bin/xaxidma_example_simple_poll_1.=
bin" is
> > > > > a baremetal application? Can you run it successfully, just printi=
ng
> > > > > "hello world", if you only assign the UART and nothing else?
> > > > >
> > > > > I am asking just to verify that you can run the baremetal VM
> > > > > successfully, aside from the PL device assignment.
> > > > >
> > > > >
> > > > > In regards to the PL device assignment, I'll let Brian answer on =
the
> > > > > Vivado configuration and SMID calculation. But I noticed that you=
 only
> > > > > assigned IRQ 54 to the DomU which is the one for UART1. You haven=
't
> > > > > assigned any IRQs for axi_dma_0. Looking at pl_from_petalinux.dts=
i, it
> > > > > looks like there are two related IRQs: 121 and 122.
> > > > >
> > > > > Finally, why did you mention SATA passthrough in your reply? I do=
n't
> > > > > follow: I cannot see any SATA controller assignment in your
> > > > > configuration.
> > > > >
> > > > >
> > > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > > Dear Brian, Stefano and Julien,
> > > > > >
> > > > > > Thank you very much for your replies.
> > > > > > Hi Brian and Stefano, Can you please help me with the following=
 questions?
> > > > > >
> > > > > > @Brian Woods Please find attached my vivado configuration, when=
 i added my AXI DMA now running on simple polling mode(previously
> i
> > > > tried
> > > > > it
> > > > > > with Scatter Gather mode), Run Automation automatically generat=
ed, 1 AXI Interconnect and 1 smart connect. Since there is only 1
> > > master
> > > > > and
> > > > > > I use the S_AXI _HP0_FPD, I finally get a value of 0xE80 for th=
e stream IDs.
> > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/=
Xen+and+PL+Masters According to this link section 6.5 I have
> > manually
> > > > tied
> > > > > > of AxPROT bits to value of 0x2 to create non secure transaction=
s. Can you please confirm that my Vivado configuration is correct?
> I
> > > can
> > > > > > update you soon with an ILA trace on Vivado.
> > > > > >
> > > > > > @Stefano Stabellini Please find attached my pl.dtsi generated f=
rom petalinux and system.dtsi also generated after manually adding
> > > > > xen.dtsi.
> > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561=
/Building+Xen+Hypervisor+with+Petalinux+2020.1+and+2020.2 Using
> this
> > > > SATA
> > > > > > passthrough, i made my own pl.dtsi for passthrough used in dma.=
cfg. I could really use your help to identify what is missing in
> my
> > > xen
> > > > > > configuration.
> > > > > >
> > > > > > Thanks and Best Regards,
> > > > > > Prem
> > > > > >
> >>>>>____________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > From: Brian Woods <brian.woods@xilinx.com<mailto:brian.woods@xi=
linx.com>>
> > > > > > Sent: Thursday, May 13, 2021 17:13
> > > > > > To: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:st=
efano.stabellini@xilinx.com>>
> > > > > > Cc: Julien Grall <julien@xen.org<mailto:julien@xen.org>>; Prem =
Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.harikrishnan@evo=
leotech.com>>; Stefano Stabellini
> > <sstabellini@kernel.org<mailto:sstabellini@kernel.org>>;
> > > > > > xen-users@lists.xenproject.org<mailto:xen-users@lists.xenprojec=
t.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.or=
g>>; brian.woods@xilinx.com<mailto:brian.woods@xilinx.com> <brian.woods@xil=
inx.com<mailto:brian.woods@xilinx.com>>; fnuv@xilinx.com<mailto:fnuv@xilinx=
.com>
> > > > > > <fnuv@xilinx.com<mailto:fnuv@xilinx.com>>; edgari@xilinx.com<ma=
ilto:edgari@xilinx.com> <edgari@xilinx.com<mailto:edgari@xilinx.com>>; bwoo=
ds288@gmail.com<mailto:bwoods288@gmail.com> <bwoods288@gmail.com<mailto:bwo=
ods288@gmail.com>>
> > > > > > Subject: Re: Help: Information required for AXI DMA passthrough=
 for PL masters in ZCU102 dev kit
> > > > > > Prem,
> > > > > >
> > > > > > Sorry for the late email, I've been under the weather and have =
been away
> > > > > > from my computer.  In the Zynq SOCs this is how the SMMU IDs in=
 PL are
> > > > > > calculated:
> > > > > >
> > > > > > 14-10: TBU bits
> > > > > > 9-6: Master ID bits
> > > > > > 5-0: AXI ID bits
> > > > > >
> > > > > > https://www.xilinx.com/support/documentation/user_guides/ug1085=
-zynq-ultrascale-trm.pdf
> > > > > > To look up the TBU value, see UG1085 and look for the "System M=
asters"
> > > > > > table which is table 16-4 on page 409.
> > > > > >
> > > > > > For the master ID, see UG1085 and look for the "Master IDs List=
" table
> > > > > > which is table 16-13 on page 429.
> > > > > >
> > > > > > The AXI ID bits is a bit trickery since it's going to be out in=
 PL.
> > > > > > See: https://www.xilinx.com/support/answers/69447.html
> > > > > > With SmartConnect all the AXI IDs are 0, they aren't passed on.=
  There
> > > > > > are work arounds.  Here's a couple of examples (with example nu=
mbers):
> > > > > >
> > > > > > AXI master -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001
> > > > > >
> > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000
> > > > > >
> > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > >                            -> PS slave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0000
> > > > > >
> > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000 (both share)
> > > > > >
> > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > >                                 -> PS slave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000 (both share)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0000 (both share)
> > > > > >
> > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS s=
lave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0002 (master #2)
> > > > > >
> > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS s=
lave port 0
> > > > > >                                                         -> PS s=
lave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0002 (master #2)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0002 (master #2)
> > > > > >
> > > > > > The "sideband -> SmartConenct -> sideband" can also be function=
ally
> > > > > > replaced with "AXI Interconnect" to my knowledge.  So the AXI I=
D bits are
> > > > > > fairly simple but with some caveats.
> > > > > >
> > > > > > You can also read in the SMMU faults from Xen and use:
> > > > > > https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_ar=
chitecture_specification.pdf
> > > > > > to decode them. That should tell you the SMMU IDs as well.
> > > > > >
> > > > > > Let me know if this isn't clear or you have any other questions=
.
> > > > > >
> > > > > > Brian
> > > > > >
> > > > > > On Mon, May 10, 2021 at 06:49:07PM -0700, Stefano Stabellini wr=
ote:
> > > > > > > On Mon, 10 May 2021, Julien Grall wrote:
> > > > > > > > On 26/04/2021 15:41, Prem Harikrishnan wrote:
> > > > > > > > > Hello everyone,
> > > > > > > >
> > > > > > > > Hi Prem,
> > > > > > > >
> > > > > > > > > I am using the latest version of the xilinx mpsoc zcu102 =
development board
> > > > > > > > > and i am trying to create a barematal application that us=
es the AXI DMA on
> > > > > > > > > the programmable logic, using the scatter gather example =
from the xilinx
> > > > > > > > > repository. This works perfectly well for the baremetal a=
pplication. The
> > > > > > > > > diagram below represents the information flow. The AXI DM=
A and the AXI data
> > > > > > > > > FIFO are in the Programable logic (FPGA). This AXI DMA is=
 out of the box IP
> > > > > > > > > from Vivado and uses a single channel (Does not use AxUSE=
R) which means the
> > > > > > > > > AXI ID cannot manually be set.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Now i want to make this as a baremetal hypervisor guest, =
in future this will
> > > > > > > > > be replaced by a custom IP with cache colouring enabled. =
I want to pass
> > > > > > > > > through the AXI DMA in the PL. (Not to be used by Dom0)
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I followed this tutorial Baremetal + DomU
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
842536/XEN+EL1+Baremetal+DomU>
> > > > > > > > > guest changed the base address to 0x4000000,(1GB allocate=
d to Dom-0) to
> > > > > > > > > create my EL1 binary. I used Petalinux 2020.2 to generate=
 my linux, xen
> > > > > > > > > image and use tftp to boot.
> > > > > > > > >
> > > > > > > > >  From what i understand from the xilinx tutorials Xen+and=
+PL+Masters
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
842066/Xen+and+PL+Masters>
> > > > > > > > > section 3 and MPSOC SMMU
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
841981/Zynq+UltraScale+MPSOC+SMMU>
> > > > > > > > > section 4, stream ids are required by the SMMU to get the=
 correct address
> > > > > > > > > translation.
> > > > > > > > >
> > > > > > > > > I am still unable to figure out how to get the iommu prop=
erty for my AXI DMA
> > > > > > > > > and how to set the dtdev config for my hypervisor guest.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I can also see some new updates with the XEN 2020.1 and 2=
020.2 releases
> > > > > > > > > which i can be useful to my application
> > > > > > > > >
> > > > > > > > >   *   1:1 memory mappings for Xen virtual machines, enabl=
ing device
> > > > > > > > >     assignments without SMMU
> > > > > > > > >   *
> > > > > > > > >       Static assignment of PL blocks, including bus-maste=
ring blocks, to
> > > > > > > > >     Xen virtual machines
> > > > > > > > >   *   Support for PL Device Passthrough to DomU in Xen
> > > > > > > >
> > > > > > > > You are usiong a version of Xen that has been customised by=
 Xilinx. So I would
> > > > > > > > recommend to contact them directly.
> > > > > > > >
> > > > > > > > I have CCed Stefano who might be able to help you.
> > > > > > >
> > > > > > > Hi Julien,
> > > > > > >
> > > > > > > Many thanks for CC'ing me, I missed the email.
> > > > > > >
> > > > > > >
> > > > > > > Hi Prem,
> > > > > > >
> > > > > > > Let me CC a few people that might be able to help.
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>

--_000_VI1PR05MB44308D16502AA518E05B210C893E9VI1PR05MB4430eurp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Hi Stefano and Mubin,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Thank you very much for helping me setup up FreeRTOS and baremetal guests, =
everything works as expected and I also get expected performance in both ba=
remetal and hypervisor guests. Thank you again for your prompt support duri=
ng the past few weeks.</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Best Regrards,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Prem<br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Mubin Usman Sayyed &l=
t;MUBINUSM@xilinx.com&gt;<br>
<b>Sent:</b> Tuesday, June 1, 2021 05:38<br>
<b>To:</b> Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;; Stef=
ano Stabellini &lt;stefanos@xilinx.com&gt;<br>
<b>Cc:</b> xen-users@lists.xenproject.org &lt;xen-users@lists.xenproject.or=
g&gt;; Jovita Castelino &lt;JOVITAC@xilinx.com&gt;<br>
<b>Subject:</b> RE: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit</font>
<div>&nbsp;</div>
</div>
<style>
<!--
@font-face
	{font-family:"Cambria Math"}
@font-face
	{font-family:Calibri}
@font-face
	{font-family:"Segoe UI"}
@font-face
	{font-family:"Segoe UI Light"}
p.x_MsoNormal, li.x_MsoNormal, div.x_MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif}
a:link, span.x_MsoHyperlink
	{color:blue;
	text-decoration:underline}
span.x_EmailStyle21
	{font-family:"Calibri",sans-serif;
	color:windowtext}
.x_MsoChpDefault
	{font-size:10.0pt}
@page WordSection1
	{margin:1.0in 1.0in 1.0in 1.0in}
div.x_WordSection1
	{}
-->
</style>
<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"x_WordSection1">
<p class=3D"x_MsoNormal">In case of FreeRTOS, &nbsp;you need to use APIs fr=
om FreeRTOS port for interrupt handling &nbsp;(<a href=3D"https://github.co=
m/Xilinx/embeddedsw/blob/master/ThirdParty/bsp/freertos10_xilinx/examples/f=
reertos_intr_example.c#L192">https://github.com/Xilinx/embeddedsw/blob/mast=
er/ThirdParty/bsp/freertos10_xilinx/examples/freertos_intr_example.c#L192</=
a>
 and line 194). Please make sure that you are taking care of that in DMA in=
terrupt example .</p>
<p class=3D"x_MsoNormal">&nbsp;</p>
<p class=3D"x_MsoNormal">Thanks,</p>
<p class=3D"x_MsoNormal">Mubin</p>
<p class=3D"x_MsoNormal">&nbsp;</p>
<div style=3D"border:none; border-left:solid blue 1.5pt; padding:0in 0in 0i=
n 4.0pt">
<div>
<div style=3D"border:none; border-top:solid #E1E1E1 1.0pt; padding:3.0pt 0i=
n 0in 0in">
<p class=3D"x_MsoNormal"><b>From:</b> Prem Harikrishnan &lt;prem.harikrishn=
an@evoleotech.com&gt;
<br>
<b>Sent:</b> Tuesday, June 1, 2021 2:48 AM<br>
<b>To:</b> Stefano Stabellini &lt;stefanos@xilinx.com&gt;<br>
<b>Cc:</b> xen-users@lists.xenproject.org; Jovita Castelino &lt;JOVITAC@xil=
inx.com&gt;; Mubin Usman Sayyed &lt;MUBINUSM@xilinx.com&gt;<br>
<b>Subject:</b> Re: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit</p>
</div>
</div>
<p class=3D"x_MsoNormal">&nbsp;</p>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&nbs=
p;</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Hi S=
tefano and Mubin,</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Than=
k you very much for your replies.</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black"><a i=
d=3D"OWAAM333653" href=3D"mailto:stefano.stabellini@xilinx.com"><span style=
=3D"font-family:&quot;Calibri&quot;,sans-serif; text-decoration:none">@Stef=
ano Stabellini</span></a> Sorry to bother you again,
 and thank you for pointing this out, the TTC0 is by default enabled for Fr=
eeRTOS to generate ticks, although this says only for R5 core, i would have=
 never figured this out. As soon as I added the irqs and iomem and gave a x=
en passthrough in the xen.dtsi as
 you have suggested, FreeRTOS guest started working for other peripherals e=
xcept for my DMA (FreeRTOS guest does not work with interrupt and DMA).
</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&nbs=
p;</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">I ca=
n see my DMA is enabled because i have LEDs configured to blink for every i=
nterrupt I get from the PL. I don't see my interrupts being processed, but =
when I destroy the guest, I get this
 output periodically when an interrupt occurs.</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&nbs=
p;</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">(XEN=
) smmu: /smmu@fd800000: Unexpected global fault, this could be serious<br>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000</span></p>
</div>
<div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">(XEN=
) smmu: /smmu@fd800000: Unexpected global fault, this could be serious<br>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000</span></p>
</div>
<div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">(XEN=
) smmu: /smmu@fd800000: Unexpected global fault, this could be serious<br>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&nbs=
p;</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">From=
 section 3.6 of the wiki
<a href=3D"https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/X=
en+and+PL+Masters">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+M=
asters</a>
</span></p>
</div>
<div>
<div id=3D"LPBorder_GTaHR0cHM6Ly94aWxpbngtd2lraS5hdGxhc3NpYW4ubmV0L3dpa2kvc=
3BhY2VzL0EvcGFnZXMvMTg4NDIwNjYvWGVuK2FuZCtQTCtNYXN0ZXJz" style=3D"margin-to=
p:12.0pt; margin-bottom:12.0pt; min-width:424px">
<table class=3D"x_MsoNormalTable" border=3D"1" cellpadding=3D"0" width=3D"1=
00%" style=3D"width:100.0%; border:solid #C8C8C8 1.0pt">
<tbody>
<tr>
<td width=3D"100%" valign=3D"top" style=3D"width:100.0%; border:none; paddi=
ng:9.0pt 27.0pt 9.0pt 9.0pt">
<div id=3D"LPTitle907457" style=3D"margin-right:6.0pt; margin-bottom:9.0pt"=
>
<p class=3D"x_MsoNormal"><span style=3D"font-size:16.0pt; font-family:&quot=
;Segoe UI Light&quot;,sans-serif"><a href=3D"https://xilinx-wiki.atlassian.=
net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters" target=3D"_blank"><spa=
n style=3D"text-decoration:none">Xen and PL Masters
 - Xilinx Wiki - Confluence</span></a></span></p>
</div>
<div id=3D"LPDescription907457" style=3D"margin-right:6.0pt; margin-bottom:=
9.0pt; max-height:100px; overflow:hidden">
<p class=3D"x_MsoNormal"><span style=3D"font-size:10.5pt; font-family:&quot=
;Segoe UI&quot;,sans-serif; color:#666666">3.4 Stream IDs in the Device Tre=
e. For Xen based systems the stream IDs of PL masters must be added to the =
Linux Dom0 device tree. Automated device tree
 generation does not generate the stream IDs for the PL masters so that the=
 user must add them into the device tree manually.</span></p>
</div>
<div id=3D"LPMetadata907457">
<p class=3D"x_MsoNormal"><span style=3D"font-size:10.5pt; font-family:&quot=
;Segoe UI&quot;,sans-serif; color:#A6A6A6">xilinx-wiki.atlassian.net</span>=
</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p class=3D"x_MsoNormal"><span style=3D"color:black">The fault indicates an=
 unidentified stream ID has been received by the SMMU as shown in the GFSR =
register. The GFSYNR1 register contains the stream ID that was unidentified=
. A stream ID of 0xE80 was unidentified
 in the above fault.</span><span style=3D"font-size:12.0pt; color:black"></=
span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&nbs=
p;</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">But =
I think i have already added that in my smmu and iommu in xen.dtsi because =
my baremetal application works well as expected. I have attached my xen.dts=
i, system.dtsi, baremetal.cfg(working)
 and freertos.cfg(not working).</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">What=
 could I be missing here? Do I have to enable the ttc0 in the device tree?
</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Also=
 what does (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq: 9999=
0 KHz mean when XEN boots up?</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Than=
ks, I look forward for your reply.</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&nbs=
p;</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Best=
 Regards,</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Prem=
</span></p>
</div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&nbs=
p;</span></p>
</div>
<div>
<p class=3D"x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&nbs=
p;</span></p>
</div>
<div class=3D"x_MsoNormal" align=3D"center" style=3D"text-align:center">
<hr size=3D"2" width=3D"98%" align=3D"center">
</div>
<div id=3D"x_divRplyFwdMsg">
<p class=3D"x_MsoNormal"><b><span style=3D"color:black">From:</span></b><sp=
an style=3D"color:black"> Stefano Stabellini &lt;<a href=3D"mailto:stefano.=
stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
<b>Sent:</b> Friday, May 28, 2021 20:43<br>
<b>To:</b> Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishnan@evoleo=
tech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
<b>Cc:</b> Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@xili=
nx.com">stefano.stabellini@xilinx.com</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a> &lt;<a href=3D=
"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;;
<a href=3D"mailto:MUBINUSM@xilinx.com">MUBINUSM@xilinx.com</a> &lt;<a href=
=3D"mailto:MUBINUSM@xilinx.com">MUBINUSM@xilinx.com</a>&gt;<br>
<b>Subject:</b> Re: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit</span>
</p>
<div>
<p class=3D"x_MsoNormal">&nbsp;</p>
</div>
</div>
<div>
<div>
<p class=3D"x_MsoNormal">From the gpa address, it looks like FreeRTOS is tr=
ying to access the TTC<br>
timer? If you look at device tree, the corresponding node is<br>
timer@ff110000.<br>
<br>
If FreeRTOS is configured to access the TTC timer, then you need to<br>
assign it to it. Did you assign the TTC timer to the FreeRTOS domU by<br>
any chance?<br>
<br>
You can do that by adding:<br>
<br>
irqs =3D [ 68, 69, 70 ]<br>
iomem =3D [ &quot;0xff110,1&quot; ]<br>
<br>
<br>
On Fri, 28 May 2021, Prem Harikrishnan wrote:<br>
&gt; Hi Stefano,<br>
&gt; Thanks for your reply. I am pretty sure I followed the steps you menti=
oned below to run the FreeRTOS hello world example. I already added<br>
&gt; printfs and i can see XEN cannot start the scheduler and i get the fol=
lowing out put on XEN.<br>
&gt; <br>
&gt; Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]<br>
&gt; (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D2 me=
mflags=3D0xc0 (0 of 64)<br>
&gt; (XEN) memory_map:add: dom2 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0<br=
>
&gt; (XEN) sched_null.c:344: 1 &lt;-- d2v0<br>
&gt; (XEN) traps.c:1973:d2v0 HSR=3D0x93820007 pc=3D0x00000040012b08 gva=3D0=
xff11000c gpa=3D0x000000ff11000c<br>
&gt; <br>
&gt; <br>
&gt; I also see that according to this article<br>
&gt; <a href=3D"https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partn=
er-FreeRTOS-as-a-Xen-Virtual-Machine/ba-p/947030">
https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as-a=
-Xen-Virtual-Machine/ba-p/947030</a><br>
&gt; [52662iFAD1733707609204?v=3Dv2]<br>
&gt; Partner: FreeRTOS as a Xen Virtual Machine - Community Forums<br>
&gt; Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks=
 What is FreeRTOS? The FreeRTOS kernel is a market leading real-time<br>
&gt; operating system for embedded systems. As embedded applications grow i=
n complexity, there is a growing need for a lightweight kernel<br>
&gt; capable of task scheduling...<br>
&gt; forums.xilinx.com<br>
&gt; FreeRTOS does not run out of the box for XEN, although the article is =
2 years old, I am not sure if there are any updates on this after<br>
&gt; that. Can you please confirm?<br>
&gt; <br>
&gt; Thanks and Best Regards,<br>
&gt; Prem<br>
&gt; <br>
&gt; ______________________________________________________________________=
_____________________________________________________________________<br>
&gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@xili=
nx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; Sent: Friday, May 28, 2021 02:51<br>
&gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishnan@evoleote=
ch.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@xilinx=
.com">stefano.stabellini@xilinx.com</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a><br>
&gt; &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;; =
<a href=3D"mailto:MUBINUSM@xilinx.com">
MUBINUSM@xilinx.com</a> &lt;<a href=3D"mailto:MUBINUSM@xilinx.com">MUBINUSM=
@xilinx.com</a>&gt;<br>
&gt; Subject: Re: Help: Information required for AXI DMA passthrough for PL=
 masters in ZCU102 dev kit &nbsp;<br>
&gt; +Mubin<br>
&gt; <br>
&gt; <br>
&gt; Hi Prem,<br>
&gt; <br>
&gt; Did you make sure to build FreeRTOS as &quot;hypervisor guest&quot;? I=
 think<br>
&gt; FreeRTOS is built to run at EL3 by default so if that is not changed<b=
r>
&gt; there are errors when run on any hypervisor. It is possible to build<b=
r>
&gt; FreeRTOS to run on Xen but it requires a couple of manual steps:<br>
&gt; <br>
&gt; - source settings64.sh from Vitis builds<br>
&gt; - xsct<br>
&gt; - set WORKSPACE .<br>
&gt; - setws -switch $WORKSPACE<br>
&gt; - app create -name freertos-hello-world -template {FreeRTOS Hello Worl=
d} -proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx<br>
&gt; - bsp config stdin psu_uart_1<br>
&gt; - bsp config stdout psu_uart_1<br>
&gt; - bsp config hypervisor_guest true<br>
&gt; - Go to application source path and modify the linker script start add=
ress to 0x40000000,<br>
&gt; - app build -name freertos-hello-world<br>
&gt; - Run command to generate BIN file from executable &quot;aarch64-linux=
-gnu-objcopy -O binary --gap-fill 0&nbsp; &lt;elf path&gt; BOOT.BIN&quot;<b=
r>
&gt; <br>
&gt; The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,<=
br>
&gt; might be able to provide additional info.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On Thu, 27 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; Hi Stefano,<br>
&gt; &gt; Sorry to bother you again.<br>
&gt; &gt; I am currently trying to run my custom IP which sends periodic dm=
a interrupts to the PS with cache coloring enabled. I have now compiled<br>
&gt; my<br>
&gt; &gt; guest running with FreeRTOS and it generates a trap.<br>
&gt; &gt; Petalinux and VITIS IDE Version is 2020.2.<br>
&gt; &gt;<br>
&gt; &gt; Please find the log attached. After the trap occurs, for every in=
terrupt XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context fault:<br>
&gt; &gt; fsr=3D0x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt;<br>
&gt; &gt; root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing conf=
ig from apu_freertos.cfg<br>
&gt; &gt; (XEN) Dom1 colors: [ 8 ]<br>
&gt; &gt; (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=
=3D1 memflags=3D0xc0 (0 of 64)<br>
&gt; &gt; (XEN) memory_map:add: dom1 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=
=3D0<br>
&gt; &gt; (XEN) memory_map:add: dom1 gfn=3Da0010 mfn=3Da0010 nr=3D1 cache=
=3D0<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000<br>
&gt; &gt; (XEN) sched_null.c:344: 1 &lt;-- d1v0<br>
&gt; &gt; (XEN) traps.c:1973:d1v0 HSR=3D0x93820007 pc=3D0x00000040013188 gv=
a=3D0xff11000c gpa=3D0x000000ff11000c<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt;<br>
&gt; &gt; The same application works as expected without FreeRTOS, i.e as a=
 baremetal guest. I look forward for your comment on this.<br>
&gt; &gt;<br>
&gt; &gt; Although i see performance degradation, normally i can measure de=
lta time for each interrupt configured to 1ms (without XEN), with XEN<br>
&gt; for<br>
&gt; &gt; the same measurement shows 16 ms for each interval (but the perfo=
rmance is not a priority for now).<br>
&gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; Prem<br>
&gt; &gt;<br>
&gt; &gt;__________________________________________________________________=
________________________________________________________________________<br=
>
&gt; _<br>
&gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini=
@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; Sent: Tuesday, May 18, 2021 20:09<br>
&gt; &gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishnan@evo=
leotech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; &gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@x=
ilinx.com">stefano.stabellini@xilinx.com</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;<br>
&gt; <a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a><br>
&gt; &gt; &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&=
gt;<br>
&gt; &gt; Subject: Re: Help: Information required for AXI DMA passthrough f=
or PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; Great to hear! Thank you for reporting back.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Tue, 18 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; Dear Stefano,<br>
&gt; &gt; &gt; Thank you very much for your guidance and support. I finally=
 fixed the issue. I made an error in base memory address like you pointed<b=
r>
&gt; &gt; out.<br>
&gt; &gt; &gt; I actually modified the base address correctly to 0x40000000=
 but the default C code had an additional offset of 0x1100000 , and the<br>
&gt; DomU<br>
&gt; &gt; &gt; memory allocated was only 8MB. I either had to change the of=
fset or allocate more memory to the DomU guest which i missed until you<br>
&gt; &gt; pointed<br>
&gt; &gt; &gt; out. Additionally i had to set to AxPROT bits to 0x2 in Viva=
do and the SMID required is 0xE80.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Thanks again i was able get my custom IP also working as an =
AXI master from PL.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; Prem<br>
&gt; &gt; &gt;<br>
&gt; &gt;&gt;______________________________________________________________=
___________________________________________________________________________=
<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabe=
llini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; Sent: Tuesday, May 18, 2021 02:35<br>
&gt; &gt; &gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishna=
n@evoleotech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; &gt; &gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabell=
ini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;; Brian Woods &lt;<a h=
ref=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;; Julie=
n Grall &lt;<a href=3D"mailto:julien@xen.org">julien@xen.org</a>&gt;;
 Stefano<br>
&gt; &gt; &gt; Stabellini &lt;<a href=3D"mailto:sstabellini@kernel.org">sst=
abellini@kernel.org</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a><br>
&gt; &lt;<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a>&gt;;<br>
&gt; &gt; &gt; <a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com</a> &=
lt;<a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com</a>&gt;;
<a href=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a> &lt;<a href=
=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a>&gt;; Renato Costa A=
morim &lt;<a href=3D"mailto:renato.amorim@evoleotech.com">renato.amorim@evo=
leotech.com</a>&gt;;<br>
&gt; &gt; &gt; <a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>=
 &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; Subject: Re: Help: Information required for AXI DMA passthro=
ugh for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; Your configuration looks correct as far as I can tell.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; You need dtdev because it triggers the SMMU configuration fo=
r your PL<br>
&gt; &gt; &gt; block. You don't need device_tree because your baremetal app=
lication is<br>
&gt; &gt; &gt; not going to read it, but it is not going to cause any issue=
s either.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; When you say &quot;the execution does not complete the loop =
at line 244&quot;, it<br>
&gt; &gt; &gt; means that you see the execution entering the loop and then =
never<br>
&gt; &gt; &gt; leaving? Like an infinite loop?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; If so, then I imagine the issue could be that the applicatio=
n is<br>
&gt; &gt; &gt; crashing when trying to access TxBufferPtr, which is pointin=
g to<br>
&gt; &gt; &gt; TX_BUFFER_BASE, which is:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; #ifndef DDR_BASE_ADDR<br>
&gt; &gt; &gt; #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \=
<br>
&gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT SET TO 0x01000000<br>
&gt; &gt; &gt; #define MEM_BASE_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; 0x01000000<br>
&gt; &gt; &gt; #else<br>
&gt; &gt; &gt; #define MEM_BASE_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; (DDR_BASE_ADDR + 0x1000000)<br>
&gt; &gt; &gt; #endif<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; #define TX_BUFFER_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; (MEM_BASE_ADDR + 0x00100000)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Can you double check that TX_BUFFER_BASE is pointing to a co=
rrect<br>
&gt; &gt; &gt; address? Memory starts at 0x40000000 in a Xen DomU.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Mon, 17 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; Hi Stefano,<br>
&gt; &gt; &gt; &gt; Thanks again for your reply and your suggestion.&nbsp; =
I did try to replace the Xil_DCacheFlushRange with Xil_DCacheInvalidateRang=
e(works<br>
&gt; &gt; only<br>
&gt; &gt; &gt; &gt; in EL3), I added printfs to debug, i can see that the e=
xecution does not complete the loop at line 244<br>
&gt; &gt; &gt; &gt; <a href=3D"https://github.com/Xilinx/embeddedsw/blob/ma=
ster/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_example_simple_po=
ll.c">
https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drive=
rs/axidma/examples/xaxidma_example_simple_poll.c</a>&nbsp; and<br>
&gt; &gt; &gt; &gt; Xil_DCacheFlushRange is not reached. Please find attach=
ed my xen bootlog.txt.<br>
&gt; &gt; &gt; &gt; I am still unable to find out why??<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can you please atleast verify that my xen.dtsi, and pl.=
dtb is correct? and do i need dtdev and device_tree in my guest config file=
<br>
&gt; when<br>
&gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt; is already added to xen.dtsi?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;__________________________________________________________=
___________________________________________________________________________=
___<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.=
stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; Sent: Saturday, May 15, 2021 00:25<br>
&gt; &gt; &gt; &gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikr=
ishnan@evoleotech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; &gt; &gt; &gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.st=
abellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;; Brian Woods &lt=
;<a href=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;; =
Julien Grall &lt;<a href=3D"mailto:julien@xen.org">julien@xen.org</a>&gt;;
 Stefano<br>
&gt; &gt; &gt; &gt; Stabellini &lt;<a href=3D"mailto:sstabellini@kernel.org=
">sstabellini@kernel.org</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a><br>
&gt; &gt; &lt;<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a>&gt;;<b=
r>
&gt; &gt; &gt; &gt; <a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com<=
/a> &lt;<a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com</a>&gt;;
<a href=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a> &lt;<a href=
=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a>&gt;; Renato Costa A=
morim &lt;<a href=3D"mailto:renato.amorim@evoleotech.com">renato.amorim@evo=
leotech.com</a>&gt;;<br>
&gt; &gt; &gt; &gt; <a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.co=
m</a> &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;<=
br>
&gt; &gt; &gt; &gt; Subject: Re: Help: Information required for AXI DMA pas=
sthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Some older versions of Xil_DCacheFlushRange were implem=
ented using<br>
&gt; &gt; &gt; &gt; deprecated set/way instructions that are known to cause=
 problems in<br>
&gt; &gt; &gt; &gt; virtualized environments.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; More recent implementations use the &quot;dc civac&quot=
; intruction that shouldn't<br>
&gt; &gt; &gt; &gt; have any issues.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can you double-check that you are calling the 64-bit ve=
rsion implemented<br>
&gt; &gt; &gt; &gt; by CIVAC?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;<a href=3D"https://github.com/Xilinx/embeddedsw/blob/875dc=
c7a4dca47ccb18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/=
xil_cache.c#L4">https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb=
18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#=
L4</a><br>
&gt; 1<br>
&gt; &gt; 4<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Fri, 14 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; Hi Stefano,&nbsp;<br>
&gt; &gt; &gt; &gt; &gt; Thanks for your reply. Yes the axidma application =
is a baremetal application from the xilinx vitis ide example.&nbsp;<br>
&gt; &gt; &gt; &gt; &gt; Also yes, I have already run hello world as DomU g=
uest, with UART1.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I am using the simple mode using polling and not i=
nterrupts(they are disabled in the c code), which is Why I didn't include i=
n the<br>
&gt; &gt; &gt; guest<br>
&gt; &gt; &gt; &gt; &gt; config file. This works well when I compile it nor=
mally (as EL3). When compiled as hypervisor guest, the execution stops befo=
re the<br>
&gt; &gt; &gt; &gt; &gt; function xil_dcacheflushrange(). Please find the c=
 code attached<br>
&gt; &gt; &gt; &gt; &gt; in&nbsp;<a href=3D"https://github.com/Xilinx/embed=
dedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_exam=
ple_simple_poll.c">https://github.com/Xilinx/embeddedsw/blob/master/XilinxP=
rocessorIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c</a>&nbs=
p;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I found the SATA example similar to my use case, a=
lso using DMA and SMMU. I just used it as a reference to create my pl.dtb t=
o pass<br>
&gt; &gt; &gt; &gt; through<br>
&gt; &gt; &gt; &gt; &gt; in the guest config.(from pl.dtsi, which I manuall=
y created).<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Get Outlook for Android<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;______________________________________________________=
___________________________________________________________________________=
______<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:ste=
fano.stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; Sent: Friday 14 May 2021, 23:16<br>
&gt; &gt; &gt; &gt; &gt; To: Prem Harikrishnan<br>
&gt; &gt; &gt; &gt; &gt; Cc: Brian Woods; Stefano Stabellini; Julien Grall;=
 Stefano Stabellini; <a href=3D"mailto:xen-users@lists.xenproject.org">
xen-users@lists.xenproject.org</a>; <a href=3D"mailto:fnuv@xilinx.com">fnuv=
@xilinx.com</a>;<br>
&gt; &gt; &gt; &gt; <a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com<=
/a>;<br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"mailto:bwoods288@gmail.com">bwoods288@g=
mail.com</a>; Renato Costa Amorim;
<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a><br>
&gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required for AXI DM=
A passthrough for PL masters in ZCU102 dev kit<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I take that the guest kernel &quot;/bin/xaxidma_ex=
ample_simple_poll_1.bin&quot; is<br>
&gt; &gt; &gt; &gt; &gt; a baremetal application? Can you run it successful=
ly, just printing<br>
&gt; &gt; &gt; &gt; &gt; &quot;hello world&quot;, if you only assign the UA=
RT and nothing else?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I am asking just to verify that you can run the ba=
remetal VM<br>
&gt; &gt; &gt; &gt; &gt; successfully, aside from the PL device assignment.=
<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; In regards to the PL device assignment, I'll let B=
rian answer on the<br>
&gt; &gt; &gt; &gt; &gt; Vivado configuration and SMID calculation. But I n=
oticed that you only<br>
&gt; &gt; &gt; &gt; &gt; assigned IRQ 54 to the DomU which is the one for U=
ART1. You haven't<br>
&gt; &gt; &gt; &gt; &gt; assigned any IRQs for axi_dma_0. Looking at pl_fro=
m_petalinux.dtsi, it<br>
&gt; &gt; &gt; &gt; &gt; looks like there are two related IRQs: 121 and 122=
.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Finally, why did you mention SATA passthrough in y=
our reply? I don't<br>
&gt; &gt; &gt; &gt; &gt; follow: I cannot see any SATA controller assignmen=
t in your<br>
&gt; &gt; &gt; &gt; &gt; configuration.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; On Fri, 14 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; Dear Brian, Stefano and Julien,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thank you very much for your replies.<br>
&gt; &gt; &gt; &gt; &gt; &gt; Hi Brian and Stefano, Can you please help me =
with the following questions?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; @Brian Woods Please find attached my vivado c=
onfiguration, when i added my AXI DMA now running on simple polling mode(pr=
eviously<br>
&gt; i<br>
&gt; &gt; &gt; &gt; tried<br>
&gt; &gt; &gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt; &gt; &gt; with Scatter Gather mode), Run Automation aut=
omatically generated, 1 AXI Interconnect and 1 smart connect. Since there i=
s only 1<br>
&gt; &gt; &gt; master<br>
&gt; &gt; &gt; &gt; &gt; and<br>
&gt; &gt; &gt; &gt; &gt; &gt; I use the S_AXI _HP0_FPD, I finally get a val=
ue of 0xE80 for the stream IDs.<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://xilinx-wiki.atlassian.net/=
wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+M=
asters</a> According to this link section 6.5 I have<br>
&gt; &gt; manually<br>
&gt; &gt; &gt; &gt; tied<br>
&gt; &gt; &gt; &gt; &gt; &gt; of AxPROT bits to value of 0x2 to create non =
secure transactions. Can you please confirm that my Vivado configuration is=
 correct?<br>
&gt; I<br>
&gt; &gt; &gt; can<br>
&gt; &gt; &gt; &gt; &gt; &gt; update you soon with an ILA trace on Vivado.<=
br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; @Stefano Stabellini Please find attached my p=
l.dtsi generated from petalinux and system.dtsi also generated after manual=
ly adding<br>
&gt; &gt; &gt; &gt; &gt; xen.dtsi.<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://xilinx-wiki.atlassian.net/=
wiki/spaces/A/pages/384663561/Building+Xen+Hypervisor+with+Petalinux+2020.1=
+and+2020.2">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561/Building+Xe=
n+Hypervisor+with+Petalinux+2020.1+and+2020.2</a> Using<br>
&gt; this<br>
&gt; &gt; &gt; &gt; SATA<br>
&gt; &gt; &gt; &gt; &gt; &gt; passthrough, i made my own pl.dtsi for passth=
rough used in dma.cfg. I could really use your help to identify what is mis=
sing in<br>
&gt; my<br>
&gt; &gt; &gt; xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; configuration.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;__________________________________________________=
___________________________________________________________________________=
_________<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; &gt; From: Brian Woods &lt;<a href=3D"mailto:brian=
.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sent: Thursday, May 13, 2021 17:13<br>
&gt; &gt; &gt; &gt; &gt; &gt; To: Stefano Stabellini &lt;<a href=3D"mailto:=
stefano.stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Cc: Julien Grall &lt;<a href=3D"mailto:julien=
@xen.org">julien@xen.org</a>&gt;; Prem Harikrishnan &lt;<a href=3D"mailto:p=
rem.harikrishnan@evoleotech.com">prem.harikrishnan@evoleotech.com</a>&gt;; =
Stefano Stabellini<br>
&gt; &gt; &lt;<a href=3D"mailto:sstabellini@kernel.org">sstabellini@kernel.=
org</a>&gt;;<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"mailto:xen-users@lists.xenproject.=
org">xen-users@lists.xenproject.org</a> &lt;<a href=3D"mailto:xen-users@lis=
ts.xenproject.org">xen-users@lists.xenproject.org</a>&gt;;
<a href=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a> &lt;<a=
 href=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;;
<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"mailto:fnuv@xilinx.com">fnuv@x=
ilinx.com</a>&gt;; <a href=3D"mailto:edgari@xilinx.com">
edgari@xilinx.com</a> &lt;<a href=3D"mailto:edgari@xilinx.com">edgari@xilin=
x.com</a>&gt;;
<a href=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a> &lt;<a href=
=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required for A=
XI DMA passthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sorry for the late email, I've been under the=
 weather and have been away<br>
&gt; &gt; &gt; &gt; &gt; &gt; from my computer.&nbsp; In the Zynq SOCs this=
 is how the SMMU IDs in PL are<br>
&gt; &gt; &gt; &gt; &gt; &gt; calculated:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 14-10: TBU bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; 9-6: Master ID bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; 5-0: AXI ID bits<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://www.xilinx.com/support/doc=
umentation/user_guides/ug1085-zynq-ultrascale-trm.pdf">
https://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultras=
cale-trm.pdf</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; To look up the TBU value, see UG1085 and look=
 for the &quot;System Masters&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; table which is table 16-4 on page 409.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; For the master ID, see UG1085 and look for th=
e &quot;Master IDs List&quot; table<br>
&gt; &gt; &gt; &gt; &gt; &gt; which is table 16-13 on page 429.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; The AXI ID bits is a bit trickery since it's =
going to be out in PL.<br>
&gt; &gt; &gt; &gt; &gt; &gt; See: <a href=3D"https://www.xilinx.com/suppor=
t/answers/69447.html">https://www.xilinx.com/support/answers/69447.html</a>=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; With SmartConnect all the AXI IDs are 0, they=
 aren't passed on.&nbsp; There<br>
&gt; &gt; &gt; &gt; &gt; &gt; are work arounds.&nbsp; Here's a couple of ex=
amples (with example numbers):<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; SmartConnect -&gt; PS slave =
port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; SmartConnect -&gt; PS slave =
port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; SmartConnect -&gt; PS s=
lave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; SmartConnect -&gt; PS s=
lave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS=
 slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; sideband -&gt; SmartCon=
nect -&gt; sideband -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; sideband -&gt; SmartCon=
nect -&gt; sideband -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS slave=
 port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; The &quot;sideband -&gt; SmartConenct -&gt; s=
ideband&quot; can also be functionally<br>
&gt; &gt; &gt; &gt; &gt; &gt; replaced with &quot;AXI Interconnect&quot; to=
 my knowledge.&nbsp; So the AXI ID bits are<br>
&gt; &gt; &gt; &gt; &gt; &gt; fairly simple but with some caveats.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; You can also read in the SMMU faults from Xen=
 and use:<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://static.docs.arm.com/ihi006=
2/dc/IHI0062D_c_system_mmu_architecture_specification.pdf">
https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_architecture_s=
pecification.pdf</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; to decode them. That should tell you the SMMU=
 IDs as well.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Let me know if this isn't clear or you have a=
ny other questions.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Brian<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Mon, May 10, 2021 at 06:49:07PM -0700, Ste=
fano Stabellini wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; On Mon, 10 May 2021, Julien Grall wrote:=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On 26/04/2021 15:41, Prem Harikrish=
nan wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hello everyone,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am using the latest version =
of the xilinx mpsoc zcu102 development board<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and i am trying to create a ba=
rematal application that uses the AXI DMA on<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the programmable logic, using =
the scatter gather example from the xilinx<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; repository. This works perfect=
ly well for the baremetal application. The<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; diagram below represents the i=
nformation flow. The AXI DMA and the AXI data<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; FIFO are in the Programable lo=
gic (FPGA). This AXI DMA is out of the box IP<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; from Vivado and uses a single =
channel (Does not use AxUSER) which means the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; AXI ID cannot manually be set.=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Now i want to make this as a b=
aremetal hypervisor guest, in future this will<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; be replaced by a custom IP wit=
h cache colouring enabled. I want to pass<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; through the AXI DMA in the PL.=
 (Not to be used by Dom0)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I followed this tutorial Barem=
etal + DomU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremetal+DomU">htt=
ps://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremet=
al+DomU</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; guest changed the base address=
 to 0x4000000,(1GB allocated to Dom-0) to<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; create my EL1 binary. I used P=
etalinux 2020.2 to generate my linux, xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; image and use tftp to boot.<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp; From what i understand f=
rom the xilinx tutorials Xen+and+PL+Masters<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">https:/=
/xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters<=
/a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section 3 and MPSOC SMMU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraScale+MPSOC+SMMU"=
>https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraS=
cale+MPSOC+SMMU</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section 4, stream ids are requ=
ired by the SMMU to get the correct address<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; translation.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am still unable to figure ou=
t how to get the iommu property for my AXI DMA<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and how to set the dtdev confi=
g for my hypervisor guest.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I can also see some new update=
s with the XEN 2020.1 and 2020.2 releases<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; which i can be useful to my ap=
plication<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *&nbsp; &nbsp;1:1 =
memory mappings for Xen virtual machines, enabling device<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; assign=
ments without SMMU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;Static assignment of PL blocks, including bus-mastering blocks, to<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Xen vi=
rtual machines<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *&nbsp; &nbsp;Supp=
ort for PL Device Passthrough to DomU in Xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; You are usiong a version of Xen tha=
t has been customised by Xilinx. So I would<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; recommend to contact them directly.=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I have CCed Stefano who might be ab=
le to help you.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Julien,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Many thanks for CC'ing me, I missed the =
email.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Let me CC a few people that might be abl=
e to help.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; <br>
&gt; </p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_VI1PR05MB44308D16502AA518E05B210C893E9VI1PR05MB4430eurp_--


From xen-users-bounces@lists.xenproject.org Tue Jun 01 18:31:09 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Jun 2021 18:31:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.135301.251406 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo99g-00016c-Qe; Tue, 01 Jun 2021 18:30:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 135301.251406; Tue, 01 Jun 2021 18:30:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo99g-00016U-Ly; Tue, 01 Jun 2021 18:30:20 +0000
Received: by outflank-mailman (input) for mailman id 135301;
 Tue, 01 Jun 2021 18:30:18 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4B0B=K3=telus.net=davehill@srs-us1.protection.inumbo.net>)
 id 1lo99e-00016O-Or
 for xen-users@lists.xenproject.org; Tue, 01 Jun 2021 18:30:18 +0000
Received: from mail-pf1-x42f.google.com (unknown [2607:f8b0:4864:20::42f])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id f789908b-5522-4f0b-ba41-2342238d4f03;
 Tue, 01 Jun 2021 18:30:17 +0000 (UTC)
Received: by mail-pf1-x42f.google.com with SMTP id g6so192548pfq.1
 for <xen-users@lists.xenproject.org>; Tue, 01 Jun 2021 11:30:17 -0700 (PDT)
Received: from [192.168.2.12] (d173-181-74-129.bchsia.telus.net.
 [173.181.74.129])
 by smtp.gmail.com with ESMTPSA id p17sm13868933pfw.202.2021.06.01.11.30.15
 for <xen-users@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Jun 2021 11:30:16 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: f789908b-5522-4f0b-ba41-2342238d4f03
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=telus.net; s=google;
        h=subject:to:references:from:message-id:date:user-agent:mime-version
         :in-reply-to:content-transfer-encoding:content-language;
        bh=BcUW2EKYfVmUYheBPxWWOn+If6n+h8Jeb/hGG821esA=;
        b=dLfy+n27LaWZl91wQg97SwHKIAVr465K0O5Xirggh+6A7vDyfO+A5sURZf5JrkTGml
         R6UqVyGkj/4YfnMQ+0TJ3hsVBywvzDo+OUBD2i/XCngXYJMv8wnaJmH4DqpBuu4toY58
         1XK0GKiBt6+AHYbkvKATFwpi2V9HheHZoVdiOfDiVJQZxg8THzisB6kB/ADVArEs5t6P
         Fy/HSuFrtdYVwvvQGKlWW8zN4mln9fDs+rMjxUA4RqrBURXjr2b25mQpu1SWJGnGUJmy
         8qiPS5eork+QFGvJuH1d+izE+nhdCyeLFhP4rUunr1Uz9pTSyI/L8Ku4VNuxdedZbCqy
         LkmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:subject:to:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=BcUW2EKYfVmUYheBPxWWOn+If6n+h8Jeb/hGG821esA=;
        b=BXCuDsiruInVSDv8hMDuXgoBGtaBg80bI9aIyPs+LiNGvnWQJ4zTCDFB3dR72DnFTm
         tX3dWCeXbIWioAHHbTsc0bR4QnRJ/HRIvV26b7PfKDK1jr0HxrXU3HZaeSrUj0LY5PeK
         KwZ0a4eAlWrWHGZr2ugHZO4g/OXDY8uyDDzvuTW8xauAFi+tbTg60pi9dsz1gjGt/k8L
         eh+ku295s3j6pCiaxCcRLB2Y00B6W19pNmRTrdb+ZjJ8YOMCjRJIrDqHYcx7zg0l1E0r
         NLNkH6lFTGgA5BrtP5sHNtRYLy7IqklagnWAy1eMdfI/Sdhg2SDB0wEi/JyCEhKz945F
         ZoKQ==
X-Gm-Message-State: AOAM531nNsfVLxWlAL8Q4SDRKH9tl7zbP7kSaKsilfhkcl4tJsCbtUJk
	sbN9QZDksqCdLSSMVfG8B5LEM23Qr2y1UlFL
X-Google-Smtp-Source: ABdhPJx7+VHrmONZUB0T+LBwN3O18ufJ/DQUVqWyDiPUXXvtLsSeKZH4AbMZ+/xWYBtHxTj/z7MMNw==
X-Received: by 2002:aa7:83ca:0:b029:2e5:3a96:982a with SMTP id j10-20020aa783ca0000b02902e53a96982amr23095744pfn.12.1622572216598;
        Tue, 01 Jun 2021 11:30:16 -0700 (PDT)
Subject: Re: optimized conf for Win!= DomU
To: xen-users@lists.xenproject.org
References: <6495b90a87e8fe7af760c9075f7b4546@gmx.de>
From: David Hill <davehill@telus.net>
Message-ID: <81cf4e01-e187-7b21-599a-14ce6bf58e60@telus.net>
Date: Tue, 1 Jun 2021 11:30:15 -0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.10.0
MIME-Version: 1.0
In-Reply-To: <6495b90a87e8fe7af760c9075f7b4546@gmx.de>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US

On 2021-06-01 6:21 a.m., Chris wrote:
> Hi,
>
> I use xen with win10 and a passed-through rtx2070 for gaming.
> At the moment use this config:
>
> name = "marax"
> uuid = "e0de3cb7-3937-417d-8d63-b0993b377b6a"
> maxmem = 32768
> memory = 32768
> vcpus = 16
> rtc_timeoffset = 0
> localtime = 1
> on_poweroff = "destroy"
> on_reboot = "restart"
> on_crash = "restart"
> boot = 'd'
> vif = [
> "mac=00:16:3e:05:01:10,bridge=xenbr5,script=vif-bridge,model=e1000" ]
> parallel = "none"
> serial = "none"
> type = "hvm"
> loader = "/usr/lib64/xen/boot/hvmloader"
> bios = "ovmf"
> device_model_version = "qemu-xen"
> bios_path_override = "/usr/lib64/xen/boot/OVMF.fd"
> disk = [ "phy:/dev/mapper/marax_c,hda,rw",
> "phy:/dev/vg_lilith/lv_marax_d,hdb,rw" ]
> max_grant_frames = "128"
> pci = [ "01:00.0", "01:00.1", "01:00.2", "01:00.3", "00:1f.3" ]
> pci_permissive  = 1
> keymap = "de"
> vnclisten="0.0.0.0:2"
> pci_power_mgmt=1
> xen_platform_pci=1
> pci_msitranslate=1
> viridian=1
> hpet=1
> acpi=1
> apic=1
> pae=1
> videoram=16
> stdvga=1
>
> it works nice but does someone see something in the config what I can
> make better? For gaming there is never enough optimizing and power :D
>
> Thanks in advance!
> -- 
> ------
> Greetz
>
Have you tried Spice? You'd probably get better video performance. It's 
not super-complicated to set up.




From xen-users-bounces@lists.xenproject.org Tue Jun 01 18:42:54 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Jun 2021 18:42:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.135317.251423 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo9Lg-00035v-2S; Tue, 01 Jun 2021 18:42:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 135317.251423; Tue, 01 Jun 2021 18:42:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lo9Lf-00035n-V7; Tue, 01 Jun 2021 18:42:43 +0000
Received: by outflank-mailman (input) for mailman id 135317;
 Tue, 01 Jun 2021 18:42:41 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4B0B=K3=telus.net=davehill@srs-us1.protection.inumbo.net>)
 id 1lo9Ld-00035b-Pm
 for xen-users@lists.xenproject.org; Tue, 01 Jun 2021 18:42:41 +0000
Received: from mail-pf1-x430.google.com (unknown [2607:f8b0:4864:20::430])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 207ff19f-f0a8-492c-98db-3276ae69fe6a;
 Tue, 01 Jun 2021 18:42:40 +0000 (UTC)
Received: by mail-pf1-x430.google.com with SMTP id k15so194985pfp.6
 for <xen-users@lists.xenproject.org>; Tue, 01 Jun 2021 11:42:40 -0700 (PDT)
Received: from [192.168.2.12] (d173-181-74-129.bchsia.telus.net.
 [173.181.74.129])
 by smtp.gmail.com with ESMTPSA id w26sm15407559pgl.50.2021.06.01.11.42.38
 for <xen-users@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Jun 2021 11:42:38 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 207ff19f-f0a8-492c-98db-3276ae69fe6a
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=telus.net; s=google;
        h=subject:to:references:from:message-id:date:user-agent:mime-version
         :in-reply-to:content-transfer-encoding:content-language;
        bh=WLCEbsaz8ZjNAoKeTdgQE9ciqjd0oay5i+7k7gggUiM=;
        b=BVKSHRsuJRlxdfdU2RLsjdOf9sTugOwcbRXoiNCnxpU7urC17xRuHyzK45FigPNssd
         EFK8vUELdHmHsiDORBwA25YQZ3sCsWZcLzNpErlSX4m7J7TRz8bZWXCU8agc6W0BiQ2Y
         NXLBlEYduQUs6XWOzozxyy9lFWokouQF6izO9OmssKJIUda1LSIgizyXe4QnjYnYxO/R
         KAsg6fuQRhM+54R8Amwt/66mRwF/JHDXrlTx77mFtjxHs0V3m7QKnGH8oJFz/ETWQvL2
         +ywl/Tp/OB84aGveUL2uMG9ky2YrMD9O9DVzwbk2vCKfPMnxxscLyruy0ztVm5Ete6f/
         96ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:subject:to:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-transfer-encoding
         :content-language;
        bh=WLCEbsaz8ZjNAoKeTdgQE9ciqjd0oay5i+7k7gggUiM=;
        b=mMZ8CwpbHbdJM/HdLDk64E8FAhPJs/M0ACNnvJyTrbJgEOHXc4qtI/tS6JE09mB3v+
         akCk2YQExgrhENrlb8ZUgYEu4NSx4yVUhEw7LlbaI/E31OthgoCx+IkklEsSs7bdUaXu
         Dg4o22Nu70Rybc/l7Opf9xYFi7vDJSuQ4e9t1yOG7kThDUVtrlCl6FRnYPS4j8DhElvv
         vHQAg/YWy139MCL1Mgv1rKTYt7vnVh5jriaFxhZvMln8SHtRggxk1uzHPmGNFkraUnN8
         qWrOJL/JpJjtXqKNFZfbiLQzEFZqKffTVMF/u2ZvY8QlNJNt3HIBvvpmr3AWtpfUQy+L
         Gb5w==
X-Gm-Message-State: AOAM532ERgmLr7EBgbuMOkEz1H8Fbjlh2zGNCcLDXVfyrqXuTql1UWcb
	Rbnsz2vJs/X4rqFrGM9K1Afl+nuNCacvdjxU
X-Google-Smtp-Source: ABdhPJznUWDKhHF4PIb/CGMIvgl1PsueP11kUpEQMCGqY2+eyxLRHJPcF6nvy+kO4l8YMBEezHEZkw==
X-Received: by 2002:a05:6a00:1c4d:b029:2e9:c839:d2d with SMTP id s13-20020a056a001c4db02902e9c8390d2dmr12748122pfw.5.1622572959196;
        Tue, 01 Jun 2021 11:42:39 -0700 (PDT)
Subject: Re: optimized conf for Win!= DomU
To: xen-users@lists.xenproject.org
References: <6495b90a87e8fe7af760c9075f7b4546@gmx.de>
From: David Hill <davehill@telus.net>
Message-ID: <a938a235-61fd-120e-0f2d-98f320064ce6@telus.net>
Date: Tue, 1 Jun 2021 11:42:38 -0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.10.0
MIME-Version: 1.0
In-Reply-To: <6495b90a87e8fe7af760c9075f7b4546@gmx.de>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US


On 2021-06-01 6:21 a.m., Chris wrote:
> Hi,
>
> I use xen with win10 and a passed-through rtx2070 for gaming.
> At the moment use this config:
>
> name = "marax"
> uuid = "e0de3cb7-3937-417d-8d63-b0993b377b6a"
> maxmem = 32768
> memory = 32768
> vcpus = 16
> rtc_timeoffset = 0
> localtime = 1
> on_poweroff = "destroy"
> on_reboot = "restart"
> on_crash = "restart"
> boot = 'd'
> vif = [
> "mac=00:16:3e:05:01:10,bridge=xenbr5,script=vif-bridge,model=e1000" ]
> parallel = "none"
> serial = "none"
> type = "hvm"
> loader = "/usr/lib64/xen/boot/hvmloader"
> bios = "ovmf"
> device_model_version = "qemu-xen"
> bios_path_override = "/usr/lib64/xen/boot/OVMF.fd"
> disk = [ "phy:/dev/mapper/marax_c,hda,rw",
> "phy:/dev/vg_lilith/lv_marax_d,hdb,rw" ]
> max_grant_frames = "128"
> pci = [ "01:00.0", "01:00.1", "01:00.2", "01:00.3", "00:1f.3" ]
> pci_permissive  = 1
> keymap = "de"
> vnclisten="0.0.0.0:2"
> pci_power_mgmt=1
> xen_platform_pci=1
> pci_msitranslate=1
> viridian=1
> hpet=1
> acpi=1
> apic=1
> pae=1
> videoram=16
> stdvga=1
>
> it works nice but does someone see something in the config what I can
> make better? For gaming there is never enough optimizing and power :D
>
> Thanks in advance!
> -- 
> ------
> Greetz
>
Sorry - message took off when I tried to paste the Spice link in - my bad.

https://www.spice-space.org/

I see you're passing through the video card, so that should work best, 
but to the extent you're using vnc or equivalent, Spice would be an 
improvement.

It's not super-complicated to set up. You need Spice server to be 
enabled on the host - it's installed by default in major distros so 
that's probably not an issue.

Download the Windows "guest" binaries from the download page and install 
to Windows. Use virt-viewer as the client to access the guest.

On the other hand, since you're passing through the graphics card,  
maybe there's no need for either vnc or Spice?

Here's the relevant section of my cfg file:

#VIDEO
videoram                = 128
vga                     = 'stdvga'
# 'qxl' doesn't work well in Linux yet 2020.02.10

#SPICE
spice                   = 1
spicehost               = '0.0.0.0'
spiceport               = 6001
spiceusbredirection     = 4
spicedisable_ticketing  = 1
spicevdagent            = 1
spice_clipboard_sharing = 1
soundhw                 = 'hda'

# SPICE notes
# https://www.spice-space.org/index.html
# Be sure to install spice-vdagent in guest after install
# for seemless mouse mode.
# Using Remote Viewer (i.e. virt-viewer), connect to:
# spice://{localhost}/{host_ip_address}:6001
# Enables redirecting up to 4 usb devices from spice client to domUs
# spicedisable_ticketing enabled is for no spice password.
# To use spicepasswd, replace with:
# spicepasswd='test'
# Intel hd audio emulated card used for spice audio

I had trouble with veridien = 1 at one point



From xen-users-bounces@lists.xenproject.org Fri Jun 04 18:41:37 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Jun 2021 18:41:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.135354.253827 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lpEkN-0005Be-PD; Fri, 04 Jun 2021 18:40:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 135354.253827; Fri, 04 Jun 2021 18:40:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lpEkN-0005BW-KT; Fri, 04 Jun 2021 18:40:43 +0000
Received: by outflank-mailman (input) for mailman id 135354;
 Tue, 01 Jun 2021 20:44:30 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=MfV2=K3=chao5.net=perun@srs-us1.protection.inumbo.net>)
 id 1loBFW-0008C7-0h
 for xen-users@lists.xenproject.org; Tue, 01 Jun 2021 20:44:30 +0000
Received: from mail.kaminski-berlin.org (unknown [134.255.253.37])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id d2c25c15-6682-4f55-821b-987fae1d9fe7;
 Tue, 01 Jun 2021 20:44:28 +0000 (UTC)
Received: from mail.home.chao5.net (mail.home.chao5.net [192.168.50.100])
 by mail.chao5.net (Postfix) with ESMTP id 34BE180032B;
 Tue,  1 Jun 2021 22:27:54 +0200 (CEST)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: d2c25c15-6682-4f55-821b-987fae1d9fe7
MIME-Version: 1.0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=chao5.net;
	s=20210205home; t=1622579260;
	bh=9jJ9qeps7XsePDn7zDbFH6r0YHN6NLRtzaZ80eiS7Mo=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References;
	b=k+SsJJg9KKOQIxqAXvh30Wadk6PAcA3UCfGl3yuXoFM9atAyAsPRPPygu9+sXwnbt
	 /9A6ai0XIhr4jefIQjtfj6cxGptRqtudLcNME7Bi5NCXUUq390szzCQteDAkQqpqmN
	 6KFVOZ8rZro2014jV4heAQCjwzTr6yZv4dKPzvsBpVZVJ5tYmgEV81h97VZNGvoByW
	 ViNap7wYG9dHPK/Rzn+cO2VLsJG0qBHwaAqawlkDJ0573LQJs69NH5dazzIK7SwxAx
	 vUaBAC72bmiLrkL986g4oELPaO1Doa5szuY/PaWF+o0Yh21Rxz+/SwamrYPPb5gibt
	 Ri7z7lII+VlQQ==
Date: Tue, 01 Jun 2021 22:27:37 +0200
From: Perun <perun@chao5.net>
To: David Hill <davehill@telus.net>
Cc: xen-users@lists.xenproject.org
Subject: Re: optimized conf for Win!= DomU
In-Reply-To: <a938a235-61fd-120e-0f2d-98f320064ce6@telus.net>
References: <6495b90a87e8fe7af760c9075f7b4546@gmx.de>
 <a938a235-61fd-120e-0f2d-98f320064ce6@telus.net>
Message-ID: <33e2407a62a892f65ac233f6957525ac@chao5.net>
X-Sender: perun@chao5.net
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit
X-Synology-MCP-Status: no
X-Synology-Spam-Flag: no
X-Synology-Spam-Status: score=-0.101, required 5, MID_RHS_MATCH_FROM 0, FROM_HAS_DN 0, TO_DN_SOME 0, TO_MATCH_ENVRCPT_ALL 0, MIME_GOOD -0.1, __THREADED 0, SUBJECT_HAS_EXCLAIM 0, RCPT_COUNT_TWO 0, RCVD_COUNT_ZERO 0, FROM_EQ_ENVFROM 0, MIME_TRACE 0, __NOT_SPOOFED 0, __BODY_URI_ONLY 0, __KHOP_NO_FULL_NAME 0, NO_RECEIVED -0.001
X-Synology-Virus-Status: no

oh thx... I know spice. I use vnc only for trouble case.
I use directly the screen on the nivida graphics or RDP.

Am 01.06.2021 20:42, schrieb David Hill:
> On 2021-06-01 6:21 a.m., Chris wrote:
>> Hi,
>> 
>> I use xen with win10 and a passed-through rtx2070 for gaming.
>> At the moment use this config:
>> 
>> name = "marax"
>> uuid = "e0de3cb7-3937-417d-8d63-b0993b377b6a"
>> maxmem = 32768
>> memory = 32768
>> vcpus = 16
>> rtc_timeoffset = 0
>> localtime = 1
>> on_poweroff = "destroy"
>> on_reboot = "restart"
>> on_crash = "restart"
>> boot = 'd'
>> vif = [
>> "mac=00:16:3e:05:01:10,bridge=xenbr5,script=vif-bridge,model=e1000" ]
>> parallel = "none"
>> serial = "none"
>> type = "hvm"
>> loader = "/usr/lib64/xen/boot/hvmloader"
>> bios = "ovmf"
>> device_model_version = "qemu-xen"
>> bios_path_override = "/usr/lib64/xen/boot/OVMF.fd"
>> disk = [ "phy:/dev/mapper/marax_c,hda,rw",
>> "phy:/dev/vg_lilith/lv_marax_d,hdb,rw" ]
>> max_grant_frames = "128"
>> pci = [ "01:00.0", "01:00.1", "01:00.2", "01:00.3", "00:1f.3" ]
>> pci_permissive  = 1
>> keymap = "de"
>> vnclisten="0.0.0.0:2"
>> pci_power_mgmt=1
>> xen_platform_pci=1
>> pci_msitranslate=1
>> viridian=1
>> hpet=1
>> acpi=1
>> apic=1
>> pae=1
>> videoram=16
>> stdvga=1
>> 
>> it works nice but does someone see something in the config what I can
>> make better? For gaming there is never enough optimizing and power :D
>> 
>> Thanks in advance!
>> -- ------
>> Greetz
>> 
> Sorry - message took off when I tried to paste the Spice link in - my 
> bad.
> 
> https://www.spice-space.org/
> 
> I see you're passing through the video card, so that should work best,
> but to the extent you're using vnc or equivalent, Spice would be an
> improvement.
> 
> It's not super-complicated to set up. You need Spice server to be
> enabled on the host - it's installed by default in major distros so
> that's probably not an issue.
> 
> Download the Windows "guest" binaries from the download page and
> install to Windows. Use virt-viewer as the client to access the guest.
> 
> On the other hand, since you're passing through the graphics card, 
> maybe there's no need for either vnc or Spice?
> 
> Here's the relevant section of my cfg file:
> 
> #VIDEO
> videoram                = 128
> vga                     = 'stdvga'
> # 'qxl' doesn't work well in Linux yet 2020.02.10
> 
> #SPICE
> spice                   = 1
> spicehost               = '0.0.0.0'
> spiceport               = 6001
> spiceusbredirection     = 4
> spicedisable_ticketing  = 1
> spicevdagent            = 1
> spice_clipboard_sharing = 1
> soundhw                 = 'hda'
> 
> # SPICE notes
> # https://www.spice-space.org/index.html
> # Be sure to install spice-vdagent in guest after install
> # for seemless mouse mode.
> # Using Remote Viewer (i.e. virt-viewer), connect to:
> # spice://{localhost}/{host_ip_address}:6001
> # Enables redirecting up to 4 usb devices from spice client to domUs
> # spicedisable_ticketing enabled is for no spice password.
> # To use spicepasswd, replace with:
> # spicepasswd='test'
> # Intel hd audio emulated card used for spice audio
> 
> I had trouble with veridien = 1 at one point


From xen-users-bounces@lists.xenproject.org Fri Jun 04 18:56:44 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Jun 2021 18:56:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.137004.253845 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lpEzU-0007DC-87; Fri, 04 Jun 2021 18:56:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 137004.253845; Fri, 04 Jun 2021 18:56:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lpEzU-0007D4-3p; Fri, 04 Jun 2021 18:56:20 +0000
Received: by outflank-mailman (input) for mailman id 137004;
 Fri, 04 Jun 2021 18:56:18 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NSrh=K6=onlineschubla.de=paul@srs-us1.protection.inumbo.net>)
 id 1lpEzS-0007Cy-MB
 for xen-users@lists.xenproject.org; Fri, 04 Jun 2021 18:56:18 +0000
Received: from DEU01-BE0-obe.outbound.protection.outlook.com (unknown
 [40.107.127.114]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id fb27f8f2-5024-418b-847a-011866f61efe;
 Fri, 04 Jun 2021 18:56:17 +0000 (UTC)
Received: from FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:45::10)
 by FR2P281MB0203.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:c::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.12; Fri, 4 Jun
 2021 18:56:15 +0000
Received: from FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM
 ([fe80::184f:c6ec:f202:bf2d]) by FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM
 ([fe80::184f:c6ec:f202:bf2d%8]) with mapi id 15.20.4219.012; Fri, 4 Jun 2021
 18:56:15 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: fb27f8f2-5024-418b-847a-011866f61efe
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZMhBd6LM0a49l9vMsYrbE8Q7DNHVKD1Q7q89dMu9bDyU02OV0F2fP3J7R1xoGMqR3vKKNFPMsmPuwmiRZTdZUS7R8DTF4E5wccu3sBRNyOpLiVoOocFSI/cPYBAZITclrn4YVW8QHfuUlHSoX+Av39kTcXDO9SvgS0B729FlPwvIpS3As4duPPKNDPt3YMLN7TONBbNWrb3o0F41p1SiY5T/tSN4Ge3KuRnH/cVwPS5Xg2NknBCTqJrVnzZawCcVe0d9btEwwUBh4DaG6DjV5MNmBdf0k3cghAZ3x72J33W4jdki+u9nrJsRt0jy+4i2iO1vX9iUWjC8vOWtDbKQ7Q==
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-SenderADCheck;
 bh=Ck2IURPuxlesQZALNg7oKaoMDh+99DEKvkNwCy3GEbA=;
 b=Ok+Ig1cCaJ/lcV9lnqlGfFZbvW7Om+rO8SmxQ+Te+IGPXQJl+SJySww6L4lveI0dpG5cRIg0S+eWvlW99Vw/XACj8EPVDdr/eSYrJMWT6kXE1heJtDpAc4emXeIPaoGBosfaOLi6O9WYY+NHsRS/IM4+/pYFB35oE/XwJl9eQX1GQ5HJYC8kxBd0Nx9oZsjIQPJCrZZr1EKD0PJ20qJpoKFpUfMqsLuIIP20EOljOJ+0h5EUh75P/SsYXLTmzJ7UAP+4KNADv8WXcregbVMWm3jElToyIPKW+7l8XVnbulZcOi5JA81jfQ1gIIgdwtOKg5qSQNluYLw00+wxV2C0Xg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=onlineschubla.de; dmarc=pass action=none
 header.from=onlineschubla.de; dkim=pass header.d=onlineschubla.de; arc=none
From: Paul Leiber <paul@onlineschubla.de>
To: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>
Subject: AW: Windows DomU: PCIe passthrough issues
Thread-Topic: Windows DomU: PCIe passthrough issues
Thread-Index: AddZcre6KpUIJDJUT2CBJ+nJr1ACXw==
Date: Fri, 4 Jun 2021 18:56:15 +0000
Message-ID:
 <FRYP281MB05828B828A728A34CAAB0CD1B03B9@FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM>
Accept-Language: en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: lists.xenproject.org; dkim=none (message not signed)
 header.d=none;lists.xenproject.org; dmarc=none action=none
 header.from=onlineschubla.de;
x-originating-ip: [2003:d2:1f0c:31f0:ec06:521f:f3b8:9a18]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 24e98ae2-3c33-468b-f7ac-08d9278a6e38
x-ms-traffictypediagnostic: FR2P281MB0203:
x-microsoft-antispam-prvs:
 <FR2P281MB02036043B51725E47F361762B03B9@FR2P281MB0203.DEUP281.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 CAfPukOYDupBsKjINiyblxNxkVdnOLiNSy1HO/3Mykp7idZGZjs2An/q7+tPStWRoezIxcutUN98qNgxLTJ4wCmR3Vxid7GyDSblGQD0teMCbzu7AtkJYIMkI0oDfVJaHGFoDitR24WmQuEJJzEigkUcttrWo7NKh9K1AqspIiWwj/s+LmB36Wt6sjEchVf1fMlrtxB6KZIl5UfeAOorlZLVGeQ6raMXu9VwoGXk9kzhynpzGhBKrYlUeEV0wu2C1QeiuWIAKDViVzYJ6fq3qH/Ln/q2jIaiB1RojkhOgsx2f13yK3rwATj5Dx96QZyzduK8T9bAkQ1V9qWamRiPBXtP+Wje+scw/E4as7Q0gkoIfeU7ZJh5fCbR2I/kFq9Ki9DJY4e1tMEoZBEh39jz3SakDcIwoqrICCKxVW0eYMVhJsuRfPDZ8aKpIv23obiRrNWLUEYkY2b7oA+S/gUf2VUu5uPgLAMZkCCdE8ijEgtr06yjfXM6ZjDNgiF5aWuHr8TaNajmbjdUnF0Jsd36KbZAiZcniXzCU+c2W4uaCBuWcbbgJyxxlgLSKhEURmaDStKWibrdOGceawj9Jsn69pFTQONHm1ctHCoF3VDXF74tCuOmZxpYEWz2QdI8POHg11GYapUji9jnMPGTGcl7Q7tmowF54FJu8UCopIceJ/zkKNRWlZfOWZ4ZxGCbK+QUF1EREVxDV4etsOkRzIQwOg==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(136003)(346002)(39830400003)(396003)(376002)(366004)(66946007)(478600001)(66476007)(76116006)(316002)(122000001)(33656002)(83380400001)(9686003)(64756008)(38100700002)(66446008)(186003)(8676002)(66556008)(7696005)(6506007)(52536014)(71200400001)(5660300002)(6916009)(8936002)(2906002)(86362001)(966005)(55016002);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata:
 =?us-ascii?Q?bjERMquGnRJ4VZIN425TNLQqghxIJSXAq9npIbYUMNwWqbguOShs1Jw01/sT?=
 =?us-ascii?Q?BqzmPeJbdD9YXySvuyKMnWR9jHNIvs+7Qoi4zV+D1eCjbGkH25IAr9hIkUDa?=
 =?us-ascii?Q?1Y4XofvlT/93M6fARKRoiEJPxe4V265tUWgJzSVnajeQXxbjSGHgS60Lt1tR?=
 =?us-ascii?Q?wXQcCh0nr8UANfZInGpzwJ8dIuVgAVYziJtUv7hgBm3wz5Dy8Prdr7bs3PV5?=
 =?us-ascii?Q?bGQLbCOofAbsA3KUzmB6bbZBSiFqDfNYzSFGowuGjDjsdRMds+sYpCWdTGL3?=
 =?us-ascii?Q?vkXK1ohPwDF7IemwXHyHWafHchUcfJ6oHb9+BO0v4/RQDLVbvfr+d+O3wJcF?=
 =?us-ascii?Q?y+3aGyNmTyLhW3jn/BdRXyCAztSLMbHXhwei9ANYznN3d55IMP65IawYsXnA?=
 =?us-ascii?Q?P5SIWHUPuXe+7hUurX2DgPEvfaiR1ljvEPYVSTe3jUZT+R/KyRrqLbplRPzO?=
 =?us-ascii?Q?Lk9DxQ7sZSpqe1V6lWguLwwr7NJJbQDHqDEMw8VSj3ZjIA8fzOuzMorjeCpx?=
 =?us-ascii?Q?14I2HLOUeVffGL+5gEuHyHvijR1+rKb3g9PXyJveLUy5VXMJTWk8GIW/AVlo?=
 =?us-ascii?Q?cFsp7xLZiC9ZbAzI0LRt9w7Jid4sa4bXVZLzkRIon5IShxmsWmvJXtmAArtN?=
 =?us-ascii?Q?qjIkuX13td3VrJx+QFeBWjCjozB3ogAJnMqYnuNcwnp6jVJrivyj9y4hmOfg?=
 =?us-ascii?Q?yaYTAMELRjzOHuGgqyUYM4DB6Nl0gA9xRXbva1knryjNi206Lu8fPLu1ZbqN?=
 =?us-ascii?Q?Q1X5J/9Ha43mKuzgyl8aWOud3lmDzUlpjcFVDwqB5LZSdCollHWyYnxtdbo7?=
 =?us-ascii?Q?Opr/CHEXwgtldsnB8xnLbw7DRL+KZsUea82jHA8it4yQtw1W9Q9E+tw9WrxS?=
 =?us-ascii?Q?o+qO7VOGz2QiiSUZ7Xmyfy5vq/cxLtEdpY93k6ZWOsTy1fXrZTnD5G496Rvs?=
 =?us-ascii?Q?krlG+2WUCt1lIWXaGj9XJB1J8/pmvmnyarkWRvLr+C3zCFsg+LK+TlpAg0OB?=
 =?us-ascii?Q?aQiXpowjTrc/H9wW4IQO6hU3mcHAPt+BA25r2AsxlXCWZjWZpk+ukh2J/xUF?=
 =?us-ascii?Q?bVVXP1n+DaHjDj4UCIe6ThHI58rXoPy8IcjI7Ng0LnYU+JnxZcS/JvWtaMHC?=
 =?us-ascii?Q?yJlHTa5ZW/wTC7wzdLujZpOKT+W4jyevdjSDVejbuL4CzaPoZs6LS+n9yt9N?=
 =?us-ascii?Q?nVjPCQJG5oA2sv7y6hh9wL5yJfQ2fwa7UO1voeeHJfOV4/zkCpdOrHmJnKUI?=
 =?us-ascii?Q?+Psca0BZ9gGbJWryRGW/BeV5tbmS7Qf/Jsg1kuBBZ+RgTq8FCUpEsiqhkypl?=
 =?us-ascii?Q?2GN5Wzk7iuNg9Owg0uSGGnUyuDd8X6jbQ2vf1M8MavdY4NQWZ935YUefgVuE?=
 =?us-ascii?Q?9dC1JDA=3D?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: onlineschubla.de
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 24e98ae2-3c33-468b-f7ac-08d9278a6e38
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2021 18:56:15.6698
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bfc8b046-4d00-4e98-8679-43c06bdec9db
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: McX6LL5z7WI9jwgiWK6wVR+NPAPCGQ/Sz7qk5jTQaW44S16DB+0W4X3KG4CdfIgMzKZOwDggDnoRmpGkh9pVNw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FR2P281MB0203

> Von: Paul Leiber
> Gesendet: Montag, 24. Mai 2021 22:39
>=20
> after getting my Windows Server 2012 DomU up and running, I have
> problems with reliably passing through my PCIe TV tuner card (Hauppauge
> HVR-2205).

Further testing has lead me to the suspicion that there is an incorrect beh=
avior, possibly a bug. It seems that every time I do a _reboot_ from within=
 the Windows DomU, the PCI device does not get attached to the DomU. It is =
immediately available for attachment in the Dom0 when I check for it, and I=
 can reattach it to the DomU with "xl pci-attach" without any problems. Bes=
ides the effect that the tuner card gets assigned a new instance number in =
my TV software and I therefore need to reapply some settings in this softwa=
re, the card works normally.

If I _shut down_ the DomU from within the DomU (with Windows shutdown mecha=
nism) or the Dom0 (with "xl shutdown) and restart the DomU with "xl create"=
, the PCIe device gets attached automatically at DomU boot and the above me=
ntioned side effects (new instance number, reapply software settings) do no=
t occur.

I could reproduce this behavior with a different TV tuner card from another=
 manufacturer, so it seems unlikely that it is related to the specific devi=
ces I am using.

> The boot entry has the following parameters:
> dom0_mem=3D1024M,max:1024M xen-pciback.hide=3D(01:00.0)

I figured out that giving kernel boot option " xen-pciback.hide" is not nec=
essary as the driver is not built into the kernel, therefore I changed the =
parameters to:
dom0_mem=3D1024M,max:1024M

The device is assigned to xen-pciback via /etc/modprobe.d/xen-pciback.conf =
(there is no driver on the Dom0 for the tuner card, therefore no precaution=
s for not loading other drivers are necessary, I think):
options xen-pciback hide=3D(0000:01:00.0)

While doing trial and error, I changed the pci line in the Xen config file =
to:

pci=3D['01:00.0,permissive=3D1,power_mgmt=3D1,seize=3D1']

But adding "seize=3D1" didn't change anything.

> Logs from /var/log/xen, dmesg and /var/log/messages and Windows DomU
> didn't seem to show relevant errors, but can of course be provided if
> needed.

Checking the xl logs more thoroughly, I now found the following lines:

Waiting for domain matrix (domid 8) to die [pid 3113]
Domain 8 has shut down, reason code 1 0x1
Action for shutdown reason code 1 is restart
libxl: warning: libxl_domain.c:1739:libxl_retrieve_domain_configuration: Do=
main 8:Device present in JSON but not in xenstore, ignored
Domain 8 needs to be cleaned up: destroying the domain
Done. Rebooting now

Searching for this exact error message, I found the following quite old bug=
 report which sounds suspiciously similar to my experience, only for PV Dom=
Us:
https://bugzilla.redhat.com/show_bug.cgi?id=3D233801

1. Is it possible that this bug is still existing in my rather recent "out =
of the box" debian setup?
release                : 4.19.0-14-amd64
version                : #1 SMP Debian 4.19.171-2 (2021-01-30)
xen_version            : 4.11.4

2. Do you have any idea what I should do now? Any more testing I could do? =
Should I mention this in the Xen developer mailing list? File a bug report =
somewhere (where?)?

I appreciate any advice.

Best regards,

Paul


From xen-users-bounces@lists.xenproject.org Fri Jun 04 19:04:47 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Jun 2021 19:04:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.137019.253862 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lpF7Y-0000fe-5V; Fri, 04 Jun 2021 19:04:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 137019.253862; Fri, 04 Jun 2021 19:04:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lpF7Y-0000fX-23; Fri, 04 Jun 2021 19:04:40 +0000
Received: by outflank-mailman (input) for mailman id 137019;
 Fri, 04 Jun 2021 19:04:38 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NSrh=K6=onlineschubla.de=paul@srs-us1.protection.inumbo.net>)
 id 1lpF7W-0000fR-MX
 for xen-users@lists.xenproject.org; Fri, 04 Jun 2021 19:04:38 +0000
Received: from DEU01-FR2-obe.outbound.protection.outlook.com (unknown
 [40.107.135.129]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id f7989825-5108-4b46-830d-bfdbf212f534;
 Fri, 04 Jun 2021 19:04:37 +0000 (UTC)
Received: from FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:45::10)
 by FRYP281MB0407.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:42::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.14; Fri, 4 Jun
 2021 19:04:35 +0000
Received: from FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM
 ([fe80::184f:c6ec:f202:bf2d]) by FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM
 ([fe80::184f:c6ec:f202:bf2d%8]) with mapi id 15.20.4219.012; Fri, 4 Jun 2021
 19:04:35 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: f7989825-5108-4b46-830d-bfdbf212f534
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ahVVI7vMA6VNeVkz3RYdJwuLXwtmG5Fvr9dwuvU7I/2LOtIyi9ZYehlQJzt1ugHQQmBsUhXLX9fLx80DGxygv2yWnMmnwVsgQKtXCS731xTSBLWFVvnGJiE7FmQuioWrrr1vhedR+3DdjWYVwh23RVsdelQKr7+0vqdwK5lTaGLU7udB1Bo6QM+dsSk66rH/uOV6RT0l0K0jYC7eIA6XF3+6SeZtX32RVBhk1Q7qNWd0vrZ8iED8S/ko1Ob9Cfafsxguxg2GkrEZAfS/CMk+kdMOingxxf9hwpRRSEVNYHu+PSs7F5WQk6y2IEloop6YnMKgObvmyrNSLRGxOnpaVQ==
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-SenderADCheck;
 bh=6FCYwFc0lj6/rqpks5gi2lmgAZ4UbVqc9UZeLg3RzyA=;
 b=deD0tNbfOXMNDuJf0Edx4ETtfIAxa3UMWP845DAM6C7OMiKPIgbpiR46GRL0Loq9LNgqHALho3hPzvGQi5eS5ah7N3mUpxpIXDya7SB+E9BnM7h+L7LC2xpAxqc7oMBIaks9D+t7C8ARU/B0FipUC6gfPL0lPOB93iDIXPN0EhOnKxbro3IYwU/if/5zs5iinuGLjX7VpTMXynpkSGlbs6rZylpsib9acfQtB1CUf565I8w4SBAUA6hSZ9fyBWXJIW/dxVC6DCK2gvHfbrkCtftslrW69j8fN90z7eaIIvb91bJGyWs6AunucaI8J+t57P2Nd5C0oPo8aspXRaLAng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=onlineschubla.de; dmarc=pass action=none
 header.from=onlineschubla.de; dkim=pass header.d=onlineschubla.de; arc=none
From: Paul Leiber <paul@onlineschubla.de>
To: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>
Subject: AW: AW: Windows DomU: Network Issues
Thread-Topic: AW: Windows DomU: Network Issues
Thread-Index: AddCrwfWjHWL3XrdTDWzkWZFVWFdsADLd9mwAGbJI4AEftqn8A==
Date: Fri, 4 Jun 2021 19:04:35 +0000
Message-ID:
 <FRYP281MB058261BD44E97D0D37BADDC5B03B9@FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM>
References:
 <FRYP281MB05820EE3CFA3E6246AE4B4A0B0589@FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM>
 <FRYP281MB0582725C54BD000F89505962B0549@FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM>
 <42de7553-2768-88bb-f352-d915d8a15530@telus.net>
In-Reply-To: <42de7553-2768-88bb-f352-d915d8a15530@telus.net>
Accept-Language: en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: lists.xenproject.org; dkim=none (message not signed)
 header.d=none;lists.xenproject.org; dmarc=none action=none
 header.from=onlineschubla.de;
x-originating-ip: [2003:d2:1f0c:31f0:ec06:521f:f3b8:9a18]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 81f0f0ec-cdc0-4c14-177d-08d9278b983a
x-ms-traffictypediagnostic: FRYP281MB0407:
x-microsoft-antispam-prvs:
 <FRYP281MB04074856C1483E3A9F5996C0B03B9@FRYP281MB0407.DEUP281.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:7219;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 CkZyNUpbIyLE0vDUwNAnJ0MsquZm6h6lACGotDxKONJ/BpM/AGwZ6cQpWxY+0SxBqtnSiNdcEE+b0sjqbb7jDGKakG7nidAeRdlYAPecRBygks669OAhSvmZotfWsZVTaZZHsP1gJdYj6E3/DgK5Ri2mGeWfMhAmF6uCM2z76Jye1GOSdJS+xT6ss4JwSuGeR4KiIzD75Na7WMhBzpWRAaZnO8uJT+wmofh53bLHBjd/mL/uqQuOK0oEnt4AOY8xmx0bpCywsiUy/HVRd04Q4IPKFNi7ZbrOaEeJ+7qZdjNOwMUHC0dyK7n3szQLN4bx455bKdM8pPzsjnZyh7S77YJFjssKFZFQl1tUjUW2lwz/s5beQwnqUCJp2G5p+z/r3KTaaTNqOS0kMI+sQk9Dj+kNzT7ztpQUbwt4aCxLkXKnr2pt+ymt6ip8ipRvB2a2I8kRwHAtEViQxuKK9ygf2aOjIvl67x4nOyYE3MmkNjR6QFTSRlXBL5qYtSpZelpR3UDNib4T5Sc9x4mvdLoYDTWQvuYFv3gf6lFSL1OAxpWj/zVtz7ue00Wl4/nzoFNJ/g/sw19pCYcXMn9c0PD41XPn9X6MNTlkI/+G2nbXd6lPk7sgcPDl09IpUoSbD3FPPuX1aR8CeHV5gooKTJ8Fhn34sGyThk3fDPcI6DQBIdMJpOqZyYW65RhwZcK54TxNkBxprohgoAyQjJ5yMqYotQ==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(136003)(396003)(376002)(39830400003)(346002)(366004)(66556008)(66476007)(66946007)(52536014)(76116006)(64756008)(6916009)(86362001)(5660300002)(966005)(83380400001)(66446008)(8936002)(186003)(478600001)(7696005)(33656002)(9686003)(55016002)(2906002)(15974865002)(6506007)(4744005)(122000001)(38100700002)(8676002)(316002)(71200400001);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata:
 =?utf-8?B?YXNYVWozR1NOcS81c3VzQWo5MytEbGhwc3VVMXVPVTFpTGlWSytGbGw1Tk05?=
 =?utf-8?B?cTNKVkNaM2daa2Qrb3R1LzNGdTdaY0svU01MeVBNYVJLNlpWaHQxNnREc2c4?=
 =?utf-8?B?RUdsak1mNG5sZC9rb3ZsK3FRZWRzcXFuYTBxeXRLaU5lNW9mcExJbDIzWngv?=
 =?utf-8?B?UGkyRlJKMVJ5TXFZTG9CY3M1OElleFMvUUJDZHlQUlBweU5rejQyTWlYMWhx?=
 =?utf-8?B?LzNxbmhLMUFtaTNiS0c1cGVFREFtZVBSQkIrSHRPUHZGVjh2eHh4TG84d1Y5?=
 =?utf-8?B?aXZ5L3lOOWo4VHk2WDFteFF6UUphM1VpYW1KU3NYa3kvalhKa1ZtNVM1Tk5Q?=
 =?utf-8?B?NkFhQXBjb3BQZjBZaTBPTXRkVzQvWkRCUDFSMWJlQy9mOUNnZm5hL3pHemlL?=
 =?utf-8?B?SUxGNHhTSDRYR0tVKzZkaUhwNXRXei8xOHZ5RW5OTlFRWkZmekc2a0Y4YXdo?=
 =?utf-8?B?ZXNQcjJoUFVSR2U5YnA1Y1BDYnlSRjdXQWc4Ly9RRW9leXNxbG5oeFI5Y2hD?=
 =?utf-8?B?UTNHTm5Qc2N1TURYNUF0bGJDVnErcEI4eW9xS2JNRnMvemRMTkdQRnFsemo0?=
 =?utf-8?B?NU4veGRReVhwK1I3Nlh4d0tEM3pBZEFiZ1BnMmswaThHbERHWUJQcTE1M3Zy?=
 =?utf-8?B?REYyV2R3SEpQWUg4LzAzOTRvenBtMW1Sand5QXVXRktMTW1jeklJenE0enlu?=
 =?utf-8?B?UDN1WEV2T0NLNmVOQ0xTOW8vd1BIMlg2cG5PdUZXcFREeDF2MmNOZXdLazZT?=
 =?utf-8?B?VDVsK2Z1bTZMTWlmeWZiNXRFdXgzczU2Y1B6aHh3L1NDSlpKeHlmOEhZczNn?=
 =?utf-8?B?dHJWMUVGSkxKVHM1RnpLRjVjRmNBa1o2a1V0eC8waytRR3lLbFhBS0I2cnVF?=
 =?utf-8?B?cHdhUVdQVVU2YTArbTZSdnJuNEFiMmtoelVLVkg3ZjlLVWd2NjRHQVFYZ2RM?=
 =?utf-8?B?eVJoMzh2MjZHZmVUbzFnNmRLazVnZ0N3aS9HbFUwTkdpZ1p1bkhya0hCNUY3?=
 =?utf-8?B?MzFYWkwrbEdLN0lPSFVxbStSRjhsd0J1cUZCYW9CTE5iU0x2YWY2OCtjYmdU?=
 =?utf-8?B?V21BODBhaGF2dWpwZnBxRlVsRVRubURBYVFUUmpNbkF4TnRIbzI3VWJhU2hO?=
 =?utf-8?B?MlZDUThENGE0bkRZcjJqLzdKVSsyc1lMTHUwcXVZbndGK1QzeU51QldrRXJy?=
 =?utf-8?B?aVAwcjIyOVU3RUZMd1lJZG9QTnFEOXZITzRMZ0VibzZkRTlVUDJoZEU3NjIv?=
 =?utf-8?B?bGNkUk15VTk4MnIvREFZd05MbzN2dnpuN0xTQkRvSmZJcHNTTndQakJrRlNE?=
 =?utf-8?B?K29EM0FpM0l1YjQ0SXZPLzB2aHJManBzMU43RXZuS1NWUEpoTlV3M3Vpbi9s?=
 =?utf-8?B?cGY5RHNFUVlqN0Y4VWlqa3RzaDdvZzRaNGVHS01YY3d6Y1V2cUJWSkRDeTZN?=
 =?utf-8?B?MDI2eldybC9sZ2d4WGpZQTFOd2NvUDIrN2VEMDMwYS8wKzVranB2K25lNHoz?=
 =?utf-8?B?TTNsclNIZW9yN09vdDFhWVNINkwzRkRmQ3FSU1l0bDR0ZktpNE4xS3VvSmkr?=
 =?utf-8?B?ZytuNzJxSkw3MkRxRlgwV2RiRWx6c3YxMW5CeVVvZC9NWWl5U3ZMOStkdVpH?=
 =?utf-8?B?VnBaT3BzcmxDOGRsTDNzTWNteG9obmhINUNyTHpVQ0FEOTR0YnIyQmdHcFFN?=
 =?utf-8?B?d1FONk1tNmJwL1R0bVpIcjk5Vi8rdE5SdFFIb1g1WDZsUVpCYVI5ZGpDWjY4?=
 =?utf-8?B?Ymh4Wkd0QytrQmowRi90QVAvUEhRbUozMkg5bUpsbFpLVXIxeEJJRjNwT0Vs?=
 =?utf-8?Q?KEFWJAwpVIsGvgq48omSHL2nUj3mRrNi3uT1c=3D?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: onlineschubla.de
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: FRYP281MB0582.DEUP281.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 81f0f0ec-cdc0-4c14-177d-08d9278b983a
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2021 19:04:35.7039
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bfc8b046-4d00-4e98-8679-43c06bdec9db
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: vpsZzUVi29gRhaKj3NJenKag4LEuqO3cupQBA+70JaA2xy2+CJaKw9pcpoMWXOHGMYTFqyHhnsvvvygWYRehDA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRYP281MB0407

PiBWb246IFhlbi11c2VycyA8eGVuLXVzZXJzLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmc+
IEltIEF1ZnRyYWcgdm9uDQo+IERhdmlkIEhpbGwNCj4gR2VzZW5kZXQ6IE1pdHR3b2NoLCAxMi4g
TWFpIDIwMjEgMjM6NDUNCg0KPiBJIGFsc28gc3VnZ2VzdCB5b3UgaGF2ZSBhIGxvb2sgYXQgU1BJ
Q0UgKHNlZQ0KPiBodHRwczovL3dpa2kueGVucHJvamVjdC5vcmcvd2lraS9TUElDRV9zdXBwb3J0
X2luX1hlbiBhbmQNCj4gd3d3LnNwaWNlLXNwYWNlLm9yZykgYW5kIGNvbnNpZGVyIHVzaW5nIGl0
IGluIHBsYWNlIG9mIHZuYy4gQXQgbGVhc3Qgb24NCj4gbXkgc3lzdGVtLCBpdCBkb2VzIGEgYmV0
dGVyIGpvYiBvZiBtb3VzZSBoYW5kbGluZywgVVNCIHBhc3N0aHJvdWdoIGFuZA0KPiB2aWRlbyBw
ZXJmb3JtYW5jZSBnZW5lcmFsbHkuDQoNCkkgZ290IFNQSUNFIHVwIGFuZCBydW5uaW5nIGluIHRo
ZSBtZWFudGltZSwgaXQgaW5kZWVkIHdvcmtzIG11Y2ggYmV0dGVyIHRoYW4gVk5DLiBUaGFuayB5
b3UgZm9yIHRoZSBoaW50IQ0KDQpJZiB5b3UgYXJlIHN0aWxsIGxvb2tpbmcgZm9yIGltcHJvdmVt
ZW50cyBmb3IgdGhlIGhvdy10bzogSXQgdG9vayBtZSBxdWl0ZSBzb21lIHRpbWUgdG8gZmlndXJl
IG91dCB0aGF0IEkgbmVlZCB0byBlbnRlciB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgRG9tMCBpbiB0
aGUgUmVtb3RlIFZpZXdlciBhbmQgbm90IHRoZSBhZGRyZXNzIG9mIHRoZSBEb21VLiBBZGRpbmcg
dGhhdCBwaWVjZSBvZiBpbmZvcm1hdGlvbiBjb3VsZCBoZWxwIG90aGVyIHBlb3BsZSBzYXZlIHRp
bWUuDQoNClRha2UgY2FyZSwNCg0KUGF1bA0K


From xen-users-bounces@lists.xenproject.org Mon Jun 07 11:10:27 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Jun 2021 11:10:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.137828.255294 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqD8P-00022T-8x; Mon, 07 Jun 2021 11:09:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 137828.255294; Mon, 07 Jun 2021 11:09:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqD8P-00022L-4d; Mon, 07 Jun 2021 11:09:33 +0000
Received: by outflank-mailman (input) for mailman id 137828;
 Mon, 07 Jun 2021 11:09:31 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HdSY=LB=yahoo.com=hack3rcon@srs-us1.protection.inumbo.net>)
 id 1lqD8N-00022F-IY
 for xen-users@lists.xenproject.org; Mon, 07 Jun 2021 11:09:31 +0000
Received: from sonic302-2.consmr.mail.bf2.yahoo.com (unknown [74.6.135.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id af966dbd-3e99-402d-b6dc-6dce9682c63b;
 Mon, 07 Jun 2021 11:09:30 +0000 (UTC)
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic302.consmr.mail.bf2.yahoo.com with HTTP; Mon, 7 Jun 2021 11:09:30 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: af966dbd-3e99-402d-b6dc-6dce9682c63b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1623064170; bh=7z2x5cWU2XBHz6TiJCAYn5adWG8yv3iDTtZ8wsUKvnw=; h=Date:From:To:Subject:References:From:Subject:Reply-To; b=bVdBUnhqvrPeajg4L5trZgIBO0GqIaPbsdcSMU/KsHsEqJ4n/ys35/C9D/xI7nvCUbcPU3puJwAXrbnrOeiAfF8F0T9ZWK617xO8F/PuutkEsut/BCQObsIux4OVOoAxDJEHVJStE3jQ+4Nuiwi705I4Rbk3aKlaH/z83+unrmWlIqvhBPBYWFOOY8+n9nsbwSTbn6xuscnDqsjLGfHigUWqjYHRADtq+XV8++8ZqkWqZ//1k+r/XLMcHLQbW0oYhAv3jhDwFwxN/AfMPTDOgLU7E46QmPsFfAPyyoqnVJjV91VBf1aTOO9jma7x+GNolPU24ZmmK66B6tqXOTVr0w==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1623064170; bh=1QWw341OCzcB+MijIUrQ1DMvUHyHnVLppw7+kJLx9pD=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=HIYUiOojVnlizPhxk9tJjXTMtWD9OmJoqnvFy9vPerrFD2/lhW8TtEdx8oDp15zs/AX1Tb4Qfrr1n3q2WNVLTlLeTWrJGx6nhAOrC6I4PMqRSGrlgw7QC6F2efXUInVdAgOBfeonoravsWHKCnhlES9KWHM5ioBvqQ1DBAFIishSdbQRhVBaInk8/IEGueC1+hBn8HcZI6x09ibU0vAlKueithWohldWCLl7ZedKq9ZqnfGOQZxqMzokMihhm829ZvKSqOTdx7aan0FP3YdzONBqM+2JFU5fmqsupyrQOkVNScioHyV07DDo4if8pAhOTQnziMBOabnkF+HHJtCpwQ==
X-YMail-OSG: TIbR0RsVM1nfJS8vGAGLbBPX0.QdcTSaCGnVjkouM1KWO0WTwDUJIy6RqcniKD6
 V3rs.ElJAfdKa0MMcogZSjGO0vm7qBhjCjqrT85GMlvcCnKVHzOdKSDti211zgICLTsM.sOWfqi9
 FMcfRc5GcCZNqgejiTRLiqSx6zvTi0AkcNiNpXg_obVUVf3mM0ThVixc_ylQWocKQ88VNFWixZw2
 iCZWz3A5Tmv83tV12o6TIwaMfA4JjNfV_bPaRr9y6fTCjaICdWNEn795qxv9v6MrHZ2YN_B5GDiH
 hPYO8tbQmKOzU21n4xED73hnwlmcj35V0woKdBgl564lbOYvcE27PMlWmfIr7IcH.MJ8IOaKigxi
 uADpQuQvsOmy6.za87l8tDhQ.Z3Gqk6fWLBNCg9Or5ji7szOQIjoZAsGPSH62sOOSW_YWPHLo9g7
 iaFm_nY_RLJkyF5_IR6wifDerizYn1uDKvhN56rLlUZWoLc.SpvgKkRJorfOKk9bgVEhinxW0kaq
 CCZzfodyLDd9oIPfdtGIYf7CK0IscR8UklVQg9ptftlnEU_xfUzedv6pBMTyN0pAglaGOz0fkXEo
 M3wtTcq4pmkdnusQ..Jq5bbFUSUxLUh_E51EXjcd_QcF2Cmi_CjlhX6_MnM05TyNx1UB5zJ1bp81
 dPOKFiTL1uUppPpvKVFu4SAnyT8battAlVAeOn293b3FCU5uIZub8Yk._RBCqrdb83wWjbOv.Y8K
 v9c9gGmRnlnvZUsYehUE4K8AE6qQcIZ2iU.BEPtQZONtUP1BIyyH8esNCj6rHST4cmpwlKRJHxmI
 o19RMwKPg.idakplXs7Z0CYK0YPEfl0CzeY1qWbHTl3juitEa1t2RoZpzpVs3Mc07toXp5JNp9gj
 qkTDpcIsgZ10vMO_1_9nMOm6eEHqYQwF7JnO1rMm7tjV7v8x4OflGTu_QMasdt8BVR59F3vER0Lx
 U6XS4w4VdvUbd7TVpKSQsph3dSxb9wq2ankhZAvkcKIqcgVIQO1jiVWoEjKgt3pRiI9vDqWOZH7U
 qxQEGhBQOIyGu7vBya259gH2r_U7cInsGZORdktafX6hc1_YgG1WqKsDFZnUo8wrARQxV7ScY5J4
 5m7_IWGiv01FrG96CiRKvSoDq7ThsEoE4xwhEqb5gNUhtyBauCovonK9et6ddzPUwOkG_w7waV6R
 oOMmF5QwRAs9QlFWg7CbwbnFjESH9nlLHUUQewm7ag4ug_Wwlx50vPAkIJZhfWRW5mwK3KYituvI
 0GcwIU4BxuzMUifyE9JfGXQ6iFX2dOlcZNF7rZ4eraZtNJQuEcJyoK74xgpQippulLirtFjEgW_3
 PDvK4GRKHkaAWb1RMYyxt.1TvU64dIMrSutUiWFz9TjwTOfjMUdvObW65CCurFpsXLnhilcsz.sr
 YH4SL.lZiX.RnG7NDBhoEjltODkhWovuMy88J6qIBcZ1KU01.04oZVUKEUK6XiuinNXLKYhjfR9u
 ckLKnI.SU1zajqvlBF_VlhLb7dIwq_XbPpKOIX5.29.rcbd.uftziM3LEpYkXIsoaCJFK3fMneJc
 j4qxFEFMfe7HqNhbdp2KLjfk7nO45q5RUUZ5wtYOtkLV73mRqE4vJ6ic3B1T4v5wvlF1RJZSb_gZ
 gceqkSvfueLkpytQl9uCohgGdau5TpBXL6Vy2hRnsIrT7XpocDmSNpLn6JLjHCecCzijp2Ppo0EH
 WDA7gMvYqyOKoHJZb9Egp1U934ExsRJNY04hUpTbwEjK5r.mNCX2HQWUHURS4M_mYFscVOwBGXpC
 O9fyn96qkMxvkgV5hpBA_T1YsJeGh72C0lqOGk07GTLr66HAy6o2x6CuJkF1BDrix571r6ziI1nc
 pRWF4_oa8DY3xkEr3OQfMc5Llu62FqIg_osmHfCneMV3iJT.YydNXeMFgBgNlJFh5aBu6z.63hXw
 ovP3rNA3gke1aDIWPpGCUAulbhiuF3vb4J9TItZq1FE0kekcwsTznw_8yhGqpoI4yX6NOaygARW4
 h_jn31TQmXrRFxPT4wE8cs71OiHGO5iccKmSD0sZE._mv4Lgt7ujp.SMCNEtvxFq6IDGM.7WLqWc
 VbjHR2jmlnWFUV..5T5gNQ8JqKSLeybD7usYCWkmyz4T.KeLI5IAIBfjYQ3XneeaKxbToyh2CGgw
 TVjxoDjB6z5Az7uphQEmIoPwHFW2DaANz_522ZnBgBe2rf4e5Dd9MtuHrUss9BnMGXDoszs9OBUT
 ZM4xkMjoDa3ppM_htYBBpOMplHiTJnMcbE9M_cID1Wjm4GZqTL8ow6Vai.p0.hh.xL4.4HDtg2cF
 TKJ7YgAClLrgPHacXWGvcyqhOOVylkdRtuyri.p8x3v95aGuFJEwo37kaONOryB4-
X-Sonic-MF: <hack3rcon@yahoo.com>
Date: Mon, 7 Jun 2021 11:09:28 +0000 (UTC)
From: Jason Long <hack3rcon@yahoo.com>
To: Xen-users <xen-users@lists.xenproject.org>
Message-ID: <1399391994.2416253.1623064168392@mail.yahoo.com>
Subject: Containers as VMs.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
References: <1399391994.2416253.1623064168392.ref@mail.yahoo.com>
X-Mailer: WebService/1.1.18368 YMailNorrin
Content-Length: 73

Hello,
What is the benefit of running a container as a VM?


Thank you.


From xen-users-bounces@lists.xenproject.org Tue Jun 08 02:03:02 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Jun 2021 02:03:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.138222.255941 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqR4O-00048v-Kt; Tue, 08 Jun 2021 02:02:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 138222.255941; Tue, 08 Jun 2021 02:02:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqR4O-00048k-DY; Tue, 08 Jun 2021 02:02:20 +0000
Received: by outflank-mailman (input) for mailman id 138222;
 Tue, 08 Jun 2021 02:02:19 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kxUS=LC=gmail.com=berndbausch@srs-us1.protection.inumbo.net>)
 id 1lqR4N-00048e-Hg
 for xen-users@lists.xenproject.org; Tue, 08 Jun 2021 02:02:19 +0000
Received: from mail-pj1-x102c.google.com (unknown [2607:f8b0:4864:20::102c])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 8ef10f6c-1163-44aa-b783-967d9c09e8c7;
 Tue, 08 Jun 2021 02:02:18 +0000 (UTC)
Received: by mail-pj1-x102c.google.com with SMTP id
 pi6-20020a17090b1e46b029015cec51d7cdso1226498pjb.5
 for <xen-users@lists.xenproject.org>; Mon, 07 Jun 2021 19:02:18 -0700 (PDT)
Received: from [192.168.1.116] (fp93c0183f.tkyc626.ap.nuro.jp. [147.192.24.63])
 by smtp.gmail.com with ESMTPSA id p20sm9043362pff.204.2021.06.07.19.02.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Jun 2021 19:02:17 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ef10f6c-1163-44aa-b783-967d9c09e8c7
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=subject:to:references:from:message-id:date:user-agent:mime-version
         :in-reply-to:content-language;
        bh=YQQ5siylnA00d+nu8issRXr08cGwRHBq3iOSsGGb5zA=;
        b=QUGV4TGQ4gtEf7Jjo6HqKW2b/LSrPJUU7aB6Bij5yDr41+YEWdtcxNP7tgk2zZVd3C
         EofBhAuCgR76dDHe8GeFQK9TVCsFMjnBL+shzOlA7vYOrVtAXxSzPEgj2vvt+6zeJSUt
         y+C0YhDDA96TT5jslXBW79bXmTcu0c3UoKVOroinqRC/pWsNRP5WxVXyBVzDzq7tgae5
         ct0zsbCz2KANlBuzAOC0uVl2rN67OwQQa/Lxzk/8jJqAQ/A8azgvDOZvcL5rV2gtlEnW
         nCQ4WROtENyjictWgApByazHlHwUuC0ARyw/KyN5a1w1uSi/PAhhFpuPlQtFrS1cBVMh
         onkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:subject:to:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language;
        bh=YQQ5siylnA00d+nu8issRXr08cGwRHBq3iOSsGGb5zA=;
        b=oqSGkQe0gQm0oJdIuwSTZXDtQfAR3uNgRRUFu/bn8e/l/p7feVjTW0KpsGsaOSxvFQ
         VSN0ZFsOS571oa3H20m8DcfaqxTMoCaMYN4ZEvXdgWp5qfsRZ2kujnZK1RWrsLoIBZcX
         KtmGBeBC8TuREAPLKdjna3dTcUAETD5g0KnuDqNMFm8BUEmjj02T9xoeRQ7SKe/pO/TE
         3idRxRx8GAdYZQPlIEJEwfe66BKr2oZZPY8MJcCAQsyfkDo3feYb9/pYYJEjFUuAC6q4
         sZMyzzNvxuSh83xnlnpjjvJcZWeC1QSpMqn4tpYTUBl8ZgPmsA4/Ai1JzEM6HGW+NG2w
         So6A==
X-Gm-Message-State: AOAM532Scunx7TOG7vdzN8CJEfIYPsLyYRkvcFQL3kHJI828k4G1qyZ6
	uarkx8xOrgRQpZzzfHmJ7UAEhRYS5Ts=
X-Google-Smtp-Source: ABdhPJyBojbUCTtcqeX6YZ69I2MbtP6giG7Q2fg88MOG5p9VFOg6Efid4ujSYEKvKaI9GAMAYgWUkA==
X-Received: by 2002:a17:90b:19cb:: with SMTP id nm11mr23364253pjb.1.1623117738036;
        Mon, 07 Jun 2021 19:02:18 -0700 (PDT)
Subject: Re: Containers as VMs.
To: Jason Long <hack3rcon@yahoo.com>,
 Xen-users <xen-users@lists.xenproject.org>
References: <1399391994.2416253.1623064168392.ref@mail.yahoo.com>
 <1399391994.2416253.1623064168392@mail.yahoo.com>
From: Bernd Bausch <berndbausch@gmail.com>
Message-ID: <e82967e6-1887-7178-6e04-7994cb0b9117@gmail.com>
Date: Tue, 8 Jun 2021 11:02:14 +0900
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
 Thunderbird/78.11.0
MIME-Version: 1.0
In-Reply-To: <1399391994.2416253.1623064168392@mail.yahoo.com>
Content-Type: multipart/alternative;
 boundary="------------4209AE1C35F502082FF9AC55"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------4209AE1C35F502082FF9AC55
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

There is no benefit, since it's not possible. You can run a container 
*on *a VM, but not *as *a VM.

The processes in a container run on the container host, using the host's 
kernel.
A VM has its own kernel. Processes in a VM use the VM's kernel, and 
don't run on the VM's host.

On 2021/06/07 8:09 PM, Jason Long wrote:
> Hello,
> What is the benefit of running a container as a VM?
>
>
> Thank you.
>

--------------4209AE1C35F502082FF9AC55
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>There is no benefit, since it's not possible. You can run a
      container <b>on </b>a VM, but not <b>as </b>a VM.</p>
    <p>The processes in a container run on the container host, using the
      host's kernel. <br>
      A VM has its own kernel. Processes in a VM use the VM's kernel,
      and don't run on the VM's host.<br>
    </p>
    <div class="moz-cite-prefix">On 2021/06/07 8:09 PM, Jason Long
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:1399391994.2416253.1623064168392@mail.yahoo.com">
      <pre class="moz-quote-pre" wrap="">Hello,
What is the benefit of running a container as a VM?


Thank you.

</pre>
    </blockquote>
  </body>
</html>

--------------4209AE1C35F502082FF9AC55--


From xen-users-bounces@lists.xenproject.org Tue Jun 08 17:05:13 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Jun 2021 17:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.138617.256608 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqf9t-0001gT-8e; Tue, 08 Jun 2021 17:04:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 138617.256608; Tue, 08 Jun 2021 17:04:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqf9t-0001ew-0U; Tue, 08 Jun 2021 17:04:57 +0000
Received: by outflank-mailman (input) for mailman id 138617;
 Tue, 08 Jun 2021 17:04:55 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CbVg=LC=xenbits.xen.org=iwj@srs-us1.protection.inumbo.net>)
 id 1lqf9r-0007tU-OS
 for xen-users@lists.xen.org; Tue, 08 Jun 2021 17:04:55 +0000
Received: from mail.xenproject.org (unknown [104.130.215.37])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 9afe90b8-9ae7-4e56-b6a9-e9a73ab8f493;
 Tue, 08 Jun 2021 17:04:36 +0000 (UTC)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1lqf9S-0004gw-S9; Tue, 08 Jun 2021 17:04:30 +0000
Received: from iwj by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1lqf9S-0004uS-Qx; Tue, 08 Jun 2021 17:04:30 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 9afe90b8-9ae7-4e56-b6a9-e9a73ab8f493
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=8Svh3GdkGDoE8YIWXwufr7G76Pf6eb1XITglGYjIIpc=; b=hbPJ0t7k6us6QP8PYVvAkM8aHN
	R6BJrks7gKLjeBBzIrKWZnATSOkXyL6+JbW7+UUl+QLJyli2WCpiwJ2K25iOzBdkWXvTyoxG9KOEE
	zLGAiTSWUMD3epyuxNfflvMy+1sZDOLpbFrKzXhohDTs/r9z0rJKZ4DgPUo+QbsFEg8w=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 375 v2 (CVE-2021-0089) - Speculative Code
 Store Bypass
Message-Id: <E1lqf9S-0004uS-Qx@xenbits.xenproject.org>
Date: Tue, 08 Jun 2021 17:04:30 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2021-0089 / XSA-375
                              version 2

                    Speculative Code Store Bypass

UPDATES IN VERSION 2
====================

New 4.12 backport (also targeting 4.11), addressing a build issue.

Discuss the need for SPECULATIVE_HARDEN_BRANCH in Resolution.

Provide Arm information links.

Public release.

ISSUE DESCRIPTION
=================

Modern superscalar processors may employ sophisticated decoding and
caching of the instruction stream to improve performance.  However, a
consequence is that self-modifying code updates may not take effect
instantly.

Whatever the architectural guarantees, some CPUs have microarchitectural
behaviour whereby the stale instruction stream may be speculatively
decoded and executed.

Speculation of this form can suffer from type confusion in registers,
and potentially leak data.

For more details, see:
  https://www.vusec.net/projects/fpvi-scsb
  https://www.amd.com/en/corporate-product-security-bulletin-amd-sb-1003
  https://software.intel.com/content/www/us/en/develop/articles/software-security-guidance/advisory-guidance/speculative-code-store-bypass.html
  https://software.intel.com/content/www/us/en/develop/articles/software-security-guidance/advisory-guidance/floating-point-value-injection.html
  https://developer.arm.com/support/arm-security-updates/speculative-processor-vulnerability/frequently-asked-questions#scsb
  https://developer.arm.com/support/arm-security-updates/speculative-processor-vulnerability/frequently-asked-questions#fvpi

IMPACT
======

In attacker might be able to infer the contents of arbitrary host
memory, including memory assigned to other guests.

VULNERABLE SYSTEMS
==================

Systems running all versions of Xen are affected.

Whether a CPU is potentially vulnerable depends on its
microarchitecture.  Consult your hardware vendor.

Xen running on ARM does not have runtime self-modying code, so is
believed to be not vulnerable, irrespective of any hardware
susceptibility.

Xen running on x86 does have runtime self-modying code as part of
emulation, and is believed to be potentially vulnerable.

Xen is not vulnerable if retpoline or lfence mitigations for Spectre v2
protection are active.  Protections depend on compiler support (as
indicated by INDIRECT_THUNK), and a runtime setting (BTI-Thunk):

  # xl dmesg | grep -e INDIRECT_THUNK -e BTI-Thunk
  (XEN)   Compiled-in support: INDIRECT_THUNK SHADOW_PAGING
  (XEN)   Xen settings: BTI-Thunk RETPOLINE, SPEC_CTRL: IBRS+ SSBD-, Other: SRB_LOCK+ IBPB L1D_FLUSH VERW BRANCH_HARDEN

BTI-Thunk as either RETPOLINE or LFENCE prevents the vulnerability.

MITIGATION
==========

If Spectre v2 support is compiled in, but JMP is used by default,
RETPOLINE or LFENCE can be selected with `spec-ctrl=bti-thunk=retpoline`
or `spec-ctrl=bti-thunk=lfence`.

CREDITS
=======

This issue was discovered by Enrico Barberis, Hany Ragab, Herbert Bos,
and Cristiano Giuffrida from the VUSec group at VU Amsterdam.

RESOLUTION
==========

Applying the appropriate attached patch resolves this issue.  Note that
in 4.13 and newer the patch will only take effect when the
SPECULATIVE_HARDEN_BRANCH hypervisor config option is enabled.  4.12 and
older do not have such an option, and the change will take effect
unconditionally.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa375.patch           xen-unstable - 4.14.x
xsa375-4.13.patch      Xen 4.13.x
xsa375-4.12.patch      Xen 4.12.x - 4.11.x

$ sha256sum xsa375*
367d5bb97c942b9f744a57645df87148772c0879de6f351f36f88147f3958e83  xsa375.meta
301ef80da837bc2af36a0958f35f42f4d267b20ec6e91ae5faf2616167ef49f8  xsa375.patch
dc024daf17242b6477a16a349754a94b2b25cbbfd8c14475741b778710a44c93  xsa375-4.12.patch
f70511d843c6617b932da11ffe857e2e3aa3834ccff07d4d0beba90d63a3dae2  xsa375-4.13.patch
$

NOTE CONCERNING CVE-2021-0086
=============================

Floating Point Value Injection (FPVI) was discovered and disclosed in
the same research as SCSB.  Xen on x86 does in some cases emulate
floating point operations with guest provided inputs, but does not have
subsequent control flow dependent on results, transient or otherwise, of
the operation.

Therefore, we believe Xen is not vulnerable to FPVI, irrespective of any
hardware susceptibility.

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.


(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmC/oxIMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZ0+QH/190a0VhQlorqC7eY2kt+l09S5chHL4AqfAxhBWT
pxbgNcNiuUXhGRQEfxEV/CRBGnUDy5TNwtyHlJqSYm89hqVv3Dh5IbVcRK0DGV7R
x9YLlESaKx97e/SaSDHZ3XtwSXa/es+O6Vmn4X67UZI7jpv8EU89fxa3Fv1fuNhv
Ud8BGW2WXJ1SEW3XIT7/gz/xza1fFtv/rIew+jpnlsu6qSrlE/3pZHLOqI5Wa2n9
LklxwoGmB9JyIV8Me0tOCqiLKEOTGnS1JZiug07N2TmlxjiHj76KrVysTDqRdkFD
R/C8wfmwlOSCddUPnj6uB81fH7C7I02yVTefpYwIBmI7ldc=
=dP+p
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa375.meta"
Content-Disposition: attachment; filename="xsa375.meta"
Content-Transfer-Encoding: base64

ewogICJYU0EiOiAzNzUsCiAgIlN1cHBvcnRlZFZlcnNpb25zIjogWwogICAg
Im1hc3RlciIsCiAgICAiNC4xNSIsCiAgICAiNC4xNCIsCiAgICAiNC4xMyIs
CiAgICAiNC4xMiIsCiAgICAiNC4xMSIKICBdLAogICJUcmVlcyI6IFsKICAg
ICJ4ZW4iCiAgXSwKICAiUmVjaXBlcyI6IHsKICAgICI0LjExIjogewogICAg
ICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0
YWJsZVJlZiI6ICJiMWU0NmJjMzY5YmI0OTBiNzIxYzc3ZjE1ZDI1ODNiYmY0
NjYxNTJkIiwKICAgICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICAz
NzIsCiAgICAgICAgICAgIDM3MwogICAgICAgICAgXSwKICAgICAgICAgICJQ
YXRjaGVzIjogWwogICAgICAgICAgICAieHNhMzc1LTQuMTMucGF0Y2giCiAg
ICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIjQuMTIi
OiB7CiAgICAgICJSZWNpcGVzIjogewogICAgICAgICJ4ZW4iOiB7CiAgICAg
ICAgICAiU3RhYmxlUmVmIjogIjU5ODQ5MDViMjYzOGRmODdhMDI2MmQxZWU5
MWYwYTZlMTRhODZkZjYiLAogICAgICAgICAgIlByZXJlcXMiOiBbCiAgICAg
ICAgICAgIDM3MiwKICAgICAgICAgICAgMzczCiAgICAgICAgICBdLAogICAg
ICAgICAgIlBhdGNoZXMiOiBbCiAgICAgICAgICAgICJ4c2EzNzUtNC4xMy5w
YXRjaCIKICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAg
ICAiNC4xMyI6IHsKICAgICAgIlJlY2lwZXMiOiB7CiAgICAgICAgInhlbiI6
IHsKICAgICAgICAgICJTdGFibGVSZWYiOiAiMjg0MTMyOTM4OTAwY2U4YzNi
MTFiYWJmNzI1NWY1YzZkYmIyMTcxNiIsCiAgICAgICAgICAiUHJlcmVxcyI6
IFsKICAgICAgICAgICAgMzcyLAogICAgICAgICAgICAzNzMKICAgICAgICAg
IF0sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAgICAgICAgInhzYTM3
NS00LjEzLnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQog
ICAgfSwKICAgICI0LjE0IjogewogICAgICAiUmVjaXBlcyI6IHsKICAgICAg
ICAieGVuIjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICIxMGYwYjJkNDkz
NzY4NjVkNDk2ODBmMDZjNTJiNDUxZmFiY2UzYmI1IiwKICAgICAgICAgICJQ
cmVyZXFzIjogWwogICAgICAgICAgICAzNzIsCiAgICAgICAgICAgIDM3Mwog
ICAgICAgICAgXSwKICAgICAgICAgICJQYXRjaGVzIjogWwogICAgICAgICAg
ICAieHNhMzc1LnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAg
fQogICAgfSwKICAgICI0LjE1IjogewogICAgICAiUmVjaXBlcyI6IHsKICAg
ICAgICAieGVuIjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICIyODBkNDcy
ZjRmY2EwNzBhMTAzNzdlMzE4ZDkwY2FiZmMyNTQwODEwIiwKICAgICAgICAg
ICJQcmVyZXFzIjogWwogICAgICAgICAgICAzNzIsCiAgICAgICAgICAgIDM3
MwogICAgICAgICAgXSwKICAgICAgICAgICJQYXRjaGVzIjogWwogICAgICAg
ICAgICAieHNhMzc1LnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAg
ICAgfQogICAgfSwKICAgICJtYXN0ZXIiOiB7CiAgICAgICJSZWNpcGVzIjog
ewogICAgICAgICJ4ZW4iOiB7CiAgICAgICAgICAiU3RhYmxlUmVmIjogImFh
NzdhY2MyODA5OGQwNDk0NWFmOTk4ZjNmYzBkYmQzNzU5YjViNDEiLAogICAg
ICAgICAgIlByZXJlcXMiOiBbCiAgICAgICAgICAgIDM3MiwKICAgICAgICAg
ICAgMzczCiAgICAgICAgICBdLAogICAgICAgICAgIlBhdGNoZXMiOiBbCiAg
ICAgICAgICAgICJ4c2EzNzUucGF0Y2giCiAgICAgICAgICBdCiAgICAgICAg
fQogICAgICB9CiAgICB9CiAgfQp9

--=separator
Content-Type: application/octet-stream; name="xsa375.patch"
Content-Disposition: attachment; filename="xsa375.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogUHJvdGVjdCBhZ2FpbnN0IFNw
ZWN1bGF0aXZlIENvZGUgU3RvcmUgQnlwYXNzCgpNb2Rlcm4geDg2IHByb2Nl
c3NvcnMgaGF2ZSBmYXItYmV0dGVyLXRoYW4tYXJjaGl0ZWN0dXJhbGx5LWd1
YXJhbnRlZWQgc2VsZgptb2RpZnlpbmcgY29kZSBkZXRlY3Rpb24uICBUeXBp
Y2FsbHksIHdoZW4gYSB3cml0ZSBoaXRzIGFuIGluc3RydWN0aW9uIGluCmZs
aWdodCwgYSBNYWNoaW5lIENsZWFyIG9jY3VycyB0byBmbHVzaCBzdGFsZSBj
b250ZW50IGluIHRoZSBmcm9udGVuZCBhbmQKYmFja2VuZC4KCkZvciBzZWxm
IG1vZGlmeWluZyBjb2RlLCBiZWZvcmUgYSB3cml0ZSB3aGljaCBoaXRzIGFu
IGluc3RydWN0aW9uIGluIGZsaWdodApyZXRpcmVzLCB0aGUgZnJvbnRlbmQg
Y2FuIHNwZWN1bGF0aXZlbHkgZGVjb2RlIGFuZCBleGVjdXRlIHRoZSBvbGQg
aW5zdHJ1Y3Rpb24Kc3RyZWFtLiAgU3BlY3VsYXRpb24gb2YgdGhpcyBmb3Jt
IGNhbiBzdWZmZXIgZnJvbSB0eXBlIGNvbmZ1c2lvbiBpbiByZWdpc3RlcnMs
CmFuZCBwb3RlbnRpYWxseSBsZWFrIGRhdGEuCgpGdXJ0aGVybW9yZSwgdXBk
YXRlcyBhcmUgdHlwaWNhbGx5IGJ5dGUtd2lzZSwgcmF0aGVyIHRoYW4gYXRv
bWljLiAgRGVwZW5kaW5nCm9uIHRpbWluZywgc3BlY3VsYXRpb24gY2FuIHJh
Y2UgYWhlYWQgbXVsdGlwbGUgdGltZXMgYmV0d2VlbiBpbmRpdmlkdWFsCndy
aXRlcywgYW5kIGV4ZWN1dGUgdGhlIHRyYW5zaWVudGx5LW1hbGZvcm1lZCBp
bnN0cnVjdGlvbiBzdHJlYW0uCgpYZW4gaGFzIHN0dWJzIHdoaWNoIGFyZSB1
c2VkIGluIGNlcnRhaW4gY2FzZXMgZm9yIGVtdWxhdGlvbiBwdXJwb3Nlcy4g
IEluaGliaXQKc3BlY3VsYXRpb24gYmV0d2VlbiB1cGRhdGluZyB0aGUgc3R1
YiBhbmQgZXhlY3V0aW5nIGl0LgoKVGhpcyBpcyBYU0EtMzc1IC8gQ1ZFLTIw
MjEtMDA4OS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L3B2L2VtdWwtcHJpdi1vcC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwt
cHJpdi1vcC5jCmluZGV4IDg4ODk1MDlkMmEuLjExNDY3YTFlM2EgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysgYi94
ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTEzOCw2ICsxMzgs
OCBAQCBzdGF0aWMgaW9fZW11bF9zdHViX3QgKmlvX2VtdWxfc3R1Yl9zZXR1
cChzdHJ1Y3QgcHJpdl9vcF9jdHh0ICpjdHh0LCB1OCBvcGNvZGUsCiAgICAg
LyogUnVudGltZSBjb25maXJtYXRpb24gdGhhdCB3ZSBoYXZlbid0IGNsb2Ji
ZXJlZCBhbiBhZGphY2VudCBzdHViLiAqLwogICAgIEJVR19PTihTVFVCX0JV
Rl9TSVpFIC8gMiA8IChwIC0gY3R4dC0+aW9fZW11bF9zdHViKSk7CiAKKyAg
ICBibG9ja19zcGVjdWxhdGlvbigpOyAvKiBTQ1NCICovCisKICAgICAvKiBI
YW5keSBmdW5jdGlvbi10eXBlZCBwb2ludGVyIHRvIHRoZSBzdHViLiAqLwog
ICAgIHJldHVybiAodm9pZCAqKXN0dWJfdmE7CiAKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jIGIveGVuL2Fy
Y2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKaW5kZXggYzI1ZDg4
ZDBkOC4uZjQyZmYyYTgzNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4
Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4
Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTEyNTcsNiArMTI1Nyw3IEBA
IHN0YXRpYyBpbmxpbmUgaW50IG1rZWModWludDhfdCBlLCBpbnQzMl90IGVj
LCAuLi4pCiAjIGRlZmluZSBpbnZva2Vfc3R1YihwcmUsIHBvc3QsIGNvbnN0
cmFpbnRzLi4uKSBkbyB7ICAgICAgICAgICAgICAgICAgICBcCiAgICAgc3R1
Yl9leG4uaW5mbyA9ICh1bmlvbiBzdHViX2V4Y2VwdGlvbl90b2tlbikgeyAu
cmF3ID0gfjAgfTsgICAgICAgICBcCiAgICAgc3R1Yl9leG4ubGluZSA9IF9f
TElORV9fOyAvKiBVdGlsaXR5IG91dHdlaWdocyBsaXZlcGF0Y2hpbmcgY29z
dCAqLyBcCisgICAgYmxvY2tfc3BlY3VsYXRpb24oKTsgLyogU0NTQiAqLyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgYXNt
IHZvbGF0aWxlICggcHJlICJcblx0SU5ESVJFQ1RfQ0FMTCAlW3N0dWJdXG5c
dCIgcG9zdCAiXG4iICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIi5M
cmV0JT06XG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgICAgICAgICAgICAgIi5wdXNoc2VjdGlvbiAuZml4
dXAsXCJheFwiXG4iICAgICAgICAgICAgICAgICAgICAgICBcCg==

--=separator
Content-Type: application/octet-stream; name="xsa375-4.12.patch"
Content-Disposition: attachment; filename="xsa375-4.12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogUHJvdGVjdCBhZ2FpbnN0IFNw
ZWN1bGF0aXZlIENvZGUgU3RvcmUgQnlwYXNzCgpNb2Rlcm4geDg2IHByb2Nl
c3NvcnMgaGF2ZSBmYXItYmV0dGVyLXRoYW4tYXJjaGl0ZWN0dXJhbGx5LWd1
YXJhbnRlZWQgc2VsZgptb2RpZnlpbmcgY29kZSBkZXRlY3Rpb24uICBUeXBp
Y2FsbHksIHdoZW4gYSB3cml0ZSBoaXRzIGFuIGluc3RydWN0aW9uIGluCmZs
aWdodCwgYSBNYWNoaW5lIENsZWFyIG9jY3VycyB0byBmbHVzaCBzdGFsZSBj
b250ZW50IGluIHRoZSBmcm9udGVuZCBhbmQKYmFja2VuZC4KCkZvciBzZWxm
IG1vZGlmeWluZyBjb2RlLCBiZWZvcmUgYSB3cml0ZSB3aGljaCBoaXRzIGFu
IGluc3RydWN0aW9uIGluIGZsaWdodApyZXRpcmVzLCB0aGUgZnJvbnRlbmQg
Y2FuIHNwZWN1bGF0aXZlbHkgZGVjb2RlIGFuZCBleGVjdXRlIHRoZSBvbGQg
aW5zdHJ1Y3Rpb24Kc3RyZWFtLiAgU3BlY3VsYXRpb24gb2YgdGhpcyBmb3Jt
IGNhbiBzdWZmZXIgZnJvbSB0eXBlIGNvbmZ1c2lvbiBpbiByZWdpc3RlcnMs
CmFuZCBwb3RlbnRpYWxseSBsZWFrIGRhdGEuCgpGdXJ0aGVybW9yZSwgdXBk
YXRlcyBhcmUgdHlwaWNhbGx5IGJ5dGUtd2lzZSwgcmF0aGVyIHRoYW4gYXRv
bWljLiAgRGVwZW5kaW5nCm9uIHRpbWluZywgc3BlY3VsYXRpb24gY2FuIHJh
Y2UgYWhlYWQgbXVsdGlwbGUgdGltZXMgYmV0d2VlbiBpbmRpdmlkdWFsCndy
aXRlcywgYW5kIGV4ZWN1dGUgdGhlIHRyYW5zaWVudGx5LW1hbGZvcm1lZCBp
bnN0cnVjdGlvbiBzdHJlYW0uCgpYZW4gaGFzIHN0dWJzIHdoaWNoIGFyZSB1
c2VkIGluIGNlcnRhaW4gY2FzZXMgZm9yIGVtdWxhdGlvbiBwdXJwb3Nlcy4g
IEluaGliaXQKc3BlY3VsYXRpb24gYmV0d2VlbiB1cGRhdGluZyB0aGUgc3R1
YiBhbmQgZXhlY3V0aW5nIGl0LgoKVGhpcyBpcyBYU0EtMzc1IC8gQ1ZFLTIw
MjEtMDA4OS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L3B2L2VtdWwtcHJpdi1vcC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwt
cHJpdi1vcC5jCmluZGV4IDZkYzRmOTJhODQuLjU5YzE1Y2EwZTcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysgYi94
ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTk3LDYgKzk3LDgg
QEAgc3RhdGljIGlvX2VtdWxfc3R1Yl90ICppb19lbXVsX3N0dWJfc2V0dXAo
c3RydWN0IHByaXZfb3BfY3R4dCAqY3R4dCwgdTggb3Bjb2RlLAogICAgIEJV
SUxEX0JVR19PTihTVFVCX0JVRl9TSVpFIC8gMiA8IE1BWCg5LCAvKiBEZWZh
dWx0IGVtdWwgc3R1YiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA1ICsgSU9FTVVMX1FVSVJLX1NUVUJfQllURVMpKTsK
IAorICAgIGFzbSB2b2xhdGlsZSAoICJsZmVuY2UiIDo6OiAibWVtb3J5IiAp
OyAvKiBTQ1NCICovCisKICAgICAvKiBIYW5keSBmdW5jdGlvbi10eXBlZCBw
b2ludGVyIHRvIHRoZSBzdHViLiAqLwogICAgIHJldHVybiAodm9pZCAqKXN0
dWJfdmE7CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2X2VtdWxh
dGUveDg2X2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94
ODZfZW11bGF0ZS5jCmluZGV4IGJiYTZkZDAxODcuLmNkMTIzNDkyYTYgMTAw
NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0
ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0
ZS5jCkBAIC0xMDkzLDYgKzEwOTMsNyBAQCBzdGF0aWMgaW5saW5lIGludCBt
a2VjKHVpbnQ4X3QgZSwgaW50MzJfdCBlYywgLi4uKQogIyBkZWZpbmUgaW52
b2tlX3N0dWIocHJlLCBwb3N0LCBjb25zdHJhaW50cy4uLikgZG8geyAgICAg
ICAgICAgICAgICAgICAgXAogICAgIHN0dWJfZXhuLmluZm8gPSAodW5pb24g
c3R1Yl9leGNlcHRpb25fdG9rZW4pIHsgLnJhdyA9IH4wIH07ICAgICAgICAg
XAogICAgIHN0dWJfZXhuLmxpbmUgPSBfX0xJTkVfXzsgLyogVXRpbGl0eSBv
dXR3ZWlnaHMgbGl2ZXBhdGNoaW5nIGNvc3QgKi8gXAorICAgIGFzbSB2b2xh
dGlsZSAoICJsZmVuY2UiIDo6OiAibWVtb3J5IiApOyAvKiBTQ1NCICovICAg
ICAgICAgICAgICAgICAgXAogICAgIGFzbSB2b2xhdGlsZSAoIHByZSAiXG5c
dElORElSRUNUX0NBTEwgJVtzdHViXVxuXHQiIHBvc3QgIlxuIiAgICAgICAg
XAogICAgICAgICAgICAgICAgICAgICIuTHJldCU9OlxuXHQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAg
ICAgICAgICIucHVzaHNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIiAgICAgICAg
ICAgICAgICAgICAgICAgXAo=

--=separator
Content-Type: application/octet-stream; name="xsa375-4.13.patch"
Content-Disposition: attachment; filename="xsa375-4.13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogUHJvdGVjdCBhZ2FpbnN0IFNw
ZWN1bGF0aXZlIENvZGUgU3RvcmUgQnlwYXNzCgpNb2Rlcm4geDg2IHByb2Nl
c3NvcnMgaGF2ZSBmYXItYmV0dGVyLXRoYW4tYXJjaGl0ZWN0dXJhbGx5LWd1
YXJhbnRlZWQgc2VsZgptb2RpZnlpbmcgY29kZSBkZXRlY3Rpb24uICBUeXBp
Y2FsbHksIHdoZW4gYSB3cml0ZSBoaXRzIGFuIGluc3RydWN0aW9uIGluCmZs
aWdodCwgYSBNYWNoaW5lIENsZWFyIG9jY3VycyB0byBmbHVzaCBzdGFsZSBj
b250ZW50IGluIHRoZSBmcm9udGVuZCBhbmQKYmFja2VuZC4KCkZvciBzZWxm
IG1vZGlmeWluZyBjb2RlLCBiZWZvcmUgYSB3cml0ZSB3aGljaCBoaXRzIGFu
IGluc3RydWN0aW9uIGluIGZsaWdodApyZXRpcmVzLCB0aGUgZnJvbnRlbmQg
Y2FuIHNwZWN1bGF0aXZlbHkgZGVjb2RlIGFuZCBleGVjdXRlIHRoZSBvbGQg
aW5zdHJ1Y3Rpb24Kc3RyZWFtLiAgU3BlY3VsYXRpb24gb2YgdGhpcyBmb3Jt
IGNhbiBzdWZmZXIgZnJvbSB0eXBlIGNvbmZ1c2lvbiBpbiByZWdpc3RlcnMs
CmFuZCBwb3RlbnRpYWxseSBsZWFrIGRhdGEuCgpGdXJ0aGVybW9yZSwgdXBk
YXRlcyBhcmUgdHlwaWNhbGx5IGJ5dGUtd2lzZSwgcmF0aGVyIHRoYW4gYXRv
bWljLiAgRGVwZW5kaW5nCm9uIHRpbWluZywgc3BlY3VsYXRpb24gY2FuIHJh
Y2UgYWhlYWQgbXVsdGlwbGUgdGltZXMgYmV0d2VlbiBpbmRpdmlkdWFsCndy
aXRlcywgYW5kIGV4ZWN1dGUgdGhlIHRyYW5zaWVudGx5LW1hbGZvcm1lZCBp
bnN0cnVjdGlvbiBzdHJlYW0uCgpYZW4gaGFzIHN0dWJzIHdoaWNoIGFyZSB1
c2VkIGluIGNlcnRhaW4gY2FzZXMgZm9yIGVtdWxhdGlvbiBwdXJwb3Nlcy4g
IEluaGliaXQKc3BlY3VsYXRpb24gYmV0d2VlbiB1cGRhdGluZyB0aGUgc3R1
YiBhbmQgZXhlY3V0aW5nIGl0LgoKVGhpcyBpcyBYU0EtMzc1IC8gQ1ZFLTIw
MjEtMDA4OS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L3B2L2VtdWwtcHJpdi1vcC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwt
cHJpdi1vcC5jCmluZGV4IDZkYzRmOTJhODQuLjU5YzE1Y2EwZTcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysgYi94
ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTk3LDYgKzk3LDgg
QEAgc3RhdGljIGlvX2VtdWxfc3R1Yl90ICppb19lbXVsX3N0dWJfc2V0dXAo
c3RydWN0IHByaXZfb3BfY3R4dCAqY3R4dCwgdTggb3Bjb2RlLAogICAgIEJV
SUxEX0JVR19PTihTVFVCX0JVRl9TSVpFIC8gMiA8IE1BWCg5LCAvKiBEZWZh
dWx0IGVtdWwgc3R1YiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA1ICsgSU9FTVVMX1FVSVJLX1NUVUJfQllURVMpKTsK
IAorICAgIGJsb2NrX3NwZWN1bGF0aW9uKCk7IC8qIFNDU0IgKi8KKwogICAg
IC8qIEhhbmR5IGZ1bmN0aW9uLXR5cGVkIHBvaW50ZXIgdG8gdGhlIHN0dWIu
ICovCiAgICAgcmV0dXJuICh2b2lkICopc3R1Yl92YTsKIH0KZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jIGIv
eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKaW5kZXgg
YmJhNmRkMDE4Ny4uY2QxMjM0OTJhNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv
eDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gv
eDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTExNzIsNiArMTE3
Miw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1rZWModWludDhfdCBlLCBpbnQz
Ml90IGVjLCAuLi4pCiAjIGRlZmluZSBpbnZva2Vfc3R1YihwcmUsIHBvc3Qs
IGNvbnN0cmFpbnRzLi4uKSBkbyB7ICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgc3R1Yl9leG4uaW5mbyA9ICh1bmlvbiBzdHViX2V4Y2VwdGlvbl90b2tl
bikgeyAucmF3ID0gfjAgfTsgICAgICAgICBcCiAgICAgc3R1Yl9leG4ubGlu
ZSA9IF9fTElORV9fOyAvKiBVdGlsaXR5IG91dHdlaWdocyBsaXZlcGF0Y2hp
bmcgY29zdCAqLyBcCisgICAgYmxvY2tfc3BlY3VsYXRpb24oKTsgLyogU0NT
QiAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgYXNtIHZvbGF0aWxlICggcHJlICJcblx0SU5ESVJFQ1RfQ0FMTCAlW3N0
dWJdXG5cdCIgcG9zdCAiXG4iICAgICAgICBcCiAgICAgICAgICAgICAgICAg
ICAgIi5McmV0JT06XG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIi5wdXNoc2VjdGlv
biAuZml4dXAsXCJheFwiXG4iICAgICAgICAgICAgICAgICAgICAgICBcCg==

--=separator--


From xen-users-bounces@lists.xenproject.org Tue Jun 08 17:05:13 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Jun 2021 17:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.138611.256538 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqf9e-0008Fg-QK; Tue, 08 Jun 2021 17:04:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 138611.256538; Tue, 08 Jun 2021 17:04:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqf9e-0008FW-MY; Tue, 08 Jun 2021 17:04:42 +0000
Received: by outflank-mailman (input) for mailman id 138611;
 Tue, 08 Jun 2021 17:04:40 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CbVg=LC=xenbits.xen.org=iwj@srs-us1.protection.inumbo.net>)
 id 1lqf9c-0007tU-O2
 for xen-users@lists.xen.org; Tue, 08 Jun 2021 17:04:40 +0000
Received: from mail.xenproject.org (unknown [104.130.215.37])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 05eccac5-9d57-4387-9fbd-260d206a909a;
 Tue, 08 Jun 2021 17:04:34 +0000 (UTC)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1lqf9Q-0004gL-8a; Tue, 08 Jun 2021 17:04:28 +0000
Received: from iwj by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1lqf9Q-0004pg-7A; Tue, 08 Jun 2021 17:04:28 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 05eccac5-9d57-4387-9fbd-260d206a909a
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=RXy3Cr7MU80DA2L5jThtQDRerhPPf9p7E9ZKO/Rdv2E=; b=UYWD7GabKQoVeXpp3CKF1Byk23
	K98dheUja/qTOwlXL2ChCQ47g7TOGsLAE+qZGwtMN7/JxilluQ7W5/Rjb4dJbs+EMxOsHLQHv+lZ5
	PTeAkMDvzvIK1l6Frz/hw4QHOqnK5lmcRFT1a0OPJIaytMTWQz8UXIJys16rPinBWR7A=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 372 v3 (CVE-2021-28693) - xen/arm: Boot
 modules are not scrubbed
Message-Id: <E1lqf9Q-0004pg-7A@xenbits.xenproject.org>
Date: Tue, 08 Jun 2021 17:04:28 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2021-28693 / XSA-372
                               version 3

                xen/arm: Boot modules are not scrubbed

UPDATES IN VERSION 3
====================

Public release.

ISSUE DESCRIPTION
=================

The bootloader will load boot modules (e.g. kernel, initramfs...) in a
temporary area before they are copied by Xen to each domain memory.
To ensure sensitive data is not leaked from the modules, Xen must
"scrub" them before handing the page over to the allocator.

Unfortunately, it was discovered that modules will not be scrubbed on
Arm.

IMPACT
======

Sensitive information from the boot modules might be visible to another
domain after boot.

VULNERABLE SYSTEMS
==================

Only Arm systems are vulnerable.  System running with "bootscrub=off"
(disabling boot scrubbing) are not vulnerable.

All versions of Xen since 4.12 are vulnerable.

MITIGATION
==========

There is no mitigation available.

CREDITS
=======

This issue was discovered by Julien Grall of Amazon.

RESOLUTION
==========

Applying the appropriate set of attached patches resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa372/*.patch         xen-unstable
xsa372-4.15/*.patch    Xen 4.15.x
xsa372-4.14/*.patch    Xen 4.14.x - Xen 4.13.x
xsa372-4.12/*.patch    Xen 4.12.x

$ sha256sum xsa372* xsa372*/*
06e43684c2d8a3085d55b8b40f57e1b9f1ee47519fac844dcbc21b57fb039915  xsa372.meta
8f872c7abe6c795dbef2e401f2223fda0dbb9d7c57dfebd8047eef37e1caf952  xsa372-4.12/0001-xen-arm-Create-dom0less-domUs-earlier.patch
a43c6c11481cc3f13900908cee79cc6c5401921f6f4e8858c0796cf301cfe923  xsa372-4.12/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch
6d1fad53795ebd251520022b6be901215426ba78ccbbc075841698973b74d2a2  xsa372-4.14/0001-xen-arm-Create-dom0less-domUs-earlier.patch
2ceb5d4d8d4f8a18046721daa3bb29633a620c4794b54e1265f5d4d69a314c3b  xsa372-4.14/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch
7feae5f9f7f2df0ec38c0b9358dc32671a9955f966b3120e17bb3fd820ce33ff  xsa372-4.15/0001-xen-arm-Create-dom0less-domUs-earlier.patch
0cc73b4751fa49f68c6584b1c7882606c6e1f18561d8a6547017ab068de4eb4b  xsa372-4.15/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch
950672405c695ebf6ae59eebeb454bc0738b7afc3efa35ef9680d76eef4d4ec0  xsa372/0001-xen-arm-Create-dom0less-domUs-earlier.patch
9ceccd39c795e7756052a2f00256e043c8dda42e2c691df30e3f8b59190d6e8e  xsa372/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmC/oxIMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZmdYIAMlZ2woM1hnb97BytpKkRM3v8AnyP4xhm29OoVI+
eaclrapZBPxi8qxv0+fxhe/2/t9gf98miEJftI8VRz5btiStmsgIjlEXUGpC6iwE
u7HmLzu7QBX7r2FzpSTFnVVdbFwXCU3scYuO4qM8frCpxH4kevSSxPrT5E/oFVvA
Y83ux8aKg041WTVQvK0gEVA7CgRVoxmbiYeag2JIaRGt8WnEKprbmGWQ5+DYq+pr
8tsLppHtyxppqSa7d6L67xdiNoRqAacfIezNFTpSIdyfS1m0QIIAJTr6Bg7Fd6zi
F2AYcoZiNO53OSnobH3c64axIc5iBINZeXisVMnTDzKU3XE=
=eQ/r
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa372.meta"
Content-Disposition: attachment; filename="xsa372.meta"
Content-Transfer-Encoding: base64

ewogICJYU0EiOiAzNzIsCiAgIlN1cHBvcnRlZFZlcnNpb25zIjogWwogICAg
Im1hc3RlciIsCiAgICAiNC4xNSIsCiAgICAiNC4xNCIsCiAgICAiNC4xMyIs
CiAgICAiNC4xMiIKICBdLAogICJUcmVlcyI6IFsKICAgICJ4ZW4iCiAgXSwK
ICAiUmVjaXBlcyI6IHsKICAgICI0LjEyIjogewogICAgICAiUmVjaXBlcyI6
IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICI1
OTg0OTA1YjI2MzhkZjg3YTAyNjJkMWVlOTFmMGE2ZTE0YTg2ZGY2IiwKICAg
ICAgICAgICJQcmVyZXFzIjogW10sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsK
ICAgICAgICAgICAgInhzYTM3Mi00LjEyLyoucGF0Y2giCiAgICAgICAgICBd
CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIjQuMTMiOiB7CiAgICAg
ICJSZWNpcGVzIjogewogICAgICAgICJ4ZW4iOiB7CiAgICAgICAgICAiU3Rh
YmxlUmVmIjogIjI4NDEzMjkzODkwMGNlOGMzYjExYmFiZjcyNTVmNWM2ZGJi
MjE3MTYiLAogICAgICAgICAgIlByZXJlcXMiOiBbXSwKICAgICAgICAgICJQ
YXRjaGVzIjogWwogICAgICAgICAgICAieHNhMzcyLTQuMTQvKi5wYXRjaCIK
ICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiNC4x
NCI6IHsKICAgICAgIlJlY2lwZXMiOiB7CiAgICAgICAgInhlbiI6IHsKICAg
ICAgICAgICJTdGFibGVSZWYiOiAiMTBmMGIyZDQ5Mzc2ODY1ZDQ5NjgwZjA2
YzUyYjQ1MWZhYmNlM2JiNSIsCiAgICAgICAgICAiUHJlcmVxcyI6IFtdLAog
ICAgICAgICAgIlBhdGNoZXMiOiBbCiAgICAgICAgICAgICJ4c2EzNzItNC4x
NC8qLnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAg
fSwKICAgICI0LjE1IjogewogICAgICAiUmVjaXBlcyI6IHsKICAgICAgICAi
eGVuIjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICIyODBkNDcyZjRmY2Ew
NzBhMTAzNzdlMzE4ZDkwY2FiZmMyNTQwODEwIiwKICAgICAgICAgICJQcmVy
ZXFzIjogW10sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAgICAgICAg
InhzYTM3Mi00LjE1LyoucGF0Y2giCiAgICAgICAgICBdCiAgICAgICAgfQog
ICAgICB9CiAgICB9LAogICAgIm1hc3RlciI6IHsKICAgICAgIlJlY2lwZXMi
OiB7CiAgICAgICAgInhlbiI6IHsKICAgICAgICAgICJTdGFibGVSZWYiOiAi
YWE3N2FjYzI4MDk4ZDA0OTQ1YWY5OThmM2ZjMGRiZDM3NTliNWI0MSIsCiAg
ICAgICAgICAiUHJlcmVxcyI6IFtdLAogICAgICAgICAgIlBhdGNoZXMiOiBb
CiAgICAgICAgICAgICJ4c2EzNzIvKi5wYXRjaCIKICAgICAgICAgIF0KICAg
ICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0=

--=separator
Content-Type: application/octet-stream;
 name="xsa372-4.12/0001-xen-arm-Create-dom0less-domUs-earlier.patch"
Content-Disposition: attachment;
 filename="xsa372-4.12/0001-xen-arm-Create-dom0less-domUs-earlier.patch"
Content-Transfer-Encoding: base64

RnJvbSBlZWZiYWJkODVhYzUwNGY0YjQ3NGY3OWFiYzc2NWRhZTkxYjkxZTFi
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpZW4gR3JhbGwg
PGpncmFsbEBhbWF6b24uY29tPgpEYXRlOiBNb24sIDE3IE1heSAyMDIxIDE3
OjQ3OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIHhlbi9hcm06IENy
ZWF0ZSBkb20wbGVzcyBkb21VcyBlYXJsaWVyCgpJbiBhIGZvbGxvdy11cCBw
YXRjaCB3ZSB3aWxsIG5lZWQgdG8gdW5hbGxvY2F0ZSB0aGUgYm9vdCBtb2R1
bGVzCmJlZm9yZSBoZWFwX2luaXRfbGF0ZSgpIGlzIGNhbGxlZC4KClRoZSBt
b2R1bGVzIHdpbGwgY29udGFpbiB0aGUgZG9tVXMga2VybmVsIGFuZCBpbml0
cmFtZnMuIFRoZXJlZm9yZSBYZW4Kd2lsbCBuZWVkIHRvIGNyZWF0ZSBleHRy
YSBkb21VcyAodXNlZCBieSBkb20wbGVzcykgYmVmb3JlIGhlYXBfaW5pdF9s
YXRlKCkuCgpUaGlzIGhhcyB0d28gY29uc2VxdWVuY2VzIG9uIGRvbTBsZXNz
OgogICAgMSkgRG9tYWlucyB3aWxsIG5vdCBiZSB1bnBhdXNlZCBhcyBzb29u
IGFzIHRoZXkgYXJlIGNyZWF0ZWQgYnV0CiAgICBvbmNlIGFsbCBoYXZlIGJl
ZW4gY3JlYXRlZC4gSG93ZXZlciwgWGVuIGRvZXNuJ3QgZ3VhcmFudGVlIGFu
IG9yZGVyCiAgICB0byB1bnBhdXNlLCBzbyB0aGlzIGlzIG5vdCBzb21ldGhp
bmcgb25lIGNvdWxkIHJlbHkgb24uCgogICAgMikgVGhlIG1lbW9yeSBhbGxv
Y2F0ZWQgZm9yIGEgZG9tVSB3aWxsIG5vdCBiZSBzY3J1YmJlZCBhbnltb3Jl
IHdoZW4gYW4KICAgIGFkbWluIHNlbGVjdCBib290c2NydWI9b24uIFRoaXMg
aXMgbm90IHNvbWV0aGluZyB3ZSBhZHZlcnRpc2VkLCBidXQgaWYKICAgIHRo
aXMgaXMgYSBjb25jZXJuIHdlIGNhbiBpbnRyb2R1Y2UgZWl0aGVyIGZvcmNl
IHNjcnViIGZvciBhbGwgZG9tVXMgb3IKICAgIGEgcGVyLWRvbWFpbiBmbGFn
IGluIHRoZSBEVC4gVGhlIGJlaGF2aW9yIGZvciBib290c2NydWI9b2ZmIGFu
ZAogICAgYm9vdHNjcnViPWlkbGUgKGRlZmF1bHQpIGhhcyBub3QgY2hhbmdl
ZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtMzcyIC8gQ1ZFLTIwMjEtMjg2OTMu
CgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGpncmFsbEBhbWF6b24u
Y29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPgpSZXZpZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVs
bGluaUBrZXJuZWwub3JnPgpUZXN0ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGlu
aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KLS0tCiB4ZW4vYXJjaC9hcm0v
ZG9tYWluX2J1aWxkLmMgfCAyIC0tCiB4ZW4vYXJjaC9hcm0vc2V0dXAuYyAg
ICAgICAgfCA5ICsrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA1IGluc2Vy
dGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gvYXJtL2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9i
dWlsZC5jCmluZGV4IGQ5ODM2Nzc5ZDE3Yy4uNmM1YTZkYjE0NDY2IDEwMDY0
NAotLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKKysrIGIveGVu
L2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCkBAIC0yMDkyLDggKzIwOTIsNiBA
QCB2b2lkIF9faW5pdCBjcmVhdGVfZG9tVXModm9pZCkKIAogICAgICAgICBp
ZiAoIGNvbnN0cnVjdF9kb21VKGQsIG5vZGUpICE9IDAgKQogICAgICAgICAg
ICAgcGFuaWMoIkNvdWxkIG5vdCBzZXQgdXAgZG9tYWluICVzXG4iLCBkdF9u
b2RlX25hbWUobm9kZSkpOwotCi0gICAgICAgIGRvbWFpbl91bnBhdXNlX2J5
X3N5c3RlbWNvbnRyb2xsZXIoZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC9hcm0vc2V0dXAuYyBiL3hlbi9hcmNoL2FybS9zZXR1cC5j
CmluZGV4IGQ5ODZmODRmOGQyYS4uMGU1NGU5YzczZTA2IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC9hcm0vc2V0dXAuYworKysgYi94ZW4vYXJjaC9hcm0vc2V0
dXAuYwpAQCAtNzM2LDcgKzczNiw3IEBAIHZvaWQgX19pbml0IHN0YXJ0X3hl
bih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19vZmZzZXQsCiAgICAgaW50IGNw
dXMsIGk7CiAgICAgY29uc3QgY2hhciAqY21kbGluZTsKICAgICBzdHJ1Y3Qg
Ym9vdG1vZHVsZSAqeGVuX2Jvb3Rtb2R1bGU7Ci0gICAgc3RydWN0IGRvbWFp
biAqZG9tMDsKKyAgICBzdHJ1Y3QgZG9tYWluICpkb20wLCAqZDsKICAgICBz
dHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4gZG9tMF9jZmcgPSB7CiAg
ICAgICAgIC5mbGFncyA9IFhFTl9ET01DVExfQ0RGX2h2bV9ndWVzdCB8IFhF
Tl9ET01DVExfQ0RGX2hhcCwKICAgICAgICAgLm1heF9ldnRjaG5fcG9ydCA9
IC0xLApAQCAtOTAyLDYgKzkwMiw4IEBAIHZvaWQgX19pbml0IHN0YXJ0X3hl
bih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19vZmZzZXQsCiAgICAgaWYgKCBj
b25zdHJ1Y3RfZG9tMChkb20wKSAhPSAwKQogICAgICAgICBwYW5pYygiQ291
bGQgbm90IHNldCB1cCBET00wIGd1ZXN0IE9TXG4iKTsKIAorICAgIGNyZWF0
ZV9kb21VcygpOworCiAgICAgaGVhcF9pbml0X2xhdGUoKTsKIAogICAgIGlu
aXRfdHJhY2VfYnVmcygpOwpAQCAtOTE1LDkgKzkxNyw4IEBAIHZvaWQgX19p
bml0IHN0YXJ0X3hlbih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19vZmZzZXQs
CiAKICAgICBzeXN0ZW1fc3RhdGUgPSBTWVNfU1RBVEVfYWN0aXZlOwogCi0g
ICAgY3JlYXRlX2RvbVVzKCk7Ci0KLSAgICBkb21haW5fdW5wYXVzZV9ieV9z
eXN0ZW1jb250cm9sbGVyKGRvbTApOworICAgIGZvcl9lYWNoX2RvbWFpbigg
ZCApCisgICAgICAgIGRvbWFpbl91bnBhdXNlX2J5X3N5c3RlbWNvbnRyb2xs
ZXIoZCk7CiAKICAgICAvKiBTd2l0Y2ggb24gdG8gdGhlIGR5bmFtaWNhbGx5
IGFsbG9jYXRlZCBzdGFjayBmb3IgdGhlIGlkbGUgdmNwdQogICAgICAqIHNp
bmNlIHRoZSBzdGF0aWMgb25lIHdlJ3JlIHJ1bm5pbmcgb24gaXMgYWJvdXQg
dG8gYmUgZnJlZWQuICovCi0tIAoyLjE3LjEKCg==

--=separator
Content-Type: application/octet-stream;
 name="xsa372-4.12/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch"
Content-Disposition: attachment;
 filename="xsa372-4.12/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch"
Content-Transfer-Encoding: base64

RnJvbSA3ZjEwYWI3MDE5YjFkYzU2ZWEzNTg3YzljNWNiYzA3MzQyN2UwMmNl
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpZW4gR3JhbGwg
PGpncmFsbEBhbWF6b24uY29tPgpEYXRlOiBTYXQsIDE3IEFwciAyMDIxIDE3
OjM4OjI4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIHhlbi9hcm06IEJv
b3QgbW9kdWxlcyBzaG91bGQgYWx3YXlzIGJlIHNjcnViYmVkIGlmCiBib290
c2NydWI9e29uLCBpZGxlfQoKVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUg
dGhlIHBhZ2VzIChzZWUgaW5pdF9oZWFwX3BhZ2VzKCkpIHdpbGwgcmVxdWVz
dApzY3J1YiB3aGVuIHRoZSBhZG1pbiByZXF1ZXN0IGlkbGUgYm9vdHNjcnVi
IChkZWZhdWx0KSBhbmQgc3RhdGUgPT0KU1lTX1NUQVRFX2FjdGl2ZS4gV2hl
biBib290c2NydWI9b24sIFhlbiB3aWxsIHNjcnViIGFueSBmcmVlIHBhZ2Vz
IGluCmhlYXBfaW5pdF9sYXRlKCkuCgpDdXJyZW50bHksIHRoZSBib290IG1v
ZHVsZXMgKGUuZy4ga2VybmVscywgaW5pdHJhbWZzKSB3aWxsIGJlIGRpc2Nh
cmRlZC8KZnJlZWQgYWZ0ZXIgaGVhcF9pbml0X2xhdGUoKSBpcyBjYWxsZWQg
YW5kIHN5c3RlbV9zdGF0ZSBzd2l0Y2hlZCB0bwpTWVNfU1RBVEVfYWN0aXZl
LiBUaGlzIG1lYW5zIHRoZSBwYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGJv
b3QgbW9kdWxlcwp3aWxsIG5vdCBnZXQgc2NydWJiZWQgYmVmb3JlIGdldHRp
bmcgcmUtcHVycG9zZWQuCgpJZiB0aGUgbWVtb3J5IGlzIGFzc2lnbmVkIHRv
IGFuIHVudHJ1c3RlZCBkb21VLCBpdCBtYXkgYmUgYWJsZSB0bwpyZXRyaWV2
ZSBzZWNyZXRzIGZyb20gdGhlIG1vZHVsZXMuCgpUaGlzIGlzIHBhcnQgb2Yg
WFNBLTM3MiAvIENWRS0yMDIxLTI4NjkzLgoKRml4ZXM6IDE3NzRlOWIxZGYy
NyAoInhlbi9hcm06IGludHJvZHVjZSBjcmVhdGVfZG9tVXMiKQpTaWduZWQt
b2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGpncmFsbEBhbWF6b24uY29tPgpSZXZp
ZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZp
ZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJu
ZWwub3JnPgpUZXN0ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJl
bGxpbmlAa2VybmVsLm9yZz4KLS0tCiB4ZW4vYXJjaC9hcm0vc2V0dXAuYyB8
IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg
MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9zZXR1
cC5jIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKaW5kZXggMGU1NGU5YzczZTA2
Li5iYTk1YzA2ZDg5ZjIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9zZXR1
cC5jCisrKyBiL3hlbi9hcmNoL2FybS9zZXR1cC5jCkBAIC03Myw3ICs3Myw2
IEBAIHN0YXRpYyBfX3VzZWQgdm9pZCBpbml0X2RvbmUodm9pZCkKICAgICAv
KiBNdXN0IGJlIGRvbmUgcGFzdCBzZXR0aW5nIHN5c3RlbV9zdGF0ZS4gKi8K
ICAgICB1bnJlZ2lzdGVyX2luaXRfdmlydHVhbF9yZWdpb24oKTsKIAotICAg
IGRpc2NhcmRfaW5pdGlhbF9tb2R1bGVzKCk7CiAgICAgZnJlZV9pbml0X21l
bW9yeSgpOwogICAgIHN0YXJ0dXBfY3B1X2lkbGVfbG9vcCgpOwogfQpAQCAt
OTA0LDYgKzkwMywxMiBAQCB2b2lkIF9faW5pdCBzdGFydF94ZW4odW5zaWdu
ZWQgbG9uZyBib290X3BoeXNfb2Zmc2V0LAogCiAgICAgY3JlYXRlX2RvbVVz
KCk7CiAKKyAgICAvKgorICAgICAqIFRoaXMgbmVlZHMgdG8gYmUgY2FsbGVk
ICoqYmVmb3JlKiogaGVhcF9pbml0X2xhdGUoKSBzbyBtb2R1bGVzCisgICAg
ICogd2lsbCBiZSBzY3J1YmJlZCAodW5sZXNzIHN1cHByZXNzZWQpLgorICAg
ICAqLworICAgIGRpc2NhcmRfaW5pdGlhbF9tb2R1bGVzKCk7CisKICAgICBo
ZWFwX2luaXRfbGF0ZSgpOwogCiAgICAgaW5pdF90cmFjZV9idWZzKCk7Ci0t
IAoyLjE3LjEKCg==

--=separator
Content-Type: application/octet-stream;
 name="xsa372-4.14/0001-xen-arm-Create-dom0less-domUs-earlier.patch"
Content-Disposition: attachment;
 filename="xsa372-4.14/0001-xen-arm-Create-dom0less-domUs-earlier.patch"
Content-Transfer-Encoding: base64

RnJvbSBmOThjMjBhYWFmOTA5YmUwNGFkYTVjYjZjYjg4YzE0YjliYzc1ZTE1
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpZW4gR3JhbGwg
PGpncmFsbEBhbWF6b24uY29tPgpEYXRlOiBNb24sIDE3IE1heSAyMDIxIDE3
OjQ3OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIHhlbi9hcm06IENy
ZWF0ZSBkb20wbGVzcyBkb21VcyBlYXJsaWVyCgpJbiBhIGZvbGxvdy11cCBw
YXRjaCB3ZSB3aWxsIG5lZWQgdG8gdW5hbGxvY2F0ZSB0aGUgYm9vdCBtb2R1
bGVzCmJlZm9yZSBoZWFwX2luaXRfbGF0ZSgpIGlzIGNhbGxlZC4KClRoZSBt
b2R1bGVzIHdpbGwgY29udGFpbiB0aGUgZG9tVXMga2VybmVsIGFuZCBpbml0
cmFtZnMuIFRoZXJlZm9yZSBYZW4Kd2lsbCBuZWVkIHRvIGNyZWF0ZSBleHRy
YSBkb21VcyAodXNlZCBieSBkb20wbGVzcykgYmVmb3JlIGhlYXBfaW5pdF9s
YXRlKCkuCgpUaGlzIGhhcyB0d28gY29uc2VxdWVuY2VzIG9uIGRvbTBsZXNz
OgogICAgMSkgRG9tYWlucyB3aWxsIG5vdCBiZSB1bnBhdXNlZCBhcyBzb29u
IGFzIHRoZXkgYXJlIGNyZWF0ZWQgYnV0CiAgICBvbmNlIGFsbCBoYXZlIGJl
ZW4gY3JlYXRlZC4gSG93ZXZlciwgWGVuIGRvZXNuJ3QgZ3VhcmFudGVlIGFu
IG9yZGVyCiAgICB0byB1bnBhdXNlLCBzbyB0aGlzIGlzIG5vdCBzb21ldGhp
bmcgb25lIGNvdWxkIHJlbHkgb24uCgogICAgMikgVGhlIG1lbW9yeSBhbGxv
Y2F0ZWQgZm9yIGEgZG9tVSB3aWxsIG5vdCBiZSBzY3J1YmJlZCBhbnltb3Jl
IHdoZW4gYW4KICAgIGFkbWluIHNlbGVjdCBib290c2NydWI9b24uIFRoaXMg
aXMgbm90IHNvbWV0aGluZyB3ZSBhZHZlcnRpc2VkLCBidXQgaWYKICAgIHRo
aXMgaXMgYSBjb25jZXJuIHdlIGNhbiBpbnRyb2R1Y2UgZWl0aGVyIGZvcmNl
IHNjcnViIGZvciBhbGwgZG9tVXMgb3IKICAgIGEgcGVyLWRvbWFpbiBmbGFn
IGluIHRoZSBEVC4gVGhlIGJlaGF2aW9yIGZvciBib290c2NydWI9b2ZmIGFu
ZAogICAgYm9vdHNjcnViPWlkbGUgKGRlZmF1bHQpIGhhcyBub3QgY2hhbmdl
ZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtMzcyIC8gQ1ZFLTIwMjEtMjg2OTMu
CgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGpncmFsbEBhbWF6b24u
Y29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPgpSZXZpZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVs
bGluaUBrZXJuZWwub3JnPgpUZXN0ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGlu
aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KLS0tCiB4ZW4vYXJjaC9hcm0v
ZG9tYWluX2J1aWxkLmMgfCAyIC0tCiB4ZW4vYXJjaC9hcm0vc2V0dXAuYyAg
ICAgICAgfCA5ICsrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA1IGluc2Vy
dGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gvYXJtL2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9i
dWlsZC5jCmluZGV4IGU4MjRiYTM0YjAxMi4uYjA3NDYxZjVkMzc2IDEwMDY0
NAotLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKKysrIGIveGVu
L2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCkBAIC0yNTE1LDggKzI1MTUsNiBA
QCB2b2lkIF9faW5pdCBjcmVhdGVfZG9tVXModm9pZCkKIAogICAgICAgICBp
ZiAoIGNvbnN0cnVjdF9kb21VKGQsIG5vZGUpICE9IDAgKQogICAgICAgICAg
ICAgcGFuaWMoIkNvdWxkIG5vdCBzZXQgdXAgZG9tYWluICVzXG4iLCBkdF9u
b2RlX25hbWUobm9kZSkpOwotCi0gICAgICAgIGRvbWFpbl91bnBhdXNlX2J5
X3N5c3RlbWNvbnRyb2xsZXIoZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC9hcm0vc2V0dXAuYyBiL3hlbi9hcmNoL2FybS9zZXR1cC5j
CmluZGV4IDc5NjhjZWU0N2QwNS4uMWYyNjA4MGIzMGJmIDEwMDY0NAotLS0g
YS94ZW4vYXJjaC9hcm0vc2V0dXAuYworKysgYi94ZW4vYXJjaC9hcm0vc2V0
dXAuYwpAQCAtNzc5LDcgKzc3OSw3IEBAIHZvaWQgX19pbml0IHN0YXJ0X3hl
bih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19vZmZzZXQsCiAgICAgaW50IGNw
dXMsIGk7CiAgICAgY29uc3QgY2hhciAqY21kbGluZTsKICAgICBzdHJ1Y3Qg
Ym9vdG1vZHVsZSAqeGVuX2Jvb3Rtb2R1bGU7Ci0gICAgc3RydWN0IGRvbWFp
biAqZG9tMDsKKyAgICBzdHJ1Y3QgZG9tYWluICpkb20wLCAqZDsKICAgICBz
dHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4gZG9tMF9jZmcgPSB7CiAg
ICAgICAgIC5mbGFncyA9IFhFTl9ET01DVExfQ0RGX2h2bSB8IFhFTl9ET01D
VExfQ0RGX2hhcCwKICAgICAgICAgLm1heF9ldnRjaG5fcG9ydCA9IC0xLApA
QCAtOTYyLDYgKzk2Miw4IEBAIHZvaWQgX19pbml0IHN0YXJ0X3hlbih1bnNp
Z25lZCBsb25nIGJvb3RfcGh5c19vZmZzZXQsCiAgICAgaWYgKCBjb25zdHJ1
Y3RfZG9tMChkb20wKSAhPSAwKQogICAgICAgICBwYW5pYygiQ291bGQgbm90
IHNldCB1cCBET00wIGd1ZXN0IE9TXG4iKTsKIAorICAgIGNyZWF0ZV9kb21V
cygpOworCiAgICAgaGVhcF9pbml0X2xhdGUoKTsKIAogICAgIGluaXRfdHJh
Y2VfYnVmcygpOwpAQCAtOTc1LDkgKzk3Nyw4IEBAIHZvaWQgX19pbml0IHN0
YXJ0X3hlbih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19vZmZzZXQsCiAKICAg
ICBzeXN0ZW1fc3RhdGUgPSBTWVNfU1RBVEVfYWN0aXZlOwogCi0gICAgY3Jl
YXRlX2RvbVVzKCk7Ci0KLSAgICBkb21haW5fdW5wYXVzZV9ieV9zeXN0ZW1j
b250cm9sbGVyKGRvbTApOworICAgIGZvcl9lYWNoX2RvbWFpbiggZCApCisg
ICAgICAgIGRvbWFpbl91bnBhdXNlX2J5X3N5c3RlbWNvbnRyb2xsZXIoZCk7
CiAKICAgICAvKiBTd2l0Y2ggb24gdG8gdGhlIGR5bmFtaWNhbGx5IGFsbG9j
YXRlZCBzdGFjayBmb3IgdGhlIGlkbGUgdmNwdQogICAgICAqIHNpbmNlIHRo
ZSBzdGF0aWMgb25lIHdlJ3JlIHJ1bm5pbmcgb24gaXMgYWJvdXQgdG8gYmUg
ZnJlZWQuICovCi0tIAoyLjE3LjEKCg==

--=separator
Content-Type: application/octet-stream;
 name="xsa372-4.14/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch"
Content-Disposition: attachment;
 filename="xsa372-4.14/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch"
Content-Transfer-Encoding: base64

RnJvbSBlN2U0NzVjMWEzZGM2YjE0OTI1MjQxMzU4OWVlYmFhNGFlMTM4ODI0
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpZW4gR3JhbGwg
PGpncmFsbEBhbWF6b24uY29tPgpEYXRlOiBTYXQsIDE3IEFwciAyMDIxIDE3
OjM4OjI4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIHhlbi9hcm06IEJv
b3QgbW9kdWxlcyBzaG91bGQgYWx3YXlzIGJlIHNjcnViYmVkIGlmCiBib290
c2NydWI9e29uLCBpZGxlfQoKVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUg
dGhlIHBhZ2VzIChzZWUgaW5pdF9oZWFwX3BhZ2VzKCkpIHdpbGwgcmVxdWVz
dApzY3J1YiB3aGVuIHRoZSBhZG1pbiByZXF1ZXN0IGlkbGUgYm9vdHNjcnVi
IChkZWZhdWx0KSBhbmQgc3RhdGUgPT0KU1lTX1NUQVRFX2FjdGl2ZS4gV2hl
biBib290c2NydWI9b24sIFhlbiB3aWxsIHNjcnViIGFueSBmcmVlIHBhZ2Vz
IGluCmhlYXBfaW5pdF9sYXRlKCkuCgpDdXJyZW50bHksIHRoZSBib290IG1v
ZHVsZXMgKGUuZy4ga2VybmVscywgaW5pdHJhbWZzKSB3aWxsIGJlIGRpc2Nh
cmRlZC8KZnJlZWQgYWZ0ZXIgaGVhcF9pbml0X2xhdGUoKSBpcyBjYWxsZWQg
YW5kIHN5c3RlbV9zdGF0ZSBzd2l0Y2hlZCB0bwpTWVNfU1RBVEVfYWN0aXZl
LiBUaGlzIG1lYW5zIHRoZSBwYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGJv
b3QgbW9kdWxlcwp3aWxsIG5vdCBnZXQgc2NydWJiZWQgYmVmb3JlIGdldHRp
bmcgcmUtcHVycG9zZWQuCgpJZiB0aGUgbWVtb3J5IGlzIGFzc2lnbmVkIHRv
IGFuIHVudHJ1c3RlZCBkb21VLCBpdCBtYXkgYmUgYWJsZSB0bwpyZXRyaWV2
ZSBzZWNyZXRzIGZyb20gdGhlIG1vZHVsZXMuCgpUaGlzIGlzIHBhcnQgb2Yg
WFNBLTM3MiAvIENWRS0yMDIxLTI4NjkzLgoKRml4ZXM6IDE3NzRlOWIxZGYy
NyAoInhlbi9hcm06IGludHJvZHVjZSBjcmVhdGVfZG9tVXMiKQpTaWduZWQt
b2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGpncmFsbEBhbWF6b24uY29tPgpSZXZp
ZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZp
ZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJu
ZWwub3JnPgpUZXN0ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJl
bGxpbmlAa2VybmVsLm9yZz4KLS0tCiB4ZW4vYXJjaC9hcm0vc2V0dXAuYyB8
IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg
MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9zZXR1
cC5jIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKaW5kZXggMWYyNjA4MGIzMGJm
Li4zNGIxYzFhMTFlZjYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9zZXR1
cC5jCisrKyBiL3hlbi9hcmNoL2FybS9zZXR1cC5jCkBAIC03NSw3ICs3NSw2
IEBAIHN0YXRpYyBfX3VzZWQgdm9pZCBpbml0X2RvbmUodm9pZCkKICAgICAv
KiBNdXN0IGJlIGRvbmUgcGFzdCBzZXR0aW5nIHN5c3RlbV9zdGF0ZS4gKi8K
ICAgICB1bnJlZ2lzdGVyX2luaXRfdmlydHVhbF9yZWdpb24oKTsKIAotICAg
IGRpc2NhcmRfaW5pdGlhbF9tb2R1bGVzKCk7CiAgICAgZnJlZV9pbml0X21l
bW9yeSgpOwogICAgIHN0YXJ0dXBfY3B1X2lkbGVfbG9vcCgpOwogfQpAQCAt
OTY0LDYgKzk2MywxMiBAQCB2b2lkIF9faW5pdCBzdGFydF94ZW4odW5zaWdu
ZWQgbG9uZyBib290X3BoeXNfb2Zmc2V0LAogCiAgICAgY3JlYXRlX2RvbVVz
KCk7CiAKKyAgICAvKgorICAgICAqIFRoaXMgbmVlZHMgdG8gYmUgY2FsbGVk
ICoqYmVmb3JlKiogaGVhcF9pbml0X2xhdGUoKSBzbyBtb2R1bGVzCisgICAg
ICogd2lsbCBiZSBzY3J1YmJlZCAodW5sZXNzIHN1cHByZXNzZWQpLgorICAg
ICAqLworICAgIGRpc2NhcmRfaW5pdGlhbF9tb2R1bGVzKCk7CisKICAgICBo
ZWFwX2luaXRfbGF0ZSgpOwogCiAgICAgaW5pdF90cmFjZV9idWZzKCk7Ci0t
IAoyLjE3LjEKCg==

--=separator
Content-Type: application/octet-stream;
 name="xsa372-4.15/0001-xen-arm-Create-dom0less-domUs-earlier.patch"
Content-Disposition: attachment;
 filename="xsa372-4.15/0001-xen-arm-Create-dom0less-domUs-earlier.patch"
Content-Transfer-Encoding: base64

RnJvbSBiMWU1YTg5ZjE5ZDk5MTljM2VhZTE3YWI5YzZhNjYzYjA4MDFhZDlj
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpZW4gR3JhbGwg
PGpncmFsbEBhbWF6b24uY29tPgpEYXRlOiBNb24sIDE3IE1heSAyMDIxIDE3
OjQ3OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIHhlbi9hcm06IENy
ZWF0ZSBkb20wbGVzcyBkb21VcyBlYXJsaWVyCgpJbiBhIGZvbGxvdy11cCBw
YXRjaCB3ZSB3aWxsIG5lZWQgdG8gdW5hbGxvY2F0ZSB0aGUgYm9vdCBtb2R1
bGVzCmJlZm9yZSBoZWFwX2luaXRfbGF0ZSgpIGlzIGNhbGxlZC4KClRoZSBt
b2R1bGVzIHdpbGwgY29udGFpbiB0aGUgZG9tVXMga2VybmVsIGFuZCBpbml0
cmFtZnMuIFRoZXJlZm9yZSBYZW4Kd2lsbCBuZWVkIHRvIGNyZWF0ZSBleHRy
YSBkb21VcyAodXNlZCBieSBkb20wbGVzcykgYmVmb3JlIGhlYXBfaW5pdF9s
YXRlKCkuCgpUaGlzIGhhcyB0d28gY29uc2VxdWVuY2VzIG9uIGRvbTBsZXNz
OgogICAgMSkgRG9tYWlucyB3aWxsIG5vdCBiZSB1bnBhdXNlZCBhcyBzb29u
IGFzIHRoZXkgYXJlIGNyZWF0ZWQgYnV0CiAgICBvbmNlIGFsbCBoYXZlIGJl
ZW4gY3JlYXRlZC4gSG93ZXZlciwgWGVuIGRvZXNuJ3QgZ3VhcmFudGVlIGFu
IG9yZGVyCiAgICB0byB1bnBhdXNlLCBzbyB0aGlzIGlzIG5vdCBzb21ldGhp
bmcgb25lIGNvdWxkIHJlbHkgb24uCgogICAgMikgVGhlIG1lbW9yeSBhbGxv
Y2F0ZWQgZm9yIGEgZG9tVSB3aWxsIG5vdCBiZSBzY3J1YmJlZCBhbnltb3Jl
IHdoZW4gYW4KICAgIGFkbWluIHNlbGVjdCBib290c2NydWI9b24uIFRoaXMg
aXMgbm90IHNvbWV0aGluZyB3ZSBhZHZlcnRpc2VkLCBidXQgaWYKICAgIHRo
aXMgaXMgYSBjb25jZXJuIHdlIGNhbiBpbnRyb2R1Y2UgZWl0aGVyIGZvcmNl
IHNjcnViIGZvciBhbGwgZG9tVXMgb3IKICAgIGEgcGVyLWRvbWFpbiBmbGFn
IGluIHRoZSBEVC4gVGhlIGJlaGF2aW9yIGZvciBib290c2NydWI9b2ZmIGFu
ZAogICAgYm9vdHNjcnViPWlkbGUgKGRlZmF1bHQpIGhhcyBub3QgY2hhbmdl
ZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtMzcyIC8gQ1ZFLTIwMjEtMjg2OTMu
CgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGpncmFsbEBhbWF6b24u
Y29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPgpSZXZpZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVs
bGluaUBrZXJuZWwub3JnPgpUZXN0ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGlu
aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KLS0tCiB4ZW4vYXJjaC9hcm0v
ZG9tYWluX2J1aWxkLmMgfCAgMiAtLQogeGVuL2FyY2gvYXJtL3NldHVwLmMg
ICAgICAgIHwgMTEgKysrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNiBp
bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hlbi9hcmNoL2FybS9kb21h
aW5fYnVpbGQuYwppbmRleCAzNzRiZjY1NWVlMzQuLjQyMDNkZGNjYTBlMyAx
MDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCisrKyBi
L3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwpAQCAtMjUxNSw4ICsyNTE1
LDYgQEAgdm9pZCBfX2luaXQgY3JlYXRlX2RvbVVzKHZvaWQpCiAKICAgICAg
ICAgaWYgKCBjb25zdHJ1Y3RfZG9tVShkLCBub2RlKSAhPSAwICkKICAgICAg
ICAgICAgIHBhbmljKCJDb3VsZCBub3Qgc2V0IHVwIGRvbWFpbiAlc1xuIiwg
ZHRfbm9kZV9uYW1lKG5vZGUpKTsKLQotICAgICAgICBkb21haW5fdW5wYXVz
ZV9ieV9zeXN0ZW1jb250cm9sbGVyKGQpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEveGVuL2FyY2gvYXJtL3NldHVwLmMgYi94ZW4vYXJjaC9hcm0vc2V0
dXAuYwppbmRleCAyNTMyZWM5NzM5MTMuLjQ0MWUwZTE2ZTlmMCAxMDA2NDQK
LS0tIGEveGVuL2FyY2gvYXJtL3NldHVwLmMKKysrIGIveGVuL2FyY2gvYXJt
L3NldHVwLmMKQEAgLTgwNCw3ICs4MDQsNyBAQCB2b2lkIF9faW5pdCBzdGFy
dF94ZW4odW5zaWduZWQgbG9uZyBib290X3BoeXNfb2Zmc2V0LAogICAgIGlu
dCBjcHVzLCBpOwogICAgIGNvbnN0IGNoYXIgKmNtZGxpbmU7CiAgICAgc3Ry
dWN0IGJvb3Rtb2R1bGUgKnhlbl9ib290bW9kdWxlOwotICAgIHN0cnVjdCBk
b21haW4gKmRvbTA7CisgICAgc3RydWN0IGRvbWFpbiAqZG9tMCwgKmQ7CiAg
ICAgc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9tYWluIGRvbTBfY2ZnID0g
ewogICAgICAgICAuZmxhZ3MgPSBYRU5fRE9NQ1RMX0NERl9odm0gfCBYRU5f
RE9NQ1RMX0NERl9oYXAsCiAgICAgICAgIC5tYXhfZXZ0Y2huX3BvcnQgPSAt
MSwKQEAgLTk4Nyw2ICs5ODcsOSBAQCB2b2lkIF9faW5pdCBzdGFydF94ZW4o
dW5zaWduZWQgbG9uZyBib290X3BoeXNfb2Zmc2V0LAogICAgIGlmICggY29u
c3RydWN0X2RvbTAoZG9tMCkgIT0gMCkKICAgICAgICAgcGFuaWMoIkNvdWxk
IG5vdCBzZXQgdXAgRE9NMCBndWVzdCBPU1xuIik7CiAKKyAgICBpZiAoIGFj
cGlfZGlzYWJsZWQgKQorICAgICAgICBjcmVhdGVfZG9tVXMoKTsKKwogICAg
IGhlYXBfaW5pdF9sYXRlKCk7CiAKICAgICBpbml0X3RyYWNlX2J1ZnMoKTsK
QEAgLTEwMDAsMTAgKzEwMDMsOCBAQCB2b2lkIF9faW5pdCBzdGFydF94ZW4o
dW5zaWduZWQgbG9uZyBib290X3BoeXNfb2Zmc2V0LAogCiAgICAgc3lzdGVt
X3N0YXRlID0gU1lTX1NUQVRFX2FjdGl2ZTsKIAotICAgIGlmICggYWNwaV9k
aXNhYmxlZCApCi0gICAgICAgIGNyZWF0ZV9kb21VcygpOwotCi0gICAgZG9t
YWluX3VucGF1c2VfYnlfc3lzdGVtY29udHJvbGxlcihkb20wKTsKKyAgICBm
b3JfZWFjaF9kb21haW4oIGQgKQorICAgICAgICBkb21haW5fdW5wYXVzZV9i
eV9zeXN0ZW1jb250cm9sbGVyKGQpOwogCiAgICAgLyogU3dpdGNoIG9uIHRv
IHRoZSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgc3RhY2sgZm9yIHRoZSBpZGxl
IHZjcHUKICAgICAgKiBzaW5jZSB0aGUgc3RhdGljIG9uZSB3ZSdyZSBydW5u
aW5nIG9uIGlzIGFib3V0IHRvIGJlIGZyZWVkLiAqLwotLSAKMi4xNy4xCgo=

--=separator
Content-Type: application/octet-stream;
 name="xsa372-4.15/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch"
Content-Disposition: attachment;
 filename="xsa372-4.15/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch"
Content-Transfer-Encoding: base64

RnJvbSAwOWJiMjhiZGVmM2ZiNWU3ZDA4YmRkNjQxNjAxY2EwYzBkNGQ4MmI0
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpZW4gR3JhbGwg
PGpncmFsbEBhbWF6b24uY29tPgpEYXRlOiBTYXQsIDE3IEFwciAyMDIxIDE3
OjM4OjI4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIHhlbi9hcm06IEJv
b3QgbW9kdWxlcyBzaG91bGQgYWx3YXlzIGJlIHNjcnViYmVkIGlmCiBib290
c2NydWI9e29uLCBpZGxlfQoKVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUg
dGhlIHBhZ2VzIChzZWUgaW5pdF9oZWFwX3BhZ2VzKCkpIHdpbGwgcmVxdWVz
dApzY3J1YiB3aGVuIHRoZSBhZG1pbiByZXF1ZXN0IGlkbGUgYm9vdHNjcnVi
IChkZWZhdWx0KSBhbmQgc3RhdGUgPT0KU1lTX1NUQVRFX2FjdGl2ZS4gV2hl
biBib290c2NydWI9b24sIFhlbiB3aWxsIHNjcnViIGFueSBmcmVlIHBhZ2Vz
IGluCmhlYXBfaW5pdF9sYXRlKCkuCgpDdXJyZW50bHksIHRoZSBib290IG1v
ZHVsZXMgKGUuZy4ga2VybmVscywgaW5pdHJhbWZzKSB3aWxsIGJlIGRpc2Nh
cmRlZC8KZnJlZWQgYWZ0ZXIgaGVhcF9pbml0X2xhdGUoKSBpcyBjYWxsZWQg
YW5kIHN5c3RlbV9zdGF0ZSBzd2l0Y2hlZCB0bwpTWVNfU1RBVEVfYWN0aXZl
LiBUaGlzIG1lYW5zIHRoZSBwYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGJv
b3QgbW9kdWxlcwp3aWxsIG5vdCBnZXQgc2NydWJiZWQgYmVmb3JlIGdldHRp
bmcgcmUtcHVycG9zZWQuCgpJZiB0aGUgbWVtb3J5IGlzIGFzc2lnbmVkIHRv
IGFuIHVudHJ1c3RlZCBkb21VLCBpdCBtYXkgYmUgYWJsZSB0bwpyZXRyaWV2
ZSBzZWNyZXRzIGZyb20gdGhlIG1vZHVsZXMuCgpUaGlzIGlzIHBhcnQgb2Yg
WFNBLTM3MiAvIENWRS0yMDIxLTI4NjkzLgoKRml4ZXM6IDE3NzRlOWIxZGYy
NyAoInhlbi9hcm06IGludHJvZHVjZSBjcmVhdGVfZG9tVXMiKQpTaWduZWQt
b2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGpncmFsbEBhbWF6b24uY29tPgpSZXZp
ZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZp
ZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJu
ZWwub3JnPgpUZXN0ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJl
bGxpbmlAa2VybmVsLm9yZz4KLS0tCiB4ZW4vYXJjaC9hcm0vc2V0dXAuYyB8
IDggKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyks
IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Nl
dHVwLmMgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwppbmRleCA0NDFlMGUxNmU5
ZjAuLjhhZmI3OGYyYzk4NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3Nl
dHVwLmMKKysrIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKQEAgLTcyLDggKzcy
LDYgQEAgZG9taWRfdCBfX3JlYWRfbW9zdGx5IG1heF9pbml0X2RvbWlkOwog
CiBzdGF0aWMgX191c2VkIHZvaWQgaW5pdF9kb25lKHZvaWQpCiB7Ci0gICAg
ZGlzY2FyZF9pbml0aWFsX21vZHVsZXMoKTsKLQogICAgIC8qIE11c3QgYmUg
ZG9uZSBwYXN0IHNldHRpbmcgc3lzdGVtX3N0YXRlLiAqLwogICAgIHVucmVn
aXN0ZXJfaW5pdF92aXJ0dWFsX3JlZ2lvbigpOwogCkBAIC05OTAsNiArOTg4
LDEyIEBAIHZvaWQgX19pbml0IHN0YXJ0X3hlbih1bnNpZ25lZCBsb25nIGJv
b3RfcGh5c19vZmZzZXQsCiAgICAgaWYgKCBhY3BpX2Rpc2FibGVkICkKICAg
ICAgICAgY3JlYXRlX2RvbVVzKCk7CiAKKyAgICAvKgorICAgICAqIFRoaXMg
bmVlZHMgdG8gYmUgY2FsbGVkICoqYmVmb3JlKiogaGVhcF9pbml0X2xhdGUo
KSBzbyBtb2R1bGVzCisgICAgICogd2lsbCBiZSBzY3J1YmJlZCAodW5sZXNz
IHN1cHByZXNzZWQpLgorICAgICAqLworICAgIGRpc2NhcmRfaW5pdGlhbF9t
b2R1bGVzKCk7CisKICAgICBoZWFwX2luaXRfbGF0ZSgpOwogCiAgICAgaW5p
dF90cmFjZV9idWZzKCk7Ci0tIAoyLjE3LjEKCg==

--=separator
Content-Type: application/octet-stream;
 name="xsa372/0001-xen-arm-Create-dom0less-domUs-earlier.patch"
Content-Disposition: attachment;
 filename="xsa372/0001-xen-arm-Create-dom0less-domUs-earlier.patch"
Content-Transfer-Encoding: base64

RnJvbSBhMjRmZWY3M2VkYzc1YzdhZmY3ZGMyY2JjYzJlZTZkZjk4OTNhMmVi
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpZW4gR3JhbGwg
PGpncmFsbEBhbWF6b24uY29tPgpEYXRlOiBNb24sIDE3IE1heSAyMDIxIDE3
OjQ3OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIHhlbi9hcm06IENy
ZWF0ZSBkb20wbGVzcyBkb21VcyBlYXJsaWVyCgpJbiBhIGZvbGxvdy11cCBw
YXRjaCB3ZSB3aWxsIG5lZWQgdG8gdW5hbGxvY2F0ZSB0aGUgYm9vdCBtb2R1
bGVzCmJlZm9yZSBoZWFwX2luaXRfbGF0ZSgpIGlzIGNhbGxlZC4KClRoZSBt
b2R1bGVzIHdpbGwgY29udGFpbiB0aGUgZG9tVXMga2VybmVsIGFuZCBpbml0
cmFtZnMuIFRoZXJlZm9yZSBYZW4Kd2lsbCBuZWVkIHRvIGNyZWF0ZSBleHRy
YSBkb21VcyAodXNlZCBieSBkb20wbGVzcykgYmVmb3JlIGhlYXBfaW5pdF9s
YXRlKCkuCgpUaGlzIGhhcyB0d28gY29uc2VxdWVuY2VzIG9uIGRvbTBsZXNz
OgogICAgMSkgRG9tYWlucyB3aWxsIG5vdCBiZSB1bnBhdXNlZCBhcyBzb29u
IGFzIHRoZXkgYXJlIGNyZWF0ZWQgYnV0CiAgICBvbmNlIGFsbCBoYXZlIGJl
ZW4gY3JlYXRlZC4gSG93ZXZlciwgWGVuIGRvZXNuJ3QgZ3VhcmFudGVlIGFu
IG9yZGVyCiAgICB0byB1bnBhdXNlLCBzbyB0aGlzIGlzIG5vdCBzb21ldGhp
bmcgb25lIGNvdWxkIHJlbHkgb24uCgogICAgMikgVGhlIG1lbW9yeSBhbGxv
Y2F0ZWQgZm9yIGEgZG9tVSB3aWxsIG5vdCBiZSBzY3J1YmJlZCBhbnltb3Jl
IHdoZW4gYW4KICAgIGFkbWluIHNlbGVjdCBib290c2NydWI9b24uIFRoaXMg
aXMgbm90IHNvbWV0aGluZyB3ZSBhZHZlcnRpc2VkLCBidXQgaWYKICAgIHRo
aXMgaXMgYSBjb25jZXJuIHdlIGNhbiBpbnRyb2R1Y2UgZWl0aGVyIGZvcmNl
IHNjcnViIGZvciBhbGwgZG9tVXMgb3IKICAgIGEgcGVyLWRvbWFpbiBmbGFn
IGluIHRoZSBEVC4gVGhlIGJlaGF2aW9yIGZvciBib290c2NydWI9b2ZmIGFu
ZAogICAgYm9vdHNjcnViPWlkbGUgKGRlZmF1bHQpIGhhcyBub3QgY2hhbmdl
ZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtMzcyIC8gQ1ZFLTIwMjEtMjg2OTMu
CgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGpncmFsbEBhbWF6b24u
Y29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPgpSZXZpZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVs
bGluaUBrZXJuZWwub3JnPgpUZXN0ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGlu
aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KLS0tCiB4ZW4vYXJjaC9hcm0v
ZG9tYWluX2J1aWxkLmMgfCAgNiArLS0tLS0KIHhlbi9hcmNoL2FybS9zZXR1
cC5jICAgICAgICB8IDE0ICsrKysrKystLS0tLS0tCiB4ZW4vaW5jbHVkZS9h
c20tYXJtL3NldHVwLmggfCAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCA5IGlu
c2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hlbi9hcmNoL2FybS9kb21h
aW5fYnVpbGQuYwppbmRleCAyODI0MTZlNzRkYTQuLjZjODZkNTI3ODEwZiAx
MDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCisrKyBi
L3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwpAQCAtMjUyMSw4ICsyNTIx
LDYgQEAgdm9pZCBfX2luaXQgY3JlYXRlX2RvbVVzKHZvaWQpCiAKICAgICAg
ICAgaWYgKCBjb25zdHJ1Y3RfZG9tVShkLCBub2RlKSAhPSAwICkKICAgICAg
ICAgICAgIHBhbmljKCJDb3VsZCBub3Qgc2V0IHVwIGRvbWFpbiAlc1xuIiwg
ZHRfbm9kZV9uYW1lKG5vZGUpKTsKLQotICAgICAgICBkb21haW5fdW5wYXVz
ZV9ieV9zeXN0ZW1jb250cm9sbGVyKGQpOwogICAgIH0KIH0KIApAQCAtMjU4
NCw3ICsyNTgyLDcgQEAgc3RhdGljIGludCBfX2luaXQgY29uc3RydWN0X2Rv
bTAoc3RydWN0IGRvbWFpbiAqZCkKICAgICByZXR1cm4gY29uc3RydWN0X2Rv
bWFpbihkLCAma2luZm8pOwogfQogCi1zdHJ1Y3QgZG9tYWluKiBfX2luaXQg
Y3JlYXRlX2RvbTAodm9pZCkKK3ZvaWQgX19pbml0IGNyZWF0ZV9kb20wKHZv
aWQpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZG9tMDsKICAgICBzdHJ1Y3Qg
eGVuX2RvbWN0bF9jcmVhdGVkb21haW4gZG9tMF9jZmcgPSB7CkBAIC0yNjE1
LDggKzI2MTMsNiBAQCBzdHJ1Y3QgZG9tYWluKiBfX2luaXQgY3JlYXRlX2Rv
bTAodm9pZCkKIAogICAgIGlmICggY29uc3RydWN0X2RvbTAoZG9tMCkgIT0g
MCkKICAgICAgICAgcGFuaWMoIkNvdWxkIG5vdCBzZXQgdXAgRE9NMCBndWVz
dCBPU1xuIik7Ci0KLSAgICByZXR1cm4gZG9tMDsKIH0KIAogLyoKZGlmZiAt
LWdpdCBhL3hlbi9hcmNoL2FybS9zZXR1cC5jIGIveGVuL2FyY2gvYXJtL3Nl
dHVwLmMKaW5kZXggMDBhYWQxYzE5NGI5Li5lMTc1MzJjMTMyY2YgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL2FybS9zZXR1cC5jCisrKyBiL3hlbi9hcmNoL2Fy
bS9zZXR1cC5jCkBAIC04MzYsNyArODM2LDcgQEAgdm9pZCBfX2luaXQgc3Rh
cnRfeGVuKHVuc2lnbmVkIGxvbmcgYm9vdF9waHlzX29mZnNldCwKICAgICBp
bnQgY3B1cywgaTsKICAgICBjb25zdCBjaGFyICpjbWRsaW5lOwogICAgIHN0
cnVjdCBib290bW9kdWxlICp4ZW5fYm9vdG1vZHVsZTsKLSAgICBzdHJ1Y3Qg
ZG9tYWluICpkb20wID0gTlVMTDsKKyAgICBzdHJ1Y3QgZG9tYWluICpkOwog
ICAgIGludCByYzsKIAogICAgIGRjYWNoZV9saW5lX2J5dGVzID0gcmVhZF9k
Y2FjaGVfbGluZV9ieXRlcygpOwpAQCAtOTkyLDEwICs5OTIsMTMgQEAgdm9p
ZCBfX2luaXQgc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgYm9vdF9waHlzX29m
ZnNldCwKIAogICAgIC8qIENyZWF0ZSBpbml0aWFsIGRvbWFpbiAwLiAqLwog
ICAgIGlmICggIWlzX2RvbTBsZXNzX21vZGUoKSApCi0gICAgICAgIGRvbTAg
PSBjcmVhdGVfZG9tMCgpOworICAgICAgICBjcmVhdGVfZG9tMCgpOwogICAg
IGVsc2UKICAgICAgICAgcHJpbnRrKFhFTkxPR19JTkZPICJYZW4gZG9tMGxl
c3MgbW9kZSBkZXRlY3RlZFxuIik7CiAKKyAgICBpZiAoIGFjcGlfZGlzYWJs
ZWQgKQorICAgICAgICBjcmVhdGVfZG9tVXMoKTsKKwogICAgIGhlYXBfaW5p
dF9sYXRlKCk7CiAKICAgICBpbml0X3RyYWNlX2J1ZnMoKTsKQEAgLTEwMDks
MTEgKzEwMTIsOCBAQCB2b2lkIF9faW5pdCBzdGFydF94ZW4odW5zaWduZWQg
bG9uZyBib290X3BoeXNfb2Zmc2V0LAogCiAgICAgc3lzdGVtX3N0YXRlID0g
U1lTX1NUQVRFX2FjdGl2ZTsKIAotICAgIGlmICggYWNwaV9kaXNhYmxlZCAp
Ci0gICAgICAgIGNyZWF0ZV9kb21VcygpOwotCi0gICAgaWYgKCBkb20wICkK
LSAgICAgICAgZG9tYWluX3VucGF1c2VfYnlfc3lzdGVtY29udHJvbGxlcihk
b20wKTsKKyAgICBmb3JfZWFjaF9kb21haW4oIGQgKQorICAgICAgICBkb21h
aW5fdW5wYXVzZV9ieV9zeXN0ZW1jb250cm9sbGVyKGQpOwogCiAgICAgLyog
U3dpdGNoIG9uIHRvIHRoZSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgc3RhY2sg
Zm9yIHRoZSBpZGxlIHZjcHUKICAgICAgKiBzaW5jZSB0aGUgc3RhdGljIG9u
ZSB3ZSdyZSBydW5uaW5nIG9uIGlzIGFib3V0IHRvIGJlIGZyZWVkLiAqLwpk
aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oIGIveGVu
L2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oCmluZGV4IDUyODMyNDQwMTUxMS4u
YzRiNmFmNjAyOTk1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJt
L3NldHVwLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oCkBA
IC05NCw3ICs5NCw3IEBAIHZvaWQgYWNwaV9jcmVhdGVfZWZpX21tYXBfdGFi
bGUoc3RydWN0IGRvbWFpbiAqZCwKIGludCBhY3BpX21ha2VfZWZpX25vZGVz
KHZvaWQgKmZkdCwgc3RydWN0IG1lbWJhbmsgdGJsX2FkZFtdKTsKIAogdm9p
ZCBjcmVhdGVfZG9tVXModm9pZCk7Ci1zdHJ1Y3QgZG9tYWluKiBjcmVhdGVf
ZG9tMCh2b2lkKTsKK3ZvaWQgY3JlYXRlX2RvbTAodm9pZCk7CiAKIHZvaWQg
ZGlzY2FyZF9pbml0aWFsX21vZHVsZXModm9pZCk7CiB2b2lkIGZ3X3VucmVz
ZXJ2ZWRfcmVnaW9ucyhwYWRkcl90IHMsIHBhZGRyX3QgZSwKLS0gCjIuMTcu
MQoK

--=separator
Content-Type: application/octet-stream;
 name="xsa372/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch"
Content-Disposition: attachment;
 filename="xsa372/0002-xen-arm-Boot-modules-should-always-be-scrubbed-if-bo.patch"
Content-Transfer-Encoding: base64

RnJvbSA3NTdhNDYxZWQ5MDYyNDhhNTZjYzFiYjkyMmExYmEwN2E3ZWUxMTU0
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpZW4gR3JhbGwg
PGpncmFsbEBhbWF6b24uY29tPgpEYXRlOiBTYXQsIDE3IEFwciAyMDIxIDE3
OjM4OjI4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIHhlbi9hcm06IEJv
b3QgbW9kdWxlcyBzaG91bGQgYWx3YXlzIGJlIHNjcnViYmVkIGlmCiBib290
c2NydWI9e29uLCBpZGxlfQoKVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUg
dGhlIHBhZ2VzIChzZWUgaW5pdF9oZWFwX3BhZ2VzKCkpIHdpbGwgcmVxdWVz
dApzY3J1YiB3aGVuIHRoZSBhZG1pbiByZXF1ZXN0IGlkbGUgYm9vdHNjcnVi
IChkZWZhdWx0KSBhbmQgc3RhdGUgPT0KU1lTX1NUQVRFX2FjdGl2ZS4gV2hl
biBib290c2NydWI9b24sIFhlbiB3aWxsIHNjcnViIGFueSBmcmVlIHBhZ2Vz
IGluCmhlYXBfaW5pdF9sYXRlKCkuCgpDdXJyZW50bHksIHRoZSBib290IG1v
ZHVsZXMgKGUuZy4ga2VybmVscywgaW5pdHJhbWZzKSB3aWxsIGJlIGRpc2Nh
cmRlZC8KZnJlZWQgYWZ0ZXIgaGVhcF9pbml0X2xhdGUoKSBpcyBjYWxsZWQg
YW5kIHN5c3RlbV9zdGF0ZSBzd2l0Y2hlZCB0bwpTWVNfU1RBVEVfYWN0aXZl
LiBUaGlzIG1lYW5zIHRoZSBwYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGJv
b3QgbW9kdWxlcwp3aWxsIG5vdCBnZXQgc2NydWJiZWQgYmVmb3JlIGdldHRp
bmcgcmUtcHVycG9zZWQuCgpJZiB0aGUgbWVtb3J5IGlzIGFzc2lnbmVkIHRv
IGFuIHVudHJ1c3RlZCBkb21VLCBpdCBtYXkgYmUgYWJsZSB0bwpyZXRyaWV2
ZSBzZWNyZXRzIGZyb20gdGhlIG1vZHVsZXMuCgpUaGlzIGlzIHBhcnQgb2Yg
WFNBLTM3MiAvIENWRS0yMDIxLTI4NjkzLgoKRml4ZXM6IDE3NzRlOWIxZGYy
NyAoInhlbi9hcm06IGludHJvZHVjZSBjcmVhdGVfZG9tVXMiKQpTaWduZWQt
b2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGpncmFsbEBhbWF6b24uY29tPgpSZXZp
ZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZp
ZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJu
ZWwub3JnPgpUZXN0ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJl
bGxpbmlAa2VybmVsLm9yZz4KLS0tCiB4ZW4vYXJjaC9hcm0vc2V0dXAuYyB8
IDggKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyks
IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Nl
dHVwLmMgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwppbmRleCBlMTc1MzJjMTMy
Y2YuLjYzYTkwOGUzMjVlZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3Nl
dHVwLmMKKysrIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKQEAgLTcxLDggKzcx
LDYgQEAgZG9taWRfdCBfX3JlYWRfbW9zdGx5IG1heF9pbml0X2RvbWlkOwog
CiBzdGF0aWMgX191c2VkIHZvaWQgaW5pdF9kb25lKHZvaWQpCiB7Ci0gICAg
ZGlzY2FyZF9pbml0aWFsX21vZHVsZXMoKTsKLQogICAgIC8qIE11c3QgYmUg
ZG9uZSBwYXN0IHNldHRpbmcgc3lzdGVtX3N0YXRlLiAqLwogICAgIHVucmVn
aXN0ZXJfaW5pdF92aXJ0dWFsX3JlZ2lvbigpOwogCkBAIC05OTksNiArOTk3
LDEyIEBAIHZvaWQgX19pbml0IHN0YXJ0X3hlbih1bnNpZ25lZCBsb25nIGJv
b3RfcGh5c19vZmZzZXQsCiAgICAgaWYgKCBhY3BpX2Rpc2FibGVkICkKICAg
ICAgICAgY3JlYXRlX2RvbVVzKCk7CiAKKyAgICAvKgorICAgICAqIFRoaXMg
bmVlZHMgdG8gYmUgY2FsbGVkICoqYmVmb3JlKiogaGVhcF9pbml0X2xhdGUo
KSBzbyBtb2R1bGVzCisgICAgICogd2lsbCBiZSBzY3J1YmJlZCAodW5sZXNz
IHN1cHByZXNzZWQpLgorICAgICAqLworICAgIGRpc2NhcmRfaW5pdGlhbF9t
b2R1bGVzKCk7CisKICAgICBoZWFwX2luaXRfbGF0ZSgpOwogCiAgICAgaW5p
dF90cmFjZV9idWZzKCk7Ci0tIAoyLjE3LjEKCg==

--=separator--


From xen-users-bounces@lists.xenproject.org Tue Jun 08 17:05:13 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Jun 2021 17:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.138616.256600 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqf9s-0001Yy-JN; Tue, 08 Jun 2021 17:04:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 138616.256600; Tue, 08 Jun 2021 17:04:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqf9s-0001Xn-DD; Tue, 08 Jun 2021 17:04:56 +0000
Received: by outflank-mailman (input) for mailman id 138616;
 Tue, 08 Jun 2021 17:04:55 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CbVg=LC=xenbits.xen.org=iwj@srs-us1.protection.inumbo.net>)
 id 1lqf9r-0007tO-DP
 for xen-users@lists.xen.org; Tue, 08 Jun 2021 17:04:55 +0000
Received: from mail.xenproject.org (unknown [104.130.215.37])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id fd84a956-bc60-4155-82fb-83c1a5a14b45;
 Tue, 08 Jun 2021 17:04:35 +0000 (UTC)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1lqf9S-0004ge-29; Tue, 08 Jun 2021 17:04:30 +0000
Received: from iwj by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1lqf9S-0004tH-13; Tue, 08 Jun 2021 17:04:30 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: fd84a956-bc60-4155-82fb-83c1a5a14b45
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=Ii1NiQUN0sqcBtUpODfucz8MN9ngRgodsEM4sMsoxgo=; b=AYW4NCBzwch4WTdQyjRQjS5biA
	z3hiKC/BTFd1NDPrmKwEWP5GhyrkCATB8fpZ3GqoJvGjKbVT2xqaVKWkjxtIsMu564xCH8M/dGOs4
	V75qrgF2D+/cQm80M1ByYNpW2bwHE5dnPbpOnv00MmiND5r5QE4e9zXuo/4W7/0Kpf8M=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 374 v2 (CVE-2021-28691) - Guest triggered
 use-after-free in Linux xen-netback
Message-Id: <E1lqf9S-0004tH-13@xenbits.xenproject.org>
Date: Tue, 08 Jun 2021 17:04:30 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2021-28691 / XSA-374
                               version 2

          Guest triggered use-after-free in Linux xen-netback

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

A malicious or buggy network PV frontend can force Linux netback to
disable the interface and terminate the receive kernel thread
associated with queue 0 in response to the frontend sending a
malformed packet.

Such kernel thread termination will lead to a use-after-free in Linux
netback when the backend is destroyed, as the kernel thread associated
with queue 0 will have already exited and thus the call to
kthread_stop will be performed against a stale pointer.

IMPACT
======

A malicious or buggy frontend driver can trigger a dom0 crash.
Privilege escalation and information leaks cannot be ruled out.

VULNERABLE SYSTEMS
==================

Systems using Linux version 5.5 or newer are vulnerable.

MITIGATION
==========

On x86 running only HVM guests with emulated network cards will avoid the
issue.  There's however no option in the upstream toolstack to offer only
emulated network cards to guests.

CREDITS
=======

This issue was discovered by Michael Brown of iPXE and diagnosed by
Olivier Benjamin, Michael Kurth and Martin Mazein of AWS.

RESOLUTION
==========

Applying the attached patch resolves this issue.

xsa374-linux.patch     Linux 5.5.0 - 5.12.2

$ sha256sum xsa374*
156cee65022359a5901cce97714d2abb16fef786246b1c4bf509083d21e085d6  xsa374-linux.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Deployment of the mitigation to disable PV network interfaces is NOT
permitted (except where all the affected systems and VMs are
administered and used only by organisations which are members of the
Xen Project Security Issues Predisclosure List).  Specifically,
deployment on public cloud systems is NOT permitted.

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmC/oxIMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZigoIAKNYimzTYl6VQYaqgwMdNzqXCF/PdlQF/tf8PSwm
5VP0ZPbLq6Zn4HOgMBtBzs/GCFtrIWsQGnZji611dkaAh21N1YErXW5jFYMnf1DI
rruCXE1GuL5B4sFvWw7CnMXax6vYe0q5KPoGmyZRV77aT5T+gNMONlGl6raw7/Ne
UAtAv4JDSR5Nc53X0HNK7tNU9tdr4VaLqEKWs+C0W+azOFNGvrTeNDVjBiLqDZbA
st62i3PIFTXu+XzbjZNdM/RMpVVxFSkfdWn53RDVJ2JaFBMxrcVs75aVo3Nfr34Z
Iho+eTPDywP9+4zl/FoModMYHg4rTMHf+jmbi3M/aCOal2U=
=1Dhy
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa374-linux.patch"
Content-Disposition: attachment; filename="xsa374-linux.patch"
Content-Transfer-Encoding: base64

RnJvbTogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K
U3ViamVjdDogeGVuLW5ldGJhY2s6IHRha2UgYSByZWZlcmVuY2UgdG8gdGhl
IFJYIHRhc2sgdGhyZWFkCgpEbyB0aGlzIGluIG9yZGVyIHRvIHByZXZlbnQg
dGhlIHRhc2sgZnJvbSBiZWluZyBmcmVlZCBpZiB0aGUgdGhyZWFkCnJldHVy
bnMgKHdoaWNoIGNhbiBiZSB0cmlnZ2VyZWQgYnkgdGhlIGZyb250ZW5kKSBi
ZWZvcmUgdGhlIGNhbGwgdG8Ka3RocmVhZF9zdG9wIGRvbmUgYXMgcGFydCBv
ZiB0aGUgYmFja2VuZCB0ZWFyIGRvd24uIE5vdCB0YWtpbmcgdGhlCnJlZmVy
ZW5jZSB3aWxsIGxlYWQgdG8gYSB1c2UtYWZ0ZXItZnJlZSBpbiB0aGF0IHNj
ZW5hcmlvLiBTdWNoCnJlZmVyZW5jZSB3YXMgdGFrZW4gYmVmb3JlIGJ1dCBk
cm9wcGVkIGFzIHBhcnQgb2YgdGhlIHJld29yayBkb25lIGluCjJhYzA2MWNl
OTdmNC4KClJlaW50cm9kdWNlIHRoZSByZWZlcmVuY2UgdGFraW5nIGFuZCBh
ZGQgYSBjb21tZW50IHRoaXMgdGltZQpleHBsYWluaW5nIHdoeSBpdCdzIG5l
ZWRlZC4KClRoaXMgaXMgWFNBLTM3NCAvIENWRS0yMDIxLTI4NjkxLgoKUmVw
b3J0ZWQtYnk6IE1pY2hhZWwgQnJvd24gPG1jYjMwQGlweGUub3JnPgpGaXhl
czogMmFjMDYxY2U5N2Y0ICgneGVuL25ldGJhY2s6IGNsZWFudXAgaW5pdCBh
bmQgZGVpbml0IGNvZGUnKQpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9u
bsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ2M6IHN0YWJsZUB2Z2VyLmtl
cm5lbC5vcmcKUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz
dXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0Bz
dXNlLmNvbT4KCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFj
ay9pbnRlcmZhY2UuYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL2ludGVy
ZmFjZS5jCmluZGV4IDE5M2I3MjNmZTNiZC4uYzU4OTk2YzFlMjMwIDEwMDY0
NAotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9pbnRlcmZhY2UuYwor
KysgYi9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9pbnRlcmZhY2UuYwpAQCAt
Njg0LDYgKzY4NCw3IEBAIHN0YXRpYyB2b2lkIHhlbnZpZl9kaXNjb25uZWN0
X3F1ZXVlKHN0cnVjdCB4ZW52aWZfcXVldWUgKnF1ZXVlKQogewogCWlmIChx
dWV1ZS0+dGFzaykgewogCQlrdGhyZWFkX3N0b3AocXVldWUtPnRhc2spOwor
CQlwdXRfdGFza19zdHJ1Y3QocXVldWUtPnRhc2spOwogCQlxdWV1ZS0+dGFz
ayA9IE5VTEw7CiAJfQogCkBAIC03NDUsNiArNzQ2LDExIEBAIGludCB4ZW52
aWZfY29ubmVjdF9kYXRhKHN0cnVjdCB4ZW52aWZfcXVldWUgKnF1ZXVlLAog
CWlmIChJU19FUlIodGFzaykpCiAJCWdvdG8ga3RocmVhZF9lcnI7CiAJcXVl
dWUtPnRhc2sgPSB0YXNrOworCS8qCisJICogVGFrZSBhIHJlZmVyZW5jZSB0
byB0aGUgdGFzayBpbiBvcmRlciB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcg
ZnJlZWQKKwkgKiBpZiB0aGUgdGhyZWFkIGZ1bmN0aW9uIHJldHVybnMgYmVm
b3JlIGt0aHJlYWRfc3RvcCBpcyBjYWxsZWQuCisJICovCisJZ2V0X3Rhc2tf
c3RydWN0KHRhc2spOwogCiAJdGFzayA9IGt0aHJlYWRfcnVuKHhlbnZpZl9k
ZWFsbG9jX2t0aHJlYWQsIHF1ZXVlLAogCQkJICAgIiVzLWRlYWxsb2MiLCBx
dWV1ZS0+bmFtZSk7Cg==

--=separator--


From xen-users-bounces@lists.xenproject.org Tue Jun 08 17:14:55 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Jun 2021 17:14:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.138781.256774 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqfJ2-0003Xw-M9; Tue, 08 Jun 2021 17:14:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 138781.256774; Tue, 08 Jun 2021 17:14:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqfJ2-0003Xc-IF; Tue, 08 Jun 2021 17:14:24 +0000
Received: by outflank-mailman (input) for mailman id 138781;
 Tue, 08 Jun 2021 17:14:23 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CbVg=LC=xenbits.xen.org=iwj@srs-us1.protection.inumbo.net>)
 id 1lqfAB-0007tO-EB
 for xen-users@lists.xen.org; Tue, 08 Jun 2021 17:05:15 +0000
Received: from mail.xenproject.org (unknown [104.130.215.37])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 30c86ed4-349b-4cfd-81aa-9080b02df5f3;
 Tue, 08 Jun 2021 17:04:37 +0000 (UTC)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1lqf9T-0004hB-KV; Tue, 08 Jun 2021 17:04:31 +0000
Received: from iwj by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1lqf9T-0004vc-JX; Tue, 08 Jun 2021 17:04:31 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 30c86ed4-349b-4cfd-81aa-9080b02df5f3
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=YQPfBSO74QvjUcDBr5ntUsPt+VI0GpRiGD3hrWKvTk0=; b=iQOQHvopS5dPP5RekZ3mQlKPNl
	uu1nhvctPYmkry7eCRLjsiHeB+k4O1jZ/Hh3DLEH19sTRbbm+dFCg3ujsKXGD5bjSqizrgVHwPzFO
	X52P3MGlYhlZySwrQLuv8IjYlz6RccNNzji1Th+24/3HF4q1HokQX5Eh97V774abJCwg=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 377 v2 (CVE-2021-28690) - x86: TSX Async
 Abort protections not restored after S3
Message-Id: <E1lqf9T-0004vc-JX@xenbits.xenproject.org>
Date: Tue, 08 Jun 2021 17:04:31 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2021-28690 / XSA-377
                               version 2

        x86: TSX Async Abort protections not restored after S3

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

This issue relates to the TSX Async Abort speculative security vulnerability.
Please see https://xenbits.xen.org/xsa/advisory-305.html for details.

Mitigating TAA by disabling TSX (the default and preferred option) requires
selecting a non-default setting in MSR_TSX_CTRL.  This setting isn't restored
after S3 suspend.

IMPACT
======

After using S3 suspend at least once, CPU0 remains vulnerable to TAA.

This is an information leak.  For full details of the impact, see
XSA-305.

VULNERABLE SYSTEMS
==================

See XSA-305 for details of susceptibility to TAA.

Only systems which are susceptible to TAA and have the XSA-305 fix are
vulnerable.  Only systems which support S3 suspend/resume are vulnerable.

The vulnerability is only exposed if S3 suspend/resume is used.

MITIGATION
==========

Not using S3 suspend/resume avoids the vulnerability.

CREDITS
=======

This issue was discovered by Andrew Cooper of Citrix.

RESOLUTION
==========

Applying the appropriate attached patch resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa377.patch           xen-unstable - Xen 4.13.x
xsa377-4.12.patch      Xen 4.12.x
xsa377-4.11.patch      Xen 4.11.x

$ sha256sum xsa377*
532cb030f97d72e8e534ad97182cd5e3aa0efeef405e255bb49649b4f0dd9947  xsa377.meta
21a30dbf80f6e78057cc7e785c8fda475d5a8a0b6b9442af3bd8ca31dd69becf  xsa377.patch
3279317d56e7b8d0a2b0152b64b4c577381b8b01fa0a1a21ec6f855bb964278a  xsa377-4.11.patch
65f61f1cb7bb0e068fd32e40755b9a9aae464d15ccd42c94dae68e495c5a45e0  xsa377-4.12.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.


(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmC/oxIMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZZ0wH/AyYmZO221SvMaSa1kGaV9+tATBWtxKEmUr2I+/Y
jOHJ4Ydw2RarJtZ6reYJ+J0qlTdgI65ceo87VEm1bm+LyvxhlLRmkBfavdTg66aX
VU6uPGqJ9HMUY4rwN7aUgsc/qhquMZQYSWd5A/QknhNHlOtXhX0bnaIqgXoAroi7
PRVs3sawkEizIn1Rqc8nLk+xkOrV3xvu+ollj/VNHgPDKU7SFKZiraBzUW7bErCZ
AjCsgM7SalHDKIMpUqco4hutVJ7ykPE/pbEdC7q93TQ+PWE4/QY3JXcjC7L6KN1/
v9rRTIFTR6fc5EcJfhH2zpWi69OWfE/vjM7k9XhpMoAdUZc=
=fqiA
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa377.meta"
Content-Disposition: attachment; filename="xsa377.meta"
Content-Transfer-Encoding: base64

ewogICJYU0EiOiAzNzcsCiAgIlN1cHBvcnRlZFZlcnNpb25zIjogWwogICAg
Im1hc3RlciIsCiAgICAiNC4xNSIsCiAgICAiNC4xNCIsCiAgICAiNC4xMyIs
CiAgICAiNC4xMiIsCiAgICAiNC4xMSIKICBdLAogICJUcmVlcyI6IFsKICAg
ICJ4ZW4iCiAgXSwKICAiUmVjaXBlcyI6IHsKICAgICI0LjExIjogewogICAg
ICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0
YWJsZVJlZiI6ICJiMWU0NmJjMzY5YmI0OTBiNzIxYzc3ZjE1ZDI1ODNiYmY0
NjYxNTJkIiwKICAgICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICAz
NzIsCiAgICAgICAgICAgIDM3MywKICAgICAgICAgICAgMzc1CiAgICAgICAg
ICBdLAogICAgICAgICAgIlBhdGNoZXMiOiBbCiAgICAgICAgICAgICJ4c2Ez
NzctNC4xMS5wYXRjaCIKICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIH0K
ICAgIH0sCiAgICAiNC4xMiI6IHsKICAgICAgIlJlY2lwZXMiOiB7CiAgICAg
ICAgInhlbiI6IHsKICAgICAgICAgICJTdGFibGVSZWYiOiAiNTk4NDkwNWIy
NjM4ZGY4N2EwMjYyZDFlZTkxZjBhNmUxNGE4NmRmNiIsCiAgICAgICAgICAi
UHJlcmVxcyI6IFsKICAgICAgICAgICAgMzcyLAogICAgICAgICAgICAzNzMs
CiAgICAgICAgICAgIDM3NQogICAgICAgICAgXSwKICAgICAgICAgICJQYXRj
aGVzIjogWwogICAgICAgICAgICAieHNhMzc3LTQuMTIucGF0Y2giCiAgICAg
ICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIjQuMTMiOiB7
CiAgICAgICJSZWNpcGVzIjogewogICAgICAgICJ4ZW4iOiB7CiAgICAgICAg
ICAiU3RhYmxlUmVmIjogIjI4NDEzMjkzODkwMGNlOGMzYjExYmFiZjcyNTVm
NWM2ZGJiMjE3MTYiLAogICAgICAgICAgIlByZXJlcXMiOiBbCiAgICAgICAg
ICAgIDM3MiwKICAgICAgICAgICAgMzczLAogICAgICAgICAgICAzNzUKICAg
ICAgICAgIF0sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAgICAgICAg
InhzYTM3Ny5wYXRjaCIKICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIH0K
ICAgIH0sCiAgICAiNC4xNCI6IHsKICAgICAgIlJlY2lwZXMiOiB7CiAgICAg
ICAgInhlbiI6IHsKICAgICAgICAgICJTdGFibGVSZWYiOiAiMTBmMGIyZDQ5
Mzc2ODY1ZDQ5NjgwZjA2YzUyYjQ1MWZhYmNlM2JiNSIsCiAgICAgICAgICAi
UHJlcmVxcyI6IFsKICAgICAgICAgICAgMzcyLAogICAgICAgICAgICAzNzMs
CiAgICAgICAgICAgIDM3NQogICAgICAgICAgXSwKICAgICAgICAgICJQYXRj
aGVzIjogWwogICAgICAgICAgICAieHNhMzc3LnBhdGNoIgogICAgICAgICAg
XQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICI0LjE1IjogewogICAg
ICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0
YWJsZVJlZiI6ICIyODBkNDcyZjRmY2EwNzBhMTAzNzdlMzE4ZDkwY2FiZmMy
NTQwODEwIiwKICAgICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICAz
NzIsCiAgICAgICAgICAgIDM3MywKICAgICAgICAgICAgMzc1CiAgICAgICAg
ICBdLAogICAgICAgICAgIlBhdGNoZXMiOiBbCiAgICAgICAgICAgICJ4c2Ez
NzcucGF0Y2giCiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9
LAogICAgIm1hc3RlciI6IHsKICAgICAgIlJlY2lwZXMiOiB7CiAgICAgICAg
InhlbiI6IHsKICAgICAgICAgICJTdGFibGVSZWYiOiAiYWE3N2FjYzI4MDk4
ZDA0OTQ1YWY5OThmM2ZjMGRiZDM3NTliNWI0MSIsCiAgICAgICAgICAiUHJl
cmVxcyI6IFsKICAgICAgICAgICAgMzcyLAogICAgICAgICAgICAzNzMsCiAg
ICAgICAgICAgIDM3NQogICAgICAgICAgXSwKICAgICAgICAgICJQYXRjaGVz
IjogWwogICAgICAgICAgICAieHNhMzc3LnBhdGNoIgogICAgICAgICAgXQog
ICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQ==

--=separator
Content-Type: application/octet-stream; name="xsa377.patch"
Content-Disposition: attachment; filename="xsa377.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogTWl0aWdhdGUgVEFBIGFmdGVy
IFMzIHJlc3VtZQoKVGhlIHVzZXIgY2hvc2VuIHNldHRpbmcgZm9yIE1TUl9U
U1hfQ1RSTCBuZWVkcyByZXN0b3JpbmcgYWZ0ZXIgUzMuCgpBbGwgQVBzIGdl
dCB0aGUgY29ycmVjdCBzZXR0aW5nIHZpYSBzdGFydF9zZWNvbmRhcnkoKSwg
YnV0IHRoZSBCU1Agd2FzIG1pc3NlZApvdXQuCgpUaGlzIGlzIFhTQS0zNzcg
LyBDVkUtMjAyMS0yODY5MC4KCkZpeGVzOiA4YzQzMzA4MThmNiAoIng4Ni9z
cGVjLWN0cmw6IE1pdGlnYXRlIHRoZSBUU1ggQXN5bmNocm9ub3VzIEFib3J0
IHNpZGVjaGFubmVsIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvYWNwaS9wb3dlci5jIGIveGVuL2FyY2gveDg2L2FjcGkvcG93
ZXIuYwppbmRleCA5MWE4YzRkMGJkLi4zMWE1NmYwMmQwIDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvYWNwaS9wb3dlci5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL3Bvd2VyLmMKQEAgLTI4OCw2ICsyODgsOCBAQCBzdGF0aWMgaW50
IGVudGVyX3N0YXRlKHUzMiBzdGF0ZSkKIAogICAgIG1pY3JvY29kZV91cGRh
dGVfb25lKCk7CiAKKyAgICB0c3hfaW5pdCgpOyAvKiBOZWVkcyBtaWNyb2Nv
ZGUuICBNYXkgY2hhbmdlIEhMRS9SVE0gZmVhdHVyZSBiaXRzLiAqLworCiAg
ICAgaWYgKCAhcmVjaGVja19jcHVfZmVhdHVyZXMoMCkgKQogICAgICAgICBw
YW5pYygiTWlzc2luZyBwcmV2aW91c2x5IGF2YWlsYWJsZSBmZWF0dXJlKHMp
XG4iKTsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa377-4.11.patch"
Content-Disposition: attachment; filename="xsa377-4.11.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogTWl0aWdhdGUgVEFBIGFmdGVy
IFMzIHJlc3VtZQoKVGhlIHVzZXIgY2hvc2VuIHNldHRpbmcgZm9yIE1TUl9U
U1hfQ1RSTCBuZWVkcyByZXN0b3JpbmcgYWZ0ZXIgUzMuCgpBbGwgQVBzIGdl
dCB0aGUgY29ycmVjdCBzZXR0aW5nIHZpYSBzdGFydF9zZWNvbmRhcnkoKSwg
YnV0IHRoZSBCU1Agd2FzIG1pc3NlZApvdXQuCgpUaGlzIGlzIFhTQS0zNzcg
LyBDVkUtMjAyMS0yODY5MC4KCkZpeGVzOiA4YzQzMzA4MThmNiAoIng4Ni9z
cGVjLWN0cmw6IE1pdGlnYXRlIHRoZSBUU1ggQXN5bmNocm9ub3VzIEFib3J0
IHNpZGVjaGFubmVsIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvYWNwaS9wb3dlci5jIGIveGVuL2FyY2gveDg2L2FjcGkvcG93
ZXIuYwppbmRleCAzMGUxYmQ1Y2QzLi40NTFjYmE2MjJjIDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvYWNwaS9wb3dlci5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL3Bvd2VyLmMKQEAgLTI1OSw2ICsyNTksOCBAQCBzdGF0aWMgaW50
IGVudGVyX3N0YXRlKHUzMiBzdGF0ZSkKIAogICAgIG1pY3JvY29kZV9yZXN1
bWVfY3B1KDApOwogCisgICAgdHN4X2luaXQoKTsgLyogTmVlZHMgbWljcm9j
b2RlLiAgTWF5IGNoYW5nZSBITEUvUlRNIGZlYXR1cmUgYml0cy4gKi8KKwog
ICAgIGlmICggIXJlY2hlY2tfY3B1X2ZlYXR1cmVzKDApICkKICAgICAgICAg
cGFuaWMoIk1pc3NpbmcgcHJldmlvdXNseSBhdmFpbGFibGUgZmVhdHVyZShz
KS4iKTsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa377-4.12.patch"
Content-Disposition: attachment; filename="xsa377-4.12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogTWl0aWdhdGUgVEFBIGFmdGVy
IFMzIHJlc3VtZQoKVGhlIHVzZXIgY2hvc2VuIHNldHRpbmcgZm9yIE1TUl9U
U1hfQ1RSTCBuZWVkcyByZXN0b3JpbmcgYWZ0ZXIgUzMuCgpBbGwgQVBzIGdl
dCB0aGUgY29ycmVjdCBzZXR0aW5nIHZpYSBzdGFydF9zZWNvbmRhcnkoKSwg
YnV0IHRoZSBCU1Agd2FzIG1pc3NlZApvdXQuCgpUaGlzIGlzIFhTQS0zNzcg
LyBDVkUtMjAyMS0yODY5MC4KCkZpeGVzOiA4YzQzMzA4MThmNiAoIng4Ni9z
cGVjLWN0cmw6IE1pdGlnYXRlIHRoZSBUU1ggQXN5bmNocm9ub3VzIEFib3J0
IHNpZGVjaGFubmVsIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvYWNwaS9wb3dlci5jIGIveGVuL2FyY2gveDg2L2FjcGkvcG93
ZXIuYwppbmRleCBhMDdhYTNiOWVkLi42NjAzNjNhM2RmIDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvYWNwaS9wb3dlci5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL3Bvd2VyLmMKQEAgLTI1OSw2ICsyNTksOCBAQCBzdGF0aWMgaW50
IGVudGVyX3N0YXRlKHUzMiBzdGF0ZSkKIAogICAgIG1pY3JvY29kZV9yZXN1
bWVfY3B1KDApOwogCisgICAgdHN4X2luaXQoKTsgLyogTmVlZHMgbWljcm9j
b2RlLiAgTWF5IGNoYW5nZSBITEUvUlRNIGZlYXR1cmUgYml0cy4gKi8KKwog
ICAgIGlmICggIXJlY2hlY2tfY3B1X2ZlYXR1cmVzKDApICkKICAgICAgICAg
cGFuaWMoIk1pc3NpbmcgcHJldmlvdXNseSBhdmFpbGFibGUgZmVhdHVyZShz
KVxuIik7CiAK

--=separator--


From xen-users-bounces@lists.xenproject.org Tue Jun 08 17:14:56 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Jun 2021 17:14:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.138786.256790 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqfJ4-0003sJ-3k; Tue, 08 Jun 2021 17:14:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 138786.256790; Tue, 08 Jun 2021 17:14:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqfJ3-0003mu-Rm; Tue, 08 Jun 2021 17:14:25 +0000
Received: by outflank-mailman (input) for mailman id 138786;
 Tue, 08 Jun 2021 17:14:23 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CbVg=LC=xenbits.xen.org=iwj@srs-us1.protection.inumbo.net>)
 id 1lqfAL-0007tU-Pb
 for xen-users@lists.xen.org; Tue, 08 Jun 2021 17:05:25 +0000
Received: from mail.xenproject.org (unknown [104.130.215.37])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id d72a1b62-f0df-4bfb-a265-c632ed6c1b57;
 Tue, 08 Jun 2021 17:04:37 +0000 (UTC)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1lqf9R-0004gU-89; Tue, 08 Jun 2021 17:04:29 +0000
Received: from iwj by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <iwj@xenbits.xen.org>)
 id 1lqf9R-0004sG-6W; Tue, 08 Jun 2021 17:04:29 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: d72a1b62-f0df-4bfb-a265-c632ed6c1b57
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=SDVFctSv2PMnBZCWe0sMgIhEUf1wCGU8fcv1bKj95EE=; b=AhabBF0EpCQTSyDErdVNqpPU0R
	m0fuCOvQLwx0DgXPRJQAHsszdRCyeUnvuhtv/I/mTl9bN+ziOaiNwKT+S5O+bP1AM+ZMlxZtXZOgp
	rNCVmgh4+eVtFYXcfAmSrCAs5S9fm9+3jjh3H5xYDU5PczLTbe9sFBpx4XK9Tw0Xo45c=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 373 v2 (CVE-2021-28692) - inappropriate x86
 IOMMU timeout detection / handling
Message-Id: <E1lqf9R-0004sG-6W@xenbits.xenproject.org>
Date: Tue, 08 Jun 2021 17:04:29 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2021-28692 / XSA-373
                               version 2

         inappropriate x86 IOMMU timeout detection / handling

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

IOMMUs process commands issued to them in parallel with the operation
of the CPU(s) issuing such commands.  In the current implementation in
Xen, asynchronous notification of the completion of such commands is
not used.  Instead, the issuing CPU spin-waits for the completion of
the most recently issued command(s).  Some of these waiting loops try
to apply a timeout to fail overly-slow commands.  The course of action
upon a perceived timeout actually being detected is inappropriate:
 - on Intel hardware guests which did not originally cause the timeout
   may be marked as crashed,
 - on AMD hardware higher layer callers would not be notified of the
   issue, making them continue as if the IOMMU operation succeeded.

IMPACT
======

A malicious guest may be able to elevate its privileges to that of the
host, cause host or guest Denial of Service (DoS), or cause information
leaks.

VULNERABLE SYSTEMS
==================

All Xen versions from at least 3.2 onwards are vulnerable.  Earlier
versions have not been inspected.

Only x86 systems with in-use IOMMU hardware are vulnerable.  x86 systems
without any IOMMUs in use are not vulnerable.  On Arm systems IOMMU /
SMMU use is not security supported.

Only x86 guests which have physical devices passed through to them can
leverage the vulnerability.

MITIGATION
==========

Not passing through physical devices to untrusted guests will avoid
the vulnerability.

CREDITS
=======

This issue was discovered by Igor Druzhinin and Andrew Cooper of Citrix,
and further issues were uncovered by by Jan Beulich of SUSE while trying
to fix the first issue.

RESOLUTION
==========

Applying the appropriate set of attached patches resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa373/xsa373-?.patch           xen-unstable
xsa373/xsa373-4.15-?.patch      Xen 4.15.x
xsa373/xsa373-4.14-?.patch      Xen 4.14.x
xsa373/xsa373-4.13-?.patch      Xen 4.13.x
xsa373/xsa373-4.12-?.patch      Xen 4.12.x
xsa373/xsa373-4.11-?.patch      Xen 4.11.x

$ sha256sum xsa373* xsa373*/*
2ded01092088735e0d8a0e378a41b772ec0f17ceb7afabc78228670c43407fc2  xsa373.meta
f62df56cd176237521aa2ed4a22b0e893318b85bb0ce3c17bd7fca5282b6105b  xsa373/xsa373-1.patch
9eed9566508e116c4da6c201b36fe7e53e98f2daf96cce8ed0a9ca192d783edc  xsa373/xsa373-2.patch
ffee9d17e40798c053a67707dd13d7a944e4a53de7bcfe3e146eac7871ca2608  xsa373/xsa373-3.patch
c51bea462222c090ae671f14471ece00724348e6c04e5850f9b91d0b1eceaad8  xsa373/xsa373-4.11-1.patch
9a3b331e404a38c72ec154cefd78f1f67db6f25dcc1bd554b37ff50899ea42ff  xsa373/xsa373-4.11-2.patch
dba77bce4e6c88ec43df61e88bd5c8bee6e32c0ff681cbeddc4bceb0ee6c73dd  xsa373/xsa373-4.11-3.patch
b1f14e8885e3004de79c5012a1d9278d7a0c39633c5b73cbfda28679f1722c38  xsa373/xsa373-4.11-4.patch
791bccec1e7ba4429a0bafef5fd5a35a68562cee333d0962c70477172493ef3b  xsa373/xsa373-4.11-5.patch
cc4e1bcef148dbfc94ada92bef4408c5516cff2cf249e43c5595b1dbffbbc1e4  xsa373/xsa373-4.12-1.patch
12ffdac1526d96c4f1b572360a7f1a0371e8a177cf15228b126c1032de4e8930  xsa373/xsa373-4.12-2.patch
619425ba44f449bf7b0f519040ee579adff0d0293a95e9b0f70c943c02ae22fb  xsa373/xsa373-4.12-3.patch
b1f14e8885e3004de79c5012a1d9278d7a0c39633c5b73cbfda28679f1722c38  xsa373/xsa373-4.12-4.patch
96b3dd11d38ca8ca0b2dfe2dfb571045fcda78dbfe416580c9b04c5a8ce5fcef  xsa373/xsa373-4.12-5.patch
4add1d05ad2780904ebc89b4d1a93a8f2757b6e9f45b075afce46392ae406b58  xsa373/xsa373-4.13-1.patch
b064324db709078b8ef479df0c31ff3391a506755bfb0186d7d165592d025357  xsa373/xsa373-4.13-2.patch
6fe47fbba0c9d86f48643182d8a7c64ff70a7c8b290b0e93afe1d43d04bed480  xsa373/xsa373-4.13-3.patch
b1f14e8885e3004de79c5012a1d9278d7a0c39633c5b73cbfda28679f1722c38  xsa373/xsa373-4.13-4.patch
96b3dd11d38ca8ca0b2dfe2dfb571045fcda78dbfe416580c9b04c5a8ce5fcef  xsa373/xsa373-4.13-5.patch
4add1d05ad2780904ebc89b4d1a93a8f2757b6e9f45b075afce46392ae406b58  xsa373/xsa373-4.14-1.patch
8e61b7dda9ea21a830454e629fd23e3379b73fb230bd04107618e45975e117d1  xsa373/xsa373-4.14-2.patch
a5aa80d8e893c268f171a5e429bfef0c553522f860e3e5132b4bd87d3a73c6b7  xsa373/xsa373-4.14-3.patch
25bfd2b821ae2cc867b8e2d480528ebd435da76cfab766e8106573cf8dc6f36c  xsa373/xsa373-4.14-4.patch
162b3f14d15fe5ca2cb659efad6635f3803dde6fa97a6f0f1f7f202d3ea72d94  xsa373/xsa373-4.14-5.patch
4add1d05ad2780904ebc89b4d1a93a8f2757b6e9f45b075afce46392ae406b58  xsa373/xsa373-4.15-1.patch
9eed9566508e116c4da6c201b36fe7e53e98f2daf96cce8ed0a9ca192d783edc  xsa373/xsa373-4.15-2.patch
13642541b056ed47129d8143a919bcc81a73797baedc3bd90afeb33f021e6d31  xsa373/xsa373-4.15-3.patch
b2517a7e92c26a818e94ed5133d5aef6ef1d3a7a98f2f5355f1ad6f30baa3ab9  xsa373/xsa373-4.15-4.patch
3ca056796b93cb07ddb7e1dfda98410162382fc56135eb08bc5ff19137d8c427  xsa373/xsa373-4.15-5.patch
b2517a7e92c26a818e94ed5133d5aef6ef1d3a7a98f2f5355f1ad6f30baa3ab9  xsa373/xsa373-4.patch
0b7bb146330f7fdc7c8c331a618307819073654a13d9fe1d0a8b83ab037ae802  xsa373/xsa373-5.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmC/oxIMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZ7oQH/39iA05B0xCxHjYxZJmwplLhtr/RwNt+3zOgsesg
jaG8KMWRobWsfLWpbQdEuWKLQ5kPcK47KBGdFkadbSgNW6ZKeG6iR+HWC04/9uA6
3jjlhyqcdetfGnRUh/EO+4gLEaWxdWegWLWMBqYYp+f9b9lKDp8vyWj5yfzU1FFF
+YOu4bSRnqbY21hapsy2iupbBJugJF1vCLVfMLxQjba8KOjl4bk6cIxx/WgX3FPI
XIH6T+0MtLioCbv7MFaSlfeWoMNjpcimMA8/dmePS6XBtjGX02ahEYSO66lHKk7T
BsrN4QLibAsb8vMb5KjcjGE8ukhrg3AH5EOE950duWF5heQ=
=fAD/
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa373.meta"
Content-Disposition: attachment; filename="xsa373.meta"
Content-Transfer-Encoding: base64

ewogICJYU0EiOiAzNzMsCiAgIlN1cHBvcnRlZFZlcnNpb25zIjogWwogICAg
Im1hc3RlciIsCiAgICAiNC4xNSIsCiAgICAiNC4xNCIsCiAgICAiNC4xMyIs
CiAgICAiNC4xMiIsCiAgICAiNC4xMSIKICBdLAogICJUcmVlcyI6IFsKICAg
ICJ4ZW4iCiAgXSwKICAiUmVjaXBlcyI6IHsKICAgICI0LjExIjogewogICAg
ICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0
YWJsZVJlZiI6ICJiMWU0NmJjMzY5YmI0OTBiNzIxYzc3ZjE1ZDI1ODNiYmY0
NjYxNTJkIiwKICAgICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICAz
NzIKICAgICAgICAgIF0sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAg
ICAgICAgInhzYTM3My94c2EzNzMtNC4xMS0/LnBhdGNoIgogICAgICAgICAg
XQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICI0LjEyIjogewogICAg
ICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0
YWJsZVJlZiI6ICI1OTg0OTA1YjI2MzhkZjg3YTAyNjJkMWVlOTFmMGE2ZTE0
YTg2ZGY2IiwKICAgICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICAz
NzIKICAgICAgICAgIF0sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAg
ICAgICAgInhzYTM3My94c2EzNzMtNC4xMi0/LnBhdGNoIgogICAgICAgICAg
XQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICI0LjEzIjogewogICAg
ICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0
YWJsZVJlZiI6ICIyODQxMzI5Mzg5MDBjZThjM2IxMWJhYmY3MjU1ZjVjNmRi
YjIxNzE2IiwKICAgICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICAz
NzIKICAgICAgICAgIF0sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAg
ICAgICAgInhzYTM3My94c2EzNzMtNC4xMy0/LnBhdGNoIgogICAgICAgICAg
XQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICI0LjE0IjogewogICAg
ICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0
YWJsZVJlZiI6ICIxMGYwYjJkNDkzNzY4NjVkNDk2ODBmMDZjNTJiNDUxZmFi
Y2UzYmI1IiwKICAgICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICAz
NzIKICAgICAgICAgIF0sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAg
ICAgICAgInhzYTM3My94c2EzNzMtNC4xNC0/LnBhdGNoIgogICAgICAgICAg
XQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICI0LjE1IjogewogICAg
ICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0
YWJsZVJlZiI6ICIyODBkNDcyZjRmY2EwNzBhMTAzNzdlMzE4ZDkwY2FiZmMy
NTQwODEwIiwKICAgICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICAz
NzIKICAgICAgICAgIF0sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAg
ICAgICAgInhzYTM3My94c2EzNzMtNC4xNS0/LnBhdGNoIgogICAgICAgICAg
XQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICJtYXN0ZXIiOiB7CiAg
ICAgICJSZWNpcGVzIjogewogICAgICAgICJ4ZW4iOiB7CiAgICAgICAgICAi
U3RhYmxlUmVmIjogImFhNzdhY2MyODA5OGQwNDk0NWFmOTk4ZjNmYzBkYmQz
NzU5YjViNDEiLAogICAgICAgICAgIlByZXJlcXMiOiBbCiAgICAgICAgICAg
IDM3MgogICAgICAgICAgXSwKICAgICAgICAgICJQYXRjaGVzIjogWwogICAg
ICAgICAgICAieHNhMzczL3hzYTM3My0/LnBhdGNoIgogICAgICAgICAgXQog
ICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQ==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-1.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBzaXplIHFpbnZhbCBxdWV1ZSBkeW5hbWljYWxseQoKV2l0aCB0
aGUgcHJlc2VudCBzeW5jaHJvbm91cyBtb2RlbCwgd2UgbmVlZCB0d28gc2xv
dHMgZm9yIGV2ZXJ5Cm9wZXJhdGlvbiAodGhlIG9wZXJhdGlvbiBpdHNlbGYg
YW5kIGEgd2FpdCBkZXNjcmlwdG9yKS4gIFRoZXJlIGNhbiBiZQpvbmUgc3Vj
aCBwYWlyIG9mIHJlcXVlc3RzIHBlbmRpbmcgcGVyIENQVS4gVG8gZW5zdXJl
IHRoYXQgdW5kZXIgYWxsCm5vcm1hbCBjaXJjdW1zdGFuY2VzIGEgc2xvdCBp
cyBhbHdheXMgYXZhaWxhYmxlIHdoZW4gb25lIGlzIHJlcXVlc3RlZCwKc2l6
ZSB0aGUgcXVldWUgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBw
cmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv
aW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t
bXUuaApAQCAtNDUyLDE3ICs0NTIsOSBAQCBzdHJ1Y3QgcWludmFsX2VudHJ5
IHsKICAgICB9cTsKIH07CiAKLS8qIE9yZGVyIG9mIHF1ZXVlIGludmFsaWRh
dGlvbiBwYWdlcyhtYXggaXMgOCkgKi8KLSNkZWZpbmUgUUlOVkFMX1BBR0Vf
T1JERVIgICAyCi0KLSNkZWZpbmUgUUlOVkFMX0FSQ0hfUEFHRV9PUkRFUiAg
KFFJTlZBTF9QQUdFX09SREVSICsgUEFHRV9TSElGVF80SyAtIFBBR0VfU0hJ
RlQpCi0jZGVmaW5lIFFJTlZBTF9BUkNIX1BBR0VfTlIgICAgICggUUlOVkFM
X0FSQ0hfUEFHRV9PUkRFUiA8IDAgPyAgXAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxIDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCBRSU5W
QUxfQVJDSF9QQUdFX09SREVSICkKLQogLyogRWFjaCBlbnRyeSBpcyAxNiBi
eXRlcywgc28gMl44IGVudHJpZXMgcGVyIHBhZ2UgKi8KICNkZWZpbmUgUUlO
VkFMX0VOVFJZX09SREVSICAoIFBBR0VfU0hJRlQgLSA0ICkKLSNkZWZpbmUg
UUlOVkFMX0VOVFJZX05SICAgICAoMSA8PCAoUUlOVkFMX1BBR0VfT1JERVIg
KyA4KSkKKyNkZWZpbmUgUUlOVkFMX01BWF9FTlRSWV9OUiAoMXUgPDwgKDcg
KyBRSU5WQUxfRU5UUllfT1JERVIpKQogCiAvKiBTdGF0dXMgZGF0YSBmbGFn
ICovCiAjZGVmaW5lIFFJTlZBTF9TVEFUX0lOSVQgIDAKLS0tIGEveGVuL2Ry
aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCisrKyBiL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpAQCAtMzEsNiArMzEsOSBA
QAogCiAjZGVmaW5lIFZURF9RSV9USU1FT1VUCTEKIAorc3RhdGljIHVuc2ln
bmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX3BnX29yZGVyOworc3RhdGljIHVu
c2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX2VudHJ5X25yOworCiBzdGF0
aWMgaW50IF9fbXVzdF9jaGVjayBpbnZhbGlkYXRlX3N5bmMoc3RydWN0IHZ0
ZF9pb21tdSAqaW9tbXUpOwogCiBzdGF0aWMgdm9pZCBwcmludF9xaV9yZWdz
KGNvbnN0IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQpAQCAtNDcsNyArNTAs
NyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHFpbnZhbF9uZXh0X2luZGV4KHN0
CiAgICAgdGFpbCA+Pj0gUUlOVkFMX0lOREVYX1NISUZUOwogCiAgICAgLyog
KHRhaWwrMSA9PSBoZWFkKSBpbmRpY2F0ZXMgYSBmdWxsIHF1ZXVlLCB3YWl0
IGZvciBIVyAqLwotICAgIHdoaWxlICggKHRhaWwgKyAxKSAlIFFJTlZBTF9F
TlRSWV9OUiA9PQorICAgIHdoaWxlICggKCh0YWlsICsgMSkgJiAocWlfZW50
cnlfbnIgLSAxKSkgPT0KICAgICAgICAgICAgIChkbWFyX3JlYWRsKGlvbW11
LT5yZWcsIERNQVJfSVFIX1JFRykgPj4gUUlOVkFMX0lOREVYX1NISUZUKSAp
CiAgICAgICAgIGNwdV9yZWxheCgpOwogCkBAIC02MCw3ICs2Myw3IEBAIHN0
YXRpYyB2b2lkIHFpbnZhbF91cGRhdGVfcXRhaWwoc3RydWN0IHYKIAogICAg
IC8qIE5lZWQgaG9sZCByZWdpc3RlciBsb2NrIHdoZW4gdXBkYXRlIHRhaWwg
Ki8KICAgICBBU1NFUlQoIHNwaW5faXNfbG9ja2VkKCZpb21tdS0+cmVnaXN0
ZXJfbG9jaykgKTsKLSAgICB2YWwgPSAoaW5kZXggKyAxKSAlIFFJTlZBTF9F
TlRSWV9OUjsKKyAgICB2YWwgPSAoaW5kZXggKyAxKSAmIChxaV9lbnRyeV9u
ciAtIDEpOwogICAgIGRtYXJfd3JpdGVsKGlvbW11LT5yZWcsIERNQVJfSVFU
X1JFRywgdmFsIDw8IFFJTlZBTF9JTkRFWF9TSElGVCk7CiB9CiAKQEAgLTM5
NSw4ICszOTgsMjggQEAgaW50IGVuYWJsZV9xaW52YWwoc3RydWN0IHZ0ZF9p
b21tdSAqaW9tbQogCiAgICAgaWYgKCBpb21tdS0+cWludmFsX21hZGRyID09
IDAgKQogICAgIHsKLSAgICAgICAgaW9tbXUtPnFpbnZhbF9tYWRkciA9IGFs
bG9jX3BndGFibGVfbWFkZHIoUUlOVkFMX0FSQ0hfUEFHRV9OUiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW9tbXUtPm5vZGUpOworICAgICAgICBpZiAoICFxaV9lbnRyeV9uciApCisg
ICAgICAgIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBXaXRo
IHRoZSBwcmVzZW50IHN5bmNocm9ub3VzIG1vZGVsLCB3ZSBuZWVkIHR3byBz
bG90cyBmb3IgZXZlcnkKKyAgICAgICAgICAgICAqIG9wZXJhdGlvbiAodGhl
IG9wZXJhdGlvbiBpdHNlbGYgYW5kIGEgd2FpdCBkZXNjcmlwdG9yKS4gIFRo
ZXJlCisgICAgICAgICAgICAgKiBjYW4gYmUgb25lIHN1Y2ggcGFpciBvZiBy
ZXF1ZXN0cyBwZW5kaW5nIHBlciBDUFUuICBPbmUgZXh0cmEKKyAgICAgICAg
ICAgICAqIGVudHJ5IGlzIG5lZWRlZCBhcyB0aGUgcmluZyBpcyBjb25zaWRl
cmVkIGZ1bGwgd2hlbiB0aGVyZSdzCisgICAgICAgICAgICAgKiBvbmx5IG9u
ZSBlbnRyeSBsZWZ0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBC
VUlMRF9CVUdfT04oQ09ORklHX05SX0NQVVMgKiAyID49IFFJTlZBTF9NQVhf
RU5UUllfTlIpOworICAgICAgICAgICAgcWlfcGdfb3JkZXIgPSBnZXRfb3Jk
ZXJfZnJvbV9ieXRlcygobnVtX3ByZXNlbnRfY3B1cygpICogMiArIDEpIDw8
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChQQUdFX1NISUZUIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFFJTlZBTF9FTlRSWV9PUkRFUikpOwor
ICAgICAgICAgICAgcWlfZW50cnlfbnIgPSAxdSA8PCAocWlfcGdfb3JkZXIg
KyBRSU5WQUxfRU5UUllfT1JERVIpOworCisgICAgICAgICAgICBkcHJpbnRr
KFhFTkxPR19JTkZPIFZURFBSRUZJWCwKKyAgICAgICAgICAgICAgICAgICAg
IlFJOiB1c2luZyAldS1lbnRyeSByaW5nKHMpXG4iLCBxaV9lbnRyeV9ucik7
CisgICAgICAgIH0KKworICAgICAgICBpb21tdS0+cWludmFsX21hZGRyID0K
KyAgICAgICAgICAgIGFsbG9jX3BndGFibGVfbWFkZHIocWlfZW50cnlfbnIg
Pj4gUUlOVkFMX0VOVFJZX09SREVSLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpb21tdS0+bm9kZSk7CiAgICAgICAgIGlmICggaW9tbXUt
PnFpbnZhbF9tYWRkciA9PSAwICkKICAgICAgICAgewogICAgICAgICAgICAg
ZHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgsCkBAIC00MTAsMTUg
KzQzMywxNiBAQCBpbnQgZW5hYmxlX3FpbnZhbChzdHJ1Y3QgdnRkX2lvbW11
ICppb21tCiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPnJlZ2lz
dGVyX2xvY2ssIGZsYWdzKTsKIAotICAgIC8qIFNldHVwIEludmFsaWRhdGlv
biBRdWV1ZSBBZGRyZXNzKElRQSkgcmVnaXN0ZXIgd2l0aCB0aGUKLSAgICAg
KiBhZGRyZXNzIG9mIHRoZSBwYWdlIHdlIGp1c3QgYWxsb2NhdGVkLiAgUVMg
ZmllbGQgYXQKLSAgICAgKiBiaXRzWzI6MF0gdG8gaW5kaWNhdGUgc2l6ZSBv
ZiBxdWV1ZSBpcyBvbmUgNEtCIHBhZ2UuCi0gICAgICogVGhhdCdzIDI1NiBl
bnRyaWVzLiAgUXVldWVkIEhlYWQgKElRSCkgYW5kIFF1ZXVlIFRhaWwgKElR
VCkKLSAgICAgKiByZWdpc3RlcnMgYXJlIGF1dG9tYXRpY2FsbHkgcmVzZXQg
dG8gMCB3aXRoIHdyaXRlCi0gICAgICogdG8gSVFBIHJlZ2lzdGVyLgorICAg
IC8qCisgICAgICogU2V0dXAgSW52YWxpZGF0aW9uIFF1ZXVlIEFkZHJlc3Mg
KElRQSkgcmVnaXN0ZXIgd2l0aCB0aGUgYWRkcmVzcyBvZiB0aGUKKyAgICAg
KiBwYWdlcyB3ZSBqdXN0IGFsbG9jYXRlZC4gIFRoZSBRUyBmaWVsZCBhdCBi
aXRzWzI6MF0gaW5kaWNhdGVzIHRoZSBzaXplCisgICAgICogKHBhZ2Ugb3Jk
ZXIpIG9mIHRoZSBxdWV1ZS4KKyAgICAgKgorICAgICAqIFF1ZXVlZCBIZWFk
IChJUUgpIGFuZCBRdWV1ZSBUYWlsIChJUVQpIHJlZ2lzdGVycyBhcmUgYXV0
b21hdGljYWxseQorICAgICAqIHJlc2V0IHRvIDAgd2l0aCB3cml0ZSB0byBJ
UUEgcmVnaXN0ZXIuCiAgICAgICovCiAgICAgZG1hcl93cml0ZXEoaW9tbXUt
PnJlZywgRE1BUl9JUUFfUkVHLAotICAgICAgICAgICAgICAgIGlvbW11LT5x
aW52YWxfbWFkZHIgfCBRSU5WQUxfUEFHRV9PUkRFUik7CisgICAgICAgICAg
ICAgICAgaW9tbXUtPnFpbnZhbF9tYWRkciB8IHFpX3BnX29yZGVyKTsKIAog
ICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIERNQVJfSVFUX1JFRywgMCk7
CiAK

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-2.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHNpemUgY29tbWFuZCBidWZmZXIgZHluYW1pY2FsbHkK
CldpdGggdGhlIHByZXNlbnQgc3luY2hyb25vdXMgbW9kZWwsIHdlIG5lZWQg
dHdvIHNsb3RzIGZvciBldmVyeQpvcGVyYXRpb24gKHRoZSBvcGVyYXRpb24g
aXRzZWxmIGFuZCBhIHdhaXQgY29tbWFuZCkuICBUaGVyZSBjYW4gYmUgb25l
CnN1Y2ggcGFpciBvZiBjb21tYW5kcyBwZW5kaW5nIHBlciBDUFUuIFRvIGVu
c3VyZSB0aGF0IHVuZGVyIGFsbCBub3JtYWwKY2lyY3Vtc3RhbmNlcyBhIHNs
b3QgaXMgYWx3YXlzIGF2YWlsYWJsZSB3aGVuIG9uZSBpcyByZXF1ZXN0ZWQs
IHNpemUgdGhlCmNvbW1hbmQgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJl
ciBvZiBwcmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAv
IENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg
PGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50
IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hbWQvaW9tbXUtZGVmcy5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv
dWdoL2FtZC9pb21tdS1kZWZzLmgKQEAgLTIwLDkgKzIwLDYgQEAKICNpZm5k
ZWYgQU1EX0lPTU1VX0RFRlNfSAogI2RlZmluZSBBTURfSU9NTVVfREVGU19I
CiAKLS8qIElPTU1VIENvbW1hbmQgQnVmZmVyIGVudHJpZXM6IGluIHBvd2Vy
IG9mIDIgaW5jcmVtZW50cywgbWluaW11bSBvZiAyNTYgKi8KLSNkZWZpbmUg
SU9NTVVfQ01EX0JVRkZFUl9ERUZBVUxUX0VOVFJJRVMJNTEyCi0KIC8qIElP
TU1VIEV2ZW50IExvZyBlbnRyaWVzOiBpbiBwb3dlciBvZiAyIGluY3JlbWVu
dHMsIG1pbmltdW0gb2YgMjU2ICovCiAjZGVmaW5lIElPTU1VX0VWRU5UX0xP
R19ERUZBVUxUX0VOVFJJRVMgICAgIDUxMgogCkBAIC0xNjQsOCArMTYxLDgg
QEAgc3RydWN0IGFtZF9pb21tdV9kdGUgewogI2RlZmluZSBJT01NVV9DTURf
QlVGRkVSX0xFTkdUSF9NQVNLCQkweDBGMDAwMDAwCiAjZGVmaW5lIElPTU1V
X0NNRF9CVUZGRVJfTEVOR1RIX1NISUZUCQkyNAogCi0jZGVmaW5lIElPTU1V
X0NNRF9CVUZGRVJfRU5UUllfU0laRQkJCTE2Ci0jZGVmaW5lIElPTU1VX0NN
RF9CVUZGRVJfUE9XRVJfT0YyX0VOVFJJRVNfUEVSX1BBR0UJOAorI2RlZmlu
ZSBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVSICAgICAgICAgICAgNAor
I2RlZmluZSBJT01NVV9DTURfQlVGRkVSX01BWF9FTlRSSUVTICAgICAgICAg
ICAgKDF1IDw8IDE1KQogCiAjZGVmaW5lIElPTU1VX0NNRF9PUENPREVfTUFT
SwkJCTB4RjAwMDAwMDAKICNkZWZpbmUgSU9NTVVfQ01EX09QQ09ERV9TSElG
VAkJCTI4Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21t
dV9jbWQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9t
bXVfY21kLmMKQEAgLTI0LDcgKzI0LDcgQEAgc3RhdGljIGludCBxdWV1ZV9p
b21tdV9jb21tYW5kKHN0cnVjdCBhbQogewogICAgIHVpbnQzMl90IHRhaWws
IGhlYWQ7CiAKLSAgICB0YWlsID0gaW9tbXUtPmNtZF9idWZmZXIudGFpbCAr
IElPTU1VX0NNRF9CVUZGRVJfRU5UUllfU0laRTsKKyAgICB0YWlsID0gaW9t
bXUtPmNtZF9idWZmZXIudGFpbCArIHNpemVvZihjbWRfZW50cnlfdCk7CiAg
ICAgaWYgKCB0YWlsID09IGlvbW11LT5jbWRfYnVmZmVyLnNpemUgKQogICAg
ICAgICB0YWlsID0gMDsKIApAQCAtMzMsNyArMzMsNyBAQCBzdGF0aWMgaW50
IHF1ZXVlX2lvbW11X2NvbW1hbmQoc3RydWN0IGFtCiAgICAgaWYgKCBoZWFk
ICE9IHRhaWwgKQogICAgIHsKICAgICAgICAgbWVtY3B5KGlvbW11LT5jbWRf
YnVmZmVyLmJ1ZmZlciArIGlvbW11LT5jbWRfYnVmZmVyLnRhaWwsCi0gICAg
ICAgICAgICAgICBjbWQsIElPTU1VX0NNRF9CVUZGRVJfRU5UUllfU0laRSk7
CisgICAgICAgICAgICAgICBjbWQsIHNpemVvZihjbWRfZW50cnlfdCkpOwog
CiAgICAgICAgIGlvbW11LT5jbWRfYnVmZmVyLnRhaWwgPSB0YWlsOwogICAg
ICAgICByZXR1cm4gMTsKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv
YW1kL2lvbW11X2luaXQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hbWQvaW9tbXVfaW5pdC5jCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGlj
IHZvaWQgcmVnaXN0ZXJfaW9tbXVfY21kX2J1ZmZlcl9pbgogICAgIHdyaXRl
bChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NNRF9CVUZGRVJf
QkFTRV9MT1dfT0ZGU0VUKTsKIAogICAgIHBvd2VyX29mMl9lbnRyaWVzID0g
Z2V0X29yZGVyX2Zyb21fYnl0ZXMoaW9tbXUtPmNtZF9idWZmZXIuc2l6ZSkg
KwotICAgICAgICBJT01NVV9DTURfQlVGRkVSX1BPV0VSX09GMl9FTlRSSUVT
X1BFUl9QQUdFOworICAgICAgICBQQUdFX1NISUZUIC0gSU9NTVVfQ01EX0JV
RkZFUl9FTlRSWV9PUkRFUjsKIAogICAgIGVudHJ5ID0gMDsKICAgICBpb21t
dV9zZXRfYWRkcl9oaV90b19yZWcoJmVudHJ5LCBhZGRyX2hpKTsKQEAgLTEw
MTgsOSArMTAxOCwzMSBAQCBzdGF0aWMgdm9pZCAqX19pbml0IGFsbG9jYXRl
X3JpbmdfYnVmZmVyCiBzdGF0aWMgdm9pZCAqIF9faW5pdCBhbGxvY2F0ZV9j
bWRfYnVmZmVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQogewogICAgIC8q
IGFsbG9jYXRlICdjb21tYW5kIGJ1ZmZlcicgaW4gcG93ZXIgb2YgMiBpbmNy
ZW1lbnRzIG9mIDRLICovCisgICAgc3RhdGljIHVuc2lnbmVkIGludCBfX3Jl
YWRfbW9zdGx5IG5yX2VudHM7CisKKyAgICBpZiAoICFucl9lbnRzICkKKyAg
ICB7CisgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcjsKKworICAgICAgICAv
KgorICAgICAgICAgKiBXaXRoIHRoZSBwcmVzZW50IHN5bmNocm9ub3VzIG1v
ZGVsLCB3ZSBuZWVkIHR3byBzbG90cyBmb3IgZXZlcnkKKyAgICAgICAgICog
b3BlcmF0aW9uICh0aGUgb3BlcmF0aW9uIGl0c2VsZiBhbmQgYSB3YWl0IGNv
bW1hbmQpLiAgVGhlcmUgY2FuIGJlCisgICAgICAgICAqIG9uZSBzdWNoIHBh
aXIgb2YgcmVxdWVzdHMgcGVuZGluZyBwZXIgQ1BVLiAgT25lIGV4dHJhIGVu
dHJ5IGlzCisgICAgICAgICAqIG5lZWRlZCBhcyB0aGUgcmluZyBpcyBjb25z
aWRlcmVkIGZ1bGwgd2hlbiB0aGVyZSdzIG9ubHkgb25lIGVudHJ5CisgICAg
ICAgICAqIGxlZnQuCisgICAgICAgICAqLworICAgICAgICBCVUlMRF9CVUdf
T04oQ09ORklHX05SX0NQVVMgKiAyID49IElPTU1VX0NNRF9CVUZGRVJfTUFY
X0VOVFJJRVMpOworICAgICAgICBvcmRlciA9IGdldF9vcmRlcl9mcm9tX2J5
dGVzKChudW1fcHJlc2VudF9jcHVzKCkgKiAyICsgMSkgPDwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9DTURfQlVGRkVS
X0VOVFJZX09SREVSKTsKKyAgICAgICAgbnJfZW50cyA9IDF1IDw8IChvcmRl
ciArIFBBR0VfU0hJRlQgLSBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVS
KTsKKworICAgICAgICBBTURfSU9NTVVfREVCVUcoInVzaW5nICV1LWVudHJ5
IGNtZCByaW5nKHMpXG4iLCBucl9lbnRzKTsKKyAgICB9CisKKyAgICBCVUlM
RF9CVUdfT04oc2l6ZW9mKGNtZF9lbnRyeV90KSAhPSAoMXUgPDwgSU9NTVVf
Q01EX0JVRkZFUl9FTlRSWV9PUkRFUikpOworCiAgICAgcmV0dXJuIGFsbG9j
YXRlX3JpbmdfYnVmZmVyKCZpb21tdS0+Y21kX2J1ZmZlciwgc2l6ZW9mKGNt
ZF9lbnRyeV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SU9NTVVfQ01EX0JVRkZFUl9ERUZBVUxUX0VOVFJJRVMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJDb21tYW5kIEJ1ZmZlciIsIGZhbHNl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnJfZW50cywg
IkNvbW1hbmQgQnVmZmVyIiwgZmFsc2UpOwogfQogCiBzdGF0aWMgdm9pZCAq
IF9faW5pdCBhbGxvY2F0ZV9ldmVudF9sb2coc3RydWN0IGFtZF9pb21tdSAq
aW9tbXUpCg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-3.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-3.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBlbGltaW5hdGUgZmx1c2ggcmVsYXRlZCB0aW1lb3V0cwoKTGVh
dmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24gcGVuZGluZyB3aGVuIGl0
IGFwcGVhcnMgdG8gdGFrZSB0b28KbG9uZyBpcyBwcm9ibGVtYXRpYzogSWYg
ZS5nLiBhIFFJIGNvbW1hbmQgY29tcGxldGVkIGxhdGVyLCB0aGUgd3JpdGUg
dG8KdGhlICJwb2xsIHNsb3QiIG1heSBpbnN0ZWFkIGJlIHVuZGVyc3Rvb2Qg
dG8gc2lnbmFsIGEgc3Vic2VxdWVudGx5CnN0YXJ0ZWQgY29tbWFuZCdzIGNv
bXBsZXRpb24uIEFsc28gb3VyIGFjY291bnRpbmcgb2YgdGhlIHRpbWVvdXQg
cGVyaW9kCndhcyBhY3R1YWxseSB3cm9uZzogV2UgaW5jbHVkZWQgdGhlIHRp
bWUgaXQgdG9vayBmb3IgdGhlIGNvbW1hbmQgdG8KYWN0dWFsbHkgbWFrZSBp
dCB0byB0aGUgZnJvbnQgb2YgdGhlIHF1ZXVlLCB3aGljaCBjb3VsZCBiZSBo
ZWF2aWx5CmFmZmVjdGVkIGJ5IGd1ZXN0cyBvdGhlciB0aGFuIHRoZSBvbmUg
Zm9yIHdoaWNoIHRoZSBmbHVzaCBpcyBiZWluZwpwZXJmb3JtZWQuCgpEbyBh
d2F5IHdpdGggYWxsIHRpbWVvdXQgZGV0ZWN0aW9uIG9uIGFsbCBmbHVzaCBy
ZWxhdGVkIGNvZGUgcGF0aHMuCkxvZyBleGNlc3NpdmVseSBsb25nIHByb2Nl
c3NpbmcgdGltZXMgKHdpdGggYSBwcm9ncmVzc2l2ZSB0aHJlc2hvbGQpIHRv
CmhhdmUgc29tZSBpbmRpY2F0aW9uIG9mIHByb2JsZW1zIGluIHRoaXMgYXJl
YS4KCkFkZGl0aW9uYWxseSBsb2cgKG9uY2UpIGlmIHFpbnZhbF9uZXh0X2lu
ZGV4KCkgZGlkbid0IGltbWVkaWF0ZWx5IGZpbmQKYW4gYXZhaWxhYmxlIHNs
b3QuIFRvZ2V0aGVyIHdpdGggdGhlIGVhcmxpZXIgY2hhbmdlIHNpemluZyB0
aGUgcXVldWUocykKZHluYW1pY2FsbHksIHdlIHNob3VsZCBub3cgaGF2ZSBh
IGd1YXJhbnRlZSB0aGF0IHdpdGggb3VyIGZ1bGx5CnN5bmNocm9ub3VzIG1v
ZGVsIGFueSBkZW1hbmQgZm9yIHNsb3RzIGNhbiBhY3R1YWxseSBiZSBzYXRp
c2ZpZWQuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4
NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5v
cmc+Ci0tLQpUQkQ6IEluIHF1ZXVlX2ludmFsaWRhdGVfd2FpdCgpIHdlIGhh
dmUgdGhlIG9wdGlvbiBvZiBwcm9jZXNzaW5nCiAgICAgc29mdGlycXMgZXZl
cnkgb25jZSBpbiBhIHdoaWxlLCBhcyB0aGVyZSBJUlFzIGFyZW4ndCBvZmYg
d2hpbGUKICAgICBzcGlubmluZy4gVGhpcyB3b3VsZCBrZWVwIHRoZSB3YXRj
aGRvZyBoYXBweS4gSSdtIG5vdCBzdXJlIHRob3VnaAogICAgIHdoZXRoZXIg
d2UgYXJlbid0IGJldHRlciBvZmYgaWYgaXQgYWN0dWFsbHkgdHJpZ2dlcmVk
IGluIGNhc2Ugd2UKICAgICBzcGluIGZvciBhIGxvbmcgdGltZS4KCi0tLSBh
L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmgKKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2RtYXIuaApAQCAtMTI3LDYgKzEy
NywzNCBAQCBkbyB7CiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogfSB3aGlsZSAo
MCkKIAorI2RlZmluZSBJT01NVV9GTFVTSF9XQUlUKHdoYXQsIGlvbW11LCBv
ZmZzZXQsIG9wLCBjb25kLCBzdHMpICAgICAgIFwKK2RvIHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgc3RhdGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9z
dGx5IHRocmVzaG9sZCA9IDE7ICAgICAgICAgICAgICAgXAorICAgIHNfdGlt
ZV90IHN0YXJ0ID0gTk9XKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBzX3RpbWVfdCB0aW1lb3V0ID0gc3RhcnQg
KyBETUFSX09QRVJBVElPTl9USU1FT1VUICogdGhyZXNob2xkOyBcCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAoIDsgOyApICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0cyA9IG9wKGlv
bW11LT5yZWcsIG9mZnNldCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICBpZiAoIGNvbmQgKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGJy
ZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgIGlmICggdGltZW91dCAmJiBOT1coKSA+IHRp
bWVvdXQgKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHRocmVzaG9sZCB8PSB0aHJl
c2hvbGQgPDwgMTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICIgSU9N
TVUjJXU6ICVzIGZsdXNoIHRha2luZyB0b28gbG9uZ1xuIiwgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIHdoYXQpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0aW1lb3V0
ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY3B1X3Jl
bGF4KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBpZiAoICF0aW1lb3V0ICkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIiBJT01NVSMl
dTogJXMgZmx1c2ggdG9vayAlbHVtc1xuIiwgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgIGlvbW11LT5pbmRleCwgd2hhdCwgKE5PVygpIC0g
c3RhcnQpIC8gMTAwMDAwMDApOyAgICBcCit9IHdoaWxlICggZmFsc2UgKQor
CiBpbnQgdnRkX2h3X2NoZWNrKHZvaWQpOwogdm9pZCBkaXNhYmxlX3Btcihz
dHJ1Y3QgdnRkX2lvbW11ICppb21tdSk7CiBpbnQgaXNfaWdkX2RyaGQoc3Ry
dWN0IGFjcGlfZHJoZF91bml0ICpkcmhkKTsKLS0tIGEveGVuL2RyaXZlcnMv
cGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFz
c3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTM3Myw4ICszNzMsOCBAQCBzdGF0
aWMgdm9pZCBpb21tdV9mbHVzaF93cml0ZV9idWZmZXIoc3RyCiAgICAgZG1h
cl93cml0ZWwoaW9tbXUtPnJlZywgRE1BUl9HQ01EX1JFRywgdmFsIHwgRE1B
X0dDTURfV0JGKTsKIAogICAgIC8qIE1ha2Ugc3VyZSBoYXJkd2FyZSBjb21w
bGV0ZSBpdCAqLwotICAgIElPTU1VX1dBSVRfT1AoaW9tbXUsIERNQVJfR1NU
U19SRUcsIGRtYXJfcmVhZGwsCi0gICAgICAgICAgICAgICAgICAhKHZhbCAm
IERNQV9HU1RTX1dCRlMpLCB2YWwpOworICAgIElPTU1VX0ZMVVNIX1dBSVQo
IndyaXRlIGJ1ZmZlciIsIGlvbW11LCBETUFSX0dTVFNfUkVHLCBkbWFyX3Jl
YWRsLAorICAgICAgICAgICAgICAgICAgICAgISh2YWwgJiBETUFfR1NUU19X
QkZTKSwgdmFsKTsKIAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlv
bW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFncyk7CiB9CkBAIC00MjMsOCArNDIz
LDggQEAgaW50IHZ0ZF9mbHVzaF9jb250ZXh0X3JlZyhzdHJ1Y3QgdnRkX2lv
bQogICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIERNQVJfQ0NNRF9SRUcs
IHZhbCk7CiAKICAgICAvKiBNYWtlIHN1cmUgaGFyZHdhcmUgY29tcGxldGUg
aXQgKi8KLSAgICBJT01NVV9XQUlUX09QKGlvbW11LCBETUFSX0NDTURfUkVH
LCBkbWFyX3JlYWRxLAotICAgICAgICAgICAgICAgICAgISh2YWwgJiBETUFf
Q0NNRF9JQ0MpLCB2YWwpOworICAgIElPTU1VX0ZMVVNIX1dBSVQoImNvbnRl
eHQiLCBpb21tdSwgRE1BUl9DQ01EX1JFRywgZG1hcl9yZWFkcSwKKyAgICAg
ICAgICAgICAgICAgICAgICEodmFsICYgRE1BX0NDTURfSUNDKSwgdmFsKTsK
IAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5yZWdpc3Rl
cl9sb2NrLCBmbGFncyk7CiAgICAgLyogZmx1c2ggY29udGV4dCBlbnRyeSB3
aWxsIGltcGxpY2l0bHkgZmx1c2ggd3JpdGUgYnVmZmVyICovCkBAIC01MDEs
OCArNTAxLDggQEAgaW50IHZ0ZF9mbHVzaF9pb3RsYl9yZWcoc3RydWN0IHZ0
ZF9pb21tdQogICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIHRsYl9vZmZz
ZXQgKyA4LCB2YWwpOwogCiAgICAgLyogTWFrZSBzdXJlIGhhcmR3YXJlIGNv
bXBsZXRlIGl0ICovCi0gICAgSU9NTVVfV0FJVF9PUChpb21tdSwgKHRsYl9v
ZmZzZXQgKyA4KSwgZG1hcl9yZWFkcSwKLSAgICAgICAgICAgICAgICAgICEo
dmFsICYgRE1BX1RMQl9JVlQpLCB2YWwpOworICAgIElPTU1VX0ZMVVNIX1dB
SVQoImlvdGxiIiwgaW9tbXUsICh0bGJfb2Zmc2V0ICsgOCksIGRtYXJfcmVh
ZHEsCisgICAgICAgICAgICAgICAgICAgICAhKHZhbCAmIERNQV9UTEJfSVZU
KSwgdmFsKTsKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+
cmVnaXN0ZXJfbG9jaywgZmxhZ3MpOwogCiAgICAgLyogY2hlY2sgSU9UTEIg
aW52YWxpZGF0aW9uIGdyYW51bGFyaXR5ICovCi0tLSBhL3hlbi9kcml2ZXJz
L3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYworKysgYi94ZW4vZHJpdmVycy9w
YXNzdGhyb3VnaC92dGQvcWludmFsLmMKQEAgLTI5LDggKzI5LDYgQEAKICNp
bmNsdWRlICJleHRlcm4uaCIKICNpbmNsdWRlICIuLi9hdHMuaCIKIAotI2Rl
ZmluZSBWVERfUUlfVElNRU9VVAkxCi0KIHN0YXRpYyB1bnNpZ25lZCBpbnQg
X19yZWFkX21vc3RseSBxaV9wZ19vcmRlcjsKIHN0YXRpYyB1bnNpZ25lZCBp
bnQgX19yZWFkX21vc3RseSBxaV9lbnRyeV9ucjsKIApAQCAtNTIsNyArNTAs
MTEgQEAgc3RhdGljIHVuc2lnbmVkIGludCBxaW52YWxfbmV4dF9pbmRleChz
dAogICAgIC8qICh0YWlsKzEgPT0gaGVhZCkgaW5kaWNhdGVzIGEgZnVsbCBx
dWV1ZSwgd2FpdCBmb3IgSFcgKi8KICAgICB3aGlsZSAoICgodGFpbCArIDEp
ICYgKHFpX2VudHJ5X25yIC0gMSkpID09CiAgICAgICAgICAgICAoZG1hcl9y
ZWFkbChpb21tdS0+cmVnLCBETUFSX0lRSF9SRUcpID4+IFFJTlZBTF9JTkRF
WF9TSElGVCkgKQorICAgIHsKKyAgICAgICAgcHJpbnRrX29uY2UoWEVOTE9H
X0VSUiBWVERQUkVGSVggIiBJT01NVSMldTogbm8gUUkgc2xvdCBhdmFpbGFi
bGVcbiIsCisgICAgICAgICAgICAgICAgICAgIGlvbW11LT5pbmRleCk7CiAg
ICAgICAgIGNwdV9yZWxheCgpOworICAgIH0KIAogICAgIHJldHVybiB0YWls
OwogfQpAQCAtMTcyLDIzICsxNzQsMzIgQEAgc3RhdGljIGludCBfX211c3Rf
Y2hlY2sgcXVldWVfaW52YWxpZGF0ZQogICAgIC8qIE5vdyB3ZSBkb24ndCBz
dXBwb3J0IGludGVycnVwdCBtZXRob2QgKi8KICAgICBpZiAoIHN3ICkKICAg
ICB7Ci0gICAgICAgIHNfdGltZV90IHRpbWVvdXQ7Ci0KLSAgICAgICAgLyog
SW4gY2FzZSBhbGwgd2FpdCBkZXNjcmlwdG9yIHdyaXRlcyB0byBzYW1lIGFk
ZHIgd2l0aCBzYW1lIGRhdGEgKi8KLSAgICAgICAgdGltZW91dCA9IE5PVygp
ICsgTUlMTElTRUNTKGZsdXNoX2Rldl9pb3RsYiA/Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9kZXZfaW90bGJfdGltZW91
dCA6IFZURF9RSV9USU1FT1VUKTsKKyAgICAgICAgc3RhdGljIHVuc2lnbmVk
IGludCBfX3JlYWRfbW9zdGx5IHRocmVzaG9sZCA9IDE7CisgICAgICAgIHNf
dGltZV90IHN0YXJ0ID0gTk9XKCk7CisgICAgICAgIHNfdGltZV90IHRpbWVv
dXQgPSBzdGFydCArIChmbHVzaF9kZXZfaW90bGIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID8gaW9tbXVfZGV2X2lvdGxiX3RpbWVv
dXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTAw
KSAqIE1JTExJU0VDUyh0aHJlc2hvbGQpOwogCiAgICAgICAgIHdoaWxlICgg
QUNDRVNTX09OQ0UoKnRoaXNfcG9sbF9zbG90KSAhPSBRSU5WQUxfU1RBVF9E
T05FICkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCBOT1coKSA+IHRp
bWVvdXQgKQorICAgICAgICAgICAgaWYgKCB0aW1lb3V0ICYmIE5PVygpID4g
dGltZW91dCApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJp
bnRfcWlfcmVncyhpb21tdSk7CisgICAgICAgICAgICAgICAgdGhyZXNob2xk
IHw9IHRocmVzaG9sZCA8PCAxOwogICAgICAgICAgICAgICAgIHByaW50ayhY
RU5MT0dfV0FSTklORyBWVERQUkVGSVgKLSAgICAgICAgICAgICAgICAgICAg
ICAgIiBRdWV1ZSBpbnZhbGlkYXRlIHdhaXQgZGVzY3JpcHRvciB0aW1lZCBv
dXRcbiIpOwotICAgICAgICAgICAgICAgIHJldHVybiAtRVRJTUVET1VUOwor
ICAgICAgICAgICAgICAgICAgICAgICAiIElPTU1VIyV1OiBRSSVzIHdhaXQg
ZGVzY3JpcHRvciB0YWtpbmcgdG9vIGxvbmdcbiIsCisgICAgICAgICAgICAg
ICAgICAgICAgIGlvbW11LT5pbmRleCwgZmx1c2hfZGV2X2lvdGxiID8gIiBk
ZXYiIDogIiIpOworICAgICAgICAgICAgICAgIHByaW50X3FpX3JlZ3MoaW9t
bXUpOworICAgICAgICAgICAgICAgIHRpbWVvdXQgPSAwOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgY3B1X3JlbGF4KCk7CiAgICAgICAgIH0KKwor
ICAgICAgICBpZiAoICF0aW1lb3V0ICkKKyAgICAgICAgICAgIHByaW50ayhY
RU5MT0dfV0FSTklORyBWVERQUkVGSVgKKyAgICAgICAgICAgICAgICAgICAi
IElPTU1VIyV1OiBRSSVzIHdhaXQgZGVzY3JpcHRvciB0b29rICVsdW1zXG4i
LAorICAgICAgICAgICAgICAgICAgIGlvbW11LT5pbmRleCwgZmx1c2hfZGV2
X2lvdGxiID8gIiBkZXYiIDogIiIsCisgICAgICAgICAgICAgICAgICAgKE5P
VygpIC0gc3RhcnQpIC8gMTAwMDAwMDApOworCiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KIAo=

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.11-1.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.11-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBzaXplIHFpbnZhbCBxdWV1ZSBkeW5hbWljYWxseQoKV2l0aCB0
aGUgcHJlc2VudCBzeW5jaHJvbm91cyBtb2RlbCwgd2UgbmVlZCB0d28gc2xv
dHMgZm9yIGV2ZXJ5Cm9wZXJhdGlvbiAodGhlIG9wZXJhdGlvbiBpdHNlbGYg
YW5kIGEgd2FpdCBkZXNjcmlwdG9yKS4gIFRoZXJlIGNhbiBiZQpvbmUgc3Vj
aCBwYWlyIG9mIHJlcXVlc3RzIHBlbmRpbmcgcGVyIENQVS4gVG8gZW5zdXJl
IHRoYXQgdW5kZXIgYWxsCm5vcm1hbCBjaXJjdW1zdGFuY2VzIGEgc2xvdCBp
cyBhbHdheXMgYXZhaWxhYmxlIHdoZW4gb25lIGlzIHJlcXVlc3RlZCwKc2l6
ZSB0aGUgcXVldWUgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBw
cmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv
aW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t
bXUuaApAQCAtNDQ3LDE3ICs0NDcsOSBAQCBzdHJ1Y3QgcWludmFsX2VudHJ5
IHsKICAgICB9cTsKIH07CiAKLS8qIE9yZGVyIG9mIHF1ZXVlIGludmFsaWRh
dGlvbiBwYWdlcyhtYXggaXMgOCkgKi8KLSNkZWZpbmUgUUlOVkFMX1BBR0Vf
T1JERVIgICAyCi0KLSNkZWZpbmUgUUlOVkFMX0FSQ0hfUEFHRV9PUkRFUiAg
KFFJTlZBTF9QQUdFX09SREVSICsgUEFHRV9TSElGVF80SyAtIFBBR0VfU0hJ
RlQpCi0jZGVmaW5lIFFJTlZBTF9BUkNIX1BBR0VfTlIgICAgICggUUlOVkFM
X0FSQ0hfUEFHRV9PUkRFUiA8IDAgPyAgXAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxIDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCBRSU5W
QUxfQVJDSF9QQUdFX09SREVSICkKLQogLyogRWFjaCBlbnRyeSBpcyAxNiBi
eXRlcywgc28gMl44IGVudHJpZXMgcGVyIHBhZ2UgKi8KICNkZWZpbmUgUUlO
VkFMX0VOVFJZX09SREVSICAoIFBBR0VfU0hJRlQgLSA0ICkKLSNkZWZpbmUg
UUlOVkFMX0VOVFJZX05SICAgICAoMSA8PCAoUUlOVkFMX1BBR0VfT1JERVIg
KyA4KSkKKyNkZWZpbmUgUUlOVkFMX01BWF9FTlRSWV9OUiAoMXUgPDwgKDcg
KyBRSU5WQUxfRU5UUllfT1JERVIpKQogCiAvKiBTdGF0dXMgZGF0YSBmbGFn
ICovCiAjZGVmaW5lIFFJTlZBTF9TVEFUX0lOSVQgIDAKLS0tIGEveGVuL2Ry
aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCisrKyBiL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpAQCAtMzEsNiArMzEsOSBA
QAogCiAjZGVmaW5lIFZURF9RSV9USU1FT1VUCTEKIAorc3RhdGljIHVuc2ln
bmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX3BnX29yZGVyOworc3RhdGljIHVu
c2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX2VudHJ5X25yOworCiBzdGF0
aWMgaW50IF9fbXVzdF9jaGVjayBpbnZhbGlkYXRlX3N5bmMoc3RydWN0IGlv
bW11ICppb21tdSk7CiAKIHN0YXRpYyB2b2lkIHByaW50X3FpX3JlZ3Moc3Ry
dWN0IGlvbW11ICppb21tdSkKQEAgLTU1LDcgKzU4LDcgQEAgc3RhdGljIHVu
c2lnbmVkIGludCBxaW52YWxfbmV4dF9pbmRleChzdAogICAgIHRhaWwgPj49
IFFJTlZBTF9JTkRFWF9TSElGVDsKIAogICAgIC8qICh0YWlsKzEgPT0gaGVh
ZCkgaW5kaWNhdGVzIGEgZnVsbCBxdWV1ZSwgd2FpdCBmb3IgSFcgKi8KLSAg
ICB3aGlsZSAoICggdGFpbCArIDEgKSAlIFFJTlZBTF9FTlRSWV9OUiA9PQor
ICAgIHdoaWxlICggKCh0YWlsICsgMSkgJiAocWlfZW50cnlfbnIgLSAxKSkg
PT0KICAgICAgICAgICAgICggZG1hcl9yZWFkcShpb21tdS0+cmVnLCBETUFS
X0lRSF9SRUcpID4+IFFJTlZBTF9JTkRFWF9TSElGVCApICkKICAgICAgICAg
Y3B1X3JlbGF4KCk7CiAKQEAgLTY4LDcgKzcxLDcgQEAgc3RhdGljIHZvaWQg
cWludmFsX3VwZGF0ZV9xdGFpbChzdHJ1Y3QgaQogCiAgICAgLyogTmVlZCBo
b2xkIHJlZ2lzdGVyIGxvY2sgd2hlbiB1cGRhdGUgdGFpbCAqLwogICAgIEFT
U0VSVCggc3Bpbl9pc19sb2NrZWQoJmlvbW11LT5yZWdpc3Rlcl9sb2NrKSAp
OwotICAgIHZhbCA9IChpbmRleCArIDEpICUgUUlOVkFMX0VOVFJZX05SOwor
ICAgIHZhbCA9IChpbmRleCArIDEpICYgKHFpX2VudHJ5X25yIC0gMSk7CiAg
ICAgZG1hcl93cml0ZXEoaW9tbXUtPnJlZywgRE1BUl9JUVRfUkVHLCAodmFs
IDw8IFFJTlZBTF9JTkRFWF9TSElGVCkpOwogfQogCkBAIC00MTcsNyArNDIw
LDI3IEBAIGludCBlbmFibGVfcWludmFsKHN0cnVjdCBpb21tdSAqaW9tbXUp
CiAgICAgaWYgKCBxaV9jdHJsLT5xaW52YWxfbWFkZHIgPT0gMCApCiAgICAg
ewogICAgICAgICBkcmhkID0gaW9tbXVfdG9fZHJoZChpb21tdSk7Ci0gICAg
ICAgIHFpX2N0cmwtPnFpbnZhbF9tYWRkciA9IGFsbG9jX3BndGFibGVfbWFk
ZHIoZHJoZCwgUUlOVkFMX0FSQ0hfUEFHRV9OUik7CisgICAgICAgIGlmICgg
IXFpX2VudHJ5X25yICkKKyAgICAgICAgeworICAgICAgICAgICAgLyoKKyAg
ICAgICAgICAgICAqIFdpdGggdGhlIHByZXNlbnQgc3luY2hyb25vdXMgbW9k
ZWwsIHdlIG5lZWQgdHdvIHNsb3RzIGZvciBldmVyeQorICAgICAgICAgICAg
ICogb3BlcmF0aW9uICh0aGUgb3BlcmF0aW9uIGl0c2VsZiBhbmQgYSB3YWl0
IGRlc2NyaXB0b3IpLiAgVGhlcmUKKyAgICAgICAgICAgICAqIGNhbiBiZSBv
bmUgc3VjaCBwYWlyIG9mIHJlcXVlc3RzIHBlbmRpbmcgcGVyIENQVS4gIE9u
ZSBleHRyYQorICAgICAgICAgICAgICogZW50cnkgaXMgbmVlZGVkIGFzIHRo
ZSByaW5nIGlzIGNvbnNpZGVyZWQgZnVsbCB3aGVuIHRoZXJlJ3MKKyAgICAg
ICAgICAgICAqIG9ubHkgb25lIGVudHJ5IGxlZnQuCisgICAgICAgICAgICAg
Ki8KKyAgICAgICAgICAgIEJVSUxEX0JVR19PTihDT05GSUdfTlJfQ1BVUyAq
IDIgPj0gUUlOVkFMX01BWF9FTlRSWV9OUik7CisgICAgICAgICAgICBxaV9w
Z19vcmRlciA9IGdldF9vcmRlcl9mcm9tX2J5dGVzKChudW1fcHJlc2VudF9j
cHVzKCkgKiAyICsgMSkgPDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFBBR0VfU0hJRlQgLQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUUlOVkFM
X0VOVFJZX09SREVSKSk7CisgICAgICAgICAgICBxaV9lbnRyeV9uciA9IDF1
IDw8IChxaV9wZ19vcmRlciArIFFJTlZBTF9FTlRSWV9PUkRFUik7CisKKyAg
ICAgICAgICAgIGRwcmludGsoWEVOTE9HX0lORk8gVlREUFJFRklYLAorICAg
ICAgICAgICAgICAgICAgICAiUUk6IHVzaW5nICV1LWVudHJ5IHJpbmcocylc
biIsIHFpX2VudHJ5X25yKTsKKyAgICAgICAgfQorCisgICAgICAgIHFpX2N0
cmwtPnFpbnZhbF9tYWRkciA9CisgICAgICAgICAgICBhbGxvY19wZ3RhYmxl
X21hZGRyKGRyaGQsIHFpX2VudHJ5X25yID4+IFFJTlZBTF9FTlRSWV9PUkRF
Uik7CiAgICAgICAgIGlmICggcWlfY3RybC0+cWludmFsX21hZGRyID09IDAg
KQogICAgICAgICB7CiAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19XQVJO
SU5HIFZURFBSRUZJWCwKQEAgLTQzMSwxNSArNDU0LDE2IEBAIGludCBlbmFi
bGVfcWludmFsKHN0cnVjdCBpb21tdSAqaW9tbXUpCiAKICAgICBzcGluX2xv
Y2tfaXJxc2F2ZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKIAot
ICAgIC8qIFNldHVwIEludmFsaWRhdGlvbiBRdWV1ZSBBZGRyZXNzKElRQSkg
cmVnaXN0ZXIgd2l0aCB0aGUKLSAgICAgKiBhZGRyZXNzIG9mIHRoZSBwYWdl
IHdlIGp1c3QgYWxsb2NhdGVkLiAgUVMgZmllbGQgYXQKLSAgICAgKiBiaXRz
WzI6MF0gdG8gaW5kaWNhdGUgc2l6ZSBvZiBxdWV1ZSBpcyBvbmUgNEtCIHBh
Z2UuCi0gICAgICogVGhhdCdzIDI1NiBlbnRyaWVzLiAgUXVldWVkIEhlYWQg
KElRSCkgYW5kIFF1ZXVlIFRhaWwgKElRVCkKLSAgICAgKiByZWdpc3RlcnMg
YXJlIGF1dG9tYXRpY2FsbHkgcmVzZXQgdG8gMCB3aXRoIHdyaXRlCi0gICAg
ICogdG8gSVFBIHJlZ2lzdGVyLgorICAgIC8qCisgICAgICogU2V0dXAgSW52
YWxpZGF0aW9uIFF1ZXVlIEFkZHJlc3MgKElRQSkgcmVnaXN0ZXIgd2l0aCB0
aGUgYWRkcmVzcyBvZiB0aGUKKyAgICAgKiBwYWdlcyB3ZSBqdXN0IGFsbG9j
YXRlZC4gIFRoZSBRUyBmaWVsZCBhdCBiaXRzWzI6MF0gaW5kaWNhdGVzIHRo
ZSBzaXplCisgICAgICogKHBhZ2Ugb3JkZXIpIG9mIHRoZSBxdWV1ZS4KKyAg
ICAgKgorICAgICAqIFF1ZXVlZCBIZWFkIChJUUgpIGFuZCBRdWV1ZSBUYWls
IChJUVQpIHJlZ2lzdGVycyBhcmUgYXV0b21hdGljYWxseQorICAgICAqIHJl
c2V0IHRvIDAgd2l0aCB3cml0ZSB0byBJUUEgcmVnaXN0ZXIuCiAgICAgICov
CiAgICAgZG1hcl93cml0ZXEoaW9tbXUtPnJlZywgRE1BUl9JUUFfUkVHLAot
ICAgICAgICAgICAgICAgIHFpX2N0cmwtPnFpbnZhbF9tYWRkciB8IFFJTlZB
TF9QQUdFX09SREVSKTsKKyAgICAgICAgICAgICAgICBxaV9jdHJsLT5xaW52
YWxfbWFkZHIgfCBxaV9wZ19vcmRlcik7CiAKICAgICBkbWFyX3dyaXRlcShp
b21tdS0+cmVnLCBETUFSX0lRVF9SRUcsIDApOwogCg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.11-2.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.11-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHNpemUgY29tbWFuZCBidWZmZXIgZHluYW1pY2FsbHkK
CldpdGggdGhlIHByZXNlbnQgc3luY2hyb25vdXMgbW9kZWwsIHdlIG5lZWQg
dHdvIHNsb3RzIGZvciBldmVyeQpvcGVyYXRpb24gKHRoZSBvcGVyYXRpb24g
aXRzZWxmIGFuZCBhIHdhaXQgY29tbWFuZCkuICBUaGVyZSBjYW4gYmUgb25l
CnN1Y2ggcGFpciBvZiBjb21tYW5kcyBwZW5kaW5nIHBlciBDUFUuIFRvIGVu
c3VyZSB0aGF0IHVuZGVyIGFsbCBub3JtYWwKY2lyY3Vtc3RhbmNlcyBhIHNs
b3QgaXMgYWx3YXlzIGF2YWlsYWJsZSB3aGVuIG9uZSBpcyByZXF1ZXN0ZWQs
IHNpemUgdGhlCmNvbW1hbmQgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJl
ciBvZiBwcmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAv
IENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg
PGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50
IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91
Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0yNCw4ICsyNCw3IEBACiAKIHN0YXRp
YyBpbnQgcXVldWVfaW9tbXVfY29tbWFuZChzdHJ1Y3QgYW1kX2lvbW11ICpp
b21tdSwgdTMyIGNtZFtdKQogewotICAgIHUzMiB0YWlsLCBoZWFkLCAqY21k
X2J1ZmZlcjsKLSAgICBpbnQgaTsKKyAgICB1aW50MzJfdCB0YWlsLCBoZWFk
OwogCiAgICAgdGFpbCA9IGlvbW11LT5jbWRfYnVmZmVyLnRhaWw7CiAgICAg
aWYgKCArK3RhaWwgPT0gaW9tbXUtPmNtZF9idWZmZXIuZW50cmllcyApCkBA
IC0zNSwxMiArMzQsOSBAQCBzdGF0aWMgaW50IHF1ZXVlX2lvbW11X2NvbW1h
bmQoc3RydWN0IGFtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElPTU1VX0NNRF9CVUZGRVJfSEVBRF9PRkZTRVQpKTsKICAgICBp
ZiAoIGhlYWQgIT0gdGFpbCApCiAgICAgewotICAgICAgICBjbWRfYnVmZmVy
ID0gKHUzMiAqKShpb21tdS0+Y21kX2J1ZmZlci5idWZmZXIgKwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoaW9tbXUtPmNtZF9idWZmZXIudGFp
bCAqCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0NNRF9C
VUZGRVJfRU5UUllfU0laRSkpOwotCi0gICAgICAgIGZvciAoIGkgPSAwOyBp
IDwgSU9NTVVfQ01EX0JVRkZFUl9VMzJfUEVSX0VOVFJZOyBpKysgKQotICAg
ICAgICAgICAgY21kX2J1ZmZlcltpXSA9IGNtZFtpXTsKKyAgICAgICAgbWVt
Y3B5KGlvbW11LT5jbWRfYnVmZmVyLmJ1ZmZlciArCisgICAgICAgICAgICAg
ICAoaW9tbXUtPmNtZF9idWZmZXIudGFpbCAqIHNpemVvZihjbWRfZW50cnlf
dCkpLAorICAgICAgICAgICAgICAgY21kLCBzaXplb2YoY21kX2VudHJ5X3Qp
KTsKIAogICAgICAgICBpb21tdS0+Y21kX2J1ZmZlci50YWlsID0gdGFpbDsK
ICAgICAgICAgcmV0dXJuIDE7Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv
dWdoL2FtZC9pb21tdV9pbml0LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro
cm91Z2gvYW1kL2lvbW11X2luaXQuYwpAQCAtMTM2LDcgKzEzNiw3IEBAIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyX2lvbW11X2NtZF9idWZmZXJfaW4KICAgICB3
cml0ZWwoZW50cnksIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DTURfQlVG
RkVSX0JBU0VfTE9XX09GRlNFVCk7CiAKICAgICBwb3dlcl9vZjJfZW50cmll
cyA9IGdldF9vcmRlcl9mcm9tX2J5dGVzKGlvbW11LT5jbWRfYnVmZmVyLmFs
bG9jX3NpemUpICsKLSAgICAgICAgSU9NTVVfQ01EX0JVRkZFUl9QT1dFUl9P
RjJfRU5UUklFU19QRVJfUEFHRTsKKyAgICAgICAgUEFHRV9TSElGVCAtIElP
TU1VX0NNRF9CVUZGRVJfRU5UUllfT1JERVI7CiAKICAgICBlbnRyeSA9IDA7
CiAgICAgaW9tbXVfc2V0X2FkZHJfaGlfdG9fcmVnKCZlbnRyeSwgYWRkcl9o
aSk7CkBAIC0xMDAwLDkgKzEwMDAsMzEgQEAgc3RhdGljIHZvaWQgKiBfX2lu
aXQgYWxsb2NhdGVfcmluZ19idWZmZQogc3RhdGljIHZvaWQgKiBfX2luaXQg
YWxsb2NhdGVfY21kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkK
IHsKICAgICAvKiBhbGxvY2F0ZSAnY29tbWFuZCBidWZmZXInIGluIHBvd2Vy
IG9mIDIgaW5jcmVtZW50cyBvZiA0SyAqLworICAgIHN0YXRpYyB1bnNpZ25l
ZCBpbnQgX19yZWFkX21vc3RseSBucl9lbnRzOworCisgICAgaWYgKCAhbnJf
ZW50cyApCisgICAgeworICAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXI7CisK
KyAgICAgICAgLyoKKyAgICAgICAgICogV2l0aCB0aGUgcHJlc2VudCBzeW5j
aHJvbm91cyBtb2RlbCwgd2UgbmVlZCB0d28gc2xvdHMgZm9yIGV2ZXJ5Cisg
ICAgICAgICAqIG9wZXJhdGlvbiAodGhlIG9wZXJhdGlvbiBpdHNlbGYgYW5k
IGEgd2FpdCBjb21tYW5kKS4gIFRoZXJlIGNhbiBiZQorICAgICAgICAgKiBv
bmUgc3VjaCBwYWlyIG9mIHJlcXVlc3RzIHBlbmRpbmcgcGVyIENQVS4gIE9u
ZSBleHRyYSBlbnRyeSBpcworICAgICAgICAgKiBuZWVkZWQgYXMgdGhlIHJp
bmcgaXMgY29uc2lkZXJlZCBmdWxsIHdoZW4gdGhlcmUncyBvbmx5IG9uZSBl
bnRyeQorICAgICAgICAgKiBsZWZ0LgorICAgICAgICAgKi8KKyAgICAgICAg
QlVJTERfQlVHX09OKENPTkZJR19OUl9DUFVTICogMiA+PSBJT01NVV9DTURf
QlVGRkVSX01BWF9FTlRSSUVTKTsKKyAgICAgICAgb3JkZXIgPSBnZXRfb3Jk
ZXJfZnJvbV9ieXRlcygobnVtX3ByZXNlbnRfY3B1cygpICogMiArIDEpIDw8
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVf
Q01EX0JVRkZFUl9FTlRSWV9PUkRFUik7CisgICAgICAgIG5yX2VudHMgPSAx
dSA8PCAob3JkZXIgKyBQQUdFX1NISUZUIC0gSU9NTVVfQ01EX0JVRkZFUl9F
TlRSWV9PUkRFUik7CisKKyAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJ1c2lu
ZyAldS1lbnRyeSBjbWQgcmluZyhzKVxuIiwgbnJfZW50cyk7CisgICAgfQor
CisgICAgQlVJTERfQlVHX09OKHNpemVvZihjbWRfZW50cnlfdCkgIT0gKDF1
IDw8IElPTU1VX0NNRF9CVUZGRVJfRU5UUllfT1JERVIpKTsKKwogICAgIHJl
dHVybiBhbGxvY2F0ZV9yaW5nX2J1ZmZlcigmaW9tbXUtPmNtZF9idWZmZXIs
IHNpemVvZihjbWRfZW50cnlfdCksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElPTU1VX0NNRF9CVUZGRVJfREVGQVVMVF9FTlRSSUVTLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tbWFuZCBCdWZm
ZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnJfZW50
cywgIkNvbW1hbmQgQnVmZmVyIik7CiB9CiAKIHN0YXRpYyB2b2lkICogX19p
bml0IGFsbG9jYXRlX2V2ZW50X2xvZyhzdHJ1Y3QgYW1kX2lvbW11ICppb21t
dSkKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21t
dS1kZWZzLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2Ft
ZC1pb21tdS1kZWZzLmgKQEAgLTIwLDkgKzIwLDYgQEAKICNpZm5kZWYgX0FT
TV9YODZfNjRfQU1EX0lPTU1VX0RFRlNfSAogI2RlZmluZSBfQVNNX1g4Nl82
NF9BTURfSU9NTVVfREVGU19ICiAKLS8qIElPTU1VIENvbW1hbmQgQnVmZmVy
IGVudHJpZXM6IGluIHBvd2VyIG9mIDIgaW5jcmVtZW50cywgbWluaW11bSBv
ZiAyNTYgKi8KLSNkZWZpbmUgSU9NTVVfQ01EX0JVRkZFUl9ERUZBVUxUX0VO
VFJJRVMJNTEyCi0KIC8qIElPTU1VIEV2ZW50IExvZyBlbnRyaWVzOiBpbiBw
b3dlciBvZiAyIGluY3JlbWVudHMsIG1pbmltdW0gb2YgMjU2ICovCiAjZGVm
aW5lIElPTU1VX0VWRU5UX0xPR19ERUZBVUxUX0VOVFJJRVMgICAgIDUxMgog
CkBAIC0xODUsOSArMTgyLDggQEAKICNkZWZpbmUgSU9NTVVfQ01EX0JVRkZF
Ul9MRU5HVEhfTUFTSwkJMHgwRjAwMDAwMAogI2RlZmluZSBJT01NVV9DTURf
QlVGRkVSX0xFTkdUSF9TSElGVAkJMjQKIAotI2RlZmluZSBJT01NVV9DTURf
QlVGRkVSX0VOVFJZX1NJWkUJCQkxNgotI2RlZmluZSBJT01NVV9DTURfQlVG
RkVSX1BPV0VSX09GMl9FTlRSSUVTX1BFUl9QQUdFCTgKLSNkZWZpbmUgSU9N
TVVfQ01EX0JVRkZFUl9VMzJfUEVSX0VOVFJZIAkoSU9NTVVfQ01EX0JVRkZF
Ul9FTlRSWV9TSVpFIC8gNCkKKyNkZWZpbmUgSU9NTVVfQ01EX0JVRkZFUl9F
TlRSWV9PUkRFUiAgICAgICAgICAgIDQKKyNkZWZpbmUgSU9NTVVfQ01EX0JV
RkZFUl9NQVhfRU5UUklFUyAgICAgICAgICAgICgxdSA8PCAxNSkKIAogI2Rl
ZmluZSBJT01NVV9DTURfT1BDT0RFX01BU0sJCQkweEYwMDAwMDAwCiAjZGVm
aW5lIElPTU1VX0NNRF9PUENPREVfU0hJRlQJCQkyOAo=

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.11-3.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.11-3.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBlbGltaW5hdGUgZmx1c2ggcmVsYXRlZCB0aW1lb3V0cwoKTGVh
dmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24gcGVuZGluZyB3aGVuIGl0
IGFwcGVhcnMgdG8gdGFrZSB0b28KbG9uZyBpcyBwcm9ibGVtYXRpYzogSWYg
ZS5nLiBhIFFJIGNvbW1hbmQgY29tcGxldGVkIGxhdGVyLCB0aGUgd3JpdGUg
dG8KdGhlICJwb2xsIHNsb3QiIG1heSBpbnN0ZWFkIGJlIHVuZGVyc3Rvb2Qg
dG8gc2lnbmFsIGEgc3Vic2VxdWVudGx5CnN0YXJ0ZWQgY29tbWFuZCdzIGNv
bXBsZXRpb24uIEFsc28gb3VyIGFjY291bnRpbmcgb2YgdGhlIHRpbWVvdXQg
cGVyaW9kCndhcyBhY3R1YWxseSB3cm9uZzogV2UgaW5jbHVkZWQgdGhlIHRp
bWUgaXQgdG9vayBmb3IgdGhlIGNvbW1hbmQgdG8KYWN0dWFsbHkgbWFrZSBp
dCB0byB0aGUgZnJvbnQgb2YgdGhlIHF1ZXVlLCB3aGljaCBjb3VsZCBiZSBo
ZWF2aWx5CmFmZmVjdGVkIGJ5IGd1ZXN0cyBvdGhlciB0aGFuIHRoZSBvbmUg
Zm9yIHdoaWNoIHRoZSBmbHVzaCBpcyBiZWluZwpwZXJmb3JtZWQuCgpEbyBh
d2F5IHdpdGggYWxsIHRpbWVvdXQgZGV0ZWN0aW9uIG9uIGFsbCBmbHVzaCBy
ZWxhdGVkIGNvZGUgcGF0aHMuCkxvZyBleGNlc3NpdmVseSBsb25nIHByb2Nl
c3NpbmcgdGltZXMgKHdpdGggYSBwcm9ncmVzc2l2ZSB0aHJlc2hvbGQpIHRv
CmhhdmUgc29tZSBpbmRpY2F0aW9uIG9mIHByb2JsZW1zIGluIHRoaXMgYXJl
YS4KCkFkZGl0aW9uYWxseSBsb2cgKG9uY2UpIGlmIHFpbnZhbF9uZXh0X2lu
ZGV4KCkgZGlkbid0IGltbWVkaWF0ZWx5IGZpbmQKYW4gYXZhaWxhYmxlIHNs
b3QuIFRvZ2V0aGVyIHdpdGggdGhlIGVhcmxpZXIgY2hhbmdlIHNpemluZyB0
aGUgcXVldWUocykKZHluYW1pY2FsbHksIHdlIHNob3VsZCBub3cgaGF2ZSBh
IGd1YXJhbnRlZSB0aGF0IHdpdGggb3VyIGZ1bGx5CnN5bmNocm9ub3VzIG1v
ZGVsIGFueSBkZW1hbmQgZm9yIHNsb3RzIGNhbiBhY3R1YWxseSBiZSBzYXRp
c2ZpZWQuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4
NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5v
cmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5o
CisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmgKQEAg
LTEyNyw2ICsxMjcsMzQgQEAgZG8gewogICAgIH0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
IH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgSU9NTVVfRkxVU0hfV0FJVCh3aGF0
LCBpb21tdSwgb2Zmc2V0LCBvcCwgY29uZCwgc3RzKSAgICAgICBcCitkbyB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQg
X19yZWFkX21vc3RseSB0aHJlc2hvbGQgPSAxOyAgICAgICAgICAgICAgIFwK
KyAgICBzX3RpbWVfdCBzdGFydCA9IE5PVygpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc190aW1lX3QgdGltZW91
dCA9IHN0YXJ0ICsgRE1BUl9PUEVSQVRJT05fVElNRU9VVCAqIHRocmVzaG9s
ZDsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKCA7IDsg
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBz
dHMgPSBvcChpb21tdS0+cmVnLCBvZmZzZXQpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKCBjb25kICkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoIHRpbWVvdXQgJiYg
Tk9XKCkgPiB0aW1lb3V0ICkgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0aHJlc2hv
bGQgfD0gdGhyZXNob2xkIDw8IDE7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBS
RUZJWCAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICAgICAiIElPTU1VIyV1OiAlcyBmbHVzaCB0YWtpbmcgdG9vIGxvbmdcbiIs
ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCB3
aGF0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
ICAgdGltZW91dCA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIGNwdV9yZWxheCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCAhdGltZW91dCAp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklY
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICIgSU9NTVUjJXU6ICVzIGZsdXNoIHRvb2sgJWx1bXNcbiIsICAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIHdoYXQs
IChOT1coKSAtIHN0YXJ0KSAvIDEwMDAwMDAwKTsgICAgXAorfSB3aGlsZSAo
IGZhbHNlICkKKwogaW50IHZ0ZF9od19jaGVjayh2b2lkKTsKIHZvaWQgZGlz
YWJsZV9wbXIoc3RydWN0IGlvbW11ICppb21tdSk7CiBpbnQgaXNfaWdkX2Ry
aGQoc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkKTsKLS0tIGEveGVuL2Ry
aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVuL2RyaXZl
cnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTM1Nyw4ICszNTcsOCBA
QCBzdGF0aWMgdm9pZCBpb21tdV9mbHVzaF93cml0ZV9idWZmZXIoc3RyCiAg
ICAgZG1hcl93cml0ZWwoaW9tbXUtPnJlZywgRE1BUl9HQ01EX1JFRywgdmFs
IHwgRE1BX0dDTURfV0JGKTsKIAogICAgIC8qIE1ha2Ugc3VyZSBoYXJkd2Fy
ZSBjb21wbGV0ZSBpdCAqLwotICAgIElPTU1VX1dBSVRfT1AoaW9tbXUsIERN
QVJfR1NUU19SRUcsIGRtYXJfcmVhZGwsCi0gICAgICAgICAgICAgICAgICAh
KHZhbCAmIERNQV9HU1RTX1dCRlMpLCB2YWwpOworICAgIElPTU1VX0ZMVVNI
X1dBSVQoIndyaXRlIGJ1ZmZlciIsIGlvbW11LCBETUFSX0dTVFNfUkVHLCBk
bWFyX3JlYWRsLAorICAgICAgICAgICAgICAgICAgICAgISh2YWwgJiBETUFf
R1NUU19XQkZTKSwgdmFsKTsKIAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3Rv
cmUoJmlvbW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFncyk7CiB9CkBAIC00MDgs
OCArNDA4LDggQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgZmx1c2hfY29u
dGV4dF9yZQogICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIERNQVJfQ0NN
RF9SRUcsIHZhbCk7CiAKICAgICAvKiBNYWtlIHN1cmUgaGFyZHdhcmUgY29t
cGxldGUgaXQgKi8KLSAgICBJT01NVV9XQUlUX09QKGlvbW11LCBETUFSX0ND
TURfUkVHLCBkbWFyX3JlYWRxLAotICAgICAgICAgICAgICAgICAgISh2YWwg
JiBETUFfQ0NNRF9JQ0MpLCB2YWwpOworICAgIElPTU1VX0ZMVVNIX1dBSVQo
ImNvbnRleHQiLCBpb21tdSwgRE1BUl9DQ01EX1JFRywgZG1hcl9yZWFkcSwK
KyAgICAgICAgICAgICAgICAgICAgICEodmFsICYgRE1BX0NDTURfSUNDKSwg
dmFsKTsKIAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5y
ZWdpc3Rlcl9sb2NrLCBmbGFncyk7CiAgICAgLyogZmx1c2ggY29udGV4dCBl
bnRyeSB3aWxsIGltcGxpY2l0bHkgZmx1c2ggd3JpdGUgYnVmZmVyICovCkBA
IC00OTEsOCArNDkxLDggQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgZmx1
c2hfaW90bGJfcmVnKAogICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIHRs
Yl9vZmZzZXQgKyA4LCB2YWwpOwogCiAgICAgLyogTWFrZSBzdXJlIGhhcmR3
YXJlIGNvbXBsZXRlIGl0ICovCi0gICAgSU9NTVVfV0FJVF9PUChpb21tdSwg
KHRsYl9vZmZzZXQgKyA4KSwgZG1hcl9yZWFkcSwKLSAgICAgICAgICAgICAg
ICAgICEodmFsICYgRE1BX1RMQl9JVlQpLCB2YWwpOworICAgIElPTU1VX0ZM
VVNIX1dBSVQoImlvdGxiIiwgaW9tbXUsICh0bGJfb2Zmc2V0ICsgOCksIGRt
YXJfcmVhZHEsCisgICAgICAgICAgICAgICAgICAgICAhKHZhbCAmIERNQV9U
TEJfSVZUKSwgdmFsKTsKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZp
b21tdS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3MpOwogCiAgICAgLyogY2hlY2sg
SU9UTEIgaW52YWxpZGF0aW9uIGdyYW51bGFyaXR5ICovCi0tLSBhL3hlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYworKysgYi94ZW4vZHJp
dmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMKQEAgLTI5LDggKzI5LDYg
QEAKICNpbmNsdWRlICJleHRlcm4uaCIKICNpbmNsdWRlICIuLi9hdHMuaCIK
IAotI2RlZmluZSBWVERfUUlfVElNRU9VVAkxCi0KIHN0YXRpYyB1bnNpZ25l
ZCBpbnQgX19yZWFkX21vc3RseSBxaV9wZ19vcmRlcjsKIHN0YXRpYyB1bnNp
Z25lZCBpbnQgX19yZWFkX21vc3RseSBxaV9lbnRyeV9ucjsKIApAQCAtNjAs
NyArNTgsMTEgQEAgc3RhdGljIHVuc2lnbmVkIGludCBxaW52YWxfbmV4dF9p
bmRleChzdAogICAgIC8qICh0YWlsKzEgPT0gaGVhZCkgaW5kaWNhdGVzIGEg
ZnVsbCBxdWV1ZSwgd2FpdCBmb3IgSFcgKi8KICAgICB3aGlsZSAoICgodGFp
bCArIDEpICYgKHFpX2VudHJ5X25yIC0gMSkpID09CiAgICAgICAgICAgICAo
IGRtYXJfcmVhZHEoaW9tbXUtPnJlZywgRE1BUl9JUUhfUkVHKSA+PiBRSU5W
QUxfSU5ERVhfU0hJRlQgKSApCisgICAgeworICAgICAgICBwcmludGtfb25j
ZShYRU5MT0dfRVJSIFZURFBSRUZJWCAiIElPTU1VIyV1OiBubyBRSSBzbG90
IGF2YWlsYWJsZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgaW9tbXUtPmlu
ZGV4KTsKICAgICAgICAgY3B1X3JlbGF4KCk7CisgICAgfQogCiAgICAgcmV0
dXJuIHRhaWw7CiB9CkBAIC0xODAsMjMgKzE4MiwzMiBAQCBzdGF0aWMgaW50
IF9fbXVzdF9jaGVjayBxdWV1ZV9pbnZhbGlkYXRlCiAgICAgLyogTm93IHdl
IGRvbid0IHN1cHBvcnQgaW50ZXJydXB0IG1ldGhvZCAqLwogICAgIGlmICgg
c3cgKQogICAgIHsKLSAgICAgICAgc190aW1lX3QgdGltZW91dDsKLQotICAg
ICAgICAvKiBJbiBjYXNlIGFsbCB3YWl0IGRlc2NyaXB0b3Igd3JpdGVzIHRv
IHNhbWUgYWRkciB3aXRoIHNhbWUgZGF0YSAqLwotICAgICAgICB0aW1lb3V0
ID0gTk9XKCkgKyBNSUxMSVNFQ1MoZmx1c2hfZGV2X2lvdGxiID8KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvbW11X2Rldl9pb3Rs
Yl90aW1lb3V0IDogVlREX1FJX1RJTUVPVVQpOworICAgICAgICBzdGF0aWMg
dW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgdGhyZXNob2xkID0gMTsKKyAg
ICAgICAgc190aW1lX3Qgc3RhcnQgPSBOT1coKTsKKyAgICAgICAgc190aW1l
X3QgdGltZW91dCA9IHN0YXJ0ICsgKGZsdXNoX2Rldl9pb3RsYgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpb21tdV9kZXZfaW90
bGJfdGltZW91dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOiAxMDApICogTUlMTElTRUNTKHRocmVzaG9sZCk7CiAKICAgICAgICAg
d2hpbGUgKCBBQ0NFU1NfT05DRSgqdGhpc19wb2xsX3Nsb3QpICE9IFFJTlZB
TF9TVEFUX0RPTkUgKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIE5P
VygpID4gdGltZW91dCApCisgICAgICAgICAgICBpZiAoIHRpbWVvdXQgJiYg
Tk9XKCkgPiB0aW1lb3V0ICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBwcmludF9xaV9yZWdzKGlvbW11KTsKKyAgICAgICAgICAgICAgICB0
aHJlc2hvbGQgfD0gdGhyZXNob2xkIDw8IDE7CiAgICAgICAgICAgICAgICAg
cHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWAotICAgICAgICAgICAg
ICAgICAgICAgICAiIFF1ZXVlIGludmFsaWRhdGUgd2FpdCBkZXNjcmlwdG9y
IHRpbWVkIG91dFxuIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC1FVElN
RURPVVQ7CisgICAgICAgICAgICAgICAgICAgICAgICIgSU9NTVUjJXU6IFFJ
JXMgd2FpdCBkZXNjcmlwdG9yIHRha2luZyB0b28gbG9uZ1xuIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCBmbHVzaF9kZXZfaW90
bGIgPyAiIGRldiIgOiAiIik7CisgICAgICAgICAgICAgICAgcHJpbnRfcWlf
cmVncyhpb21tdSk7CisgICAgICAgICAgICAgICAgdGltZW91dCA9IDA7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBjcHVfcmVsYXgoKTsKICAgICAg
ICAgfQorCisgICAgICAgIGlmICggIXRpbWVvdXQgKQorICAgICAgICAgICAg
cHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWAorICAgICAgICAgICAg
ICAgICAgICIgSU9NTVUjJXU6IFFJJXMgd2FpdCBkZXNjcmlwdG9yIHRvb2sg
JWx1bXNcbiIsCisgICAgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCBm
bHVzaF9kZXZfaW90bGIgPyAiIGRldiIgOiAiIiwKKyAgICAgICAgICAgICAg
ICAgICAoTk9XKCkgLSBzdGFydCkgLyAxMDAwMDAwMCk7CisKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.11-4.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.11-4.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHdhaXQgZm9yIGNvbW1hbmQgc2xvdCB0byBiZSBhdmFp
bGFibGUKCk5vIGNhbGxlciBjYXJlZCBhYm91dCBzZW5kX2lvbW11X2NvbW1h
bmQoKSBpbmRpY2F0aW5nIHVuYXZhaWxhYmlsaXR5IG9mCmEgc2xvdC4gSGVu
Y2UgaWYgYSBzdWZmaWNpZW50IG51bWJlciBwcmlvciBjb21tYW5kcyB0aW1l
ZCBvdXQsIHdlIGRpZApibGluZGx5IGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0
ZWQgY29tbWFuZCB3YXMgc3VibWl0dGVkIHRvIHRoZSBJT01NVQp3aGVuIHJl
YWxseSBpdCB3YXNuJ3QuIFRoaXMgY291bGQgbWVhbiBib3RoIGEgaGFuZ2lu
ZyBzeXN0ZW0gKHdhaXRpbmcKZm9yIGEgY29tbWFuZCB0byBjb21wbGV0ZSB0
aGF0IHdhcyBuZXZlciBzZWVuIGJ5IHRoZSBJT01NVSkgb3IgYmxpbmRseQpw
cm9wYWdhdGluZyBzdWNjZXNzIGJhY2sgdG8gY2FsbGVycywgbWFraW5nIHRo
ZW0gYmVsaWV2ZSB0aGV5J3JlIGZpbmUKdG8gZS5nLiBmcmVlIHByZXZpb3Vz
bHkgdW5tYXBwZWQgcGFnZXMuCgpGb2xkIHRoZSB0aHJlZSBpbnZvbHZlZCBm
dW5jdGlvbnMgaW50byBvbmUsIGFkZCBzcGluIHdhaXRpbmcgZm9yIGFuCmF2
YWlsYWJsZSBzbG90IGFsb25nIHRoZSBsaW5lcyBvZiBWVC1kJ3MgcWludmFs
X25leHRfaW5kZXgoKSwgYW5kIGFzIGEKY29uc2VxdWVuY2UgZHJvcCBhbGwg
ZXJyb3IgaW5kaWNhdG9yIHJldHVybiB0eXBlcy92YWx1ZXMuCgpUaGlzIGlz
IHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9m
Zi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdl
ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0yMiw0
OCArMjIsMzYgQEAKICNpbmNsdWRlIDxhc20vaHZtL3N2bS9hbWQtaW9tbXUt
cHJvdG8uaD4KICNpbmNsdWRlICIuLi9hdHMuaCIKIAotc3RhdGljIGludCBx
dWV1ZV9pb21tdV9jb21tYW5kKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1
MzIgY21kW10pCitzdGF0aWMgdm9pZCBzZW5kX2lvbW11X2NvbW1hbmQoc3Ry
dWN0IGFtZF9pb21tdSAqaW9tbXUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgdWludDMyX3QgY21kWzRdKQogewotICAgIHVpbnQz
Ml90IHRhaWwsIGhlYWQ7CisgICAgdWludDMyX3QgdGFpbDsKIAogICAgIHRh
aWwgPSBpb21tdS0+Y21kX2J1ZmZlci50YWlsOwogICAgIGlmICggKyt0YWls
ID09IGlvbW11LT5jbWRfYnVmZmVyLmVudHJpZXMgKQogICAgICAgICB0YWls
ID0gMDsKIAotICAgIGhlYWQgPSBpb21tdV9nZXRfcmJfcG9pbnRlcihyZWFk
bChpb21tdS0+bW1pb19iYXNlICsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSU9NTVVfQ01EX0JVRkZFUl9IRUFEX09GRlNFVCkp
OwotICAgIGlmICggaGVhZCAhPSB0YWlsICkKKyAgICB3aGlsZSAoIHRhaWwg
PT0gaW9tbXVfZ2V0X3JiX3BvaW50ZXIocmVhZGwoaW9tbXUtPm1taW9fYmFz
ZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElPTU1VX0NNRF9CVUZGRVJfSEVBRF9PRkZTRVQpKSApCiAgICAg
ewotICAgICAgICBtZW1jcHkoaW9tbXUtPmNtZF9idWZmZXIuYnVmZmVyICsK
LSAgICAgICAgICAgICAgIChpb21tdS0+Y21kX2J1ZmZlci50YWlsICogc2l6
ZW9mKGNtZF9lbnRyeV90KSksCi0gICAgICAgICAgICAgICBjbWQsIHNpemVv
ZihjbWRfZW50cnlfdCkpOwotCi0gICAgICAgIGlvbW11LT5jbWRfYnVmZmVy
LnRhaWwgPSB0YWlsOwotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgcHJp
bnRrX29uY2UoWEVOTE9HX0VSUgorICAgICAgICAgICAgICAgICAgICAiQU1E
IElPTU1VICUwNHg6JTAyeDolMDJ4LiV1OiBubyBjbWQgc2xvdCBhdmFpbGFi
bGVcbiIsCisgICAgICAgICAgICAgICAgICAgIGlvbW11LT5zZWcsIFBDSV9C
VVMoaW9tbXUtPmJkZiksCisgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9U
KGlvbW11LT5iZGYpLCBQQ0lfRlVOQyhpb21tdS0+YmRmKSk7CisgICAgICAg
IGNwdV9yZWxheCgpOwogICAgIH0KIAotICAgIHJldHVybiAwOwotfQorICAg
IG1lbWNweShpb21tdS0+Y21kX2J1ZmZlci5idWZmZXIgKworICAgICAgICAg
ICAoaW9tbXUtPmNtZF9idWZmZXIudGFpbCAqIHNpemVvZihjbWRfZW50cnlf
dCkpLAorICAgICAgICAgICBjbWQsIHNpemVvZihjbWRfZW50cnlfdCkpOwog
Ci1zdGF0aWMgdm9pZCBjb21taXRfaW9tbXVfY29tbWFuZF9idWZmZXIoc3Ry
dWN0IGFtZF9pb21tdSAqaW9tbXUpCi17Ci0gICAgdTMyIHRhaWwgPSAwOwor
ICAgIGlvbW11LT5jbWRfYnVmZmVyLnRhaWwgPSB0YWlsOwogCisgICAgdGFp
bCA9IDA7CiAgICAgaW9tbXVfc2V0X3JiX3BvaW50ZXIoJnRhaWwsIGlvbW11
LT5jbWRfYnVmZmVyLnRhaWwpOwogICAgIHdyaXRlbCh0YWlsLCBpb21tdS0+
bW1pb19iYXNlK0lPTU1VX0NNRF9CVUZGRVJfVEFJTF9PRkZTRVQpOwogfQog
Ci1pbnQgc2VuZF9pb21tdV9jb21tYW5kKHN0cnVjdCBhbWRfaW9tbXUgKmlv
bW11LCB1MzIgY21kW10pCi17Ci0gICAgaWYgKCBxdWV1ZV9pb21tdV9jb21t
YW5kKGlvbW11LCBjbWQpICkKLSAgICB7Ci0gICAgICAgIGNvbW1pdF9pb21t
dV9jb21tYW5kX2J1ZmZlcihpb21tdSk7Ci0gICAgICAgIHJldHVybiAxOwot
ICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCiBzdGF0aWMgdm9pZCBmbHVz
aF9jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKIHsK
ICAgICB1MzIgY21kWzRdLCBzdGF0dXM7Cg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.11-5.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.11-5.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IGRyb3AgY29tbWFuZCBjb21wbGV0aW9uIHRpbWVvdXQK
CkZpcnN0IGFuZCBmb3JlbW9zdCAtIHN1Y2ggdGltZW91dHMgd2VyZSBub3Qg
c2lnbmFsZWQgdG8gY2FsbGVycywgbWFraW5nCnRoZW0gYmVsaWV2ZSB0aGV5
J3JlIGZpbmUgdG8gZS5nLiBmcmVlIHByZXZpb3VzbHkgdW5tYXBwZWQgcGFn
ZXMuCgpNaXJyb3IgVlQtZCdzIGJlaGF2aW9yOiBBIGZpeGVkIG51bWJlciBv
ZiBsb29wIGl0ZXJhdGlvbnMgaXMgbm90IGEKc3VpdGFibGUgd2F5IHRvIGRl
dGVjdCB0aW1lb3V0cyBpbiBhbiBlbnZpcm9ubWVudCAoQ1BVIGFuZCBidXMg
c3BlZWRzKQppbmRlcGVuZGVudCBtYW5uZXIgYW55d2F5LiBGdXJ0aGVybW9y
ZSwgbGVhdmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24KcGVuZGluZyB3
aGVuIGl0IGFwcGVhcnMgdG8gdGFrZSB0b28gbG9uZyBpcyBwcm9ibGVtYXRp
YzogSWYgYSBjb21tYW5kCmNvbXBsZXRlZCBsYXRlciwgdGhlIHNpZ25hbGlu
ZyBvZiBpdHMgY29tcGxldGlvbiBtYXkgaW5zdGVhZCBiZQp1bmRlcnN0b29k
IHRvIHNpZ25hbCBhIHN1YnNlcXVlbnRseSBzdGFydGVkIGNvbW1hbmQncyBj
b21wbGV0aW9uLgoKTG9nIGV4Y2Vzc2l2ZWx5IGxvbmcgcHJvY2Vzc2luZyB0
aW1lcyAod2l0aCBhIHByb2dyZXNzaXZlIHRocmVzaG9sZCkgdG8KaGF2ZSBz
b21lIGluZGljYXRpb24gb2YgcHJvYmxlbXMgaW4gdGhpcyBhcmVhLiBBbGxv
dyBjYWxsZXJzIHRvIHNwZWNpZnkKYSBub24tZGVmYXVsdCB0aW1lb3V0IGJp
YXMgZm9yIHRoaXMgbG9nZ2luZywgdXNpbmcgdGhlIHNhbWUgdmFsdWVzIGFz
ClZULWQgZG9lcywgd2hpY2ggaW4gcGFydGljdWxhciBtZWFucyBhIChieSBk
ZWZhdWx0KSBtdWNoIGxhcmdlciB2YWx1ZQpmb3IgZGV2aWNlIElPIFRMQiBp
bnZhbGlkYXRpb24uCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv
aW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k
L2lvbW11X2NtZC5jCkBAIC01MiwxMCArNTIsMTIgQEAgc3RhdGljIHZvaWQg
c2VuZF9pb21tdV9jb21tYW5kKHN0cnVjdCBhbQogICAgIHdyaXRlbCh0YWls
LCBpb21tdS0+bW1pb19iYXNlK0lPTU1VX0NNRF9CVUZGRVJfVEFJTF9PRkZT
RVQpOwogfQogCi1zdGF0aWMgdm9pZCBmbHVzaF9jb21tYW5kX2J1ZmZlcihz
dHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3N0YXRpYyB2b2lkIGZsdXNoX2Nv
bW1hbmRfYnVmZmVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHRpbWVv
dXRfYmFzZSkKIHsKLSAgICB1MzIgY21kWzRdLCBzdGF0dXM7Ci0gICAgaW50
IGxvb3BfY291bnQsIGNvbXBfd2FpdDsKKyAgICB1aW50MzJfdCBjbWRbNF07
CisgICAgc190aW1lX3Qgc3RhcnQsIHRpbWVvdXQ7CisgICAgc3RhdGljIHVu
c2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHRocmVzaG9sZCA9IDE7CiAKICAg
ICAvKiBSVzFDICdDb21XYWl0SW50JyBpbiBzdGF0dXMgcmVnaXN0ZXIgKi8K
ICAgICB3cml0ZWwoSU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlRfTUFTSywK
QEAgLTcxLDI0ICs3MywzMSBAQCBzdGF0aWMgdm9pZCBmbHVzaF9jb21tYW5k
X2J1ZmZlcihzdHJ1Y3QKICAgICAgICAgICAgICAgICAgICAgICAgICBJT01N
VV9DT01QX1dBSVRfSV9GTEFHX1NISUZULCAmY21kWzBdKTsKICAgICBzZW5k
X2lvbW11X2NvbW1hbmQoaW9tbXUsIGNtZCk7CiAKLSAgICAvKiBNYWtlIGxv
b3BfY291bnQgbG9uZyBlbm91Z2ggZm9yIHBvbGxpbmcgY29tcGxldGlvbiB3
YWl0IGJpdCAqLwotICAgIGxvb3BfY291bnQgPSAxMDAwOwotICAgIGRvIHsK
LSAgICAgICAgc3RhdHVzID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIElP
TU1VX1NUQVRVU19NTUlPX09GRlNFVCk7Ci0gICAgICAgIGNvbXBfd2FpdCA9
IGdldF9maWVsZF9mcm9tX3JlZ191MzIoc3RhdHVzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1NUQVRVU19D
T01QX1dBSVRfSU5UX01BU0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlRf
U0hJRlQpOwotICAgICAgICAtLWxvb3BfY291bnQ7Ci0gICAgfSB3aGlsZSAo
ICFjb21wX3dhaXQgJiYgbG9vcF9jb3VudCApOwotCi0gICAgaWYgKCBjb21w
X3dhaXQgKQorICAgIHN0YXJ0ID0gTk9XKCk7CisgICAgdGltZW91dCA9IHN0
YXJ0ICsgKHRpbWVvdXRfYmFzZSA/OiAxMDApICogTUlMTElTRUNTKHRocmVz
aG9sZCk7CisgICAgd2hpbGUgKCAhKHJlYWRsKGlvbW11LT5tbWlvX2Jhc2Ug
KyBJT01NVV9TVEFUVVNfTU1JT19PRkZTRVQpICYKKyAgICAgICAgICAgICAg
SU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlRfTUFTSykgKQogICAgIHsKLSAg
ICAgICAgLyogUlcxQyAnQ29tV2FpdEludCcgaW4gc3RhdHVzIHJlZ2lzdGVy
ICovCi0gICAgICAgIHdyaXRlbChJT01NVV9TVEFUVVNfQ09NUF9XQUlUX0lO
VF9NQVNLLAotICAgICAgICAgICAgICAgaW9tbXUtPm1taW9fYmFzZSArIElP
TU1VX1NUQVRVU19NTUlPX09GRlNFVCk7Ci0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgaWYgKCB0aW1lb3V0ICYmIE5PVygpID4gdGltZW91dCApCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHRocmVzaG9sZCB8PSB0aHJlc2hvbGQgPDwg
MTsKKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORworICAgICAg
ICAgICAgICAgICAgICJBTUQgSU9NTVUgJTA0eDolMDJ4OiUwMnguJXU6ICVz
Y29tcGxldGlvbiB3YWl0IHRha2luZyB0b28gbG9uZ1xuIiwKKyAgICAgICAg
ICAgICAgICAgICBpb21tdS0+c2VnLCBQQ0lfQlVTKGlvbW11LT5iZGYpLAor
ICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGlvbW11LT5iZGYpLCBQQ0lf
RlVOQyhpb21tdS0+YmRmKSwKKyAgICAgICAgICAgICAgICAgICB0aW1lb3V0
X2Jhc2UgPyAiaW90bGIgIiA6ICIiKTsKKyAgICAgICAgICAgIHRpbWVvdXQg
PSAwOworICAgICAgICB9CisgICAgICAgIGNwdV9yZWxheCgpOwogICAgIH0K
LSAgICBBTURfSU9NTVVfREVCVUcoIldhcm5pbmc6IENvbVdhaXRJbnQgYml0
IGRpZCBub3QgYXNzZXJ0IVxuIik7CisKKyAgICBpZiAoICF0aW1lb3V0ICkK
KyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCisgICAgICAgICAgICAg
ICAiQU1EIElPTU1VICUwNHg6JTAyeDolMDJ4LiV1OiAlc2NvbXBsZXRpb24g
d2FpdCB0b29rICVsdW1zXG4iLAorICAgICAgICAgICAgICAgaW9tbXUtPnNl
ZywgUENJX0JVUyhpb21tdS0+YmRmKSwKKyAgICAgICAgICAgICAgIFBDSV9T
TE9UKGlvbW11LT5iZGYpLCBQQ0lfRlVOQyhpb21tdS0+YmRmKSwKKyAgICAg
ICAgICAgICAgIHRpbWVvdXRfYmFzZSA/ICJpb3RsYiAiIDogIiIsCisgICAg
ICAgICAgICAgICAoTk9XKCkgLSBzdGFydCkgLyAxMDAwMDAwMCk7CiB9CiAK
IC8qIEJ1aWxkIGxvdyBsZXZlbCBpb21tdSBjb21tYW5kIG1lc3NhZ2VzICov
CkBAIC0zMDAsNyArMzA5LDcgQEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfaW90
bGIodTggZGV2Zm4sIGNvbgogICAgIC8qIHNlbmQgSU5WQUxJREFURV9JT1RM
Ql9QQUdFUyBjb21tYW5kICovCiAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlv
bW11LT5sb2NrLCBmbGFncyk7CiAgICAgaW52YWxpZGF0ZV9pb3RsYl9wYWdl
cyhpb21tdSwgbWF4cGVuZCwgMCwgcXVldWVpZCwgZ2FkZHIsIHJlcV9pZCwg
b3JkZXIpOwotICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAg
ICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSwgaW9tbXVfZGV2X2lvdGxi
X3RpbWVvdXQpOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11
LT5sb2NrLCBmbGFncyk7CiB9CiAKQEAgLTMzNyw3ICszNDYsNyBAQCBzdGF0
aWMgdm9pZCBfYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKHN0cnVjCiAgICAgewog
ICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdz
KTsKICAgICAgICAgaW52YWxpZGF0ZV9pb21tdV9wYWdlcyhpb21tdSwgZ2Fk
ZHIsIGRvbV9pZCwgb3JkZXIpOwotICAgICAgICBmbHVzaF9jb21tYW5kX2J1
ZmZlcihpb21tdSk7CisgICAgICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlv
bW11LCAwKTsKICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9t
bXUtPmxvY2ssIGZsYWdzKTsKICAgICB9CiAKQEAgLTM2MSw3ICszNzAsNyBA
QCB2b2lkIGFtZF9pb21tdV9mbHVzaF9kZXZpY2Uoc3RydWN0IGFtZF9pCiAg
ICAgQVNTRVJUKCBzcGluX2lzX2xvY2tlZCgmaW9tbXUtPmxvY2spICk7CiAK
ICAgICBpbnZhbGlkYXRlX2Rldl90YWJsZV9lbnRyeShpb21tdSwgYmRmKTsK
LSAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSk7CisgICAgZmx1c2hf
Y29tbWFuZF9idWZmZXIoaW9tbXUsIDApOwogfQogCiB2b2lkIGFtZF9pb21t
dV9mbHVzaF9pbnRyZW1hcChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdWlu
dDE2X3QgYmRmKQpAQCAtMzY5LDcgKzM3OCw3IEBAIHZvaWQgYW1kX2lvbW11
X2ZsdXNoX2ludHJlbWFwKHN0cnVjdCBhbWQKICAgICBBU1NFUlQoIHNwaW5f
aXNfbG9ja2VkKCZpb21tdS0+bG9jaykgKTsKIAogICAgIGludmFsaWRhdGVf
aW50ZXJydXB0X3RhYmxlKGlvbW11LCBiZGYpOwotICAgIGZsdXNoX2NvbW1h
bmRfYnVmZmVyKGlvbW11KTsKKyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihp
b21tdSwgMCk7CiB9CiAKIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9jYWNo
ZXMoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCkBAIC0zNzcsNyArMzg2LDcg
QEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgYQog
ICAgIEFTU0VSVCggc3Bpbl9pc19sb2NrZWQoJmlvbW11LT5sb2NrKSApOwog
CiAgICAgaW52YWxpZGF0ZV9pb21tdV9hbGwoaW9tbXUpOwotICAgIGZsdXNo
X2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAgICBmbHVzaF9jb21tYW5kX2J1
ZmZlcihpb21tdSwgMCk7CiB9CiAKIHZvaWQgYW1kX2lvbW11X3NlbmRfZ3Vl
c3RfY21kKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1MzIgY21kW10pCkBA
IC0zODcsNyArMzk2LDggQEAgdm9pZCBhbWRfaW9tbXVfc2VuZF9ndWVzdF9j
bWQoc3RydWN0IGFtZAogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpb21tdS0+
bG9jaywgZmxhZ3MpOwogCiAgICAgc2VuZF9pb21tdV9jb21tYW5kKGlvbW11
LCBjbWQpOwotICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAg
ICAvKiBUQkQ6IFRpbWVvdXQgc2VsZWN0aW9uIG1heSByZXF1aXJlIHBlZWtp
bmcgaW50byBjbWRbXS4gKi8KKyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihp
b21tdSwgMCk7CiAKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21t
dS0+bG9jaywgZmxhZ3MpOwogfQo=

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.12-1.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.12-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBzaXplIHFpbnZhbCBxdWV1ZSBkeW5hbWljYWxseQoKV2l0aCB0
aGUgcHJlc2VudCBzeW5jaHJvbm91cyBtb2RlbCwgd2UgbmVlZCB0d28gc2xv
dHMgZm9yIGV2ZXJ5Cm9wZXJhdGlvbiAodGhlIG9wZXJhdGlvbiBpdHNlbGYg
YW5kIGEgd2FpdCBkZXNjcmlwdG9yKS4gIFRoZXJlIGNhbiBiZQpvbmUgc3Vj
aCBwYWlyIG9mIHJlcXVlc3RzIHBlbmRpbmcgcGVyIENQVS4gVG8gZW5zdXJl
IHRoYXQgdW5kZXIgYWxsCm5vcm1hbCBjaXJjdW1zdGFuY2VzIGEgc2xvdCBp
cyBhbHdheXMgYXZhaWxhYmxlIHdoZW4gb25lIGlzIHJlcXVlc3RlZCwKc2l6
ZSB0aGUgcXVldWUgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBw
cmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv
aW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t
bXUuaApAQCAtNDUwLDE3ICs0NTAsOSBAQCBzdHJ1Y3QgcWludmFsX2VudHJ5
IHsKICAgICB9cTsKIH07CiAKLS8qIE9yZGVyIG9mIHF1ZXVlIGludmFsaWRh
dGlvbiBwYWdlcyhtYXggaXMgOCkgKi8KLSNkZWZpbmUgUUlOVkFMX1BBR0Vf
T1JERVIgICAyCi0KLSNkZWZpbmUgUUlOVkFMX0FSQ0hfUEFHRV9PUkRFUiAg
KFFJTlZBTF9QQUdFX09SREVSICsgUEFHRV9TSElGVF80SyAtIFBBR0VfU0hJ
RlQpCi0jZGVmaW5lIFFJTlZBTF9BUkNIX1BBR0VfTlIgICAgICggUUlOVkFM
X0FSQ0hfUEFHRV9PUkRFUiA8IDAgPyAgXAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxIDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCBRSU5W
QUxfQVJDSF9QQUdFX09SREVSICkKLQogLyogRWFjaCBlbnRyeSBpcyAxNiBi
eXRlcywgc28gMl44IGVudHJpZXMgcGVyIHBhZ2UgKi8KICNkZWZpbmUgUUlO
VkFMX0VOVFJZX09SREVSICAoIFBBR0VfU0hJRlQgLSA0ICkKLSNkZWZpbmUg
UUlOVkFMX0VOVFJZX05SICAgICAoMSA8PCAoUUlOVkFMX1BBR0VfT1JERVIg
KyA4KSkKKyNkZWZpbmUgUUlOVkFMX01BWF9FTlRSWV9OUiAoMXUgPDwgKDcg
KyBRSU5WQUxfRU5UUllfT1JERVIpKQogCiAvKiBTdGF0dXMgZGF0YSBmbGFn
ICovCiAjZGVmaW5lIFFJTlZBTF9TVEFUX0lOSVQgIDAKLS0tIGEveGVuL2Ry
aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCisrKyBiL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpAQCAtMzEsNiArMzEsOSBA
QAogCiAjZGVmaW5lIFZURF9RSV9USU1FT1VUCTEKIAorc3RhdGljIHVuc2ln
bmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX3BnX29yZGVyOworc3RhdGljIHVu
c2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX2VudHJ5X25yOworCiBzdGF0
aWMgaW50IF9fbXVzdF9jaGVjayBpbnZhbGlkYXRlX3N5bmMoc3RydWN0IGlv
bW11ICppb21tdSk7CiAKIHN0YXRpYyB2b2lkIHByaW50X3FpX3JlZ3Moc3Ry
dWN0IGlvbW11ICppb21tdSkKQEAgLTU1LDcgKzU4LDcgQEAgc3RhdGljIHVu
c2lnbmVkIGludCBxaW52YWxfbmV4dF9pbmRleChzdAogICAgIHRhaWwgPj49
IFFJTlZBTF9JTkRFWF9TSElGVDsKIAogICAgIC8qICh0YWlsKzEgPT0gaGVh
ZCkgaW5kaWNhdGVzIGEgZnVsbCBxdWV1ZSwgd2FpdCBmb3IgSFcgKi8KLSAg
ICB3aGlsZSAoICggdGFpbCArIDEgKSAlIFFJTlZBTF9FTlRSWV9OUiA9PQor
ICAgIHdoaWxlICggKCh0YWlsICsgMSkgJiAocWlfZW50cnlfbnIgLSAxKSkg
PT0KICAgICAgICAgICAgICggZG1hcl9yZWFkcShpb21tdS0+cmVnLCBETUFS
X0lRSF9SRUcpID4+IFFJTlZBTF9JTkRFWF9TSElGVCApICkKICAgICAgICAg
Y3B1X3JlbGF4KCk7CiAKQEAgLTY4LDcgKzcxLDcgQEAgc3RhdGljIHZvaWQg
cWludmFsX3VwZGF0ZV9xdGFpbChzdHJ1Y3QgaQogCiAgICAgLyogTmVlZCBo
b2xkIHJlZ2lzdGVyIGxvY2sgd2hlbiB1cGRhdGUgdGFpbCAqLwogICAgIEFT
U0VSVCggc3Bpbl9pc19sb2NrZWQoJmlvbW11LT5yZWdpc3Rlcl9sb2NrKSAp
OwotICAgIHZhbCA9IChpbmRleCArIDEpICUgUUlOVkFMX0VOVFJZX05SOwor
ICAgIHZhbCA9IChpbmRleCArIDEpICYgKHFpX2VudHJ5X25yIC0gMSk7CiAg
ICAgZG1hcl93cml0ZXEoaW9tbXUtPnJlZywgRE1BUl9JUVRfUkVHLCAodmFs
IDw8IFFJTlZBTF9JTkRFWF9TSElGVCkpOwogfQogCkBAIC00MTcsNyArNDIw
LDI3IEBAIGludCBlbmFibGVfcWludmFsKHN0cnVjdCBpb21tdSAqaW9tbXUp
CiAgICAgaWYgKCBxaV9jdHJsLT5xaW52YWxfbWFkZHIgPT0gMCApCiAgICAg
ewogICAgICAgICBkcmhkID0gaW9tbXVfdG9fZHJoZChpb21tdSk7Ci0gICAg
ICAgIHFpX2N0cmwtPnFpbnZhbF9tYWRkciA9IGFsbG9jX3BndGFibGVfbWFk
ZHIoZHJoZCwgUUlOVkFMX0FSQ0hfUEFHRV9OUik7CisgICAgICAgIGlmICgg
IXFpX2VudHJ5X25yICkKKyAgICAgICAgeworICAgICAgICAgICAgLyoKKyAg
ICAgICAgICAgICAqIFdpdGggdGhlIHByZXNlbnQgc3luY2hyb25vdXMgbW9k
ZWwsIHdlIG5lZWQgdHdvIHNsb3RzIGZvciBldmVyeQorICAgICAgICAgICAg
ICogb3BlcmF0aW9uICh0aGUgb3BlcmF0aW9uIGl0c2VsZiBhbmQgYSB3YWl0
IGRlc2NyaXB0b3IpLiAgVGhlcmUKKyAgICAgICAgICAgICAqIGNhbiBiZSBv
bmUgc3VjaCBwYWlyIG9mIHJlcXVlc3RzIHBlbmRpbmcgcGVyIENQVS4gIE9u
ZSBleHRyYQorICAgICAgICAgICAgICogZW50cnkgaXMgbmVlZGVkIGFzIHRo
ZSByaW5nIGlzIGNvbnNpZGVyZWQgZnVsbCB3aGVuIHRoZXJlJ3MKKyAgICAg
ICAgICAgICAqIG9ubHkgb25lIGVudHJ5IGxlZnQuCisgICAgICAgICAgICAg
Ki8KKyAgICAgICAgICAgIEJVSUxEX0JVR19PTihDT05GSUdfTlJfQ1BVUyAq
IDIgPj0gUUlOVkFMX01BWF9FTlRSWV9OUik7CisgICAgICAgICAgICBxaV9w
Z19vcmRlciA9IGdldF9vcmRlcl9mcm9tX2J5dGVzKChudW1fcHJlc2VudF9j
cHVzKCkgKiAyICsgMSkgPDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFBBR0VfU0hJRlQgLQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUUlOVkFM
X0VOVFJZX09SREVSKSk7CisgICAgICAgICAgICBxaV9lbnRyeV9uciA9IDF1
IDw8IChxaV9wZ19vcmRlciArIFFJTlZBTF9FTlRSWV9PUkRFUik7CisKKyAg
ICAgICAgICAgIGRwcmludGsoWEVOTE9HX0lORk8gVlREUFJFRklYLAorICAg
ICAgICAgICAgICAgICAgICAiUUk6IHVzaW5nICV1LWVudHJ5IHJpbmcocylc
biIsIHFpX2VudHJ5X25yKTsKKyAgICAgICAgfQorCisgICAgICAgIHFpX2N0
cmwtPnFpbnZhbF9tYWRkciA9CisgICAgICAgICAgICBhbGxvY19wZ3RhYmxl
X21hZGRyKGRyaGQsIHFpX2VudHJ5X25yID4+IFFJTlZBTF9FTlRSWV9PUkRF
Uik7CiAgICAgICAgIGlmICggcWlfY3RybC0+cWludmFsX21hZGRyID09IDAg
KQogICAgICAgICB7CiAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19XQVJO
SU5HIFZURFBSRUZJWCwKQEAgLTQzMSwxNSArNDU0LDE2IEBAIGludCBlbmFi
bGVfcWludmFsKHN0cnVjdCBpb21tdSAqaW9tbXUpCiAKICAgICBzcGluX2xv
Y2tfaXJxc2F2ZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKIAot
ICAgIC8qIFNldHVwIEludmFsaWRhdGlvbiBRdWV1ZSBBZGRyZXNzKElRQSkg
cmVnaXN0ZXIgd2l0aCB0aGUKLSAgICAgKiBhZGRyZXNzIG9mIHRoZSBwYWdl
IHdlIGp1c3QgYWxsb2NhdGVkLiAgUVMgZmllbGQgYXQKLSAgICAgKiBiaXRz
WzI6MF0gdG8gaW5kaWNhdGUgc2l6ZSBvZiBxdWV1ZSBpcyBvbmUgNEtCIHBh
Z2UuCi0gICAgICogVGhhdCdzIDI1NiBlbnRyaWVzLiAgUXVldWVkIEhlYWQg
KElRSCkgYW5kIFF1ZXVlIFRhaWwgKElRVCkKLSAgICAgKiByZWdpc3RlcnMg
YXJlIGF1dG9tYXRpY2FsbHkgcmVzZXQgdG8gMCB3aXRoIHdyaXRlCi0gICAg
ICogdG8gSVFBIHJlZ2lzdGVyLgorICAgIC8qCisgICAgICogU2V0dXAgSW52
YWxpZGF0aW9uIFF1ZXVlIEFkZHJlc3MgKElRQSkgcmVnaXN0ZXIgd2l0aCB0
aGUgYWRkcmVzcyBvZiB0aGUKKyAgICAgKiBwYWdlcyB3ZSBqdXN0IGFsbG9j
YXRlZC4gIFRoZSBRUyBmaWVsZCBhdCBiaXRzWzI6MF0gaW5kaWNhdGVzIHRo
ZSBzaXplCisgICAgICogKHBhZ2Ugb3JkZXIpIG9mIHRoZSBxdWV1ZS4KKyAg
ICAgKgorICAgICAqIFF1ZXVlZCBIZWFkIChJUUgpIGFuZCBRdWV1ZSBUYWls
IChJUVQpIHJlZ2lzdGVycyBhcmUgYXV0b21hdGljYWxseQorICAgICAqIHJl
c2V0IHRvIDAgd2l0aCB3cml0ZSB0byBJUUEgcmVnaXN0ZXIuCiAgICAgICov
CiAgICAgZG1hcl93cml0ZXEoaW9tbXUtPnJlZywgRE1BUl9JUUFfUkVHLAot
ICAgICAgICAgICAgICAgIHFpX2N0cmwtPnFpbnZhbF9tYWRkciB8IFFJTlZB
TF9QQUdFX09SREVSKTsKKyAgICAgICAgICAgICAgICBxaV9jdHJsLT5xaW52
YWxfbWFkZHIgfCBxaV9wZ19vcmRlcik7CiAKICAgICBkbWFyX3dyaXRlcShp
b21tdS0+cmVnLCBETUFSX0lRVF9SRUcsIDApOwogCg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.12-2.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.12-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHNpemUgY29tbWFuZCBidWZmZXIgZHluYW1pY2FsbHkK
CldpdGggdGhlIHByZXNlbnQgc3luY2hyb25vdXMgbW9kZWwsIHdlIG5lZWQg
dHdvIHNsb3RzIGZvciBldmVyeQpvcGVyYXRpb24gKHRoZSBvcGVyYXRpb24g
aXRzZWxmIGFuZCBhIHdhaXQgY29tbWFuZCkuICBUaGVyZSBjYW4gYmUgb25l
CnN1Y2ggcGFpciBvZiBjb21tYW5kcyBwZW5kaW5nIHBlciBDUFUuIFRvIGVu
c3VyZSB0aGF0IHVuZGVyIGFsbCBub3JtYWwKY2lyY3Vtc3RhbmNlcyBhIHNs
b3QgaXMgYWx3YXlzIGF2YWlsYWJsZSB3aGVuIG9uZSBpcyByZXF1ZXN0ZWQs
IHNpemUgdGhlCmNvbW1hbmQgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJl
ciBvZiBwcmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAv
IENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg
PGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50
IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91
Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0zNSw4ICszNSw4IEBAIHN0YXRpYyBp
bnQgcXVldWVfaW9tbXVfY29tbWFuZChzdHJ1Y3QgYW0KICAgICBpZiAoIGhl
YWQgIT0gdGFpbCApCiAgICAgewogICAgICAgICBtZW1jcHkoaW9tbXUtPmNt
ZF9idWZmZXIuYnVmZmVyICsKLSAgICAgICAgICAgICAgIChpb21tdS0+Y21k
X2J1ZmZlci50YWlsICogSU9NTVVfQ01EX0JVRkZFUl9FTlRSWV9TSVpFKSwK
LSAgICAgICAgICAgICAgIGNtZCwgSU9NTVVfQ01EX0JVRkZFUl9FTlRSWV9T
SVpFKTsKKyAgICAgICAgICAgICAgIChpb21tdS0+Y21kX2J1ZmZlci50YWls
ICogc2l6ZW9mKGNtZF9lbnRyeV90KSksCisgICAgICAgICAgICAgICBjbWQs
IHNpemVvZihjbWRfZW50cnlfdCkpOwogCiAgICAgICAgIGlvbW11LT5jbWRf
YnVmZmVyLnRhaWwgPSB0YWlsOwogICAgICAgICByZXR1cm4gMTsKLS0tIGEv
eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYworKysg
Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jCkBA
IC0xMzYsNyArMTM2LDcgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJfaW9tbXVf
Y21kX2J1ZmZlcl9pbgogICAgIHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9f
YmFzZSArIElPTU1VX0NNRF9CVUZGRVJfQkFTRV9MT1dfT0ZGU0VUKTsKIAog
ICAgIHBvd2VyX29mMl9lbnRyaWVzID0gZ2V0X29yZGVyX2Zyb21fYnl0ZXMo
aW9tbXUtPmNtZF9idWZmZXIuYWxsb2Nfc2l6ZSkgKwotICAgICAgICBJT01N
VV9DTURfQlVGRkVSX1BPV0VSX09GMl9FTlRSSUVTX1BFUl9QQUdFOworICAg
ICAgICBQQUdFX1NISUZUIC0gSU9NTVVfQ01EX0JVRkZFUl9FTlRSWV9PUkRF
UjsKIAogICAgIGVudHJ5ID0gMDsKICAgICBpb21tdV9zZXRfYWRkcl9oaV90
b19yZWcoJmVudHJ5LCBhZGRyX2hpKTsKQEAgLTEwMDAsOSArMTAwMCwzMSBA
QCBzdGF0aWMgdm9pZCAqIF9faW5pdCBhbGxvY2F0ZV9yaW5nX2J1ZmZlCiBz
dGF0aWMgdm9pZCAqIF9faW5pdCBhbGxvY2F0ZV9jbWRfYnVmZmVyKHN0cnVj
dCBhbWRfaW9tbXUgKmlvbW11KQogewogICAgIC8qIGFsbG9jYXRlICdjb21t
YW5kIGJ1ZmZlcicgaW4gcG93ZXIgb2YgMiBpbmNyZW1lbnRzIG9mIDRLICov
CisgICAgc3RhdGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IG5yX2Vu
dHM7CisKKyAgICBpZiAoICFucl9lbnRzICkKKyAgICB7CisgICAgICAgIHVu
c2lnbmVkIGludCBvcmRlcjsKKworICAgICAgICAvKgorICAgICAgICAgKiBX
aXRoIHRoZSBwcmVzZW50IHN5bmNocm9ub3VzIG1vZGVsLCB3ZSBuZWVkIHR3
byBzbG90cyBmb3IgZXZlcnkKKyAgICAgICAgICogb3BlcmF0aW9uICh0aGUg
b3BlcmF0aW9uIGl0c2VsZiBhbmQgYSB3YWl0IGNvbW1hbmQpLiAgVGhlcmUg
Y2FuIGJlCisgICAgICAgICAqIG9uZSBzdWNoIHBhaXIgb2YgcmVxdWVzdHMg
cGVuZGluZyBwZXIgQ1BVLiAgT25lIGV4dHJhIGVudHJ5IGlzCisgICAgICAg
ICAqIG5lZWRlZCBhcyB0aGUgcmluZyBpcyBjb25zaWRlcmVkIGZ1bGwgd2hl
biB0aGVyZSdzIG9ubHkgb25lIGVudHJ5CisgICAgICAgICAqIGxlZnQuCisg
ICAgICAgICAqLworICAgICAgICBCVUlMRF9CVUdfT04oQ09ORklHX05SX0NQ
VVMgKiAyID49IElPTU1VX0NNRF9CVUZGRVJfTUFYX0VOVFJJRVMpOworICAg
ICAgICBvcmRlciA9IGdldF9vcmRlcl9mcm9tX2J5dGVzKChudW1fcHJlc2Vu
dF9jcHVzKCkgKiAyICsgMSkgPDwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVSKTsK
KyAgICAgICAgbnJfZW50cyA9IDF1IDw8IChvcmRlciArIFBBR0VfU0hJRlQg
LSBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVSKTsKKworICAgICAgICBB
TURfSU9NTVVfREVCVUcoInVzaW5nICV1LWVudHJ5IGNtZCByaW5nKHMpXG4i
LCBucl9lbnRzKTsKKyAgICB9CisKKyAgICBCVUlMRF9CVUdfT04oc2l6ZW9m
KGNtZF9lbnRyeV90KSAhPSAoMXUgPDwgSU9NTVVfQ01EX0JVRkZFUl9FTlRS
WV9PUkRFUikpOworCiAgICAgcmV0dXJuIGFsbG9jYXRlX3JpbmdfYnVmZmVy
KCZpb21tdS0+Y21kX2J1ZmZlciwgc2l6ZW9mKGNtZF9lbnRyeV90KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfQ01EX0JVRkZF
Ul9ERUZBVUxUX0VOVFJJRVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJDb21tYW5kIEJ1ZmZlciIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBucl9lbnRzLCAiQ29tbWFuZCBCdWZmZXIiKTsKIH0K
IAogc3RhdGljIHZvaWQgKiBfX2luaXQgYWxsb2NhdGVfZXZlbnRfbG9nKHN0
cnVjdCBhbWRfaW9tbXUgKmlvbW11KQotLS0gYS94ZW4vaW5jbHVkZS9hc20t
eDg2L2h2bS9zdm0vYW1kLWlvbW11LWRlZnMuaAorKysgYi94ZW4vaW5jbHVk
ZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LWRlZnMuaApAQCAtMjAsOSAr
MjAsNiBAQAogI2lmbmRlZiBfQVNNX1g4Nl82NF9BTURfSU9NTVVfREVGU19I
CiAjZGVmaW5lIF9BU01fWDg2XzY0X0FNRF9JT01NVV9ERUZTX0gKIAotLyog
SU9NTVUgQ29tbWFuZCBCdWZmZXIgZW50cmllczogaW4gcG93ZXIgb2YgMiBp
bmNyZW1lbnRzLCBtaW5pbXVtIG9mIDI1NiAqLwotI2RlZmluZSBJT01NVV9D
TURfQlVGRkVSX0RFRkFVTFRfRU5UUklFUwk1MTIKLQogLyogSU9NTVUgRXZl
bnQgTG9nIGVudHJpZXM6IGluIHBvd2VyIG9mIDIgaW5jcmVtZW50cywgbWlu
aW11bSBvZiAyNTYgKi8KICNkZWZpbmUgSU9NTVVfRVZFTlRfTE9HX0RFRkFV
TFRfRU5UUklFUyAgICAgNTEyCiAKQEAgLTE4NCw4ICsxODEsOCBAQAogI2Rl
ZmluZSBJT01NVV9DTURfQlVGRkVSX0xFTkdUSF9NQVNLCQkweDBGMDAwMDAw
CiAjZGVmaW5lIElPTU1VX0NNRF9CVUZGRVJfTEVOR1RIX1NISUZUCQkyNAog
Ci0jZGVmaW5lIElPTU1VX0NNRF9CVUZGRVJfRU5UUllfU0laRQkJCTE2Ci0j
ZGVmaW5lIElPTU1VX0NNRF9CVUZGRVJfUE9XRVJfT0YyX0VOVFJJRVNfUEVS
X1BBR0UJOAorI2RlZmluZSBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVS
ICAgICAgICAgICAgNAorI2RlZmluZSBJT01NVV9DTURfQlVGRkVSX01BWF9F
TlRSSUVTICAgICAgICAgICAgKDF1IDw8IDE1KQogCiAjZGVmaW5lIElPTU1V
X0NNRF9PUENPREVfTUFTSwkJCTB4RjAwMDAwMDAKICNkZWZpbmUgSU9NTVVf
Q01EX09QQ09ERV9TSElGVAkJCTI4Cg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.12-3.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.12-3.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBlbGltaW5hdGUgZmx1c2ggcmVsYXRlZCB0aW1lb3V0cwoKTGVh
dmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24gcGVuZGluZyB3aGVuIGl0
IGFwcGVhcnMgdG8gdGFrZSB0b28KbG9uZyBpcyBwcm9ibGVtYXRpYzogSWYg
ZS5nLiBhIFFJIGNvbW1hbmQgY29tcGxldGVkIGxhdGVyLCB0aGUgd3JpdGUg
dG8KdGhlICJwb2xsIHNsb3QiIG1heSBpbnN0ZWFkIGJlIHVuZGVyc3Rvb2Qg
dG8gc2lnbmFsIGEgc3Vic2VxdWVudGx5CnN0YXJ0ZWQgY29tbWFuZCdzIGNv
bXBsZXRpb24uIEFsc28gb3VyIGFjY291bnRpbmcgb2YgdGhlIHRpbWVvdXQg
cGVyaW9kCndhcyBhY3R1YWxseSB3cm9uZzogV2UgaW5jbHVkZWQgdGhlIHRp
bWUgaXQgdG9vayBmb3IgdGhlIGNvbW1hbmQgdG8KYWN0dWFsbHkgbWFrZSBp
dCB0byB0aGUgZnJvbnQgb2YgdGhlIHF1ZXVlLCB3aGljaCBjb3VsZCBiZSBo
ZWF2aWx5CmFmZmVjdGVkIGJ5IGd1ZXN0cyBvdGhlciB0aGFuIHRoZSBvbmUg
Zm9yIHdoaWNoIHRoZSBmbHVzaCBpcyBiZWluZwpwZXJmb3JtZWQuCgpEbyBh
d2F5IHdpdGggYWxsIHRpbWVvdXQgZGV0ZWN0aW9uIG9uIGFsbCBmbHVzaCBy
ZWxhdGVkIGNvZGUgcGF0aHMuCkxvZyBleGNlc3NpdmVseSBsb25nIHByb2Nl
c3NpbmcgdGltZXMgKHdpdGggYSBwcm9ncmVzc2l2ZSB0aHJlc2hvbGQpIHRv
CmhhdmUgc29tZSBpbmRpY2F0aW9uIG9mIHByb2JsZW1zIGluIHRoaXMgYXJl
YS4KCkFkZGl0aW9uYWxseSBsb2cgKG9uY2UpIGlmIHFpbnZhbF9uZXh0X2lu
ZGV4KCkgZGlkbid0IGltbWVkaWF0ZWx5IGZpbmQKYW4gYXZhaWxhYmxlIHNs
b3QuIFRvZ2V0aGVyIHdpdGggdGhlIGVhcmxpZXIgY2hhbmdlIHNpemluZyB0
aGUgcXVldWUocykKZHluYW1pY2FsbHksIHdlIHNob3VsZCBub3cgaGF2ZSBh
IGd1YXJhbnRlZSB0aGF0IHdpdGggb3VyIGZ1bGx5CnN5bmNocm9ub3VzIG1v
ZGVsIGFueSBkZW1hbmQgZm9yIHNsb3RzIGNhbiBhY3R1YWxseSBiZSBzYXRp
c2ZpZWQuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4
NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5v
cmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5o
CisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmgKQEAg
LTEyNyw2ICsxMjcsMzQgQEAgZG8gewogICAgIH0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
IH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgSU9NTVVfRkxVU0hfV0FJVCh3aGF0
LCBpb21tdSwgb2Zmc2V0LCBvcCwgY29uZCwgc3RzKSAgICAgICBcCitkbyB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQg
X19yZWFkX21vc3RseSB0aHJlc2hvbGQgPSAxOyAgICAgICAgICAgICAgIFwK
KyAgICBzX3RpbWVfdCBzdGFydCA9IE5PVygpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc190aW1lX3QgdGltZW91
dCA9IHN0YXJ0ICsgRE1BUl9PUEVSQVRJT05fVElNRU9VVCAqIHRocmVzaG9s
ZDsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKCA7IDsg
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBz
dHMgPSBvcChpb21tdS0+cmVnLCBvZmZzZXQpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKCBjb25kICkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoIHRpbWVvdXQgJiYg
Tk9XKCkgPiB0aW1lb3V0ICkgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0aHJlc2hv
bGQgfD0gdGhyZXNob2xkIDw8IDE7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBS
RUZJWCAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICAgICAiIElPTU1VIyV1OiAlcyBmbHVzaCB0YWtpbmcgdG9vIGxvbmdcbiIs
ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCB3
aGF0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
ICAgdGltZW91dCA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIGNwdV9yZWxheCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCAhdGltZW91dCAp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklY
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICIgSU9NTVUjJXU6ICVzIGZsdXNoIHRvb2sgJWx1bXNcbiIsICAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIHdoYXQs
IChOT1coKSAtIHN0YXJ0KSAvIDEwMDAwMDAwKTsgICAgXAorfSB3aGlsZSAo
IGZhbHNlICkKKwogaW50IHZ0ZF9od19jaGVjayh2b2lkKTsKIHZvaWQgZGlz
YWJsZV9wbXIoc3RydWN0IGlvbW11ICppb21tdSk7CiBpbnQgaXNfaWdkX2Ry
aGQoc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkKTsKLS0tIGEveGVuL2Ry
aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVuL2RyaXZl
cnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTM1Nyw4ICszNTcsOCBA
QCBzdGF0aWMgdm9pZCBpb21tdV9mbHVzaF93cml0ZV9idWZmZXIoc3RyCiAg
ICAgZG1hcl93cml0ZWwoaW9tbXUtPnJlZywgRE1BUl9HQ01EX1JFRywgdmFs
IHwgRE1BX0dDTURfV0JGKTsKIAogICAgIC8qIE1ha2Ugc3VyZSBoYXJkd2Fy
ZSBjb21wbGV0ZSBpdCAqLwotICAgIElPTU1VX1dBSVRfT1AoaW9tbXUsIERN
QVJfR1NUU19SRUcsIGRtYXJfcmVhZGwsCi0gICAgICAgICAgICAgICAgICAh
KHZhbCAmIERNQV9HU1RTX1dCRlMpLCB2YWwpOworICAgIElPTU1VX0ZMVVNI
X1dBSVQoIndyaXRlIGJ1ZmZlciIsIGlvbW11LCBETUFSX0dTVFNfUkVHLCBk
bWFyX3JlYWRsLAorICAgICAgICAgICAgICAgICAgICAgISh2YWwgJiBETUFf
R1NUU19XQkZTKSwgdmFsKTsKIAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3Rv
cmUoJmlvbW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFncyk7CiB9CkBAIC00MDgs
OCArNDA4LDggQEAgaW50IHZ0ZF9mbHVzaF9jb250ZXh0X3JlZyh2b2lkICpf
aW9tbXUsCiAgICAgZG1hcl93cml0ZXEoaW9tbXUtPnJlZywgRE1BUl9DQ01E
X1JFRywgdmFsKTsKIAogICAgIC8qIE1ha2Ugc3VyZSBoYXJkd2FyZSBjb21w
bGV0ZSBpdCAqLwotICAgIElPTU1VX1dBSVRfT1AoaW9tbXUsIERNQVJfQ0NN
RF9SRUcsIGRtYXJfcmVhZHEsCi0gICAgICAgICAgICAgICAgICAhKHZhbCAm
IERNQV9DQ01EX0lDQyksIHZhbCk7CisgICAgSU9NTVVfRkxVU0hfV0FJVCgi
Y29udGV4dCIsIGlvbW11LCBETUFSX0NDTURfUkVHLCBkbWFyX3JlYWRxLAor
ICAgICAgICAgICAgICAgICAgICAgISh2YWwgJiBETUFfQ0NNRF9JQ0MpLCB2
YWwpOwogCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPnJl
Z2lzdGVyX2xvY2ssIGZsYWdzKTsKICAgICAvKiBmbHVzaCBjb250ZXh0IGVu
dHJ5IHdpbGwgaW1wbGljaXRseSBmbHVzaCB3cml0ZSBidWZmZXIgKi8KQEAg
LTQ5MSw4ICs0OTEsOCBAQCBpbnQgdnRkX2ZsdXNoX2lvdGxiX3JlZyh2b2lk
ICpfaW9tbXUsIHVpCiAgICAgZG1hcl93cml0ZXEoaW9tbXUtPnJlZywgdGxi
X29mZnNldCArIDgsIHZhbCk7CiAKICAgICAvKiBNYWtlIHN1cmUgaGFyZHdh
cmUgY29tcGxldGUgaXQgKi8KLSAgICBJT01NVV9XQUlUX09QKGlvbW11LCAo
dGxiX29mZnNldCArIDgpLCBkbWFyX3JlYWRxLAotICAgICAgICAgICAgICAg
ICAgISh2YWwgJiBETUFfVExCX0lWVCksIHZhbCk7CisgICAgSU9NTVVfRkxV
U0hfV0FJVCgiaW90bGIiLCBpb21tdSwgKHRsYl9vZmZzZXQgKyA4KSwgZG1h
cl9yZWFkcSwKKyAgICAgICAgICAgICAgICAgICAgICEodmFsICYgRE1BX1RM
Ql9JVlQpLCB2YWwpOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlv
bW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFncyk7CiAKICAgICAvKiBjaGVjayBJ
T1RMQiBpbnZhbGlkYXRpb24gZ3JhbnVsYXJpdHkgKi8KLS0tIGEveGVuL2Ry
aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCisrKyBiL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpAQCAtMjksOCArMjksNiBA
QAogI2luY2x1ZGUgImV4dGVybi5oIgogI2luY2x1ZGUgIi4uL2F0cy5oIgog
Ci0jZGVmaW5lIFZURF9RSV9USU1FT1VUCTEKLQogc3RhdGljIHVuc2lnbmVk
IGludCBfX3JlYWRfbW9zdGx5IHFpX3BnX29yZGVyOwogc3RhdGljIHVuc2ln
bmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX2VudHJ5X25yOwogCkBAIC02MCw3
ICs1OCwxMSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHFpbnZhbF9uZXh0X2lu
ZGV4KHN0CiAgICAgLyogKHRhaWwrMSA9PSBoZWFkKSBpbmRpY2F0ZXMgYSBm
dWxsIHF1ZXVlLCB3YWl0IGZvciBIVyAqLwogICAgIHdoaWxlICggKCh0YWls
ICsgMSkgJiAocWlfZW50cnlfbnIgLSAxKSkgPT0KICAgICAgICAgICAgICgg
ZG1hcl9yZWFkcShpb21tdS0+cmVnLCBETUFSX0lRSF9SRUcpID4+IFFJTlZB
TF9JTkRFWF9TSElGVCApICkKKyAgICB7CisgICAgICAgIHByaW50a19vbmNl
KFhFTkxPR19FUlIgVlREUFJFRklYICIgSU9NTVUjJXU6IG5vIFFJIHNsb3Qg
YXZhaWxhYmxlXG4iLAorICAgICAgICAgICAgICAgICAgICBpb21tdS0+aW5k
ZXgpOwogICAgICAgICBjcHVfcmVsYXgoKTsKKyAgICB9CiAKICAgICByZXR1
cm4gdGFpbDsKIH0KQEAgLTE4MCwyMyArMTgyLDMyIEBAIHN0YXRpYyBpbnQg
X19tdXN0X2NoZWNrIHF1ZXVlX2ludmFsaWRhdGUKICAgICAvKiBOb3cgd2Ug
ZG9uJ3Qgc3VwcG9ydCBpbnRlcnJ1cHQgbWV0aG9kICovCiAgICAgaWYgKCBz
dyApCiAgICAgewotICAgICAgICBzX3RpbWVfdCB0aW1lb3V0OwotCi0gICAg
ICAgIC8qIEluIGNhc2UgYWxsIHdhaXQgZGVzY3JpcHRvciB3cml0ZXMgdG8g
c2FtZSBhZGRyIHdpdGggc2FtZSBkYXRhICovCi0gICAgICAgIHRpbWVvdXQg
PSBOT1coKSArIE1JTExJU0VDUyhmbHVzaF9kZXZfaW90bGIgPwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9tbXVfZGV2X2lvdGxi
X3RpbWVvdXQgOiBWVERfUUlfVElNRU9VVCk7CisgICAgICAgIHN0YXRpYyB1
bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSB0aHJlc2hvbGQgPSAxOworICAg
ICAgICBzX3RpbWVfdCBzdGFydCA9IE5PVygpOworICAgICAgICBzX3RpbWVf
dCB0aW1lb3V0ID0gc3RhcnQgKyAoZmx1c2hfZGV2X2lvdGxiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlvbW11X2Rldl9pb3Rs
Yl90aW1lb3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA6IDEwMCkgKiBNSUxMSVNFQ1ModGhyZXNob2xkKTsKIAogICAgICAgICB3
aGlsZSAoIEFDQ0VTU19PTkNFKCp0aGlzX3BvbGxfc2xvdCkgIT0gUUlOVkFM
X1NUQVRfRE9ORSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICggTk9X
KCkgPiB0aW1lb3V0ICkKKyAgICAgICAgICAgIGlmICggdGltZW91dCAmJiBO
T1coKSA+IHRpbWVvdXQgKQogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHByaW50X3FpX3JlZ3MoaW9tbXUpOworICAgICAgICAgICAgICAgIHRo
cmVzaG9sZCB8PSB0aHJlc2hvbGQgPDwgMTsKICAgICAgICAgICAgICAgICBw
cmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYCi0gICAgICAgICAgICAg
ICAgICAgICAgICIgUXVldWUgaW52YWxpZGF0ZSB3YWl0IGRlc2NyaXB0b3Ig
dGltZWQgb3V0XG4iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLUVUSU1F
RE9VVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIiBJT01NVSMldTogUUkl
cyB3YWl0IGRlc2NyaXB0b3IgdGFraW5nIHRvbyBsb25nXG4iLAorICAgICAg
ICAgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIGZsdXNoX2Rldl9pb3Rs
YiA/ICIgZGV2IiA6ICIiKTsKKyAgICAgICAgICAgICAgICBwcmludF9xaV9y
ZWdzKGlvbW11KTsKKyAgICAgICAgICAgICAgICB0aW1lb3V0ID0gMDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGNwdV9yZWxheCgpOwogICAgICAg
ICB9CisKKyAgICAgICAgaWYgKCAhdGltZW91dCApCisgICAgICAgICAgICBw
cmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYCisgICAgICAgICAgICAg
ICAgICAgIiBJT01NVSMldTogUUklcyB3YWl0IGRlc2NyaXB0b3IgdG9vayAl
bHVtc1xuIiwKKyAgICAgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIGZs
dXNoX2Rldl9pb3RsYiA/ICIgZGV2IiA6ICIiLAorICAgICAgICAgICAgICAg
ICAgIChOT1coKSAtIHN0YXJ0KSAvIDEwMDAwMDAwKTsKKwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CiAK

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.12-4.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.12-4.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHdhaXQgZm9yIGNvbW1hbmQgc2xvdCB0byBiZSBhdmFp
bGFibGUKCk5vIGNhbGxlciBjYXJlZCBhYm91dCBzZW5kX2lvbW11X2NvbW1h
bmQoKSBpbmRpY2F0aW5nIHVuYXZhaWxhYmlsaXR5IG9mCmEgc2xvdC4gSGVu
Y2UgaWYgYSBzdWZmaWNpZW50IG51bWJlciBwcmlvciBjb21tYW5kcyB0aW1l
ZCBvdXQsIHdlIGRpZApibGluZGx5IGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0
ZWQgY29tbWFuZCB3YXMgc3VibWl0dGVkIHRvIHRoZSBJT01NVQp3aGVuIHJl
YWxseSBpdCB3YXNuJ3QuIFRoaXMgY291bGQgbWVhbiBib3RoIGEgaGFuZ2lu
ZyBzeXN0ZW0gKHdhaXRpbmcKZm9yIGEgY29tbWFuZCB0byBjb21wbGV0ZSB0
aGF0IHdhcyBuZXZlciBzZWVuIGJ5IHRoZSBJT01NVSkgb3IgYmxpbmRseQpw
cm9wYWdhdGluZyBzdWNjZXNzIGJhY2sgdG8gY2FsbGVycywgbWFraW5nIHRo
ZW0gYmVsaWV2ZSB0aGV5J3JlIGZpbmUKdG8gZS5nLiBmcmVlIHByZXZpb3Vz
bHkgdW5tYXBwZWQgcGFnZXMuCgpGb2xkIHRoZSB0aHJlZSBpbnZvbHZlZCBm
dW5jdGlvbnMgaW50byBvbmUsIGFkZCBzcGluIHdhaXRpbmcgZm9yIGFuCmF2
YWlsYWJsZSBzbG90IGFsb25nIHRoZSBsaW5lcyBvZiBWVC1kJ3MgcWludmFs
X25leHRfaW5kZXgoKSwgYW5kIGFzIGEKY29uc2VxdWVuY2UgZHJvcCBhbGwg
ZXJyb3IgaW5kaWNhdG9yIHJldHVybiB0eXBlcy92YWx1ZXMuCgpUaGlzIGlz
IHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9m
Zi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdl
ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0yMiw0
OCArMjIsMzYgQEAKICNpbmNsdWRlIDxhc20vaHZtL3N2bS9hbWQtaW9tbXUt
cHJvdG8uaD4KICNpbmNsdWRlICIuLi9hdHMuaCIKIAotc3RhdGljIGludCBx
dWV1ZV9pb21tdV9jb21tYW5kKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1
MzIgY21kW10pCitzdGF0aWMgdm9pZCBzZW5kX2lvbW11X2NvbW1hbmQoc3Ry
dWN0IGFtZF9pb21tdSAqaW9tbXUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgdWludDMyX3QgY21kWzRdKQogewotICAgIHVpbnQz
Ml90IHRhaWwsIGhlYWQ7CisgICAgdWludDMyX3QgdGFpbDsKIAogICAgIHRh
aWwgPSBpb21tdS0+Y21kX2J1ZmZlci50YWlsOwogICAgIGlmICggKyt0YWls
ID09IGlvbW11LT5jbWRfYnVmZmVyLmVudHJpZXMgKQogICAgICAgICB0YWls
ID0gMDsKIAotICAgIGhlYWQgPSBpb21tdV9nZXRfcmJfcG9pbnRlcihyZWFk
bChpb21tdS0+bW1pb19iYXNlICsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSU9NTVVfQ01EX0JVRkZFUl9IRUFEX09GRlNFVCkp
OwotICAgIGlmICggaGVhZCAhPSB0YWlsICkKKyAgICB3aGlsZSAoIHRhaWwg
PT0gaW9tbXVfZ2V0X3JiX3BvaW50ZXIocmVhZGwoaW9tbXUtPm1taW9fYmFz
ZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElPTU1VX0NNRF9CVUZGRVJfSEVBRF9PRkZTRVQpKSApCiAgICAg
ewotICAgICAgICBtZW1jcHkoaW9tbXUtPmNtZF9idWZmZXIuYnVmZmVyICsK
LSAgICAgICAgICAgICAgIChpb21tdS0+Y21kX2J1ZmZlci50YWlsICogc2l6
ZW9mKGNtZF9lbnRyeV90KSksCi0gICAgICAgICAgICAgICBjbWQsIHNpemVv
ZihjbWRfZW50cnlfdCkpOwotCi0gICAgICAgIGlvbW11LT5jbWRfYnVmZmVy
LnRhaWwgPSB0YWlsOwotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgcHJp
bnRrX29uY2UoWEVOTE9HX0VSUgorICAgICAgICAgICAgICAgICAgICAiQU1E
IElPTU1VICUwNHg6JTAyeDolMDJ4LiV1OiBubyBjbWQgc2xvdCBhdmFpbGFi
bGVcbiIsCisgICAgICAgICAgICAgICAgICAgIGlvbW11LT5zZWcsIFBDSV9C
VVMoaW9tbXUtPmJkZiksCisgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9U
KGlvbW11LT5iZGYpLCBQQ0lfRlVOQyhpb21tdS0+YmRmKSk7CisgICAgICAg
IGNwdV9yZWxheCgpOwogICAgIH0KIAotICAgIHJldHVybiAwOwotfQorICAg
IG1lbWNweShpb21tdS0+Y21kX2J1ZmZlci5idWZmZXIgKworICAgICAgICAg
ICAoaW9tbXUtPmNtZF9idWZmZXIudGFpbCAqIHNpemVvZihjbWRfZW50cnlf
dCkpLAorICAgICAgICAgICBjbWQsIHNpemVvZihjbWRfZW50cnlfdCkpOwog
Ci1zdGF0aWMgdm9pZCBjb21taXRfaW9tbXVfY29tbWFuZF9idWZmZXIoc3Ry
dWN0IGFtZF9pb21tdSAqaW9tbXUpCi17Ci0gICAgdTMyIHRhaWwgPSAwOwor
ICAgIGlvbW11LT5jbWRfYnVmZmVyLnRhaWwgPSB0YWlsOwogCisgICAgdGFp
bCA9IDA7CiAgICAgaW9tbXVfc2V0X3JiX3BvaW50ZXIoJnRhaWwsIGlvbW11
LT5jbWRfYnVmZmVyLnRhaWwpOwogICAgIHdyaXRlbCh0YWlsLCBpb21tdS0+
bW1pb19iYXNlK0lPTU1VX0NNRF9CVUZGRVJfVEFJTF9PRkZTRVQpOwogfQog
Ci1pbnQgc2VuZF9pb21tdV9jb21tYW5kKHN0cnVjdCBhbWRfaW9tbXUgKmlv
bW11LCB1MzIgY21kW10pCi17Ci0gICAgaWYgKCBxdWV1ZV9pb21tdV9jb21t
YW5kKGlvbW11LCBjbWQpICkKLSAgICB7Ci0gICAgICAgIGNvbW1pdF9pb21t
dV9jb21tYW5kX2J1ZmZlcihpb21tdSk7Ci0gICAgICAgIHJldHVybiAxOwot
ICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCiBzdGF0aWMgdm9pZCBmbHVz
aF9jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKIHsK
ICAgICB1MzIgY21kWzRdLCBzdGF0dXM7Cg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.12-5.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.12-5.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IGRyb3AgY29tbWFuZCBjb21wbGV0aW9uIHRpbWVvdXQK
CkZpcnN0IGFuZCBmb3JlbW9zdCAtIHN1Y2ggdGltZW91dHMgd2VyZSBub3Qg
c2lnbmFsZWQgdG8gY2FsbGVycywgbWFraW5nCnRoZW0gYmVsaWV2ZSB0aGV5
J3JlIGZpbmUgdG8gZS5nLiBmcmVlIHByZXZpb3VzbHkgdW5tYXBwZWQgcGFn
ZXMuCgpNaXJyb3IgVlQtZCdzIGJlaGF2aW9yOiBBIGZpeGVkIG51bWJlciBv
ZiBsb29wIGl0ZXJhdGlvbnMgaXMgbm90IGEKc3VpdGFibGUgd2F5IHRvIGRl
dGVjdCB0aW1lb3V0cyBpbiBhbiBlbnZpcm9ubWVudCAoQ1BVIGFuZCBidXMg
c3BlZWRzKQppbmRlcGVuZGVudCBtYW5uZXIgYW55d2F5LiBGdXJ0aGVybW9y
ZSwgbGVhdmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24KcGVuZGluZyB3
aGVuIGl0IGFwcGVhcnMgdG8gdGFrZSB0b28gbG9uZyBpcyBwcm9ibGVtYXRp
YzogSWYgYSBjb21tYW5kCmNvbXBsZXRlZCBsYXRlciwgdGhlIHNpZ25hbGlu
ZyBvZiBpdHMgY29tcGxldGlvbiBtYXkgaW5zdGVhZCBiZQp1bmRlcnN0b29k
IHRvIHNpZ25hbCBhIHN1YnNlcXVlbnRseSBzdGFydGVkIGNvbW1hbmQncyBj
b21wbGV0aW9uLgoKTG9nIGV4Y2Vzc2l2ZWx5IGxvbmcgcHJvY2Vzc2luZyB0
aW1lcyAod2l0aCBhIHByb2dyZXNzaXZlIHRocmVzaG9sZCkgdG8KaGF2ZSBz
b21lIGluZGljYXRpb24gb2YgcHJvYmxlbXMgaW4gdGhpcyBhcmVhLiBBbGxv
dyBjYWxsZXJzIHRvIHNwZWNpZnkKYSBub24tZGVmYXVsdCB0aW1lb3V0IGJp
YXMgZm9yIHRoaXMgbG9nZ2luZywgdXNpbmcgdGhlIHNhbWUgdmFsdWVzIGFz
ClZULWQgZG9lcywgd2hpY2ggaW4gcGFydGljdWxhciBtZWFucyBhIChieSBk
ZWZhdWx0KSBtdWNoIGxhcmdlciB2YWx1ZQpmb3IgZGV2aWNlIElPIFRMQiBp
bnZhbGlkYXRpb24uCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv
aW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k
L2lvbW11X2NtZC5jCkBAIC01MiwxMCArNTIsMTIgQEAgc3RhdGljIHZvaWQg
c2VuZF9pb21tdV9jb21tYW5kKHN0cnVjdCBhbQogICAgIHdyaXRlbCh0YWls
LCBpb21tdS0+bW1pb19iYXNlK0lPTU1VX0NNRF9CVUZGRVJfVEFJTF9PRkZT
RVQpOwogfQogCi1zdGF0aWMgdm9pZCBmbHVzaF9jb21tYW5kX2J1ZmZlcihz
dHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3N0YXRpYyB2b2lkIGZsdXNoX2Nv
bW1hbmRfYnVmZmVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHRpbWVv
dXRfYmFzZSkKIHsKLSAgICB1MzIgY21kWzRdLCBzdGF0dXM7Ci0gICAgaW50
IGxvb3BfY291bnQsIGNvbXBfd2FpdDsKKyAgICB1aW50MzJfdCBjbWRbNF07
CisgICAgc190aW1lX3Qgc3RhcnQsIHRpbWVvdXQ7CisgICAgc3RhdGljIHVu
c2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHRocmVzaG9sZCA9IDE7CiAKICAg
ICAvKiBSVzFDICdDb21XYWl0SW50JyBpbiBzdGF0dXMgcmVnaXN0ZXIgKi8K
ICAgICB3cml0ZWwoSU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlRfTUFTSywK
QEAgLTcxLDI0ICs3MywzMSBAQCBzdGF0aWMgdm9pZCBmbHVzaF9jb21tYW5k
X2J1ZmZlcihzdHJ1Y3QKICAgICAgICAgICAgICAgICAgICAgICAgICBJT01N
VV9DT01QX1dBSVRfSV9GTEFHX1NISUZULCAmY21kWzBdKTsKICAgICBzZW5k
X2lvbW11X2NvbW1hbmQoaW9tbXUsIGNtZCk7CiAKLSAgICAvKiBNYWtlIGxv
b3BfY291bnQgbG9uZyBlbm91Z2ggZm9yIHBvbGxpbmcgY29tcGxldGlvbiB3
YWl0IGJpdCAqLwotICAgIGxvb3BfY291bnQgPSAxMDAwOwotICAgIGRvIHsK
LSAgICAgICAgc3RhdHVzID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIElP
TU1VX1NUQVRVU19NTUlPX09GRlNFVCk7Ci0gICAgICAgIGNvbXBfd2FpdCA9
IGdldF9maWVsZF9mcm9tX3JlZ191MzIoc3RhdHVzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1NUQVRVU19D
T01QX1dBSVRfSU5UX01BU0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlRf
U0hJRlQpOwotICAgICAgICAtLWxvb3BfY291bnQ7Ci0gICAgfSB3aGlsZSAo
ICFjb21wX3dhaXQgJiYgbG9vcF9jb3VudCApOwotCi0gICAgaWYgKCBjb21w
X3dhaXQgKQorICAgIHN0YXJ0ID0gTk9XKCk7CisgICAgdGltZW91dCA9IHN0
YXJ0ICsgKHRpbWVvdXRfYmFzZSA/OiAxMDApICogTUlMTElTRUNTKHRocmVz
aG9sZCk7CisgICAgd2hpbGUgKCAhKHJlYWRsKGlvbW11LT5tbWlvX2Jhc2Ug
KyBJT01NVV9TVEFUVVNfTU1JT19PRkZTRVQpICYKKyAgICAgICAgICAgICAg
SU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlRfTUFTSykgKQogICAgIHsKLSAg
ICAgICAgLyogUlcxQyAnQ29tV2FpdEludCcgaW4gc3RhdHVzIHJlZ2lzdGVy
ICovCi0gICAgICAgIHdyaXRlbChJT01NVV9TVEFUVVNfQ09NUF9XQUlUX0lO
VF9NQVNLLAotICAgICAgICAgICAgICAgaW9tbXUtPm1taW9fYmFzZSArIElP
TU1VX1NUQVRVU19NTUlPX09GRlNFVCk7Ci0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgaWYgKCB0aW1lb3V0ICYmIE5PVygpID4gdGltZW91dCApCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHRocmVzaG9sZCB8PSB0aHJlc2hvbGQgPDwg
MTsKKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORworICAgICAg
ICAgICAgICAgICAgICJBTUQgSU9NTVUgJTA0eDolMDJ4OiUwMnguJXU6ICVz
Y29tcGxldGlvbiB3YWl0IHRha2luZyB0b28gbG9uZ1xuIiwKKyAgICAgICAg
ICAgICAgICAgICBpb21tdS0+c2VnLCBQQ0lfQlVTKGlvbW11LT5iZGYpLAor
ICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGlvbW11LT5iZGYpLCBQQ0lf
RlVOQyhpb21tdS0+YmRmKSwKKyAgICAgICAgICAgICAgICAgICB0aW1lb3V0
X2Jhc2UgPyAiaW90bGIgIiA6ICIiKTsKKyAgICAgICAgICAgIHRpbWVvdXQg
PSAwOworICAgICAgICB9CisgICAgICAgIGNwdV9yZWxheCgpOwogICAgIH0K
LSAgICBBTURfSU9NTVVfREVCVUcoIldhcm5pbmc6IENvbVdhaXRJbnQgYml0
IGRpZCBub3QgYXNzZXJ0IVxuIik7CisKKyAgICBpZiAoICF0aW1lb3V0ICkK
KyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCisgICAgICAgICAgICAg
ICAiQU1EIElPTU1VICUwNHg6JTAyeDolMDJ4LiV1OiAlc2NvbXBsZXRpb24g
d2FpdCB0b29rICVsdW1zXG4iLAorICAgICAgICAgICAgICAgaW9tbXUtPnNl
ZywgUENJX0JVUyhpb21tdS0+YmRmKSwKKyAgICAgICAgICAgICAgIFBDSV9T
TE9UKGlvbW11LT5iZGYpLCBQQ0lfRlVOQyhpb21tdS0+YmRmKSwKKyAgICAg
ICAgICAgICAgIHRpbWVvdXRfYmFzZSA/ICJpb3RsYiAiIDogIiIsCisgICAg
ICAgICAgICAgICAoTk9XKCkgLSBzdGFydCkgLyAxMDAwMDAwMCk7CiB9CiAK
IC8qIEJ1aWxkIGxvdyBsZXZlbCBpb21tdSBjb21tYW5kIG1lc3NhZ2VzICov
CkBAIC0zMDAsNyArMzA5LDcgQEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfaW90
bGIodTggZGV2Zm4sIGNvbgogICAgIC8qIHNlbmQgSU5WQUxJREFURV9JT1RM
Ql9QQUdFUyBjb21tYW5kICovCiAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlv
bW11LT5sb2NrLCBmbGFncyk7CiAgICAgaW52YWxpZGF0ZV9pb3RsYl9wYWdl
cyhpb21tdSwgbWF4cGVuZCwgMCwgcXVldWVpZCwgZGFkZHIsIHJlcV9pZCwg
b3JkZXIpOwotICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAg
ICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSwgaW9tbXVfZGV2X2lvdGxi
X3RpbWVvdXQpOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11
LT5sb2NrLCBmbGFncyk7CiB9CiAKQEAgLTMzNyw3ICszNDYsNyBAQCBzdGF0
aWMgdm9pZCBfYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKHN0cnVjCiAgICAgewog
ICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdz
KTsKICAgICAgICAgaW52YWxpZGF0ZV9pb21tdV9wYWdlcyhpb21tdSwgZGFk
ZHIsIGRvbV9pZCwgb3JkZXIpOwotICAgICAgICBmbHVzaF9jb21tYW5kX2J1
ZmZlcihpb21tdSk7CisgICAgICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlv
bW11LCAwKTsKICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9t
bXUtPmxvY2ssIGZsYWdzKTsKICAgICB9CiAKQEAgLTM2MSw3ICszNzAsNyBA
QCB2b2lkIGFtZF9pb21tdV9mbHVzaF9kZXZpY2Uoc3RydWN0IGFtZF9pCiAg
ICAgQVNTRVJUKCBzcGluX2lzX2xvY2tlZCgmaW9tbXUtPmxvY2spICk7CiAK
ICAgICBpbnZhbGlkYXRlX2Rldl90YWJsZV9lbnRyeShpb21tdSwgYmRmKTsK
LSAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSk7CisgICAgZmx1c2hf
Y29tbWFuZF9idWZmZXIoaW9tbXUsIDApOwogfQogCiB2b2lkIGFtZF9pb21t
dV9mbHVzaF9pbnRyZW1hcChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdWlu
dDE2X3QgYmRmKQpAQCAtMzY5LDcgKzM3OCw3IEBAIHZvaWQgYW1kX2lvbW11
X2ZsdXNoX2ludHJlbWFwKHN0cnVjdCBhbWQKICAgICBBU1NFUlQoIHNwaW5f
aXNfbG9ja2VkKCZpb21tdS0+bG9jaykgKTsKIAogICAgIGludmFsaWRhdGVf
aW50ZXJydXB0X3RhYmxlKGlvbW11LCBiZGYpOwotICAgIGZsdXNoX2NvbW1h
bmRfYnVmZmVyKGlvbW11KTsKKyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihp
b21tdSwgMCk7CiB9CiAKIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9jYWNo
ZXMoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCkBAIC0zNzcsNyArMzg2LDcg
QEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgYQog
ICAgIEFTU0VSVCggc3Bpbl9pc19sb2NrZWQoJmlvbW11LT5sb2NrKSApOwog
CiAgICAgaW52YWxpZGF0ZV9pb21tdV9hbGwoaW9tbXUpOwotICAgIGZsdXNo
X2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAgICBmbHVzaF9jb21tYW5kX2J1
ZmZlcihpb21tdSwgMCk7CiB9CiAKIHZvaWQgYW1kX2lvbW11X3NlbmRfZ3Vl
c3RfY21kKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1MzIgY21kW10pCkBA
IC0zODcsNyArMzk2LDggQEAgdm9pZCBhbWRfaW9tbXVfc2VuZF9ndWVzdF9j
bWQoc3RydWN0IGFtZAogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpb21tdS0+
bG9jaywgZmxhZ3MpOwogCiAgICAgc2VuZF9pb21tdV9jb21tYW5kKGlvbW11
LCBjbWQpOwotICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAg
ICAvKiBUQkQ6IFRpbWVvdXQgc2VsZWN0aW9uIG1heSByZXF1aXJlIHBlZWtp
bmcgaW50byBjbWRbXS4gKi8KKyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihp
b21tdSwgMCk7CiAKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21t
dS0+bG9jaywgZmxhZ3MpOwogfQo=

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.13-1.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.13-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBzaXplIHFpbnZhbCBxdWV1ZSBkeW5hbWljYWxseQoKV2l0aCB0
aGUgcHJlc2VudCBzeW5jaHJvbm91cyBtb2RlbCwgd2UgbmVlZCB0d28gc2xv
dHMgZm9yIGV2ZXJ5Cm9wZXJhdGlvbiAodGhlIG9wZXJhdGlvbiBpdHNlbGYg
YW5kIGEgd2FpdCBkZXNjcmlwdG9yKS4gIFRoZXJlIGNhbiBiZQpvbmUgc3Vj
aCBwYWlyIG9mIHJlcXVlc3RzIHBlbmRpbmcgcGVyIENQVS4gVG8gZW5zdXJl
IHRoYXQgdW5kZXIgYWxsCm5vcm1hbCBjaXJjdW1zdGFuY2VzIGEgc2xvdCBp
cyBhbHdheXMgYXZhaWxhYmxlIHdoZW4gb25lIGlzIHJlcXVlc3RlZCwKc2l6
ZSB0aGUgcXVldWUgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBw
cmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv
aW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t
bXUuaApAQCAtNDUwLDE3ICs0NTAsOSBAQCBzdHJ1Y3QgcWludmFsX2VudHJ5
IHsKICAgICB9cTsKIH07CiAKLS8qIE9yZGVyIG9mIHF1ZXVlIGludmFsaWRh
dGlvbiBwYWdlcyhtYXggaXMgOCkgKi8KLSNkZWZpbmUgUUlOVkFMX1BBR0Vf
T1JERVIgICAyCi0KLSNkZWZpbmUgUUlOVkFMX0FSQ0hfUEFHRV9PUkRFUiAg
KFFJTlZBTF9QQUdFX09SREVSICsgUEFHRV9TSElGVF80SyAtIFBBR0VfU0hJ
RlQpCi0jZGVmaW5lIFFJTlZBTF9BUkNIX1BBR0VfTlIgICAgICggUUlOVkFM
X0FSQ0hfUEFHRV9PUkRFUiA8IDAgPyAgXAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxIDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCBRSU5W
QUxfQVJDSF9QQUdFX09SREVSICkKLQogLyogRWFjaCBlbnRyeSBpcyAxNiBi
eXRlcywgc28gMl44IGVudHJpZXMgcGVyIHBhZ2UgKi8KICNkZWZpbmUgUUlO
VkFMX0VOVFJZX09SREVSICAoIFBBR0VfU0hJRlQgLSA0ICkKLSNkZWZpbmUg
UUlOVkFMX0VOVFJZX05SICAgICAoMSA8PCAoUUlOVkFMX1BBR0VfT1JERVIg
KyA4KSkKKyNkZWZpbmUgUUlOVkFMX01BWF9FTlRSWV9OUiAoMXUgPDwgKDcg
KyBRSU5WQUxfRU5UUllfT1JERVIpKQogCiAvKiBTdGF0dXMgZGF0YSBmbGFn
ICovCiAjZGVmaW5lIFFJTlZBTF9TVEFUX0lOSVQgIDAKLS0tIGEveGVuL2Ry
aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCisrKyBiL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpAQCAtMzEsNiArMzEsOSBA
QAogCiAjZGVmaW5lIFZURF9RSV9USU1FT1VUCTEKIAorc3RhdGljIHVuc2ln
bmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX3BnX29yZGVyOworc3RhdGljIHVu
c2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX2VudHJ5X25yOworCiBzdGF0
aWMgaW50IF9fbXVzdF9jaGVjayBpbnZhbGlkYXRlX3N5bmMoc3RydWN0IHZ0
ZF9pb21tdSAqaW9tbXUpOwogCiBzdGF0aWMgdm9pZCBwcmludF9xaV9yZWdz
KHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQpAQCAtNTUsNyArNTgsNyBAQCBz
dGF0aWMgdW5zaWduZWQgaW50IHFpbnZhbF9uZXh0X2luZGV4KHN0CiAgICAg
dGFpbCA+Pj0gUUlOVkFMX0lOREVYX1NISUZUOwogCiAgICAgLyogKHRhaWwr
MSA9PSBoZWFkKSBpbmRpY2F0ZXMgYSBmdWxsIHF1ZXVlLCB3YWl0IGZvciBI
VyAqLwotICAgIHdoaWxlICggKCB0YWlsICsgMSApICUgUUlOVkFMX0VOVFJZ
X05SID09CisgICAgd2hpbGUgKCAoKHRhaWwgKyAxKSAmIChxaV9lbnRyeV9u
ciAtIDEpKSA9PQogICAgICAgICAgICAgKCBkbWFyX3JlYWRxKGlvbW11LT5y
ZWcsIERNQVJfSVFIX1JFRykgPj4gUUlOVkFMX0lOREVYX1NISUZUICkgKQog
ICAgICAgICBjcHVfcmVsYXgoKTsKIApAQCAtNjgsNyArNzEsNyBAQCBzdGF0
aWMgdm9pZCBxaW52YWxfdXBkYXRlX3F0YWlsKHN0cnVjdCB2CiAKICAgICAv
KiBOZWVkIGhvbGQgcmVnaXN0ZXIgbG9jayB3aGVuIHVwZGF0ZSB0YWlsICov
CiAgICAgQVNTRVJUKCBzcGluX2lzX2xvY2tlZCgmaW9tbXUtPnJlZ2lzdGVy
X2xvY2spICk7Ci0gICAgdmFsID0gKGluZGV4ICsgMSkgJSBRSU5WQUxfRU5U
UllfTlI7CisgICAgdmFsID0gKGluZGV4ICsgMSkgJiAocWlfZW50cnlfbnIg
LSAxKTsKICAgICBkbWFyX3dyaXRlcShpb21tdS0+cmVnLCBETUFSX0lRVF9S
RUcsICh2YWwgPDwgUUlOVkFMX0lOREVYX1NISUZUKSk7CiB9CiAKQEAgLTQw
Myw4ICs0MDYsMjggQEAgaW50IGVuYWJsZV9xaW52YWwoc3RydWN0IHZ0ZF9p
b21tdSAqaW9tbQogCiAgICAgaWYgKCBpb21tdS0+cWludmFsX21hZGRyID09
IDAgKQogICAgIHsKLSAgICAgICAgaW9tbXUtPnFpbnZhbF9tYWRkciA9IGFs
bG9jX3BndGFibGVfbWFkZHIoUUlOVkFMX0FSQ0hfUEFHRV9OUiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW9tbXUtPm5vZGUpOworICAgICAgICBpZiAoICFxaV9lbnRyeV9uciApCisg
ICAgICAgIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBXaXRo
IHRoZSBwcmVzZW50IHN5bmNocm9ub3VzIG1vZGVsLCB3ZSBuZWVkIHR3byBz
bG90cyBmb3IgZXZlcnkKKyAgICAgICAgICAgICAqIG9wZXJhdGlvbiAodGhl
IG9wZXJhdGlvbiBpdHNlbGYgYW5kIGEgd2FpdCBkZXNjcmlwdG9yKS4gIFRo
ZXJlCisgICAgICAgICAgICAgKiBjYW4gYmUgb25lIHN1Y2ggcGFpciBvZiBy
ZXF1ZXN0cyBwZW5kaW5nIHBlciBDUFUuICBPbmUgZXh0cmEKKyAgICAgICAg
ICAgICAqIGVudHJ5IGlzIG5lZWRlZCBhcyB0aGUgcmluZyBpcyBjb25zaWRl
cmVkIGZ1bGwgd2hlbiB0aGVyZSdzCisgICAgICAgICAgICAgKiBvbmx5IG9u
ZSBlbnRyeSBsZWZ0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBC
VUlMRF9CVUdfT04oQ09ORklHX05SX0NQVVMgKiAyID49IFFJTlZBTF9NQVhf
RU5UUllfTlIpOworICAgICAgICAgICAgcWlfcGdfb3JkZXIgPSBnZXRfb3Jk
ZXJfZnJvbV9ieXRlcygobnVtX3ByZXNlbnRfY3B1cygpICogMiArIDEpIDw8
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChQQUdFX1NISUZUIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFFJTlZBTF9FTlRSWV9PUkRFUikpOwor
ICAgICAgICAgICAgcWlfZW50cnlfbnIgPSAxdSA8PCAocWlfcGdfb3JkZXIg
KyBRSU5WQUxfRU5UUllfT1JERVIpOworCisgICAgICAgICAgICBkcHJpbnRr
KFhFTkxPR19JTkZPIFZURFBSRUZJWCwKKyAgICAgICAgICAgICAgICAgICAg
IlFJOiB1c2luZyAldS1lbnRyeSByaW5nKHMpXG4iLCBxaV9lbnRyeV9ucik7
CisgICAgICAgIH0KKworICAgICAgICBpb21tdS0+cWludmFsX21hZGRyID0K
KyAgICAgICAgICAgIGFsbG9jX3BndGFibGVfbWFkZHIocWlfZW50cnlfbnIg
Pj4gUUlOVkFMX0VOVFJZX09SREVSLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpb21tdS0+bm9kZSk7CiAgICAgICAgIGlmICggaW9tbXUt
PnFpbnZhbF9tYWRkciA9PSAwICkKICAgICAgICAgewogICAgICAgICAgICAg
ZHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgsCkBAIC00MTgsMTUg
KzQ0MSwxNiBAQCBpbnQgZW5hYmxlX3FpbnZhbChzdHJ1Y3QgdnRkX2lvbW11
ICppb21tCiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPnJlZ2lz
dGVyX2xvY2ssIGZsYWdzKTsKIAotICAgIC8qIFNldHVwIEludmFsaWRhdGlv
biBRdWV1ZSBBZGRyZXNzKElRQSkgcmVnaXN0ZXIgd2l0aCB0aGUKLSAgICAg
KiBhZGRyZXNzIG9mIHRoZSBwYWdlIHdlIGp1c3QgYWxsb2NhdGVkLiAgUVMg
ZmllbGQgYXQKLSAgICAgKiBiaXRzWzI6MF0gdG8gaW5kaWNhdGUgc2l6ZSBv
ZiBxdWV1ZSBpcyBvbmUgNEtCIHBhZ2UuCi0gICAgICogVGhhdCdzIDI1NiBl
bnRyaWVzLiAgUXVldWVkIEhlYWQgKElRSCkgYW5kIFF1ZXVlIFRhaWwgKElR
VCkKLSAgICAgKiByZWdpc3RlcnMgYXJlIGF1dG9tYXRpY2FsbHkgcmVzZXQg
dG8gMCB3aXRoIHdyaXRlCi0gICAgICogdG8gSVFBIHJlZ2lzdGVyLgorICAg
IC8qCisgICAgICogU2V0dXAgSW52YWxpZGF0aW9uIFF1ZXVlIEFkZHJlc3Mg
KElRQSkgcmVnaXN0ZXIgd2l0aCB0aGUgYWRkcmVzcyBvZiB0aGUKKyAgICAg
KiBwYWdlcyB3ZSBqdXN0IGFsbG9jYXRlZC4gIFRoZSBRUyBmaWVsZCBhdCBi
aXRzWzI6MF0gaW5kaWNhdGVzIHRoZSBzaXplCisgICAgICogKHBhZ2Ugb3Jk
ZXIpIG9mIHRoZSBxdWV1ZS4KKyAgICAgKgorICAgICAqIFF1ZXVlZCBIZWFk
IChJUUgpIGFuZCBRdWV1ZSBUYWlsIChJUVQpIHJlZ2lzdGVycyBhcmUgYXV0
b21hdGljYWxseQorICAgICAqIHJlc2V0IHRvIDAgd2l0aCB3cml0ZSB0byBJ
UUEgcmVnaXN0ZXIuCiAgICAgICovCiAgICAgZG1hcl93cml0ZXEoaW9tbXUt
PnJlZywgRE1BUl9JUUFfUkVHLAotICAgICAgICAgICAgICAgIGlvbW11LT5x
aW52YWxfbWFkZHIgfCBRSU5WQUxfUEFHRV9PUkRFUik7CisgICAgICAgICAg
ICAgICAgaW9tbXUtPnFpbnZhbF9tYWRkciB8IHFpX3BnX29yZGVyKTsKIAog
ICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIERNQVJfSVFUX1JFRywgMCk7
CiAK

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.13-2.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.13-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHNpemUgY29tbWFuZCBidWZmZXIgZHluYW1pY2FsbHkK
CldpdGggdGhlIHByZXNlbnQgc3luY2hyb25vdXMgbW9kZWwsIHdlIG5lZWQg
dHdvIHNsb3RzIGZvciBldmVyeQpvcGVyYXRpb24gKHRoZSBvcGVyYXRpb24g
aXRzZWxmIGFuZCBhIHdhaXQgY29tbWFuZCkuICBUaGVyZSBjYW4gYmUgb25l
CnN1Y2ggcGFpciBvZiBjb21tYW5kcyBwZW5kaW5nIHBlciBDUFUuIFRvIGVu
c3VyZSB0aGF0IHVuZGVyIGFsbCBub3JtYWwKY2lyY3Vtc3RhbmNlcyBhIHNs
b3QgaXMgYWx3YXlzIGF2YWlsYWJsZSB3aGVuIG9uZSBpcyByZXF1ZXN0ZWQs
IHNpemUgdGhlCmNvbW1hbmQgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJl
ciBvZiBwcmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAv
IENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg
PGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50
IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91
Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0zNSw4ICszNSw4IEBAIHN0YXRpYyBp
bnQgcXVldWVfaW9tbXVfY29tbWFuZChzdHJ1Y3QgYW0KICAgICBpZiAoIGhl
YWQgIT0gdGFpbCApCiAgICAgewogICAgICAgICBtZW1jcHkoaW9tbXUtPmNt
ZF9idWZmZXIuYnVmZmVyICsKLSAgICAgICAgICAgICAgIChpb21tdS0+Y21k
X2J1ZmZlci50YWlsICogSU9NTVVfQ01EX0JVRkZFUl9FTlRSWV9TSVpFKSwK
LSAgICAgICAgICAgICAgIGNtZCwgSU9NTVVfQ01EX0JVRkZFUl9FTlRSWV9T
SVpFKTsKKyAgICAgICAgICAgICAgIChpb21tdS0+Y21kX2J1ZmZlci50YWls
ICogc2l6ZW9mKGNtZF9lbnRyeV90KSksCisgICAgICAgICAgICAgICBjbWQs
IHNpemVvZihjbWRfZW50cnlfdCkpOwogCiAgICAgICAgIGlvbW11LT5jbWRf
YnVmZmVyLnRhaWwgPSB0YWlsOwogICAgICAgICByZXR1cm4gMTsKLS0tIGEv
eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYworKysg
Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jCkBA
IC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJfaW9tbXVf
Y21kX2J1ZmZlcl9pbgogICAgIHdyaXRlbChlbnRyeSwgaW9tbXUtPm1taW9f
YmFzZSArIElPTU1VX0NNRF9CVUZGRVJfQkFTRV9MT1dfT0ZGU0VUKTsKIAog
ICAgIHBvd2VyX29mMl9lbnRyaWVzID0gZ2V0X29yZGVyX2Zyb21fYnl0ZXMo
aW9tbXUtPmNtZF9idWZmZXIuYWxsb2Nfc2l6ZSkgKwotICAgICAgICBJT01N
VV9DTURfQlVGRkVSX1BPV0VSX09GMl9FTlRSSUVTX1BFUl9QQUdFOworICAg
ICAgICBQQUdFX1NISUZUIC0gSU9NTVVfQ01EX0JVRkZFUl9FTlRSWV9PUkRF
UjsKIAogICAgIGVudHJ5ID0gMDsKICAgICBpb21tdV9zZXRfYWRkcl9oaV90
b19yZWcoJmVudHJ5LCBhZGRyX2hpKTsKQEAgLTEwNTAsOSArMTA1MCwzMSBA
QCBzdGF0aWMgdm9pZCAqX19pbml0IGFsbG9jYXRlX3JpbmdfYnVmZmVyCiBz
dGF0aWMgdm9pZCAqIF9faW5pdCBhbGxvY2F0ZV9jbWRfYnVmZmVyKHN0cnVj
dCBhbWRfaW9tbXUgKmlvbW11KQogewogICAgIC8qIGFsbG9jYXRlICdjb21t
YW5kIGJ1ZmZlcicgaW4gcG93ZXIgb2YgMiBpbmNyZW1lbnRzIG9mIDRLICov
CisgICAgc3RhdGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IG5yX2Vu
dHM7CisKKyAgICBpZiAoICFucl9lbnRzICkKKyAgICB7CisgICAgICAgIHVu
c2lnbmVkIGludCBvcmRlcjsKKworICAgICAgICAvKgorICAgICAgICAgKiBX
aXRoIHRoZSBwcmVzZW50IHN5bmNocm9ub3VzIG1vZGVsLCB3ZSBuZWVkIHR3
byBzbG90cyBmb3IgZXZlcnkKKyAgICAgICAgICogb3BlcmF0aW9uICh0aGUg
b3BlcmF0aW9uIGl0c2VsZiBhbmQgYSB3YWl0IGNvbW1hbmQpLiAgVGhlcmUg
Y2FuIGJlCisgICAgICAgICAqIG9uZSBzdWNoIHBhaXIgb2YgcmVxdWVzdHMg
cGVuZGluZyBwZXIgQ1BVLiAgT25lIGV4dHJhIGVudHJ5IGlzCisgICAgICAg
ICAqIG5lZWRlZCBhcyB0aGUgcmluZyBpcyBjb25zaWRlcmVkIGZ1bGwgd2hl
biB0aGVyZSdzIG9ubHkgb25lIGVudHJ5CisgICAgICAgICAqIGxlZnQuCisg
ICAgICAgICAqLworICAgICAgICBCVUlMRF9CVUdfT04oQ09ORklHX05SX0NQ
VVMgKiAyID49IElPTU1VX0NNRF9CVUZGRVJfTUFYX0VOVFJJRVMpOworICAg
ICAgICBvcmRlciA9IGdldF9vcmRlcl9mcm9tX2J5dGVzKChudW1fcHJlc2Vu
dF9jcHVzKCkgKiAyICsgMSkgPDwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVSKTsK
KyAgICAgICAgbnJfZW50cyA9IDF1IDw8IChvcmRlciArIFBBR0VfU0hJRlQg
LSBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVSKTsKKworICAgICAgICBB
TURfSU9NTVVfREVCVUcoInVzaW5nICV1LWVudHJ5IGNtZCByaW5nKHMpXG4i
LCBucl9lbnRzKTsKKyAgICB9CisKKyAgICBCVUlMRF9CVUdfT04oc2l6ZW9m
KGNtZF9lbnRyeV90KSAhPSAoMXUgPDwgSU9NTVVfQ01EX0JVRkZFUl9FTlRS
WV9PUkRFUikpOworCiAgICAgcmV0dXJuIGFsbG9jYXRlX3JpbmdfYnVmZmVy
KCZpb21tdS0+Y21kX2J1ZmZlciwgc2l6ZW9mKGNtZF9lbnRyeV90KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfQ01EX0JVRkZF
Ul9ERUZBVUxUX0VOVFJJRVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJDb21tYW5kIEJ1ZmZlciIsIGZhbHNlKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbnJfZW50cywgIkNvbW1hbmQgQnVmZmVy
IiwgZmFsc2UpOwogfQogCiBzdGF0aWMgdm9pZCAqIF9faW5pdCBhbGxvY2F0
ZV9ldmVudF9sb2coc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCi0tLSBhL3hl
bi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtZGVmcy5oCisr
KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtZGVm
cy5oCkBAIC0yMCw5ICsyMCw2IEBACiAjaWZuZGVmIF9BU01fWDg2XzY0X0FN
RF9JT01NVV9ERUZTX0gKICNkZWZpbmUgX0FTTV9YODZfNjRfQU1EX0lPTU1V
X0RFRlNfSAogCi0vKiBJT01NVSBDb21tYW5kIEJ1ZmZlciBlbnRyaWVzOiBp
biBwb3dlciBvZiAyIGluY3JlbWVudHMsIG1pbmltdW0gb2YgMjU2ICovCi0j
ZGVmaW5lIElPTU1VX0NNRF9CVUZGRVJfREVGQVVMVF9FTlRSSUVTCTUxMgot
CiAvKiBJT01NVSBFdmVudCBMb2cgZW50cmllczogaW4gcG93ZXIgb2YgMiBp
bmNyZW1lbnRzLCBtaW5pbXVtIG9mIDI1NiAqLwogI2RlZmluZSBJT01NVV9F
VkVOVF9MT0dfREVGQVVMVF9FTlRSSUVTICAgICA1MTIKIApAQCAtMTY4LDgg
KzE2NSw4IEBAIHN0cnVjdCBhbWRfaW9tbXVfZHRlIHsKICNkZWZpbmUgSU9N
TVVfQ01EX0JVRkZFUl9MRU5HVEhfTUFTSwkJMHgwRjAwMDAwMAogI2RlZmlu
ZSBJT01NVV9DTURfQlVGRkVSX0xFTkdUSF9TSElGVAkJMjQKIAotI2RlZmlu
ZSBJT01NVV9DTURfQlVGRkVSX0VOVFJZX1NJWkUJCQkxNgotI2RlZmluZSBJ
T01NVV9DTURfQlVGRkVSX1BPV0VSX09GMl9FTlRSSUVTX1BFUl9QQUdFCTgK
KyNkZWZpbmUgSU9NTVVfQ01EX0JVRkZFUl9FTlRSWV9PUkRFUiAgICAgICAg
ICAgIDQKKyNkZWZpbmUgSU9NTVVfQ01EX0JVRkZFUl9NQVhfRU5UUklFUyAg
ICAgICAgICAgICgxdSA8PCAxNSkKIAogI2RlZmluZSBJT01NVV9DTURfT1BD
T0RFX01BU0sJCQkweEYwMDAwMDAwCiAjZGVmaW5lIElPTU1VX0NNRF9PUENP
REVfU0hJRlQJCQkyOAo=

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.13-3.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.13-3.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBlbGltaW5hdGUgZmx1c2ggcmVsYXRlZCB0aW1lb3V0cwoKTGVh
dmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24gcGVuZGluZyB3aGVuIGl0
IGFwcGVhcnMgdG8gdGFrZSB0b28KbG9uZyBpcyBwcm9ibGVtYXRpYzogSWYg
ZS5nLiBhIFFJIGNvbW1hbmQgY29tcGxldGVkIGxhdGVyLCB0aGUgd3JpdGUg
dG8KdGhlICJwb2xsIHNsb3QiIG1heSBpbnN0ZWFkIGJlIHVuZGVyc3Rvb2Qg
dG8gc2lnbmFsIGEgc3Vic2VxdWVudGx5CnN0YXJ0ZWQgY29tbWFuZCdzIGNv
bXBsZXRpb24uIEFsc28gb3VyIGFjY291bnRpbmcgb2YgdGhlIHRpbWVvdXQg
cGVyaW9kCndhcyBhY3R1YWxseSB3cm9uZzogV2UgaW5jbHVkZWQgdGhlIHRp
bWUgaXQgdG9vayBmb3IgdGhlIGNvbW1hbmQgdG8KYWN0dWFsbHkgbWFrZSBp
dCB0byB0aGUgZnJvbnQgb2YgdGhlIHF1ZXVlLCB3aGljaCBjb3VsZCBiZSBo
ZWF2aWx5CmFmZmVjdGVkIGJ5IGd1ZXN0cyBvdGhlciB0aGFuIHRoZSBvbmUg
Zm9yIHdoaWNoIHRoZSBmbHVzaCBpcyBiZWluZwpwZXJmb3JtZWQuCgpEbyBh
d2F5IHdpdGggYWxsIHRpbWVvdXQgZGV0ZWN0aW9uIG9uIGFsbCBmbHVzaCBy
ZWxhdGVkIGNvZGUgcGF0aHMuCkxvZyBleGNlc3NpdmVseSBsb25nIHByb2Nl
c3NpbmcgdGltZXMgKHdpdGggYSBwcm9ncmVzc2l2ZSB0aHJlc2hvbGQpIHRv
CmhhdmUgc29tZSBpbmRpY2F0aW9uIG9mIHByb2JsZW1zIGluIHRoaXMgYXJl
YS4KCkFkZGl0aW9uYWxseSBsb2cgKG9uY2UpIGlmIHFpbnZhbF9uZXh0X2lu
ZGV4KCkgZGlkbid0IGltbWVkaWF0ZWx5IGZpbmQKYW4gYXZhaWxhYmxlIHNs
b3QuIFRvZ2V0aGVyIHdpdGggdGhlIGVhcmxpZXIgY2hhbmdlIHNpemluZyB0
aGUgcXVldWUocykKZHluYW1pY2FsbHksIHdlIHNob3VsZCBub3cgaGF2ZSBh
IGd1YXJhbnRlZSB0aGF0IHdpdGggb3VyIGZ1bGx5CnN5bmNocm9ub3VzIG1v
ZGVsIGFueSBkZW1hbmQgZm9yIHNsb3RzIGNhbiBhY3R1YWxseSBiZSBzYXRp
c2ZpZWQuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4
NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5v
cmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5o
CisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmgKQEAg
LTEyNyw2ICsxMjcsMzQgQEAgZG8gewogICAgIH0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
IH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgSU9NTVVfRkxVU0hfV0FJVCh3aGF0
LCBpb21tdSwgb2Zmc2V0LCBvcCwgY29uZCwgc3RzKSAgICAgICBcCitkbyB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQg
X19yZWFkX21vc3RseSB0aHJlc2hvbGQgPSAxOyAgICAgICAgICAgICAgIFwK
KyAgICBzX3RpbWVfdCBzdGFydCA9IE5PVygpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc190aW1lX3QgdGltZW91
dCA9IHN0YXJ0ICsgRE1BUl9PUEVSQVRJT05fVElNRU9VVCAqIHRocmVzaG9s
ZDsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKCA7IDsg
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBz
dHMgPSBvcChpb21tdS0+cmVnLCBvZmZzZXQpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKCBjb25kICkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoIHRpbWVvdXQgJiYg
Tk9XKCkgPiB0aW1lb3V0ICkgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0aHJlc2hv
bGQgfD0gdGhyZXNob2xkIDw8IDE7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBS
RUZJWCAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICAgICAiIElPTU1VIyV1OiAlcyBmbHVzaCB0YWtpbmcgdG9vIGxvbmdcbiIs
ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCB3
aGF0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
ICAgdGltZW91dCA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIGNwdV9yZWxheCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCAhdGltZW91dCAp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklY
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICIgSU9NTVUjJXU6ICVzIGZsdXNoIHRvb2sgJWx1bXNcbiIsICAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIHdoYXQs
IChOT1coKSAtIHN0YXJ0KSAvIDEwMDAwMDAwKTsgICAgXAorfSB3aGlsZSAo
IGZhbHNlICkKKwogaW50IHZ0ZF9od19jaGVjayh2b2lkKTsKIHZvaWQgZGlz
YWJsZV9wbXIoc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUpOwogaW50IGlzX2ln
ZF9kcmhkKHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZCk7Ci0tLSBhL3hl
bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0zMjAsOCArMzIw
LDggQEAgc3RhdGljIHZvaWQgaW9tbXVfZmx1c2hfd3JpdGVfYnVmZmVyKHN0
cgogICAgIGRtYXJfd3JpdGVsKGlvbW11LT5yZWcsIERNQVJfR0NNRF9SRUcs
IHZhbCB8IERNQV9HQ01EX1dCRik7CiAKICAgICAvKiBNYWtlIHN1cmUgaGFy
ZHdhcmUgY29tcGxldGUgaXQgKi8KLSAgICBJT01NVV9XQUlUX09QKGlvbW11
LCBETUFSX0dTVFNfUkVHLCBkbWFyX3JlYWRsLAotICAgICAgICAgICAgICAg
ICAgISh2YWwgJiBETUFfR1NUU19XQkZTKSwgdmFsKTsKKyAgICBJT01NVV9G
TFVTSF9XQUlUKCJ3cml0ZSBidWZmZXIiLCBpb21tdSwgRE1BUl9HU1RTX1JF
RywgZG1hcl9yZWFkbCwKKyAgICAgICAgICAgICAgICAgICAgICEodmFsICYg
RE1BX0dTVFNfV0JGUyksIHZhbCk7CiAKICAgICBzcGluX3VubG9ja19pcnFy
ZXN0b3JlKCZpb21tdS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3MpOwogfQpAQCAt
MzcwLDggKzM3MCw4IEBAIGludCB2dGRfZmx1c2hfY29udGV4dF9yZWcoc3Ry
dWN0IHZ0ZF9pb20KICAgICBkbWFyX3dyaXRlcShpb21tdS0+cmVnLCBETUFS
X0NDTURfUkVHLCB2YWwpOwogCiAgICAgLyogTWFrZSBzdXJlIGhhcmR3YXJl
IGNvbXBsZXRlIGl0ICovCi0gICAgSU9NTVVfV0FJVF9PUChpb21tdSwgRE1B
Ul9DQ01EX1JFRywgZG1hcl9yZWFkcSwKLSAgICAgICAgICAgICAgICAgICEo
dmFsICYgRE1BX0NDTURfSUNDKSwgdmFsKTsKKyAgICBJT01NVV9GTFVTSF9X
QUlUKCJjb250ZXh0IiwgaW9tbXUsIERNQVJfQ0NNRF9SRUcsIGRtYXJfcmVh
ZHEsCisgICAgICAgICAgICAgICAgICAgICAhKHZhbCAmIERNQV9DQ01EX0lD
QyksIHZhbCk7CiAKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21t
dS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3MpOwogICAgIC8qIGZsdXNoIGNvbnRl
eHQgZW50cnkgd2lsbCBpbXBsaWNpdGx5IGZsdXNoIHdyaXRlIGJ1ZmZlciAq
LwpAQCAtNDQ4LDggKzQ0OCw4IEBAIGludCB2dGRfZmx1c2hfaW90bGJfcmVn
KHN0cnVjdCB2dGRfaW9tbXUKICAgICBkbWFyX3dyaXRlcShpb21tdS0+cmVn
LCB0bGJfb2Zmc2V0ICsgOCwgdmFsKTsKIAogICAgIC8qIE1ha2Ugc3VyZSBo
YXJkd2FyZSBjb21wbGV0ZSBpdCAqLwotICAgIElPTU1VX1dBSVRfT1AoaW9t
bXUsICh0bGJfb2Zmc2V0ICsgOCksIGRtYXJfcmVhZHEsCi0gICAgICAgICAg
ICAgICAgICAhKHZhbCAmIERNQV9UTEJfSVZUKSwgdmFsKTsKKyAgICBJT01N
VV9GTFVTSF9XQUlUKCJpb3RsYiIsIGlvbW11LCAodGxiX29mZnNldCArIDgp
LCBkbWFyX3JlYWRxLAorICAgICAgICAgICAgICAgICAgICAgISh2YWwgJiBE
TUFfVExCX0lWVCksIHZhbCk7CiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9y
ZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKIAogICAgIC8qIGNo
ZWNrIElPVExCIGludmFsaWRhdGlvbiBncmFudWxhcml0eSAqLwotLS0gYS94
ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMKKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCkBAIC0yOSw4ICsy
OSw2IEBACiAjaW5jbHVkZSAiZXh0ZXJuLmgiCiAjaW5jbHVkZSAiLi4vYXRz
LmgiCiAKLSNkZWZpbmUgVlREX1FJX1RJTUVPVVQJMQotCiBzdGF0aWMgdW5z
aWduZWQgaW50IF9fcmVhZF9tb3N0bHkgcWlfcGdfb3JkZXI7CiBzdGF0aWMg
dW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgcWlfZW50cnlfbnI7CiAKQEAg
LTYwLDcgKzU4LDExIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcWludmFsX25l
eHRfaW5kZXgoc3QKICAgICAvKiAodGFpbCsxID09IGhlYWQpIGluZGljYXRl
cyBhIGZ1bGwgcXVldWUsIHdhaXQgZm9yIEhXICovCiAgICAgd2hpbGUgKCAo
KHRhaWwgKyAxKSAmIChxaV9lbnRyeV9uciAtIDEpKSA9PQogICAgICAgICAg
ICAgKCBkbWFyX3JlYWRxKGlvbW11LT5yZWcsIERNQVJfSVFIX1JFRykgPj4g
UUlOVkFMX0lOREVYX1NISUZUICkgKQorICAgIHsKKyAgICAgICAgcHJpbnRr
X29uY2UoWEVOTE9HX0VSUiBWVERQUkVGSVggIiBJT01NVSMldTogbm8gUUkg
c2xvdCBhdmFpbGFibGVcbiIsCisgICAgICAgICAgICAgICAgICAgIGlvbW11
LT5pbmRleCk7CiAgICAgICAgIGNwdV9yZWxheCgpOworICAgIH0KIAogICAg
IHJldHVybiB0YWlsOwogfQpAQCAtMTgwLDIzICsxODIsMzIgQEAgc3RhdGlj
IGludCBfX211c3RfY2hlY2sgcXVldWVfaW52YWxpZGF0ZQogICAgIC8qIE5v
dyB3ZSBkb24ndCBzdXBwb3J0IGludGVycnVwdCBtZXRob2QgKi8KICAgICBp
ZiAoIHN3ICkKICAgICB7Ci0gICAgICAgIHNfdGltZV90IHRpbWVvdXQ7Ci0K
LSAgICAgICAgLyogSW4gY2FzZSBhbGwgd2FpdCBkZXNjcmlwdG9yIHdyaXRl
cyB0byBzYW1lIGFkZHIgd2l0aCBzYW1lIGRhdGEgKi8KLSAgICAgICAgdGlt
ZW91dCA9IE5PVygpICsgTUlMTElTRUNTKGZsdXNoX2Rldl9pb3RsYiA/Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9kZXZf
aW90bGJfdGltZW91dCA6IFZURF9RSV9USU1FT1VUKTsKKyAgICAgICAgc3Rh
dGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHRocmVzaG9sZCA9IDE7
CisgICAgICAgIHNfdGltZV90IHN0YXJ0ID0gTk9XKCk7CisgICAgICAgIHNf
dGltZV90IHRpbWVvdXQgPSBzdGFydCArIChmbHVzaF9kZXZfaW90bGIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaW9tbXVfZGV2
X2lvdGxiX3RpbWVvdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDogMTAwKSAqIE1JTExJU0VDUyh0aHJlc2hvbGQpOwogCiAgICAg
ICAgIHdoaWxlICggQUNDRVNTX09OQ0UoKnRoaXNfcG9sbF9zbG90KSAhPSBR
SU5WQUxfU1RBVF9ET05FICkKICAgICAgICAgewotICAgICAgICAgICAgaWYg
KCBOT1coKSA+IHRpbWVvdXQgKQorICAgICAgICAgICAgaWYgKCB0aW1lb3V0
ICYmIE5PVygpID4gdGltZW91dCApCiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgcHJpbnRfcWlfcmVncyhpb21tdSk7CisgICAgICAgICAgICAg
ICAgdGhyZXNob2xkIHw9IHRocmVzaG9sZCA8PCAxOwogICAgICAgICAgICAg
ICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgKLSAgICAgICAg
ICAgICAgICAgICAgICAgIiBRdWV1ZSBpbnZhbGlkYXRlIHdhaXQgZGVzY3Jp
cHRvciB0aW1lZCBvdXRcbiIpOwotICAgICAgICAgICAgICAgIHJldHVybiAt
RVRJTUVET1VUOworICAgICAgICAgICAgICAgICAgICAgICAiIElPTU1VIyV1
OiBRSSVzIHdhaXQgZGVzY3JpcHRvciB0YWtpbmcgdG9vIGxvbmdcbiIsCisg
ICAgICAgICAgICAgICAgICAgICAgIGlvbW11LT5pbmRleCwgZmx1c2hfZGV2
X2lvdGxiID8gIiBkZXYiIDogIiIpOworICAgICAgICAgICAgICAgIHByaW50
X3FpX3JlZ3MoaW9tbXUpOworICAgICAgICAgICAgICAgIHRpbWVvdXQgPSAw
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY3B1X3JlbGF4KCk7CiAg
ICAgICAgIH0KKworICAgICAgICBpZiAoICF0aW1lb3V0ICkKKyAgICAgICAg
ICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgKKyAgICAgICAg
ICAgICAgICAgICAiIElPTU1VIyV1OiBRSSVzIHdhaXQgZGVzY3JpcHRvciB0
b29rICVsdW1zXG4iLAorICAgICAgICAgICAgICAgICAgIGlvbW11LT5pbmRl
eCwgZmx1c2hfZGV2X2lvdGxiID8gIiBkZXYiIDogIiIsCisgICAgICAgICAg
ICAgICAgICAgKE5PVygpIC0gc3RhcnQpIC8gMTAwMDAwMDApOworCiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIAo=

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.13-4.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.13-4.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHdhaXQgZm9yIGNvbW1hbmQgc2xvdCB0byBiZSBhdmFp
bGFibGUKCk5vIGNhbGxlciBjYXJlZCBhYm91dCBzZW5kX2lvbW11X2NvbW1h
bmQoKSBpbmRpY2F0aW5nIHVuYXZhaWxhYmlsaXR5IG9mCmEgc2xvdC4gSGVu
Y2UgaWYgYSBzdWZmaWNpZW50IG51bWJlciBwcmlvciBjb21tYW5kcyB0aW1l
ZCBvdXQsIHdlIGRpZApibGluZGx5IGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0
ZWQgY29tbWFuZCB3YXMgc3VibWl0dGVkIHRvIHRoZSBJT01NVQp3aGVuIHJl
YWxseSBpdCB3YXNuJ3QuIFRoaXMgY291bGQgbWVhbiBib3RoIGEgaGFuZ2lu
ZyBzeXN0ZW0gKHdhaXRpbmcKZm9yIGEgY29tbWFuZCB0byBjb21wbGV0ZSB0
aGF0IHdhcyBuZXZlciBzZWVuIGJ5IHRoZSBJT01NVSkgb3IgYmxpbmRseQpw
cm9wYWdhdGluZyBzdWNjZXNzIGJhY2sgdG8gY2FsbGVycywgbWFraW5nIHRo
ZW0gYmVsaWV2ZSB0aGV5J3JlIGZpbmUKdG8gZS5nLiBmcmVlIHByZXZpb3Vz
bHkgdW5tYXBwZWQgcGFnZXMuCgpGb2xkIHRoZSB0aHJlZSBpbnZvbHZlZCBm
dW5jdGlvbnMgaW50byBvbmUsIGFkZCBzcGluIHdhaXRpbmcgZm9yIGFuCmF2
YWlsYWJsZSBzbG90IGFsb25nIHRoZSBsaW5lcyBvZiBWVC1kJ3MgcWludmFs
X25leHRfaW5kZXgoKSwgYW5kIGFzIGEKY29uc2VxdWVuY2UgZHJvcCBhbGwg
ZXJyb3IgaW5kaWNhdG9yIHJldHVybiB0eXBlcy92YWx1ZXMuCgpUaGlzIGlz
IHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9m
Zi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdl
ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0yMiw0
OCArMjIsMzYgQEAKICNpbmNsdWRlIDxhc20vaHZtL3N2bS9hbWQtaW9tbXUt
cHJvdG8uaD4KICNpbmNsdWRlICIuLi9hdHMuaCIKIAotc3RhdGljIGludCBx
dWV1ZV9pb21tdV9jb21tYW5kKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1
MzIgY21kW10pCitzdGF0aWMgdm9pZCBzZW5kX2lvbW11X2NvbW1hbmQoc3Ry
dWN0IGFtZF9pb21tdSAqaW9tbXUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgdWludDMyX3QgY21kWzRdKQogewotICAgIHVpbnQz
Ml90IHRhaWwsIGhlYWQ7CisgICAgdWludDMyX3QgdGFpbDsKIAogICAgIHRh
aWwgPSBpb21tdS0+Y21kX2J1ZmZlci50YWlsOwogICAgIGlmICggKyt0YWls
ID09IGlvbW11LT5jbWRfYnVmZmVyLmVudHJpZXMgKQogICAgICAgICB0YWls
ID0gMDsKIAotICAgIGhlYWQgPSBpb21tdV9nZXRfcmJfcG9pbnRlcihyZWFk
bChpb21tdS0+bW1pb19iYXNlICsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSU9NTVVfQ01EX0JVRkZFUl9IRUFEX09GRlNFVCkp
OwotICAgIGlmICggaGVhZCAhPSB0YWlsICkKKyAgICB3aGlsZSAoIHRhaWwg
PT0gaW9tbXVfZ2V0X3JiX3BvaW50ZXIocmVhZGwoaW9tbXUtPm1taW9fYmFz
ZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElPTU1VX0NNRF9CVUZGRVJfSEVBRF9PRkZTRVQpKSApCiAgICAg
ewotICAgICAgICBtZW1jcHkoaW9tbXUtPmNtZF9idWZmZXIuYnVmZmVyICsK
LSAgICAgICAgICAgICAgIChpb21tdS0+Y21kX2J1ZmZlci50YWlsICogc2l6
ZW9mKGNtZF9lbnRyeV90KSksCi0gICAgICAgICAgICAgICBjbWQsIHNpemVv
ZihjbWRfZW50cnlfdCkpOwotCi0gICAgICAgIGlvbW11LT5jbWRfYnVmZmVy
LnRhaWwgPSB0YWlsOwotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgcHJp
bnRrX29uY2UoWEVOTE9HX0VSUgorICAgICAgICAgICAgICAgICAgICAiQU1E
IElPTU1VICUwNHg6JTAyeDolMDJ4LiV1OiBubyBjbWQgc2xvdCBhdmFpbGFi
bGVcbiIsCisgICAgICAgICAgICAgICAgICAgIGlvbW11LT5zZWcsIFBDSV9C
VVMoaW9tbXUtPmJkZiksCisgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9U
KGlvbW11LT5iZGYpLCBQQ0lfRlVOQyhpb21tdS0+YmRmKSk7CisgICAgICAg
IGNwdV9yZWxheCgpOwogICAgIH0KIAotICAgIHJldHVybiAwOwotfQorICAg
IG1lbWNweShpb21tdS0+Y21kX2J1ZmZlci5idWZmZXIgKworICAgICAgICAg
ICAoaW9tbXUtPmNtZF9idWZmZXIudGFpbCAqIHNpemVvZihjbWRfZW50cnlf
dCkpLAorICAgICAgICAgICBjbWQsIHNpemVvZihjbWRfZW50cnlfdCkpOwog
Ci1zdGF0aWMgdm9pZCBjb21taXRfaW9tbXVfY29tbWFuZF9idWZmZXIoc3Ry
dWN0IGFtZF9pb21tdSAqaW9tbXUpCi17Ci0gICAgdTMyIHRhaWwgPSAwOwor
ICAgIGlvbW11LT5jbWRfYnVmZmVyLnRhaWwgPSB0YWlsOwogCisgICAgdGFp
bCA9IDA7CiAgICAgaW9tbXVfc2V0X3JiX3BvaW50ZXIoJnRhaWwsIGlvbW11
LT5jbWRfYnVmZmVyLnRhaWwpOwogICAgIHdyaXRlbCh0YWlsLCBpb21tdS0+
bW1pb19iYXNlK0lPTU1VX0NNRF9CVUZGRVJfVEFJTF9PRkZTRVQpOwogfQog
Ci1pbnQgc2VuZF9pb21tdV9jb21tYW5kKHN0cnVjdCBhbWRfaW9tbXUgKmlv
bW11LCB1MzIgY21kW10pCi17Ci0gICAgaWYgKCBxdWV1ZV9pb21tdV9jb21t
YW5kKGlvbW11LCBjbWQpICkKLSAgICB7Ci0gICAgICAgIGNvbW1pdF9pb21t
dV9jb21tYW5kX2J1ZmZlcihpb21tdSk7Ci0gICAgICAgIHJldHVybiAxOwot
ICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCiBzdGF0aWMgdm9pZCBmbHVz
aF9jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKIHsK
ICAgICB1MzIgY21kWzRdLCBzdGF0dXM7Cg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.13-5.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.13-5.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IGRyb3AgY29tbWFuZCBjb21wbGV0aW9uIHRpbWVvdXQK
CkZpcnN0IGFuZCBmb3JlbW9zdCAtIHN1Y2ggdGltZW91dHMgd2VyZSBub3Qg
c2lnbmFsZWQgdG8gY2FsbGVycywgbWFraW5nCnRoZW0gYmVsaWV2ZSB0aGV5
J3JlIGZpbmUgdG8gZS5nLiBmcmVlIHByZXZpb3VzbHkgdW5tYXBwZWQgcGFn
ZXMuCgpNaXJyb3IgVlQtZCdzIGJlaGF2aW9yOiBBIGZpeGVkIG51bWJlciBv
ZiBsb29wIGl0ZXJhdGlvbnMgaXMgbm90IGEKc3VpdGFibGUgd2F5IHRvIGRl
dGVjdCB0aW1lb3V0cyBpbiBhbiBlbnZpcm9ubWVudCAoQ1BVIGFuZCBidXMg
c3BlZWRzKQppbmRlcGVuZGVudCBtYW5uZXIgYW55d2F5LiBGdXJ0aGVybW9y
ZSwgbGVhdmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24KcGVuZGluZyB3
aGVuIGl0IGFwcGVhcnMgdG8gdGFrZSB0b28gbG9uZyBpcyBwcm9ibGVtYXRp
YzogSWYgYSBjb21tYW5kCmNvbXBsZXRlZCBsYXRlciwgdGhlIHNpZ25hbGlu
ZyBvZiBpdHMgY29tcGxldGlvbiBtYXkgaW5zdGVhZCBiZQp1bmRlcnN0b29k
IHRvIHNpZ25hbCBhIHN1YnNlcXVlbnRseSBzdGFydGVkIGNvbW1hbmQncyBj
b21wbGV0aW9uLgoKTG9nIGV4Y2Vzc2l2ZWx5IGxvbmcgcHJvY2Vzc2luZyB0
aW1lcyAod2l0aCBhIHByb2dyZXNzaXZlIHRocmVzaG9sZCkgdG8KaGF2ZSBz
b21lIGluZGljYXRpb24gb2YgcHJvYmxlbXMgaW4gdGhpcyBhcmVhLiBBbGxv
dyBjYWxsZXJzIHRvIHNwZWNpZnkKYSBub24tZGVmYXVsdCB0aW1lb3V0IGJp
YXMgZm9yIHRoaXMgbG9nZ2luZywgdXNpbmcgdGhlIHNhbWUgdmFsdWVzIGFz
ClZULWQgZG9lcywgd2hpY2ggaW4gcGFydGljdWxhciBtZWFucyBhIChieSBk
ZWZhdWx0KSBtdWNoIGxhcmdlciB2YWx1ZQpmb3IgZGV2aWNlIElPIFRMQiBp
bnZhbGlkYXRpb24uCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv
aW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k
L2lvbW11X2NtZC5jCkBAIC01MiwxMCArNTIsMTIgQEAgc3RhdGljIHZvaWQg
c2VuZF9pb21tdV9jb21tYW5kKHN0cnVjdCBhbQogICAgIHdyaXRlbCh0YWls
LCBpb21tdS0+bW1pb19iYXNlK0lPTU1VX0NNRF9CVUZGRVJfVEFJTF9PRkZT
RVQpOwogfQogCi1zdGF0aWMgdm9pZCBmbHVzaF9jb21tYW5kX2J1ZmZlcihz
dHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3N0YXRpYyB2b2lkIGZsdXNoX2Nv
bW1hbmRfYnVmZmVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHRpbWVv
dXRfYmFzZSkKIHsKLSAgICB1MzIgY21kWzRdLCBzdGF0dXM7Ci0gICAgaW50
IGxvb3BfY291bnQsIGNvbXBfd2FpdDsKKyAgICB1aW50MzJfdCBjbWRbNF07
CisgICAgc190aW1lX3Qgc3RhcnQsIHRpbWVvdXQ7CisgICAgc3RhdGljIHVu
c2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHRocmVzaG9sZCA9IDE7CiAKICAg
ICAvKiBSVzFDICdDb21XYWl0SW50JyBpbiBzdGF0dXMgcmVnaXN0ZXIgKi8K
ICAgICB3cml0ZWwoSU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlRfTUFTSywK
QEAgLTcxLDI0ICs3MywzMSBAQCBzdGF0aWMgdm9pZCBmbHVzaF9jb21tYW5k
X2J1ZmZlcihzdHJ1Y3QKICAgICAgICAgICAgICAgICAgICAgICAgICBJT01N
VV9DT01QX1dBSVRfSV9GTEFHX1NISUZULCAmY21kWzBdKTsKICAgICBzZW5k
X2lvbW11X2NvbW1hbmQoaW9tbXUsIGNtZCk7CiAKLSAgICAvKiBNYWtlIGxv
b3BfY291bnQgbG9uZyBlbm91Z2ggZm9yIHBvbGxpbmcgY29tcGxldGlvbiB3
YWl0IGJpdCAqLwotICAgIGxvb3BfY291bnQgPSAxMDAwOwotICAgIGRvIHsK
LSAgICAgICAgc3RhdHVzID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIElP
TU1VX1NUQVRVU19NTUlPX09GRlNFVCk7Ci0gICAgICAgIGNvbXBfd2FpdCA9
IGdldF9maWVsZF9mcm9tX3JlZ191MzIoc3RhdHVzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1NUQVRVU19D
T01QX1dBSVRfSU5UX01BU0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlRf
U0hJRlQpOwotICAgICAgICAtLWxvb3BfY291bnQ7Ci0gICAgfSB3aGlsZSAo
ICFjb21wX3dhaXQgJiYgbG9vcF9jb3VudCApOwotCi0gICAgaWYgKCBjb21w
X3dhaXQgKQorICAgIHN0YXJ0ID0gTk9XKCk7CisgICAgdGltZW91dCA9IHN0
YXJ0ICsgKHRpbWVvdXRfYmFzZSA/OiAxMDApICogTUlMTElTRUNTKHRocmVz
aG9sZCk7CisgICAgd2hpbGUgKCAhKHJlYWRsKGlvbW11LT5tbWlvX2Jhc2Ug
KyBJT01NVV9TVEFUVVNfTU1JT19PRkZTRVQpICYKKyAgICAgICAgICAgICAg
SU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlRfTUFTSykgKQogICAgIHsKLSAg
ICAgICAgLyogUlcxQyAnQ29tV2FpdEludCcgaW4gc3RhdHVzIHJlZ2lzdGVy
ICovCi0gICAgICAgIHdyaXRlbChJT01NVV9TVEFUVVNfQ09NUF9XQUlUX0lO
VF9NQVNLLAotICAgICAgICAgICAgICAgaW9tbXUtPm1taW9fYmFzZSArIElP
TU1VX1NUQVRVU19NTUlPX09GRlNFVCk7Ci0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgaWYgKCB0aW1lb3V0ICYmIE5PVygpID4gdGltZW91dCApCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHRocmVzaG9sZCB8PSB0aHJlc2hvbGQgPDwg
MTsKKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORworICAgICAg
ICAgICAgICAgICAgICJBTUQgSU9NTVUgJTA0eDolMDJ4OiUwMnguJXU6ICVz
Y29tcGxldGlvbiB3YWl0IHRha2luZyB0b28gbG9uZ1xuIiwKKyAgICAgICAg
ICAgICAgICAgICBpb21tdS0+c2VnLCBQQ0lfQlVTKGlvbW11LT5iZGYpLAor
ICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGlvbW11LT5iZGYpLCBQQ0lf
RlVOQyhpb21tdS0+YmRmKSwKKyAgICAgICAgICAgICAgICAgICB0aW1lb3V0
X2Jhc2UgPyAiaW90bGIgIiA6ICIiKTsKKyAgICAgICAgICAgIHRpbWVvdXQg
PSAwOworICAgICAgICB9CisgICAgICAgIGNwdV9yZWxheCgpOwogICAgIH0K
LSAgICBBTURfSU9NTVVfREVCVUcoIldhcm5pbmc6IENvbVdhaXRJbnQgYml0
IGRpZCBub3QgYXNzZXJ0IVxuIik7CisKKyAgICBpZiAoICF0aW1lb3V0ICkK
KyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCisgICAgICAgICAgICAg
ICAiQU1EIElPTU1VICUwNHg6JTAyeDolMDJ4LiV1OiAlc2NvbXBsZXRpb24g
d2FpdCB0b29rICVsdW1zXG4iLAorICAgICAgICAgICAgICAgaW9tbXUtPnNl
ZywgUENJX0JVUyhpb21tdS0+YmRmKSwKKyAgICAgICAgICAgICAgIFBDSV9T
TE9UKGlvbW11LT5iZGYpLCBQQ0lfRlVOQyhpb21tdS0+YmRmKSwKKyAgICAg
ICAgICAgICAgIHRpbWVvdXRfYmFzZSA/ICJpb3RsYiAiIDogIiIsCisgICAg
ICAgICAgICAgICAoTk9XKCkgLSBzdGFydCkgLyAxMDAwMDAwMCk7CiB9CiAK
IC8qIEJ1aWxkIGxvdyBsZXZlbCBpb21tdSBjb21tYW5kIG1lc3NhZ2VzICov
CkBAIC0zMDAsNyArMzA5LDcgQEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfaW90
bGIodTggZGV2Zm4sIGNvbgogICAgIC8qIHNlbmQgSU5WQUxJREFURV9JT1RM
Ql9QQUdFUyBjb21tYW5kICovCiAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlv
bW11LT5sb2NrLCBmbGFncyk7CiAgICAgaW52YWxpZGF0ZV9pb3RsYl9wYWdl
cyhpb21tdSwgbWF4cGVuZCwgMCwgcXVldWVpZCwgZGFkZHIsIHJlcV9pZCwg
b3JkZXIpOwotICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAg
ICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSwgaW9tbXVfZGV2X2lvdGxi
X3RpbWVvdXQpOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11
LT5sb2NrLCBmbGFncyk7CiB9CiAKQEAgLTMzNyw3ICszNDYsNyBAQCBzdGF0
aWMgdm9pZCBfYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKHN0cnVjCiAgICAgewog
ICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdz
KTsKICAgICAgICAgaW52YWxpZGF0ZV9pb21tdV9wYWdlcyhpb21tdSwgZGFk
ZHIsIGRvbV9pZCwgb3JkZXIpOwotICAgICAgICBmbHVzaF9jb21tYW5kX2J1
ZmZlcihpb21tdSk7CisgICAgICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlv
bW11LCAwKTsKICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9t
bXUtPmxvY2ssIGZsYWdzKTsKICAgICB9CiAKQEAgLTM2MSw3ICszNzAsNyBA
QCB2b2lkIGFtZF9pb21tdV9mbHVzaF9kZXZpY2Uoc3RydWN0IGFtZF9pCiAg
ICAgQVNTRVJUKCBzcGluX2lzX2xvY2tlZCgmaW9tbXUtPmxvY2spICk7CiAK
ICAgICBpbnZhbGlkYXRlX2Rldl90YWJsZV9lbnRyeShpb21tdSwgYmRmKTsK
LSAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSk7CisgICAgZmx1c2hf
Y29tbWFuZF9idWZmZXIoaW9tbXUsIDApOwogfQogCiB2b2lkIGFtZF9pb21t
dV9mbHVzaF9pbnRyZW1hcChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdWlu
dDE2X3QgYmRmKQpAQCAtMzY5LDcgKzM3OCw3IEBAIHZvaWQgYW1kX2lvbW11
X2ZsdXNoX2ludHJlbWFwKHN0cnVjdCBhbWQKICAgICBBU1NFUlQoIHNwaW5f
aXNfbG9ja2VkKCZpb21tdS0+bG9jaykgKTsKIAogICAgIGludmFsaWRhdGVf
aW50ZXJydXB0X3RhYmxlKGlvbW11LCBiZGYpOwotICAgIGZsdXNoX2NvbW1h
bmRfYnVmZmVyKGlvbW11KTsKKyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihp
b21tdSwgMCk7CiB9CiAKIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9jYWNo
ZXMoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCkBAIC0zNzcsNyArMzg2LDcg
QEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgYQog
ICAgIEFTU0VSVCggc3Bpbl9pc19sb2NrZWQoJmlvbW11LT5sb2NrKSApOwog
CiAgICAgaW52YWxpZGF0ZV9pb21tdV9hbGwoaW9tbXUpOwotICAgIGZsdXNo
X2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAgICBmbHVzaF9jb21tYW5kX2J1
ZmZlcihpb21tdSwgMCk7CiB9CiAKIHZvaWQgYW1kX2lvbW11X3NlbmRfZ3Vl
c3RfY21kKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1MzIgY21kW10pCkBA
IC0zODcsNyArMzk2LDggQEAgdm9pZCBhbWRfaW9tbXVfc2VuZF9ndWVzdF9j
bWQoc3RydWN0IGFtZAogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpb21tdS0+
bG9jaywgZmxhZ3MpOwogCiAgICAgc2VuZF9pb21tdV9jb21tYW5kKGlvbW11
LCBjbWQpOwotICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAg
ICAvKiBUQkQ6IFRpbWVvdXQgc2VsZWN0aW9uIG1heSByZXF1aXJlIHBlZWtp
bmcgaW50byBjbWRbXS4gKi8KKyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihp
b21tdSwgMCk7CiAKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21t
dS0+bG9jaywgZmxhZ3MpOwogfQo=

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.14-1.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.14-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBzaXplIHFpbnZhbCBxdWV1ZSBkeW5hbWljYWxseQoKV2l0aCB0
aGUgcHJlc2VudCBzeW5jaHJvbm91cyBtb2RlbCwgd2UgbmVlZCB0d28gc2xv
dHMgZm9yIGV2ZXJ5Cm9wZXJhdGlvbiAodGhlIG9wZXJhdGlvbiBpdHNlbGYg
YW5kIGEgd2FpdCBkZXNjcmlwdG9yKS4gIFRoZXJlIGNhbiBiZQpvbmUgc3Vj
aCBwYWlyIG9mIHJlcXVlc3RzIHBlbmRpbmcgcGVyIENQVS4gVG8gZW5zdXJl
IHRoYXQgdW5kZXIgYWxsCm5vcm1hbCBjaXJjdW1zdGFuY2VzIGEgc2xvdCBp
cyBhbHdheXMgYXZhaWxhYmxlIHdoZW4gb25lIGlzIHJlcXVlc3RlZCwKc2l6
ZSB0aGUgcXVldWUgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBw
cmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv
aW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t
bXUuaApAQCAtNDUwLDE3ICs0NTAsOSBAQCBzdHJ1Y3QgcWludmFsX2VudHJ5
IHsKICAgICB9cTsKIH07CiAKLS8qIE9yZGVyIG9mIHF1ZXVlIGludmFsaWRh
dGlvbiBwYWdlcyhtYXggaXMgOCkgKi8KLSNkZWZpbmUgUUlOVkFMX1BBR0Vf
T1JERVIgICAyCi0KLSNkZWZpbmUgUUlOVkFMX0FSQ0hfUEFHRV9PUkRFUiAg
KFFJTlZBTF9QQUdFX09SREVSICsgUEFHRV9TSElGVF80SyAtIFBBR0VfU0hJ
RlQpCi0jZGVmaW5lIFFJTlZBTF9BUkNIX1BBR0VfTlIgICAgICggUUlOVkFM
X0FSQ0hfUEFHRV9PUkRFUiA8IDAgPyAgXAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxIDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCBRSU5W
QUxfQVJDSF9QQUdFX09SREVSICkKLQogLyogRWFjaCBlbnRyeSBpcyAxNiBi
eXRlcywgc28gMl44IGVudHJpZXMgcGVyIHBhZ2UgKi8KICNkZWZpbmUgUUlO
VkFMX0VOVFJZX09SREVSICAoIFBBR0VfU0hJRlQgLSA0ICkKLSNkZWZpbmUg
UUlOVkFMX0VOVFJZX05SICAgICAoMSA8PCAoUUlOVkFMX1BBR0VfT1JERVIg
KyA4KSkKKyNkZWZpbmUgUUlOVkFMX01BWF9FTlRSWV9OUiAoMXUgPDwgKDcg
KyBRSU5WQUxfRU5UUllfT1JERVIpKQogCiAvKiBTdGF0dXMgZGF0YSBmbGFn
ICovCiAjZGVmaW5lIFFJTlZBTF9TVEFUX0lOSVQgIDAKLS0tIGEveGVuL2Ry
aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCisrKyBiL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpAQCAtMzEsNiArMzEsOSBA
QAogCiAjZGVmaW5lIFZURF9RSV9USU1FT1VUCTEKIAorc3RhdGljIHVuc2ln
bmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX3BnX29yZGVyOworc3RhdGljIHVu
c2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX2VudHJ5X25yOworCiBzdGF0
aWMgaW50IF9fbXVzdF9jaGVjayBpbnZhbGlkYXRlX3N5bmMoc3RydWN0IHZ0
ZF9pb21tdSAqaW9tbXUpOwogCiBzdGF0aWMgdm9pZCBwcmludF9xaV9yZWdz
KHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQpAQCAtNTUsNyArNTgsNyBAQCBz
dGF0aWMgdW5zaWduZWQgaW50IHFpbnZhbF9uZXh0X2luZGV4KHN0CiAgICAg
dGFpbCA+Pj0gUUlOVkFMX0lOREVYX1NISUZUOwogCiAgICAgLyogKHRhaWwr
MSA9PSBoZWFkKSBpbmRpY2F0ZXMgYSBmdWxsIHF1ZXVlLCB3YWl0IGZvciBI
VyAqLwotICAgIHdoaWxlICggKCB0YWlsICsgMSApICUgUUlOVkFMX0VOVFJZ
X05SID09CisgICAgd2hpbGUgKCAoKHRhaWwgKyAxKSAmIChxaV9lbnRyeV9u
ciAtIDEpKSA9PQogICAgICAgICAgICAgKCBkbWFyX3JlYWRxKGlvbW11LT5y
ZWcsIERNQVJfSVFIX1JFRykgPj4gUUlOVkFMX0lOREVYX1NISUZUICkgKQog
ICAgICAgICBjcHVfcmVsYXgoKTsKIApAQCAtNjgsNyArNzEsNyBAQCBzdGF0
aWMgdm9pZCBxaW52YWxfdXBkYXRlX3F0YWlsKHN0cnVjdCB2CiAKICAgICAv
KiBOZWVkIGhvbGQgcmVnaXN0ZXIgbG9jayB3aGVuIHVwZGF0ZSB0YWlsICov
CiAgICAgQVNTRVJUKCBzcGluX2lzX2xvY2tlZCgmaW9tbXUtPnJlZ2lzdGVy
X2xvY2spICk7Ci0gICAgdmFsID0gKGluZGV4ICsgMSkgJSBRSU5WQUxfRU5U
UllfTlI7CisgICAgdmFsID0gKGluZGV4ICsgMSkgJiAocWlfZW50cnlfbnIg
LSAxKTsKICAgICBkbWFyX3dyaXRlcShpb21tdS0+cmVnLCBETUFSX0lRVF9S
RUcsICh2YWwgPDwgUUlOVkFMX0lOREVYX1NISUZUKSk7CiB9CiAKQEAgLTQw
Myw4ICs0MDYsMjggQEAgaW50IGVuYWJsZV9xaW52YWwoc3RydWN0IHZ0ZF9p
b21tdSAqaW9tbQogCiAgICAgaWYgKCBpb21tdS0+cWludmFsX21hZGRyID09
IDAgKQogICAgIHsKLSAgICAgICAgaW9tbXUtPnFpbnZhbF9tYWRkciA9IGFs
bG9jX3BndGFibGVfbWFkZHIoUUlOVkFMX0FSQ0hfUEFHRV9OUiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW9tbXUtPm5vZGUpOworICAgICAgICBpZiAoICFxaV9lbnRyeV9uciApCisg
ICAgICAgIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBXaXRo
IHRoZSBwcmVzZW50IHN5bmNocm9ub3VzIG1vZGVsLCB3ZSBuZWVkIHR3byBz
bG90cyBmb3IgZXZlcnkKKyAgICAgICAgICAgICAqIG9wZXJhdGlvbiAodGhl
IG9wZXJhdGlvbiBpdHNlbGYgYW5kIGEgd2FpdCBkZXNjcmlwdG9yKS4gIFRo
ZXJlCisgICAgICAgICAgICAgKiBjYW4gYmUgb25lIHN1Y2ggcGFpciBvZiBy
ZXF1ZXN0cyBwZW5kaW5nIHBlciBDUFUuICBPbmUgZXh0cmEKKyAgICAgICAg
ICAgICAqIGVudHJ5IGlzIG5lZWRlZCBhcyB0aGUgcmluZyBpcyBjb25zaWRl
cmVkIGZ1bGwgd2hlbiB0aGVyZSdzCisgICAgICAgICAgICAgKiBvbmx5IG9u
ZSBlbnRyeSBsZWZ0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBC
VUlMRF9CVUdfT04oQ09ORklHX05SX0NQVVMgKiAyID49IFFJTlZBTF9NQVhf
RU5UUllfTlIpOworICAgICAgICAgICAgcWlfcGdfb3JkZXIgPSBnZXRfb3Jk
ZXJfZnJvbV9ieXRlcygobnVtX3ByZXNlbnRfY3B1cygpICogMiArIDEpIDw8
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChQQUdFX1NISUZUIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFFJTlZBTF9FTlRSWV9PUkRFUikpOwor
ICAgICAgICAgICAgcWlfZW50cnlfbnIgPSAxdSA8PCAocWlfcGdfb3JkZXIg
KyBRSU5WQUxfRU5UUllfT1JERVIpOworCisgICAgICAgICAgICBkcHJpbnRr
KFhFTkxPR19JTkZPIFZURFBSRUZJWCwKKyAgICAgICAgICAgICAgICAgICAg
IlFJOiB1c2luZyAldS1lbnRyeSByaW5nKHMpXG4iLCBxaV9lbnRyeV9ucik7
CisgICAgICAgIH0KKworICAgICAgICBpb21tdS0+cWludmFsX21hZGRyID0K
KyAgICAgICAgICAgIGFsbG9jX3BndGFibGVfbWFkZHIocWlfZW50cnlfbnIg
Pj4gUUlOVkFMX0VOVFJZX09SREVSLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpb21tdS0+bm9kZSk7CiAgICAgICAgIGlmICggaW9tbXUt
PnFpbnZhbF9tYWRkciA9PSAwICkKICAgICAgICAgewogICAgICAgICAgICAg
ZHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgsCkBAIC00MTgsMTUg
KzQ0MSwxNiBAQCBpbnQgZW5hYmxlX3FpbnZhbChzdHJ1Y3QgdnRkX2lvbW11
ICppb21tCiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPnJlZ2lz
dGVyX2xvY2ssIGZsYWdzKTsKIAotICAgIC8qIFNldHVwIEludmFsaWRhdGlv
biBRdWV1ZSBBZGRyZXNzKElRQSkgcmVnaXN0ZXIgd2l0aCB0aGUKLSAgICAg
KiBhZGRyZXNzIG9mIHRoZSBwYWdlIHdlIGp1c3QgYWxsb2NhdGVkLiAgUVMg
ZmllbGQgYXQKLSAgICAgKiBiaXRzWzI6MF0gdG8gaW5kaWNhdGUgc2l6ZSBv
ZiBxdWV1ZSBpcyBvbmUgNEtCIHBhZ2UuCi0gICAgICogVGhhdCdzIDI1NiBl
bnRyaWVzLiAgUXVldWVkIEhlYWQgKElRSCkgYW5kIFF1ZXVlIFRhaWwgKElR
VCkKLSAgICAgKiByZWdpc3RlcnMgYXJlIGF1dG9tYXRpY2FsbHkgcmVzZXQg
dG8gMCB3aXRoIHdyaXRlCi0gICAgICogdG8gSVFBIHJlZ2lzdGVyLgorICAg
IC8qCisgICAgICogU2V0dXAgSW52YWxpZGF0aW9uIFF1ZXVlIEFkZHJlc3Mg
KElRQSkgcmVnaXN0ZXIgd2l0aCB0aGUgYWRkcmVzcyBvZiB0aGUKKyAgICAg
KiBwYWdlcyB3ZSBqdXN0IGFsbG9jYXRlZC4gIFRoZSBRUyBmaWVsZCBhdCBi
aXRzWzI6MF0gaW5kaWNhdGVzIHRoZSBzaXplCisgICAgICogKHBhZ2Ugb3Jk
ZXIpIG9mIHRoZSBxdWV1ZS4KKyAgICAgKgorICAgICAqIFF1ZXVlZCBIZWFk
IChJUUgpIGFuZCBRdWV1ZSBUYWlsIChJUVQpIHJlZ2lzdGVycyBhcmUgYXV0
b21hdGljYWxseQorICAgICAqIHJlc2V0IHRvIDAgd2l0aCB3cml0ZSB0byBJ
UUEgcmVnaXN0ZXIuCiAgICAgICovCiAgICAgZG1hcl93cml0ZXEoaW9tbXUt
PnJlZywgRE1BUl9JUUFfUkVHLAotICAgICAgICAgICAgICAgIGlvbW11LT5x
aW52YWxfbWFkZHIgfCBRSU5WQUxfUEFHRV9PUkRFUik7CisgICAgICAgICAg
ICAgICAgaW9tbXUtPnFpbnZhbF9tYWRkciB8IHFpX3BnX29yZGVyKTsKIAog
ICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIERNQVJfSVFUX1JFRywgMCk7
CiAK

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.14-2.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.14-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHNpemUgY29tbWFuZCBidWZmZXIgZHluYW1pY2FsbHkK
CldpdGggdGhlIHByZXNlbnQgc3luY2hyb25vdXMgbW9kZWwsIHdlIG5lZWQg
dHdvIHNsb3RzIGZvciBldmVyeQpvcGVyYXRpb24gKHRoZSBvcGVyYXRpb24g
aXRzZWxmIGFuZCBhIHdhaXQgY29tbWFuZCkuICBUaGVyZSBjYW4gYmUgb25l
CnN1Y2ggcGFpciBvZiBjb21tYW5kcyBwZW5kaW5nIHBlciBDUFUuIFRvIGVu
c3VyZSB0aGF0IHVuZGVyIGFsbCBub3JtYWwKY2lyY3Vtc3RhbmNlcyBhIHNs
b3QgaXMgYWx3YXlzIGF2YWlsYWJsZSB3aGVuIG9uZSBpcyByZXF1ZXN0ZWQs
IHNpemUgdGhlCmNvbW1hbmQgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJl
ciBvZiBwcmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAv
IENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg
PGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50
IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hbWQvaW9tbXUtZGVmcy5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv
dWdoL2FtZC9pb21tdS1kZWZzLmgKQEAgLTIwLDkgKzIwLDYgQEAKICNpZm5k
ZWYgQU1EX0lPTU1VX0RFRlNfSAogI2RlZmluZSBBTURfSU9NTVVfREVGU19I
CiAKLS8qIElPTU1VIENvbW1hbmQgQnVmZmVyIGVudHJpZXM6IGluIHBvd2Vy
IG9mIDIgaW5jcmVtZW50cywgbWluaW11bSBvZiAyNTYgKi8KLSNkZWZpbmUg
SU9NTVVfQ01EX0JVRkZFUl9ERUZBVUxUX0VOVFJJRVMJNTEyCi0KIC8qIElP
TU1VIEV2ZW50IExvZyBlbnRyaWVzOiBpbiBwb3dlciBvZiAyIGluY3JlbWVu
dHMsIG1pbmltdW0gb2YgMjU2ICovCiAjZGVmaW5lIElPTU1VX0VWRU5UX0xP
R19ERUZBVUxUX0VOVFJJRVMgICAgIDUxMgogCkBAIC0xNjQsOCArMTYxLDgg
QEAgc3RydWN0IGFtZF9pb21tdV9kdGUgewogI2RlZmluZSBJT01NVV9DTURf
QlVGRkVSX0xFTkdUSF9NQVNLCQkweDBGMDAwMDAwCiAjZGVmaW5lIElPTU1V
X0NNRF9CVUZGRVJfTEVOR1RIX1NISUZUCQkyNAogCi0jZGVmaW5lIElPTU1V
X0NNRF9CVUZGRVJfRU5UUllfU0laRQkJCTE2Ci0jZGVmaW5lIElPTU1VX0NN
RF9CVUZGRVJfUE9XRVJfT0YyX0VOVFJJRVNfUEVSX1BBR0UJOAorI2RlZmlu
ZSBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVSICAgICAgICAgICAgNAor
I2RlZmluZSBJT01NVV9DTURfQlVGRkVSX01BWF9FTlRSSUVTICAgICAgICAg
ICAgKDF1IDw8IDE1KQogCiAjZGVmaW5lIElPTU1VX0NNRF9PUENPREVfTUFT
SwkJCTB4RjAwMDAwMDAKICNkZWZpbmUgSU9NTVVfQ01EX09QQ09ERV9TSElG
VAkJCTI4Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21t
dV9jbWQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9t
bXVfY21kLmMKQEAgLTI0LDcgKzI0LDcgQEAgc3RhdGljIGludCBxdWV1ZV9p
b21tdV9jb21tYW5kKHN0cnVjdCBhbQogewogICAgIHVpbnQzMl90IHRhaWws
IGhlYWQ7CiAKLSAgICB0YWlsID0gaW9tbXUtPmNtZF9idWZmZXIudGFpbCAr
IElPTU1VX0NNRF9CVUZGRVJfRU5UUllfU0laRTsKKyAgICB0YWlsID0gaW9t
bXUtPmNtZF9idWZmZXIudGFpbCArIHNpemVvZihjbWRfZW50cnlfdCk7CiAg
ICAgaWYgKCB0YWlsID09IGlvbW11LT5jbWRfYnVmZmVyLnNpemUgKQogICAg
ICAgICB0YWlsID0gMDsKIApAQCAtMzMsNyArMzMsNyBAQCBzdGF0aWMgaW50
IHF1ZXVlX2lvbW11X2NvbW1hbmQoc3RydWN0IGFtCiAgICAgaWYgKCBoZWFk
ICE9IHRhaWwgKQogICAgIHsKICAgICAgICAgbWVtY3B5KGlvbW11LT5jbWRf
YnVmZmVyLmJ1ZmZlciArIGlvbW11LT5jbWRfYnVmZmVyLnRhaWwsCi0gICAg
ICAgICAgICAgICBjbWQsIElPTU1VX0NNRF9CVUZGRVJfRU5UUllfU0laRSk7
CisgICAgICAgICAgICAgICBjbWQsIHNpemVvZihjbWRfZW50cnlfdCkpOwog
CiAgICAgICAgIGlvbW11LT5jbWRfYnVmZmVyLnRhaWwgPSB0YWlsOwogICAg
ICAgICByZXR1cm4gMTsKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv
YW1kL2lvbW11X2luaXQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hbWQvaW9tbXVfaW5pdC5jCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGlj
IHZvaWQgcmVnaXN0ZXJfaW9tbXVfY21kX2J1ZmZlcl9pbgogICAgIHdyaXRl
bChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NNRF9CVUZGRVJf
QkFTRV9MT1dfT0ZGU0VUKTsKIAogICAgIHBvd2VyX29mMl9lbnRyaWVzID0g
Z2V0X29yZGVyX2Zyb21fYnl0ZXMoaW9tbXUtPmNtZF9idWZmZXIuc2l6ZSkg
KwotICAgICAgICBJT01NVV9DTURfQlVGRkVSX1BPV0VSX09GMl9FTlRSSUVT
X1BFUl9QQUdFOworICAgICAgICBQQUdFX1NISUZUIC0gSU9NTVVfQ01EX0JV
RkZFUl9FTlRSWV9PUkRFUjsKIAogICAgIGVudHJ5ID0gMDsKICAgICBpb21t
dV9zZXRfYWRkcl9oaV90b19yZWcoJmVudHJ5LCBhZGRyX2hpKTsKQEAgLTEw
MjIsOSArMTAyMiwzMSBAQCBzdGF0aWMgdm9pZCAqX19pbml0IGFsbG9jYXRl
X3JpbmdfYnVmZmVyCiBzdGF0aWMgdm9pZCAqIF9faW5pdCBhbGxvY2F0ZV9j
bWRfYnVmZmVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQogewogICAgIC8q
IGFsbG9jYXRlICdjb21tYW5kIGJ1ZmZlcicgaW4gcG93ZXIgb2YgMiBpbmNy
ZW1lbnRzIG9mIDRLICovCisgICAgc3RhdGljIHVuc2lnbmVkIGludCBfX3Jl
YWRfbW9zdGx5IG5yX2VudHM7CisKKyAgICBpZiAoICFucl9lbnRzICkKKyAg
ICB7CisgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcjsKKworICAgICAgICAv
KgorICAgICAgICAgKiBXaXRoIHRoZSBwcmVzZW50IHN5bmNocm9ub3VzIG1v
ZGVsLCB3ZSBuZWVkIHR3byBzbG90cyBmb3IgZXZlcnkKKyAgICAgICAgICog
b3BlcmF0aW9uICh0aGUgb3BlcmF0aW9uIGl0c2VsZiBhbmQgYSB3YWl0IGNv
bW1hbmQpLiAgVGhlcmUgY2FuIGJlCisgICAgICAgICAqIG9uZSBzdWNoIHBh
aXIgb2YgcmVxdWVzdHMgcGVuZGluZyBwZXIgQ1BVLiAgT25lIGV4dHJhIGVu
dHJ5IGlzCisgICAgICAgICAqIG5lZWRlZCBhcyB0aGUgcmluZyBpcyBjb25z
aWRlcmVkIGZ1bGwgd2hlbiB0aGVyZSdzIG9ubHkgb25lIGVudHJ5CisgICAg
ICAgICAqIGxlZnQuCisgICAgICAgICAqLworICAgICAgICBCVUlMRF9CVUdf
T04oQ09ORklHX05SX0NQVVMgKiAyID49IElPTU1VX0NNRF9CVUZGRVJfTUFY
X0VOVFJJRVMpOworICAgICAgICBvcmRlciA9IGdldF9vcmRlcl9mcm9tX2J5
dGVzKChudW1fcHJlc2VudF9jcHVzKCkgKiAyICsgMSkgPDwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9DTURfQlVGRkVS
X0VOVFJZX09SREVSKTsKKyAgICAgICAgbnJfZW50cyA9IDF1IDw8IChvcmRl
ciArIFBBR0VfU0hJRlQgLSBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVS
KTsKKworICAgICAgICBBTURfSU9NTVVfREVCVUcoInVzaW5nICV1LWVudHJ5
IGNtZCByaW5nKHMpXG4iLCBucl9lbnRzKTsKKyAgICB9CisKKyAgICBCVUlM
RF9CVUdfT04oc2l6ZW9mKGNtZF9lbnRyeV90KSAhPSAoMXUgPDwgSU9NTVVf
Q01EX0JVRkZFUl9FTlRSWV9PUkRFUikpOworCiAgICAgcmV0dXJuIGFsbG9j
YXRlX3JpbmdfYnVmZmVyKCZpb21tdS0+Y21kX2J1ZmZlciwgc2l6ZW9mKGNt
ZF9lbnRyeV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SU9NTVVfQ01EX0JVRkZFUl9ERUZBVUxUX0VOVFJJRVMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJDb21tYW5kIEJ1ZmZlciIsIGZhbHNl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnJfZW50cywg
IkNvbW1hbmQgQnVmZmVyIiwgZmFsc2UpOwogfQogCiBzdGF0aWMgdm9pZCAq
IF9faW5pdCBhbGxvY2F0ZV9ldmVudF9sb2coc3RydWN0IGFtZF9pb21tdSAq
aW9tbXUpCg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.14-3.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.14-3.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBlbGltaW5hdGUgZmx1c2ggcmVsYXRlZCB0aW1lb3V0cwoKTGVh
dmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24gcGVuZGluZyB3aGVuIGl0
IGFwcGVhcnMgdG8gdGFrZSB0b28KbG9uZyBpcyBwcm9ibGVtYXRpYzogSWYg
ZS5nLiBhIFFJIGNvbW1hbmQgY29tcGxldGVkIGxhdGVyLCB0aGUgd3JpdGUg
dG8KdGhlICJwb2xsIHNsb3QiIG1heSBpbnN0ZWFkIGJlIHVuZGVyc3Rvb2Qg
dG8gc2lnbmFsIGEgc3Vic2VxdWVudGx5CnN0YXJ0ZWQgY29tbWFuZCdzIGNv
bXBsZXRpb24uIEFsc28gb3VyIGFjY291bnRpbmcgb2YgdGhlIHRpbWVvdXQg
cGVyaW9kCndhcyBhY3R1YWxseSB3cm9uZzogV2UgaW5jbHVkZWQgdGhlIHRp
bWUgaXQgdG9vayBmb3IgdGhlIGNvbW1hbmQgdG8KYWN0dWFsbHkgbWFrZSBp
dCB0byB0aGUgZnJvbnQgb2YgdGhlIHF1ZXVlLCB3aGljaCBjb3VsZCBiZSBo
ZWF2aWx5CmFmZmVjdGVkIGJ5IGd1ZXN0cyBvdGhlciB0aGFuIHRoZSBvbmUg
Zm9yIHdoaWNoIHRoZSBmbHVzaCBpcyBiZWluZwpwZXJmb3JtZWQuCgpEbyBh
d2F5IHdpdGggYWxsIHRpbWVvdXQgZGV0ZWN0aW9uIG9uIGFsbCBmbHVzaCBy
ZWxhdGVkIGNvZGUgcGF0aHMuCkxvZyBleGNlc3NpdmVseSBsb25nIHByb2Nl
c3NpbmcgdGltZXMgKHdpdGggYSBwcm9ncmVzc2l2ZSB0aHJlc2hvbGQpIHRv
CmhhdmUgc29tZSBpbmRpY2F0aW9uIG9mIHByb2JsZW1zIGluIHRoaXMgYXJl
YS4KCkFkZGl0aW9uYWxseSBsb2cgKG9uY2UpIGlmIHFpbnZhbF9uZXh0X2lu
ZGV4KCkgZGlkbid0IGltbWVkaWF0ZWx5IGZpbmQKYW4gYXZhaWxhYmxlIHNs
b3QuIFRvZ2V0aGVyIHdpdGggdGhlIGVhcmxpZXIgY2hhbmdlIHNpemluZyB0
aGUgcXVldWUocykKZHluYW1pY2FsbHksIHdlIHNob3VsZCBub3cgaGF2ZSBh
IGd1YXJhbnRlZSB0aGF0IHdpdGggb3VyIGZ1bGx5CnN5bmNocm9ub3VzIG1v
ZGVsIGFueSBkZW1hbmQgZm9yIHNsb3RzIGNhbiBhY3R1YWxseSBiZSBzYXRp
c2ZpZWQuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4
NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5v
cmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5o
CisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmgKQEAg
LTEyNyw2ICsxMjcsMzQgQEAgZG8gewogICAgIH0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
IH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgSU9NTVVfRkxVU0hfV0FJVCh3aGF0
LCBpb21tdSwgb2Zmc2V0LCBvcCwgY29uZCwgc3RzKSAgICAgICBcCitkbyB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQg
X19yZWFkX21vc3RseSB0aHJlc2hvbGQgPSAxOyAgICAgICAgICAgICAgIFwK
KyAgICBzX3RpbWVfdCBzdGFydCA9IE5PVygpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc190aW1lX3QgdGltZW91
dCA9IHN0YXJ0ICsgRE1BUl9PUEVSQVRJT05fVElNRU9VVCAqIHRocmVzaG9s
ZDsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKCA7IDsg
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBz
dHMgPSBvcChpb21tdS0+cmVnLCBvZmZzZXQpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKCBjb25kICkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoIHRpbWVvdXQgJiYg
Tk9XKCkgPiB0aW1lb3V0ICkgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0aHJlc2hv
bGQgfD0gdGhyZXNob2xkIDw8IDE7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBS
RUZJWCAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICAgICAiIElPTU1VIyV1OiAlcyBmbHVzaCB0YWtpbmcgdG9vIGxvbmdcbiIs
ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCB3
aGF0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
ICAgdGltZW91dCA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIGNwdV9yZWxheCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCAhdGltZW91dCAp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklY
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICIgSU9NTVUjJXU6ICVzIGZsdXNoIHRvb2sgJWx1bXNcbiIsICAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIHdoYXQs
IChOT1coKSAtIHN0YXJ0KSAvIDEwMDAwMDAwKTsgICAgXAorfSB3aGlsZSAo
IGZhbHNlICkKKwogaW50IHZ0ZF9od19jaGVjayh2b2lkKTsKIHZvaWQgZGlz
YWJsZV9wbXIoc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUpOwogaW50IGlzX2ln
ZF9kcmhkKHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZCk7Ci0tLSBhL3hl
bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0zMjYsOCArMzI2
LDggQEAgc3RhdGljIHZvaWQgaW9tbXVfZmx1c2hfd3JpdGVfYnVmZmVyKHN0
cgogICAgIGRtYXJfd3JpdGVsKGlvbW11LT5yZWcsIERNQVJfR0NNRF9SRUcs
IHZhbCB8IERNQV9HQ01EX1dCRik7CiAKICAgICAvKiBNYWtlIHN1cmUgaGFy
ZHdhcmUgY29tcGxldGUgaXQgKi8KLSAgICBJT01NVV9XQUlUX09QKGlvbW11
LCBETUFSX0dTVFNfUkVHLCBkbWFyX3JlYWRsLAotICAgICAgICAgICAgICAg
ICAgISh2YWwgJiBETUFfR1NUU19XQkZTKSwgdmFsKTsKKyAgICBJT01NVV9G
TFVTSF9XQUlUKCJ3cml0ZSBidWZmZXIiLCBpb21tdSwgRE1BUl9HU1RTX1JF
RywgZG1hcl9yZWFkbCwKKyAgICAgICAgICAgICAgICAgICAgICEodmFsICYg
RE1BX0dTVFNfV0JGUyksIHZhbCk7CiAKICAgICBzcGluX3VubG9ja19pcnFy
ZXN0b3JlKCZpb21tdS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3MpOwogfQpAQCAt
Mzc2LDggKzM3Niw4IEBAIGludCB2dGRfZmx1c2hfY29udGV4dF9yZWcoc3Ry
dWN0IHZ0ZF9pb20KICAgICBkbWFyX3dyaXRlcShpb21tdS0+cmVnLCBETUFS
X0NDTURfUkVHLCB2YWwpOwogCiAgICAgLyogTWFrZSBzdXJlIGhhcmR3YXJl
IGNvbXBsZXRlIGl0ICovCi0gICAgSU9NTVVfV0FJVF9PUChpb21tdSwgRE1B
Ul9DQ01EX1JFRywgZG1hcl9yZWFkcSwKLSAgICAgICAgICAgICAgICAgICEo
dmFsICYgRE1BX0NDTURfSUNDKSwgdmFsKTsKKyAgICBJT01NVV9GTFVTSF9X
QUlUKCJjb250ZXh0IiwgaW9tbXUsIERNQVJfQ0NNRF9SRUcsIGRtYXJfcmVh
ZHEsCisgICAgICAgICAgICAgICAgICAgICAhKHZhbCAmIERNQV9DQ01EX0lD
QyksIHZhbCk7CiAKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21t
dS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3MpOwogICAgIC8qIGZsdXNoIGNvbnRl
eHQgZW50cnkgd2lsbCBpbXBsaWNpdGx5IGZsdXNoIHdyaXRlIGJ1ZmZlciAq
LwpAQCAtNDU0LDggKzQ1NCw4IEBAIGludCB2dGRfZmx1c2hfaW90bGJfcmVn
KHN0cnVjdCB2dGRfaW9tbXUKICAgICBkbWFyX3dyaXRlcShpb21tdS0+cmVn
LCB0bGJfb2Zmc2V0ICsgOCwgdmFsKTsKIAogICAgIC8qIE1ha2Ugc3VyZSBo
YXJkd2FyZSBjb21wbGV0ZSBpdCAqLwotICAgIElPTU1VX1dBSVRfT1AoaW9t
bXUsICh0bGJfb2Zmc2V0ICsgOCksIGRtYXJfcmVhZHEsCi0gICAgICAgICAg
ICAgICAgICAhKHZhbCAmIERNQV9UTEJfSVZUKSwgdmFsKTsKKyAgICBJT01N
VV9GTFVTSF9XQUlUKCJpb3RsYiIsIGlvbW11LCAodGxiX29mZnNldCArIDgp
LCBkbWFyX3JlYWRxLAorICAgICAgICAgICAgICAgICAgICAgISh2YWwgJiBE
TUFfVExCX0lWVCksIHZhbCk7CiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9y
ZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKIAogICAgIC8qIGNo
ZWNrIElPVExCIGludmFsaWRhdGlvbiBncmFudWxhcml0eSAqLwotLS0gYS94
ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMKKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCkBAIC0yOSw4ICsy
OSw2IEBACiAjaW5jbHVkZSAiZXh0ZXJuLmgiCiAjaW5jbHVkZSAiLi4vYXRz
LmgiCiAKLSNkZWZpbmUgVlREX1FJX1RJTUVPVVQJMQotCiBzdGF0aWMgdW5z
aWduZWQgaW50IF9fcmVhZF9tb3N0bHkgcWlfcGdfb3JkZXI7CiBzdGF0aWMg
dW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgcWlfZW50cnlfbnI7CiAKQEAg
LTYwLDcgKzU4LDExIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcWludmFsX25l
eHRfaW5kZXgoc3QKICAgICAvKiAodGFpbCsxID09IGhlYWQpIGluZGljYXRl
cyBhIGZ1bGwgcXVldWUsIHdhaXQgZm9yIEhXICovCiAgICAgd2hpbGUgKCAo
KHRhaWwgKyAxKSAmIChxaV9lbnRyeV9uciAtIDEpKSA9PQogICAgICAgICAg
ICAgKCBkbWFyX3JlYWRxKGlvbW11LT5yZWcsIERNQVJfSVFIX1JFRykgPj4g
UUlOVkFMX0lOREVYX1NISUZUICkgKQorICAgIHsKKyAgICAgICAgcHJpbnRr
X29uY2UoWEVOTE9HX0VSUiBWVERQUkVGSVggIiBJT01NVSMldTogbm8gUUkg
c2xvdCBhdmFpbGFibGVcbiIsCisgICAgICAgICAgICAgICAgICAgIGlvbW11
LT5pbmRleCk7CiAgICAgICAgIGNwdV9yZWxheCgpOworICAgIH0KIAogICAg
IHJldHVybiB0YWlsOwogfQpAQCAtMTgwLDIzICsxODIsMzIgQEAgc3RhdGlj
IGludCBfX211c3RfY2hlY2sgcXVldWVfaW52YWxpZGF0ZQogICAgIC8qIE5v
dyB3ZSBkb24ndCBzdXBwb3J0IGludGVycnVwdCBtZXRob2QgKi8KICAgICBp
ZiAoIHN3ICkKICAgICB7Ci0gICAgICAgIHNfdGltZV90IHRpbWVvdXQ7Ci0K
LSAgICAgICAgLyogSW4gY2FzZSBhbGwgd2FpdCBkZXNjcmlwdG9yIHdyaXRl
cyB0byBzYW1lIGFkZHIgd2l0aCBzYW1lIGRhdGEgKi8KLSAgICAgICAgdGlt
ZW91dCA9IE5PVygpICsgTUlMTElTRUNTKGZsdXNoX2Rldl9pb3RsYiA/Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9kZXZf
aW90bGJfdGltZW91dCA6IFZURF9RSV9USU1FT1VUKTsKKyAgICAgICAgc3Rh
dGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHRocmVzaG9sZCA9IDE7
CisgICAgICAgIHNfdGltZV90IHN0YXJ0ID0gTk9XKCk7CisgICAgICAgIHNf
dGltZV90IHRpbWVvdXQgPSBzdGFydCArIChmbHVzaF9kZXZfaW90bGIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaW9tbXVfZGV2
X2lvdGxiX3RpbWVvdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDogMTAwKSAqIE1JTExJU0VDUyh0aHJlc2hvbGQpOwogCiAgICAg
ICAgIHdoaWxlICggQUNDRVNTX09OQ0UoKnRoaXNfcG9sbF9zbG90KSAhPSBR
SU5WQUxfU1RBVF9ET05FICkKICAgICAgICAgewotICAgICAgICAgICAgaWYg
KCBOT1coKSA+IHRpbWVvdXQgKQorICAgICAgICAgICAgaWYgKCB0aW1lb3V0
ICYmIE5PVygpID4gdGltZW91dCApCiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgcHJpbnRfcWlfcmVncyhpb21tdSk7CisgICAgICAgICAgICAg
ICAgdGhyZXNob2xkIHw9IHRocmVzaG9sZCA8PCAxOwogICAgICAgICAgICAg
ICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgKLSAgICAgICAg
ICAgICAgICAgICAgICAgIiBRdWV1ZSBpbnZhbGlkYXRlIHdhaXQgZGVzY3Jp
cHRvciB0aW1lZCBvdXRcbiIpOwotICAgICAgICAgICAgICAgIHJldHVybiAt
RVRJTUVET1VUOworICAgICAgICAgICAgICAgICAgICAgICAiIElPTU1VIyV1
OiBRSSVzIHdhaXQgZGVzY3JpcHRvciB0YWtpbmcgdG9vIGxvbmdcbiIsCisg
ICAgICAgICAgICAgICAgICAgICAgIGlvbW11LT5pbmRleCwgZmx1c2hfZGV2
X2lvdGxiID8gIiBkZXYiIDogIiIpOworICAgICAgICAgICAgICAgIHByaW50
X3FpX3JlZ3MoaW9tbXUpOworICAgICAgICAgICAgICAgIHRpbWVvdXQgPSAw
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY3B1X3JlbGF4KCk7CiAg
ICAgICAgIH0KKworICAgICAgICBpZiAoICF0aW1lb3V0ICkKKyAgICAgICAg
ICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgKKyAgICAgICAg
ICAgICAgICAgICAiIElPTU1VIyV1OiBRSSVzIHdhaXQgZGVzY3JpcHRvciB0
b29rICVsdW1zXG4iLAorICAgICAgICAgICAgICAgICAgIGlvbW11LT5pbmRl
eCwgZmx1c2hfZGV2X2lvdGxiID8gIiBkZXYiIDogIiIsCisgICAgICAgICAg
ICAgICAgICAgKE5PVygpIC0gc3RhcnQpIC8gMTAwMDAwMDApOworCiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIAo=

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.14-4.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.14-4.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHdhaXQgZm9yIGNvbW1hbmQgc2xvdCB0byBiZSBhdmFp
bGFibGUKCk5vIGNhbGxlciBjYXJlZCBhYm91dCBzZW5kX2lvbW11X2NvbW1h
bmQoKSBpbmRpY2F0aW5nIHVuYXZhaWxhYmlsaXR5IG9mCmEgc2xvdC4gSGVu
Y2UgaWYgYSBzdWZmaWNpZW50IG51bWJlciBwcmlvciBjb21tYW5kcyB0aW1l
ZCBvdXQsIHdlIGRpZApibGluZGx5IGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0
ZWQgY29tbWFuZCB3YXMgc3VibWl0dGVkIHRvIHRoZSBJT01NVQp3aGVuIHJl
YWxseSBpdCB3YXNuJ3QuIFRoaXMgY291bGQgbWVhbiBib3RoIGEgaGFuZ2lu
ZyBzeXN0ZW0gKHdhaXRpbmcKZm9yIGEgY29tbWFuZCB0byBjb21wbGV0ZSB0
aGF0IHdhcyBuZXZlciBzZWVuIGJ5IHRoZSBJT01NVSkgb3IgYmxpbmRseQpw
cm9wYWdhdGluZyBzdWNjZXNzIGJhY2sgdG8gY2FsbGVycywgbWFraW5nIHRo
ZW0gYmVsaWV2ZSB0aGV5J3JlIGZpbmUKdG8gZS5nLiBmcmVlIHByZXZpb3Vz
bHkgdW5tYXBwZWQgcGFnZXMuCgpGb2xkIHRoZSB0aHJlZSBpbnZvbHZlZCBm
dW5jdGlvbnMgaW50byBvbmUsIGFkZCBzcGluIHdhaXRpbmcgZm9yIGFuCmF2
YWlsYWJsZSBzbG90IGFsb25nIHRoZSBsaW5lcyBvZiBWVC1kJ3MgcWludmFs
X25leHRfaW5kZXgoKSwgYW5kIGFzIGEKY29uc2VxdWVuY2UgZHJvcCBhbGwg
ZXJyb3IgaW5kaWNhdG9yIHJldHVybiB0eXBlcy92YWx1ZXMuCgpUaGlzIGlz
IHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9m
Zi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdl
ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0yMCw0
MyArMjAsMzIgQEAKICNpbmNsdWRlICJpb21tdS5oIgogI2luY2x1ZGUgIi4u
L2F0cy5oIgogCi1zdGF0aWMgaW50IHF1ZXVlX2lvbW11X2NvbW1hbmQoc3Ry
dWN0IGFtZF9pb21tdSAqaW9tbXUsIHUzMiBjbWRbXSkKK3N0YXRpYyB2b2lk
IHNlbmRfaW9tbXVfY29tbWFuZChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJf
dCBjbWRbNF0pCiB7Ci0gICAgdWludDMyX3QgdGFpbCwgaGVhZDsKKyAgICB1
aW50MzJfdCB0YWlsOwogCiAgICAgdGFpbCA9IGlvbW11LT5jbWRfYnVmZmVy
LnRhaWwgKyBzaXplb2YoY21kX2VudHJ5X3QpOwogICAgIGlmICggdGFpbCA9
PSBpb21tdS0+Y21kX2J1ZmZlci5zaXplICkKICAgICAgICAgdGFpbCA9IDA7
CiAKLSAgICBoZWFkID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArCi0gICAg
ICAgICAgICAgICAgIElPTU1VX0NNRF9CVUZGRVJfSEVBRF9PRkZTRVQpICYg
SU9NTVVfUklOR19CVUZGRVJfUFRSX01BU0s7Ci0gICAgaWYgKCBoZWFkICE9
IHRhaWwgKQorICAgIHdoaWxlICggdGFpbCA9PSAocmVhZGwoaW9tbXUtPm1t
aW9fYmFzZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9D
TURfQlVGRkVSX0hFQURfT0ZGU0VUKSAmCisgICAgICAgICAgICAgICAgICAg
ICBJT01NVV9SSU5HX0JVRkZFUl9QVFJfTUFTSykgKQogICAgIHsKLSAgICAg
ICAgbWVtY3B5KGlvbW11LT5jbWRfYnVmZmVyLmJ1ZmZlciArIGlvbW11LT5j
bWRfYnVmZmVyLnRhaWwsCi0gICAgICAgICAgICAgICBjbWQsIHNpemVvZihj
bWRfZW50cnlfdCkpOwotCi0gICAgICAgIGlvbW11LT5jbWRfYnVmZmVyLnRh
aWwgPSB0YWlsOwotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgcHJpbnRr
X29uY2UoWEVOTE9HX0VSUgorICAgICAgICAgICAgICAgICAgICAiQU1EIElP
TU1VICUwNHg6JTAyeDolMDJ4LiV1OiBubyBjbWQgc2xvdCBhdmFpbGFibGVc
biIsCisgICAgICAgICAgICAgICAgICAgIGlvbW11LT5zZWcsIFBDSV9CVVMo
aW9tbXUtPmJkZiksCisgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGlv
bW11LT5iZGYpLCBQQ0lfRlVOQyhpb21tdS0+YmRmKSk7CisgICAgICAgIGNw
dV9yZWxheCgpOwogICAgIH0KIAotICAgIHJldHVybiAwOwotfQotCi1zdGF0
aWMgdm9pZCBjb21taXRfaW9tbXVfY29tbWFuZF9idWZmZXIoc3RydWN0IGFt
ZF9pb21tdSAqaW9tbXUpCi17Ci0gICAgd3JpdGVsKGlvbW11LT5jbWRfYnVm
ZmVyLnRhaWwsCi0gICAgICAgICAgIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01N
VV9DTURfQlVGRkVSX1RBSUxfT0ZGU0VUKTsKLX0KKyAgICBtZW1jcHkoaW9t
bXUtPmNtZF9idWZmZXIuYnVmZmVyICsgaW9tbXUtPmNtZF9idWZmZXIudGFp
bCwKKyAgICAgICAgICAgY21kLCBzaXplb2YoY21kX2VudHJ5X3QpKTsKIAot
c3RhdGljIGludCBzZW5kX2lvbW11X2NvbW1hbmQoc3RydWN0IGFtZF9pb21t
dSAqaW9tbXUsIHUzMiBjbWRbXSkKLXsKLSAgICBpZiAoIHF1ZXVlX2lvbW11
X2NvbW1hbmQoaW9tbXUsIGNtZCkgKQotICAgIHsKLSAgICAgICAgY29tbWl0
X2lvbW11X2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKLSAgICAgICAgcmV0dXJu
IDE7Ci0gICAgfQorICAgIGlvbW11LT5jbWRfYnVmZmVyLnRhaWwgPSB0YWls
OwogCi0gICAgcmV0dXJuIDA7CisgICAgd3JpdGVsKHRhaWwsIGlvbW11LT5t
bWlvX2Jhc2UgKyBJT01NVV9DTURfQlVGRkVSX1RBSUxfT0ZGU0VUKTsKIH0K
IAogc3RhdGljIHZvaWQgZmx1c2hfY29tbWFuZF9idWZmZXIoc3RydWN0IGFt
ZF9pb21tdSAqaW9tbXUpCg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.14-5.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.14-5.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IGRyb3AgY29tbWFuZCBjb21wbGV0aW9uIHRpbWVvdXQK
CkZpcnN0IGFuZCBmb3JlbW9zdCAtIHN1Y2ggdGltZW91dHMgd2VyZSBub3Qg
c2lnbmFsZWQgdG8gY2FsbGVycywgbWFraW5nCnRoZW0gYmVsaWV2ZSB0aGV5
J3JlIGZpbmUgdG8gZS5nLiBmcmVlIHByZXZpb3VzbHkgdW5tYXBwZWQgcGFn
ZXMuCgpNaXJyb3IgVlQtZCdzIGJlaGF2aW9yOiBBIGZpeGVkIG51bWJlciBv
ZiBsb29wIGl0ZXJhdGlvbnMgaXMgbm90IGEKc3VpdGFibGUgd2F5IHRvIGRl
dGVjdCB0aW1lb3V0cyBpbiBhbiBlbnZpcm9ubWVudCAoQ1BVIGFuZCBidXMg
c3BlZWRzKQppbmRlcGVuZGVudCBtYW5uZXIgYW55d2F5LiBGdXJ0aGVybW9y
ZSwgbGVhdmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24KcGVuZGluZyB3
aGVuIGl0IGFwcGVhcnMgdG8gdGFrZSB0b28gbG9uZyBpcyBwcm9ibGVtYXRp
YzogSWYgYSBjb21tYW5kCmNvbXBsZXRlZCBsYXRlciwgdGhlIHNpZ25hbGlu
ZyBvZiBpdHMgY29tcGxldGlvbiBtYXkgaW5zdGVhZCBiZQp1bmRlcnN0b29k
IHRvIHNpZ25hbCBhIHN1YnNlcXVlbnRseSBzdGFydGVkIGNvbW1hbmQncyBj
b21wbGV0aW9uLgoKTG9nIGV4Y2Vzc2l2ZWx5IGxvbmcgcHJvY2Vzc2luZyB0
aW1lcyAod2l0aCBhIHByb2dyZXNzaXZlIHRocmVzaG9sZCkgdG8KaGF2ZSBz
b21lIGluZGljYXRpb24gb2YgcHJvYmxlbXMgaW4gdGhpcyBhcmVhLiBBbGxv
dyBjYWxsZXJzIHRvIHNwZWNpZnkKYSBub24tZGVmYXVsdCB0aW1lb3V0IGJp
YXMgZm9yIHRoaXMgbG9nZ2luZywgdXNpbmcgdGhlIHNhbWUgdmFsdWVzIGFz
ClZULWQgZG9lcywgd2hpY2ggaW4gcGFydGljdWxhciBtZWFucyBhIChieSBk
ZWZhdWx0KSBtdWNoIGxhcmdlciB2YWx1ZQpmb3IgZGV2aWNlIElPIFRMQiBp
bnZhbGlkYXRpb24uCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv
aW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k
L2lvbW11X2NtZC5jCkBAIC00OCwxMCArNDgsMTIgQEAgc3RhdGljIHZvaWQg
c2VuZF9pb21tdV9jb21tYW5kKHN0cnVjdCBhbQogICAgIHdyaXRlbCh0YWls
LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ01EX0JVRkZFUl9UQUlMX09G
RlNFVCk7CiB9CiAKLXN0YXRpYyB2b2lkIGZsdXNoX2NvbW1hbmRfYnVmZmVy
KHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQorc3RhdGljIHZvaWQgZmx1c2hf
Y29tbWFuZF9idWZmZXIoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdGlt
ZW91dF9iYXNlKQogewotICAgIHVuc2lnbmVkIGludCBjbWRbNF0sIHN0YXR1
cywgbG9vcF9jb3VudDsKLSAgICBib29sIGNvbXBfd2FpdDsKKyAgICB1aW50
MzJfdCBjbWRbNF07CisgICAgc190aW1lX3Qgc3RhcnQsIHRpbWVvdXQ7Cisg
ICAgc3RhdGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHRocmVzaG9s
ZCA9IDE7CiAKICAgICAvKiBSVzFDICdDb21XYWl0SW50JyBpbiBzdGF0dXMg
cmVnaXN0ZXIgKi8KICAgICB3cml0ZWwoSU9NTVVfU1RBVFVTX0NPTVBfV0FJ
VF9JTlQsCkBAIC02NywyMiArNjksMzEgQEAgc3RhdGljIHZvaWQgZmx1c2hf
Y29tbWFuZF9idWZmZXIoc3RydWN0CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgSU9NTVVfQ09NUF9XQUlUX0lfRkxBR19TSElGVCwgJmNtZFswXSk7CiAg
ICAgc2VuZF9pb21tdV9jb21tYW5kKGlvbW11LCBjbWQpOwogCi0gICAgLyog
TWFrZSBsb29wX2NvdW50IGxvbmcgZW5vdWdoIGZvciBwb2xsaW5nIGNvbXBs
ZXRpb24gd2FpdCBiaXQgKi8KLSAgICBsb29wX2NvdW50ID0gMTAwMDsKLSAg
ICBkbyB7Ci0gICAgICAgIHN0YXR1cyA9IHJlYWRsKGlvbW11LT5tbWlvX2Jh
c2UgKyBJT01NVV9TVEFUVVNfTU1JT19PRkZTRVQpOwotICAgICAgICBjb21w
X3dhaXQgPSBzdGF0dXMgJiBJT01NVV9TVEFUVVNfQ09NUF9XQUlUX0lOVDsK
LSAgICAgICAgLS1sb29wX2NvdW50OwotICAgIH0gd2hpbGUgKCAhY29tcF93
YWl0ICYmIGxvb3BfY291bnQgKTsKLQotICAgIGlmICggY29tcF93YWl0ICkK
KyAgICBzdGFydCA9IE5PVygpOworICAgIHRpbWVvdXQgPSBzdGFydCArICh0
aW1lb3V0X2Jhc2UgPzogMTAwKSAqIE1JTExJU0VDUyh0aHJlc2hvbGQpOwor
ICAgIHdoaWxlICggIShyZWFkbChpb21tdS0+bW1pb19iYXNlICsgSU9NTVVf
U1RBVFVTX01NSU9fT0ZGU0VUKSAmCisgICAgICAgICAgICAgIElPTU1VX1NU
QVRVU19DT01QX1dBSVRfSU5UKSApCiAgICAgewotICAgICAgICAvKiBSVzFD
ICdDb21XYWl0SW50JyBpbiBzdGF0dXMgcmVnaXN0ZXIgKi8KLSAgICAgICAg
d3JpdGVsKElPTU1VX1NUQVRVU19DT01QX1dBSVRfSU5ULAotICAgICAgICAg
ICAgICAgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX1NUQVRVU19NTUlPX09G
RlNFVCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCB0aW1lb3V0
ICYmIE5PVygpID4gdGltZW91dCApCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRocmVzaG9sZCB8PSB0aHJlc2hvbGQgPDwgMTsKKyAgICAgICAgICAgIHBy
aW50ayhYRU5MT0dfV0FSTklORworICAgICAgICAgICAgICAgICAgICJBTUQg
SU9NTVUgJTA0eDolMDJ4OiUwMnguJXU6ICVzY29tcGxldGlvbiB3YWl0IHRh
a2luZyB0b28gbG9uZ1xuIiwKKyAgICAgICAgICAgICAgICAgICBpb21tdS0+
c2VnLCBQQ0lfQlVTKGlvbW11LT5iZGYpLAorICAgICAgICAgICAgICAgICAg
IFBDSV9TTE9UKGlvbW11LT5iZGYpLCBQQ0lfRlVOQyhpb21tdS0+YmRmKSwK
KyAgICAgICAgICAgICAgICAgICB0aW1lb3V0X2Jhc2UgPyAiaW90bGIgIiA6
ICIiKTsKKyAgICAgICAgICAgIHRpbWVvdXQgPSAwOworICAgICAgICB9Cisg
ICAgICAgIGNwdV9yZWxheCgpOwogICAgIH0KLSAgICBBTURfSU9NTVVfREVC
VUcoIldhcm5pbmc6IENvbVdhaXRJbnQgYml0IGRpZCBub3QgYXNzZXJ0IVxu
Iik7CisKKyAgICBpZiAoICF0aW1lb3V0ICkKKyAgICAgICAgcHJpbnRrKFhF
TkxPR19XQVJOSU5HCisgICAgICAgICAgICAgICAiQU1EIElPTU1VICUwNHg6
JTAyeDolMDJ4LiV1OiAlc2NvbXBsZXRpb24gd2FpdCB0b29rICVsdW1zXG4i
LAorICAgICAgICAgICAgICAgaW9tbXUtPnNlZywgUENJX0JVUyhpb21tdS0+
YmRmKSwKKyAgICAgICAgICAgICAgIFBDSV9TTE9UKGlvbW11LT5iZGYpLCBQ
Q0lfRlVOQyhpb21tdS0+YmRmKSwKKyAgICAgICAgICAgICAgIHRpbWVvdXRf
YmFzZSA/ICJpb3RsYiAiIDogIiIsCisgICAgICAgICAgICAgICAoTk9XKCkg
LSBzdGFydCkgLyAxMDAwMDAwMCk7CiB9CiAKIC8qIEJ1aWxkIGxvdyBsZXZl
bCBpb21tdSBjb21tYW5kIG1lc3NhZ2VzICovCkBAIC0yOTQsNyArMzA1LDcg
QEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfaW90bGIodTggZGV2Zm4sIGNvbgog
ICAgIC8qIHNlbmQgSU5WQUxJREFURV9JT1RMQl9QQUdFUyBjb21tYW5kICov
CiAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5sb2NrLCBmbGFncyk7
CiAgICAgaW52YWxpZGF0ZV9pb3RsYl9wYWdlcyhpb21tdSwgbWF4cGVuZCwg
MCwgcXVldWVpZCwgZGFkZHIsIHJlcV9pZCwgb3JkZXIpOwotICAgIGZsdXNo
X2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAgICBmbHVzaF9jb21tYW5kX2J1
ZmZlcihpb21tdSwgaW9tbXVfZGV2X2lvdGxiX3RpbWVvdXQpOwogICAgIHNw
aW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CiB9
CiAKQEAgLTMzMSw3ICszNDIsNyBAQCBzdGF0aWMgdm9pZCBfYW1kX2lvbW11
X2ZsdXNoX3BhZ2VzKHN0cnVjCiAgICAgewogICAgICAgICBzcGluX2xvY2tf
aXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKICAgICAgICAgaW52YWxp
ZGF0ZV9pb21tdV9wYWdlcyhpb21tdSwgZGFkZHIsIGRvbV9pZCwgb3JkZXIp
OwotICAgICAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSk7CisgICAg
ICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11LCAwKTsKICAgICAgICAg
c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsK
ICAgICB9CiAKQEAgLTM1NSw3ICszNjYsNyBAQCB2b2lkIGFtZF9pb21tdV9m
bHVzaF9kZXZpY2Uoc3RydWN0IGFtZF9pCiAgICAgQVNTRVJUKCBzcGluX2lz
X2xvY2tlZCgmaW9tbXUtPmxvY2spICk7CiAKICAgICBpbnZhbGlkYXRlX2Rl
dl90YWJsZV9lbnRyeShpb21tdSwgYmRmKTsKLSAgICBmbHVzaF9jb21tYW5k
X2J1ZmZlcihpb21tdSk7CisgICAgZmx1c2hfY29tbWFuZF9idWZmZXIoaW9t
bXUsIDApOwogfQogCiB2b2lkIGFtZF9pb21tdV9mbHVzaF9pbnRyZW1hcChz
dHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdWludDE2X3QgYmRmKQpAQCAtMzYz
LDcgKzM3NCw3IEBAIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2ludHJlbWFwKHN0
cnVjdCBhbWQKICAgICBBU1NFUlQoIHNwaW5faXNfbG9ja2VkKCZpb21tdS0+
bG9jaykgKTsKIAogICAgIGludmFsaWRhdGVfaW50ZXJydXB0X3RhYmxlKGlv
bW11LCBiZGYpOwotICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11KTsK
KyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSwgMCk7CiB9CiAKIHZv
aWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9jYWNoZXMoc3RydWN0IGFtZF9pb21t
dSAqaW9tbXUpCkBAIC0zNzEsNyArMzgyLDcgQEAgdm9pZCBhbWRfaW9tbXVf
Zmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgYQogICAgIEFTU0VSVCggc3Bpbl9p
c19sb2NrZWQoJmlvbW11LT5sb2NrKSApOwogCiAgICAgaW52YWxpZGF0ZV9p
b21tdV9hbGwoaW9tbXUpOwotICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlv
bW11KTsKKyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSwgMCk7CiB9
CiAKIHZvaWQgYW1kX2lvbW11X3NlbmRfZ3Vlc3RfY21kKHN0cnVjdCBhbWRf
aW9tbXUgKmlvbW11LCB1MzIgY21kW10pCkBAIC0zODEsNyArMzkyLDggQEAg
dm9pZCBhbWRfaW9tbXVfc2VuZF9ndWVzdF9jbWQoc3RydWN0IGFtZAogICAg
IHNwaW5fbG9ja19pcnFzYXZlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogCiAg
ICAgc2VuZF9pb21tdV9jb21tYW5kKGlvbW11LCBjbWQpOwotICAgIGZsdXNo
X2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAgICAvKiBUQkQ6IFRpbWVvdXQg
c2VsZWN0aW9uIG1heSByZXF1aXJlIHBlZWtpbmcgaW50byBjbWRbXS4gKi8K
KyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSwgMCk7CiAKICAgICBz
cGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwog
fQo=

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.15-1.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.15-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBzaXplIHFpbnZhbCBxdWV1ZSBkeW5hbWljYWxseQoKV2l0aCB0
aGUgcHJlc2VudCBzeW5jaHJvbm91cyBtb2RlbCwgd2UgbmVlZCB0d28gc2xv
dHMgZm9yIGV2ZXJ5Cm9wZXJhdGlvbiAodGhlIG9wZXJhdGlvbiBpdHNlbGYg
YW5kIGEgd2FpdCBkZXNjcmlwdG9yKS4gIFRoZXJlIGNhbiBiZQpvbmUgc3Vj
aCBwYWlyIG9mIHJlcXVlc3RzIHBlbmRpbmcgcGVyIENQVS4gVG8gZW5zdXJl
IHRoYXQgdW5kZXIgYWxsCm5vcm1hbCBjaXJjdW1zdGFuY2VzIGEgc2xvdCBp
cyBhbHdheXMgYXZhaWxhYmxlIHdoZW4gb25lIGlzIHJlcXVlc3RlZCwKc2l6
ZSB0aGUgcXVldWUgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBw
cmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv
aW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t
bXUuaApAQCAtNDUwLDE3ICs0NTAsOSBAQCBzdHJ1Y3QgcWludmFsX2VudHJ5
IHsKICAgICB9cTsKIH07CiAKLS8qIE9yZGVyIG9mIHF1ZXVlIGludmFsaWRh
dGlvbiBwYWdlcyhtYXggaXMgOCkgKi8KLSNkZWZpbmUgUUlOVkFMX1BBR0Vf
T1JERVIgICAyCi0KLSNkZWZpbmUgUUlOVkFMX0FSQ0hfUEFHRV9PUkRFUiAg
KFFJTlZBTF9QQUdFX09SREVSICsgUEFHRV9TSElGVF80SyAtIFBBR0VfU0hJ
RlQpCi0jZGVmaW5lIFFJTlZBTF9BUkNIX1BBR0VfTlIgICAgICggUUlOVkFM
X0FSQ0hfUEFHRV9PUkRFUiA8IDAgPyAgXAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxIDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCBRSU5W
QUxfQVJDSF9QQUdFX09SREVSICkKLQogLyogRWFjaCBlbnRyeSBpcyAxNiBi
eXRlcywgc28gMl44IGVudHJpZXMgcGVyIHBhZ2UgKi8KICNkZWZpbmUgUUlO
VkFMX0VOVFJZX09SREVSICAoIFBBR0VfU0hJRlQgLSA0ICkKLSNkZWZpbmUg
UUlOVkFMX0VOVFJZX05SICAgICAoMSA8PCAoUUlOVkFMX1BBR0VfT1JERVIg
KyA4KSkKKyNkZWZpbmUgUUlOVkFMX01BWF9FTlRSWV9OUiAoMXUgPDwgKDcg
KyBRSU5WQUxfRU5UUllfT1JERVIpKQogCiAvKiBTdGF0dXMgZGF0YSBmbGFn
ICovCiAjZGVmaW5lIFFJTlZBTF9TVEFUX0lOSVQgIDAKLS0tIGEveGVuL2Ry
aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCisrKyBiL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpAQCAtMzEsNiArMzEsOSBA
QAogCiAjZGVmaW5lIFZURF9RSV9USU1FT1VUCTEKIAorc3RhdGljIHVuc2ln
bmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX3BnX29yZGVyOworc3RhdGljIHVu
c2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHFpX2VudHJ5X25yOworCiBzdGF0
aWMgaW50IF9fbXVzdF9jaGVjayBpbnZhbGlkYXRlX3N5bmMoc3RydWN0IHZ0
ZF9pb21tdSAqaW9tbXUpOwogCiBzdGF0aWMgdm9pZCBwcmludF9xaV9yZWdz
KHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQpAQCAtNTUsNyArNTgsNyBAQCBz
dGF0aWMgdW5zaWduZWQgaW50IHFpbnZhbF9uZXh0X2luZGV4KHN0CiAgICAg
dGFpbCA+Pj0gUUlOVkFMX0lOREVYX1NISUZUOwogCiAgICAgLyogKHRhaWwr
MSA9PSBoZWFkKSBpbmRpY2F0ZXMgYSBmdWxsIHF1ZXVlLCB3YWl0IGZvciBI
VyAqLwotICAgIHdoaWxlICggKCB0YWlsICsgMSApICUgUUlOVkFMX0VOVFJZ
X05SID09CisgICAgd2hpbGUgKCAoKHRhaWwgKyAxKSAmIChxaV9lbnRyeV9u
ciAtIDEpKSA9PQogICAgICAgICAgICAgKCBkbWFyX3JlYWRxKGlvbW11LT5y
ZWcsIERNQVJfSVFIX1JFRykgPj4gUUlOVkFMX0lOREVYX1NISUZUICkgKQog
ICAgICAgICBjcHVfcmVsYXgoKTsKIApAQCAtNjgsNyArNzEsNyBAQCBzdGF0
aWMgdm9pZCBxaW52YWxfdXBkYXRlX3F0YWlsKHN0cnVjdCB2CiAKICAgICAv
KiBOZWVkIGhvbGQgcmVnaXN0ZXIgbG9jayB3aGVuIHVwZGF0ZSB0YWlsICov
CiAgICAgQVNTRVJUKCBzcGluX2lzX2xvY2tlZCgmaW9tbXUtPnJlZ2lzdGVy
X2xvY2spICk7Ci0gICAgdmFsID0gKGluZGV4ICsgMSkgJSBRSU5WQUxfRU5U
UllfTlI7CisgICAgdmFsID0gKGluZGV4ICsgMSkgJiAocWlfZW50cnlfbnIg
LSAxKTsKICAgICBkbWFyX3dyaXRlcShpb21tdS0+cmVnLCBETUFSX0lRVF9S
RUcsICh2YWwgPDwgUUlOVkFMX0lOREVYX1NISUZUKSk7CiB9CiAKQEAgLTQw
Myw4ICs0MDYsMjggQEAgaW50IGVuYWJsZV9xaW52YWwoc3RydWN0IHZ0ZF9p
b21tdSAqaW9tbQogCiAgICAgaWYgKCBpb21tdS0+cWludmFsX21hZGRyID09
IDAgKQogICAgIHsKLSAgICAgICAgaW9tbXUtPnFpbnZhbF9tYWRkciA9IGFs
bG9jX3BndGFibGVfbWFkZHIoUUlOVkFMX0FSQ0hfUEFHRV9OUiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW9tbXUtPm5vZGUpOworICAgICAgICBpZiAoICFxaV9lbnRyeV9uciApCisg
ICAgICAgIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBXaXRo
IHRoZSBwcmVzZW50IHN5bmNocm9ub3VzIG1vZGVsLCB3ZSBuZWVkIHR3byBz
bG90cyBmb3IgZXZlcnkKKyAgICAgICAgICAgICAqIG9wZXJhdGlvbiAodGhl
IG9wZXJhdGlvbiBpdHNlbGYgYW5kIGEgd2FpdCBkZXNjcmlwdG9yKS4gIFRo
ZXJlCisgICAgICAgICAgICAgKiBjYW4gYmUgb25lIHN1Y2ggcGFpciBvZiBy
ZXF1ZXN0cyBwZW5kaW5nIHBlciBDUFUuICBPbmUgZXh0cmEKKyAgICAgICAg
ICAgICAqIGVudHJ5IGlzIG5lZWRlZCBhcyB0aGUgcmluZyBpcyBjb25zaWRl
cmVkIGZ1bGwgd2hlbiB0aGVyZSdzCisgICAgICAgICAgICAgKiBvbmx5IG9u
ZSBlbnRyeSBsZWZ0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBC
VUlMRF9CVUdfT04oQ09ORklHX05SX0NQVVMgKiAyID49IFFJTlZBTF9NQVhf
RU5UUllfTlIpOworICAgICAgICAgICAgcWlfcGdfb3JkZXIgPSBnZXRfb3Jk
ZXJfZnJvbV9ieXRlcygobnVtX3ByZXNlbnRfY3B1cygpICogMiArIDEpIDw8
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChQQUdFX1NISUZUIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFFJTlZBTF9FTlRSWV9PUkRFUikpOwor
ICAgICAgICAgICAgcWlfZW50cnlfbnIgPSAxdSA8PCAocWlfcGdfb3JkZXIg
KyBRSU5WQUxfRU5UUllfT1JERVIpOworCisgICAgICAgICAgICBkcHJpbnRr
KFhFTkxPR19JTkZPIFZURFBSRUZJWCwKKyAgICAgICAgICAgICAgICAgICAg
IlFJOiB1c2luZyAldS1lbnRyeSByaW5nKHMpXG4iLCBxaV9lbnRyeV9ucik7
CisgICAgICAgIH0KKworICAgICAgICBpb21tdS0+cWludmFsX21hZGRyID0K
KyAgICAgICAgICAgIGFsbG9jX3BndGFibGVfbWFkZHIocWlfZW50cnlfbnIg
Pj4gUUlOVkFMX0VOVFJZX09SREVSLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpb21tdS0+bm9kZSk7CiAgICAgICAgIGlmICggaW9tbXUt
PnFpbnZhbF9tYWRkciA9PSAwICkKICAgICAgICAgewogICAgICAgICAgICAg
ZHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgsCkBAIC00MTgsMTUg
KzQ0MSwxNiBAQCBpbnQgZW5hYmxlX3FpbnZhbChzdHJ1Y3QgdnRkX2lvbW11
ICppb21tCiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPnJlZ2lz
dGVyX2xvY2ssIGZsYWdzKTsKIAotICAgIC8qIFNldHVwIEludmFsaWRhdGlv
biBRdWV1ZSBBZGRyZXNzKElRQSkgcmVnaXN0ZXIgd2l0aCB0aGUKLSAgICAg
KiBhZGRyZXNzIG9mIHRoZSBwYWdlIHdlIGp1c3QgYWxsb2NhdGVkLiAgUVMg
ZmllbGQgYXQKLSAgICAgKiBiaXRzWzI6MF0gdG8gaW5kaWNhdGUgc2l6ZSBv
ZiBxdWV1ZSBpcyBvbmUgNEtCIHBhZ2UuCi0gICAgICogVGhhdCdzIDI1NiBl
bnRyaWVzLiAgUXVldWVkIEhlYWQgKElRSCkgYW5kIFF1ZXVlIFRhaWwgKElR
VCkKLSAgICAgKiByZWdpc3RlcnMgYXJlIGF1dG9tYXRpY2FsbHkgcmVzZXQg
dG8gMCB3aXRoIHdyaXRlCi0gICAgICogdG8gSVFBIHJlZ2lzdGVyLgorICAg
IC8qCisgICAgICogU2V0dXAgSW52YWxpZGF0aW9uIFF1ZXVlIEFkZHJlc3Mg
KElRQSkgcmVnaXN0ZXIgd2l0aCB0aGUgYWRkcmVzcyBvZiB0aGUKKyAgICAg
KiBwYWdlcyB3ZSBqdXN0IGFsbG9jYXRlZC4gIFRoZSBRUyBmaWVsZCBhdCBi
aXRzWzI6MF0gaW5kaWNhdGVzIHRoZSBzaXplCisgICAgICogKHBhZ2Ugb3Jk
ZXIpIG9mIHRoZSBxdWV1ZS4KKyAgICAgKgorICAgICAqIFF1ZXVlZCBIZWFk
IChJUUgpIGFuZCBRdWV1ZSBUYWlsIChJUVQpIHJlZ2lzdGVycyBhcmUgYXV0
b21hdGljYWxseQorICAgICAqIHJlc2V0IHRvIDAgd2l0aCB3cml0ZSB0byBJ
UUEgcmVnaXN0ZXIuCiAgICAgICovCiAgICAgZG1hcl93cml0ZXEoaW9tbXUt
PnJlZywgRE1BUl9JUUFfUkVHLAotICAgICAgICAgICAgICAgIGlvbW11LT5x
aW52YWxfbWFkZHIgfCBRSU5WQUxfUEFHRV9PUkRFUik7CisgICAgICAgICAg
ICAgICAgaW9tbXUtPnFpbnZhbF9tYWRkciB8IHFpX3BnX29yZGVyKTsKIAog
ICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIERNQVJfSVFUX1JFRywgMCk7
CiAK

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.15-2.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.15-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHNpemUgY29tbWFuZCBidWZmZXIgZHluYW1pY2FsbHkK
CldpdGggdGhlIHByZXNlbnQgc3luY2hyb25vdXMgbW9kZWwsIHdlIG5lZWQg
dHdvIHNsb3RzIGZvciBldmVyeQpvcGVyYXRpb24gKHRoZSBvcGVyYXRpb24g
aXRzZWxmIGFuZCBhIHdhaXQgY29tbWFuZCkuICBUaGVyZSBjYW4gYmUgb25l
CnN1Y2ggcGFpciBvZiBjb21tYW5kcyBwZW5kaW5nIHBlciBDUFUuIFRvIGVu
c3VyZSB0aGF0IHVuZGVyIGFsbCBub3JtYWwKY2lyY3Vtc3RhbmNlcyBhIHNs
b3QgaXMgYWx3YXlzIGF2YWlsYWJsZSB3aGVuIG9uZSBpcyByZXF1ZXN0ZWQs
IHNpemUgdGhlCmNvbW1hbmQgcmluZyBhY2NvcmRpbmcgdG8gdGhlIG51bWJl
ciBvZiBwcmVzZW50IENQVXMuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAv
IENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg
PGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50
IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hbWQvaW9tbXUtZGVmcy5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv
dWdoL2FtZC9pb21tdS1kZWZzLmgKQEAgLTIwLDkgKzIwLDYgQEAKICNpZm5k
ZWYgQU1EX0lPTU1VX0RFRlNfSAogI2RlZmluZSBBTURfSU9NTVVfREVGU19I
CiAKLS8qIElPTU1VIENvbW1hbmQgQnVmZmVyIGVudHJpZXM6IGluIHBvd2Vy
IG9mIDIgaW5jcmVtZW50cywgbWluaW11bSBvZiAyNTYgKi8KLSNkZWZpbmUg
SU9NTVVfQ01EX0JVRkZFUl9ERUZBVUxUX0VOVFJJRVMJNTEyCi0KIC8qIElP
TU1VIEV2ZW50IExvZyBlbnRyaWVzOiBpbiBwb3dlciBvZiAyIGluY3JlbWVu
dHMsIG1pbmltdW0gb2YgMjU2ICovCiAjZGVmaW5lIElPTU1VX0VWRU5UX0xP
R19ERUZBVUxUX0VOVFJJRVMgICAgIDUxMgogCkBAIC0xNjQsOCArMTYxLDgg
QEAgc3RydWN0IGFtZF9pb21tdV9kdGUgewogI2RlZmluZSBJT01NVV9DTURf
QlVGRkVSX0xFTkdUSF9NQVNLCQkweDBGMDAwMDAwCiAjZGVmaW5lIElPTU1V
X0NNRF9CVUZGRVJfTEVOR1RIX1NISUZUCQkyNAogCi0jZGVmaW5lIElPTU1V
X0NNRF9CVUZGRVJfRU5UUllfU0laRQkJCTE2Ci0jZGVmaW5lIElPTU1VX0NN
RF9CVUZGRVJfUE9XRVJfT0YyX0VOVFJJRVNfUEVSX1BBR0UJOAorI2RlZmlu
ZSBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVSICAgICAgICAgICAgNAor
I2RlZmluZSBJT01NVV9DTURfQlVGRkVSX01BWF9FTlRSSUVTICAgICAgICAg
ICAgKDF1IDw8IDE1KQogCiAjZGVmaW5lIElPTU1VX0NNRF9PUENPREVfTUFT
SwkJCTB4RjAwMDAwMDAKICNkZWZpbmUgSU9NTVVfQ01EX09QQ09ERV9TSElG
VAkJCTI4Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21t
dV9jbWQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9t
bXVfY21kLmMKQEAgLTI0LDcgKzI0LDcgQEAgc3RhdGljIGludCBxdWV1ZV9p
b21tdV9jb21tYW5kKHN0cnVjdCBhbQogewogICAgIHVpbnQzMl90IHRhaWws
IGhlYWQ7CiAKLSAgICB0YWlsID0gaW9tbXUtPmNtZF9idWZmZXIudGFpbCAr
IElPTU1VX0NNRF9CVUZGRVJfRU5UUllfU0laRTsKKyAgICB0YWlsID0gaW9t
bXUtPmNtZF9idWZmZXIudGFpbCArIHNpemVvZihjbWRfZW50cnlfdCk7CiAg
ICAgaWYgKCB0YWlsID09IGlvbW11LT5jbWRfYnVmZmVyLnNpemUgKQogICAg
ICAgICB0YWlsID0gMDsKIApAQCAtMzMsNyArMzMsNyBAQCBzdGF0aWMgaW50
IHF1ZXVlX2lvbW11X2NvbW1hbmQoc3RydWN0IGFtCiAgICAgaWYgKCBoZWFk
ICE9IHRhaWwgKQogICAgIHsKICAgICAgICAgbWVtY3B5KGlvbW11LT5jbWRf
YnVmZmVyLmJ1ZmZlciArIGlvbW11LT5jbWRfYnVmZmVyLnRhaWwsCi0gICAg
ICAgICAgICAgICBjbWQsIElPTU1VX0NNRF9CVUZGRVJfRU5UUllfU0laRSk7
CisgICAgICAgICAgICAgICBjbWQsIHNpemVvZihjbWRfZW50cnlfdCkpOwog
CiAgICAgICAgIGlvbW11LT5jbWRfYnVmZmVyLnRhaWwgPSB0YWlsOwogICAg
ICAgICByZXR1cm4gMTsKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv
YW1kL2lvbW11X2luaXQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hbWQvaW9tbXVfaW5pdC5jCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGlj
IHZvaWQgcmVnaXN0ZXJfaW9tbXVfY21kX2J1ZmZlcl9pbgogICAgIHdyaXRl
bChlbnRyeSwgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NNRF9CVUZGRVJf
QkFTRV9MT1dfT0ZGU0VUKTsKIAogICAgIHBvd2VyX29mMl9lbnRyaWVzID0g
Z2V0X29yZGVyX2Zyb21fYnl0ZXMoaW9tbXUtPmNtZF9idWZmZXIuc2l6ZSkg
KwotICAgICAgICBJT01NVV9DTURfQlVGRkVSX1BPV0VSX09GMl9FTlRSSUVT
X1BFUl9QQUdFOworICAgICAgICBQQUdFX1NISUZUIC0gSU9NTVVfQ01EX0JV
RkZFUl9FTlRSWV9PUkRFUjsKIAogICAgIGVudHJ5ID0gMDsKICAgICBpb21t
dV9zZXRfYWRkcl9oaV90b19yZWcoJmVudHJ5LCBhZGRyX2hpKTsKQEAgLTEw
MTgsOSArMTAxOCwzMSBAQCBzdGF0aWMgdm9pZCAqX19pbml0IGFsbG9jYXRl
X3JpbmdfYnVmZmVyCiBzdGF0aWMgdm9pZCAqIF9faW5pdCBhbGxvY2F0ZV9j
bWRfYnVmZmVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQogewogICAgIC8q
IGFsbG9jYXRlICdjb21tYW5kIGJ1ZmZlcicgaW4gcG93ZXIgb2YgMiBpbmNy
ZW1lbnRzIG9mIDRLICovCisgICAgc3RhdGljIHVuc2lnbmVkIGludCBfX3Jl
YWRfbW9zdGx5IG5yX2VudHM7CisKKyAgICBpZiAoICFucl9lbnRzICkKKyAg
ICB7CisgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcjsKKworICAgICAgICAv
KgorICAgICAgICAgKiBXaXRoIHRoZSBwcmVzZW50IHN5bmNocm9ub3VzIG1v
ZGVsLCB3ZSBuZWVkIHR3byBzbG90cyBmb3IgZXZlcnkKKyAgICAgICAgICog
b3BlcmF0aW9uICh0aGUgb3BlcmF0aW9uIGl0c2VsZiBhbmQgYSB3YWl0IGNv
bW1hbmQpLiAgVGhlcmUgY2FuIGJlCisgICAgICAgICAqIG9uZSBzdWNoIHBh
aXIgb2YgcmVxdWVzdHMgcGVuZGluZyBwZXIgQ1BVLiAgT25lIGV4dHJhIGVu
dHJ5IGlzCisgICAgICAgICAqIG5lZWRlZCBhcyB0aGUgcmluZyBpcyBjb25z
aWRlcmVkIGZ1bGwgd2hlbiB0aGVyZSdzIG9ubHkgb25lIGVudHJ5CisgICAg
ICAgICAqIGxlZnQuCisgICAgICAgICAqLworICAgICAgICBCVUlMRF9CVUdf
T04oQ09ORklHX05SX0NQVVMgKiAyID49IElPTU1VX0NNRF9CVUZGRVJfTUFY
X0VOVFJJRVMpOworICAgICAgICBvcmRlciA9IGdldF9vcmRlcl9mcm9tX2J5
dGVzKChudW1fcHJlc2VudF9jcHVzKCkgKiAyICsgMSkgPDwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9DTURfQlVGRkVS
X0VOVFJZX09SREVSKTsKKyAgICAgICAgbnJfZW50cyA9IDF1IDw8IChvcmRl
ciArIFBBR0VfU0hJRlQgLSBJT01NVV9DTURfQlVGRkVSX0VOVFJZX09SREVS
KTsKKworICAgICAgICBBTURfSU9NTVVfREVCVUcoInVzaW5nICV1LWVudHJ5
IGNtZCByaW5nKHMpXG4iLCBucl9lbnRzKTsKKyAgICB9CisKKyAgICBCVUlM
RF9CVUdfT04oc2l6ZW9mKGNtZF9lbnRyeV90KSAhPSAoMXUgPDwgSU9NTVVf
Q01EX0JVRkZFUl9FTlRSWV9PUkRFUikpOworCiAgICAgcmV0dXJuIGFsbG9j
YXRlX3JpbmdfYnVmZmVyKCZpb21tdS0+Y21kX2J1ZmZlciwgc2l6ZW9mKGNt
ZF9lbnRyeV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SU9NTVVfQ01EX0JVRkZFUl9ERUZBVUxUX0VOVFJJRVMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJDb21tYW5kIEJ1ZmZlciIsIGZhbHNl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnJfZW50cywg
IkNvbW1hbmQgQnVmZmVyIiwgZmFsc2UpOwogfQogCiBzdGF0aWMgdm9pZCAq
IF9faW5pdCBhbGxvY2F0ZV9ldmVudF9sb2coc3RydWN0IGFtZF9pb21tdSAq
aW9tbXUpCg==

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.15-3.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.15-3.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBWVC1kOiBlbGltaW5hdGUgZmx1c2ggcmVsYXRlZCB0aW1lb3V0cwoKTGVh
dmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24gcGVuZGluZyB3aGVuIGl0
IGFwcGVhcnMgdG8gdGFrZSB0b28KbG9uZyBpcyBwcm9ibGVtYXRpYzogSWYg
ZS5nLiBhIFFJIGNvbW1hbmQgY29tcGxldGVkIGxhdGVyLCB0aGUgd3JpdGUg
dG8KdGhlICJwb2xsIHNsb3QiIG1heSBpbnN0ZWFkIGJlIHVuZGVyc3Rvb2Qg
dG8gc2lnbmFsIGEgc3Vic2VxdWVudGx5CnN0YXJ0ZWQgY29tbWFuZCdzIGNv
bXBsZXRpb24uIEFsc28gb3VyIGFjY291bnRpbmcgb2YgdGhlIHRpbWVvdXQg
cGVyaW9kCndhcyBhY3R1YWxseSB3cm9uZzogV2UgaW5jbHVkZWQgdGhlIHRp
bWUgaXQgdG9vayBmb3IgdGhlIGNvbW1hbmQgdG8KYWN0dWFsbHkgbWFrZSBp
dCB0byB0aGUgZnJvbnQgb2YgdGhlIHF1ZXVlLCB3aGljaCBjb3VsZCBiZSBo
ZWF2aWx5CmFmZmVjdGVkIGJ5IGd1ZXN0cyBvdGhlciB0aGFuIHRoZSBvbmUg
Zm9yIHdoaWNoIHRoZSBmbHVzaCBpcyBiZWluZwpwZXJmb3JtZWQuCgpEbyBh
d2F5IHdpdGggYWxsIHRpbWVvdXQgZGV0ZWN0aW9uIG9uIGFsbCBmbHVzaCBy
ZWxhdGVkIGNvZGUgcGF0aHMuCkxvZyBleGNlc3NpdmVseSBsb25nIHByb2Nl
c3NpbmcgdGltZXMgKHdpdGggYSBwcm9ncmVzc2l2ZSB0aHJlc2hvbGQpIHRv
CmhhdmUgc29tZSBpbmRpY2F0aW9uIG9mIHByb2JsZW1zIGluIHRoaXMgYXJl
YS4KCkFkZGl0aW9uYWxseSBsb2cgKG9uY2UpIGlmIHFpbnZhbF9uZXh0X2lu
ZGV4KCkgZGlkbid0IGltbWVkaWF0ZWx5IGZpbmQKYW4gYXZhaWxhYmxlIHNs
b3QuIFRvZ2V0aGVyIHdpdGggdGhlIGVhcmxpZXIgY2hhbmdlIHNpemluZyB0
aGUgcXVldWUocykKZHluYW1pY2FsbHksIHdlIHNob3VsZCBub3cgaGF2ZSBh
IGd1YXJhbnRlZSB0aGF0IHdpdGggb3VyIGZ1bGx5CnN5bmNocm9ub3VzIG1v
ZGVsIGFueSBkZW1hbmQgZm9yIHNsb3RzIGNhbiBhY3R1YWxseSBiZSBzYXRp
c2ZpZWQuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4
NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5v
cmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5o
CisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmgKQEAg
LTEyNyw2ICsxMjcsMzQgQEAgZG8gewogICAgIH0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
IH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgSU9NTVVfRkxVU0hfV0FJVCh3aGF0
LCBpb21tdSwgb2Zmc2V0LCBvcCwgY29uZCwgc3RzKSAgICAgICBcCitkbyB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQg
X19yZWFkX21vc3RseSB0aHJlc2hvbGQgPSAxOyAgICAgICAgICAgICAgIFwK
KyAgICBzX3RpbWVfdCBzdGFydCA9IE5PVygpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc190aW1lX3QgdGltZW91
dCA9IHN0YXJ0ICsgRE1BUl9PUEVSQVRJT05fVElNRU9VVCAqIHRocmVzaG9s
ZDsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKCA7IDsg
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBz
dHMgPSBvcChpb21tdS0+cmVnLCBvZmZzZXQpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKCBjb25kICkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoIHRpbWVvdXQgJiYg
Tk9XKCkgPiB0aW1lb3V0ICkgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0aHJlc2hv
bGQgfD0gdGhyZXNob2xkIDw8IDE7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBS
RUZJWCAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICAgICAiIElPTU1VIyV1OiAlcyBmbHVzaCB0YWtpbmcgdG9vIGxvbmdcbiIs
ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCB3
aGF0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
ICAgdGltZW91dCA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIGNwdV9yZWxheCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCAhdGltZW91dCAp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklY
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICIgSU9NTVUjJXU6ICVzIGZsdXNoIHRvb2sgJWx1bXNcbiIsICAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIHdoYXQs
IChOT1coKSAtIHN0YXJ0KSAvIDEwMDAwMDAwKTsgICAgXAorfSB3aGlsZSAo
IGZhbHNlICkKKwogaW50IHZ0ZF9od19jaGVjayh2b2lkKTsKIHZvaWQgZGlz
YWJsZV9wbXIoc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUpOwogaW50IGlzX2ln
ZF9kcmhkKHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZCk7Ci0tLSBhL3hl
bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0zNzMsOCArMzcz
LDggQEAgc3RhdGljIHZvaWQgaW9tbXVfZmx1c2hfd3JpdGVfYnVmZmVyKHN0
cgogICAgIGRtYXJfd3JpdGVsKGlvbW11LT5yZWcsIERNQVJfR0NNRF9SRUcs
IHZhbCB8IERNQV9HQ01EX1dCRik7CiAKICAgICAvKiBNYWtlIHN1cmUgaGFy
ZHdhcmUgY29tcGxldGUgaXQgKi8KLSAgICBJT01NVV9XQUlUX09QKGlvbW11
LCBETUFSX0dTVFNfUkVHLCBkbWFyX3JlYWRsLAotICAgICAgICAgICAgICAg
ICAgISh2YWwgJiBETUFfR1NUU19XQkZTKSwgdmFsKTsKKyAgICBJT01NVV9G
TFVTSF9XQUlUKCJ3cml0ZSBidWZmZXIiLCBpb21tdSwgRE1BUl9HU1RTX1JF
RywgZG1hcl9yZWFkbCwKKyAgICAgICAgICAgICAgICAgICAgICEodmFsICYg
RE1BX0dTVFNfV0JGUyksIHZhbCk7CiAKICAgICBzcGluX3VubG9ja19pcnFy
ZXN0b3JlKCZpb21tdS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3MpOwogfQpAQCAt
NDIzLDggKzQyMyw4IEBAIGludCB2dGRfZmx1c2hfY29udGV4dF9yZWcoc3Ry
dWN0IHZ0ZF9pb20KICAgICBkbWFyX3dyaXRlcShpb21tdS0+cmVnLCBETUFS
X0NDTURfUkVHLCB2YWwpOwogCiAgICAgLyogTWFrZSBzdXJlIGhhcmR3YXJl
IGNvbXBsZXRlIGl0ICovCi0gICAgSU9NTVVfV0FJVF9PUChpb21tdSwgRE1B
Ul9DQ01EX1JFRywgZG1hcl9yZWFkcSwKLSAgICAgICAgICAgICAgICAgICEo
dmFsICYgRE1BX0NDTURfSUNDKSwgdmFsKTsKKyAgICBJT01NVV9GTFVTSF9X
QUlUKCJjb250ZXh0IiwgaW9tbXUsIERNQVJfQ0NNRF9SRUcsIGRtYXJfcmVh
ZHEsCisgICAgICAgICAgICAgICAgICAgICAhKHZhbCAmIERNQV9DQ01EX0lD
QyksIHZhbCk7CiAKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21t
dS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3MpOwogICAgIC8qIGZsdXNoIGNvbnRl
eHQgZW50cnkgd2lsbCBpbXBsaWNpdGx5IGZsdXNoIHdyaXRlIGJ1ZmZlciAq
LwpAQCAtNTAxLDggKzUwMSw4IEBAIGludCB2dGRfZmx1c2hfaW90bGJfcmVn
KHN0cnVjdCB2dGRfaW9tbXUKICAgICBkbWFyX3dyaXRlcShpb21tdS0+cmVn
LCB0bGJfb2Zmc2V0ICsgOCwgdmFsKTsKIAogICAgIC8qIE1ha2Ugc3VyZSBo
YXJkd2FyZSBjb21wbGV0ZSBpdCAqLwotICAgIElPTU1VX1dBSVRfT1AoaW9t
bXUsICh0bGJfb2Zmc2V0ICsgOCksIGRtYXJfcmVhZHEsCi0gICAgICAgICAg
ICAgICAgICAhKHZhbCAmIERNQV9UTEJfSVZUKSwgdmFsKTsKKyAgICBJT01N
VV9GTFVTSF9XQUlUKCJpb3RsYiIsIGlvbW11LCAodGxiX29mZnNldCArIDgp
LCBkbWFyX3JlYWRxLAorICAgICAgICAgICAgICAgICAgICAgISh2YWwgJiBE
TUFfVExCX0lWVCksIHZhbCk7CiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9y
ZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKIAogICAgIC8qIGNo
ZWNrIElPVExCIGludmFsaWRhdGlvbiBncmFudWxhcml0eSAqLwotLS0gYS94
ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMKKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCkBAIC0yOSw4ICsy
OSw2IEBACiAjaW5jbHVkZSAiZXh0ZXJuLmgiCiAjaW5jbHVkZSAiLi4vYXRz
LmgiCiAKLSNkZWZpbmUgVlREX1FJX1RJTUVPVVQJMQotCiBzdGF0aWMgdW5z
aWduZWQgaW50IF9fcmVhZF9tb3N0bHkgcWlfcGdfb3JkZXI7CiBzdGF0aWMg
dW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgcWlfZW50cnlfbnI7CiAKQEAg
LTYwLDcgKzU4LDExIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcWludmFsX25l
eHRfaW5kZXgoc3QKICAgICAvKiAodGFpbCsxID09IGhlYWQpIGluZGljYXRl
cyBhIGZ1bGwgcXVldWUsIHdhaXQgZm9yIEhXICovCiAgICAgd2hpbGUgKCAo
KHRhaWwgKyAxKSAmIChxaV9lbnRyeV9uciAtIDEpKSA9PQogICAgICAgICAg
ICAgKCBkbWFyX3JlYWRxKGlvbW11LT5yZWcsIERNQVJfSVFIX1JFRykgPj4g
UUlOVkFMX0lOREVYX1NISUZUICkgKQorICAgIHsKKyAgICAgICAgcHJpbnRr
X29uY2UoWEVOTE9HX0VSUiBWVERQUkVGSVggIiBJT01NVSMldTogbm8gUUkg
c2xvdCBhdmFpbGFibGVcbiIsCisgICAgICAgICAgICAgICAgICAgIGlvbW11
LT5pbmRleCk7CiAgICAgICAgIGNwdV9yZWxheCgpOworICAgIH0KIAogICAg
IHJldHVybiB0YWlsOwogfQpAQCAtMTgwLDIzICsxODIsMzIgQEAgc3RhdGlj
IGludCBfX211c3RfY2hlY2sgcXVldWVfaW52YWxpZGF0ZQogICAgIC8qIE5v
dyB3ZSBkb24ndCBzdXBwb3J0IGludGVycnVwdCBtZXRob2QgKi8KICAgICBp
ZiAoIHN3ICkKICAgICB7Ci0gICAgICAgIHNfdGltZV90IHRpbWVvdXQ7Ci0K
LSAgICAgICAgLyogSW4gY2FzZSBhbGwgd2FpdCBkZXNjcmlwdG9yIHdyaXRl
cyB0byBzYW1lIGFkZHIgd2l0aCBzYW1lIGRhdGEgKi8KLSAgICAgICAgdGlt
ZW91dCA9IE5PVygpICsgTUlMTElTRUNTKGZsdXNoX2Rldl9pb3RsYiA/Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9kZXZf
aW90bGJfdGltZW91dCA6IFZURF9RSV9USU1FT1VUKTsKKyAgICAgICAgc3Rh
dGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHRocmVzaG9sZCA9IDE7
CisgICAgICAgIHNfdGltZV90IHN0YXJ0ID0gTk9XKCk7CisgICAgICAgIHNf
dGltZV90IHRpbWVvdXQgPSBzdGFydCArIChmbHVzaF9kZXZfaW90bGIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaW9tbXVfZGV2
X2lvdGxiX3RpbWVvdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDogMTAwKSAqIE1JTExJU0VDUyh0aHJlc2hvbGQpOwogCiAgICAg
ICAgIHdoaWxlICggQUNDRVNTX09OQ0UoKnRoaXNfcG9sbF9zbG90KSAhPSBR
SU5WQUxfU1RBVF9ET05FICkKICAgICAgICAgewotICAgICAgICAgICAgaWYg
KCBOT1coKSA+IHRpbWVvdXQgKQorICAgICAgICAgICAgaWYgKCB0aW1lb3V0
ICYmIE5PVygpID4gdGltZW91dCApCiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgcHJpbnRfcWlfcmVncyhpb21tdSk7CisgICAgICAgICAgICAg
ICAgdGhyZXNob2xkIHw9IHRocmVzaG9sZCA8PCAxOwogICAgICAgICAgICAg
ICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgKLSAgICAgICAg
ICAgICAgICAgICAgICAgIiBRdWV1ZSBpbnZhbGlkYXRlIHdhaXQgZGVzY3Jp
cHRvciB0aW1lZCBvdXRcbiIpOwotICAgICAgICAgICAgICAgIHJldHVybiAt
RVRJTUVET1VUOworICAgICAgICAgICAgICAgICAgICAgICAiIElPTU1VIyV1
OiBRSSVzIHdhaXQgZGVzY3JpcHRvciB0YWtpbmcgdG9vIGxvbmdcbiIsCisg
ICAgICAgICAgICAgICAgICAgICAgIGlvbW11LT5pbmRleCwgZmx1c2hfZGV2
X2lvdGxiID8gIiBkZXYiIDogIiIpOworICAgICAgICAgICAgICAgIHByaW50
X3FpX3JlZ3MoaW9tbXUpOworICAgICAgICAgICAgICAgIHRpbWVvdXQgPSAw
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY3B1X3JlbGF4KCk7CiAg
ICAgICAgIH0KKworICAgICAgICBpZiAoICF0aW1lb3V0ICkKKyAgICAgICAg
ICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgKKyAgICAgICAg
ICAgICAgICAgICAiIElPTU1VIyV1OiBRSSVzIHdhaXQgZGVzY3JpcHRvciB0
b29rICVsdW1zXG4iLAorICAgICAgICAgICAgICAgICAgIGlvbW11LT5pbmRl
eCwgZmx1c2hfZGV2X2lvdGxiID8gIiBkZXYiIDogIiIsCisgICAgICAgICAg
ICAgICAgICAgKE5PVygpIC0gc3RhcnQpIC8gMTAwMDAwMDApOworCiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIAo=

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.15-4.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.15-4.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHdhaXQgZm9yIGNvbW1hbmQgc2xvdCB0byBiZSBhdmFp
bGFibGUKCk5vIGNhbGxlciBjYXJlZCBhYm91dCBzZW5kX2lvbW11X2NvbW1h
bmQoKSBpbmRpY2F0aW5nIHVuYXZhaWxhYmlsaXR5IG9mCmEgc2xvdC4gSGVu
Y2UgaWYgYSBzdWZmaWNpZW50IG51bWJlciBwcmlvciBjb21tYW5kcyB0aW1l
ZCBvdXQsIHdlIGRpZApibGluZGx5IGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0
ZWQgY29tbWFuZCB3YXMgc3VibWl0dGVkIHRvIHRoZSBJT01NVQp3aGVuIHJl
YWxseSBpdCB3YXNuJ3QuIFRoaXMgY291bGQgbWVhbiBib3RoIGEgaGFuZ2lu
ZyBzeXN0ZW0gKHdhaXRpbmcKZm9yIGEgY29tbWFuZCB0byBjb21wbGV0ZSB0
aGF0IHdhcyBuZXZlciBzZWVuIGJ5IHRoZSBJT01NVSkgb3IgYmxpbmRseQpw
cm9wYWdhdGluZyBzdWNjZXNzIGJhY2sgdG8gY2FsbGVycywgbWFraW5nIHRo
ZW0gYmVsaWV2ZSB0aGV5J3JlIGZpbmUKdG8gZS5nLiBmcmVlIHByZXZpb3Vz
bHkgdW5tYXBwZWQgcGFnZXMuCgpGb2xkIHRoZSB0aHJlZSBpbnZvbHZlZCBm
dW5jdGlvbnMgaW50byBvbmUsIGFkZCBzcGluIHdhaXRpbmcgZm9yIGFuCmF2
YWlsYWJsZSBzbG90IGFsb25nIHRoZSBsaW5lcyBvZiBWVC1kJ3MgcWludmFs
X25leHRfaW5kZXgoKSwgYW5kIGFzIGEKY29uc2VxdWVuY2UgZHJvcCBhbGwg
ZXJyb3IgaW5kaWNhdG9yIHJldHVybiB0eXBlcy92YWx1ZXMuCgpUaGlzIGlz
IHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9m
Zi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdl
ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0yMCw0
MyArMjAsMzAgQEAKICNpbmNsdWRlICJpb21tdS5oIgogI2luY2x1ZGUgIi4u
L2F0cy5oIgogCi1zdGF0aWMgaW50IHF1ZXVlX2lvbW11X2NvbW1hbmQoc3Ry
dWN0IGFtZF9pb21tdSAqaW9tbXUsIHUzMiBjbWRbXSkKK3N0YXRpYyB2b2lk
IHNlbmRfaW9tbXVfY29tbWFuZChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJf
dCBjbWRbNF0pCiB7Ci0gICAgdWludDMyX3QgdGFpbCwgaGVhZDsKKyAgICB1
aW50MzJfdCB0YWlsOwogCiAgICAgdGFpbCA9IGlvbW11LT5jbWRfYnVmZmVy
LnRhaWwgKyBzaXplb2YoY21kX2VudHJ5X3QpOwogICAgIGlmICggdGFpbCA9
PSBpb21tdS0+Y21kX2J1ZmZlci5zaXplICkKICAgICAgICAgdGFpbCA9IDA7
CiAKLSAgICBoZWFkID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArCi0gICAg
ICAgICAgICAgICAgIElPTU1VX0NNRF9CVUZGRVJfSEVBRF9PRkZTRVQpICYg
SU9NTVVfUklOR19CVUZGRVJfUFRSX01BU0s7Ci0gICAgaWYgKCBoZWFkICE9
IHRhaWwgKQorICAgIHdoaWxlICggdGFpbCA9PSAocmVhZGwoaW9tbXUtPm1t
aW9fYmFzZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9D
TURfQlVGRkVSX0hFQURfT0ZGU0VUKSAmCisgICAgICAgICAgICAgICAgICAg
ICBJT01NVV9SSU5HX0JVRkZFUl9QVFJfTUFTSykgKQogICAgIHsKLSAgICAg
ICAgbWVtY3B5KGlvbW11LT5jbWRfYnVmZmVyLmJ1ZmZlciArIGlvbW11LT5j
bWRfYnVmZmVyLnRhaWwsCi0gICAgICAgICAgICAgICBjbWQsIHNpemVvZihj
bWRfZW50cnlfdCkpOwotCi0gICAgICAgIGlvbW11LT5jbWRfYnVmZmVyLnRh
aWwgPSB0YWlsOwotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgcHJpbnRr
X29uY2UoWEVOTE9HX0VSUiAiQU1EIElPTU1VICVwcDogbm8gY21kIHNsb3Qg
YXZhaWxhYmxlXG4iLAorICAgICAgICAgICAgICAgICAgICAmUENJX1NCREYy
KGlvbW11LT5zZWcsIGlvbW11LT5iZGYpKTsKKyAgICAgICAgY3B1X3JlbGF4
KCk7CiAgICAgfQogCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lk
IGNvbW1pdF9pb21tdV9jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11
ICppb21tdSkKLXsKLSAgICB3cml0ZWwoaW9tbXUtPmNtZF9idWZmZXIudGFp
bCwKLSAgICAgICAgICAgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NNRF9C
VUZGRVJfVEFJTF9PRkZTRVQpOwotfQorICAgIG1lbWNweShpb21tdS0+Y21k
X2J1ZmZlci5idWZmZXIgKyBpb21tdS0+Y21kX2J1ZmZlci50YWlsLAorICAg
ICAgICAgICBjbWQsIHNpemVvZihjbWRfZW50cnlfdCkpOwogCi1zdGF0aWMg
aW50IHNlbmRfaW9tbXVfY29tbWFuZChzdHJ1Y3QgYW1kX2lvbW11ICppb21t
dSwgdTMyIGNtZFtdKQotewotICAgIGlmICggcXVldWVfaW9tbXVfY29tbWFu
ZChpb21tdSwgY21kKSApCi0gICAgewotICAgICAgICBjb21taXRfaW9tbXVf
Y29tbWFuZF9idWZmZXIoaW9tbXUpOwotICAgICAgICByZXR1cm4gMTsKLSAg
ICB9CisgICAgaW9tbXUtPmNtZF9idWZmZXIudGFpbCA9IHRhaWw7CiAKLSAg
ICByZXR1cm4gMDsKKyAgICB3cml0ZWwodGFpbCwgaW9tbXUtPm1taW9fYmFz
ZSArIElPTU1VX0NNRF9CVUZGRVJfVEFJTF9PRkZTRVQpOwogfQogCiBzdGF0
aWMgdm9pZCBmbHVzaF9jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11
ICppb21tdSkK

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.15-5.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.15-5.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IGRyb3AgY29tbWFuZCBjb21wbGV0aW9uIHRpbWVvdXQK
CkZpcnN0IGFuZCBmb3JlbW9zdCAtIHN1Y2ggdGltZW91dHMgd2VyZSBub3Qg
c2lnbmFsZWQgdG8gY2FsbGVycywgbWFraW5nCnRoZW0gYmVsaWV2ZSB0aGV5
J3JlIGZpbmUgdG8gZS5nLiBmcmVlIHByZXZpb3VzbHkgdW5tYXBwZWQgcGFn
ZXMuCgpNaXJyb3IgVlQtZCdzIGJlaGF2aW9yOiBBIGZpeGVkIG51bWJlciBv
ZiBsb29wIGl0ZXJhdGlvbnMgaXMgbm90IGEKc3VpdGFibGUgd2F5IHRvIGRl
dGVjdCB0aW1lb3V0cyBpbiBhbiBlbnZpcm9ubWVudCAoQ1BVIGFuZCBidXMg
c3BlZWRzKQppbmRlcGVuZGVudCBtYW5uZXIgYW55d2F5LiBGdXJ0aGVybW9y
ZSwgbGVhdmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24KcGVuZGluZyB3
aGVuIGl0IGFwcGVhcnMgdG8gdGFrZSB0b28gbG9uZyBpcyBwcm9ibGVtYXRp
YzogSWYgYSBjb21tYW5kCmNvbXBsZXRlZCBsYXRlciwgdGhlIHNpZ25hbGlu
ZyBvZiBpdHMgY29tcGxldGlvbiBtYXkgaW5zdGVhZCBiZQp1bmRlcnN0b29k
IHRvIHNpZ25hbCBhIHN1YnNlcXVlbnRseSBzdGFydGVkIGNvbW1hbmQncyBj
b21wbGV0aW9uLgoKTG9nIGV4Y2Vzc2l2ZWx5IGxvbmcgcHJvY2Vzc2luZyB0
aW1lcyAod2l0aCBhIHByb2dyZXNzaXZlIHRocmVzaG9sZCkgdG8KaGF2ZSBz
b21lIGluZGljYXRpb24gb2YgcHJvYmxlbXMgaW4gdGhpcyBhcmVhLiBBbGxv
dyBjYWxsZXJzIHRvIHNwZWNpZnkKYSBub24tZGVmYXVsdCB0aW1lb3V0IGJp
YXMgZm9yIHRoaXMgbG9nZ2luZywgdXNpbmcgdGhlIHNhbWUgdmFsdWVzIGFz
ClZULWQgZG9lcywgd2hpY2ggaW4gcGFydGljdWxhciBtZWFucyBhIChieSBk
ZWZhdWx0KSBtdWNoIGxhcmdlciB2YWx1ZQpmb3IgZGV2aWNlIElPIFRMQiBp
bnZhbGlkYXRpb24uCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv
aW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k
L2lvbW11X2NtZC5jCkBAIC00NiwxMCArNDYsMTIgQEAgc3RhdGljIHZvaWQg
c2VuZF9pb21tdV9jb21tYW5kKHN0cnVjdCBhbQogICAgIHdyaXRlbCh0YWls
LCBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfQ01EX0JVRkZFUl9UQUlMX09G
RlNFVCk7CiB9CiAKLXN0YXRpYyB2b2lkIGZsdXNoX2NvbW1hbmRfYnVmZmVy
KHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQorc3RhdGljIHZvaWQgZmx1c2hf
Y29tbWFuZF9idWZmZXIoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdGlt
ZW91dF9iYXNlKQogewotICAgIHVuc2lnbmVkIGludCBjbWRbNF0sIHN0YXR1
cywgbG9vcF9jb3VudDsKLSAgICBib29sIGNvbXBfd2FpdDsKKyAgICB1aW50
MzJfdCBjbWRbNF07CisgICAgc190aW1lX3Qgc3RhcnQsIHRpbWVvdXQ7Cisg
ICAgc3RhdGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHRocmVzaG9s
ZCA9IDE7CiAKICAgICAvKiBSVzFDICdDb21XYWl0SW50JyBpbiBzdGF0dXMg
cmVnaXN0ZXIgKi8KICAgICB3cml0ZWwoSU9NTVVfU1RBVFVTX0NPTVBfV0FJ
VF9JTlQsCkBAIC02NSwyMiArNjcsMjkgQEAgc3RhdGljIHZvaWQgZmx1c2hf
Y29tbWFuZF9idWZmZXIoc3RydWN0CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgSU9NTVVfQ09NUF9XQUlUX0lfRkxBR19TSElGVCwgJmNtZFswXSk7CiAg
ICAgc2VuZF9pb21tdV9jb21tYW5kKGlvbW11LCBjbWQpOwogCi0gICAgLyog
TWFrZSBsb29wX2NvdW50IGxvbmcgZW5vdWdoIGZvciBwb2xsaW5nIGNvbXBs
ZXRpb24gd2FpdCBiaXQgKi8KLSAgICBsb29wX2NvdW50ID0gMTAwMDsKLSAg
ICBkbyB7Ci0gICAgICAgIHN0YXR1cyA9IHJlYWRsKGlvbW11LT5tbWlvX2Jh
c2UgKyBJT01NVV9TVEFUVVNfTU1JT19PRkZTRVQpOwotICAgICAgICBjb21w
X3dhaXQgPSBzdGF0dXMgJiBJT01NVV9TVEFUVVNfQ09NUF9XQUlUX0lOVDsK
LSAgICAgICAgLS1sb29wX2NvdW50OwotICAgIH0gd2hpbGUgKCAhY29tcF93
YWl0ICYmIGxvb3BfY291bnQgKTsKLQotICAgIGlmICggY29tcF93YWl0ICkK
KyAgICBzdGFydCA9IE5PVygpOworICAgIHRpbWVvdXQgPSBzdGFydCArICh0
aW1lb3V0X2Jhc2UgPzogMTAwKSAqIE1JTExJU0VDUyh0aHJlc2hvbGQpOwor
ICAgIHdoaWxlICggIShyZWFkbChpb21tdS0+bW1pb19iYXNlICsgSU9NTVVf
U1RBVFVTX01NSU9fT0ZGU0VUKSAmCisgICAgICAgICAgICAgIElPTU1VX1NU
QVRVU19DT01QX1dBSVRfSU5UKSApCiAgICAgewotICAgICAgICAvKiBSVzFD
ICdDb21XYWl0SW50JyBpbiBzdGF0dXMgcmVnaXN0ZXIgKi8KLSAgICAgICAg
d3JpdGVsKElPTU1VX1NUQVRVU19DT01QX1dBSVRfSU5ULAotICAgICAgICAg
ICAgICAgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX1NUQVRVU19NTUlPX09G
RlNFVCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCB0aW1lb3V0
ICYmIE5PVygpID4gdGltZW91dCApCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRocmVzaG9sZCB8PSB0aHJlc2hvbGQgPDwgMTsKKyAgICAgICAgICAgIHBy
aW50ayhYRU5MT0dfV0FSTklORworICAgICAgICAgICAgICAgICAgICJBTUQg
SU9NTVUgJXBwOiAlc2NvbXBsZXRpb24gd2FpdCB0YWtpbmcgdG9vIGxvbmdc
biIsCisgICAgICAgICAgICAgICAgICAgJlBDSV9TQkRGMihpb21tdS0+c2Vn
LCBpb21tdS0+YmRmKSwKKyAgICAgICAgICAgICAgICAgICB0aW1lb3V0X2Jh
c2UgPyAiaW90bGIgIiA6ICIiKTsKKyAgICAgICAgICAgIHRpbWVvdXQgPSAw
OworICAgICAgICB9CisgICAgICAgIGNwdV9yZWxheCgpOwogICAgIH0KLSAg
ICBBTURfSU9NTVVfREVCVUcoIldhcm5pbmc6IENvbVdhaXRJbnQgYml0IGRp
ZCBub3QgYXNzZXJ0IVxuIik7CisKKyAgICBpZiAoICF0aW1lb3V0ICkKKyAg
ICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCisgICAgICAgICAgICAgICAi
QU1EIElPTU1VICVwcDogJXNjb21wbGV0aW9uIHdhaXQgdG9vayAlbHVtc1xu
IiwKKyAgICAgICAgICAgICAgICZQQ0lfU0JERjIoaW9tbXUtPnNlZywgaW9t
bXUtPmJkZiksCisgICAgICAgICAgICAgICB0aW1lb3V0X2Jhc2UgPyAiaW90
bGIgIiA6ICIiLAorICAgICAgICAgICAgICAgKE5PVygpIC0gc3RhcnQpIC8g
MTAwMDAwMDApOwogfQogCiAvKiBCdWlsZCBsb3cgbGV2ZWwgaW9tbXUgY29t
bWFuZCBtZXNzYWdlcyAqLwpAQCAtMjkxLDcgKzMwMCw3IEBAIHZvaWQgYW1k
X2lvbW11X2ZsdXNoX2lvdGxiKHU4IGRldmZuLCBjb24KICAgICAvKiBzZW5k
IElOVkFMSURBVEVfSU9UTEJfUEFHRVMgY29tbWFuZCAqLwogICAgIHNwaW5f
bG9ja19pcnFzYXZlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogICAgIGludmFs
aWRhdGVfaW90bGJfcGFnZXMoaW9tbXUsIG1heHBlbmQsIDAsIHF1ZXVlaWQs
IGRhZGRyLCByZXFfaWQsIG9yZGVyKTsKLSAgICBmbHVzaF9jb21tYW5kX2J1
ZmZlcihpb21tdSk7CisgICAgZmx1c2hfY29tbWFuZF9idWZmZXIoaW9tbXUs
IGlvbW11X2Rldl9pb3RsYl90aW1lb3V0KTsKICAgICBzcGluX3VubG9ja19p
cnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogfQogCkBAIC0zMjgs
NyArMzM3LDcgQEAgc3RhdGljIHZvaWQgX2FtZF9pb21tdV9mbHVzaF9wYWdl
cyhzdHJ1YwogICAgIHsKICAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlv
bW11LT5sb2NrLCBmbGFncyk7CiAgICAgICAgIGludmFsaWRhdGVfaW9tbXVf
cGFnZXMoaW9tbXUsIGRhZGRyLCBkb21faWQsIG9yZGVyKTsKLSAgICAgICAg
Zmx1c2hfY29tbWFuZF9idWZmZXIoaW9tbXUpOworICAgICAgICBmbHVzaF9j
b21tYW5kX2J1ZmZlcihpb21tdSwgMCk7CiAgICAgICAgIHNwaW5fdW5sb2Nr
X2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CiAgICAgfQogCkBA
IC0zNTIsNyArMzYxLDcgQEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfZGV2aWNl
KHN0cnVjdCBhbWRfaQogICAgIEFTU0VSVCggc3Bpbl9pc19sb2NrZWQoJmlv
bW11LT5sb2NrKSApOwogCiAgICAgaW52YWxpZGF0ZV9kZXZfdGFibGVfZW50
cnkoaW9tbXUsIGJkZik7Ci0gICAgZmx1c2hfY29tbWFuZF9idWZmZXIoaW9t
bXUpOworICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11LCAwKTsKIH0K
IAogdm9pZCBhbWRfaW9tbXVfZmx1c2hfaW50cmVtYXAoc3RydWN0IGFtZF9p
b21tdSAqaW9tbXUsIHVpbnQxNl90IGJkZikKQEAgLTM2MCw3ICszNjksNyBA
QCB2b2lkIGFtZF9pb21tdV9mbHVzaF9pbnRyZW1hcChzdHJ1Y3QgYW1kCiAg
ICAgQVNTRVJUKCBzcGluX2lzX2xvY2tlZCgmaW9tbXUtPmxvY2spICk7CiAK
ICAgICBpbnZhbGlkYXRlX2ludGVycnVwdF90YWJsZShpb21tdSwgYmRmKTsK
LSAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSk7CisgICAgZmx1c2hf
Y29tbWFuZF9idWZmZXIoaW9tbXUsIDApOwogfQogCiB2b2lkIGFtZF9pb21t
dV9mbHVzaF9hbGxfY2FjaGVzKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQpA
QCAtMzY4LDcgKzM3Nyw3IEBAIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9j
YWNoZXMoc3RydWN0IGEKICAgICBBU1NFUlQoIHNwaW5faXNfbG9ja2VkKCZp
b21tdS0+bG9jaykgKTsKIAogICAgIGludmFsaWRhdGVfaW9tbXVfYWxsKGlv
bW11KTsKLSAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSk7CisgICAg
Zmx1c2hfY29tbWFuZF9idWZmZXIoaW9tbXUsIDApOwogfQogCiB2b2lkIGFt
ZF9pb21tdV9zZW5kX2d1ZXN0X2NtZChzdHJ1Y3QgYW1kX2lvbW11ICppb21t
dSwgdTMyIGNtZFtdKQpAQCAtMzc4LDcgKzM4Nyw4IEBAIHZvaWQgYW1kX2lv
bW11X3NlbmRfZ3Vlc3RfY21kKHN0cnVjdCBhbWQKICAgICBzcGluX2xvY2tf
aXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKIAogICAgIHNlbmRfaW9t
bXVfY29tbWFuZChpb21tdSwgY21kKTsKLSAgICBmbHVzaF9jb21tYW5kX2J1
ZmZlcihpb21tdSk7CisgICAgLyogVEJEOiBUaW1lb3V0IHNlbGVjdGlvbiBt
YXkgcmVxdWlyZSBwZWVraW5nIGludG8gY21kW10uICovCisgICAgZmx1c2hf
Y29tbWFuZF9idWZmZXIoaW9tbXUsIDApOwogCiAgICAgc3Bpbl91bmxvY2tf
aXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKIH0K

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-4.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-4.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IHdhaXQgZm9yIGNvbW1hbmQgc2xvdCB0byBiZSBhdmFp
bGFibGUKCk5vIGNhbGxlciBjYXJlZCBhYm91dCBzZW5kX2lvbW11X2NvbW1h
bmQoKSBpbmRpY2F0aW5nIHVuYXZhaWxhYmlsaXR5IG9mCmEgc2xvdC4gSGVu
Y2UgaWYgYSBzdWZmaWNpZW50IG51bWJlciBwcmlvciBjb21tYW5kcyB0aW1l
ZCBvdXQsIHdlIGRpZApibGluZGx5IGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0
ZWQgY29tbWFuZCB3YXMgc3VibWl0dGVkIHRvIHRoZSBJT01NVQp3aGVuIHJl
YWxseSBpdCB3YXNuJ3QuIFRoaXMgY291bGQgbWVhbiBib3RoIGEgaGFuZ2lu
ZyBzeXN0ZW0gKHdhaXRpbmcKZm9yIGEgY29tbWFuZCB0byBjb21wbGV0ZSB0
aGF0IHdhcyBuZXZlciBzZWVuIGJ5IHRoZSBJT01NVSkgb3IgYmxpbmRseQpw
cm9wYWdhdGluZyBzdWNjZXNzIGJhY2sgdG8gY2FsbGVycywgbWFraW5nIHRo
ZW0gYmVsaWV2ZSB0aGV5J3JlIGZpbmUKdG8gZS5nLiBmcmVlIHByZXZpb3Vz
bHkgdW5tYXBwZWQgcGFnZXMuCgpGb2xkIHRoZSB0aHJlZSBpbnZvbHZlZCBm
dW5jdGlvbnMgaW50byBvbmUsIGFkZCBzcGluIHdhaXRpbmcgZm9yIGFuCmF2
YWlsYWJsZSBzbG90IGFsb25nIHRoZSBsaW5lcyBvZiBWVC1kJ3MgcWludmFs
X25leHRfaW5kZXgoKSwgYW5kIGFzIGEKY29uc2VxdWVuY2UgZHJvcCBhbGwg
ZXJyb3IgaW5kaWNhdG9yIHJldHVybiB0eXBlcy92YWx1ZXMuCgpUaGlzIGlz
IHBhcnQgb2YgWFNBLTM3MyAvIENWRS0yMDIxLTI4NjkyLgoKU2lnbmVkLW9m
Zi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdl
ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+CgotLS0gYS94ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0yMCw0
MyArMjAsMzAgQEAKICNpbmNsdWRlICJpb21tdS5oIgogI2luY2x1ZGUgIi4u
L2F0cy5oIgogCi1zdGF0aWMgaW50IHF1ZXVlX2lvbW11X2NvbW1hbmQoc3Ry
dWN0IGFtZF9pb21tdSAqaW9tbXUsIHUzMiBjbWRbXSkKK3N0YXRpYyB2b2lk
IHNlbmRfaW9tbXVfY29tbWFuZChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJf
dCBjbWRbNF0pCiB7Ci0gICAgdWludDMyX3QgdGFpbCwgaGVhZDsKKyAgICB1
aW50MzJfdCB0YWlsOwogCiAgICAgdGFpbCA9IGlvbW11LT5jbWRfYnVmZmVy
LnRhaWwgKyBzaXplb2YoY21kX2VudHJ5X3QpOwogICAgIGlmICggdGFpbCA9
PSBpb21tdS0+Y21kX2J1ZmZlci5zaXplICkKICAgICAgICAgdGFpbCA9IDA7
CiAKLSAgICBoZWFkID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArCi0gICAg
ICAgICAgICAgICAgIElPTU1VX0NNRF9CVUZGRVJfSEVBRF9PRkZTRVQpICYg
SU9NTVVfUklOR19CVUZGRVJfUFRSX01BU0s7Ci0gICAgaWYgKCBoZWFkICE9
IHRhaWwgKQorICAgIHdoaWxlICggdGFpbCA9PSAocmVhZGwoaW9tbXUtPm1t
aW9fYmFzZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9D
TURfQlVGRkVSX0hFQURfT0ZGU0VUKSAmCisgICAgICAgICAgICAgICAgICAg
ICBJT01NVV9SSU5HX0JVRkZFUl9QVFJfTUFTSykgKQogICAgIHsKLSAgICAg
ICAgbWVtY3B5KGlvbW11LT5jbWRfYnVmZmVyLmJ1ZmZlciArIGlvbW11LT5j
bWRfYnVmZmVyLnRhaWwsCi0gICAgICAgICAgICAgICBjbWQsIHNpemVvZihj
bWRfZW50cnlfdCkpOwotCi0gICAgICAgIGlvbW11LT5jbWRfYnVmZmVyLnRh
aWwgPSB0YWlsOwotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgcHJpbnRr
X29uY2UoWEVOTE9HX0VSUiAiQU1EIElPTU1VICVwcDogbm8gY21kIHNsb3Qg
YXZhaWxhYmxlXG4iLAorICAgICAgICAgICAgICAgICAgICAmUENJX1NCREYy
KGlvbW11LT5zZWcsIGlvbW11LT5iZGYpKTsKKyAgICAgICAgY3B1X3JlbGF4
KCk7CiAgICAgfQogCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lk
IGNvbW1pdF9pb21tdV9jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11
ICppb21tdSkKLXsKLSAgICB3cml0ZWwoaW9tbXUtPmNtZF9idWZmZXIudGFp
bCwKLSAgICAgICAgICAgaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0NNRF9C
VUZGRVJfVEFJTF9PRkZTRVQpOwotfQorICAgIG1lbWNweShpb21tdS0+Y21k
X2J1ZmZlci5idWZmZXIgKyBpb21tdS0+Y21kX2J1ZmZlci50YWlsLAorICAg
ICAgICAgICBjbWQsIHNpemVvZihjbWRfZW50cnlfdCkpOwogCi1zdGF0aWMg
aW50IHNlbmRfaW9tbXVfY29tbWFuZChzdHJ1Y3QgYW1kX2lvbW11ICppb21t
dSwgdTMyIGNtZFtdKQotewotICAgIGlmICggcXVldWVfaW9tbXVfY29tbWFu
ZChpb21tdSwgY21kKSApCi0gICAgewotICAgICAgICBjb21taXRfaW9tbXVf
Y29tbWFuZF9idWZmZXIoaW9tbXUpOwotICAgICAgICByZXR1cm4gMTsKLSAg
ICB9CisgICAgaW9tbXUtPmNtZF9idWZmZXIudGFpbCA9IHRhaWw7CiAKLSAg
ICByZXR1cm4gMDsKKyAgICB3cml0ZWwodGFpbCwgaW9tbXUtPm1taW9fYmFz
ZSArIElPTU1VX0NNRF9CVUZGRVJfVEFJTF9PRkZTRVQpOwogfQogCiBzdGF0
aWMgdm9pZCBmbHVzaF9jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11
ICppb21tdSkK

--=separator
Content-Type: application/octet-stream; name="xsa373/xsa373-5.patch"
Content-Disposition: attachment; filename="xsa373/xsa373-5.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBTUQvSU9NTVU6IGRyb3AgY29tbWFuZCBjb21wbGV0aW9uIHRpbWVvdXQK
CkZpcnN0IGFuZCBmb3JlbW9zdCAtIHN1Y2ggdGltZW91dHMgd2VyZSBub3Qg
c2lnbmFsZWQgdG8gY2FsbGVycywgbWFraW5nCnRoZW0gYmVsaWV2ZSB0aGV5
J3JlIGZpbmUgdG8gZS5nLiBmcmVlIHByZXZpb3VzbHkgdW5tYXBwZWQgcGFn
ZXMuCgpNaXJyb3IgVlQtZCdzIGJlaGF2aW9yOiBBIGZpeGVkIG51bWJlciBv
ZiBsb29wIGl0ZXJhdGlvbnMgaXMgbm90IGEKc3VpdGFibGUgd2F5IHRvIGRl
dGVjdCB0aW1lb3V0cyBpbiBhbiBlbnZpcm9ubWVudCAoQ1BVIGFuZCBidXMg
c3BlZWRzKQppbmRlcGVuZGVudCBtYW5uZXIgYW55d2F5LiBGdXJ0aGVybW9y
ZSwgbGVhdmluZyBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24KcGVuZGluZyB3
aGVuIGl0IGFwcGVhcnMgdG8gdGFrZSB0b28gbG9uZyBpcyBwcm9ibGVtYXRp
YzogSWYgYSBjb21tYW5kCmNvbXBsZXRlZCBsYXRlciwgdGhlIHNpZ25hbGlu
ZyBvZiBpdHMgY29tcGxldGlvbiBtYXkgaW5zdGVhZCBiZQp1bmRlcnN0b29k
IHRvIHNpZ25hbCBhIHN1YnNlcXVlbnRseSBzdGFydGVkIGNvbW1hbmQncyBj
b21wbGV0aW9uLgoKTG9nIGV4Y2Vzc2l2ZWx5IGxvbmcgcHJvY2Vzc2luZyB0
aW1lcyAod2l0aCBhIHByb2dyZXNzaXZlIHRocmVzaG9sZCkgdG8KaGF2ZSBz
b21lIGluZGljYXRpb24gb2YgcHJvYmxlbXMgaW4gdGhpcyBhcmVhLiBBbGxv
dyBjYWxsZXJzIHRvIHNwZWNpZnkKYSBub24tZGVmYXVsdCB0aW1lb3V0IGJp
YXMgZm9yIHRoaXMgbG9nZ2luZywgdXNpbmcgdGhlIHNhbWUgdmFsdWVzIGFz
ClZULWQgZG9lcywgd2hpY2ggaW4gcGFydGljdWxhciBtZWFucyBhIChieSBk
ZWZhdWx0KSBtdWNoIGxhcmdlciB2YWx1ZQpmb3IgZGV2aWNlIElPIFRMQiBp
bnZhbGlkYXRpb24uCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTM3MyAvIENWRS0y
MDIxLTI4NjkyLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs
QHhlbi5vcmc+Ci0tLQp2MjogQXZvaWQgbGVhZGluZyBibGFua3MgaW4gbG9n
IG1lc3NhZ2VzLgotLS0KVEJEOiBBcyBsb25nIGFzIHRoZSBzcGlubmluZyBo
YXBwZW5zIHVuZGVyIGxvY2ssIDEwMG1zIG1heSBiZSB0b28gbGFyZ2UKICAg
ICBhIGdyYW51bGFyaXR5LiBCdXQgSSd2ZSBsZWZ0IGl0IHNpbWlsYXIgdG8g
VlQtZCBhcyBzdWJzZXF1ZW50bHkgSSdtCiAgICAgaW50ZW5kaW5nIHRvIHJl
LXdvcmsgdGhlIGxvY2tpbmcgc3VjaCB0aGF0IHRoZSBzcGlubmluZyB3aWxs
IHN0YXJ0CiAgICAgb25seSBhZnRlciBkcm9wcGluZyB0aGUgbG9jaywgbGlr
ZSBWVC1kIFFJIGFsc28gZG9lcy4KCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0
aHJvdWdoL2FtZC9pb21tdV9jbWQuYworKysgYi94ZW4vZHJpdmVycy9wYXNz
dGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKQEAgLTQ2LDEwICs0NiwxMiBAQCBz
dGF0aWMgdm9pZCBzZW5kX2lvbW11X2NvbW1hbmQoc3RydWN0IGFtCiAgICAg
d3JpdGVsKHRhaWwsIGlvbW11LT5tbWlvX2Jhc2UgKyBJT01NVV9DTURfQlVG
RkVSX1RBSUxfT0ZGU0VUKTsKIH0KIAotc3RhdGljIHZvaWQgZmx1c2hfY29t
bWFuZF9idWZmZXIoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCitzdGF0aWMg
dm9pZCBmbHVzaF9jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11ICpp
b21tdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCB0aW1lb3V0X2Jhc2UpCiB7Ci0gICAgdW5zaWduZWQgaW50IGNt
ZFs0XSwgc3RhdHVzLCBsb29wX2NvdW50OwotICAgIGJvb2wgY29tcF93YWl0
OworICAgIHVpbnQzMl90IGNtZFs0XTsKKyAgICBzX3RpbWVfdCBzdGFydCwg
dGltZW91dDsKKyAgICBzdGF0aWMgdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0
bHkgdGhyZXNob2xkID0gMTsKIAogICAgIC8qIFJXMUMgJ0NvbVdhaXRJbnQn
IGluIHN0YXR1cyByZWdpc3RlciAqLwogICAgIHdyaXRlbChJT01NVV9TVEFU
VVNfQ09NUF9XQUlUX0lOVCwKQEAgLTY1LDIyICs2NywyOSBAQCBzdGF0aWMg
dm9pZCBmbHVzaF9jb21tYW5kX2J1ZmZlcihzdHJ1Y3QKICAgICAgICAgICAg
ICAgICAgICAgICAgICBJT01NVV9DT01QX1dBSVRfSV9GTEFHX1NISUZULCAm
Y21kWzBdKTsKICAgICBzZW5kX2lvbW11X2NvbW1hbmQoaW9tbXUsIGNtZCk7
CiAKLSAgICAvKiBNYWtlIGxvb3BfY291bnQgbG9uZyBlbm91Z2ggZm9yIHBv
bGxpbmcgY29tcGxldGlvbiB3YWl0IGJpdCAqLwotICAgIGxvb3BfY291bnQg
PSAxMDAwOwotICAgIGRvIHsKLSAgICAgICAgc3RhdHVzID0gcmVhZGwoaW9t
bXUtPm1taW9fYmFzZSArIElPTU1VX1NUQVRVU19NTUlPX09GRlNFVCk7Ci0g
ICAgICAgIGNvbXBfd2FpdCA9IHN0YXR1cyAmIElPTU1VX1NUQVRVU19DT01Q
X1dBSVRfSU5UOwotICAgICAgICAtLWxvb3BfY291bnQ7Ci0gICAgfSB3aGls
ZSAoICFjb21wX3dhaXQgJiYgbG9vcF9jb3VudCApOwotCi0gICAgaWYgKCBj
b21wX3dhaXQgKQorICAgIHN0YXJ0ID0gTk9XKCk7CisgICAgdGltZW91dCA9
IHN0YXJ0ICsgKHRpbWVvdXRfYmFzZSA/OiAxMDApICogTUlMTElTRUNTKHRo
cmVzaG9sZCk7CisgICAgd2hpbGUgKCAhKHJlYWRsKGlvbW11LT5tbWlvX2Jh
c2UgKyBJT01NVV9TVEFUVVNfTU1JT19PRkZTRVQpICYKKyAgICAgICAgICAg
ICAgSU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlQpICkKICAgICB7Ci0gICAg
ICAgIC8qIFJXMUMgJ0NvbVdhaXRJbnQnIGluIHN0YXR1cyByZWdpc3RlciAq
LwotICAgICAgICB3cml0ZWwoSU9NTVVfU1RBVFVTX0NPTVBfV0FJVF9JTlQs
Ci0gICAgICAgICAgICAgICBpb21tdS0+bW1pb19iYXNlICsgSU9NTVVfU1RB
VFVTX01NSU9fT0ZGU0VUKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBp
ZiAoIHRpbWVvdXQgJiYgTk9XKCkgPiB0aW1lb3V0ICkKKyAgICAgICAgewor
ICAgICAgICAgICAgdGhyZXNob2xkIHw9IHRocmVzaG9sZCA8PCAxOworICAg
ICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCisgICAgICAgICAgICAg
ICAgICAgIkFNRCBJT01NVSAlcHA6ICVzY29tcGxldGlvbiB3YWl0IHRha2lu
ZyB0b28gbG9uZ1xuIiwKKyAgICAgICAgICAgICAgICAgICAmUENJX1NCREYy
KGlvbW11LT5zZWcsIGlvbW11LT5iZGYpLAorICAgICAgICAgICAgICAgICAg
IHRpbWVvdXRfYmFzZSA/ICJpb3RsYiAiIDogIiIpOworICAgICAgICAgICAg
dGltZW91dCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgY3B1X3JlbGF4KCk7
CiAgICAgfQotICAgIEFNRF9JT01NVV9ERUJVRygiV2FybmluZzogQ29tV2Fp
dEludCBiaXQgZGlkIG5vdCBhc3NlcnQhXG4iKTsKKworICAgIGlmICggIXRp
bWVvdXQgKQorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcKKyAgICAg
ICAgICAgICAgICJBTUQgSU9NTVUgJXBwOiAlc2NvbXBsZXRpb24gd2FpdCB0
b29rICVsdW1zXG4iLAorICAgICAgICAgICAgICAgJlBDSV9TQkRGMihpb21t
dS0+c2VnLCBpb21tdS0+YmRmKSwKKyAgICAgICAgICAgICAgIHRpbWVvdXRf
YmFzZSA/ICJpb3RsYiAiIDogIiIsCisgICAgICAgICAgICAgICAoTk9XKCkg
LSBzdGFydCkgLyAxMDAwMDAwMCk7CiB9CiAKIC8qIEJ1aWxkIGxvdyBsZXZl
bCBpb21tdSBjb21tYW5kIG1lc3NhZ2VzICovCkBAIC0yOTEsNyArMzAwLDcg
QEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfaW90bGIodTggZGV2Zm4sIGNvbgog
ICAgIC8qIHNlbmQgSU5WQUxJREFURV9JT1RMQl9QQUdFUyBjb21tYW5kICov
CiAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5sb2NrLCBmbGFncyk7
CiAgICAgaW52YWxpZGF0ZV9pb3RsYl9wYWdlcyhpb21tdSwgbWF4cGVuZCwg
MCwgcXVldWVpZCwgZGFkZHIsIHJlcV9pZCwgb3JkZXIpOwotICAgIGZsdXNo
X2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAgICBmbHVzaF9jb21tYW5kX2J1
ZmZlcihpb21tdSwgaW9tbXVfZGV2X2lvdGxiX3RpbWVvdXQpOwogICAgIHNw
aW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CiB9
CiAKQEAgLTMyOCw3ICszMzcsNyBAQCBzdGF0aWMgdm9pZCBfYW1kX2lvbW11
X2ZsdXNoX3BhZ2VzKHN0cnVjCiAgICAgewogICAgICAgICBzcGluX2xvY2tf
aXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKICAgICAgICAgaW52YWxp
ZGF0ZV9pb21tdV9wYWdlcyhpb21tdSwgZGFkZHIsIGRvbV9pZCwgb3JkZXIp
OwotICAgICAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSk7CisgICAg
ICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11LCAwKTsKICAgICAgICAg
c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsK
ICAgICB9CiAKQEAgLTM1Miw3ICszNjEsNyBAQCB2b2lkIGFtZF9pb21tdV9m
bHVzaF9kZXZpY2Uoc3RydWN0IGFtZF9pCiAgICAgQVNTRVJUKCBzcGluX2lz
X2xvY2tlZCgmaW9tbXUtPmxvY2spICk7CiAKICAgICBpbnZhbGlkYXRlX2Rl
dl90YWJsZV9lbnRyeShpb21tdSwgYmRmKTsKLSAgICBmbHVzaF9jb21tYW5k
X2J1ZmZlcihpb21tdSk7CisgICAgZmx1c2hfY29tbWFuZF9idWZmZXIoaW9t
bXUsIDApOwogfQogCiB2b2lkIGFtZF9pb21tdV9mbHVzaF9pbnRyZW1hcChz
dHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdWludDE2X3QgYmRmKQpAQCAtMzYw
LDcgKzM2OSw3IEBAIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2ludHJlbWFwKHN0
cnVjdCBhbWQKICAgICBBU1NFUlQoIHNwaW5faXNfbG9ja2VkKCZpb21tdS0+
bG9jaykgKTsKIAogICAgIGludmFsaWRhdGVfaW50ZXJydXB0X3RhYmxlKGlv
bW11LCBiZGYpOwotICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlvbW11KTsK
KyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSwgMCk7CiB9CiAKIHZv
aWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9jYWNoZXMoc3RydWN0IGFtZF9pb21t
dSAqaW9tbXUpCkBAIC0zNjgsNyArMzc3LDcgQEAgdm9pZCBhbWRfaW9tbXVf
Zmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgYQogICAgIEFTU0VSVCggc3Bpbl9p
c19sb2NrZWQoJmlvbW11LT5sb2NrKSApOwogCiAgICAgaW52YWxpZGF0ZV9p
b21tdV9hbGwoaW9tbXUpOwotICAgIGZsdXNoX2NvbW1hbmRfYnVmZmVyKGlv
bW11KTsKKyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSwgMCk7CiB9
CiAKIHZvaWQgYW1kX2lvbW11X3NlbmRfZ3Vlc3RfY21kKHN0cnVjdCBhbWRf
aW9tbXUgKmlvbW11LCB1MzIgY21kW10pCkBAIC0zNzgsNyArMzg3LDggQEAg
dm9pZCBhbWRfaW9tbXVfc2VuZF9ndWVzdF9jbWQoc3RydWN0IGFtZAogICAg
IHNwaW5fbG9ja19pcnFzYXZlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogCiAg
ICAgc2VuZF9pb21tdV9jb21tYW5kKGlvbW11LCBjbWQpOwotICAgIGZsdXNo
X2NvbW1hbmRfYnVmZmVyKGlvbW11KTsKKyAgICAvKiBUQkQ6IFRpbWVvdXQg
c2VsZWN0aW9uIG1heSByZXF1aXJlIHBlZWtpbmcgaW50byBjbWRbXS4gKi8K
KyAgICBmbHVzaF9jb21tYW5kX2J1ZmZlcihpb21tdSwgMCk7CiAKICAgICBz
cGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwog
fQo=

--=separator--


From xen-users-bounces@lists.xenproject.org Wed Jun 09 13:51:50 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Jun 2021 13:51:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.139400.257810 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqybl-000813-El; Wed, 09 Jun 2021 13:51:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 139400.257810; Wed, 09 Jun 2021 13:51:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lqybl-00080t-B1; Wed, 09 Jun 2021 13:51:01 +0000
Received: by outflank-mailman (input) for mailman id 139400;
 Wed, 09 Jun 2021 13:51:00 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=N7Um=LD=xenbits.xen.org=gdunlap@srs-us1.protection.inumbo.net>)
 id 1lqybk-0007Jc-1z
 for xen-users@lists.xen.org; Wed, 09 Jun 2021 13:51:00 +0000
Received: from mail.xenproject.org (unknown [104.130.215.37])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 8213aecf-b1a1-4682-8ef0-ae9e0af04fc7;
 Wed, 09 Jun 2021 13:50:43 +0000 (UTC)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <gdunlap@xenbits.xen.org>)
 id 1lqybO-00009C-7F; Wed, 09 Jun 2021 13:50:38 +0000
Received: from gdunlap by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <gdunlap@xenbits.xen.org>)
 id 1lqybO-0000fZ-5i; Wed, 09 Jun 2021 13:50:38 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 8213aecf-b1a1-4682-8ef0-ae9e0af04fc7
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=QfKpnKz4ByVbxkzhNuZ4GYqpHZ1G4uUiNnR6er0r7Y8=; b=LSRRBAv1p7m1yD14lrjQ0rxVIq
	wTeDtQQhDgcoJWexRe8wrI1fKT/iRNMVCGoAja7Wt6ae+OqgRUJVidxppiZKG9r2SMdbdMQnvQLir
	s0fgZq21BPcJwcrvi/VRm2FB94kus3YqwKQL+8m39NOo+XHUhHjLUSEetR5yA3ghYmdM=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 375 v3 (CVE-2021-0089,CVE-2021-26313) -
 Speculative Code Store Bypass
Message-Id: <E1lqybO-0000fZ-5i@xenbits.xenproject.org>
Date: Wed, 09 Jun 2021 13:50:38 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

      Xen Security Advisory CVE-2021-0089,CVE-2021-26313 / XSA-375
                              version 3

                    Speculative Code Store Bypass

UPDATES IN VERSION 3
====================

Added additional CVE, as Intel and AMD allocated different ones.

ISSUE DESCRIPTION
=================

Modern superscalar processors may employ sophisticated decoding and
caching of the instruction stream to improve performance.  However, a
consequence is that self-modifying code updates may not take effect
instantly.

Whatever the architectural guarantees, some CPUs have microarchitectural
behaviour whereby the stale instruction stream may be speculatively
decoded and executed.

Speculation of this form can suffer from type confusion in registers,
and potentially leak data.

For more details, see:
  https://www.vusec.net/projects/fpvi-scsb
  https://www.amd.com/en/corporate-product-security-bulletin-amd-sb-1003
  https://software.intel.com/content/www/us/en/develop/articles/software-security-guidance/advisory-guidance/speculative-code-store-bypass.html
  https://software.intel.com/content/www/us/en/develop/articles/software-security-guidance/advisory-guidance/floating-point-value-injection.html
  https://developer.arm.com/support/arm-security-updates/speculative-processor-vulnerability/frequently-asked-questions#scsb
  https://developer.arm.com/support/arm-security-updates/speculative-processor-vulnerability/frequently-asked-questions#fvpi

IMPACT
======

In attacker might be able to infer the contents of arbitrary host
memory, including memory assigned to other guests.

VULNERABLE SYSTEMS
==================

Systems running all versions of Xen are affected.

Whether a CPU is potentially vulnerable depends on its
microarchitecture.  Consult your hardware vendor.

Xen running on ARM does not have runtime self-modying code, so is
believed to be not vulnerable, irrespective of any hardware
susceptibility.

Xen running on x86 does have runtime self-modying code as part of
emulation, and is believed to be potentially vulnerable.

Xen is not vulnerable if retpoline or lfence mitigations for Spectre v2
protection are active.  Protections depend on compiler support (as
indicated by INDIRECT_THUNK), and a runtime setting (BTI-Thunk):

  # xl dmesg | grep -e INDIRECT_THUNK -e BTI-Thunk
  (XEN)   Compiled-in support: INDIRECT_THUNK SHADOW_PAGING
  (XEN)   Xen settings: BTI-Thunk RETPOLINE, SPEC_CTRL: IBRS+ SSBD-, Other: SRB_LOCK+ IBPB L1D_FLUSH VERW BRANCH_HARDEN

BTI-Thunk as either RETPOLINE or LFENCE prevents the vulnerability.

MITIGATION
==========

If Spectre v2 support is compiled in, but JMP is used by default,
RETPOLINE or LFENCE can be selected with `spec-ctrl=bti-thunk=retpoline`
or `spec-ctrl=bti-thunk=lfence`.

CREDITS
=======

This issue was discovered by Enrico Barberis, Hany Ragab, Herbert Bos,
and Cristiano Giuffrida from the VUSec group at VU Amsterdam.

RESOLUTION
==========

Applying the appropriate attached patch resolves this issue.  Note that
in 4.13 and newer the patch will only take effect when the
SPECULATIVE_HARDEN_BRANCH hypervisor config option is enabled.  4.12 and
older do not have such an option, and the change will take effect
unconditionally.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa375.patch           xen-unstable - 4.14.x
xsa375-4.13.patch      Xen 4.13.x
xsa375-4.12.patch      Xen 4.12.x - 4.11.x

$ sha256sum xsa375*
367d5bb97c942b9f744a57645df87148772c0879de6f351f36f88147f3958e83  xsa375.meta
301ef80da837bc2af36a0958f35f42f4d267b20ec6e91ae5faf2616167ef49f8  xsa375.patch
dc024daf17242b6477a16a349754a94b2b25cbbfd8c14475741b778710a44c93  xsa375-4.12.patch
f70511d843c6617b932da11ffe857e2e3aa3834ccff07d4d0beba90d63a3dae2  xsa375-4.13.patch
$

NOTE CONCERNING CVE-2021-0086 / CVE-2021-26314
==============================================

Floating Point Value Injection (FPVI) was discovered and disclosed in
the same research as SCSB.  Xen on x86 does in some cases emulate
floating point operations with guest provided inputs, but does not have
subsequent control flow dependent on results, transient or otherwise, of
the operation.

Therefore, we believe Xen is not vulnerable to FPVI, irrespective of any
hardware susceptibility.

NOTE CONCERNING MULTIPLE CVES
=============================

Intel and AMD allocated different CVEs for SCSB and FPVI.  We have
included both on this advisory.  The allocations are as follows:

  Issue | Intel         | AMD
  ------+---------------+---------------
  SCSB  | CVE-2021-0089 | CVE-2021-26313
  FPVI  | CVE-2021-0086 | CVE-2021-26314

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.


(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmDAxVYMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZfKoH/3oVrY0exNwvxp18bXOCYUrzIUYwaXDYCPt3S4GX
JIEZ5Em1SPKEOfexGfjjul6WTiLXQYVof2gx1gWU06ENafEKqoRVJMTryL2Yfi63
IVUifr2lILnYouuIXk+dGSzPmhg9iZ+HwRseNQHwcrRzJnW16VNijWnn74JwfSAV
AWn1inVKriUXJYCTJBBRraQiHMzrDelOo+qB5pNIJHIMtpAK3N1EfkIJFJ0Xe9gl
iKfn+j66CuZorj83bpj5RvSOjgEJiKuMZsKYXK8TPJK6OLR+fEDNx79mHzh1tl2g
VBZOYxXHvTE+SlZwCJotGQ7g3tQJ0JwACPdzvQ6if+xh2N0=
=o800
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa375.meta"
Content-Disposition: attachment; filename="xsa375.meta"
Content-Transfer-Encoding: base64

ewogICJYU0EiOiAzNzUsCiAgIlN1cHBvcnRlZFZlcnNpb25zIjogWwogICAg
Im1hc3RlciIsCiAgICAiNC4xNSIsCiAgICAiNC4xNCIsCiAgICAiNC4xMyIs
CiAgICAiNC4xMiIsCiAgICAiNC4xMSIKICBdLAogICJUcmVlcyI6IFsKICAg
ICJ4ZW4iCiAgXSwKICAiUmVjaXBlcyI6IHsKICAgICI0LjExIjogewogICAg
ICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0
YWJsZVJlZiI6ICJiMWU0NmJjMzY5YmI0OTBiNzIxYzc3ZjE1ZDI1ODNiYmY0
NjYxNTJkIiwKICAgICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICAz
NzIsCiAgICAgICAgICAgIDM3MwogICAgICAgICAgXSwKICAgICAgICAgICJQ
YXRjaGVzIjogWwogICAgICAgICAgICAieHNhMzc1LTQuMTMucGF0Y2giCiAg
ICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIjQuMTIi
OiB7CiAgICAgICJSZWNpcGVzIjogewogICAgICAgICJ4ZW4iOiB7CiAgICAg
ICAgICAiU3RhYmxlUmVmIjogIjU5ODQ5MDViMjYzOGRmODdhMDI2MmQxZWU5
MWYwYTZlMTRhODZkZjYiLAogICAgICAgICAgIlByZXJlcXMiOiBbCiAgICAg
ICAgICAgIDM3MiwKICAgICAgICAgICAgMzczCiAgICAgICAgICBdLAogICAg
ICAgICAgIlBhdGNoZXMiOiBbCiAgICAgICAgICAgICJ4c2EzNzUtNC4xMy5w
YXRjaCIKICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAg
ICAiNC4xMyI6IHsKICAgICAgIlJlY2lwZXMiOiB7CiAgICAgICAgInhlbiI6
IHsKICAgICAgICAgICJTdGFibGVSZWYiOiAiMjg0MTMyOTM4OTAwY2U4YzNi
MTFiYWJmNzI1NWY1YzZkYmIyMTcxNiIsCiAgICAgICAgICAiUHJlcmVxcyI6
IFsKICAgICAgICAgICAgMzcyLAogICAgICAgICAgICAzNzMKICAgICAgICAg
IF0sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAgICAgICAgInhzYTM3
NS00LjEzLnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQog
ICAgfSwKICAgICI0LjE0IjogewogICAgICAiUmVjaXBlcyI6IHsKICAgICAg
ICAieGVuIjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICIxMGYwYjJkNDkz
NzY4NjVkNDk2ODBmMDZjNTJiNDUxZmFiY2UzYmI1IiwKICAgICAgICAgICJQ
cmVyZXFzIjogWwogICAgICAgICAgICAzNzIsCiAgICAgICAgICAgIDM3Mwog
ICAgICAgICAgXSwKICAgICAgICAgICJQYXRjaGVzIjogWwogICAgICAgICAg
ICAieHNhMzc1LnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAg
fQogICAgfSwKICAgICI0LjE1IjogewogICAgICAiUmVjaXBlcyI6IHsKICAg
ICAgICAieGVuIjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICIyODBkNDcy
ZjRmY2EwNzBhMTAzNzdlMzE4ZDkwY2FiZmMyNTQwODEwIiwKICAgICAgICAg
ICJQcmVyZXFzIjogWwogICAgICAgICAgICAzNzIsCiAgICAgICAgICAgIDM3
MwogICAgICAgICAgXSwKICAgICAgICAgICJQYXRjaGVzIjogWwogICAgICAg
ICAgICAieHNhMzc1LnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAg
ICAgfQogICAgfSwKICAgICJtYXN0ZXIiOiB7CiAgICAgICJSZWNpcGVzIjog
ewogICAgICAgICJ4ZW4iOiB7CiAgICAgICAgICAiU3RhYmxlUmVmIjogImFh
NzdhY2MyODA5OGQwNDk0NWFmOTk4ZjNmYzBkYmQzNzU5YjViNDEiLAogICAg
ICAgICAgIlByZXJlcXMiOiBbCiAgICAgICAgICAgIDM3MiwKICAgICAgICAg
ICAgMzczCiAgICAgICAgICBdLAogICAgICAgICAgIlBhdGNoZXMiOiBbCiAg
ICAgICAgICAgICJ4c2EzNzUucGF0Y2giCiAgICAgICAgICBdCiAgICAgICAg
fQogICAgICB9CiAgICB9CiAgfQp9

--=separator
Content-Type: application/octet-stream; name="xsa375.patch"
Content-Disposition: attachment; filename="xsa375.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogUHJvdGVjdCBhZ2FpbnN0IFNw
ZWN1bGF0aXZlIENvZGUgU3RvcmUgQnlwYXNzCgpNb2Rlcm4geDg2IHByb2Nl
c3NvcnMgaGF2ZSBmYXItYmV0dGVyLXRoYW4tYXJjaGl0ZWN0dXJhbGx5LWd1
YXJhbnRlZWQgc2VsZgptb2RpZnlpbmcgY29kZSBkZXRlY3Rpb24uICBUeXBp
Y2FsbHksIHdoZW4gYSB3cml0ZSBoaXRzIGFuIGluc3RydWN0aW9uIGluCmZs
aWdodCwgYSBNYWNoaW5lIENsZWFyIG9jY3VycyB0byBmbHVzaCBzdGFsZSBj
b250ZW50IGluIHRoZSBmcm9udGVuZCBhbmQKYmFja2VuZC4KCkZvciBzZWxm
IG1vZGlmeWluZyBjb2RlLCBiZWZvcmUgYSB3cml0ZSB3aGljaCBoaXRzIGFu
IGluc3RydWN0aW9uIGluIGZsaWdodApyZXRpcmVzLCB0aGUgZnJvbnRlbmQg
Y2FuIHNwZWN1bGF0aXZlbHkgZGVjb2RlIGFuZCBleGVjdXRlIHRoZSBvbGQg
aW5zdHJ1Y3Rpb24Kc3RyZWFtLiAgU3BlY3VsYXRpb24gb2YgdGhpcyBmb3Jt
IGNhbiBzdWZmZXIgZnJvbSB0eXBlIGNvbmZ1c2lvbiBpbiByZWdpc3RlcnMs
CmFuZCBwb3RlbnRpYWxseSBsZWFrIGRhdGEuCgpGdXJ0aGVybW9yZSwgdXBk
YXRlcyBhcmUgdHlwaWNhbGx5IGJ5dGUtd2lzZSwgcmF0aGVyIHRoYW4gYXRv
bWljLiAgRGVwZW5kaW5nCm9uIHRpbWluZywgc3BlY3VsYXRpb24gY2FuIHJh
Y2UgYWhlYWQgbXVsdGlwbGUgdGltZXMgYmV0d2VlbiBpbmRpdmlkdWFsCndy
aXRlcywgYW5kIGV4ZWN1dGUgdGhlIHRyYW5zaWVudGx5LW1hbGZvcm1lZCBp
bnN0cnVjdGlvbiBzdHJlYW0uCgpYZW4gaGFzIHN0dWJzIHdoaWNoIGFyZSB1
c2VkIGluIGNlcnRhaW4gY2FzZXMgZm9yIGVtdWxhdGlvbiBwdXJwb3Nlcy4g
IEluaGliaXQKc3BlY3VsYXRpb24gYmV0d2VlbiB1cGRhdGluZyB0aGUgc3R1
YiBhbmQgZXhlY3V0aW5nIGl0LgoKVGhpcyBpcyBYU0EtMzc1IC8gQ1ZFLTIw
MjEtMDA4OS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L3B2L2VtdWwtcHJpdi1vcC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwt
cHJpdi1vcC5jCmluZGV4IDg4ODk1MDlkMmEuLjExNDY3YTFlM2EgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysgYi94
ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTEzOCw2ICsxMzgs
OCBAQCBzdGF0aWMgaW9fZW11bF9zdHViX3QgKmlvX2VtdWxfc3R1Yl9zZXR1
cChzdHJ1Y3QgcHJpdl9vcF9jdHh0ICpjdHh0LCB1OCBvcGNvZGUsCiAgICAg
LyogUnVudGltZSBjb25maXJtYXRpb24gdGhhdCB3ZSBoYXZlbid0IGNsb2Ji
ZXJlZCBhbiBhZGphY2VudCBzdHViLiAqLwogICAgIEJVR19PTihTVFVCX0JV
Rl9TSVpFIC8gMiA8IChwIC0gY3R4dC0+aW9fZW11bF9zdHViKSk7CiAKKyAg
ICBibG9ja19zcGVjdWxhdGlvbigpOyAvKiBTQ1NCICovCisKICAgICAvKiBI
YW5keSBmdW5jdGlvbi10eXBlZCBwb2ludGVyIHRvIHRoZSBzdHViLiAqLwog
ICAgIHJldHVybiAodm9pZCAqKXN0dWJfdmE7CiAKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jIGIveGVuL2Fy
Y2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKaW5kZXggYzI1ZDg4
ZDBkOC4uZjQyZmYyYTgzNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4
Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4
Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTEyNTcsNiArMTI1Nyw3IEBA
IHN0YXRpYyBpbmxpbmUgaW50IG1rZWModWludDhfdCBlLCBpbnQzMl90IGVj
LCAuLi4pCiAjIGRlZmluZSBpbnZva2Vfc3R1YihwcmUsIHBvc3QsIGNvbnN0
cmFpbnRzLi4uKSBkbyB7ICAgICAgICAgICAgICAgICAgICBcCiAgICAgc3R1
Yl9leG4uaW5mbyA9ICh1bmlvbiBzdHViX2V4Y2VwdGlvbl90b2tlbikgeyAu
cmF3ID0gfjAgfTsgICAgICAgICBcCiAgICAgc3R1Yl9leG4ubGluZSA9IF9f
TElORV9fOyAvKiBVdGlsaXR5IG91dHdlaWdocyBsaXZlcGF0Y2hpbmcgY29z
dCAqLyBcCisgICAgYmxvY2tfc3BlY3VsYXRpb24oKTsgLyogU0NTQiAqLyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgYXNt
IHZvbGF0aWxlICggcHJlICJcblx0SU5ESVJFQ1RfQ0FMTCAlW3N0dWJdXG5c
dCIgcG9zdCAiXG4iICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIi5M
cmV0JT06XG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgICAgICAgICAgICAgIi5wdXNoc2VjdGlvbiAuZml4
dXAsXCJheFwiXG4iICAgICAgICAgICAgICAgICAgICAgICBcCg==

--=separator
Content-Type: application/octet-stream; name="xsa375-4.12.patch"
Content-Disposition: attachment; filename="xsa375-4.12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogUHJvdGVjdCBhZ2FpbnN0IFNw
ZWN1bGF0aXZlIENvZGUgU3RvcmUgQnlwYXNzCgpNb2Rlcm4geDg2IHByb2Nl
c3NvcnMgaGF2ZSBmYXItYmV0dGVyLXRoYW4tYXJjaGl0ZWN0dXJhbGx5LWd1
YXJhbnRlZWQgc2VsZgptb2RpZnlpbmcgY29kZSBkZXRlY3Rpb24uICBUeXBp
Y2FsbHksIHdoZW4gYSB3cml0ZSBoaXRzIGFuIGluc3RydWN0aW9uIGluCmZs
aWdodCwgYSBNYWNoaW5lIENsZWFyIG9jY3VycyB0byBmbHVzaCBzdGFsZSBj
b250ZW50IGluIHRoZSBmcm9udGVuZCBhbmQKYmFja2VuZC4KCkZvciBzZWxm
IG1vZGlmeWluZyBjb2RlLCBiZWZvcmUgYSB3cml0ZSB3aGljaCBoaXRzIGFu
IGluc3RydWN0aW9uIGluIGZsaWdodApyZXRpcmVzLCB0aGUgZnJvbnRlbmQg
Y2FuIHNwZWN1bGF0aXZlbHkgZGVjb2RlIGFuZCBleGVjdXRlIHRoZSBvbGQg
aW5zdHJ1Y3Rpb24Kc3RyZWFtLiAgU3BlY3VsYXRpb24gb2YgdGhpcyBmb3Jt
IGNhbiBzdWZmZXIgZnJvbSB0eXBlIGNvbmZ1c2lvbiBpbiByZWdpc3RlcnMs
CmFuZCBwb3RlbnRpYWxseSBsZWFrIGRhdGEuCgpGdXJ0aGVybW9yZSwgdXBk
YXRlcyBhcmUgdHlwaWNhbGx5IGJ5dGUtd2lzZSwgcmF0aGVyIHRoYW4gYXRv
bWljLiAgRGVwZW5kaW5nCm9uIHRpbWluZywgc3BlY3VsYXRpb24gY2FuIHJh
Y2UgYWhlYWQgbXVsdGlwbGUgdGltZXMgYmV0d2VlbiBpbmRpdmlkdWFsCndy
aXRlcywgYW5kIGV4ZWN1dGUgdGhlIHRyYW5zaWVudGx5LW1hbGZvcm1lZCBp
bnN0cnVjdGlvbiBzdHJlYW0uCgpYZW4gaGFzIHN0dWJzIHdoaWNoIGFyZSB1
c2VkIGluIGNlcnRhaW4gY2FzZXMgZm9yIGVtdWxhdGlvbiBwdXJwb3Nlcy4g
IEluaGliaXQKc3BlY3VsYXRpb24gYmV0d2VlbiB1cGRhdGluZyB0aGUgc3R1
YiBhbmQgZXhlY3V0aW5nIGl0LgoKVGhpcyBpcyBYU0EtMzc1IC8gQ1ZFLTIw
MjEtMDA4OS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L3B2L2VtdWwtcHJpdi1vcC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwt
cHJpdi1vcC5jCmluZGV4IDZkYzRmOTJhODQuLjU5YzE1Y2EwZTcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysgYi94
ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTk3LDYgKzk3LDgg
QEAgc3RhdGljIGlvX2VtdWxfc3R1Yl90ICppb19lbXVsX3N0dWJfc2V0dXAo
c3RydWN0IHByaXZfb3BfY3R4dCAqY3R4dCwgdTggb3Bjb2RlLAogICAgIEJV
SUxEX0JVR19PTihTVFVCX0JVRl9TSVpFIC8gMiA8IE1BWCg5LCAvKiBEZWZh
dWx0IGVtdWwgc3R1YiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA1ICsgSU9FTVVMX1FVSVJLX1NUVUJfQllURVMpKTsK
IAorICAgIGFzbSB2b2xhdGlsZSAoICJsZmVuY2UiIDo6OiAibWVtb3J5IiAp
OyAvKiBTQ1NCICovCisKICAgICAvKiBIYW5keSBmdW5jdGlvbi10eXBlZCBw
b2ludGVyIHRvIHRoZSBzdHViLiAqLwogICAgIHJldHVybiAodm9pZCAqKXN0
dWJfdmE7CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2X2VtdWxh
dGUveDg2X2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94
ODZfZW11bGF0ZS5jCmluZGV4IGJiYTZkZDAxODcuLmNkMTIzNDkyYTYgMTAw
NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0
ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0
ZS5jCkBAIC0xMDkzLDYgKzEwOTMsNyBAQCBzdGF0aWMgaW5saW5lIGludCBt
a2VjKHVpbnQ4X3QgZSwgaW50MzJfdCBlYywgLi4uKQogIyBkZWZpbmUgaW52
b2tlX3N0dWIocHJlLCBwb3N0LCBjb25zdHJhaW50cy4uLikgZG8geyAgICAg
ICAgICAgICAgICAgICAgXAogICAgIHN0dWJfZXhuLmluZm8gPSAodW5pb24g
c3R1Yl9leGNlcHRpb25fdG9rZW4pIHsgLnJhdyA9IH4wIH07ICAgICAgICAg
XAogICAgIHN0dWJfZXhuLmxpbmUgPSBfX0xJTkVfXzsgLyogVXRpbGl0eSBv
dXR3ZWlnaHMgbGl2ZXBhdGNoaW5nIGNvc3QgKi8gXAorICAgIGFzbSB2b2xh
dGlsZSAoICJsZmVuY2UiIDo6OiAibWVtb3J5IiApOyAvKiBTQ1NCICovICAg
ICAgICAgICAgICAgICAgXAogICAgIGFzbSB2b2xhdGlsZSAoIHByZSAiXG5c
dElORElSRUNUX0NBTEwgJVtzdHViXVxuXHQiIHBvc3QgIlxuIiAgICAgICAg
XAogICAgICAgICAgICAgICAgICAgICIuTHJldCU9OlxuXHQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAg
ICAgICAgICIucHVzaHNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIiAgICAgICAg
ICAgICAgICAgICAgICAgXAo=

--=separator
Content-Type: application/octet-stream; name="xsa375-4.13.patch"
Content-Disposition: attachment; filename="xsa375-4.13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogUHJvdGVjdCBhZ2FpbnN0IFNw
ZWN1bGF0aXZlIENvZGUgU3RvcmUgQnlwYXNzCgpNb2Rlcm4geDg2IHByb2Nl
c3NvcnMgaGF2ZSBmYXItYmV0dGVyLXRoYW4tYXJjaGl0ZWN0dXJhbGx5LWd1
YXJhbnRlZWQgc2VsZgptb2RpZnlpbmcgY29kZSBkZXRlY3Rpb24uICBUeXBp
Y2FsbHksIHdoZW4gYSB3cml0ZSBoaXRzIGFuIGluc3RydWN0aW9uIGluCmZs
aWdodCwgYSBNYWNoaW5lIENsZWFyIG9jY3VycyB0byBmbHVzaCBzdGFsZSBj
b250ZW50IGluIHRoZSBmcm9udGVuZCBhbmQKYmFja2VuZC4KCkZvciBzZWxm
IG1vZGlmeWluZyBjb2RlLCBiZWZvcmUgYSB3cml0ZSB3aGljaCBoaXRzIGFu
IGluc3RydWN0aW9uIGluIGZsaWdodApyZXRpcmVzLCB0aGUgZnJvbnRlbmQg
Y2FuIHNwZWN1bGF0aXZlbHkgZGVjb2RlIGFuZCBleGVjdXRlIHRoZSBvbGQg
aW5zdHJ1Y3Rpb24Kc3RyZWFtLiAgU3BlY3VsYXRpb24gb2YgdGhpcyBmb3Jt
IGNhbiBzdWZmZXIgZnJvbSB0eXBlIGNvbmZ1c2lvbiBpbiByZWdpc3RlcnMs
CmFuZCBwb3RlbnRpYWxseSBsZWFrIGRhdGEuCgpGdXJ0aGVybW9yZSwgdXBk
YXRlcyBhcmUgdHlwaWNhbGx5IGJ5dGUtd2lzZSwgcmF0aGVyIHRoYW4gYXRv
bWljLiAgRGVwZW5kaW5nCm9uIHRpbWluZywgc3BlY3VsYXRpb24gY2FuIHJh
Y2UgYWhlYWQgbXVsdGlwbGUgdGltZXMgYmV0d2VlbiBpbmRpdmlkdWFsCndy
aXRlcywgYW5kIGV4ZWN1dGUgdGhlIHRyYW5zaWVudGx5LW1hbGZvcm1lZCBp
bnN0cnVjdGlvbiBzdHJlYW0uCgpYZW4gaGFzIHN0dWJzIHdoaWNoIGFyZSB1
c2VkIGluIGNlcnRhaW4gY2FzZXMgZm9yIGVtdWxhdGlvbiBwdXJwb3Nlcy4g
IEluaGliaXQKc3BlY3VsYXRpb24gYmV0d2VlbiB1cGRhdGluZyB0aGUgc3R1
YiBhbmQgZXhlY3V0aW5nIGl0LgoKVGhpcyBpcyBYU0EtMzc1IC8gQ1ZFLTIw
MjEtMDA4OS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L3B2L2VtdWwtcHJpdi1vcC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwt
cHJpdi1vcC5jCmluZGV4IDZkYzRmOTJhODQuLjU5YzE1Y2EwZTcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysgYi94
ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTk3LDYgKzk3LDgg
QEAgc3RhdGljIGlvX2VtdWxfc3R1Yl90ICppb19lbXVsX3N0dWJfc2V0dXAo
c3RydWN0IHByaXZfb3BfY3R4dCAqY3R4dCwgdTggb3Bjb2RlLAogICAgIEJV
SUxEX0JVR19PTihTVFVCX0JVRl9TSVpFIC8gMiA8IE1BWCg5LCAvKiBEZWZh
dWx0IGVtdWwgc3R1YiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA1ICsgSU9FTVVMX1FVSVJLX1NUVUJfQllURVMpKTsK
IAorICAgIGJsb2NrX3NwZWN1bGF0aW9uKCk7IC8qIFNDU0IgKi8KKwogICAg
IC8qIEhhbmR5IGZ1bmN0aW9uLXR5cGVkIHBvaW50ZXIgdG8gdGhlIHN0dWIu
ICovCiAgICAgcmV0dXJuICh2b2lkICopc3R1Yl92YTsKIH0KZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jIGIv
eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKaW5kZXgg
YmJhNmRkMDE4Ny4uY2QxMjM0OTJhNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv
eDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gv
eDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTExNzIsNiArMTE3
Miw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1rZWModWludDhfdCBlLCBpbnQz
Ml90IGVjLCAuLi4pCiAjIGRlZmluZSBpbnZva2Vfc3R1YihwcmUsIHBvc3Qs
IGNvbnN0cmFpbnRzLi4uKSBkbyB7ICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgc3R1Yl9leG4uaW5mbyA9ICh1bmlvbiBzdHViX2V4Y2VwdGlvbl90b2tl
bikgeyAucmF3ID0gfjAgfTsgICAgICAgICBcCiAgICAgc3R1Yl9leG4ubGlu
ZSA9IF9fTElORV9fOyAvKiBVdGlsaXR5IG91dHdlaWdocyBsaXZlcGF0Y2hp
bmcgY29zdCAqLyBcCisgICAgYmxvY2tfc3BlY3VsYXRpb24oKTsgLyogU0NT
QiAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgYXNtIHZvbGF0aWxlICggcHJlICJcblx0SU5ESVJFQ1RfQ0FMTCAlW3N0
dWJdXG5cdCIgcG9zdCAiXG4iICAgICAgICBcCiAgICAgICAgICAgICAgICAg
ICAgIi5McmV0JT06XG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIi5wdXNoc2VjdGlv
biAuZml4dXAsXCJheFwiXG4iICAgICAgICAgICAgICAgICAgICAgICBcCg==

--=separator--


From xen-users-bounces@lists.xenproject.org Thu Jun 10 08:33:32 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Jun 2021 08:33:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.139674.258273 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrG7E-0008DY-VE; Thu, 10 Jun 2021 08:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 139674.258273; Thu, 10 Jun 2021 08:32:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrG7E-0008DN-Qi; Thu, 10 Jun 2021 08:32:40 +0000
Received: by outflank-mailman (input) for mailman id 139674;
 Thu, 10 Jun 2021 08:32:38 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b5JI=LE=citrix.com=andrew.cooper3@srs-us1.protection.inumbo.net>)
 id 1lrG7C-0007tX-Qx
 for xen-users@lists.xen.org; Thu, 10 Jun 2021 08:32:38 +0000
Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id d0baeeb6-9019-404c-ba2f-39e620e57642;
 Thu, 10 Jun 2021 08:32:27 +0000 (UTC)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: d0baeeb6-9019-404c-ba2f-39e620e57642
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1623313947;
  h=subject:to:cc:references:from:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=DZYjvCSVjV+s3xLPFinTOyVZZGZtpPehOb6pKmfXD6k=;
  b=T80/ZhIe9uT7ocm+ZIhD2FW7l1B27T5Q+fJw5e7w8k5LSk9lHjU7xB5y
   sGi6Wnsras3e+IIGjndq85qHW7BS5EMMe2vJGivKH5chqWgvTUT5WF/8C
   /kiMHmSrm0hXJBVBsetuqnNrq+QBECOyttQZSagu5zZTWHYtqVvPymO7f
   k=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: iK8+YVcPcC63ACzXlTh1AnQIiIZiO1ogszwcwViBMaOyyPobOKgop9hH+TDH6+2svL3voYmdme
 tLOUsVgjYFIlqL4LCGLOW/J4dmkF1NfSpiFUAl86t4QzccR67aIBMQsi/qOf2zs3AluEyTUg/2
 sNxBAN2hsKkmLLtvQC0uoSW1pmEo9smv44FWRqhRxbE0eHg1QsHXbfnx6likw5/85U6P16HTGy
 yOtdoS14Ul1quH4afRsWDa+5fAN2o9eBQUQVCIxdPeYQg9Jrql3H90PnHGM++sGmP2bkivGQ6F
 cz8=
X-SBRS: 5.1
X-MesageID: 47388255
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.158.21
X-Policy: $RELAYED
IronPort-HdrOrdr: A9a23:n1xH866NCcCA4JKldQPXwSOBI+orL9Y04lQ7vn2ZFiY7TiXIra
 yTdaoguCMc6AxxZJkh8erwXJVoMkmsiqKdhrNhQYtKPTOWxVdASbsN0WKM+UyZJ8STzJ866U
 4kSdkFNDSSNykIsS+Z2njALz9I+rDum8rJ9ISuukuFDzsaDJ2Ihz0JejpzeXcGJjWua6BJca
 Z0qvA33AZJLh8sH7WG7zQ+LqT+juyOsKijTQ8NBhYh5gXLpTS06ITiGxzd+hsFSTtAzZor7G
 CAymXCl+uemsD+7iWZ+37Y7pxQltek4txfBPaUgsxQDjn3kA6naKloRrXHljEop+OE7kosjb
 D30lgdFvU2z0mUUnC+oBPr1QWl+i0p8WXexViRhmamidDlRRohYvAxxr5xQ1/80Q4Nrdt82K
 VE0yayrJxMFy7Nmyz7+pzhSwxqrEypunAv+NRjz0C3abFuLYO5kLZvuH+8SPw7bWXHAcEcYa
 hT5fjnlbRrmQjwVQGegoEHq+bcLEjaHX+9MwM/U4KuomFrdUtCvjwlLfok7z89HaIGOu15Dt
 v/Q9JVfZF1P4UrhPFGdao8qfXeMB2FffuaChPtHb2gLtBeB07w
X-IronPort-AV: E=Sophos;i="5.83,263,1616472000"; 
   d="scan'208";a="47388255"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jxII/NPrBZMvKlsJeLI/OYEIkukn2NT4EIBAvnc/MCDlWXAft2807nen7w72wx1QMmF6iHwIGjs6yEgUzPsArYinKndLqCraXtdxUq+kofAJZi3hc80PPMvcA89m9G5mnLJKtO49ziCrGlvTeQosrsP2QfJYm+KoTYRN5/ofqh+nWw6LEBRQYl7et2QUFJJsTbDvBWNJXhVnKy6nHwANVcbSJlmsGcTOsia04XkrBmwC4OdNHTbCN61lfa3ZPL/lchnB35y7e+/aa9cY9jnu4Qw4GNSq9fKmWb1teY1URPA1M/S9hGH/wrOQxSBFt9WR0Golsyr9XznylSu/J4tRpA==
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-SenderADCheck;
 bh=R7sciI+MaQ0nI60b66CR3W8s+XfH9h39EKAtUGc0uBM=;
 b=Sf1vRek5h4PsDnx77EfZv6aAph+UWI8wO7F0U++01DyjQaygH4c2y00OTTvmdp3HHR4noyMFLy3VvfvMhFVexTao5eJ0Ycyby+lflp8blNEcIK1aKCdhz8Ii/aqzSB/7tuD9Buq9VoalWtFXiaaPwDnn8ogtMebFRRHWeBfnl0Z8Q8F/jPgpNpmvtNheOetyj404FdyJunxIcmWpH+lkYmyGTn4iNUfPUoNwj8JtcsRVN0qYzpRGLAwEHP9Q4LfJH3DN+lX3pf8aLJHNAM+B7eWezJAEFlKI0T4ZiEOvSMcPGc0dDhg1VoJCpzr7qhJU0kbUP8y+ykHR0lU7kQIaXg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R7sciI+MaQ0nI60b66CR3W8s+XfH9h39EKAtUGc0uBM=;
 b=Lmx94FssPObZPCiTVWRceQaQMTn+cBvQz7/czCgFlCvhwoEfLb+LcNp4teRC09SM/mK5eSAC+gbNetz5PgvyEE64iUeIdtrdRWdQ1Fkps0UK3VhcLPxgIcCVNeu8q6pvMkMnK9oBhRrSndqYDSfUfsPYG8c3aG2N1Shfj03sIpY=
Subject: Re: [oss-security] Xen Security Advisory 375 v3
 (CVE-2021-0089,CVE-2021-26313) - Speculative Code Store Bypass
To: Sven Kieske <S.Kieske@mittwald.de>, "xen-announce@lists.xen.org"
	<xen-announce@lists.xen.org>, "oss-security@lists.openwall.com"
	<oss-security@lists.openwall.com>, "xen-users@lists.xen.org"
	<xen-users@lists.xen.org>, "xen-devel@lists.xen.org"
	<xen-devel@lists.xen.org>
CC: "security-team-members@xen.org" <security-team-members@xen.org>
References: <E1lqybO-0000fZ-5i@xenbits.xenproject.org>
 <90160ae63614ca1098c87f5c60002b9a35e922ef.camel@mittwald.de>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <0f39a2b1-9e82-f909-8d5b-4c74ef6b5535@citrix.com>
Date: Thu, 10 Jun 2021 09:32:14 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.8.1
In-Reply-To: <90160ae63614ca1098c87f5c60002b9a35e922ef.camel@mittwald.de>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Language: en-GB
X-ClientProxiedBy: LO4P123CA0061.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:153::12) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 20472282-6dc0-48ad-cd8c-08d92bea43bf
X-MS-TrafficTypeDiagnostic: BYAPR03MB4423:
X-Microsoft-Antispam-PRVS: <BYAPR03MB44239750B3B043DE02EC6844BA359@BYAPR03MB4423.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: hkgXXx86r+O3Gh5m12hGN+MkeyA8RgHRWo661jHofpGJXE6WywEpKIphHXQg0CCRLyRCUDNkfNZ0UCIDGIatV9LwFL8dbFVgpPRD2y24RkcR1+xj6fjYe+VgMxMEUupo8WN3AaHYNwQ4B32HTVCfkphAA5V4wt0PET4EGVCIABFoUKfRI/eE4tD+hl6KErMMeLZH4BbXKFHul9ud2rH/ND7XZuypLEPIGaVeLem5Go9lGi6YPA4U/VRyGNka9PVrCRwPA1w5C9iPTrbh/uYsP57LpgzGG0MuoXQcj4hd+crQjssUXoRSi7lClvnEu0MUnSqhuKyIaA3Rr3SiKD79E2S1q4rdlz6byStEtPyaWSHUZjpsGiiOncERc0VV09ysl6qbPoowh+VU9nRqgaFUGCwvWfSpFIIrscKOaOW7A6VDxJ1fSI6nDee7rG+/XVpTAWrCTBrkZpVkh8uyjgMJAN9Tka+kwg8Wd+F4WbuzfuziU2lR44LvJhjEdJnlUtvpaZjwsnyYLCFiYAy0SKv9PqBbw5Od4JhDcmHW1J5OfCSLthMGXTnJhf4R8u3b9uQCWc6LasWyMGEWwXqQzhtcMRI+RTJVqoW9mYm8iD/xanCdYPoDRehkbvWFoMOt7cSveemN3WtiE5Ky/M3wgl9nXFuZjAmBgkRD49zid/WNYiC0B+BXnufZQ+I2/OFegycUb224qTjUN1ovBjnt+6FF0QYFkFcTZkDsRBoTSU1zDcMmS2MQCMwsKtOwgabeLHDxLkwxKatgJ4zBjwzlqWcrE9UB8q0YGSGzK72FRUa/KuZEt1bCPejLO7Gp0xzvpC4Gg+pynGFh4B0SMTyHCaJIqlRxTtakCfC1Eu2cZhqb2Is=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(136003)(366004)(376002)(346002)(396003)(478600001)(2906002)(6666004)(4326008)(16526019)(31686004)(6486002)(36756003)(186003)(66946007)(2616005)(53546011)(5660300002)(26005)(31696002)(86362001)(8936002)(966005)(83380400001)(4744005)(66556008)(66476007)(8676002)(16576012)(316002)(110136005)(38100700002)(15650500001)(956004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cERSM2c3SGs1TkQ1MmU4Rks3TmYzaUswZHF6T2xqNjk5dVZjZVNvbTFSQzBI?=
 =?utf-8?B?dDVEdkJJbTBkVVdrSVdXTU94MHhUZnFBUENSSXNVaGkyYjVFY3dnZzd4TUZF?=
 =?utf-8?B?cFVtck9tWmFyNFp3MTB5ZnJGdnliOXQ0NEI3M1YxUHIycUhTMFBhYmlDbmFN?=
 =?utf-8?B?eUJpb0dObkt3RzEvYXFrbkFsVlRhcURzcVJLck1mQTZKZ0syMmpDQnMrR3dC?=
 =?utf-8?B?elJoMDNXaXpMRnFtRHBwYisxdG5GUml6N2ZpWTBVQWwvZEo1MjhTQnpIc3Vu?=
 =?utf-8?B?VDFqaUpwNy91ODNLZ1ZiTHR0TlYwb1hYblpZd3hlSjZ1eGI5SW9XMkQwQWJM?=
 =?utf-8?B?UlVDQmxkQ3hKRVRFTDE0S2lYVk1OdS93RDZLV1k0MkZVeW56VGZZd1VPMjJz?=
 =?utf-8?B?THNVd0lINmlzVE9xTDNHcUNsUjV1eWNWdWFPbk5kR3VCVnRMd1pnb3JtY0tN?=
 =?utf-8?B?TWh3ZXJJUGFKYk9BbmNuVTlZMGJ3aVBaUmRGa3lIVWEzR0c4YlQ1SlZrSUkz?=
 =?utf-8?B?U2ZXd01zUDlSTHNHQ1NRSDduZDV4VmE3bGtUS2p6UGNIelVwM1JTMkZ0b0VF?=
 =?utf-8?B?ZXVLWVN3dUVmdTRuV3BOM0puRFJESS9pRVZxVFBjaHlHd1J3M1Rwakc4OTRn?=
 =?utf-8?B?Q2REM0diY09lZjdoM3RlQzExellHVm5LWHh6Nk5FMVJJK0ZKeWgyaDZvTzFF?=
 =?utf-8?B?UXlFNEF5MkJWQlF0SGY0WStaREpFa1U3RzJpNXJibGVUY1NLMERxMkZOcGY3?=
 =?utf-8?B?MG5EMHAybmVhcSsxME9GV2Nsak55MjJlak16alFERmV6Y2xuSzJBWlBQMHk2?=
 =?utf-8?B?MHFrS0dlQjRTZEdoVmxXNWxCUEo3cWpEWjA3T0ZLQWJLbG5FN1RuWjBiRFp1?=
 =?utf-8?B?eXFqN2lkN2kyYWZnYndmSDQxT1BTK2VGeWdCOS9LWWRNQ1BFWlRNRmhEN0U5?=
 =?utf-8?B?RTVGODg0cFJQTnFoRmh5Tm5Ldm9SaER0MXcvazErc3N2YnYxbWxYem1BQXBZ?=
 =?utf-8?B?eHNKOUhNUFd1R3RwMDl0cVRpYm9jdDUwdkYvZHY2MGdmY01ja1hvaTJEZDQv?=
 =?utf-8?B?OE1nczM4OHZBNlVRTEVuTnBxTjJPdkxFNnNaUWtTT0ZUR011cjZvaURNOVdu?=
 =?utf-8?B?cUdpdkFNMlVRUWxlSzNIQkN6dUtNY2RWY25tZnZDSnRTclFwdlM0eFM2aTlx?=
 =?utf-8?B?TDhWM3pid21FamcxSWpqcVBsUDRYQi8xcktrakJ2dXFSVEE2QlVIaElaUGJj?=
 =?utf-8?B?emxHN2Q2bGpOcm4xOGE4SVUzTGlTVkdZUkx0Zk5KMFFNY0RNNmZsWHpnZXNh?=
 =?utf-8?B?Sms4SEV2UFllV3NwQ2FqbjJyMUwzb3ExU2RiMDJqNEUrOFg0MGNkaXJSblJ4?=
 =?utf-8?B?czNCWldqdmRzRmxWeXh1RFRhS3NzODVwK3QyMy9xbkhTQnpnOWpRT1ZZV2xo?=
 =?utf-8?B?ZW1aMHFIVDNBMWdEaUVIY2xObHhCUnF3bTRidFFmSW9sT0Q3OWN0R0hwWjZZ?=
 =?utf-8?B?aVpXdk4xdzAzZC95ZnlsOTVqTnZLQkN4U0trUEZFL3g3WUxjS1dJRzYxWnpm?=
 =?utf-8?B?VzhndzJpNkJVajlrVUxVMXpuK2daajh5OER6MUVkYkQrUm5SbDlpWUtmRU0w?=
 =?utf-8?B?SDdmZVF4MEZGUDNicVhCeHMreGpvVDFWNVZQLzVGeVBNb1VMRnAzcmJ4V3N4?=
 =?utf-8?B?VW9CWXFicUJKOEE1WDMwcG50azR3aFhxbE5MTjZEVm9xSUw0dm1hUmVSV0My?=
 =?utf-8?Q?DHM9jel4n9OGAnwULgifD0VFO1lQWkMCCu9EhgJ?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 20472282-6dc0-48ad-cd8c-08d92bea43bf
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2021 08:32:20.9840
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ci2DujcDDRagq1oknXZ89DVzPs2k4xjTzrUvkQ04Q0WguFR5eXgSC9TgUaZ2BdemFWMTTYkaVDMrc8pAQoeqeTDGQ90XPhJh9X3PkhePHhQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB4423
X-OriginatorOrg: citrix.com

On 10/06/2021 09:04, Sven Kieske wrote:
> On Mi, 2021-06-09 at 13:50 +0000, Xen.org security team wrote:
>> For more details, see:
> [..]
>>   https://www.amd.com/en/corporate-product-security-bulletin-amd-sb-1003
> The above link turns into a "Page not found", at least for me, I believe the correct link is:
>
> https://www.amd.com/en/corporate/product-security/bulletin/amd-sb-1003

Ah - the link changed, and I thought I'd fixed it.  Clearly not.

Thanks - I'll issue a correction to the XSA.

~Andrew


From xen-users-bounces@lists.xenproject.org Thu Jun 10 09:17:45 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Jun 2021 09:17:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.139708.258335 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrGoA-00062s-S8; Thu, 10 Jun 2021 09:17:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 139708.258335; Thu, 10 Jun 2021 09:17:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrGoA-00062g-No; Thu, 10 Jun 2021 09:17:02 +0000
Received: by outflank-mailman (input) for mailman id 139708;
 Thu, 10 Jun 2021 09:17:01 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xmrX=LE=xenbits.xen.org=gdunlap@srs-us1.protection.inumbo.net>)
 id 1lrGo9-0005Nu-6B
 for xen-users@lists.xen.org; Thu, 10 Jun 2021 09:17:01 +0000
Received: from mail.xenproject.org (unknown [104.130.215.37])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 6956cd60-6143-44ef-af56-aae603ecec05;
 Thu, 10 Jun 2021 09:16:48 +0000 (UTC)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <gdunlap@xenbits.xen.org>)
 id 1lrGnq-0002tN-Bw; Thu, 10 Jun 2021 09:16:42 +0000
Received: from gdunlap by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <gdunlap@xenbits.xen.org>)
 id 1lrGnq-0003by-9y; Thu, 10 Jun 2021 09:16:42 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 6956cd60-6143-44ef-af56-aae603ecec05
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=HQQ0/VpUTzU0PMDoFxBU+QcP4disNR968M6tzreckD4=; b=JsASxyBKXUdHWhP0JElyswO8DO
	Pss+lXRxLxEMuGWuEkzgfKKZmDBbCjnflU4dK/phOuC12hihXpQcFJEZUBwLNjaVFu+XpKUYuLHe7
	P1hV/yc8tc2RgFwUPskPA+QYJhk7bYs1djA+9lxhJUDXZcmgJvTKnrf9+uX8sw8y2nf4=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 375 v4 (CVE-2021-0089,CVE-2021-26313) -
 Speculative Code Store Bypass
Message-Id: <E1lrGnq-0003by-9y@xenbits.xenproject.org>
Date: Thu, 10 Jun 2021 09:16:42 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

      Xen Security Advisory CVE-2021-0089,CVE-2021-26313 / XSA-375
                                version 4

                    Speculative Code Store Bypass

UPDATES IN VERSION 4
====================

Correct the link to the AMD bulletin.

ISSUE DESCRIPTION
=================

Modern superscalar processors may employ sophisticated decoding and
caching of the instruction stream to improve performance.  However, a
consequence is that self-modifying code updates may not take effect
instantly.

Whatever the architectural guarantees, some CPUs have microarchitectural
behaviour whereby the stale instruction stream may be speculatively
decoded and executed.

Speculation of this form can suffer from type confusion in registers,
and potentially leak data.

For more details, see:
  https://www.vusec.net/projects/fpvi-scsb
  https://www.amd.com/en/corporate/product-security/bulletin/amd-sb-1003
  https://software.intel.com/content/www/us/en/develop/articles/software-security-guidance/advisory-guidance/speculative-code-store-bypass.html
  https://software.intel.com/content/www/us/en/develop/articles/software-security-guidance/advisory-guidance/floating-point-value-injection.html
  https://developer.arm.com/support/arm-security-updates/speculative-processor-vulnerability/frequently-asked-questions#scsb
  https://developer.arm.com/support/arm-security-updates/speculative-processor-vulnerability/frequently-asked-questions#fvpi

IMPACT
======

In attacker might be able to infer the contents of arbitrary host
memory, including memory assigned to other guests.

VULNERABLE SYSTEMS
==================

Systems running all versions of Xen are affected.

Whether a CPU is potentially vulnerable depends on its
microarchitecture.  Consult your hardware vendor.

Xen running on ARM does not have runtime self-modying code, so is
believed to be not vulnerable, irrespective of any hardware
susceptibility.

Xen running on x86 does have runtime self-modying code as part of
emulation, and is believed to be potentially vulnerable.

Xen is not vulnerable if retpoline or lfence mitigations for Spectre v2
protection are active.  Protections depend on compiler support (as
indicated by INDIRECT_THUNK), and a runtime setting (BTI-Thunk):

  # xl dmesg | grep -e INDIRECT_THUNK -e BTI-Thunk
  (XEN)   Compiled-in support: INDIRECT_THUNK SHADOW_PAGING
  (XEN)   Xen settings: BTI-Thunk RETPOLINE, SPEC_CTRL: IBRS+ SSBD-, Other: SRB_LOCK+ IBPB L1D_FLUSH VERW BRANCH_HARDEN

BTI-Thunk as either RETPOLINE or LFENCE prevents the vulnerability.

MITIGATION
==========

If Spectre v2 support is compiled in, but JMP is used by default,
RETPOLINE or LFENCE can be selected with `spec-ctrl=bti-thunk=retpoline`
or `spec-ctrl=bti-thunk=lfence`.

CREDITS
=======

This issue was discovered by Enrico Barberis, Hany Ragab, Herbert Bos,
and Cristiano Giuffrida from the VUSec group at VU Amsterdam.

RESOLUTION
==========

Applying the appropriate attached patch resolves this issue.  Note that
in 4.13 and newer the patch will only take effect when the
SPECULATIVE_HARDEN_BRANCH hypervisor config option is enabled.  4.12 and
older do not have such an option, and the change will take effect
unconditionally.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa375.patch           xen-unstable - 4.14.x
xsa375-4.13.patch      Xen 4.13.x
xsa375-4.12.patch      Xen 4.12.x - 4.11.x

$ sha256sum xsa375*
367d5bb97c942b9f744a57645df87148772c0879de6f351f36f88147f3958e83  xsa375.meta
301ef80da837bc2af36a0958f35f42f4d267b20ec6e91ae5faf2616167ef49f8  xsa375.patch
dc024daf17242b6477a16a349754a94b2b25cbbfd8c14475741b778710a44c93  xsa375-4.12.patch
f70511d843c6617b932da11ffe857e2e3aa3834ccff07d4d0beba90d63a3dae2  xsa375-4.13.patch
$

NOTE CONCERNING CVE-2021-0086 / CVE-2021-26314
==============================================

Floating Point Value Injection (FPVI) was discovered and disclosed in
the same research as SCSB.  Xen on x86 does in some cases emulate
floating point operations with guest provided inputs, but does not have
subsequent control flow dependent on results, transient or otherwise, of
the operation.

Therefore, we believe Xen is not vulnerable to FPVI, irrespective of any
hardware susceptibility.

NOTE CONCERNING MULTIPLE CVES
=============================

Intel and AMD allocated different CVEs for SCSB and FPVI.  We have
included both on this advisory.  The allocations are as follows:

  Issue | Intel         | AMD
  ------+---------------+---------------
  SCSB  | CVE-2021-0089 | CVE-2021-26313
  FPVI  | CVE-2021-0086 | CVE-2021-26314

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.


(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmDB2EQMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZtgkIAMJ6zrjSMK/mrnJ8+vRwfaG7hYIOwIa8k18CnIin
DH4LZ1PIyWRqOjgRo+oqgZEIOXFAlEx/ZXHJscf+SaleemA9klsBWpoiyURONchC
4Sz/qUcJnTHXjakw21seaxtYA4FzBtGQ6V/Ccm/3vDxVhDewtbNSJLflq2kZDLv0
nRMJkSajeCml/YPcSQ2y32KE49kQK726H9hzHIMuRA6fDAKCT51bWiyelH405vnR
vanJetUHys1Uye0arqfi7Z9tv0KMKAspgR/ccOGh5g0EvDOTyOo6ZLAOm69wqdfr
AC0IShNIPyk85k1VJBkU8VSsWvasPmbcT9NYWK6HeP6ZdRg=
=T+nf
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa375.meta"
Content-Disposition: attachment; filename="xsa375.meta"
Content-Transfer-Encoding: base64

ewogICJYU0EiOiAzNzUsCiAgIlN1cHBvcnRlZFZlcnNpb25zIjogWwogICAg
Im1hc3RlciIsCiAgICAiNC4xNSIsCiAgICAiNC4xNCIsCiAgICAiNC4xMyIs
CiAgICAiNC4xMiIsCiAgICAiNC4xMSIKICBdLAogICJUcmVlcyI6IFsKICAg
ICJ4ZW4iCiAgXSwKICAiUmVjaXBlcyI6IHsKICAgICI0LjExIjogewogICAg
ICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0
YWJsZVJlZiI6ICJiMWU0NmJjMzY5YmI0OTBiNzIxYzc3ZjE1ZDI1ODNiYmY0
NjYxNTJkIiwKICAgICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICAz
NzIsCiAgICAgICAgICAgIDM3MwogICAgICAgICAgXSwKICAgICAgICAgICJQ
YXRjaGVzIjogWwogICAgICAgICAgICAieHNhMzc1LTQuMTMucGF0Y2giCiAg
ICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIjQuMTIi
OiB7CiAgICAgICJSZWNpcGVzIjogewogICAgICAgICJ4ZW4iOiB7CiAgICAg
ICAgICAiU3RhYmxlUmVmIjogIjU5ODQ5MDViMjYzOGRmODdhMDI2MmQxZWU5
MWYwYTZlMTRhODZkZjYiLAogICAgICAgICAgIlByZXJlcXMiOiBbCiAgICAg
ICAgICAgIDM3MiwKICAgICAgICAgICAgMzczCiAgICAgICAgICBdLAogICAg
ICAgICAgIlBhdGNoZXMiOiBbCiAgICAgICAgICAgICJ4c2EzNzUtNC4xMy5w
YXRjaCIKICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAg
ICAiNC4xMyI6IHsKICAgICAgIlJlY2lwZXMiOiB7CiAgICAgICAgInhlbiI6
IHsKICAgICAgICAgICJTdGFibGVSZWYiOiAiMjg0MTMyOTM4OTAwY2U4YzNi
MTFiYWJmNzI1NWY1YzZkYmIyMTcxNiIsCiAgICAgICAgICAiUHJlcmVxcyI6
IFsKICAgICAgICAgICAgMzcyLAogICAgICAgICAgICAzNzMKICAgICAgICAg
IF0sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAgICAgICAgInhzYTM3
NS00LjEzLnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQog
ICAgfSwKICAgICI0LjE0IjogewogICAgICAiUmVjaXBlcyI6IHsKICAgICAg
ICAieGVuIjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICIxMGYwYjJkNDkz
NzY4NjVkNDk2ODBmMDZjNTJiNDUxZmFiY2UzYmI1IiwKICAgICAgICAgICJQ
cmVyZXFzIjogWwogICAgICAgICAgICAzNzIsCiAgICAgICAgICAgIDM3Mwog
ICAgICAgICAgXSwKICAgICAgICAgICJQYXRjaGVzIjogWwogICAgICAgICAg
ICAieHNhMzc1LnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAg
fQogICAgfSwKICAgICI0LjE1IjogewogICAgICAiUmVjaXBlcyI6IHsKICAg
ICAgICAieGVuIjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICIyODBkNDcy
ZjRmY2EwNzBhMTAzNzdlMzE4ZDkwY2FiZmMyNTQwODEwIiwKICAgICAgICAg
ICJQcmVyZXFzIjogWwogICAgICAgICAgICAzNzIsCiAgICAgICAgICAgIDM3
MwogICAgICAgICAgXSwKICAgICAgICAgICJQYXRjaGVzIjogWwogICAgICAg
ICAgICAieHNhMzc1LnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAg
ICAgfQogICAgfSwKICAgICJtYXN0ZXIiOiB7CiAgICAgICJSZWNpcGVzIjog
ewogICAgICAgICJ4ZW4iOiB7CiAgICAgICAgICAiU3RhYmxlUmVmIjogImFh
NzdhY2MyODA5OGQwNDk0NWFmOTk4ZjNmYzBkYmQzNzU5YjViNDEiLAogICAg
ICAgICAgIlByZXJlcXMiOiBbCiAgICAgICAgICAgIDM3MiwKICAgICAgICAg
ICAgMzczCiAgICAgICAgICBdLAogICAgICAgICAgIlBhdGNoZXMiOiBbCiAg
ICAgICAgICAgICJ4c2EzNzUucGF0Y2giCiAgICAgICAgICBdCiAgICAgICAg
fQogICAgICB9CiAgICB9CiAgfQp9

--=separator
Content-Type: application/octet-stream; name="xsa375.patch"
Content-Disposition: attachment; filename="xsa375.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogUHJvdGVjdCBhZ2FpbnN0IFNw
ZWN1bGF0aXZlIENvZGUgU3RvcmUgQnlwYXNzCgpNb2Rlcm4geDg2IHByb2Nl
c3NvcnMgaGF2ZSBmYXItYmV0dGVyLXRoYW4tYXJjaGl0ZWN0dXJhbGx5LWd1
YXJhbnRlZWQgc2VsZgptb2RpZnlpbmcgY29kZSBkZXRlY3Rpb24uICBUeXBp
Y2FsbHksIHdoZW4gYSB3cml0ZSBoaXRzIGFuIGluc3RydWN0aW9uIGluCmZs
aWdodCwgYSBNYWNoaW5lIENsZWFyIG9jY3VycyB0byBmbHVzaCBzdGFsZSBj
b250ZW50IGluIHRoZSBmcm9udGVuZCBhbmQKYmFja2VuZC4KCkZvciBzZWxm
IG1vZGlmeWluZyBjb2RlLCBiZWZvcmUgYSB3cml0ZSB3aGljaCBoaXRzIGFu
IGluc3RydWN0aW9uIGluIGZsaWdodApyZXRpcmVzLCB0aGUgZnJvbnRlbmQg
Y2FuIHNwZWN1bGF0aXZlbHkgZGVjb2RlIGFuZCBleGVjdXRlIHRoZSBvbGQg
aW5zdHJ1Y3Rpb24Kc3RyZWFtLiAgU3BlY3VsYXRpb24gb2YgdGhpcyBmb3Jt
IGNhbiBzdWZmZXIgZnJvbSB0eXBlIGNvbmZ1c2lvbiBpbiByZWdpc3RlcnMs
CmFuZCBwb3RlbnRpYWxseSBsZWFrIGRhdGEuCgpGdXJ0aGVybW9yZSwgdXBk
YXRlcyBhcmUgdHlwaWNhbGx5IGJ5dGUtd2lzZSwgcmF0aGVyIHRoYW4gYXRv
bWljLiAgRGVwZW5kaW5nCm9uIHRpbWluZywgc3BlY3VsYXRpb24gY2FuIHJh
Y2UgYWhlYWQgbXVsdGlwbGUgdGltZXMgYmV0d2VlbiBpbmRpdmlkdWFsCndy
aXRlcywgYW5kIGV4ZWN1dGUgdGhlIHRyYW5zaWVudGx5LW1hbGZvcm1lZCBp
bnN0cnVjdGlvbiBzdHJlYW0uCgpYZW4gaGFzIHN0dWJzIHdoaWNoIGFyZSB1
c2VkIGluIGNlcnRhaW4gY2FzZXMgZm9yIGVtdWxhdGlvbiBwdXJwb3Nlcy4g
IEluaGliaXQKc3BlY3VsYXRpb24gYmV0d2VlbiB1cGRhdGluZyB0aGUgc3R1
YiBhbmQgZXhlY3V0aW5nIGl0LgoKVGhpcyBpcyBYU0EtMzc1IC8gQ1ZFLTIw
MjEtMDA4OS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L3B2L2VtdWwtcHJpdi1vcC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwt
cHJpdi1vcC5jCmluZGV4IDg4ODk1MDlkMmEuLjExNDY3YTFlM2EgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysgYi94
ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTEzOCw2ICsxMzgs
OCBAQCBzdGF0aWMgaW9fZW11bF9zdHViX3QgKmlvX2VtdWxfc3R1Yl9zZXR1
cChzdHJ1Y3QgcHJpdl9vcF9jdHh0ICpjdHh0LCB1OCBvcGNvZGUsCiAgICAg
LyogUnVudGltZSBjb25maXJtYXRpb24gdGhhdCB3ZSBoYXZlbid0IGNsb2Ji
ZXJlZCBhbiBhZGphY2VudCBzdHViLiAqLwogICAgIEJVR19PTihTVFVCX0JV
Rl9TSVpFIC8gMiA8IChwIC0gY3R4dC0+aW9fZW11bF9zdHViKSk7CiAKKyAg
ICBibG9ja19zcGVjdWxhdGlvbigpOyAvKiBTQ1NCICovCisKICAgICAvKiBI
YW5keSBmdW5jdGlvbi10eXBlZCBwb2ludGVyIHRvIHRoZSBzdHViLiAqLwog
ICAgIHJldHVybiAodm9pZCAqKXN0dWJfdmE7CiAKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jIGIveGVuL2Fy
Y2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKaW5kZXggYzI1ZDg4
ZDBkOC4uZjQyZmYyYTgzNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4
Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4
Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTEyNTcsNiArMTI1Nyw3IEBA
IHN0YXRpYyBpbmxpbmUgaW50IG1rZWModWludDhfdCBlLCBpbnQzMl90IGVj
LCAuLi4pCiAjIGRlZmluZSBpbnZva2Vfc3R1YihwcmUsIHBvc3QsIGNvbnN0
cmFpbnRzLi4uKSBkbyB7ICAgICAgICAgICAgICAgICAgICBcCiAgICAgc3R1
Yl9leG4uaW5mbyA9ICh1bmlvbiBzdHViX2V4Y2VwdGlvbl90b2tlbikgeyAu
cmF3ID0gfjAgfTsgICAgICAgICBcCiAgICAgc3R1Yl9leG4ubGluZSA9IF9f
TElORV9fOyAvKiBVdGlsaXR5IG91dHdlaWdocyBsaXZlcGF0Y2hpbmcgY29z
dCAqLyBcCisgICAgYmxvY2tfc3BlY3VsYXRpb24oKTsgLyogU0NTQiAqLyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgYXNt
IHZvbGF0aWxlICggcHJlICJcblx0SU5ESVJFQ1RfQ0FMTCAlW3N0dWJdXG5c
dCIgcG9zdCAiXG4iICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIi5M
cmV0JT06XG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgICAgICAgICAgICAgIi5wdXNoc2VjdGlvbiAuZml4
dXAsXCJheFwiXG4iICAgICAgICAgICAgICAgICAgICAgICBcCg==

--=separator
Content-Type: application/octet-stream; name="xsa375-4.12.patch"
Content-Disposition: attachment; filename="xsa375-4.12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogUHJvdGVjdCBhZ2FpbnN0IFNw
ZWN1bGF0aXZlIENvZGUgU3RvcmUgQnlwYXNzCgpNb2Rlcm4geDg2IHByb2Nl
c3NvcnMgaGF2ZSBmYXItYmV0dGVyLXRoYW4tYXJjaGl0ZWN0dXJhbGx5LWd1
YXJhbnRlZWQgc2VsZgptb2RpZnlpbmcgY29kZSBkZXRlY3Rpb24uICBUeXBp
Y2FsbHksIHdoZW4gYSB3cml0ZSBoaXRzIGFuIGluc3RydWN0aW9uIGluCmZs
aWdodCwgYSBNYWNoaW5lIENsZWFyIG9jY3VycyB0byBmbHVzaCBzdGFsZSBj
b250ZW50IGluIHRoZSBmcm9udGVuZCBhbmQKYmFja2VuZC4KCkZvciBzZWxm
IG1vZGlmeWluZyBjb2RlLCBiZWZvcmUgYSB3cml0ZSB3aGljaCBoaXRzIGFu
IGluc3RydWN0aW9uIGluIGZsaWdodApyZXRpcmVzLCB0aGUgZnJvbnRlbmQg
Y2FuIHNwZWN1bGF0aXZlbHkgZGVjb2RlIGFuZCBleGVjdXRlIHRoZSBvbGQg
aW5zdHJ1Y3Rpb24Kc3RyZWFtLiAgU3BlY3VsYXRpb24gb2YgdGhpcyBmb3Jt
IGNhbiBzdWZmZXIgZnJvbSB0eXBlIGNvbmZ1c2lvbiBpbiByZWdpc3RlcnMs
CmFuZCBwb3RlbnRpYWxseSBsZWFrIGRhdGEuCgpGdXJ0aGVybW9yZSwgdXBk
YXRlcyBhcmUgdHlwaWNhbGx5IGJ5dGUtd2lzZSwgcmF0aGVyIHRoYW4gYXRv
bWljLiAgRGVwZW5kaW5nCm9uIHRpbWluZywgc3BlY3VsYXRpb24gY2FuIHJh
Y2UgYWhlYWQgbXVsdGlwbGUgdGltZXMgYmV0d2VlbiBpbmRpdmlkdWFsCndy
aXRlcywgYW5kIGV4ZWN1dGUgdGhlIHRyYW5zaWVudGx5LW1hbGZvcm1lZCBp
bnN0cnVjdGlvbiBzdHJlYW0uCgpYZW4gaGFzIHN0dWJzIHdoaWNoIGFyZSB1
c2VkIGluIGNlcnRhaW4gY2FzZXMgZm9yIGVtdWxhdGlvbiBwdXJwb3Nlcy4g
IEluaGliaXQKc3BlY3VsYXRpb24gYmV0d2VlbiB1cGRhdGluZyB0aGUgc3R1
YiBhbmQgZXhlY3V0aW5nIGl0LgoKVGhpcyBpcyBYU0EtMzc1IC8gQ1ZFLTIw
MjEtMDA4OS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L3B2L2VtdWwtcHJpdi1vcC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwt
cHJpdi1vcC5jCmluZGV4IDZkYzRmOTJhODQuLjU5YzE1Y2EwZTcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysgYi94
ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTk3LDYgKzk3LDgg
QEAgc3RhdGljIGlvX2VtdWxfc3R1Yl90ICppb19lbXVsX3N0dWJfc2V0dXAo
c3RydWN0IHByaXZfb3BfY3R4dCAqY3R4dCwgdTggb3Bjb2RlLAogICAgIEJV
SUxEX0JVR19PTihTVFVCX0JVRl9TSVpFIC8gMiA8IE1BWCg5LCAvKiBEZWZh
dWx0IGVtdWwgc3R1YiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA1ICsgSU9FTVVMX1FVSVJLX1NUVUJfQllURVMpKTsK
IAorICAgIGFzbSB2b2xhdGlsZSAoICJsZmVuY2UiIDo6OiAibWVtb3J5IiAp
OyAvKiBTQ1NCICovCisKICAgICAvKiBIYW5keSBmdW5jdGlvbi10eXBlZCBw
b2ludGVyIHRvIHRoZSBzdHViLiAqLwogICAgIHJldHVybiAodm9pZCAqKXN0
dWJfdmE7CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2X2VtdWxh
dGUveDg2X2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94
ODZfZW11bGF0ZS5jCmluZGV4IGJiYTZkZDAxODcuLmNkMTIzNDkyYTYgMTAw
NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0
ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0
ZS5jCkBAIC0xMDkzLDYgKzEwOTMsNyBAQCBzdGF0aWMgaW5saW5lIGludCBt
a2VjKHVpbnQ4X3QgZSwgaW50MzJfdCBlYywgLi4uKQogIyBkZWZpbmUgaW52
b2tlX3N0dWIocHJlLCBwb3N0LCBjb25zdHJhaW50cy4uLikgZG8geyAgICAg
ICAgICAgICAgICAgICAgXAogICAgIHN0dWJfZXhuLmluZm8gPSAodW5pb24g
c3R1Yl9leGNlcHRpb25fdG9rZW4pIHsgLnJhdyA9IH4wIH07ICAgICAgICAg
XAogICAgIHN0dWJfZXhuLmxpbmUgPSBfX0xJTkVfXzsgLyogVXRpbGl0eSBv
dXR3ZWlnaHMgbGl2ZXBhdGNoaW5nIGNvc3QgKi8gXAorICAgIGFzbSB2b2xh
dGlsZSAoICJsZmVuY2UiIDo6OiAibWVtb3J5IiApOyAvKiBTQ1NCICovICAg
ICAgICAgICAgICAgICAgXAogICAgIGFzbSB2b2xhdGlsZSAoIHByZSAiXG5c
dElORElSRUNUX0NBTEwgJVtzdHViXVxuXHQiIHBvc3QgIlxuIiAgICAgICAg
XAogICAgICAgICAgICAgICAgICAgICIuTHJldCU9OlxuXHQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAg
ICAgICAgICIucHVzaHNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIiAgICAgICAg
ICAgICAgICAgICAgICAgXAo=

--=separator
Content-Type: application/octet-stream; name="xsa375-4.13.patch"
Content-Disposition: attachment; filename="xsa375-4.13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogUHJvdGVjdCBhZ2FpbnN0IFNw
ZWN1bGF0aXZlIENvZGUgU3RvcmUgQnlwYXNzCgpNb2Rlcm4geDg2IHByb2Nl
c3NvcnMgaGF2ZSBmYXItYmV0dGVyLXRoYW4tYXJjaGl0ZWN0dXJhbGx5LWd1
YXJhbnRlZWQgc2VsZgptb2RpZnlpbmcgY29kZSBkZXRlY3Rpb24uICBUeXBp
Y2FsbHksIHdoZW4gYSB3cml0ZSBoaXRzIGFuIGluc3RydWN0aW9uIGluCmZs
aWdodCwgYSBNYWNoaW5lIENsZWFyIG9jY3VycyB0byBmbHVzaCBzdGFsZSBj
b250ZW50IGluIHRoZSBmcm9udGVuZCBhbmQKYmFja2VuZC4KCkZvciBzZWxm
IG1vZGlmeWluZyBjb2RlLCBiZWZvcmUgYSB3cml0ZSB3aGljaCBoaXRzIGFu
IGluc3RydWN0aW9uIGluIGZsaWdodApyZXRpcmVzLCB0aGUgZnJvbnRlbmQg
Y2FuIHNwZWN1bGF0aXZlbHkgZGVjb2RlIGFuZCBleGVjdXRlIHRoZSBvbGQg
aW5zdHJ1Y3Rpb24Kc3RyZWFtLiAgU3BlY3VsYXRpb24gb2YgdGhpcyBmb3Jt
IGNhbiBzdWZmZXIgZnJvbSB0eXBlIGNvbmZ1c2lvbiBpbiByZWdpc3RlcnMs
CmFuZCBwb3RlbnRpYWxseSBsZWFrIGRhdGEuCgpGdXJ0aGVybW9yZSwgdXBk
YXRlcyBhcmUgdHlwaWNhbGx5IGJ5dGUtd2lzZSwgcmF0aGVyIHRoYW4gYXRv
bWljLiAgRGVwZW5kaW5nCm9uIHRpbWluZywgc3BlY3VsYXRpb24gY2FuIHJh
Y2UgYWhlYWQgbXVsdGlwbGUgdGltZXMgYmV0d2VlbiBpbmRpdmlkdWFsCndy
aXRlcywgYW5kIGV4ZWN1dGUgdGhlIHRyYW5zaWVudGx5LW1hbGZvcm1lZCBp
bnN0cnVjdGlvbiBzdHJlYW0uCgpYZW4gaGFzIHN0dWJzIHdoaWNoIGFyZSB1
c2VkIGluIGNlcnRhaW4gY2FzZXMgZm9yIGVtdWxhdGlvbiBwdXJwb3Nlcy4g
IEluaGliaXQKc3BlY3VsYXRpb24gYmV0d2VlbiB1cGRhdGluZyB0aGUgc3R1
YiBhbmQgZXhlY3V0aW5nIGl0LgoKVGhpcyBpcyBYU0EtMzc1IC8gQ1ZFLTIw
MjEtMDA4OS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L3B2L2VtdWwtcHJpdi1vcC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwt
cHJpdi1vcC5jCmluZGV4IDZkYzRmOTJhODQuLjU5YzE1Y2EwZTcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysgYi94
ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTk3LDYgKzk3LDgg
QEAgc3RhdGljIGlvX2VtdWxfc3R1Yl90ICppb19lbXVsX3N0dWJfc2V0dXAo
c3RydWN0IHByaXZfb3BfY3R4dCAqY3R4dCwgdTggb3Bjb2RlLAogICAgIEJV
SUxEX0JVR19PTihTVFVCX0JVRl9TSVpFIC8gMiA8IE1BWCg5LCAvKiBEZWZh
dWx0IGVtdWwgc3R1YiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA1ICsgSU9FTVVMX1FVSVJLX1NUVUJfQllURVMpKTsK
IAorICAgIGJsb2NrX3NwZWN1bGF0aW9uKCk7IC8qIFNDU0IgKi8KKwogICAg
IC8qIEhhbmR5IGZ1bmN0aW9uLXR5cGVkIHBvaW50ZXIgdG8gdGhlIHN0dWIu
ICovCiAgICAgcmV0dXJuICh2b2lkICopc3R1Yl92YTsKIH0KZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jIGIv
eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKaW5kZXgg
YmJhNmRkMDE4Ny4uY2QxMjM0OTJhNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv
eDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gv
eDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTExNzIsNiArMTE3
Miw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1rZWModWludDhfdCBlLCBpbnQz
Ml90IGVjLCAuLi4pCiAjIGRlZmluZSBpbnZva2Vfc3R1YihwcmUsIHBvc3Qs
IGNvbnN0cmFpbnRzLi4uKSBkbyB7ICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgc3R1Yl9leG4uaW5mbyA9ICh1bmlvbiBzdHViX2V4Y2VwdGlvbl90b2tl
bikgeyAucmF3ID0gfjAgfTsgICAgICAgICBcCiAgICAgc3R1Yl9leG4ubGlu
ZSA9IF9fTElORV9fOyAvKiBVdGlsaXR5IG91dHdlaWdocyBsaXZlcGF0Y2hp
bmcgY29zdCAqLyBcCisgICAgYmxvY2tfc3BlY3VsYXRpb24oKTsgLyogU0NT
QiAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgYXNtIHZvbGF0aWxlICggcHJlICJcblx0SU5ESVJFQ1RfQ0FMTCAlW3N0
dWJdXG5cdCIgcG9zdCAiXG4iICAgICAgICBcCiAgICAgICAgICAgICAgICAg
ICAgIi5McmV0JT06XG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIi5wdXNoc2VjdGlv
biAuZml4dXAsXCJheFwiXG4iICAgICAgICAgICAgICAgICAgICAgICBcCg==

--=separator--


From xen-users-bounces@lists.xenproject.org Thu Jun 10 15:36:05 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Jun 2021 15:36:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.139659.258688 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrMiJ-0006em-FE; Thu, 10 Jun 2021 15:35:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 139659.258688; Thu, 10 Jun 2021 15:35:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrMiJ-0006ee-C7; Thu, 10 Jun 2021 15:35:23 +0000
Received: by outflank-mailman (input) for mailman id 139659;
 Thu, 10 Jun 2021 08:04:43 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=g+bs=LE=mittwald.de=s.kieske@srs-us1.protection.inumbo.net>)
 id 1lrFgB-0004mx-81
 for xen-users@lists.xen.org; Thu, 10 Jun 2021 08:04:43 +0000
Received: from mailbulkout04.agenturserver.de (unknown [153.92.196.163])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id abbf89da-0741-433d-8658-2910531f69ab;
 Thu, 10 Jun 2021 08:04:39 +0000 (UTC)
Received: from mail03.agenturserver.de (mail03.internal [192.168.51.40])
 by mailbulkout04.agenturserver.de (Postfix) with ESMTP id 4D47C42405;
 Thu, 10 Jun 2021 10:04:38 +0200 (CEST)
Received: from XXX.XXX.XXX.XXX (XXXXX.XX [XXX.XXX.XXX.XXX])
 (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested) (Authenticated sender: p1000p113)
 by mail.agenturserver.de (Postfix) with ESMTPSA id B3DE4413A5;
 Thu, 10 Jun 2021 10:04:37 +0200 (CEST)
Received: from XXX.XXX.XXX.XXX (XXXXX.XX [XXX.XXX.XXX.XXX])
 ex2.mw-ks.local (2a03:2a00:0:3:edc0:71ef:fb82:674a) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.14; Thu, 10 Jun 2021 10:04:37 +0200
Received: from XXX.XXX.XXX.XXX (XXXXX.XX [XXX.XXX.XXX.XXX])
 ex1.mw-ks.local ([fe80::e187:7dcb:b1d9:d875%2]) with mapi id 15.01.2176.014;
 Thu, 10 Jun 2021 10:04:37 +0200
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: abbf89da-0741-433d-8658-2910531f69ab
From: Sven Kieske <S.Kieske@mittwald.de>
To: "xen-announce@lists.xen.org" <xen-announce@lists.xen.org>,
	"oss-security@lists.openwall.com" <oss-security@lists.openwall.com>,
	"xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
CC: "security-team-members@xen.org" <security-team-members@xen.org>
Subject: Re: [oss-security] Xen Security Advisory 375 v3
 (CVE-2021-0089,CVE-2021-26313) - Speculative Code Store Bypass
Thread-Topic: [oss-security] Xen Security Advisory 375 v3
 (CVE-2021-0089,CVE-2021-26313) - Speculative Code Store Bypass
Thread-Index: AQHXXTa+QYm8IqItZ0WWKzH19j3F/KsMwoyA
Date: Thu, 10 Jun 2021 08:04:37 +0000
Message-ID: <90160ae63614ca1098c87f5c60002b9a35e922ef.camel@mittwald.de>
References: <E1lqybO-0000fZ-5i@xenbits.xenproject.org>
In-Reply-To: <E1lqybO-0000fZ-5i@xenbits.xenproject.org>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [2a03:2a00:2:1::48]
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="=-0l3DJMvbZ87xKiFC2jeo"
MIME-Version: 1.0

--=-0l3DJMvbZ87xKiFC2jeo
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mi, 2021-06-09 at 13:50 +0000, Xen.org security team wrote:
> For more details, see:
[..]
>   https://www.amd.com/en/corporate-product-security-bulletin-amd-sb-1003

The above link turns into a "Page not found", at least for me, I believe th=
e correct link is:

https://www.amd.com/en/corporate/product-security/bulletin/amd-sb-1003

HTH

Mit freundlichen Gr=C3=BC=C3=9Fen / Regards

Sven Kieske
Systementwickler
=20
=20
Mittwald CM Service GmbH & Co. KG
K=C3=B6nigsberger Stra=C3=9Fe 4-6
32339 Espelkamp
=20
Tel.: 05772 / 293-900
Fax: 05772 / 293-333
=20
https://www.mittwald.de
=20
Gesch=C3=A4ftsf=C3=BChrer: Robert Meyer, Florian J=C3=BCrgens
=20
St.Nr.: 331/5721/1033, USt-IdNr.: DE814773217, HRA 6640, AG Bad Oeynhausen
Komplement=C3=A4rin: Robert Meyer Verwaltungs GmbH, HRB 13260, AG Bad Oeynh=
ausen

Informationen zur Datenverarbeitung im Rahmen unserer Gesch=C3=A4ftst=C3=A4=
tigkeit=20
gem=C3=A4=C3=9F Art. 13-14 DSGVO sind unter www.mittwald.de/ds abrufbar.


--=-0l3DJMvbZ87xKiFC2jeo
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEdKGxKl7rK5iwbpcWxvL1MwMBtBEFAmDBx5MACgkQxvL1MwMB
tBESWRAA1dpFqCNLMZBg07fdyqYg4VJ2uM+jRKRrPFBLev0QNYF/VRjs7vtO/R/4
/gHlFoOX4uxaMO0GFlPgQ8bZ6qKmNTQ4CDIsLgWvIPf4Ldy0p3Qs92AQxyEGLHpL
IFc1qNdn07koYU+KxfPKNMFH1TZAqrU+hGZec68LtyhVBSpYKby/co2iZ6bH/88l
6Houy2etNAKkztiEUEEKBPPXTFG8v3AqEXq/mwfOUYU9IfuRPcaxcyvTmKdpwLun
24kU2fbifpwV7YDP1J/Q97p4YwD6Y2TSPDlxEu0eOlWCLQTs1dHx2UPBCZf85CjK
ZgHewt7oFcnwdWmtLtm3Q8/ALWZJdoERDUTOXds8pjjt84Pn9iiHdhNJE7LE0hnR
XFUha/OjQw9NxIer+K4YPo5bbG9wAY0lkFYPYZ05D3Ebnncmk58VXJUkWo+4E3zW
LL0AO2DdcP4UOZef7zwhtDD6BNlBxJSz+YvGtNn1KoS7JkdPFsD61x+MBWZXeqY1
ke8Pdq8BnZPCq/6ked5iJtxOpwkjQWz9Owvr1lKRQOfyw4G5G7hr7eB/6/eXyTRw
Yj29vqAI0F/FtqqaSahtXYlvneLePX5vgajH/C3sdVLkVQvQBVlwF4eqCQRmkmCo
iG658IfWJvD6DsYTGM50PjXunfaSsWKz8j7QDRr6RaHEu3O7Tdk=
=o3nj
-----END PGP SIGNATURE-----

--=-0l3DJMvbZ87xKiFC2jeo--


From xen-users-bounces@lists.xenproject.org Thu Jun 10 22:50:09 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Jun 2021 22:50:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.140074.258904 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrTUG-00006Z-22; Thu, 10 Jun 2021 22:49:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 140074.258904; Thu, 10 Jun 2021 22:49:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrTUF-00006O-TM; Thu, 10 Jun 2021 22:49:19 +0000
Received: by outflank-mailman (input) for mailman id 140074;
 Thu, 10 Jun 2021 22:49:18 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kU01=LE=gmail.com=thebearak@srs-us1.protection.inumbo.net>)
 id 1lrTUE-00006I-IQ
 for xen-users@lists.xenproject.org; Thu, 10 Jun 2021 22:49:18 +0000
Received: from mail-pf1-x433.google.com (unknown [2607:f8b0:4864:20::433])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id eb05764d-0684-46e1-8b44-9b00a14d1335;
 Thu, 10 Jun 2021 22:49:17 +0000 (UTC)
Received: by mail-pf1-x433.google.com with SMTP id k15so2842378pfp.6
 for <xen-users@lists.xenproject.org>; Thu, 10 Jun 2021 15:49:17 -0700 (PDT)
Received: from vibe.barkdullak.us (29-121-237-24.static.gci.net.
 [24.237.121.29])
 by smtp.gmail.com with ESMTPSA id p11sm2810641pfo.126.2021.06.10.15.49.15
 for <xen-users@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Jun 2021 15:49:16 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: eb05764d-0684-46e1-8b44-9b00a14d1335
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=to:from:subject:message-id:date:user-agent:mime-version
         :content-transfer-encoding:content-language;
        bh=1fjxlLThG3y3EoIFXLub6clE1Llq5RjQwIRKMpWqpSU=;
        b=e+4uc+4zeRMBzRYcLCt8cLoDeyk1zGO5KvZScRGMAL0M3lmLOtxzZeCUHsIw6qffsO
         PIwgrgFZgtzaMRMt0DzCWywCxF1xGq68ZahgxjuphI6scfHyyl1WoRaTCXYPea/q9e5r
         h9lR2FxhE5VGudLteqiip34a/b+a32xDtDtuNWRLhhhK5rjXmqC+XXSE27EvW7Qw61cV
         KP4e46jTmJHbqr/7gydAQbpovFuoz0ZcGornyiWd73Ojk45KVuHa3+fOv/dpYvgkGfiX
         nOIB9tRgr9FauVry2VHKNoNUrQDWMFiqiyCL95EMQr8Up5/gQIBdKWb8LgqB1ItPxZ4J
         FYXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:to:from:subject:message-id:date:user-agent
         :mime-version:content-transfer-encoding:content-language;
        bh=1fjxlLThG3y3EoIFXLub6clE1Llq5RjQwIRKMpWqpSU=;
        b=Eb4MddfeqK7sywj8Ovswb1GNEkNJ7XnXNUiOK/4N6oUmBf/xQqfm8OFG5AYOZsU69F
         Ps7PyLB8LuQp4KnIgNbiwOGDUUhhK2ti9sdny+cKyeL0RqMTn60WoVk/Acko03FaKm3e
         b+MJQ94wJeqzte6O9QPPztThe1vty/KGBQL3rDrkITvxjwr5mGWPSQIazemBvKdomrSU
         AOJdm0z3vwz6hhNfHL5xpFZ8MrQgn9hYt7c4/u7i9MaJsAXA/d92VZm5oTmpjLhJgbJt
         E+pG4PchzizEnMrHd4yhUSuiDiMhdocuREQAXSysHG6VL66uiZAK6eNPXS5aaSBqkpgP
         KcOw==
X-Gm-Message-State: AOAM533IaDGlr0HIR7QVmuKTf7MhDoYaUrjWENMRrldd5J52h7sULV8u
	cIDQPa9zu3cD5Ku5f7QbX/sT9Dz3Ah0=
X-Google-Smtp-Source: ABdhPJyI+YiMyq4SZw2h9U+Hl1t3RsCbPk4wPvQFo2pAJlo4xyuQV9KXgLksj9e63jXC+uGRN0CxJQ==
X-Received: by 2002:a62:687:0:b029:2ef:be02:c346 with SMTP id 129-20020a6206870000b02902efbe02c346mr5211251pfg.51.1623365356465;
        Thu, 10 Jun 2021 15:49:16 -0700 (PDT)
To: xen-users@lists.xenproject.org
From: TheBearAK <thebearak@gmail.com>
Subject: Slow Apt
Message-ID: <1a639af0-babe-8072-111f-b5c0a17220c5@gmail.com>
Date: Thu, 10 Jun 2021 14:49:14 -0800
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US

First, hello.  New to the list, but I've been using Xen Hypervisor for a 
long time.

I'm curious if anyone else has had this issue.

I recently upgraded a server from Debian Squeeze to Buster with kernel 
4.19.0-16-amd64 and found that apt/aptitude commands are slow in response.

For example, 'apt-get update' can take 10 minutes to complete, hanging 
up on certain parts of the downloads either at 0% or 90%.    This is 
something that normally takes a few seconds.

Even the DomU's suffer the same issue.


On another server I have kernel 4.19.0-14-amd64 and it seems to be 
running just fine most of the time.  I do get some hiccups, but not 
nearly as much as the above upgraded server.


I've also noticed that writes will sometimes pause for several seconds, 
specially when transferring large files.


Setup:

E3-1230 V2 @ 3.30GHz

16 GB RAM

Hard drives are spinning disk.  2 TB drives (EXT4)

DomUs are using Disk.Img for their disk.



From xen-users-bounces@lists.xenproject.org Fri Jun 11 00:30:46 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Jun 2021 00:30:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.140102.258947 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrV3b-0002NY-4J; Fri, 11 Jun 2021 00:29:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 140102.258947; Fri, 11 Jun 2021 00:29:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrV3b-0002NQ-0w; Fri, 11 Jun 2021 00:29:55 +0000
Received: by outflank-mailman (input) for mailman id 140102;
 Fri, 11 Jun 2021 00:29:53 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lLKS=LF=gmail.com=chrismyers81@srs-us1.protection.inumbo.net>)
 id 1lrV3Z-0002NF-2K
 for xen-users@lists.xenproject.org; Fri, 11 Jun 2021 00:29:53 +0000
Received: from mail-pf1-x435.google.com (unknown [2607:f8b0:4864:20::435])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 19cfc3eb-4c91-48f9-8b5e-5f2bcbdf967d;
 Fri, 11 Jun 2021 00:29:52 +0000 (UTC)
Received: by mail-pf1-x435.google.com with SMTP id k15so3006732pfp.6
 for <xen-users@lists.xenproject.org>; Thu, 10 Jun 2021 17:29:52 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 19cfc3eb-4c91-48f9-8b5e-5f2bcbdf967d
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
        bh=R/5yXGl+hh9VGVOq0jhd7DHgf3yaWYj7nFZZhApdv1I=;
        b=uLkIOLgHj1ugIPPhx2XBSQrVTnyomvSa3iKJXNGO0cFCZyaILFopzzwthAW+TioZfU
         jaAxBP9h4gS7dBVOko7VkhvF5RhHbLqkSFMb4M3p9veyz2shFj8q6tOw4BZGsyKym4np
         EZLe/p2t3WOIRaObC87sc1nq/4XkMvtSnNWyu7CabKbRNnWiDslJPT7HgTwOMax62x96
         2xvW9B2oFPNkDh2/Cx7Mw5LvMxFKUpnAoPPPzByddzqw2us2UzTFxj/gTKHHDwigY9Oo
         UIFMh91TOnwFFaSg0qp1D/FnY7RFZ76GM5/T2sU03Dsgg/EYB/48do/tw3FnWgRfUFa6
         Uyjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to;
        bh=R/5yXGl+hh9VGVOq0jhd7DHgf3yaWYj7nFZZhApdv1I=;
        b=ElbGlz9SOfewO8AqAH6tqdPKh5hrKJet0o7fTVuugmwk8EALrhyfUMvmfaA71RS1cb
         cX+nAlHU7InpX/l/dK6+OHhwgP0Qz89nnxYdiLblDyfrRTjt+uruhFFfXWEJWggqIgwy
         +UeurefnDHeaH9OygdsH+liSyRG2n5Y8yywmu11vy2urZzJjck+hSXu++9d4C+8twZo5
         17s1yI/W3NrzEyiJnM/D4GGrr31g9j/uLlLPgklIbInQmM3hRySrjHvrFvh+8DMExmu4
         JogA+jyL2SYhxHDFyM/R68RznN0RpuMLwAX6vJjt0xJuzOBGGQvhAqlQwJfzUJAvMFlW
         KDeQ==
X-Gm-Message-State: AOAM531uUYX0Fzd35xN+Vz2FK1h5Tdr3K24xVMVlnPSmD/FRXzvGOyK4
	ih/v5OHYZ5sWNddd775SXDSoQuDJcCibiIEDoVtpLdwH
X-Google-Smtp-Source: ABdhPJyDPXlb6yzIbUQ5jThGdImx6ky7VlGq3s86gXCU3Tw1+X7V70HY96ISJeYiUZIjinsbY8IOewZmV+4OgdZhi5M=
X-Received: by 2002:a63:af02:: with SMTP id w2mr954838pge.350.1623371391002;
 Thu, 10 Jun 2021 17:29:51 -0700 (PDT)
MIME-Version: 1.0
References: <1a639af0-babe-8072-111f-b5c0a17220c5@gmail.com>
In-Reply-To: <1a639af0-babe-8072-111f-b5c0a17220c5@gmail.com>
From: Chris Myers <chrismyers81@gmail.com>
Date: Thu, 10 Jun 2021 19:29:39 -0500
Message-ID: <CADrndxM=drka_LAW58s10Fx76ye6P4R3qo+m6YtZ59FRSz2c3g@mail.gmail.com>
Subject: Re: Slow Apt
To: xen-users@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000196bc005c4729b13"

--000000000000196bc005c4729b13
Content-Type: text/plain; charset="UTF-8"

Out of curiosity, how does "top" look when it's running? Especially things
like "wa" (IOWait) and "st" (steal)?

On Thu, Jun 10, 2021 at 5:49 PM TheBearAK <thebearak@gmail.com> wrote:

> First, hello.  New to the list, but I've been using Xen Hypervisor for a
> long time.
>
> I'm curious if anyone else has had this issue.
>
> I recently upgraded a server from Debian Squeeze to Buster with kernel
> 4.19.0-16-amd64 and found that apt/aptitude commands are slow in response.
>
> For example, 'apt-get update' can take 10 minutes to complete, hanging
> up on certain parts of the downloads either at 0% or 90%.    This is
> something that normally takes a few seconds.
>
> Even the DomU's suffer the same issue.
>
>
> On another server I have kernel 4.19.0-14-amd64 and it seems to be
> running just fine most of the time.  I do get some hiccups, but not
> nearly as much as the above upgraded server.
>
>
> I've also noticed that writes will sometimes pause for several seconds,
> specially when transferring large files.
>
>
> Setup:
>
> E3-1230 V2 @ 3.30GHz
>
> 16 GB RAM
>
> Hard drives are spinning disk.  2 TB drives (EXT4)
>
> DomUs are using Disk.Img for their disk.
>
>
>

-- 
People use duct tape to fix everything....God used nails.

http://www.myerscountry.net

--000000000000196bc005c4729b13
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Out of curiosity, how does &quot;top&quot; look when it&#3=
9;s running? Especially things like &quot;wa&quot; (IOWait) and &quot;st&qu=
ot; (steal)?<br></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Thu, Jun 10, 2021 at 5:49 PM TheBearAK &lt;<a href=3D"ma=
ilto:thebearak@gmail.com" target=3D"_blank">thebearak@gmail.com</a>&gt; wro=
te:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px =
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">First, hello=
.=C2=A0 New to the list, but I&#39;ve been using Xen Hypervisor for a <br>
long time.<br>
<br>
I&#39;m curious if anyone else has had this issue.<br>
<br>
I recently upgraded a server from Debian Squeeze to Buster with kernel <br>
4.19.0-16-amd64 and found that apt/aptitude commands are slow in response.<=
br>
<br>
For example, &#39;apt-get update&#39; can take 10 minutes to complete, hang=
ing <br>
up on certain parts of the downloads either at 0% or 90%.=C2=A0=C2=A0=C2=A0=
 This is <br>
something that normally takes a few seconds.<br>
<br>
Even the DomU&#39;s suffer the same issue.<br>
<br>
<br>
On another server I have kernel 4.19.0-14-amd64 and it seems to be <br>
running just fine most of the time.=C2=A0 I do get some hiccups, but not <b=
r>
nearly as much as the above upgraded server.<br>
<br>
<br>
I&#39;ve also noticed that writes will sometimes pause for several seconds,=
 <br>
specially when transferring large files.<br>
<br>
<br>
Setup:<br>
<br>
E3-1230 V2 @ 3.30GHz<br>
<br>
16 GB RAM<br>
<br>
Hard drives are spinning disk.=C2=A0 2 TB drives (EXT4)<br>
<br>
DomUs are using Disk.Img for their disk.<br>
<br>
<br>
</blockquote></div><br clear=3D"all"><br>-- <br><div dir=3D"ltr">People use=
 duct tape to fix everything....God used nails.<br><br><a href=3D"http://ww=
w.myerscountry.net" target=3D"_blank">http://www.myerscountry.net</a></div>

--000000000000196bc005c4729b13--


From xen-users-bounces@lists.xenproject.org Fri Jun 11 04:32:47 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Jun 2021 04:32:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.140146.259019 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrYpW-00075E-LZ; Fri, 11 Jun 2021 04:31:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 140146.259019; Fri, 11 Jun 2021 04:31:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lrYpW-000756-Hp; Fri, 11 Jun 2021 04:31:38 +0000
Received: by outflank-mailman (input) for mailman id 140146;
 Fri, 11 Jun 2021 04:31:38 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1Jqm=LF=gmail.com=thebearak@srs-us1.protection.inumbo.net>)
 id 1lrYpW-000750-0I
 for xen-users@lists.xenproject.org; Fri, 11 Jun 2021 04:31:38 +0000
Received: from mail-pg1-x529.google.com (unknown [2607:f8b0:4864:20::529])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id ea987694-a876-4f77-89f9-c04180f231f5;
 Fri, 11 Jun 2021 04:31:36 +0000 (UTC)
Received: by mail-pg1-x529.google.com with SMTP id z1so1452681pgj.6
 for <xen-users@lists.xenproject.org>; Thu, 10 Jun 2021 21:31:36 -0700 (PDT)
Received: from sybil.iarc.uaf.edu (161-68-174-206.gci.net. [206.174.68.161])
 by smtp.gmail.com with ESMTPSA id j17sm3733399pff.77.2021.06.10.21.31.34
 for <xen-users@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Jun 2021 21:31:35 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: ea987694-a876-4f77-89f9-c04180f231f5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=subject:to:references:from:message-id:date:user-agent:mime-version
         :in-reply-to:content-language;
        bh=GjHfLqLN/ucjZ+/t1pw/avoX6RLjwEUqGpCOL+vpomY=;
        b=WBDYa59mjjbJ2LCLI2v/icC9+hDgvkdRpAGjSx1pgGf7BO4Qe88CoLWSkferP8Se3f
         VMvk4ricOd/5HAyykE9s3tWifHlCjJzpg82CV5lOXphhYNd6DiwzaDJQyIqD+DcRuEsX
         RoiULkf5iGddrGQYtH+/VBPE/y68EXBVVXim+FNOMz4eSDBE5igw1BFpg5+Z0lIE9w61
         DtE1DDBtN1GF6py+4v0E5mqt/im4D8m7J7XmsmYoJ9RdgOwNfE7KHFm9xRZksxaNJTFe
         rpm6kRouBVx6Ega0BYQHzxBOYrbL113Cxyqqnbd7vAKSsY6Lt1Hy0j1n5yoda3IbopPT
         U/WQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:subject:to:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language;
        bh=GjHfLqLN/ucjZ+/t1pw/avoX6RLjwEUqGpCOL+vpomY=;
        b=FTO+UeksOfSN2tBspaGyXTMqJGUvivC5Ukt2qSlA7ouQgQ77+xPsx5wu4KJPFDqLQg
         N5zfauxrMz5/tMLpFjStJ+p/gN1IDWbEazWZAfM1qbyeZmYE82v5+S3Wnnpwq3Vln79h
         t07VWmUQJFcKrL/RSN5ohzQZb4Ylo2lED9qenzYEuab5xkVIYZckh/ZlYZ3zVqwZyihA
         vWdwfuBynrlZPRAzoXFKEZvgrsv3qnit2766QxlwRCLUIqjGZ/E3QjQntSD0ggGn66ta
         KMdYpcY2BYGUYwaM1rpcXQrAIEZTz8sWJfuO9eSyGWlfXp4tUkMTNUhpGnFb9z8pALif
         Y92g==
X-Gm-Message-State: AOAM5336Rbeek6OLSTZCCNlSMYfM7Zv4I9Ozd6NjQBp1YkbM1Lx+ZlBS
	8/1wUvKhuMOoEOSSPn/iO7Fn9jhA/lXmXw==
X-Google-Smtp-Source: ABdhPJw3ybTZgeK3O9/1CXcmYHhUg/0nQrd7scDpgOrMasEWZjk3dyOB+RZN9fUOqLowgv2H+DC0MQ==
X-Received: by 2002:a65:6a0f:: with SMTP id m15mr1712128pgu.253.1623385895475;
        Thu, 10 Jun 2021 21:31:35 -0700 (PDT)
Subject: Re: Slow Apt
To: xen-users@lists.xenproject.org
References: <1a639af0-babe-8072-111f-b5c0a17220c5@gmail.com>
 <CADrndxM=drka_LAW58s10Fx76ye6P4R3qo+m6YtZ59FRSz2c3g@mail.gmail.com>
From: TheBearAK <thebearak@gmail.com>
Message-ID: <75cd4db6-73ee-ead8-c536-6f654109c612@gmail.com>
Date: Thu, 10 Jun 2021 20:31:33 -0800
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:78.0)
 Gecko/20100101 Thunderbird/78.11.0
MIME-Version: 1.0
In-Reply-To: <CADrndxM=drka_LAW58s10Fx76ye6P4R3qo+m6YtZ59FRSz2c3g@mail.gmail.com>
Content-Type: multipart/alternative;
 boundary="------------82B2155CC5CE92EE65025CD9"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------82B2155CC5CE92EE65025CD9
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Hovers around 10.5 wa and 0.2 to 0.3 in st.

Top processes are vifs with a loop4 popping up to the top once in a 
while along with rcu_sched.

I would guess the loop4 is the mounted disk image for the DomU.

So, after the 'apt-get update' finished, the wa dropped to 0.4 and st 
stayed at 0.2


On 6/10/21 4:29 PM, Chris Myers wrote:
> Out of curiosity, how does "top" look when it's running? Especially 
> things like "wa" (IOWait) and "st" (steal)?
>
> On Thu, Jun 10, 2021 at 5:49 PM TheBearAK <thebearak@gmail.com 
> <mailto:thebearak@gmail.com>> wrote:
>
>     First, hello.  New to the list, but I've been using Xen Hypervisor
>     for a
>     long time.
>
>     I'm curious if anyone else has had this issue.
>
>     I recently upgraded a server from Debian Squeeze to Buster with
>     kernel
>     4.19.0-16-amd64 and found that apt/aptitude commands are slow in
>     response.
>
>     For example, 'apt-get update' can take 10 minutes to complete,
>     hanging
>     up on certain parts of the downloads either at 0% or 90%. This is
>     something that normally takes a few seconds.
>
>     Even the DomU's suffer the same issue.
>
>
>     On another server I have kernel 4.19.0-14-amd64 and it seems to be
>     running just fine most of the time.  I do get some hiccups, but not
>     nearly as much as the above upgraded server.
>
>
>     I've also noticed that writes will sometimes pause for several
>     seconds,
>     specially when transferring large files.
>
>
>     Setup:
>
>     E3-1230 V2 @ 3.30GHz
>
>     16 GB RAM
>
>     Hard drives are spinning disk.  2 TB drives (EXT4)
>
>     DomUs are using Disk.Img for their disk.
>
>
>
>
> -- 
> People use duct tape to fix everything....God used nails.
>
> http://www.myerscountry.net <http://www.myerscountry.net>

--------------82B2155CC5CE92EE65025CD9
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hovers around 10.5 wa and 0.2 to 0.3 in st.</p>
    <p>Top processes are vifs with a loop4 popping up to the top once in
      a while along with rcu_sched.</p>
    <p>I would guess the loop4 is the mounted disk image for the DomU.</p>
    So, after the 'apt-get update' finished, the wa dropped to 0.4 and
    st stayed at 0.2
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 6/10/21 4:29 PM, Chris Myers wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CADrndxM=drka_LAW58s10Fx76ye6P4R3qo+m6YtZ59FRSz2c3g@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Out of curiosity, how does "top" look when it's
        running? Especially things like "wa" (IOWait) and "st" (steal)?<br>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Thu, Jun 10, 2021 at 5:49
          PM TheBearAK &lt;<a href="mailto:thebearak@gmail.com"
            target="_blank" moz-do-not-send="true">thebearak@gmail.com</a>&gt;
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">First,
          hello.  New to the list, but I've been using Xen Hypervisor
          for a <br>
          long time.<br>
          <br>
          I'm curious if anyone else has had this issue.<br>
          <br>
          I recently upgraded a server from Debian Squeeze to Buster
          with kernel <br>
          4.19.0-16-amd64 and found that apt/aptitude commands are slow
          in response.<br>
          <br>
          For example, 'apt-get update' can take 10 minutes to complete,
          hanging <br>
          up on certain parts of the downloads either at 0% or 90%.   
          This is <br>
          something that normally takes a few seconds.<br>
          <br>
          Even the DomU's suffer the same issue.<br>
          <br>
          <br>
          On another server I have kernel 4.19.0-14-amd64 and it seems
          to be <br>
          running just fine most of the time.  I do get some hiccups,
          but not <br>
          nearly as much as the above upgraded server.<br>
          <br>
          <br>
          I've also noticed that writes will sometimes pause for several
          seconds, <br>
          specially when transferring large files.<br>
          <br>
          <br>
          Setup:<br>
          <br>
          E3-1230 V2 @ 3.30GHz<br>
          <br>
          16 GB RAM<br>
          <br>
          Hard drives are spinning disk.  2 TB drives (EXT4)<br>
          <br>
          DomUs are using Disk.Img for their disk.<br>
          <br>
          <br>
        </blockquote>
      </div>
      <br clear="all">
      <br>
      -- <br>
      <div dir="ltr">People use duct tape to fix everything....God used
        nails.<br>
        <br>
        <a href="http://www.myerscountry.net" target="_blank"
          moz-do-not-send="true">http://www.myerscountry.net</a></div>
    </blockquote>
  </body>
</html>

--------------82B2155CC5CE92EE65025CD9--


From xen-users-bounces@lists.xenproject.org Mon Jun 14 15:48:35 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Jun 2021 15:48:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.141659.261596 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lsooY-0007yY-Nf; Mon, 14 Jun 2021 15:47:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 141659.261596; Mon, 14 Jun 2021 15:47:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lsooY-0007yQ-K9; Mon, 14 Jun 2021 15:47:50 +0000
Received: by outflank-mailman (input) for mailman id 141659;
 Mon, 14 Jun 2021 15:47:48 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Kd3z=LI=yahoo.com=hack3rcon@srs-us1.protection.inumbo.net>)
 id 1lsooW-0007yK-Ee
 for xen-users@lists.xenproject.org; Mon, 14 Jun 2021 15:47:48 +0000
Received: from sonic315-13.consmr.mail.bf2.yahoo.com (unknown [74.6.134.123])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 35a7c948-6c13-4dbe-94ba-4276f38700c7;
 Mon, 14 Jun 2021 15:47:47 +0000 (UTC)
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic315.consmr.mail.bf2.yahoo.com with HTTP; Mon, 14 Jun 2021 15:47:47 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 35a7c948-6c13-4dbe-94ba-4276f38700c7
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1623685667; bh=Qu9eRikvKMRucY6GRonwaZPz19SnlxoL4XHWnr5kJOE=; h=Date:From:To:In-Reply-To:References:Subject:From:Subject:Reply-To; b=txtm5YANeKlFHABbazm6rZI0dapYJDzGU2X1uRmyWJojyLJxk2FoAEYMLWh3P058ABHMkA6WANRIwhG+gxbjcdv5gdo7DzCatwm5j2V7vHVSx9I3+XXj3FX++SfXsu91zYky98l7a2k5LUIyqkIteYGQCeQ7AzRASn4K/o6k9cFZn6Tf71SJFitRQA/sewF5uKfWG5m2p9nHLbIL14DuAQJ5MZLU96+hzacfasnh3bP1leRB6TrjvahOoJJu5jNu9bqUJbqxS1k0OQF3Q8xvIr2sRUPbFg+2yXblYPQhcVUK3+4FzX/4zsQ26fvCMVRGJ4T/RD1HYzVDRXSemRUoFw==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1623685667; bh=XlDURWGjBCnZTEP8OGlns2cvoZpkbuFUxT8l1eSS1zD=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=F/HtC8Vf/xLSR8+OZcq6tHxMG00HAtbi1ccJRqpsUbLnygJTivOmeWj59Fif0FRxQJ9ZYkVq2rUJRYobuC2P2AmW3ODndQuhhRPxLKYFUKd3WaHDronPol0MjfLgrG7J+FXlEGDMbRe67jaQvWTaubL/1zRokT9u6NjH8A5q+EOhZ6UqyJjE6zYelpc2qlQoQFYY7M2MaCMuImpf2mdpKqyFJUS8p1wPA0JrcppQF53drYg0+ooy98mFkJaqFJv+l0du3dxKp/uK1KJdzZtWGFT3Y5CtQYUKhj26H6vYDFD86Meh5c75AT5u1/axix7MoVYfuvX3ebSiePJRcl7oxQ==
X-YMail-OSG: .eVHVEoVM1kx.ZY9LLjzIuqeN9FTkvJ96nHsefxfxk606nan0az5P6Xj6cud5VA
 iB51mLL8ed0hX6BdaNjVhJCUnXzEkAqvkPYJuJkcQL9nAzIuIgc0RxvDTfs9vH_.pVEF6Bgos0sW
 vcSkE9PzWODW3z7U2hKUctCaOUuPAXPfDPXmgD0uxFzofO64tDzwu8.YcEEkB_6QAnlsmDOoFMk8
 XTlNrN4G_5WGWveSrV1bXkg97Gxo7lse3p56Z1L3HKlIVrkijkirDcCpCOwXqZ5HMd4FWIXdDSEc
 yhkp0KwYvYPaIip_sboPzmd0GqTpbYuz.v53OsEct96eYoDLbLiGWcjLCOQgnnLPHLJw5dKZBIZF
 .X7vQbIVDFrCsjn6ir07nFUBXqDd4UaZoxATOzsKjaeMg_2UwY8Un3TSA8vbKiKIyfZacmDYhiEb
 5EAkdggnP2iX9SxtLl7GbvT7afmzm1el6niVxR_a6RibGG3p8nO15BGT2jrJsdLB.WvA205EVDb5
 _3LG6Ba9Zhfxa1Ybp.XRGw4oXQquLCrZ3gYHO9VIhzjffWQY3iqm0exbi51WnmKBh2jPKo5vgp0E
 um9oGTD8mfeltIU9wxr4kiSC4PEC99kKBLojY5BCveD.YiLCzSsLQOO.Wi8bcYPmgjE9G9Z2WyTR
 udVbyQlQzGKK4jkEJJRQKyPqnBj6vZGuiUg9Uba7CCJJUeqA67qwHtpB56p7WaBnFxNy7.BBUium
 NR9iXK0Sk1SUmMyXXt_gfLhMWVqpHfi7H6vvSseJTK_pNTvvcwgX4Whviccky9x2dhjvQNl9rrSl
 MfCUL3PfKhyw5VrwKn3ft1gQaXsYKQyEsf5s3sdGCQEi1GjeYUu8GmnbxkX4CHZDA.MyAf45oTBp
 dGwpXFZ5TLRLLARBlDyR3zjWr7Y0OXMp89G5qt9Lo.V4YzRMgUDAIpEgPfTKsYA0Px2Pco4MHAww
 Rm7DSJI97SJUn55Llf4NktBhRcZg7fKnbf4eVgbmUyTBPo1sEMRqIWPcqrZFFh9ElA4fcmuJEJSR
 ldg3yYpnrIzQVCNhfnS1lMIST0mI1LaoBGAQxJPXKKbDTNKIXB5F7i_PbXP6MCdsXx.r.yEaQDQU
 VRNzb1U_EZyeeuFKM.IWEzgNWzNkzznzaOeH1nXUHRRJXhTC8vPRtwklTQRJbBhD9PzWF77xP4lC
 4eyvjihi.54qSzCibRmHx61P2TVjcpOPoifLgAK3X6pcoPLKOTZcLbIy8QDFpe2VR_KAzufa5xw0
 Ihc3mVqV.G_YaqnEWd_o816eD0zw7dGXTZoVwsoaVmX95OJTofHeKzJkq7IZzEW2R4G7Bncemjtl
 AuLKNVvVnOKHSoR8twqInYiG1QQvy3yZ_O.DeuaDzt9DZVwLwo.3ab4ZSXFdUL39jSOlfTYSsvr2
 ztcvAz3TiOTdAqZVe.ZR6EEW4BvRczYAOIog_PATanmN67_jyWD_ng7fcE59B8C8S_0scgJVD7p5
 l7lr5L8HQwKRkNWijMu7f0LRC0TeyXdqeAhC4V31U0wLDBmk8HBaIv_AsMoysFs9chcEUBxyH7wr
 zTv4JEskWUWhhdWCwaN4XWzmuaM1PxzaEl6KHp4lYaSunCI1RPuyvY2QZ16jLUHXbvfEGnlDn.Uo
 YyEZ346NlZcCykutgatXQGTjS851HeSayBCOv_2OIiu21a39Fm1hQ1m2rTz6yZe8tfVT3zUluIWO
 wA.rT5B.MINksoCVMK7tkTt8nCe1jjIMa1HtYAxnrW.4DqQ8ydFsqscuauYeIk7a.JTxFutj1RVJ
 wBveMJvbapFXKdreBZ9D6434gSjsKoMW.OCP9_GkD8aW6SR1DWL8jrCWOntYNIDNvZZkGnmjpVJb
 z.ALjKGp8NDInSDD0zHuY6dhOb0sAIAB.KpnEX_mTRSlPp9qxFhzQa9040J9v3wSvppsxbwzgLd7
 rdgiyTjHfQ_56NJuQQbyiLZWLmk0RlbTUkcksZH46rD7ADSynww7KaOYuvjpRgqJ31t4HiXJTzoX
 O9Q2ds4TscxFwDlpBS2r1VKTaw5RabVAsSBjMyvkjCKeBAQt0B4tlm7Zp854pBp9E0mF75qkatF7
 xjMHN6vvHcxNpCaBMdTy7c7Iy
X-Sonic-MF: <hack3rcon@yahoo.com>
Date: Mon, 14 Jun 2021 15:47:42 +0000 (UTC)
From: Jason Long <hack3rcon@yahoo.com>
To: Xen-users <xen-users@lists.xenproject.org>, 
	Bernd Bausch <berndbausch@gmail.com>
Message-ID: <1568041302.3382517.1623685662115@mail.yahoo.com>
In-Reply-To: <e82967e6-1887-7178-6e04-7994cb0b9117@gmail.com>
References: <1399391994.2416253.1623064168392.ref@mail.yahoo.com> <1399391994.2416253.1623064168392@mail.yahoo.com> <e82967e6-1887-7178-6e04-7994cb0b9117@gmail.com>
Subject: Re: Containers as VMs.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: WebService/1.1.18368 YMailNorrin
Content-Length: 603

Thanks.
How about the runX or=C2=A0Kata=C2=A0Containers?






On Tuesday, June 8, 2021, 06:32:26 AM GMT+4:30, Bernd Bausch <berndbausch@g=
mail.com> wrote:=20






There is no benefit, since it's not possible. You can run a container on a =
VM, but not as a VM.

The processes in a container run on the container host, using the host's ke=
rnel.=20
A VM has its own kernel. Processes in a VM use the VM's kernel, and don't r=
un on the VM's host.


On 2021/06/07 8:09 PM, Jason Long wrote:


>=C2=A0=C2=A0Hello,
> What is the benefit of running a container as a VM?
>=20
>=20
> Thank you.
>=20
>=20



From xen-users-bounces@lists.xenproject.org Mon Jun 14 21:45:55 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Jun 2021 21:45:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.141800.261820 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lsuOH-0006nE-UZ; Mon, 14 Jun 2021 21:45:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 141800.261820; Mon, 14 Jun 2021 21:45:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lsuOH-0006n7-RG; Mon, 14 Jun 2021 21:45:05 +0000
Received: by outflank-mailman (input) for mailman id 141800;
 Mon, 14 Jun 2021 21:45:04 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k8wb=LI=gmail.com=chrismyers81@srs-us1.protection.inumbo.net>)
 id 1lsuOG-0006n1-Bd
 for xen-users@lists.xenproject.org; Mon, 14 Jun 2021 21:45:04 +0000
Received: from mail-pj1-x1034.google.com (unknown [2607:f8b0:4864:20::1034])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c078b6ab-4099-464c-82b6-fb6f88e280dc;
 Mon, 14 Jun 2021 21:45:03 +0000 (UTC)
Received: by mail-pj1-x1034.google.com with SMTP id
 fy24-20020a17090b0218b029016c5a59021fso500397pjb.0
 for <xen-users@lists.xenproject.org>; Mon, 14 Jun 2021 14:45:03 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: c078b6ab-4099-464c-82b6-fb6f88e280dc
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=rQ9rCq+RzXocqY2V6IlXe5tCt44eZpkEvbGWXvZzJ2U=;
        b=WD0mC9qFFPUz47zO34JNDSVP0gM8UM2TcbClb+8RKC4kuVSZEXTLfytIWc6NMO6rVc
         JukNZEruvJYyCbd9m/6+0OQlfta6x5TBOHGVnMbVk3R2WDQ87zYx/QOclxHf+mRJl4tY
         NauPK8OoQUUrzO0OcoK7TJUY7n0PQzNI18MfDYDglTo0HcA8CIj2IQycCwSIyZ5uJyQM
         JhwanjU/YdC6AoO7T3Q4jOvxy+Ob6nV/YK3K6TwS6r7gXCWANVZ15bC6mjmLQtMEADHG
         ZavnYzTn1caBShxW8Wixka0JNLNc41USpgVbtBsmoGmD38XMNa59pCUBpzeaMVpcuO+L
         lx7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=rQ9rCq+RzXocqY2V6IlXe5tCt44eZpkEvbGWXvZzJ2U=;
        b=LsTLujxofaDgeHl7WVWh116IWWgKKz9YNkYImyWTqWWtZmX6l2arCmaHnUOScZFhKO
         Qql4/CfBl+L8ZLimsaCyJhtOaU/dHXaST8iiagl72eTFJtNkwYKdlyWtg5w3KrUj/dcK
         p/nec81qBaLpSKbnvJTM3XWDoJlTadKG3m2qeHxAc25iz/kPYK7XzUyeH8IKEzmY57DT
         1s6tIOdEKqEEiRcPEtDTAaFs/73e57Txf7OkLZmLAGsYnW3EIYYHhfpKG11h0Qh4/RJH
         vJrilnsWo0QUzrMDX+RoCWB/Ew8jg9MpImkXWplst8f6iEYcImADzYX4t8UEn6kRwI8P
         Z0aw==
X-Gm-Message-State: AOAM532QmyOcJlKWtfSO1uUQOeYVnEeUJCqOlrmuZlAMhTVUAUN7SHJF
	LyMzKqA6s9QW7o+G10jqHrJ9j5uCXrbJlhj0bWw=
X-Google-Smtp-Source: ABdhPJwoE4dTz5rm3NHS3QwneLv/Nru15oUgHGFDTzudkYszYmEh1bUzxDQTgJLxi3YaPDq3mb2qKNfCvDL8qnpcgtY=
X-Received: by 2002:a17:90a:f681:: with SMTP id cl1mr961190pjb.233.1623707102251;
 Mon, 14 Jun 2021 14:45:02 -0700 (PDT)
MIME-Version: 1.0
References: <1a639af0-babe-8072-111f-b5c0a17220c5@gmail.com>
 <CADrndxM=drka_LAW58s10Fx76ye6P4R3qo+m6YtZ59FRSz2c3g@mail.gmail.com> <75cd4db6-73ee-ead8-c536-6f654109c612@gmail.com>
In-Reply-To: <75cd4db6-73ee-ead8-c536-6f654109c612@gmail.com>
From: Chris Myers <chrismyers81@gmail.com>
Date: Mon, 14 Jun 2021 16:44:51 -0500
Message-ID: <CADrndxOewT6CNtBq8Q_Vk7kgVN+oYs2mNc5a=hAe_SbYbabi0Q@mail.gmail.com>
Subject: Re: Slow Apt
To: TheBearAK <thebearak@gmail.com>
Cc: xen-users@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000000c904405c4c0c578"

--0000000000000c904405c4c0c578
Content-Type: text/plain; charset="UTF-8"

 Interesting...a wait of 10% isn't great but isn't horrible either, I
wouldn't see that as a cause of delays like that. (I recently had issues
with a "new" board that had a lot of "steal" even when basically doing
nothing, so I was curious if you were running into that too.)

Other than "apt" commands, how do other network-based tasks look?

I upgraded from Stretch to Buster a year or so ago and haven't run into
this so far.

Other than apt commands, how does everything look?



On Thu, Jun 10, 2021 at 11:32 PM TheBearAK <thebearak@gmail.com> wrote:

> Hovers around 10.5 wa and 0.2 to 0.3 in st.
>
> Top processes are vifs with a loop4 popping up to the top once in a while
> along with rcu_sched.
>
> I would guess the loop4 is the mounted disk image for the DomU.
> So, after the 'apt-get update' finished, the wa dropped to 0.4 and st
> stayed at 0.2
>
>
> On 6/10/21 4:29 PM, Chris Myers wrote:
>
> Out of curiosity, how does "top" look when it's running? Especially things
> like "wa" (IOWait) and "st" (steal)?
>
> On Thu, Jun 10, 2021 at 5:49 PM TheBearAK <thebearak@gmail.com> wrote:
>
>> First, hello.  New to the list, but I've been using Xen Hypervisor for a
>> long time.
>>
>> I'm curious if anyone else has had this issue.
>>
>> I recently upgraded a server from Debian Squeeze to Buster with kernel
>> 4.19.0-16-amd64 and found that apt/aptitude commands are slow in response.
>>
>> For example, 'apt-get update' can take 10 minutes to complete, hanging
>> up on certain parts of the downloads either at 0% or 90%.    This is
>> something that normally takes a few seconds.
>>
>> Even the DomU's suffer the same issue.
>>
>>
>> On another server I have kernel 4.19.0-14-amd64 and it seems to be
>> running just fine most of the time.  I do get some hiccups, but not
>> nearly as much as the above upgraded server.
>>
>>
>> I've also noticed that writes will sometimes pause for several seconds,
>> specially when transferring large files.
>>
>>
>> Setup:
>>
>> E3-1230 V2 @ 3.30GHz
>>
>> 16 GB RAM
>>
>> Hard drives are spinning disk.  2 TB drives (EXT4)
>>
>> DomUs are using Disk.Img for their disk.
>>
>>
>>
>
> --
> People use duct tape to fix everything....God used nails.
>
> http://www.myerscountry.net
>
>

-- 
People use duct tape to fix everything....God used nails.

http://www.myerscountry.net

--0000000000000c904405c4c0c578
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">
<div style=3D"font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb=
(23,78,134);background-color:rgb(255,255,255)">Interesting...a
 wait of 10% isn&#39;t great but isn&#39;t horrible either, I wouldn&#39;t =
see that=20
as a cause of delays like that. (I recently had issues with a &quot;new&quo=
t;=20
board that had a lot of &quot;steal&quot; even when basically doing nothing=
, so I=20
was curious if you were running into that too.)<br></div><div style=3D"font=
-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);backgr=
ound-color:rgb(255,255,255)"><br></div><div style=3D"font-family:Tahoma,Gen=
eva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color:rgb(255=
,255,255)">Other than &quot;apt&quot; commands, how do other network-based =
tasks look?</div><div style=3D"font-family:Tahoma,Geneva,sans-serif;font-si=
ze:11pt;color:rgb(23,78,134);background-color:rgb(255,255,255)"><br></div><=
div style=3D"font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(=
23,78,134);background-color:rgb(255,255,255)">I upgraded from Stretch to Bu=
ster a year or so ago and haven&#39;t run into this so far.</div><div style=
=3D"font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134=
);background-color:rgb(255,255,255)"><br></div><div style=3D"font-family:Ta=
homa,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color=
:rgb(255,255,255)">Other than apt commands, how does everything look?<br></=
div><div style=3D"font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color=
:rgb(23,78,134);background-color:rgb(255,255,255)"><br></div><div style=3D"=
font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);ba=
ckground-color:rgb(255,255,255)"><br></div>

</div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">=
On Thu, Jun 10, 2021 at 11:32 PM TheBearAK &lt;<a href=3D"mailto:thebearak@=
gmail.com">thebearak@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
 =20
   =20
 =20
  <div>
    <p>Hovers around 10.5 wa and 0.2 to 0.3 in st.</p>
    <p>Top processes are vifs with a loop4 popping up to the top once in
      a while along with rcu_sched.</p>
    <p>I would guess the loop4 is the mounted disk image for the DomU.</p>
    So, after the &#39;apt-get update&#39; finished, the wa dropped to 0.4 =
and
    st stayed at 0.2
    <div><br>
    </div>
    <div><br>
    </div>
    <div>On 6/10/21 4:29 PM, Chris Myers wrote:<br>
    </div>
    <blockquote type=3D"cite">
     =20
      <div dir=3D"ltr">Out of curiosity, how does &quot;top&quot; look when=
 it&#39;s
        running? Especially things like &quot;wa&quot; (IOWait) and &quot;s=
t&quot; (steal)?<br>
      </div>
      <br>
      <div class=3D"gmail_quote">
        <div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jun 10, 2021 at 5:49
          PM TheBearAK &lt;<a href=3D"mailto:thebearak@gmail.com" target=3D=
"_blank">thebearak@gmail.com</a>&gt;
          wrote:<br>
        </div>
        <blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex=
;border-left:1px solid rgb(204,204,204);padding-left:1ex">First,
          hello.=C2=A0 New to the list, but I&#39;ve been using Xen Hypervi=
sor
          for a <br>
          long time.<br>
          <br>
          I&#39;m curious if anyone else has had this issue.<br>
          <br>
          I recently upgraded a server from Debian Squeeze to Buster
          with kernel <br>
          4.19.0-16-amd64 and found that apt/aptitude commands are slow
          in response.<br>
          <br>
          For example, &#39;apt-get update&#39; can take 10 minutes to comp=
lete,
          hanging <br>
          up on certain parts of the downloads either at 0% or 90%.=C2=A0=
=C2=A0=C2=A0
          This is <br>
          something that normally takes a few seconds.<br>
          <br>
          Even the DomU&#39;s suffer the same issue.<br>
          <br>
          <br>
          On another server I have kernel 4.19.0-14-amd64 and it seems
          to be <br>
          running just fine most of the time.=C2=A0 I do get some hiccups,
          but not <br>
          nearly as much as the above upgraded server.<br>
          <br>
          <br>
          I&#39;ve also noticed that writes will sometimes pause for severa=
l
          seconds, <br>
          specially when transferring large files.<br>
          <br>
          <br>
          Setup:<br>
          <br>
          E3-1230 V2 @ 3.30GHz<br>
          <br>
          16 GB RAM<br>
          <br>
          Hard drives are spinning disk.=C2=A0 2 TB drives (EXT4)<br>
          <br>
          DomUs are using Disk.Img for their disk.<br>
          <br>
          <br>
        </blockquote>
      </div>
      <br clear=3D"all">
      <br>
      -- <br>
      <div dir=3D"ltr">People use duct tape to fix everything....God used
        nails.<br>
        <br>
        <a href=3D"http://www.myerscountry.net" target=3D"_blank">http://ww=
w.myerscountry.net</a></div>
    </blockquote>
  </div>

</blockquote></div><br clear=3D"all"><br>-- <br><div dir=3D"ltr" class=3D"g=
mail_signature">People use duct tape to fix everything....God used nails.<b=
r><br><a href=3D"http://www.myerscountry.net" target=3D"_blank">http://www.=
myerscountry.net</a></div>

--0000000000000c904405c4c0c578--


From xen-users-bounces@lists.xenproject.org Mon Jun 14 22:52:51 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Jun 2021 22:52:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.141826.261855 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lsvRC-0005yE-5p; Mon, 14 Jun 2021 22:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 141826.261855; Mon, 14 Jun 2021 22:52:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lsvRC-0005y6-2c; Mon, 14 Jun 2021 22:52:10 +0000
Received: by outflank-mailman (input) for mailman id 141826;
 Mon, 14 Jun 2021 22:52:09 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=veNB=LI=gmail.com=thebearak@srs-us1.protection.inumbo.net>)
 id 1lsvRB-0005y0-1T
 for xen-users@lists.xenproject.org; Mon, 14 Jun 2021 22:52:09 +0000
Received: from mail-pj1-x1033.google.com (unknown [2607:f8b0:4864:20::1033])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id ed9ec066-7f07-4fef-a1a4-6d56279903df;
 Mon, 14 Jun 2021 22:52:07 +0000 (UTC)
Received: by mail-pj1-x1033.google.com with SMTP id
 m13-20020a17090b068db02901656cc93a75so551631pjz.3
 for <xen-users@lists.xenproject.org>; Mon, 14 Jun 2021 15:52:07 -0700 (PDT)
Received: from vibe.barkdullak.us (29-121-237-24.static.gci.net.
 [24.237.121.29])
 by smtp.gmail.com with ESMTPSA id y34sm13210530pfa.181.2021.06.14.15.52.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Jun 2021 15:52:05 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: ed9ec066-7f07-4fef-a1a4-6d56279903df
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=subject:to:cc:references:from:message-id:date:user-agent
         :mime-version:in-reply-to:content-language;
        bh=ThEcdrMHkK/RtyFk9qE5zNDXIfb9clNLW9EE5/5k/T4=;
        b=rpPXTW2KMYo+Us84GLiQizICJZ0DL3vzBEtTe3lSy8izaNcIBOV3TOa99daunIbxlA
         w1AR/HkIByrb6KZqmbCUrBKSsGUM5JLe27sUyaoo6U4ouO63tttMkYl65jixdtoIRGaO
         eMV26KMo9NowxF8RNSIcHV9MlI/xNmNfcND8oKVIbQ19EIl1ZFDi7Rcset99DyuAoMYL
         ydt8y4Id9rIi+c5Uym7gA+zYsfTxB1YvWbWECBCAsCto6a2YXittbz+7uh533Lc05W+S
         C8fZ8nUHRK43+KrAtH1kEdeN9MaJFcSgLOPkL5Stmo2G85BUDKlyOQM40M7+SLf1UfrD
         PNRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:subject:to:cc:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language;
        bh=ThEcdrMHkK/RtyFk9qE5zNDXIfb9clNLW9EE5/5k/T4=;
        b=eaC9wdeFy6E5Zi4nyCAbEU2GV6l9Ew1wf72iYFjP1OMOFiIZRtQMoGWECC7vQYVUM2
         IqoQ0oLhHXK9Iem30lcLQt7LOjnB+600V0h3nkdoE8Pueokl7fUr4qFCPQJcgq4WUC4t
         L2XUSmAMDaxAdePSYMuhxsFK85Z5HHicmHM9qSe2uBbsB73F2s8Nysbmm3gWYffHyvZi
         3iR0WihpOvGGfPr9qolDmYYxSGdkyD/O2d6fM+MZooSbfo6IlBC917CkTZcZzeFw/aMi
         3zMeWlFinXdp5ET2ZLleGppr8cTRQKNg4MgppP79w7ljBvBv1JQ9Ks+M1eNY1ReBpA6k
         bK5w==
X-Gm-Message-State: AOAM531B6jHxQ7Z9Rq2PSP660GqlAhPRp9QrSLCE/ZW5dY2YHUNwjb3e
	n/bCf7zw9QZ+ayHybyh8JwjVe7DoTfs=
X-Google-Smtp-Source: ABdhPJznXACb2EEkM6QxEFN3bKeb2ujzrLjPOTEBdxvgtOHmMJD9m2CaPovyC6T627r+Mtsj0Eximw==
X-Received: by 2002:a17:90a:4e4a:: with SMTP id t10mr21713143pjl.173.1623711126550;
        Mon, 14 Jun 2021 15:52:06 -0700 (PDT)
Subject: Re: Slow Apt
To: Chris Myers <chrismyers81@gmail.com>
Cc: xen-users@lists.xenproject.org
References: <1a639af0-babe-8072-111f-b5c0a17220c5@gmail.com>
 <CADrndxM=drka_LAW58s10Fx76ye6P4R3qo+m6YtZ59FRSz2c3g@mail.gmail.com>
 <75cd4db6-73ee-ead8-c536-6f654109c612@gmail.com>
 <CADrndxOewT6CNtBq8Q_Vk7kgVN+oYs2mNc5a=hAe_SbYbabi0Q@mail.gmail.com>
From: TheBearAK <thebearak@gmail.com>
Message-ID: <b079b19c-0816-daf4-bf6b-a323a6b9ed55@gmail.com>
Date: Mon, 14 Jun 2021 14:52:03 -0800
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.11.0
MIME-Version: 1.0
In-Reply-To: <CADrndxOewT6CNtBq8Q_Vk7kgVN+oYs2mNc5a=hAe_SbYbabi0Q@mail.gmail.com>
Content-Type: multipart/alternative;
 boundary="------------F0219303BACDF6DBE7B409F0"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------F0219303BACDF6DBE7B409F0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Other networking is mostly perfect.   Once in a while I'll get a spot 
where it is uploading or downloading and it pauses for a sec or two.   
Other than apt, everything seems to run normal speed.

I do have one DomU that runs fast except when it serves web pages, but I 
think that is a different issue.  The web pages are being built from a 
database and I think the database performance is slow.   Its working, so 
I put that on the back-burner for now.

Only 3 DomU's running on this server and they are <1% busy at any given 
time.


I've seen this happen at least 3 other times with Buster and Apt on Xen.





On 6/14/21 1:44 PM, Chris Myers wrote:
> Interesting...a wait of 10% isn't great but isn't horrible either, I 
> wouldn't see that as a cause of delays like that. (I recently had 
> issues with a "new" board that had a lot of "steal" even when 
> basically doing nothing, so I was curious if you were running into 
> that too.)
>
> Other than "apt" commands, how do other network-based tasks look?
>
> I upgraded from Stretch to Buster a year or so ago and haven't run 
> into this so far.
>
> Other than apt commands, how does everything look?
>
>
>
> On Thu, Jun 10, 2021 at 11:32 PM TheBearAK <thebearak@gmail.com 
> <mailto:thebearak@gmail.com>> wrote:
>
>     Hovers around 10.5 wa and 0.2 to 0.3 in st.
>
>     Top processes are vifs with a loop4 popping up to the top once in
>     a while along with rcu_sched.
>
>     I would guess the loop4 is the mounted disk image for the DomU.
>
>     So, after the 'apt-get update' finished, the wa dropped to 0.4 and
>     st stayed at 0.2
>
>
>     On 6/10/21 4:29 PM, Chris Myers wrote:
>>     Out of curiosity, how does "top" look when it's running?
>>     Especially things like "wa" (IOWait) and "st" (steal)?
>>
>>     On Thu, Jun 10, 2021 at 5:49 PM TheBearAK <thebearak@gmail.com
>>     <mailto:thebearak@gmail.com>> wrote:
>>
>>         First, hello.  New to the list, but I've been using Xen
>>         Hypervisor for a
>>         long time.
>>
>>         I'm curious if anyone else has had this issue.
>>
>>         I recently upgraded a server from Debian Squeeze to Buster
>>         with kernel
>>         4.19.0-16-amd64 and found that apt/aptitude commands are slow
>>         in response.
>>
>>         For example, 'apt-get update' can take 10 minutes to
>>         complete, hanging
>>         up on certain parts of the downloads either at 0% or 90%.   
>>         This is
>>         something that normally takes a few seconds.
>>
>>         Even the DomU's suffer the same issue.
>>
>>
>>         On another server I have kernel 4.19.0-14-amd64 and it seems
>>         to be
>>         running just fine most of the time.  I do get some hiccups,
>>         but not
>>         nearly as much as the above upgraded server.
>>
>>
>>         I've also noticed that writes will sometimes pause for
>>         several seconds,
>>         specially when transferring large files.
>>
>>
>>         Setup:
>>
>>         E3-1230 V2 @ 3.30GHz
>>
>>         16 GB RAM
>>
>>         Hard drives are spinning disk.  2 TB drives (EXT4)
>>
>>         DomUs are using Disk.Img for their disk.
>>
>>
>>
>>
>>     -- 
>>     People use duct tape to fix everything....God used nails.
>>
>>     http://www.myerscountry.net <http://www.myerscountry.net>
>
>
>
> -- 
> People use duct tape to fix everything....God used nails.
>
> http://www.myerscountry.net <http://www.myerscountry.net>

--------------F0219303BACDF6DBE7B409F0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Other networking is mostly perfect.   Once in a while I'll get a
      spot where it is uploading or downloading and it pauses for a sec
      or two.   Other than apt, everything seems to run normal speed.</p>
    <p>I do have one DomU that runs fast except when it serves web
      pages, but I think that is a different issue.  The web pages are
      being built from a database and I think the database performance
      is slow.   Its working, so I put that on the back-burner for now.</p>
    <p>Only 3 DomU's running on this server and they are &lt;1% busy at
      any given time.<br>
    </p>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">I've seen this happen at least 3 other
      times with Buster and Apt on Xen.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 6/14/21 1:44 PM, Chris Myers wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CADrndxOewT6CNtBq8Q_Vk7kgVN+oYs2mNc5a=hAe_SbYbabi0Q@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div
style="font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color:rgb(255,255,255)">Interesting...a
          wait of 10% isn't great but isn't horrible either, I wouldn't
          see that as a cause of delays like that. (I recently had
          issues with a "new" board that had a lot of "steal" even when
          basically doing nothing, so I was curious if you were running
          into that too.)<br>
        </div>
        <div
style="font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color:rgb(255,255,255)"><br>
        </div>
        <div
style="font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color:rgb(255,255,255)">Other
          than "apt" commands, how do other network-based tasks look?</div>
        <div
style="font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color:rgb(255,255,255)"><br>
        </div>
        <div
style="font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color:rgb(255,255,255)">I
          upgraded from Stretch to Buster a year or so ago and haven't
          run into this so far.</div>
        <div
style="font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color:rgb(255,255,255)"><br>
        </div>
        <div
style="font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color:rgb(255,255,255)">Other
          than apt commands, how does everything look?<br>
        </div>
        <div
style="font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color:rgb(255,255,255)"><br>
        </div>
        <div
style="font-family:Tahoma,Geneva,sans-serif;font-size:11pt;color:rgb(23,78,134);background-color:rgb(255,255,255)"><br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Thu, Jun 10, 2021 at 11:32
          PM TheBearAK &lt;<a href="mailto:thebearak@gmail.com"
            moz-do-not-send="true">thebearak@gmail.com</a>&gt; wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div>
            <p>Hovers around 10.5 wa and 0.2 to 0.3 in st.</p>
            <p>Top processes are vifs with a loop4 popping up to the top
              once in a while along with rcu_sched.</p>
            <p>I would guess the loop4 is the mounted disk image for the
              DomU.</p>
            So, after the 'apt-get update' finished, the wa dropped to
            0.4 and st stayed at 0.2
            <div><br>
            </div>
            <div><br>
            </div>
            <div>On 6/10/21 4:29 PM, Chris Myers wrote:<br>
            </div>
            <blockquote type="cite">
              <div dir="ltr">Out of curiosity, how does "top" look when
                it's running? Especially things like "wa" (IOWait) and
                "st" (steal)?<br>
              </div>
              <br>
              <div class="gmail_quote">
                <div dir="ltr" class="gmail_attr">On Thu, Jun 10, 2021
                  at 5:49 PM TheBearAK &lt;<a
                    href="mailto:thebearak@gmail.com" target="_blank"
                    moz-do-not-send="true">thebearak@gmail.com</a>&gt;
                  wrote:<br>
                </div>
                <blockquote class="gmail_quote" style="margin:0px 0px
                  0px 0.8ex;border-left:1px solid
                  rgb(204,204,204);padding-left:1ex">First, hello.  New
                  to the list, but I've been using Xen Hypervisor for a
                  <br>
                  long time.<br>
                  <br>
                  I'm curious if anyone else has had this issue.<br>
                  <br>
                  I recently upgraded a server from Debian Squeeze to
                  Buster with kernel <br>
                  4.19.0-16-amd64 and found that apt/aptitude commands
                  are slow in response.<br>
                  <br>
                  For example, 'apt-get update' can take 10 minutes to
                  complete, hanging <br>
                  up on certain parts of the downloads either at 0% or
                  90%.    This is <br>
                  something that normally takes a few seconds.<br>
                  <br>
                  Even the DomU's suffer the same issue.<br>
                  <br>
                  <br>
                  On another server I have kernel 4.19.0-14-amd64 and it
                  seems to be <br>
                  running just fine most of the time.  I do get some
                  hiccups, but not <br>
                  nearly as much as the above upgraded server.<br>
                  <br>
                  <br>
                  I've also noticed that writes will sometimes pause for
                  several seconds, <br>
                  specially when transferring large files.<br>
                  <br>
                  <br>
                  Setup:<br>
                  <br>
                  E3-1230 V2 @ 3.30GHz<br>
                  <br>
                  16 GB RAM<br>
                  <br>
                  Hard drives are spinning disk.  2 TB drives (EXT4)<br>
                  <br>
                  DomUs are using Disk.Img for their disk.<br>
                  <br>
                  <br>
                </blockquote>
              </div>
              <br clear="all">
              <br>
              -- <br>
              <div dir="ltr">People use duct tape to fix
                everything....God used nails.<br>
                <br>
                <a href="http://www.myerscountry.net" target="_blank"
                  moz-do-not-send="true">http://www.myerscountry.net</a></div>
            </blockquote>
          </div>
        </blockquote>
      </div>
      <br clear="all">
      <br>
      -- <br>
      <div dir="ltr" class="gmail_signature">People use duct tape to fix
        everything....God used nails.<br>
        <br>
        <a href="http://www.myerscountry.net" target="_blank"
          moz-do-not-send="true">http://www.myerscountry.net</a></div>
    </blockquote>
  </body>
</html>

--------------F0219303BACDF6DBE7B409F0--


From xen-users-bounces@lists.xenproject.org Tue Jun 15 16:28:31 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Jun 2021 16:28:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.142300.262612 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltBuo-0004Zy-HB; Tue, 15 Jun 2021 16:27:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 142300.262612; Tue, 15 Jun 2021 16:27:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltBuo-0004Zr-DA; Tue, 15 Jun 2021 16:27:50 +0000
Received: by outflank-mailman (input) for mailman id 142300;
 Tue, 15 Jun 2021 16:27:49 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ul8D=LJ=evoleotech.com=prem.harikrishnan@srs-us1.protection.inumbo.net>)
 id 1ltBun-0004Zc-A7
 for xen-users@lists.xenproject.org; Tue, 15 Jun 2021 16:27:49 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com (unknown
 [2a01:111:f400:7d00::71c])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 599253fc-725d-4685-94e5-7da1337e7907;
 Tue, 15 Jun 2021 16:27:44 +0000 (UTC)
Received: from VI1PR05MB4430.eurprd05.prod.outlook.com (2603:10a6:803:46::26)
 by VI1PR0501MB2415.eurprd05.prod.outlook.com (2603:10a6:800:63::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.22; Tue, 15 Jun
 2021 16:27:40 +0000
Received: from VI1PR05MB4430.eurprd05.prod.outlook.com
 ([fe80::ed7b:e5f9:618a:3eea]) by VI1PR05MB4430.eurprd05.prod.outlook.com
 ([fe80::ed7b:e5f9:618a:3eea%3]) with mapi id 15.20.4219.025; Tue, 15 Jun 2021
 16:27:40 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 599253fc-725d-4685-94e5-7da1337e7907
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NoTpGgTKzt+5UgPc/ITmeNCuZHVDIFwE2+iBuoCQ+sa3OF/CNGgscuynl7nkQcht/Qr8l9Eg4oA5BR8tZz5u7U99Y8yuf+qdUTVWRwMkKZtSEf3flLwGZcotYEMAjst0BJ9JYs5by8jpNHpxDlaANGdDcPedXvJln6PCfmvrZErnlvkQCvzEPS9UuyPMh4WdUB+V+h9F9TJpIhEXg47g7kZ71qu6NZZgYGF58i9prwVKBE0Qkb006lwIY5WUGeMwBvxxq953e0wcVLNNvaUBXOX18WGtZHwC33LrgAmFYywChrTRyZrl6Ai9dYcUaAGhydGKnyfgQX4QYwnRdmTHBA==
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-SenderADCheck;
 bh=L4xS5MlrmcBM5g2GdBdl4nI8D1MRdcN8dmwGQCaVMG0=;
 b=AIHJEHXhz9s1lmZFUQXebwH7krwkorTbGziq21UtsP+CB2K7gzoQzWw53fAlXtBpTbDRmWFDeiooVucoA8MenxpPd3wULoxM/eX9EXsMiClpdK6B546gBvWWhYSb6x4/o1COxPD7u4+xer9uobnY8F3fGR2+qjtf1Arw6EUUG+Mh1ZqtNBF/5glMGm91LmW1wNeO/oexkd8uYs0/6YmRz8nkjIGkpK8Mjswpd1DG73XpQcz5TptMUHFDpItY62NNdqcesb5ypaRKGGkE3MRu5sX6vjJX01+NFBwa5lAZmeJfwnZeBNR5vqlAtsOujuMLitzhofAhPob16JFSBKXIEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=evoleotech.com; dmarc=pass action=none
 header.from=evoleotech.com; dkim=pass header.d=evoleotech.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=evoleotechnologies.onmicrosoft.com;
 s=selector2-evoleotechnologies-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L4xS5MlrmcBM5g2GdBdl4nI8D1MRdcN8dmwGQCaVMG0=;
 b=hjhJChIffn1a/Dm8jL063VfPU4T5lcD8gQ2kx9wYWNuGVscesM8sJcMcMmZhjaWe+OUu5d4MgdqrJ43hZmnN7t1SOBzekf69W3XtBKsNt8ZaMHl4ros35Rkgu/zlng8eQG1xV7VtxD4KEQp2Ew5sPn/DER2BoNcZRj0VBCbOFgc=
From: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
To: Stefano Stabellini <stefanos@xilinx.com>
CC: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>
Subject: Re: Help: Information required for AXI DMA passthrough for PL masters
 in ZCU102 dev kit
Thread-Topic: Help: Information required for AXI DMA passthrough for PL
 masters in ZCU102 dev kit
Thread-Index:
 AQHXOqMAPewhx/0ZVE2fbco7T/GOXKrdFmqAgACD+ICABAVYgIABrlVrgABJdgCAAATIt4AADpaAgARL642AAI9eAIABDuwsgAAXkYCADm9DhoAAJeiAgADiys+AAEjyAIAE2MzdgABzowCAAM/6LoAWBmGY
Date: Tue, 15 Jun 2021 16:27:40 +0000
Message-ID:
 <VI1PR05MB44303184209DF3F6215FFF3E89309@VI1PR05MB4430.eurprd05.prod.outlook.com>
References:
 <VI1PR05MB4430D5035127951DEC282E5189429@VI1PR05MB4430.eurprd05.prod.outlook.com>
 <VI1PR05MB44301EF272123606BA726C4989509@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105141402210.14426@sstabellini-ThinkPad-T480s>
 <DB7PR05MB4428427AC94C07C59D139FA489509@DB7PR05MB4428.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105141509220.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430B2C2C3FAC23D77021605892D9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105171729480.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB44301C4198B1E9EF7FD8864A892C9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105181109020.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430F091D37D614EFAD15C6E89239@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105271745210.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB443063BF7A7C514C1C9C37C489229@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105281140360.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430B62D7D79E47B784FA34C893F9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9@BYAPR02MB4278.namprd02.prod.outlook.com>,<VI1PR05MB44308D16502AA518E05B210C893E9@VI1PR05MB4430.eurprd05.prod.outlook.com>
In-Reply-To:
 <VI1PR05MB44308D16502AA518E05B210C893E9@VI1PR05MB4430.eurprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: xilinx.com; dkim=none (message not signed)
 header.d=none;xilinx.com; dmarc=none action=none header.from=evoleotech.com;
x-originating-ip: [80.81.14.67]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: e79d841f-8d9b-4280-b4b9-08d9301a7f0f
x-ms-traffictypediagnostic: VI1PR0501MB2415:
x-microsoft-antispam-prvs:
 <VI1PR0501MB2415F4128E55D4BB06D760FF89309@VI1PR0501MB2415.eurprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:1060;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 xg5FVfj/bBRzeiRXuJ5Y2b6WczbPJSTyzLI3uyGZF3aXUctIsQagt6v/CvhSRucuQ6KRqwgJZr0xPplannW/llu0aKFA/jlFMFdISwS4zZjlncJRg6qq6e5IoKYJ+gBU/cZJMPRomAL1ChQeybz/Sh4PMCAHyFJ3UYtEPYwREPS1xBPU9nzPxLOXhkMGM1V51llYZyQF9lRr6YygpzCXpPE7Sp6USrwliHb4jdBDykZXXdkH6ZF0QsZmv770MiTrG+ls573YvXURAwX8WkeB43Nf44a2E1ATER4u/Ud7zAC9KGZ5ATvgJfecWW5v0KphhIs6ByWmAKUzZXHROZ8zIyqN1uHODSwK/beJcs0R11c70DpCINzPmMwm6zfb1kWW/hnZC8kL/f72VcFmRIf1DVRLZH1ZiG5bjdIwOUMKKWoCViUVkWiFb+9qPfPH85U5b069jpyNkRCHjrYeFio+7Ldbw28ochkcNt4cWRYSxmDd608wMECdnmgAPHH58HP/LeL71gO29B/PRPvcFUDorK4kGZ1zgrVSmxdMHu4Jin9uODEoeSpV0T1a0fPClJ+CE2maDtOkz2jOYYLCEkJLXNpZuEN0jX3IU3+aFDhzCzhD4GFS+Qxc0lVrFLtDCDPmJPVLbd6Bbuy79EyU/bE811fuZR2DKiI7HE7qJUzrVNjSCd+tu1w4FPLyH8HWgwAkCQzJQiLq6Vuh8lrEIY3BgnD8OYMlwi6Jm1ltn5R3eOMnVUGCxpLgsO56ul571dZbzf8ecqnW1dq3RTCZ6eHB4Q==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR05MB4430.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(396003)(346002)(136003)(366004)(376002)(39830400003)(45080400002)(166002)(19627405001)(19627235002)(8676002)(8936002)(316002)(53546011)(86362001)(6506007)(7696005)(83380400001)(21615005)(186003)(55016002)(26005)(38100700002)(30864003)(2906002)(122000001)(66476007)(66946007)(66446008)(64756008)(9686003)(66556008)(52536014)(33656002)(5660300002)(966005)(4326008)(478600001)(6916009)(71200400001)(44832011)(76116006)(91956017)(559001)(579004)(139555002);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?AmXjlMPkHJt+BHRlOq9U4GZESi1RkGgI6MSwhVyOlyZ7ejYF9gnCJpsBypcg?=
 =?us-ascii?Q?jjZkaPtBKh1wmgI9falD28Sm9C7u9Y2bwVna9rhLk0pS/zbSZqvVPxmbqqvf?=
 =?us-ascii?Q?6khRphPuzEqBJL7n+iKOb5gZdEchiOKgRLp4Ho8NB1GcOn5PsvjzTM7m4rOA?=
 =?us-ascii?Q?ra3NLMwxjlzwiMbsKC89uwo89zEp4Ymt32WVQ+Lt4YEZ5Oc82joykXPcypeH?=
 =?us-ascii?Q?yjFaWMhQygEfbdjfcc8gn65uMhE7IbJ/1WEQMYfqwamWfC0kZa9x/c0ICPwX?=
 =?us-ascii?Q?kzIAzOV475qOISMNuyYtkz4vRScVUT4UfvqmOPntUaFF7GovaOF+q5m2N4Zb?=
 =?us-ascii?Q?O36gGSlSiGMSkUSgeJ5pYe7FfPlEMc8c68c/T95fRkkFvrgY1qnwebOCfRN7?=
 =?us-ascii?Q?yNrCIf8Yaytp3wUG7LDKXlzQt3tqKrv3gjidb43DQDs7whtw9nvtUag+1XHm?=
 =?us-ascii?Q?swbt8LqsMzs380Gwu+gjKxj7j51vyK3XivWfEb7cZ3tes/2UKBNSm7cNdajn?=
 =?us-ascii?Q?WSLxV0bXS5OduIjPGjmAsICEVW+8B7AT0SaojQ2dh/lRwD9QX+voej9sJcVf?=
 =?us-ascii?Q?8/SlQZ89CNWwgLIFvlk+SUCweNo+uOd1w2WAGEM5tUQqQr8KjPzskiKlERsF?=
 =?us-ascii?Q?6dvl+5glAZuZItMVDq2PrKd+XjewE7cZ2HhIKglJqj1e0bOoowBeR/OZ9gVJ?=
 =?us-ascii?Q?DUO5jP3/DtuXpHjCdDTA03vWPM5IM1zTrE840xDBP0gXwBca7WlhYElz2mrC?=
 =?us-ascii?Q?v15INAu5zqlE69Gi6SLIpREi2yn/EIlvNpIeHNpCxK2yGntJcKFlS6ogArTh?=
 =?us-ascii?Q?pl0UCTizH9/nm8lnIg29AAgqO42Wa07ll0LbyYu5wzGQk0ld/DohgK4rLce+?=
 =?us-ascii?Q?1wK+QbWTYLBVzlzmy06Om/p8HXUrZoIemMfNfXZ6q+fenQcgWah7l0jSmT0z?=
 =?us-ascii?Q?/jvBfVRAU4ifwwhrXwsMtnv2lgVCSX+I3X6TpY/OZefb+bD+rmB0T9k7yNUh?=
 =?us-ascii?Q?1EsA7X70R31F1q/0EHvSGrj8yoOvK8WmQjtuiHLuF//xyOdjlt2pWDEaYxOj?=
 =?us-ascii?Q?3eQtMHJrQJYvrjeHkH423ouZFCo5CNZNUVf70525/dL04P7adXe6wWlLLUjm?=
 =?us-ascii?Q?3mB9CzOltB2eSxbBJ+TDbX17+HPRsEhzlhPhx3wE70OArjg7CJ04SoQLXVYG?=
 =?us-ascii?Q?IJ467QfxrlPJHgdg1khH8KpWjHnZXdokdz4Vj+lIQ4kiSvHZ8h90MEI+173D?=
 =?us-ascii?Q?I7ZawmbVLp7vUBLBeRjSWwhqV0iHCjW4D5w50gl68dfWb4OHxJBlNIR2O5uY?=
 =?us-ascii?Q?2HY=3D?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative;
	boundary="_000_VI1PR05MB44303184209DF3F6215FFF3E89309VI1PR05MB4430eurp_"
MIME-Version: 1.0
X-OriginatorOrg: evoleotech.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR05MB4430.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e79d841f-8d9b-4280-b4b9-08d9301a7f0f
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jun 2021 16:27:40.7984
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 34ebafdc-9323-4bfe-8f24-6bb9f135b0a9
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: al8URlGVvOXh6paBTPNlRQmkVg3KVdbFMtJChzDn1ukxRNVHIxAhvRw1W2Lp1sL9YFnd2dNltzhK9DWI/e3klUKqKURd5HUVGTQMt4GsCqFDfUfcDq2zyOT4CpTN/Y8A
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2415

--_000_VI1PR05MB44303184209DF3F6215FFF3E89309VI1PR05MB4430eurp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Stefano,

Is it possible to boot XEN from QSPI? Is there an image builder script alre=
ady available to generate boot.scr? Please let me know.
Thanks and Best Regards,
Prem

________________________________
From: Xen-users <xen-users-bounces@lists.xenproject.org> on behalf of Prem =
Harikrishnan <prem.harikrishnan@evoleotech.com>
Sent: Tuesday, June 1, 2021 18:07
To: Mubin Usman Sayyed <MUBINUSM@xilinx.com>; Stefano Stabellini <stefanos@=
xilinx.com>
Cc: xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; Jovita=
 Castelino <JOVITAC@xilinx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit

Hi Stefano and Mubin,

Thank you very much for helping me setup up FreeRTOS and baremetal guests, =
everything works as expected and I also get expected performance in both ba=
remetal and hypervisor guests. Thank you again for your prompt support duri=
ng the past few weeks.

Best Regrards,
Prem
________________________________
From: Mubin Usman Sayyed <MUBINUSM@xilinx.com>
Sent: Tuesday, June 1, 2021 05:38
To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>; Stefano Stabellin=
i <stefanos@xilinx.com>
Cc: xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; Jovita=
 Castelino <JOVITAC@xilinx.com>
Subject: RE: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit


In case of FreeRTOS,  you need to use APIs from FreeRTOS port for interrupt=
 handling  (https://github.com/Xilinx/embeddedsw/blob/master/ThirdParty/bsp=
/freertos10_xilinx/examples/freertos_intr_example.c#L192 and line 194). Ple=
ase make sure that you are taking care of that in DMA interrupt example .



Thanks,

Mubin



From: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
Sent: Tuesday, June 1, 2021 2:48 AM
To: Stefano Stabellini <stefanos@xilinx.com>
Cc: xen-users@lists.xenproject.org; Jovita Castelino <JOVITAC@xilinx.com>; =
Mubin Usman Sayyed <MUBINUSM@xilinx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit





Hi Stefano and Mubin,

Thank you very much for your replies.

@Stefano Stabellini<mailto:stefano.stabellini@xilinx.com> Sorry to bother y=
ou again, and thank you for pointing this out, the TTC0 is by default enabl=
ed for FreeRTOS to generate ticks, although this says only for R5 core, i w=
ould have never figured this out. As soon as I added the irqs and iomem and=
 gave a xen passthrough in the xen.dtsi as you have suggested, FreeRTOS gue=
st started working for other peripherals except for my DMA (FreeRTOS guest =
does not work with interrupt and DMA).



I can see my DMA is enabled because i have LEDs configured to blink for eve=
ry interrupt I get from the PL. I don't see my interrupts being processed, =
but when I destroy the guest, I get this output periodically when an interr=
upt occurs.



(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000

(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000

(XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
(XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR=
1 0x00000e80, GFSYNR2 0x00000000



>From section 3.6 of the wiki https://xilinx-wiki.atlassian.net/wiki/spaces/=
A/pages/18842066/Xen+and+PL+Masters

Xen and PL Masters - Xilinx Wiki - Confluence<https://xilinx-wiki.atlassian=
.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters>

3.4 Stream IDs in the Device Tree. For Xen based systems the stream IDs of =
PL masters must be added to the Linux Dom0 device tree. Automated device tr=
ee generation does not generate the stream IDs for the PL masters so that t=
he user must add them into the device tree manually.

xilinx-wiki.atlassian.net

The fault indicates an unidentified stream ID has been received by the SMMU=
 as shown in the GFSR register. The GFSYNR1 register contains the stream ID=
 that was unidentified. A stream ID of 0xE80 was unidentified in the above =
fault.



But I think i have already added that in my smmu and iommu in xen.dtsi beca=
use my baremetal application works well as expected. I have attached my xen=
.dtsi, system.dtsi, baremetal.cfg(working) and freertos.cfg(not working).

What could I be missing here? Do I have to enable the ttc0 in the device tr=
ee?

Also what does (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq: =
99990 KHz mean when XEN boots up?

Thanks, I look forward for your reply.



Best Regards,

Prem





________________________________

From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.stab=
ellini@xilinx.com>>
Sent: Friday, May 28, 2021 20:43
To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.harikri=
shnan@evoleotech.com>>
Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.stabel=
lini@xilinx.com>>; xen-users@lists.xenproject.org<mailto:xen-users@lists.xe=
nproject.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xenpro=
ject.org>>; JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com> <JOVITAC@xilinx.c=
om<mailto:JOVITAC@xilinx.com>>; MUBINUSM@xilinx.com<mailto:MUBINUSM@xilinx.=
com> <MUBINUSM@xilinx.com<mailto:MUBINUSM@xilinx.com>>
Subject: Re: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit



>From the gpa address, it looks like FreeRTOS is trying to access the TTC
timer? If you look at device tree, the corresponding node is
timer@ff110000.

If FreeRTOS is configured to access the TTC timer, then you need to
assign it to it. Did you assign the TTC timer to the FreeRTOS domU by
any chance?

You can do that by adding:

irqs =3D [ 68, 69, 70 ]
iomem =3D [ "0xff110,1" ]


On Fri, 28 May 2021, Prem Harikrishnan wrote:
> Hi Stefano,
> Thanks for your reply. I am pretty sure I followed the steps you mentione=
d below to run the FreeRTOS hello world example. I already added
> printfs and i can see XEN cannot start the scheduler and i get the follow=
ing out put on XEN.
>
> Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]
> (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D2 memfl=
ags=3D0xc0 (0 of 64)
> (XEN) memory_map:add: dom2 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0
> (XEN) sched_null.c:344: 1 <-- d2v0
> (XEN) traps.c:1973:d2v0 HSR=3D0x93820007 pc=3D0x00000040012b08 gva=3D0xff=
11000c gpa=3D0x000000ff11000c
>
>
> I also see that according to this article
> https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as=
-a-Xen-Virtual-Machine/ba-p/947030
> [52662iFAD1733707609204?v=3Dv2]
> Partner: FreeRTOS as a Xen Virtual Machine - Community Forums
> Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks Wh=
at is FreeRTOS? The FreeRTOS kernel is a market leading real-time
> operating system for embedded systems. As embedded applications grow in c=
omplexity, there is a growing need for a lightweight kernel
> capable of task scheduling...
> forums.xilinx.com
> FreeRTOS does not run out of the box for XEN, although the article is 2 y=
ears old, I am not sure if there are any updates on this after
> that. Can you please confirm?
>
> Thanks and Best Regards,
> Prem
>
> _________________________________________________________________________=
__________________________________________________________________
> From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.st=
abellini@xilinx.com>>
> Sent: Friday, May 28, 2021 02:51
> To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.harik=
rishnan@evoleotech.com>>
> Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.stab=
ellini@xilinx.com>>; xen-users@lists.xenproject.org<mailto:xen-users@lists.=
xenproject.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xenp=
roject.org>>; JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>
> <JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>>; MUBINUSM@xilinx.com<mail=
to:MUBINUSM@xilinx.com> <MUBINUSM@xilinx.com<mailto:MUBINUSM@xilinx.com>>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL ma=
sters in ZCU102 dev kit
> +Mubin
>
>
> Hi Prem,
>
> Did you make sure to build FreeRTOS as "hypervisor guest"? I think
> FreeRTOS is built to run at EL3 by default so if that is not changed
> there are errors when run on any hypervisor. It is possible to build
> FreeRTOS to run on Xen but it requires a couple of manual steps:
>
> - source settings64.sh from Vitis builds
> - xsct
> - set WORKSPACE .
> - setws -switch $WORKSPACE
> - app create -name freertos-hello-world -template {FreeRTOS Hello World} =
-proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx
> - bsp config stdin psu_uart_1
> - bsp config stdout psu_uart_1
> - bsp config hypervisor_guest true
> - Go to application source path and modify the linker script start addres=
s to 0x40000000,
> - app build -name freertos-hello-world
> - Run command to generate BIN file from executable "aarch64-linux-gnu-obj=
copy -O binary --gap-fill 0  <elf path> BOOT.BIN"
>
> The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,
> might be able to provide additional info.
>
>
>
> On Thu, 27 May 2021, Prem Harikrishnan wrote:
> > Hi Stefano,
> > Sorry to bother you again.
> > I am currently trying to run my custom IP which sends periodic dma inte=
rrupts to the PS with cache coloring enabled. I have now compiled
> my
> > guest running with FreeRTOS and it generates a trap.
> > Petalinux and VITIS IDE Version is 2020.2.
> >
> > Please find the log attached. After the trap occurs, for every interrup=
t XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context fault:
> > fsr=3D0x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1
> >
> > root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing config fro=
m apu_freertos.cfg
> > (XEN) Dom1 colors: [ 8 ]
> > (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D1 mem=
flags=3D0xc0 (0 of 64)
> > (XEN) memory_map:add: dom1 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0
> > (XEN) memory_map:add: dom1 gfn=3Da0010 mfn=3Da0010 nr=3D1 cache=3D0
> > (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000
> > (XEN) sched_null.c:344: 1 <-- d1v0
> > (XEN) traps.c:1973:d1v0 HSR=3D0x93820007 pc=3D0x00000040013188 gva=3D0x=
ff11000c gpa=3D0x000000ff11000c
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0x41000000, fsynr=3D0x12, cb=3D1
> >
> > The same application works as expected without FreeRTOS, i.e as a barem=
etal guest. I look forward for your comment on this.
> >
> > Although i see performance degradation, normally i can measure delta ti=
me for each interrupt configured to 1ms (without XEN), with XEN
> for
> > the same measurement shows 16 ms for each interval (but the performance=
 is not a priority for now).
> > Thanks and Best Regards,
> > Prem
> >
> >________________________________________________________________________=
__________________________________________________________________
> _
> > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.=
stabellini@xilinx.com>>
> > Sent: Tuesday, May 18, 2021 20:09
> > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.har=
ikrishnan@evoleotech.com>>
> > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.st=
abellini@xilinx.com>>; xen-users@lists.xenproject.org<mailto:xen-users@list=
s.xenproject.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xe=
nproject.org>>;
> JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>
> > <JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>>
> > Subject: Re: Help: Information required for AXI DMA passthrough for PL =
masters in ZCU102 dev kit
> > Great to hear! Thank you for reporting back.
> >
> >
> > On Tue, 18 May 2021, Prem Harikrishnan wrote:
> > > Dear Stefano,
> > > Thank you very much for your guidance and support. I finally fixed th=
e issue. I made an error in base memory address like you pointed
> > out.
> > > I actually modified the base address correctly to 0x40000000 but the =
default C code had an additional offset of 0x1100000 , and the
> DomU
> > > memory allocated was only 8MB. I either had to change the offset or a=
llocate more memory to the DomU guest which i missed until you
> > pointed
> > > out. Additionally i had to set to AxPROT bits to 0x2 in Vivado and th=
e SMID required is 0xE80.
> > >
> > > Thanks again i was able get my custom IP also working as an AXI maste=
r from PL.
> > >
> > > Best Regards,
> > > Prem
> > >
> >>_______________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefan=
o.stabellini@xilinx.com>>
> > > Sent: Tuesday, May 18, 2021 02:35
> > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.h=
arikrishnan@evoleotech.com>>
> > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefano.=
stabellini@xilinx.com>>; Brian Woods <brian.woods@xilinx.com<mailto:brian.w=
oods@xilinx.com>>; Julien Grall <julien@xen.org<mailto:julien@xen.org>>; St=
efano
> > > Stabellini <sstabellini@kernel.org<mailto:sstabellini@kernel.org>>; x=
en-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org> <xen-u=
sers@lists.xenproject.org<mailto:xen-users@lists.xenproject.org>>; fnuv@xil=
inx.com<mailto:fnuv@xilinx.com>
> <fnuv@xilinx.com<mailto:fnuv@xilinx.com>>;
> > > edgari@xilinx.com<mailto:edgari@xilinx.com> <edgari@xilinx.com<mailto=
:edgari@xilinx.com>>; bwoods288@gmail.com<mailto:bwoods288@gmail.com> <bwoo=
ds288@gmail.com<mailto:bwoods288@gmail.com>>; Renato Costa Amorim <renato.a=
morim@evoleotech.com<mailto:renato.amorim@evoleotech.com>>;
> > > JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com> <JOVITAC@xilinx.com<mai=
lto:JOVITAC@xilinx.com>>
> > > Subject: Re: Help: Information required for AXI DMA passthrough for P=
L masters in ZCU102 dev kit
> > > Your configuration looks correct as far as I can tell.
> > >
> > > You need dtdev because it triggers the SMMU configuration for your PL
> > > block. You don't need device_tree because your baremetal application =
is
> > > not going to read it, but it is not going to cause any issues either.
> > >
> > > When you say "the execution does not complete the loop at line 244", =
it
> > > means that you see the execution entering the loop and then never
> > > leaving? Like an infinite loop?
> > >
> > > If so, then I imagine the issue could be that the application is
> > > crashing when trying to access TxBufferPtr, which is pointing to
> > > TX_BUFFER_BASE, which is:
> > >
> > >
> > > #ifndef DDR_BASE_ADDR
> > > #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \
> > >                  DEFAULT SET TO 0x01000000
> > > #define MEM_BASE_ADDR           0x01000000
> > > #else
> > > #define MEM_BASE_ADDR           (DDR_BASE_ADDR + 0x1000000)
> > > #endif
> > >
> > > #define TX_BUFFER_BASE          (MEM_BASE_ADDR + 0x00100000)
> > >
> > >
> > >
> > > Can you double check that TX_BUFFER_BASE is pointing to a correct
> > > address? Memory starts at 0x40000000 in a Xen DomU.
> > >
> > > Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?
> > >
> > >
> > > On Mon, 17 May 2021, Prem Harikrishnan wrote:
> > > > Hi Stefano,
> > > > Thanks again for your reply and your suggestion.  I did try to repl=
ace the Xil_DCacheFlushRange with Xil_DCacheInvalidateRange(works
> > only
> > > > in EL3), I added printfs to debug, i can see that the execution doe=
s not complete the loop at line 244
> > > > https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPL=
ib/drivers/axidma/examples/xaxidma_example_simple_poll.c  and
> > > > Xil_DCacheFlushRange is not reached. Please find attached my xen bo=
otlog.txt.
> > > > I am still unable to find out why??
> > > >
> > > > Can you please atleast verify that my xen.dtsi, and pl.dtb is corre=
ct? and do i need dtdev and device_tree in my guest config file
> when
> > > it
> > > > is already added to xen.dtsi?
> > > >
> > > > Best Regards,
> > > > Prem
> > > >
> > > >
> >>>______________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stef=
ano.stabellini@xilinx.com>>
> > > > Sent: Saturday, May 15, 2021 00:25
> > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem=
.harikrishnan@evoleotech.com>>
> > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:stefan=
o.stabellini@xilinx.com>>; Brian Woods <brian.woods@xilinx.com<mailto:brian=
.woods@xilinx.com>>; Julien Grall <julien@xen.org<mailto:julien@xen.org>>; =
Stefano
> > > > Stabellini <sstabellini@kernel.org<mailto:sstabellini@kernel.org>>;=
 xen-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org> <xen=
-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org>>; fnuv@x=
ilinx.com<mailto:fnuv@xilinx.com>
> > <fnuv@xilinx.com<mailto:fnuv@xilinx.com>>;
> > > > edgari@xilinx.com<mailto:edgari@xilinx.com> <edgari@xilinx.com<mail=
to:edgari@xilinx.com>>; bwoods288@gmail.com<mailto:bwoods288@gmail.com> <bw=
oods288@gmail.com<mailto:bwoods288@gmail.com>>; Renato Costa Amorim <renato=
.amorim@evoleotech.com<mailto:renato.amorim@evoleotech.com>>;
> > > > JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com> <JOVITAC@xilinx.com<m=
ailto:JOVITAC@xilinx.com>>
> > > > Subject: Re: Help: Information required for AXI DMA passthrough for=
 PL masters in ZCU102 dev kit
> > > > Hi Prem,
> > > >
> > > > Some older versions of Xil_DCacheFlushRange were implemented using
> > > > deprecated set/way instructions that are known to cause problems in
> > > > virtualized environments.
> > > >
> > > > More recent implementations use the "dc civac" intruction that shou=
ldn't
> > > > have any issues.
> > > >
> > > > Can you double-check that you are calling the 64-bit version implem=
ented
> > > > by CIVAC?
> > > >
> >>>https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb18eda0182f3=
577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#L4
> 1
> > 4
> > >
> > > >
> > > >
> > > >
> > > >
> > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > Hi Stefano,
> > > > > Thanks for your reply. Yes the axidma application is a baremetal =
application from the xilinx vitis ide example.
> > > > > Also yes, I have already run hello world as DomU guest, with UART=
1.
> > > > >
> > > > > I am using the simple mode using polling and not interrupts(they =
are disabled in the c code), which is Why I didn't include in the
> > > guest
> > > > > config file. This works well when I compile it normally (as EL3).=
 When compiled as hypervisor guest, the execution stops before the
> > > > > function xil_dcacheflushrange(). Please find the c code attached
> > > > > in https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcess=
orIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c
> > > > >
> > > > > I found the SATA example similar to my use case, also using DMA a=
nd SMMU. I just used it as a reference to create my pl.dtb to pass
> > > > through
> > > > > in the guest config.(from pl.dtsi, which I manually created).
> > > > >
> > > > > Thanks and Best Regards,
> > > > > Prem
> > > > >
> > > > > Get Outlook for Android
> > > > >
> >>>>_____________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:st=
efano.stabellini@xilinx.com>>
> > > > > Sent: Friday 14 May 2021, 23:16
> > > > > To: Prem Harikrishnan
> > > > > Cc: Brian Woods; Stefano Stabellini; Julien Grall; Stefano Stabel=
lini; xen-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.org>=
; fnuv@xilinx.com<mailto:fnuv@xilinx.com>;
> > > > edgari@xilinx.com<mailto:edgari@xilinx.com>;
> > > > > bwoods288@gmail.com<mailto:bwoods288@gmail.com>; Renato Costa Amo=
rim; JOVITAC@xilinx.com<mailto:JOVITAC@xilinx.com>
> > > > > Subject: Re: Help: Information required for AXI DMA passthrough f=
or PL masters in ZCU102 dev kit
> > > > >
> > > > > I take that the guest kernel "/bin/xaxidma_example_simple_poll_1.=
bin" is
> > > > > a baremetal application? Can you run it successfully, just printi=
ng
> > > > > "hello world", if you only assign the UART and nothing else?
> > > > >
> > > > > I am asking just to verify that you can run the baremetal VM
> > > > > successfully, aside from the PL device assignment.
> > > > >
> > > > >
> > > > > In regards to the PL device assignment, I'll let Brian answer on =
the
> > > > > Vivado configuration and SMID calculation. But I noticed that you=
 only
> > > > > assigned IRQ 54 to the DomU which is the one for UART1. You haven=
't
> > > > > assigned any IRQs for axi_dma_0. Looking at pl_from_petalinux.dts=
i, it
> > > > > looks like there are two related IRQs: 121 and 122.
> > > > >
> > > > > Finally, why did you mention SATA passthrough in your reply? I do=
n't
> > > > > follow: I cannot see any SATA controller assignment in your
> > > > > configuration.
> > > > >
> > > > >
> > > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > > Dear Brian, Stefano and Julien,
> > > > > >
> > > > > > Thank you very much for your replies.
> > > > > > Hi Brian and Stefano, Can you please help me with the following=
 questions?
> > > > > >
> > > > > > @Brian Woods Please find attached my vivado configuration, when=
 i added my AXI DMA now running on simple polling mode(previously
> i
> > > > tried
> > > > > it
> > > > > > with Scatter Gather mode), Run Automation automatically generat=
ed, 1 AXI Interconnect and 1 smart connect. Since there is only 1
> > > master
> > > > > and
> > > > > > I use the S_AXI _HP0_FPD, I finally get a value of 0xE80 for th=
e stream IDs.
> > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/=
Xen+and+PL+Masters According to this link section 6.5 I have
> > manually
> > > > tied
> > > > > > of AxPROT bits to value of 0x2 to create non secure transaction=
s. Can you please confirm that my Vivado configuration is correct?
> I
> > > can
> > > > > > update you soon with an ILA trace on Vivado.
> > > > > >
> > > > > > @Stefano Stabellini Please find attached my pl.dtsi generated f=
rom petalinux and system.dtsi also generated after manually adding
> > > > > xen.dtsi.
> > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561=
/Building+Xen+Hypervisor+with+Petalinux+2020.1+and+2020.2 Using
> this
> > > > SATA
> > > > > > passthrough, i made my own pl.dtsi for passthrough used in dma.=
cfg. I could really use your help to identify what is missing in
> my
> > > xen
> > > > > > configuration.
> > > > > >
> > > > > > Thanks and Best Regards,
> > > > > > Prem
> > > > > >
> >>>>>____________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > From: Brian Woods <brian.woods@xilinx.com<mailto:brian.woods@xi=
linx.com>>
> > > > > > Sent: Thursday, May 13, 2021 17:13
> > > > > > To: Stefano Stabellini <stefano.stabellini@xilinx.com<mailto:st=
efano.stabellini@xilinx.com>>
> > > > > > Cc: Julien Grall <julien@xen.org<mailto:julien@xen.org>>; Prem =
Harikrishnan <prem.harikrishnan@evoleotech.com<mailto:prem.harikrishnan@evo=
leotech.com>>; Stefano Stabellini
> > <sstabellini@kernel.org<mailto:sstabellini@kernel.org>>;
> > > > > > xen-users@lists.xenproject.org<mailto:xen-users@lists.xenprojec=
t.org> <xen-users@lists.xenproject.org<mailto:xen-users@lists.xenproject.or=
g>>; brian.woods@xilinx.com<mailto:brian.woods@xilinx.com> <brian.woods@xil=
inx.com<mailto:brian.woods@xilinx.com>>; fnuv@xilinx.com<mailto:fnuv@xilinx=
.com>
> > > > > > <fnuv@xilinx.com<mailto:fnuv@xilinx.com>>; edgari@xilinx.com<ma=
ilto:edgari@xilinx.com> <edgari@xilinx.com<mailto:edgari@xilinx.com>>; bwoo=
ds288@gmail.com<mailto:bwoods288@gmail.com> <bwoods288@gmail.com<mailto:bwo=
ods288@gmail.com>>
> > > > > > Subject: Re: Help: Information required for AXI DMA passthrough=
 for PL masters in ZCU102 dev kit
> > > > > > Prem,
> > > > > >
> > > > > > Sorry for the late email, I've been under the weather and have =
been away
> > > > > > from my computer.  In the Zynq SOCs this is how the SMMU IDs in=
 PL are
> > > > > > calculated:
> > > > > >
> > > > > > 14-10: TBU bits
> > > > > > 9-6: Master ID bits
> > > > > > 5-0: AXI ID bits
> > > > > >
> > > > > > https://www.xilinx.com/support/documentation/user_guides/ug1085=
-zynq-ultrascale-trm.pdf
> > > > > > To look up the TBU value, see UG1085 and look for the "System M=
asters"
> > > > > > table which is table 16-4 on page 409.
> > > > > >
> > > > > > For the master ID, see UG1085 and look for the "Master IDs List=
" table
> > > > > > which is table 16-13 on page 429.
> > > > > >
> > > > > > The AXI ID bits is a bit trickery since it's going to be out in=
 PL.
> > > > > > See: https://www.xilinx.com/support/answers/69447.html
> > > > > > With SmartConnect all the AXI IDs are 0, they aren't passed on.=
  There
> > > > > > are work arounds.  Here's a couple of examples (with example nu=
mbers):
> > > > > >
> > > > > > AXI master -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001
> > > > > >
> > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000
> > > > > >
> > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > >                            -> PS slave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0000
> > > > > >
> > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000 (both share)
> > > > > >
> > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > >                                 -> PS slave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0000 (both share)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0000 (both share)
> > > > > >
> > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS s=
lave port 0
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0002 (master #2)
> > > > > >
> > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS s=
lave port 0
> > > > > >                                                         -> PS s=
lave port 1
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0001 (master #1)
> > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 000=
0002 (master #2)
> > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 000=
0002 (master #2)
> > > > > >
> > > > > > The "sideband -> SmartConenct -> sideband" can also be function=
ally
> > > > > > replaced with "AXI Interconnect" to my knowledge.  So the AXI I=
D bits are
> > > > > > fairly simple but with some caveats.
> > > > > >
> > > > > > You can also read in the SMMU faults from Xen and use:
> > > > > > https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_ar=
chitecture_specification.pdf
> > > > > > to decode them. That should tell you the SMMU IDs as well.
> > > > > >
> > > > > > Let me know if this isn't clear or you have any other questions=
.
> > > > > >
> > > > > > Brian
> > > > > >
> > > > > > On Mon, May 10, 2021 at 06:49:07PM -0700, Stefano Stabellini wr=
ote:
> > > > > > > On Mon, 10 May 2021, Julien Grall wrote:
> > > > > > > > On 26/04/2021 15:41, Prem Harikrishnan wrote:
> > > > > > > > > Hello everyone,
> > > > > > > >
> > > > > > > > Hi Prem,
> > > > > > > >
> > > > > > > > > I am using the latest version of the xilinx mpsoc zcu102 =
development board
> > > > > > > > > and i am trying to create a barematal application that us=
es the AXI DMA on
> > > > > > > > > the programmable logic, using the scatter gather example =
from the xilinx
> > > > > > > > > repository. This works perfectly well for the baremetal a=
pplication. The
> > > > > > > > > diagram below represents the information flow. The AXI DM=
A and the AXI data
> > > > > > > > > FIFO are in the Programable logic (FPGA). This AXI DMA is=
 out of the box IP
> > > > > > > > > from Vivado and uses a single channel (Does not use AxUSE=
R) which means the
> > > > > > > > > AXI ID cannot manually be set.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Now i want to make this as a baremetal hypervisor guest, =
in future this will
> > > > > > > > > be replaced by a custom IP with cache colouring enabled. =
I want to pass
> > > > > > > > > through the AXI DMA in the PL. (Not to be used by Dom0)
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I followed this tutorial Baremetal + DomU
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
842536/XEN+EL1+Baremetal+DomU>
> > > > > > > > > guest changed the base address to 0x4000000,(1GB allocate=
d to Dom-0) to
> > > > > > > > > create my EL1 binary. I used Petalinux 2020.2 to generate=
 my linux, xen
> > > > > > > > > image and use tftp to boot.
> > > > > > > > >
> > > > > > > > >  From what i understand from the xilinx tutorials Xen+and=
+PL+Masters
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
842066/Xen+and+PL+Masters>
> > > > > > > > > section 3 and MPSOC SMMU
> > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
841981/Zynq+UltraScale+MPSOC+SMMU>
> > > > > > > > > section 4, stream ids are required by the SMMU to get the=
 correct address
> > > > > > > > > translation.
> > > > > > > > >
> > > > > > > > > I am still unable to figure out how to get the iommu prop=
erty for my AXI DMA
> > > > > > > > > and how to set the dtdev config for my hypervisor guest.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I can also see some new updates with the XEN 2020.1 and 2=
020.2 releases
> > > > > > > > > which i can be useful to my application
> > > > > > > > >
> > > > > > > > >   *   1:1 memory mappings for Xen virtual machines, enabl=
ing device
> > > > > > > > >     assignments without SMMU
> > > > > > > > >   *
> > > > > > > > >       Static assignment of PL blocks, including bus-maste=
ring blocks, to
> > > > > > > > >     Xen virtual machines
> > > > > > > > >   *   Support for PL Device Passthrough to DomU in Xen
> > > > > > > >
> > > > > > > > You are usiong a version of Xen that has been customised by=
 Xilinx. So I would
> > > > > > > > recommend to contact them directly.
> > > > > > > >
> > > > > > > > I have CCed Stefano who might be able to help you.
> > > > > > >
> > > > > > > Hi Julien,
> > > > > > >
> > > > > > > Many thanks for CC'ing me, I missed the email.
> > > > > > >
> > > > > > >
> > > > > > > Hi Prem,
> > > > > > >
> > > > > > > Let me CC a few people that might be able to help.
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>

--_000_VI1PR05MB44303184209DF3F6215FFF3E89309VI1PR05MB4430eurp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Hi Stefano,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Is it possible to boot XEN from QSPI? Is there an image builder script alre=
ady available to generate boot.scr? Please let me&nbsp;know.<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Thanks and Best Regards,<br>
<div>Prem</div>
<br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Xen-users &lt;xen-use=
rs-bounces@lists.xenproject.org&gt; on behalf of Prem Harikrishnan &lt;prem=
.harikrishnan@evoleotech.com&gt;<br>
<b>Sent:</b> Tuesday, June 1, 2021 18:07<br>
<b>To:</b> Mubin Usman Sayyed &lt;MUBINUSM@xilinx.com&gt;; Stefano Stabelli=
ni &lt;stefanos@xilinx.com&gt;<br>
<b>Cc:</b> xen-users@lists.xenproject.org &lt;xen-users@lists.xenproject.or=
g&gt;; Jovita Castelino &lt;JOVITAC@xilinx.com&gt;<br>
<b>Subject:</b> Re: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit</font>
<div>&nbsp;</div>
</div>
<style type=3D"text/css" style=3D"display:none">
<!--
p
	{margin-top:0;
	margin-bottom:0}
-->
</style>
<div dir=3D"ltr">
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hi Stefano and Mubin,</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Thank you very much for helping me setup up FreeRTOS and baremetal guests, =
everything works as expected and I also get expected performance in both ba=
remetal and hypervisor guests. Thank you again for your prompt support duri=
ng the past few weeks.</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Best Regrards,</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Prem<br>
</div>
<div id=3D"x_appendonsend"></div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" =
color=3D"#000000" style=3D"font-size:11pt"><b>From:</b> Mubin Usman Sayyed =
&lt;MUBINUSM@xilinx.com&gt;<br>
<b>Sent:</b> Tuesday, June 1, 2021 05:38<br>
<b>To:</b> Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;; Stef=
ano Stabellini &lt;stefanos@xilinx.com&gt;<br>
<b>Cc:</b> xen-users@lists.xenproject.org &lt;xen-users@lists.xenproject.or=
g&gt;; Jovita Castelino &lt;JOVITAC@xilinx.com&gt;<br>
<b>Subject:</b> RE: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit</font>
<div>&nbsp;</div>
</div>
<style>
<!--
@font-face
	{font-family:"Cambria Math"}
@font-face
	{font-family:Calibri}
@font-face
	{font-family:"Segoe UI"}
@font-face
	{font-family:"Segoe UI Light"}
p.x_x_MsoNormal, li.x_x_MsoNormal, div.x_x_MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif}
a:link, span.x_x_MsoHyperlink
	{color:blue;
	text-decoration:underline}
span.x_x_EmailStyle21
	{font-family:"Calibri",sans-serif;
	color:windowtext}
.x_x_MsoChpDefault
	{font-size:10.0pt}
@page WordSection1
	{margin:1.0in 1.0in 1.0in 1.0in}
-->
</style>
<div lang=3D"EN-US">
<div class=3D"x_x_WordSection1">
<p class=3D"x_x_MsoNormal">In case of FreeRTOS, &nbsp;you need to use APIs =
from FreeRTOS port for interrupt handling &nbsp;(<a href=3D"https://github.=
com/Xilinx/embeddedsw/blob/master/ThirdParty/bsp/freertos10_xilinx/examples=
/freertos_intr_example.c#L192">https://github.com/Xilinx/embeddedsw/blob/ma=
ster/ThirdParty/bsp/freertos10_xilinx/examples/freertos_intr_example.c#L192=
</a>
 and line 194). Please make sure that you are taking care of that in DMA in=
terrupt example .</p>
<p class=3D"x_x_MsoNormal">&nbsp;</p>
<p class=3D"x_x_MsoNormal">Thanks,</p>
<p class=3D"x_x_MsoNormal">Mubin</p>
<p class=3D"x_x_MsoNormal">&nbsp;</p>
<div style=3D"border:none; border-left:solid blue 1.5pt; padding:0in 0in 0i=
n 4.0pt">
<div>
<div style=3D"border:none; border-top:solid #E1E1E1 1.0pt; padding:3.0pt 0i=
n 0in 0in">
<p class=3D"x_x_MsoNormal"><b>From:</b> Prem Harikrishnan &lt;prem.harikris=
hnan@evoleotech.com&gt;
<br>
<b>Sent:</b> Tuesday, June 1, 2021 2:48 AM<br>
<b>To:</b> Stefano Stabellini &lt;stefanos@xilinx.com&gt;<br>
<b>Cc:</b> xen-users@lists.xenproject.org; Jovita Castelino &lt;JOVITAC@xil=
inx.com&gt;; Mubin Usman Sayyed &lt;MUBINUSM@xilinx.com&gt;<br>
<b>Subject:</b> Re: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit</p>
</div>
</div>
<p class=3D"x_x_MsoNormal">&nbsp;</p>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&n=
bsp;</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Hi=
 Stefano and Mubin,</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Th=
ank you very much for your replies.</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black"><a=
 id=3D"OWAAM333653" href=3D"mailto:stefano.stabellini@xilinx.com"><span sty=
le=3D"font-family:&quot;Calibri&quot;,sans-serif; text-decoration:none">@St=
efano Stabellini</span></a> Sorry to bother you again,
 and thank you for pointing this out, the TTC0 is by default enabled for Fr=
eeRTOS to generate ticks, although this says only for R5 core, i would have=
 never figured this out. As soon as I added the irqs and iomem and gave a x=
en passthrough in the xen.dtsi as
 you have suggested, FreeRTOS guest started working for other peripherals e=
xcept for my DMA (FreeRTOS guest does not work with interrupt and DMA).
</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&n=
bsp;</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">I =
can see my DMA is enabled because i have LEDs configured to blink for every=
 interrupt I get from the PL. I don't see my interrupts being processed, bu=
t when I destroy the guest, I get this
 output periodically when an interrupt occurs.</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&n=
bsp;</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">(X=
EN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious<br=
>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000</span></p>
</div>
<div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">(X=
EN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious<br=
>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000</span></p>
</div>
<div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">(X=
EN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious<br=
>
(XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x000000=
02, GFSYNR1 0x00000e80, GFSYNR2 0x00000000</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&n=
bsp;</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Fr=
om section 3.6 of the wiki
<a href=3D"https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/X=
en+and+PL+Masters">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+M=
asters</a>
</span></p>
</div>
<div>
<div id=3D"LPBorder_GTaHR0cHM6Ly94aWxpbngtd2lraS5hdGxhc3NpYW4ubmV0L3dpa2kvc=
3BhY2VzL0EvcGFnZXMvMTg4NDIwNjYvWGVuK2FuZCtQTCtNYXN0ZXJz" style=3D"margin-to=
p:12.0pt; margin-bottom:12.0pt; min-width:424px">
<table class=3D"x_x_MsoNormalTable" border=3D"1" cellpadding=3D"0" width=3D=
"100%" style=3D"width:100.0%; border:solid #C8C8C8 1.0pt">
<tbody>
<tr>
<td width=3D"100%" valign=3D"top" style=3D"width:100.0%; border:none; paddi=
ng:9.0pt 27.0pt 9.0pt 9.0pt">
<div id=3D"LPTitle907457" style=3D"margin-right:6.0pt; margin-bottom:9.0pt"=
>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:16.0pt; font-family:&qu=
ot;Segoe UI Light&quot;,sans-serif"><a href=3D"https://xilinx-wiki.atlassia=
n.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters" target=3D"_blank"><s=
pan style=3D"text-decoration:none">Xen and PL Masters
 - Xilinx Wiki - Confluence</span></a></span></p>
</div>
<div id=3D"LPDescription907457" style=3D"margin-right:6.0pt; margin-bottom:=
9.0pt; max-height:100px; overflow:hidden">
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:10.5pt; font-family:&qu=
ot;Segoe UI&quot;,sans-serif; color:#666666">3.4 Stream IDs in the Device T=
ree. For Xen based systems the stream IDs of PL masters must be added to th=
e Linux Dom0 device tree. Automated device tree
 generation does not generate the stream IDs for the PL masters so that the=
 user must add them into the device tree manually.</span></p>
</div>
<div id=3D"LPMetadata907457">
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:10.5pt; font-family:&qu=
ot;Segoe UI&quot;,sans-serif; color:#A6A6A6">xilinx-wiki.atlassian.net</spa=
n></p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p class=3D"x_x_MsoNormal"><span style=3D"color:black">The fault indicates =
an unidentified stream ID has been received by the SMMU as shown in the GFS=
R register. The GFSYNR1 register contains the stream ID that was unidentifi=
ed. A stream ID of 0xE80 was unidentified
 in the above fault.</span><span style=3D"font-size:12.0pt; color:black"></=
span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&n=
bsp;</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Bu=
t I think i have already added that in my smmu and iommu in xen.dtsi becaus=
e my baremetal application works well as expected. I have attached my xen.d=
tsi, system.dtsi, baremetal.cfg(working)
 and freertos.cfg(not working).</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Wh=
at could I be missing here? Do I have to enable the ttc0 in the device tree=
?
</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Al=
so what does (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq: 99=
990 KHz mean when XEN boots up?</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Th=
anks, I look forward for your reply.</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&n=
bsp;</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Be=
st Regards,</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">Pr=
em</span></p>
</div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&n=
bsp;</span></p>
</div>
<div>
<p class=3D"x_x_MsoNormal"><span style=3D"font-size:12.0pt; color:black">&n=
bsp;</span></p>
</div>
<div class=3D"x_x_MsoNormal" align=3D"center" style=3D"text-align:center">
<hr size=3D"2" width=3D"98%" align=3D"center">
</div>
<div id=3D"x_x_divRplyFwdMsg">
<p class=3D"x_x_MsoNormal"><b><span style=3D"color:black">From:</span></b><=
span style=3D"color:black"> Stefano Stabellini &lt;<a href=3D"mailto:stefan=
o.stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
<b>Sent:</b> Friday, May 28, 2021 20:43<br>
<b>To:</b> Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishnan@evoleo=
tech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
<b>Cc:</b> Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@xili=
nx.com">stefano.stabellini@xilinx.com</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a> &lt;<a href=3D=
"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;;
<a href=3D"mailto:MUBINUSM@xilinx.com">MUBINUSM@xilinx.com</a> &lt;<a href=
=3D"mailto:MUBINUSM@xilinx.com">MUBINUSM@xilinx.com</a>&gt;<br>
<b>Subject:</b> Re: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit</span>
</p>
<div>
<p class=3D"x_x_MsoNormal">&nbsp;</p>
</div>
</div>
<div>
<div>
<p class=3D"x_x_MsoNormal">From the gpa address, it looks like FreeRTOS is =
trying to access the TTC<br>
timer? If you look at device tree, the corresponding node is<br>
timer@ff110000.<br>
<br>
If FreeRTOS is configured to access the TTC timer, then you need to<br>
assign it to it. Did you assign the TTC timer to the FreeRTOS domU by<br>
any chance?<br>
<br>
You can do that by adding:<br>
<br>
irqs =3D [ 68, 69, 70 ]<br>
iomem =3D [ &quot;0xff110,1&quot; ]<br>
<br>
<br>
On Fri, 28 May 2021, Prem Harikrishnan wrote:<br>
&gt; Hi Stefano,<br>
&gt; Thanks for your reply. I am pretty sure I followed the steps you menti=
oned below to run the FreeRTOS hello world example. I already added<br>
&gt; printfs and i can see XEN cannot start the scheduler and i get the fol=
lowing out put on XEN.<br>
&gt; <br>
&gt; Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]<br>
&gt; (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D2 me=
mflags=3D0xc0 (0 of 64)<br>
&gt; (XEN) memory_map:add: dom2 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0<br=
>
&gt; (XEN) sched_null.c:344: 1 &lt;-- d2v0<br>
&gt; (XEN) traps.c:1973:d2v0 HSR=3D0x93820007 pc=3D0x00000040012b08 gva=3D0=
xff11000c gpa=3D0x000000ff11000c<br>
&gt; <br>
&gt; <br>
&gt; I also see that according to this article<br>
&gt; <a href=3D"https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partn=
er-FreeRTOS-as-a-Xen-Virtual-Machine/ba-p/947030">
https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as-a=
-Xen-Virtual-Machine/ba-p/947030</a><br>
&gt; [52662iFAD1733707609204?v=3Dv2]<br>
&gt; Partner: FreeRTOS as a Xen Virtual Machine - Community Forums<br>
&gt; Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks=
 What is FreeRTOS? The FreeRTOS kernel is a market leading real-time<br>
&gt; operating system for embedded systems. As embedded applications grow i=
n complexity, there is a growing need for a lightweight kernel<br>
&gt; capable of task scheduling...<br>
&gt; forums.xilinx.com<br>
&gt; FreeRTOS does not run out of the box for XEN, although the article is =
2 years old, I am not sure if there are any updates on this after<br>
&gt; that. Can you please confirm?<br>
&gt; <br>
&gt; Thanks and Best Regards,<br>
&gt; Prem<br>
&gt; <br>
&gt; ______________________________________________________________________=
_____________________________________________________________________<br>
&gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@xili=
nx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; Sent: Friday, May 28, 2021 02:51<br>
&gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishnan@evoleote=
ch.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@xilinx=
.com">stefano.stabellini@xilinx.com</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a><br>
&gt; &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;; =
<a href=3D"mailto:MUBINUSM@xilinx.com">
MUBINUSM@xilinx.com</a> &lt;<a href=3D"mailto:MUBINUSM@xilinx.com">MUBINUSM=
@xilinx.com</a>&gt;<br>
&gt; Subject: Re: Help: Information required for AXI DMA passthrough for PL=
 masters in ZCU102 dev kit &nbsp;<br>
&gt; +Mubin<br>
&gt; <br>
&gt; <br>
&gt; Hi Prem,<br>
&gt; <br>
&gt; Did you make sure to build FreeRTOS as &quot;hypervisor guest&quot;? I=
 think<br>
&gt; FreeRTOS is built to run at EL3 by default so if that is not changed<b=
r>
&gt; there are errors when run on any hypervisor. It is possible to build<b=
r>
&gt; FreeRTOS to run on Xen but it requires a couple of manual steps:<br>
&gt; <br>
&gt; - source settings64.sh from Vitis builds<br>
&gt; - xsct<br>
&gt; - set WORKSPACE .<br>
&gt; - setws -switch $WORKSPACE<br>
&gt; - app create -name freertos-hello-world -template {FreeRTOS Hello Worl=
d} -proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx<br>
&gt; - bsp config stdin psu_uart_1<br>
&gt; - bsp config stdout psu_uart_1<br>
&gt; - bsp config hypervisor_guest true<br>
&gt; - Go to application source path and modify the linker script start add=
ress to 0x40000000,<br>
&gt; - app build -name freertos-hello-world<br>
&gt; - Run command to generate BIN file from executable &quot;aarch64-linux=
-gnu-objcopy -O binary --gap-fill 0&nbsp; &lt;elf path&gt; BOOT.BIN&quot;<b=
r>
&gt; <br>
&gt; The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,<=
br>
&gt; might be able to provide additional info.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On Thu, 27 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; Hi Stefano,<br>
&gt; &gt; Sorry to bother you again.<br>
&gt; &gt; I am currently trying to run my custom IP which sends periodic dm=
a interrupts to the PS with cache coloring enabled. I have now compiled<br>
&gt; my<br>
&gt; &gt; guest running with FreeRTOS and it generates a trap.<br>
&gt; &gt; Petalinux and VITIS IDE Version is 2020.2.<br>
&gt; &gt;<br>
&gt; &gt; Please find the log attached. After the trap occurs, for every in=
terrupt XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context fault:<br>
&gt; &gt; fsr=3D0x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt;<br>
&gt; &gt; root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing conf=
ig from apu_freertos.cfg<br>
&gt; &gt; (XEN) Dom1 colors: [ 8 ]<br>
&gt; &gt; (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=
=3D1 memflags=3D0xc0 (0 of 64)<br>
&gt; &gt; (XEN) memory_map:add: dom1 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=
=3D0<br>
&gt; &gt; (XEN) memory_map:add: dom1 gfn=3Da0010 mfn=3Da0010 nr=3D1 cache=
=3D0<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000<br>
&gt; &gt; (XEN) sched_null.c:344: 1 &lt;-- d1v0<br>
&gt; &gt; (XEN) traps.c:1973:d1v0 HSR=3D0x93820007 pc=3D0x00000040013188 gv=
a=3D0xff11000c gpa=3D0x000000ff11000c<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402,=
 iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt;<br>
&gt; &gt; The same application works as expected without FreeRTOS, i.e as a=
 baremetal guest. I look forward for your comment on this.<br>
&gt; &gt;<br>
&gt; &gt; Although i see performance degradation, normally i can measure de=
lta time for each interrupt configured to 1ms (without XEN), with XEN<br>
&gt; for<br>
&gt; &gt; the same measurement shows 16 ms for each interval (but the perfo=
rmance is not a priority for now).<br>
&gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; Prem<br>
&gt; &gt;<br>
&gt; &gt;__________________________________________________________________=
________________________________________________________________________<br=
>
&gt; _<br>
&gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini=
@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; Sent: Tuesday, May 18, 2021 20:09<br>
&gt; &gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishnan@evo=
leotech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; &gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabellini@x=
ilinx.com">stefano.stabellini@xilinx.com</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;<br>
&gt; <a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a><br>
&gt; &gt; &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&=
gt;<br>
&gt; &gt; Subject: Re: Help: Information required for AXI DMA passthrough f=
or PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; Great to hear! Thank you for reporting back.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Tue, 18 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; Dear Stefano,<br>
&gt; &gt; &gt; Thank you very much for your guidance and support. I finally=
 fixed the issue. I made an error in base memory address like you pointed<b=
r>
&gt; &gt; out.<br>
&gt; &gt; &gt; I actually modified the base address correctly to 0x40000000=
 but the default C code had an additional offset of 0x1100000 , and the<br>
&gt; DomU<br>
&gt; &gt; &gt; memory allocated was only 8MB. I either had to change the of=
fset or allocate more memory to the DomU guest which i missed until you<br>
&gt; &gt; pointed<br>
&gt; &gt; &gt; out. Additionally i had to set to AxPROT bits to 0x2 in Viva=
do and the SMID required is 0xE80.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Thanks again i was able get my custom IP also working as an =
AXI master from PL.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; Prem<br>
&gt; &gt; &gt;<br>
&gt; &gt;&gt;______________________________________________________________=
___________________________________________________________________________=
<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabe=
llini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; Sent: Tuesday, May 18, 2021 02:35<br>
&gt; &gt; &gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikrishna=
n@evoleotech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; &gt; &gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.stabell=
ini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;; Brian Woods &lt;<a h=
ref=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;; Julie=
n Grall &lt;<a href=3D"mailto:julien@xen.org">julien@xen.org</a>&gt;;
 Stefano<br>
&gt; &gt; &gt; Stabellini &lt;<a href=3D"mailto:sstabellini@kernel.org">sst=
abellini@kernel.org</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a><br>
&gt; &lt;<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a>&gt;;<br>
&gt; &gt; &gt; <a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com</a> &=
lt;<a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com</a>&gt;;
<a href=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a> &lt;<a href=
=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a>&gt;; Renato Costa A=
morim &lt;<a href=3D"mailto:renato.amorim@evoleotech.com">renato.amorim@evo=
leotech.com</a>&gt;;<br>
&gt; &gt; &gt; <a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>=
 &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; Subject: Re: Help: Information required for AXI DMA passthro=
ugh for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; Your configuration looks correct as far as I can tell.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; You need dtdev because it triggers the SMMU configuration fo=
r your PL<br>
&gt; &gt; &gt; block. You don't need device_tree because your baremetal app=
lication is<br>
&gt; &gt; &gt; not going to read it, but it is not going to cause any issue=
s either.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; When you say &quot;the execution does not complete the loop =
at line 244&quot;, it<br>
&gt; &gt; &gt; means that you see the execution entering the loop and then =
never<br>
&gt; &gt; &gt; leaving? Like an infinite loop?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; If so, then I imagine the issue could be that the applicatio=
n is<br>
&gt; &gt; &gt; crashing when trying to access TxBufferPtr, which is pointin=
g to<br>
&gt; &gt; &gt; TX_BUFFER_BASE, which is:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; #ifndef DDR_BASE_ADDR<br>
&gt; &gt; &gt; #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \=
<br>
&gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT SET TO 0x01000000<br>
&gt; &gt; &gt; #define MEM_BASE_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; 0x01000000<br>
&gt; &gt; &gt; #else<br>
&gt; &gt; &gt; #define MEM_BASE_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; (DDR_BASE_ADDR + 0x1000000)<br>
&gt; &gt; &gt; #endif<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; #define TX_BUFFER_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; (MEM_BASE_ADDR + 0x00100000)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Can you double check that TX_BUFFER_BASE is pointing to a co=
rrect<br>
&gt; &gt; &gt; address? Memory starts at 0x40000000 in a Xen DomU.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Mon, 17 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; Hi Stefano,<br>
&gt; &gt; &gt; &gt; Thanks again for your reply and your suggestion.&nbsp; =
I did try to replace the Xil_DCacheFlushRange with Xil_DCacheInvalidateRang=
e(works<br>
&gt; &gt; only<br>
&gt; &gt; &gt; &gt; in EL3), I added printfs to debug, i can see that the e=
xecution does not complete the loop at line 244<br>
&gt; &gt; &gt; &gt; <a href=3D"https://github.com/Xilinx/embeddedsw/blob/ma=
ster/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_example_simple_po=
ll.c">
https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drive=
rs/axidma/examples/xaxidma_example_simple_poll.c</a>&nbsp; and<br>
&gt; &gt; &gt; &gt; Xil_DCacheFlushRange is not reached. Please find attach=
ed my xen bootlog.txt.<br>
&gt; &gt; &gt; &gt; I am still unable to find out why??<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can you please atleast verify that my xen.dtsi, and pl.=
dtb is correct? and do i need dtdev and device_tree in my guest config file=
<br>
&gt; when<br>
&gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt; is already added to xen.dtsi?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;__________________________________________________________=
___________________________________________________________________________=
___<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:stefano.=
stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; Sent: Saturday, May 15, 2021 00:25<br>
&gt; &gt; &gt; &gt; To: Prem Harikrishnan &lt;<a href=3D"mailto:prem.harikr=
ishnan@evoleotech.com">prem.harikrishnan@evoleotech.com</a>&gt;<br>
&gt; &gt; &gt; &gt; Cc: Stefano Stabellini &lt;<a href=3D"mailto:stefano.st=
abellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;; Brian Woods &lt=
;<a href=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;; =
Julien Grall &lt;<a href=3D"mailto:julien@xen.org">julien@xen.org</a>&gt;;
 Stefano<br>
&gt; &gt; &gt; &gt; Stabellini &lt;<a href=3D"mailto:sstabellini@kernel.org=
">sstabellini@kernel.org</a>&gt;;
<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@lists.xenprojec=
t.org</a> &lt;<a href=3D"mailto:xen-users@lists.xenproject.org">xen-users@l=
ists.xenproject.org</a>&gt;;
<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a><br>
&gt; &gt; &lt;<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a>&gt;;<b=
r>
&gt; &gt; &gt; &gt; <a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com<=
/a> &lt;<a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com</a>&gt;;
<a href=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a> &lt;<a href=
=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a>&gt;; Renato Costa A=
morim &lt;<a href=3D"mailto:renato.amorim@evoleotech.com">renato.amorim@evo=
leotech.com</a>&gt;;<br>
&gt; &gt; &gt; &gt; <a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.co=
m</a> &lt;<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a>&gt;<=
br>
&gt; &gt; &gt; &gt; Subject: Re: Help: Information required for AXI DMA pas=
sthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Some older versions of Xil_DCacheFlushRange were implem=
ented using<br>
&gt; &gt; &gt; &gt; deprecated set/way instructions that are known to cause=
 problems in<br>
&gt; &gt; &gt; &gt; virtualized environments.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; More recent implementations use the &quot;dc civac&quot=
; intruction that shouldn't<br>
&gt; &gt; &gt; &gt; have any issues.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can you double-check that you are calling the 64-bit ve=
rsion implemented<br>
&gt; &gt; &gt; &gt; by CIVAC?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;<a href=3D"https://github.com/Xilinx/embeddedsw/blob/875dc=
c7a4dca47ccb18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/=
xil_cache.c#L4">https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb=
18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#=
L4</a><br>
&gt; 1<br>
&gt; &gt; 4<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Fri, 14 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; Hi Stefano,&nbsp;<br>
&gt; &gt; &gt; &gt; &gt; Thanks for your reply. Yes the axidma application =
is a baremetal application from the xilinx vitis ide example.&nbsp;<br>
&gt; &gt; &gt; &gt; &gt; Also yes, I have already run hello world as DomU g=
uest, with UART1.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I am using the simple mode using polling and not i=
nterrupts(they are disabled in the c code), which is Why I didn't include i=
n the<br>
&gt; &gt; &gt; guest<br>
&gt; &gt; &gt; &gt; &gt; config file. This works well when I compile it nor=
mally (as EL3). When compiled as hypervisor guest, the execution stops befo=
re the<br>
&gt; &gt; &gt; &gt; &gt; function xil_dcacheflushrange(). Please find the c=
 code attached<br>
&gt; &gt; &gt; &gt; &gt; in&nbsp;<a href=3D"https://github.com/Xilinx/embed=
dedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_exam=
ple_simple_poll.c">https://github.com/Xilinx/embeddedsw/blob/master/XilinxP=
rocessorIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c</a>&nbs=
p;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I found the SATA example similar to my use case, a=
lso using DMA and SMMU. I just used it as a reference to create my pl.dtb t=
o pass<br>
&gt; &gt; &gt; &gt; through<br>
&gt; &gt; &gt; &gt; &gt; in the guest config.(from pl.dtsi, which I manuall=
y created).<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Get Outlook for Android<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;______________________________________________________=
___________________________________________________________________________=
______<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;<a href=3D"mailto:ste=
fano.stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; Sent: Friday 14 May 2021, 23:16<br>
&gt; &gt; &gt; &gt; &gt; To: Prem Harikrishnan<br>
&gt; &gt; &gt; &gt; &gt; Cc: Brian Woods; Stefano Stabellini; Julien Grall;=
 Stefano Stabellini; <a href=3D"mailto:xen-users@lists.xenproject.org">
xen-users@lists.xenproject.org</a>; <a href=3D"mailto:fnuv@xilinx.com">fnuv=
@xilinx.com</a>;<br>
&gt; &gt; &gt; &gt; <a href=3D"mailto:edgari@xilinx.com">edgari@xilinx.com<=
/a>;<br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"mailto:bwoods288@gmail.com">bwoods288@g=
mail.com</a>; Renato Costa Amorim;
<a href=3D"mailto:JOVITAC@xilinx.com">JOVITAC@xilinx.com</a><br>
&gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required for AXI DM=
A passthrough for PL masters in ZCU102 dev kit<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I take that the guest kernel &quot;/bin/xaxidma_ex=
ample_simple_poll_1.bin&quot; is<br>
&gt; &gt; &gt; &gt; &gt; a baremetal application? Can you run it successful=
ly, just printing<br>
&gt; &gt; &gt; &gt; &gt; &quot;hello world&quot;, if you only assign the UA=
RT and nothing else?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I am asking just to verify that you can run the ba=
remetal VM<br>
&gt; &gt; &gt; &gt; &gt; successfully, aside from the PL device assignment.=
<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; In regards to the PL device assignment, I'll let B=
rian answer on the<br>
&gt; &gt; &gt; &gt; &gt; Vivado configuration and SMID calculation. But I n=
oticed that you only<br>
&gt; &gt; &gt; &gt; &gt; assigned IRQ 54 to the DomU which is the one for U=
ART1. You haven't<br>
&gt; &gt; &gt; &gt; &gt; assigned any IRQs for axi_dma_0. Looking at pl_fro=
m_petalinux.dtsi, it<br>
&gt; &gt; &gt; &gt; &gt; looks like there are two related IRQs: 121 and 122=
.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Finally, why did you mention SATA passthrough in y=
our reply? I don't<br>
&gt; &gt; &gt; &gt; &gt; follow: I cannot see any SATA controller assignmen=
t in your<br>
&gt; &gt; &gt; &gt; &gt; configuration.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; On Fri, 14 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; Dear Brian, Stefano and Julien,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thank you very much for your replies.<br>
&gt; &gt; &gt; &gt; &gt; &gt; Hi Brian and Stefano, Can you please help me =
with the following questions?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; @Brian Woods Please find attached my vivado c=
onfiguration, when i added my AXI DMA now running on simple polling mode(pr=
eviously<br>
&gt; i<br>
&gt; &gt; &gt; &gt; tried<br>
&gt; &gt; &gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt; &gt; &gt; with Scatter Gather mode), Run Automation aut=
omatically generated, 1 AXI Interconnect and 1 smart connect. Since there i=
s only 1<br>
&gt; &gt; &gt; master<br>
&gt; &gt; &gt; &gt; &gt; and<br>
&gt; &gt; &gt; &gt; &gt; &gt; I use the S_AXI _HP0_FPD, I finally get a val=
ue of 0xE80 for the stream IDs.<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://xilinx-wiki.atlassian.net/=
wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+M=
asters</a> According to this link section 6.5 I have<br>
&gt; &gt; manually<br>
&gt; &gt; &gt; &gt; tied<br>
&gt; &gt; &gt; &gt; &gt; &gt; of AxPROT bits to value of 0x2 to create non =
secure transactions. Can you please confirm that my Vivado configuration is=
 correct?<br>
&gt; I<br>
&gt; &gt; &gt; can<br>
&gt; &gt; &gt; &gt; &gt; &gt; update you soon with an ILA trace on Vivado.<=
br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; @Stefano Stabellini Please find attached my p=
l.dtsi generated from petalinux and system.dtsi also generated after manual=
ly adding<br>
&gt; &gt; &gt; &gt; &gt; xen.dtsi.<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://xilinx-wiki.atlassian.net/=
wiki/spaces/A/pages/384663561/Building+Xen+Hypervisor+with+Petalinux+2020.1=
+and+2020.2">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561/Building+Xe=
n+Hypervisor+with+Petalinux+2020.1+and+2020.2</a> Using<br>
&gt; this<br>
&gt; &gt; &gt; &gt; SATA<br>
&gt; &gt; &gt; &gt; &gt; &gt; passthrough, i made my own pl.dtsi for passth=
rough used in dma.cfg. I could really use your help to identify what is mis=
sing in<br>
&gt; my<br>
&gt; &gt; &gt; xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; configuration.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;__________________________________________________=
___________________________________________________________________________=
_________<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; &gt; From: Brian Woods &lt;<a href=3D"mailto:brian=
.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sent: Thursday, May 13, 2021 17:13<br>
&gt; &gt; &gt; &gt; &gt; &gt; To: Stefano Stabellini &lt;<a href=3D"mailto:=
stefano.stabellini@xilinx.com">stefano.stabellini@xilinx.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Cc: Julien Grall &lt;<a href=3D"mailto:julien=
@xen.org">julien@xen.org</a>&gt;; Prem Harikrishnan &lt;<a href=3D"mailto:p=
rem.harikrishnan@evoleotech.com">prem.harikrishnan@evoleotech.com</a>&gt;; =
Stefano Stabellini<br>
&gt; &gt; &lt;<a href=3D"mailto:sstabellini@kernel.org">sstabellini@kernel.=
org</a>&gt;;<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"mailto:xen-users@lists.xenproject.=
org">xen-users@lists.xenproject.org</a> &lt;<a href=3D"mailto:xen-users@lis=
ts.xenproject.org">xen-users@lists.xenproject.org</a>&gt;;
<a href=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a> &lt;<a=
 href=3D"mailto:brian.woods@xilinx.com">brian.woods@xilinx.com</a>&gt;;
<a href=3D"mailto:fnuv@xilinx.com">fnuv@xilinx.com</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"mailto:fnuv@xilinx.com">fnuv@x=
ilinx.com</a>&gt;; <a href=3D"mailto:edgari@xilinx.com">
edgari@xilinx.com</a> &lt;<a href=3D"mailto:edgari@xilinx.com">edgari@xilin=
x.com</a>&gt;;
<a href=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a> &lt;<a href=
=3D"mailto:bwoods288@gmail.com">bwoods288@gmail.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required for A=
XI DMA passthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sorry for the late email, I've been under the=
 weather and have been away<br>
&gt; &gt; &gt; &gt; &gt; &gt; from my computer.&nbsp; In the Zynq SOCs this=
 is how the SMMU IDs in PL are<br>
&gt; &gt; &gt; &gt; &gt; &gt; calculated:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 14-10: TBU bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; 9-6: Master ID bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; 5-0: AXI ID bits<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://www.xilinx.com/support/doc=
umentation/user_guides/ug1085-zynq-ultrascale-trm.pdf">
https://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultras=
cale-trm.pdf</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; To look up the TBU value, see UG1085 and look=
 for the &quot;System Masters&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; table which is table 16-4 on page 409.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; For the master ID, see UG1085 and look for th=
e &quot;Master IDs List&quot; table<br>
&gt; &gt; &gt; &gt; &gt; &gt; which is table 16-13 on page 429.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; The AXI ID bits is a bit trickery since it's =
going to be out in PL.<br>
&gt; &gt; &gt; &gt; &gt; &gt; See: <a href=3D"https://www.xilinx.com/suppor=
t/answers/69447.html">https://www.xilinx.com/support/answers/69447.html</a>=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; With SmartConnect all the AXI IDs are 0, they=
 aren't passed on.&nbsp; There<br>
&gt; &gt; &gt; &gt; &gt; &gt; are work arounds.&nbsp; Here's a couple of ex=
amples (with example numbers):<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; SmartConnect -&gt; PS slave =
port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; SmartConnect -&gt; PS slave =
port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; SmartConnect -&gt; PS s=
lave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; SmartConnect -&gt; PS s=
lave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS=
 slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000 (both share)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; sideband -&gt; SmartCon=
nect -&gt; sideband -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; sideband -&gt; SmartCon=
nect -&gt; sideband -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS slave=
 port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000001 (master #1)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB=
U bits: 00001, Master ID bits: 0001, AXI ID bits: 0000002 (master #2)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; The &quot;sideband -&gt; SmartConenct -&gt; s=
ideband&quot; can also be functionally<br>
&gt; &gt; &gt; &gt; &gt; &gt; replaced with &quot;AXI Interconnect&quot; to=
 my knowledge.&nbsp; So the AXI ID bits are<br>
&gt; &gt; &gt; &gt; &gt; &gt; fairly simple but with some caveats.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; You can also read in the SMMU faults from Xen=
 and use:<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://static.docs.arm.com/ihi006=
2/dc/IHI0062D_c_system_mmu_architecture_specification.pdf">
https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_architecture_s=
pecification.pdf</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; to decode them. That should tell you the SMMU=
 IDs as well.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Let me know if this isn't clear or you have a=
ny other questions.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Brian<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Mon, May 10, 2021 at 06:49:07PM -0700, Ste=
fano Stabellini wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; On Mon, 10 May 2021, Julien Grall wrote:=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On 26/04/2021 15:41, Prem Harikrish=
nan wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hello everyone,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am using the latest version =
of the xilinx mpsoc zcu102 development board<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and i am trying to create a ba=
rematal application that uses the AXI DMA on<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the programmable logic, using =
the scatter gather example from the xilinx<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; repository. This works perfect=
ly well for the baremetal application. The<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; diagram below represents the i=
nformation flow. The AXI DMA and the AXI data<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; FIFO are in the Programable lo=
gic (FPGA). This AXI DMA is out of the box IP<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; from Vivado and uses a single =
channel (Does not use AxUSER) which means the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; AXI ID cannot manually be set.=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Now i want to make this as a b=
aremetal hypervisor guest, in future this will<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; be replaced by a custom IP wit=
h cache colouring enabled. I want to pass<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; through the AXI DMA in the PL.=
 (Not to be used by Dom0)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I followed this tutorial Barem=
etal + DomU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremetal+DomU">htt=
ps://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremet=
al+DomU</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; guest changed the base address=
 to 0x4000000,(1GB allocated to Dom-0) to<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; create my EL1 binary. I used P=
etalinux 2020.2 to generate my linux, xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; image and use tftp to boot.<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp; From what i understand f=
rom the xilinx tutorials Xen+and+PL+Masters<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">https:/=
/xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters<=
/a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section 3 and MPSOC SMMU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xilinx-=
wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraScale+MPSOC+SMMU"=
>https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraS=
cale+MPSOC+SMMU</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section 4, stream ids are requ=
ired by the SMMU to get the correct address<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; translation.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am still unable to figure ou=
t how to get the iommu property for my AXI DMA<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and how to set the dtdev confi=
g for my hypervisor guest.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I can also see some new update=
s with the XEN 2020.1 and 2020.2 releases<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; which i can be useful to my ap=
plication<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *&nbsp; &nbsp;1:1 =
memory mappings for Xen virtual machines, enabling device<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; assign=
ments without SMMU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;Static assignment of PL blocks, including bus-mastering blocks, to<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Xen vi=
rtual machines<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *&nbsp; &nbsp;Supp=
ort for PL Device Passthrough to DomU in Xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; You are usiong a version of Xen tha=
t has been customised by Xilinx. So I would<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; recommend to contact them directly.=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I have CCed Stefano who might be ab=
le to help you.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Julien,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Many thanks for CC'ing me, I missed the =
email.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Let me CC a few people that might be abl=
e to help.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; <br>
&gt; </p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_VI1PR05MB44303184209DF3F6215FFF3E89309VI1PR05MB4430eurp_--


From xen-users-bounces@lists.xenproject.org Tue Jun 15 20:18:27 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Jun 2021 20:18:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.142399.262765 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltFVG-0005iQ-9E; Tue, 15 Jun 2021 20:17:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 142399.262765; Tue, 15 Jun 2021 20:17:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltFVG-0005iI-5f; Tue, 15 Jun 2021 20:17:42 +0000
Received: by outflank-mailman (input) for mailman id 142399;
 Tue, 15 Jun 2021 20:17:40 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dVE8=LJ=xilinx.com=stefanos@srs-us1.protection.inumbo.net>)
 id 1ltFVE-0005iC-5Y
 for xen-users@lists.xenproject.org; Tue, 15 Jun 2021 20:17:40 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com (unknown
 [40.107.93.83]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id ec9c0a33-bdc5-4209-890f-6822be712eab;
 Tue, 15 Jun 2021 20:17:36 +0000 (UTC)
Received: from SN7PR04CA0025.namprd04.prod.outlook.com (2603:10b6:806:f2::30)
 by BN6PR02MB2675.namprd02.prod.outlook.com (2603:10b6:404:fc::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.22; Tue, 15 Jun
 2021 20:17:34 +0000
Received: from SN1NAM02FT0063.eop-nam02.prod.protection.outlook.com
 (2603:10b6:806:f2:cafe::a6) by SN7PR04CA0025.outlook.office365.com
 (2603:10b6:806:f2::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20 via Frontend
 Transport; Tue, 15 Jun 2021 20:17:33 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0063.mail.protection.outlook.com (10.97.5.98) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4219.21 via Frontend Transport; Tue, 15 Jun 2021 20:17:33 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.2; Tue, 15 Jun 2021 13:17:32 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.2 via Frontend Transport; Tue, 15 Jun 2021 13:17:32 -0700
Received: from [10.23.121.95] (port=54869 helo=localhost)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <stefano.stabellini@xilinx.com>)
 id 1ltFV6-0003Y5-5m; Tue, 15 Jun 2021 13:17:32 -0700
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: ec9c0a33-bdc5-4209-890f-6822be712eab
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MyD3/aIKknpcRYQ9CmJomfoqDY0i5xg+7cwwcX3YEkfq8uPe6Mm+/59CR80K7QT0VnYjXmJ/OzfCs3nyXdJsT+AahQ7MpPPh0auUdvBmdkPQ/CSPoCANE49IAaJGHmCOsHSwnfuvZPFucanVNOyhlX1z/z/3iBvvgSNgKgtJPQiEdo8XegJeTulFvyIs7ENBrhP5ytM+5wCdPmwdy4K7uVpLPdUOcU+9EVK7eAE5i8qeO+x2mS7EFiXT6zntfZabvh7gdM0ZUYcxnvSaIEAvUcYv6KWv6zipDEcKMX3y7DBijaJA8gF7mzyqctX8RgMo2c5z1WFQRgSlVqYdrVptmg==
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-SenderADCheck;
 bh=+/6NgCMchf3raICkkqEuqTRrJqbszp34LrTbsxDpAgY=;
 b=X6Ry+XnWAH77oOHrSlIVPP7EjfWWy9deu17RxRNyzsGrkzFvLuY53ZXA9ip/bseaaMKiM9zoNcyWudpVGhPLO7DEbOJyTLS54bH6zPKajVpoKEczgVv/DO4MXGlEfmfpqDUXN5Aidc4Mg1GIZbK07iXRv+jAx2ZQqO7Kw/cbyE7UyRvOsG7rzH5LQvofmSfbrm5yTX8GgGFeO9JDt2FQfKQLDQPxMNtvcIyl1Oqpbp3OMHjRvA0gmdzLdQ0i9cb+JHVw4tdhC1RkgrvHKtaI9QbxdBh0wk39jx35lmMZrkRz2+Mhrn31y37sAugFt8jh9RfGXybSBWrRk3snlapXfA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=evoleotech.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+/6NgCMchf3raICkkqEuqTRrJqbszp34LrTbsxDpAgY=;
 b=HmSk76o/Q3COy4PiMI6YvhlKclTxmkWiS8uBIdprYRobSGyQI2ADFJZQpj1TIiniJeTWZkHjrqT+tR7f2YgR4TlcMunR4dcGagp5MM8oAtukIR90kDE6CMyWO8eYnxcB8DrrqU59nevgfwGEqTQ81nFOaxRKEI2kdr7eF+LmCos=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; evoleotech.com; dkim=none (message not signed)
 header.d=none;evoleotech.com; dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
Date: Tue, 15 Jun 2021 13:17:29 -0700
From: Stefano Stabellini <stefano.stabellini@xilinx.com>
X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s
To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
CC: Stefano Stabellini <stefanos@xilinx.com>, "xen-users@lists.xenproject.org"
	<xen-users@lists.xenproject.org>, <JOVITAC@xilinx.com>, <fnuv@xilinx.com>,
	<brian.woods@xilinx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL masters
 in ZCU102 dev kit
In-Reply-To: <VI1PR05MB44303184209DF3F6215FFF3E89309@VI1PR05MB4430.eurprd05.prod.outlook.com>
Message-ID: <alpine.DEB.2.21.2106151235180.24906@sstabellini-ThinkPad-T480s>
References: <VI1PR05MB4430D5035127951DEC282E5189429@VI1PR05MB4430.eurprd05.prod.outlook.com> <VI1PR05MB4430B2C2C3FAC23D77021605892D9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105171729480.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB44301C4198B1E9EF7FD8864A892C9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105181109020.14426@sstabellini-ThinkPad-T480s> <VI1PR05MB4430F091D37D614EFAD15C6E89239@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105271745210.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB443063BF7A7C514C1C9C37C489229@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105281140360.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430B62D7D79E47B784FA34C893F9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9@BYAPR02MB4278.namprd02.prod.outlook.com>,<VI1PR05MB44308D16502AA518E05B210C893E9@VI1PR05MB4430.eurprd05.prod.outlook.com>
 <VI1PR05MB44303184209DF3F6215FFF3E89309@VI1PR05MB4430.eurprd05.prod.outlook.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="8323329-1174738140-1623785923=:24906"
Content-ID: <alpine.DEB.2.21.2106151238490.24906@sstabellini-ThinkPad-T480s>
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: cf79d258-3b06-47d4-aad4-08d9303a9c22
X-MS-TrafficTypeDiagnostic: BN6PR02MB2675:
X-Microsoft-Antispam-PRVS:
	<BN6PR02MB2675D965D93E9442C9BF104FA0309@BN6PR02MB2675.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:605;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	04CIEX/v8KG5NkhyXR40WHfvOJ91yy+HXtSzqw1UVIzZb00i3O42m+qhuOUY5pIXr7hAaLPgHO46z/EHL6DEbkW6nLtQURapezTpHie62jJvM56BrGAenbfCdo0ZbXVciZz9e/tkVvhB6MPXMSdg0DY8AYLVgb/m5EIdGwqf5lu8zCPQHAN2Ig7MKAK7Ngbc9k0dp9HeLXv8Ge6AxE3WpZ/szQqasbsZXh9DgiPL4cyX6eoj3CutiRnDiZLsE6xcw7Wmjgm5pqF3W+G+Krc+cdkhbfcbG0vV/6TcfJZxja1sQdjPj95se9X1gvwM5Z5KYun7chu9zvciwink/YOPwJVkRHBbgqtlVB/2tZgJddMOqpkuuLIRJPHeKoZER0gL3pAXOPmD1fUyFuvQu4F6GirLtXtey/ebNqyk615HxYpZchoLYbc2AIXZfCzRmykq67DvoluLtagt9267AeyoWi0cOIgwb0V3hezX4FmcnX75JqK8Mk2YUgWB8l/JsRUwI117XaVlcQjg+hdn4yK3JVPYMrOfbQipprI8nKEVT8RSmHug/G4K58IcNBuVwwoyez5jdF7eKg1AWrzW1bsl/fcga6x/tOlHGydUK8PQcx7tz7MjjLd1dI3gyDNdf8T9kNERg7Y7/eid0AkHtUVH4YKWaRUS0UiIvhMvKgXlHZTo9wSD7vu4gSe28f8Goetats7XSH3VLO0j2FLcx2H0IdtruX8JhtgxeeSaQPL6PndSuwFr1BOQCeUyic/fKlAFCwtC6QFyDlPiXcYF8FqrcfKdzj2q7l75Ux4HtaReMmu0snX3WjbVyTHwiHlT2+7pHRh+clZAuMkEJEPYONIdCw==
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(4636009)(7916004)(136003)(39840400004)(376002)(396003)(346002)(46966006)(36840700001)(70206006)(83380400001)(53546011)(6666004)(26005)(9686003)(426003)(186003)(47076005)(107886003)(70586007)(7636003)(356005)(336012)(5660300002)(478600001)(8936002)(54906003)(4326008)(966005)(45080400002)(33964004)(2906002)(44832011)(36860700001)(6916009)(30864003)(33716001)(8676002)(9786002)(36906005)(316002)(82310400003)(139555002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2021 20:17:33.4590
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cf79d258-3b06-47d4-aad4-08d9303a9c22
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0063.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR02MB2675

--8323329-1174738140-1623785923=:24906
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.21.2106151238491.24906@sstabellini-ThinkPad-T480s>

We don't have a recipe ready. It is not something we test. However I
think it should be possible.

The first step would be try to generate a BOOT.BIN for QSPI booting and
write it to QSPI. The goal is to get to the u-boot prompt, with
everything booted from QSPI. Then the next step is to add Xen, Linux,
the DTB and Linux ramdisk. (Of course if you are OK with loading Xen and
the other binaries from somewhere else like the SD card then it is going
to work as is.)

You should be able to write each binary to QSPI as separate partitions.

At that point, you are only missing a boot.scr that can load them and
boot. ImageBuilder supports custom u-boot load commands by setting the
LOAD_CMD variable. In this case you'd need to set LOAD_CMD to something
like "sf read", but given that the other command arguments are not
filenames, ImageBuilder won't be able to handle it anyway.

But you can take an ImageBuilder-generated boot.source, substitute the
"tftpb" commands with the appropriate "sf read" commands and call
mkimage to get a boot.scr.

Now you should be able to run boot.scr from the u-boot prompt and load
everything from QSPI.

This is some relevant info:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842465/U-Boot+QSPI+Driver


I know it is a bit complex but I think it should work OK.



On Tue, 15 Jun 2021, Prem Harikrishnan wrote:
> Hi Stefano,
> 
> Is it possible to boot XEN from QSPI? Is there an image builder script already available to generate boot.scr? Please let me know.
> Thanks and Best Regards,
> Prem
> 
> ___________________________________________________________________________________________________________________________________________
> From: Xen-users <xen-users-bounces@lists.xenproject.org> on behalf of Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> Sent: Tuesday, June 1, 2021 18:07
> To: Mubin Usman Sayyed <MUBINUSM@xilinx.com>; Stefano Stabellini <stefanos@xilinx.com>
> Cc: xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; Jovita Castelino <JOVITAC@xilinx.com>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> Hi Stefano and Mubin,
> 
> Thank you very much for helping me setup up FreeRTOS and baremetal guests, everything works as expected and I also get expected performance
> in both baremetal and hypervisor guests. Thank you again for your prompt support during the past few weeks.
> 
> Best Regrards,
> Prem
> 
> ___________________________________________________________________________________________________________________________________________
> From: Mubin Usman Sayyed <MUBINUSM@xilinx.com>
> Sent: Tuesday, June 1, 2021 05:38
> To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>; Stefano Stabellini <stefanos@xilinx.com>
> Cc: xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; Jovita Castelino <JOVITAC@xilinx.com>
> Subject: RE: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> 
> In case of FreeRTOS,  you need to use APIs from FreeRTOS port for interrupt handling
>  (https://github.com/Xilinx/embeddedsw/blob/master/ThirdParty/bsp/freertos10_xilinx/examples/freertos_intr_example.c#L192 and line 194).
> Please make sure that you are taking care of that in DMA interrupt example .
> 
>  
> 
> Thanks,
> 
> Mubin
> 
>  
> 
> From: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> Sent: Tuesday, June 1, 2021 2:48 AM
> To: Stefano Stabellini <stefanos@xilinx.com>
> Cc: xen-users@lists.xenproject.org; Jovita Castelino <JOVITAC@xilinx.com>; Mubin Usman Sayyed <MUBINUSM@xilinx.com>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit
> 
>  
> 
>  
> 
> Hi Stefano and Mubin,
> 
> Thank you very much for your replies.
> 
> @Stefano Stabellini Sorry to bother you again, and thank you for pointing this out, the TTC0 is by default enabled for FreeRTOS to generate
> ticks, although this says only for R5 core, i would have never figured this out. As soon as I added the irqs and iomem and gave a xen
> passthrough in the xen.dtsi as you have suggested, FreeRTOS guest started working for other peripherals except for my DMA (FreeRTOS guest
> does not work with interrupt and DMA).
> 
>  
> 
> I can see my DMA is enabled because i have LEDs configured to blink for every interrupt I get from the PL. I don't see my interrupts being
> processed, but when I destroy the guest, I get this output periodically when an interrupt occurs.
> 
>  
> 
> (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
> (XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR1 0x00000e80, GFSYNR2 0x00000000
> 
> (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
> (XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR1 0x00000e80, GFSYNR2 0x00000000
> 
> (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
> (XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR1 0x00000e80, GFSYNR2 0x00000000
> 
>  
> 
> From section 3.6 of the wiki https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters
> 
> Xen and PL Masters - Xilinx Wiki - Confluence
> 
> 3.4 Stream IDs in the Device Tree. For Xen based systems the stream IDs of PL masters must be added to the Linux Dom0 device tree.
> Automated device tree generation does not generate the stream IDs for the PL masters so that the user must add them into the device tree
> manually.
> 
> xilinx-wiki.atlassian.net
> 
> The fault indicates an unidentified stream ID has been received by the SMMU as shown in the GFSR register. The GFSYNR1 register contains
> the stream ID that was unidentified. A stream ID of 0xE80 was unidentified in the above fault.
> 
>  
> 
> But I think i have already added that in my smmu and iommu in xen.dtsi because my baremetal application works well as expected. I have
> attached my xen.dtsi, system.dtsi, baremetal.cfg(working) and freertos.cfg(not working).
> 
> What could I be missing here? Do I have to enable the ttc0 in the device tree?
> 
> Also what does (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 99990 KHz mean when XEN boots up?
> 
> Thanks, I look forward for your reply.
> 
>  
> 
> Best Regards,
> 
> Prem
> 
>  
> 
>  
> 
> 
>  ________________________________________________________________________________________________________________________________________
> 
> 
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> Sent: Friday, May 28, 2021 20:43
> To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; JOVITAC@xilinx.com
> <JOVITAC@xilinx.com>; MUBINUSM@xilinx.com <MUBINUSM@xilinx.com>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit
> 
>  
> 
> From the gpa address, it looks like FreeRTOS is trying to access the TTC
> timer? If you look at device tree, the corresponding node is
> timer@ff110000.
> 
> If FreeRTOS is configured to access the TTC timer, then you need to
> assign it to it. Did you assign the TTC timer to the FreeRTOS domU by
> any chance?
> 
> You can do that by adding:
> 
> irqs = [ 68, 69, 70 ]
> iomem = [ "0xff110,1" ]
> 
> 
> On Fri, 28 May 2021, Prem Harikrishnan wrote:
> > Hi Stefano,
> > Thanks for your reply. I am pretty sure I followed the steps you mentioned below to run the FreeRTOS hello world example. I already added
> > printfs and i can see XEN cannot start the scheduler and i get the following out put on XEN.
> >
> > Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]
> > (XEN) memory.c:255:d0v0 Could not allocate order=9 extent: id=2 memflags=0xc0 (0 of 64)
> > (XEN) memory_map:add: dom2 gfn=ff010 mfn=ff010 nr=1 cache=0
> > (XEN) sched_null.c:344: 1 <-- d2v0
> > (XEN) traps.c:1973:d2v0 HSR=0x93820007 pc=0x00000040012b08 gva=0xff11000c gpa=0x000000ff11000c
> >
> >
> > I also see that according to this article
> > https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as-a-Xen-Virtual-Machine/ba-p/947030
> > [52662iFAD1733707609204?v=v2]
> > Partner: FreeRTOS as a Xen Virtual Machine - Community Forums
> > Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks What is FreeRTOS? The FreeRTOS kernel is a market leading
> real-time
> > operating system for embedded systems. As embedded applications grow in complexity, there is a growing need for a lightweight kernel
> > capable of task scheduling...
> > forums.xilinx.com
> > FreeRTOS does not run out of the box for XEN, although the article is 2 years old, I am not sure if there are any updates on this after
> > that. Can you please confirm?
> >
> > Thanks and Best Regards,
> > Prem
> >
> >__________________________________________________________________________________________________________________________________________
> _
> > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > Sent: Friday, May 28, 2021 02:51
> > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>;
> JOVITAC@xilinx.com
> > <JOVITAC@xilinx.com>; MUBINUSM@xilinx.com <MUBINUSM@xilinx.com>
> > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > +Mubin
> >
> >
> > Hi Prem,
> >
> > Did you make sure to build FreeRTOS as "hypervisor guest"? I think
> > FreeRTOS is built to run at EL3 by default so if that is not changed
> > there are errors when run on any hypervisor. It is possible to build
> > FreeRTOS to run on Xen but it requires a couple of manual steps:
> >
> > - source settings64.sh from Vitis builds
> > - xsct
> > - set WORKSPACE .
> > - setws -switch $WORKSPACE
> > - app create -name freertos-hello-world -template {FreeRTOS Hello World} -proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx
> > - bsp config stdin psu_uart_1
> > - bsp config stdout psu_uart_1
> > - bsp config hypervisor_guest true
> > - Go to application source path and modify the linker script start address to 0x40000000,
> > - app build -name freertos-hello-world
> > - Run command to generate BIN file from executable "aarch64-linux-gnu-objcopy -O binary --gap-fill 0  <elf path> BOOT.BIN"
> >
> > The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,
> > might be able to provide additional info.
> >
> >
> >
> > On Thu, 27 May 2021, Prem Harikrishnan wrote:
> > > Hi Stefano,
> > > Sorry to bother you again.
> > > I am currently trying to run my custom IP which sends periodic dma interrupts to the PS with cache coloring enabled. I have now
> compiled
> > my
> > > guest running with FreeRTOS and it generates a trap.
> > > Petalinux and VITIS IDE Version is 2020.2.
> > >
> > > Please find the log attached. After the trap occurs, for every interrupt XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context
> fault:
> > > fsr=0x402, iova=0x41000000, fsynr=0x12, cb=1
> > >
> > > root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing config from apu_freertos.cfg
> > > (XEN) Dom1 colors: [ 8 ]
> > > (XEN) memory.c:255:d0v0 Could not allocate order=9 extent: id=1 memflags=0xc0 (0 of 64)
> > > (XEN) memory_map:add: dom1 gfn=ff010 mfn=ff010 nr=1 cache=0
> > > (XEN) memory_map:add: dom1 gfn=a0010 mfn=a0010 nr=1 cache=0
> > > (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000
> > > (XEN) sched_null.c:344: 1 <-- d1v0
> > > (XEN) traps.c:1973:d1v0 HSR=0x93820007 pc=0x00000040013188 gva=0xff11000c gpa=0x000000ff11000c
> > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0x41000000, fsynr=0x12, cb=1
> > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0x41000000, fsynr=0x12, cb=1
> > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0x41000000, fsynr=0x12, cb=1
> > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0x41000000, fsynr=0x12, cb=1
> > >
> > > The same application works as expected without FreeRTOS, i.e as a baremetal guest. I look forward for your comment on this.
> > >
> > > Although i see performance degradation, normally i can measure delta time for each interrupt configured to 1ms (without XEN), with XEN
> > for
> > > the same measurement shows 16 ms for each interval (but the performance is not a priority for now).
> > > Thanks and Best Regards,
> > > Prem
> > >
> >>_________________________________________________________________________________________________________________________________________
> _
> > _
> > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > Sent: Tuesday, May 18, 2021 20:09
> > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>;
> > JOVITAC@xilinx.com
> > > <JOVITAC@xilinx.com>
> > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > > Great to hear! Thank you for reporting back.
> > >
> > >
> > > On Tue, 18 May 2021, Prem Harikrishnan wrote:
> > > > Dear Stefano,
> > > > Thank you very much for your guidance and support. I finally fixed the issue. I made an error in base memory address like you pointed
> > > out.
> > > > I actually modified the base address correctly to 0x40000000 but the default C code had an additional offset of 0x1100000 , and the
> > DomU
> > > > memory allocated was only 8MB. I either had to change the offset or allocate more memory to the DomU guest which i missed until you
> > > pointed
> > > > out. Additionally i had to set to AxPROT bits to 0x2 in Vivado and the SMID required is 0xE80.
> > > >
> > > > Thanks again i was able get my custom IP also working as an AXI master from PL.
> > > >
> > > > Best Regards,
> > > > Prem
> > > >
> >>>________________________________________________________________________________________________________________________________________
> _
> > _
> > > _
> > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > Sent: Tuesday, May 18, 2021 02:35
> > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; Brian Woods <brian.woods@xilinx.com>; Julien Grall <julien@xen.org>; Stefano
> > > > Stabellini <sstabellini@kernel.org>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; fnuv@xilinx.com
> > <fnuv@xilinx.com>;
> > > > edgari@xilinx.com <edgari@xilinx.com>; bwoods288@gmail.com <bwoods288@gmail.com>; Renato Costa Amorim <renato.amorim@evoleotech.com>;
> > > > JOVITAC@xilinx.com <JOVITAC@xilinx.com>
> > > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > > > Your configuration looks correct as far as I can tell.
> > > >
> > > > You need dtdev because it triggers the SMMU configuration for your PL
> > > > block. You don't need device_tree because your baremetal application is
> > > > not going to read it, but it is not going to cause any issues either.
> > > >
> > > > When you say "the execution does not complete the loop at line 244", it
> > > > means that you see the execution entering the loop and then never
> > > > leaving? Like an infinite loop?
> > > >
> > > > If so, then I imagine the issue could be that the application is
> > > > crashing when trying to access TxBufferPtr, which is pointing to
> > > > TX_BUFFER_BASE, which is:
> > > >
> > > >
> > > > #ifndef DDR_BASE_ADDR
> > > > #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \
> > > >                  DEFAULT SET TO 0x01000000
> > > > #define MEM_BASE_ADDR           0x01000000
> > > > #else
> > > > #define MEM_BASE_ADDR           (DDR_BASE_ADDR + 0x1000000)
> > > > #endif
> > > >
> > > > #define TX_BUFFER_BASE          (MEM_BASE_ADDR + 0x00100000)
> > > >
> > > >
> > > >
> > > > Can you double check that TX_BUFFER_BASE is pointing to a correct
> > > > address? Memory starts at 0x40000000 in a Xen DomU.
> > > >
> > > > Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?
> > > >
> > > >
> > > > On Mon, 17 May 2021, Prem Harikrishnan wrote:
> > > > > Hi Stefano,
> > > > > Thanks again for your reply and your suggestion.  I did try to replace the Xil_DCacheFlushRange with
> Xil_DCacheInvalidateRange(works
> > > only
> > > > > in EL3), I added printfs to debug, i can see that the execution does not complete the loop at line 244
> > > > > https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c  and
> > > > > Xil_DCacheFlushRange is not reached. Please find attached my xen bootlog.txt.
> > > > > I am still unable to find out why??
> > > > >
> > > > > Can you please atleast verify that my xen.dtsi, and pl.dtb is correct? and do i need dtdev and device_tree in my guest config file
> > when
> > > > it
> > > > > is already added to xen.dtsi?
> > > > >
> > > > > Best Regards,
> > > > > Prem
> > > > >
> > > > >
> >>>>_______________________________________________________________________________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > Sent: Saturday, May 15, 2021 00:25
> > > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; Brian Woods <brian.woods@xilinx.com>; Julien Grall <julien@xen.org>;
> Stefano
> > > > > Stabellini <sstabellini@kernel.org>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; fnuv@xilinx.com
> > > <fnuv@xilinx.com>;
> > > > > edgari@xilinx.com <edgari@xilinx.com>; bwoods288@gmail.com <bwoods288@gmail.com>; Renato Costa Amorim
> <renato.amorim@evoleotech.com>;
> > > > > JOVITAC@xilinx.com <JOVITAC@xilinx.com>
> > > > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > > > > Hi Prem,
> > > > >
> > > > > Some older versions of Xil_DCacheFlushRange were implemented using
> > > > > deprecated set/way instructions that are known to cause problems in
> > > > > virtualized environments.
> > > > >
> > > > > More recent implementations use the "dc civac" intruction that shouldn't
> > > > > have any issues.
> > > > >
> > > > > Can you double-check that you are calling the 64-bit version implemented
> > > > > by CIVAC?
> > > > >
> >>>>https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#L
> 4
> > 1
> > > 4
> > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > > Hi Stefano, 
> > > > > > Thanks for your reply. Yes the axidma application is a baremetal application from the xilinx vitis ide example. 
> > > > > > Also yes, I have already run hello world as DomU guest, with UART1.
> > > > > >
> > > > > > I am using the simple mode using polling and not interrupts(they are disabled in the c code), which is Why I didn't include in
> the
> > > > guest
> > > > > > config file. This works well when I compile it normally (as EL3). When compiled as hypervisor guest, the execution stops before
> the
> > > > > > function xil_dcacheflushrange(). Please find the c code attached
> > > > > > in https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c 
> > > > > >
> > > > > > I found the SATA example similar to my use case, also using DMA and SMMU. I just used it as a reference to create my pl.dtb to
> pass
> > > > > through
> > > > > > in the guest config.(from pl.dtsi, which I manually created).
> > > > > >
> > > > > > Thanks and Best Regards,
> > > > > > Prem
> > > > > >
> > > > > > Get Outlook for Android
> > > > > >
> >>>>>______________________________________________________________________________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > > Sent: Friday 14 May 2021, 23:16
> > > > > > To: Prem Harikrishnan
> > > > > > Cc: Brian Woods; Stefano Stabellini; Julien Grall; Stefano Stabellini; xen-users@lists.xenproject.org; fnuv@xilinx.com;
> > > > > edgari@xilinx.com;
> > > > > > bwoods288@gmail.com; Renato Costa Amorim; JOVITAC@xilinx.com
> > > > > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit
> > > > > >
> > > > > > I take that the guest kernel "/bin/xaxidma_example_simple_poll_1.bin" is
> > > > > > a baremetal application? Can you run it successfully, just printing
> > > > > > "hello world", if you only assign the UART and nothing else?
> > > > > >
> > > > > > I am asking just to verify that you can run the baremetal VM
> > > > > > successfully, aside from the PL device assignment.
> > > > > >
> > > > > >
> > > > > > In regards to the PL device assignment, I'll let Brian answer on the
> > > > > > Vivado configuration and SMID calculation. But I noticed that you only
> > > > > > assigned IRQ 54 to the DomU which is the one for UART1. You haven't
> > > > > > assigned any IRQs for axi_dma_0. Looking at pl_from_petalinux.dtsi, it
> > > > > > looks like there are two related IRQs: 121 and 122.
> > > > > >
> > > > > > Finally, why did you mention SATA passthrough in your reply? I don't
> > > > > > follow: I cannot see any SATA controller assignment in your
> > > > > > configuration.
> > > > > >
> > > > > >
> > > > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > > > Dear Brian, Stefano and Julien,
> > > > > > >
> > > > > > > Thank you very much for your replies.
> > > > > > > Hi Brian and Stefano, Can you please help me with the following questions?
> > > > > > >
> > > > > > > @Brian Woods Please find attached my vivado configuration, when i added my AXI DMA now running on simple polling
> mode(previously
> > i
> > > > > tried
> > > > > > it
> > > > > > > with Scatter Gather mode), Run Automation automatically generated, 1 AXI Interconnect and 1 smart connect. Since there is only
> 1
> > > > master
> > > > > > and
> > > > > > > I use the S_AXI _HP0_FPD, I finally get a value of 0xE80 for the stream IDs.
> > > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters According to this link section 6.5 I have
> > > manually
> > > > > tied
> > > > > > > of AxPROT bits to value of 0x2 to create non secure transactions. Can you please confirm that my Vivado configuration is
> correct?
> > I
> > > > can
> > > > > > > update you soon with an ILA trace on Vivado.
> > > > > > >
> > > > > > > @Stefano Stabellini Please find attached my pl.dtsi generated from petalinux and system.dtsi also generated after manually
> adding
> > > > > > xen.dtsi.
> > > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561/Building+Xen+Hypervisor+with+Petalinux+2020.1+and+2020.2 Using
> > this
> > > > > SATA
> > > > > > > passthrough, i made my own pl.dtsi for passthrough used in dma.cfg. I could really use your help to identify what is missing in
> > my
> > > > xen
> > > > > > > configuration.
> > > > > > >
> > > > > > > Thanks and Best Regards,
> > > > > > > Prem
> > > > > > >
> >>>>>>_____________________________________________________________________________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > _
> > > > > > > From: Brian Woods <brian.woods@xilinx.com>
> > > > > > > Sent: Thursday, May 13, 2021 17:13
> > > > > > > To: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > > > Cc: Julien Grall <julien@xen.org>; Prem Harikrishnan <prem.harikrishnan@evoleotech.com>; Stefano Stabellini
> > > <sstabellini@kernel.org>;
> > > > > > > xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; brian.woods@xilinx.com <brian.woods@xilinx.com>;
> fnuv@xilinx.com
> > > > > > > <fnuv@xilinx.com>; edgari@xilinx.com <edgari@xilinx.com>; bwoods288@gmail.com <bwoods288@gmail.com>
> > > > > > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > > > > > > Prem,
> > > > > > >
> > > > > > > Sorry for the late email, I've been under the weather and have been away
> > > > > > > from my computer.  In the Zynq SOCs this is how the SMMU IDs in PL are
> > > > > > > calculated:
> > > > > > >
> > > > > > > 14-10: TBU bits
> > > > > > > 9-6: Master ID bits
> > > > > > > 5-0: AXI ID bits
> > > > > > >
> > > > > > > https://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultrascale-trm.pdf
> > > > > > > To look up the TBU value, see UG1085 and look for the "System Masters"
> > > > > > > table which is table 16-4 on page 409.
> > > > > > >
> > > > > > > For the master ID, see UG1085 and look for the "Master IDs List" table
> > > > > > > which is table 16-13 on page 429.
> > > > > > >
> > > > > > > The AXI ID bits is a bit trickery since it's going to be out in PL.
> > > > > > > See: https://www.xilinx.com/support/answers/69447.html
> > > > > > > With SmartConnect all the AXI IDs are 0, they aren't passed on.  There
> > > > > > > are work arounds.  Here's a couple of examples (with example numbers):
> > > > > > >
> > > > > > > AXI master -> PS slave port 0
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001
> > > > > > >
> > > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000
> > > > > > >
> > > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > > >                            -> PS slave port 1
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000
> > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000
> > > > > > >
> > > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)
> > > > > > >
> > > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > > >                                 -> PS slave port 1
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)
> > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000 (both share)
> > > > > > >
> > > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS slave port 0
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)
> > > > > > >
> > > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS slave port 0
> > > > > > >                                                         -> PS slave port 1
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)
> > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000001 (master #1)
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)
> > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000002 (master #2)
> > > > > > >
> > > > > > > The "sideband -> SmartConenct -> sideband" can also be functionally
> > > > > > > replaced with "AXI Interconnect" to my knowledge.  So the AXI ID bits are
> > > > > > > fairly simple but with some caveats.
> > > > > > >
> > > > > > > You can also read in the SMMU faults from Xen and use:
> > > > > > > https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_architecture_specification.pdf
> > > > > > > to decode them. That should tell you the SMMU IDs as well.
> > > > > > >
> > > > > > > Let me know if this isn't clear or you have any other questions.
> > > > > > >
> > > > > > > Brian
> > > > > > >
> > > > > > > On Mon, May 10, 2021 at 06:49:07PM -0700, Stefano Stabellini wrote:
> > > > > > > > On Mon, 10 May 2021, Julien Grall wrote:
> > > > > > > > > On 26/04/2021 15:41, Prem Harikrishnan wrote:
> > > > > > > > > > Hello everyone,
> > > > > > > > >
> > > > > > > > > Hi Prem,
> > > > > > > > >
> > > > > > > > > > I am using the latest version of the xilinx mpsoc zcu102 development board
> > > > > > > > > > and i am trying to create a barematal application that uses the AXI DMA on
> > > > > > > > > > the programmable logic, using the scatter gather example from the xilinx
> > > > > > > > > > repository. This works perfectly well for the baremetal application. The
> > > > > > > > > > diagram below represents the information flow. The AXI DMA and the AXI data
> > > > > > > > > > FIFO are in the Programable logic (FPGA). This AXI DMA is out of the box IP
> > > > > > > > > > from Vivado and uses a single channel (Does not use AxUSER) which means the
> > > > > > > > > > AXI ID cannot manually be set.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Now i want to make this as a baremetal hypervisor guest, in future this will
> > > > > > > > > > be replaced by a custom IP with cache colouring enabled. I want to pass
> > > > > > > > > > through the AXI DMA in the PL. (Not to be used by Dom0)
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > I followed this tutorial Baremetal + DomU
> > > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremetal+DomU>
> > > > > > > > > > guest changed the base address to 0x4000000,(1GB allocated to Dom-0) to
> > > > > > > > > > create my EL1 binary. I used Petalinux 2020.2 to generate my linux, xen
> > > > > > > > > > image and use tftp to boot.
> > > > > > > > > >
> > > > > > > > > >  From what i understand from the xilinx tutorials Xen+and+PL+Masters
> > > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters>
> > > > > > > > > > section 3 and MPSOC SMMU
> > > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraScale+MPSOC+SMMU>
> > > > > > > > > > section 4, stream ids are required by the SMMU to get the correct address
> > > > > > > > > > translation.
> > > > > > > > > >
> > > > > > > > > > I am still unable to figure out how to get the iommu property for my AXI DMA
> > > > > > > > > > and how to set the dtdev config for my hypervisor guest.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > I can also see some new updates with the XEN 2020.1 and 2020.2 releases
> > > > > > > > > > which i can be useful to my application
> > > > > > > > > >
> > > > > > > > > >   *   1:1 memory mappings for Xen virtual machines, enabling device
> > > > > > > > > >     assignments without SMMU
> > > > > > > > > >   *
> > > > > > > > > >       Static assignment of PL blocks, including bus-mastering blocks, to
> > > > > > > > > >     Xen virtual machines
> > > > > > > > > >   *   Support for PL Device Passthrough to DomU in Xen
> > > > > > > > >
> > > > > > > > > You are usiong a version of Xen that has been customised by Xilinx. So I would
> > > > > > > > > recommend to contact them directly.
> > > > > > > > >
> > > > > > > > > I have CCed Stefano who might be able to help you.
> > > > > > > >
> > > > > > > > Hi Julien,
> > > > > > > >
> > > > > > > > Many thanks for CC'ing me, I missed the email.
> > > > > > > >
> > > > > > > >
> > > > > > > > Hi Prem,
> > > > > > > >
> > > > > > > > Let me CC a few people that might be able to help.
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
> 
> 
> 
--8323329-1174738140-1623785923=:24906--


From xen-users-bounces@lists.xenproject.org Wed Jun 16 21:39:56 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Jun 2021 21:39:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.143536.264474 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltdFd-0003WN-Sv; Wed, 16 Jun 2021 21:39:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 143536.264474; Wed, 16 Jun 2021 21:39:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltdFd-0003WF-Pq; Wed, 16 Jun 2021 21:39:09 +0000
Received: by outflank-mailman (input) for mailman id 143536;
 Wed, 16 Jun 2021 21:39:08 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gqzc=LK=gmx.de=bobbisanchez@srs-us1.protection.inumbo.net>)
 id 1ltdFb-0003W9-VB
 for Xen-users@lists.xenproject.org; Wed, 16 Jun 2021 21:39:08 +0000
Received: from mout.gmx.net (unknown [212.227.15.18])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 68582f31-7549-42f4-8c2e-8a15e8f0fbb7;
 Wed, 16 Jun 2021 21:39:06 +0000 (UTC)
Received: from [192.168.123.64] ([77.64.145.119]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N7zBR-1lFo9y1T2B-0154dJ for
 <Xen-users@lists.xenproject.org>; Wed, 16 Jun 2021 23:39:05 +0200
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 68582f31-7549-42f4-8c2e-8a15e8f0fbb7
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;
	s=badeba3b8450; t=1623879545;
	bh=mVgFW2KGFVMegcEVZltMIpeHOAewgM3WCg06kKeHnAg=;
	h=X-UI-Sender-Class:To:From:Subject:Date;
	b=f5Nw2ZaxWjzORibtujHPTs0D2bBjT9+oZtuma8FJtGPXQuBaeJEqIny9C9WXeVOZQ
	 mYPbAoRASAdnrzrysD1Lp0fH78tqvZLbboZecr+SnSsWxyfRsEe/BGbyDVvvLVeXd4
	 bJnKlkxuFfKmgRf77BJ3IcenW79PtlofEXq51UPg=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
To: Xen-users@lists.xenproject.org
From: Bobbi Sanchez <bobbisanchez@gmx.de>
Subject: Howto read MSR thermal under XEN-4.15.0
Message-ID: <1b165ee0-fd39-4dcb-bd5c-5720aed0bef0@gmx.de>
Disposition-Notification-To: Bobbi Sanchez <bobbisanchez@gmx.de>
Date: Wed, 16 Jun 2021 23:39:01 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.10.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: de-DE
X-Provags-ID: V03:K1:HUzsSladxSoCVTPOruIBdudK51q0On7McqNHzjO97eWTeP4AFta
 wd+SRQMIE0W3YzOgPzOJklDLZY1R8uHaBdeCubZfMxg8RGKXAWdkkKHqqaf6dsTntPOYzTd
 GqcHG+mZffEdghlVS/GNKCwdti6lUPvnSnjN+wtGi4X8k4iXHozTlJWbo3zd991iavqVK5Y
 1T83oYG+ZsmYsrqtpNoEA==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:nqAxbasLR2w=:6VB0tkkiyJFOFUg2lESIBB
 usS9zpS6c/PLVGql8ejt4LAy7WkRPF01tBfJpPEk9BygoAD7UIp8wHlwq89Zdwc3F4hQRwojB
 N92guq0fnrHY5I1TMq0TfGWl43oOeEUld4vvPT4NR1N81XjcPjsGfqfVdpO5DwRhHqAT7Ap81
 zZUzehXFS0sMmYmD/ZHaaA2wudsUYiX7FfSqn9qnTOr8wyINcDkypQmJVsaySih3tjyGeYwYc
 9qFtrkdse7sWBMkydA/Tst14h5P+jad5Ocy4B8pUBFJTgODMMfH3dIPpyTRsifQ2blIfY/Bge
 HJ8b9sbVuAlmTWjnACRh9pSi/a/SdS9WqxVzIE64ZDqL4L0ZoaspOVqBnNiCBRNysvrdfVkfh
 ZNTKCrlCedZMRc8xaSMp2IuA6zNNv3S2IhSa0aqzncYqUF5rBwr37Z671ij0Z6vLAMdzQpCAW
 3Y5mnuVA1BHJi5vzUTXCzhaatrOS89u39AIjgsD7UYHgSBTrixE0AMlCDHBLw2+CPU6PzTmGd
 u8D5r/FmEcxwewL6aR6wZw7dQl9fR+Am4dHccC4IX3wRBtJPbageTuhr0x8QZgygA/SJ9iVFG
 oDVG9pxhYXvL6eviyt/L88zSU4yr+4rsrNh9OmvP1ArvUfRXeR3DlFdyJ6F97EWtLXq5dBEaN
 aIDBKXPIOnD0x3gGYmGF/dTk/FDQvXbpoKgiRsVmpoSGwhFYjsLvGxyaG+6Y7/BHTOgbh3t1f
 oAWmS7Ba14mfxsX30iVW39QV2DJmJnD0Z3CRw5GBu7MfPwZ8HuBf8DzSr6MIpt5LY79jaKNck
 apqlSq1uxOGUhKru7JwrdNJEQX5hLz4QcHF9eGL2H2V2XtN0kymejpx+eVonBIi73E98eElbV
 g4FkfwBuy0d0JFWaz5IL866W0x/kangRJzuYrJcp+tknsAkqIHzIqomfKk78ix4bLccJ7lO1/
 ga0VDDkjc+1qM8WRPQ2FFqsyrW1mQE6HvlmAdKFA8dTZgvM9/jdIfEqxSa1c68S44+RH9tFzu
 F9ikIGQvEFrTnfD44dCDRWPJ2BliYwxhk+O9NEbqoKp9nesVTwXFRn1iwBiY/T8C+ET4mo649
 ZEY9xi7JXmvSxPftUokyU1cL4am+Juup+A2

Hi,

how can i read the MSR Thermal Values under XEN-4.15.0 ?

Usually without having XEN-4.15.0 installed i can read the MSR Thermal Values like this:

rdmsr -p 0 -d -f22:16 0x19c

this works for my Core2Quod Q6600.

But after having xen-4.15.0 installed and booted, same command shows now: 0


Best Regards

B. S.



From xen-users-bounces@lists.xenproject.org Thu Jun 17 11:09:45 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Jun 2021 11:09:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.143817.264894 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltptT-0001jd-2U; Thu, 17 Jun 2021 11:09:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 143817.264894; Thu, 17 Jun 2021 11:09:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltptS-0001jV-VG; Thu, 17 Jun 2021 11:09:06 +0000
Received: by outflank-mailman (input) for mailman id 143817;
 Thu, 17 Jun 2021 11:09:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ltptR-0001jM-M4
 for Xen-users@lists.xenproject.org; Thu, 17 Jun 2021 11:09:05 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1ltptQ-0007dd-EE; Thu, 17 Jun 2021 11:09:04 +0000
Received: from [54.239.6.186] (helo=a483e7b01a66.ant.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1ltptQ-0002z5-7G; Thu, 17 Jun 2021 11:09:04 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	MIME-Version:Date:Message-ID:From:References:To:Subject;
	bh=H0G6IP05Z/xQxDUrcq5U5h+qyoIKhYqZBqwwKsjiE2Y=; b=6Wymjz209VJRMfMNm9RXRSmb9A
	m0J+f/GQtfKNG7axhg7AyN6ylLXytapHkaH1jUF/+o7XwYInKkfD0Fe1xd2A6SMNW9MTWF4Z7aQci
	Ne7xA4ojsRdwPjHRGPv9NNSgBIgAVc+8I/F8gLpe4SGvkY2H7U+ECqhHoMgXVi70kQ4A=;
Subject: Re: Howto read MSR thermal under XEN-4.15.0
To: Bobbi Sanchez <bobbisanchez@gmx.de>, Xen-users@lists.xenproject.org,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <1b165ee0-fd39-4dcb-bd5c-5720aed0bef0@gmx.de>
From: Julien Grall <julien@xen.org>
Message-ID: <95ce3aca-326a-df20-4a74-60cf03e240bc@xen.org>
Date: Thu, 17 Jun 2021 13:09:02 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.11.0
MIME-Version: 1.0
In-Reply-To: <1b165ee0-fd39-4dcb-bd5c-5720aed0bef0@gmx.de>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-GB
Content-Transfer-Encoding: 7bit

(+ Andrew and Jan)

Hi,

On 16/06/2021 23:39, Bobbi Sanchez wrote:
> Hi,
> 
> how can i read the MSR Thermal Values under XEN-4.15.0 ?
> 
> Usually without having XEN-4.15.0 installed i can read the MSR Thermal 
> Values like this:
> 
> rdmsr -p 0 -d -f22:16 0x19c
> 
> this works for my Core2Quod Q6600.
> 
> But after having xen-4.15.0 installed and booted, same command shows now: 0

I believe the access was restricted as part of XSA-351 [1]. I am not 
sure if there are a safe generic way to access them. I will let Andrew 
and Jan commenting.

[1] https://xenbits.xen.org/xsa/advisory-351.html
> 
> 
> Best Regards
> 
> B. S.
> 
> 

-- 
Julien Grall


From xen-users-bounces@lists.xenproject.org Thu Jun 17 11:17:42 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Jun 2021 11:17:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.143829.264911 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltq1c-0003cC-2R; Thu, 17 Jun 2021 11:17:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 143829.264911; Thu, 17 Jun 2021 11:17:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltq1b-0003c4-VO; Thu, 17 Jun 2021 11:17:31 +0000
Received: by outflank-mailman (input) for mailman id 143829;
 Thu, 17 Jun 2021 11:17:30 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/zva=LL=citrix.com=andrew.cooper3@srs-us1.protection.inumbo.net>)
 id 1ltq1a-0003bw-H0
 for Xen-users@lists.xenproject.org; Thu, 17 Jun 2021 11:17:30 +0000
Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 5928aec0-37db-4451-9e3b-3d67b04aa18e;
 Thu, 17 Jun 2021 11:17:29 +0000 (UTC)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 5928aec0-37db-4451-9e3b-3d67b04aa18e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1623928649;
  h=to:references:from:subject:message-id:date:in-reply-to:
   content-transfer-encoding:mime-version;
  bh=AHShtWa3JvGfOvnI+FTUDteO6jCJabqgR/rMfKbbsZc=;
  b=hWueros7blxIdJSfkN6YcS2CPvbc1mNKvrdRGUOCAg5/hWJQArNUQzqy
   dObnnKZXlQfajfnP/q3LBZgyDkUJ6z6bRJ/x5ZkVA7DZgIOWw+gX2N8g+
   qA/3O8H6yEUx0iimatJYOFXqYdTmumjvN2ONdS6VFIRVLEARsgDbcfgLV
   g=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: T/7Mq5L7gJD9U1+nCJMJWHwL/47XAhvh7R/lFGQdXMZSFCuwaHHb6IEr7Bpz9oix5uKxA2ihbk
 VU+PTAFHTEGxv2MMQHPHBY/aUXja0BskAWD4ga0/ZODKGnr6q2HvUQqyH69CCoiSWC0y1IkKPw
 mcUl62gDKrsXZbr3SEfNIn4f3BON89HbpnYO7So8ByEq8Dvpdy2hh4x1YC/E+QjnbBHLDohOLm
 6Bnxl1G58zbFt911qOWRmsaJIoWIw3FW5uOJOCACFcjf4fZs95jErOZsuo8n89NzTKkIVAU/gC
 ygA=
X-SBRS: 5.1
X-MesageID: 46354260
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.158.21
X-Policy: $RELAYED
IronPort-HdrOrdr: A9a23:mHhPq6v0uCfinclJcB0byN/07skCgIMji2hC6mlwRA09TyXGra
 6TdaUguiMc1gx8ZJhBo7C90dq7MAzhHPlOkPUs1NaZLXTbUQ6TTb2KgrGSuwEIdxeOkdK1kJ
 0QCZSWa+eAfmSS7/yKmTVQeuxIqLLsndHK9IWuukuFDzsaD52Ihz0JejpzeXcGIjWua6BJca
 Z0qvA33AZJLh8sH7WG7zQ+LqT+juyOsKijTQ8NBhYh5gXLpTS06ITiGxzd+hsFSTtAzZor7G
 CAymXCl+uemsD+7iWZ+37Y7pxQltek4txfBPaUgsxQDjn3kA6naKloRrXHljEop+OE7kosjb
 D30lgdFvU2z0mUUnC+oBPr1QWl+i0p8WXexViRhmamidDlRRohYvAxxr5xQ1/80Q4Nrdt82K
 VE0yayrJxMFy7Nmyz7+pzhSwxqrEypunAv+NRjz0C3abFuLYO5kLZvuH+8SPw7bWXHAcEcYa
 hT5fjnlbRrmQjwVQGegoEHq+bcLEjaHX+9MwM/U4KuomFrdUtCvjwlLfok7z89HaIGOu15Dt
 v/Q9JVfZF1P4UrhPFGdao8qfXeMB2FffuaChPtHb2gLtBeB07w
X-IronPort-AV: E=Sophos;i="5.83,280,1616472000"; 
   d="scan'208";a="46354260"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KSPN6RnMHyi0Nj/En+JeHkNTHEO04AipcbKHCeNN8aNckDtI1bWE2PEc2OcEhD9DxqJDQZAQvGi7pR0yxlm6OWFr88hWBTE2Y458nVuiAswn4vVM26fgF2Pf6Qdn83K5kSVEJqHIKyoSuD6nzAO1oTI/ykmOJau0AvChgfnzx9+gTBBWQ5e3PqtbGZ1hc+S1lh9iZQ2ABPUcMIeASNgG+K2ZXvrSI2zxmF2BOyhAC/TBY4upbXsegbh84jGo99AXIFFQNRgudDmSSIEgSZfO1J8F3PYBvk9223SC5v2ksn3rEKiDhy79yzJbVQIDI+yr7svPRT+Wf7h1TJ6UjmPHlw==
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-SenderADCheck;
 bh=AHShtWa3JvGfOvnI+FTUDteO6jCJabqgR/rMfKbbsZc=;
 b=IdXYAFT2VPAnekflpvNPaEXLuAopIxIKi2zsA2f31fUwFY7GZO/tks9/cz7cGI7i/pOkVKslaSwoJ2Ou6BNsXXniv/swnyGL4Yi8TtREzG0rkfjCiijUoZKpfhWhI2m/bJaIejC3F9pE/OKN/yAyHsTCM6mwYOX1kkfhrPomv7ylvuos4QMoBbhB8y8zkSnO7qlwP2FKW7U6xVJOrgx6PoGh9UOvbJ8A6hY31u417Byr/FVkt6ELr9+nHDpZIGSLBPfZbWJ21K4OaO8wbQfwOFFGlRejEQdR//D8PLpKDr6prbdmCy7QWydckOkjOjfaOH1ABQhDaY4Penz1Y01K/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AHShtWa3JvGfOvnI+FTUDteO6jCJabqgR/rMfKbbsZc=;
 b=NMsfaCB1JqG4eW5FK09nEO8NEjVBMYhZvPp81ERI/dOZy2Dm+dSCrf05ZFkUGdG2X07GUkAWrITLNIIMg5jOGQXG9a+zvjlBIcgiB2eZkbHvCKUigBXZzIdGJ9PJSOjkWqR1BZBhWP20RZ1XJmpcNmxWXNw/tK8U+3YXX3o0AeM=
To: Julien Grall <julien@xen.org>, Bobbi Sanchez <bobbisanchez@gmx.de>,
	<Xen-users@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>
References: <1b165ee0-fd39-4dcb-bd5c-5720aed0bef0@gmx.de>
 <95ce3aca-326a-df20-4a74-60cf03e240bc@xen.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: Howto read MSR thermal under XEN-4.15.0
Message-ID: <e2d6c8fb-ca15-bd99-bda0-83bc1f02e524@citrix.com>
Date: Thu, 17 Jun 2021 12:17:19 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.11.0
In-Reply-To: <95ce3aca-326a-df20-4a74-60cf03e240bc@xen.org>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB
X-ClientProxiedBy: LO4P123CA0420.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18b::11) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 65780c82-36c4-4ce2-6fb5-08d931817bd3
X-MS-TrafficTypeDiagnostic: BYAPR03MB3800:
X-Microsoft-Antispam-PRVS: <BYAPR03MB3800AB5F78CE4021DF2C5C1EBA0E9@BYAPR03MB3800.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8273;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: QjyVZ0yek/lRB4XVFF5IHuZY9zCQEpT3+nqFTBtBtPviWF3+DcOr/nQkNntfKq5baS9dUxUy4EcbWc9eJAg9xbPM+AGWusPnAbY4rLMP5GRn4+ZlBXXXD8tTeoTyJZm+NvkSj2eUJMiXHB64SpdGr0aZHS9IJWpSZTUM6I1rB2vZWlsMFnyAETeBGL36JrtHiwD4JzCPJlQkJUzoyQf/cElzLKmapww/k+RaMhfgvqm/wUQWkjEKxX5Rk5M6664mhUXDdMsN91QY2eRtm05QSQSgUkL+swR2SlTMn0iQnYuOjpfR6ugr3RFBxDgVuRgOTAa6SY0lwbTHKqOv/+LSubuqvIoV2lpPtOALlx8B9y5u2LOQQEOMv0UeFmICoapdqX3R3Zpg6FHYo9BUO5JImdNegG0HRxOFzV0Z5HPAnS+Qka9M9acn/Wi+QR3eCrBkoePa8FI4723cyM7R704RYvutrld6R10MVlzpw48idWbEdyADoHrn2IhPE5WZmWPgTPsmoeeGtSxctm7ydvjCP/brgU779GZNLc4CVXFWDGHYejDbtD8UykC9IhvqNfm2umZHxSIqKyPwUH+YxGzOGf7VdUOkE2YEw74uxwDaXzYR18cuWusWf8blHDzn014uC5xE01fc9idJh4ZKrQZzazsQ8Z7v7rK+vor62mv6XArdq0JnXgKLSDCDCl0e9YKI
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(366004)(376002)(346002)(136003)(39860400002)(5660300002)(8936002)(6486002)(83380400001)(110136005)(8676002)(66476007)(66946007)(316002)(2616005)(31686004)(16576012)(86362001)(53546011)(36756003)(26005)(16526019)(2906002)(478600001)(31696002)(956004)(38100700002)(66556008)(186003)(6666004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZUJmU3VGamdPWHBhdmo5S0Q4eEU3TTBJSDJkUkJTQUk5ejY5TVBzYm05YzA3?=
 =?utf-8?B?OXF6aHNOWXJSbmZuRlp0MWNmRGZrVVBITEVvOGk1c0tVL1Z3eDRLamE5U2li?=
 =?utf-8?B?WDhacmUxbkwxTmF5VitMUVN3RlR3ZjV0c2VBditVbUhhcFdtRHFRRDdzL1BU?=
 =?utf-8?B?VmVqS0lUUlR6WkVNU1dCMlVKekEzdTJIakw5TWIxRFJTaGNnSWRuN2trWTVW?=
 =?utf-8?B?Vk15bUpFelkramF5bVEraWtEMU81YjhUMTRmUklSV3R3ZUIxYXBMU2IranJY?=
 =?utf-8?B?MGpYK3hkelYwckRDdXFGU3JIbVdXU0NpcjFIZ1crU3V0YzVKak9pYXlnN1VJ?=
 =?utf-8?B?Sm1MaDJ1Z3VuUzNJSWh3MFlnUTN0Wk16ZUpuay9hbmRKVVlYWEZiazhvQ3Fw?=
 =?utf-8?B?ekdrdlZybEI4V3dCMGYydmpobU85NkZoajdYYUVGZW9qQS9BVG4zZ29wbEZz?=
 =?utf-8?B?Zm92WGdoTldZK3NNOHZxWXFhdG5tTUlyS3J0bE5GamlncHVCeDBhb0Q1SjdR?=
 =?utf-8?B?WWZQS3BtcEhnSGhqOXVpczlhWHd2RnFTMEx5a1hXb2JxRm5ZWVRSZUhoNkdT?=
 =?utf-8?B?VTZneExVS3FZMG1JMExZMXdFcWpKcDkyVytmYmNuQnRZZ1R1YkhXQ0NRRll4?=
 =?utf-8?B?dzgzR2p1SlJZd3RJcVBzNDB0MkhWSXFNK1JPdkY3cm1PZktCamRURGxqRXJh?=
 =?utf-8?B?Vy95M0djOFJnSmViWnJVanZCMkNjUmRhMUkyMlJpaUpyaENyVU5sbnBtOWxB?=
 =?utf-8?B?WWV2YVhRQWZEUFR0SjlqWVJvZzR0TWpGbXc5TS9xUHhEVVFhSkZubzNOVUYr?=
 =?utf-8?B?L2ZzSHNnb3RNTGwrNGd1NWJsdmkraURGTmI4ZVY4bnd0bmJ4ZjFZbi9xNm1J?=
 =?utf-8?B?T0ZHeXNIWFlRalBza08xd1Rncjc0cHFONUtvejRJV0ozcjZWcklPQm9WUWs5?=
 =?utf-8?B?L1R2YXB0enhIWmMyb0FES2xPYXhYZFJqUGlYYzhneDV5aU5talM4RTNENXhF?=
 =?utf-8?B?NGRLcDMvcG83Y1JxWlV1dzRLNlZ6S0FwaEtEUldBdHRNNXprenhvN2R5a3My?=
 =?utf-8?B?OWJiSVBPN1JxVFNocUU5NkpvZ0RSdElrWm84SHYrQ2NtRzBrbi9NVFNPZlJI?=
 =?utf-8?B?OWJQcVhTQ3kxc0xuNzhQK0JYdUF4cFZoaCtGMmVVa1p3M0lPYk5rekJTNTVu?=
 =?utf-8?B?TDh5MWM2TjJUOUNaQWpJcDAycCtDVTlVSHZ1YlMwMFA1Zy9SR3FmYkVnd1Ez?=
 =?utf-8?B?UCtPZm9HOTA1c3o2Vmh6YVBaQmF4TDhDM3RVdGtpMkF4WDlYY0lRUXNwMGxj?=
 =?utf-8?B?L0cxRFlkT3JRTU4raW5Mbi9BdkRwM0pqeTBpYXA0endlZFh4SitCY0k5ZStx?=
 =?utf-8?B?dlZmQTZVV1FIVmVkeHk5TVpUVE56UFZmUm1SeXhieUJIS0N6ajdpUnIybUxt?=
 =?utf-8?B?ek5sOHVMMjdGMVAzbGNtbXZTci9rMy95NHJsci9sNSt1ZGxscS9aanQ2NGFa?=
 =?utf-8?B?bExzcGk2Z2luUHN1TldKem1NUFRCR2Fsb25PTTdCV2lKZXg2NFd3OHdiendU?=
 =?utf-8?B?M1RpK2RvQTVocCtuR0dTMk1DWmg0SGI3bGErcm11cENTbEdXejliS2FLZ3E1?=
 =?utf-8?B?TFcvdzY0NjlzbEw3MWpaZFRHT2UyMEJCeHg5ejVOQlF4Qmx2V1kxQUFYWjVu?=
 =?utf-8?B?cVkrVklqVHo1Tytldk1KenRQaG0zSzRnclhCWXIySzZQUzE1S1p0emNsTUpO?=
 =?utf-8?Q?9zjw36Z27irgfAGg9cIHAhorEBz2ypCCQARmSeG?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 65780c82-36c4-4ce2-6fb5-08d931817bd3
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jun 2021 11:17:24.9731
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CkiqV1qYhq/YzhpbCMfsN6dhXrTDSxwGe6bSkLyeOgn/Fvg1B8B7sKhbccUPmaYy2SWAfymRqZDtJCvw7wJxTfjGV0aMN4Be2cXdvI6J0LI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB3800
X-OriginatorOrg: citrix.com

On 17/06/2021 12:09, Julien Grall wrote:
> (+ Andrew and Jan)
>
> Hi,
>
> On 16/06/2021 23:39, Bobbi Sanchez wrote:
>> Hi,
>>
>> how can i read the MSR Thermal Values under XEN-4.15.0 ?
>>
>> Usually without having XEN-4.15.0 installed i can read the MSR
>> Thermal Values like this:
>>
>> rdmsr -p 0 -d -f22:16 0x19c
>>
>> this works for my Core2Quod Q6600.
>>
>> But after having xen-4.15.0 installed and booted, same command shows
>> now: 0
>
> I believe the access was restricted as part of XSA-351 [1]. I am not
> sure if there are a safe generic way to access them. I will let Andrew
> and Jan commenting.

This method was never safe to begin with, because dom0 is just a VM and
can be migrated around.=C2=A0 If you pin dom0, then you're still can't acce=
ss
registers who's scope is missing from where dom0 is pinned.

I'm afraid this is something which has never worked correctly under Xen,
but used to give enough of an illusion of working for people to think
that it did work.

Someone needs to come up with a plan to paravirtualise this interface,
probably using XENPLAT_resource_op, so tools in dom0 can actually read
the registers they think they're trying to access.

~Andrew



From xen-users-bounces@lists.xenproject.org Thu Jun 17 11:27:16 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Jun 2021 11:27:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.143853.264951 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltqAl-0006fe-JF; Thu, 17 Jun 2021 11:26:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 143853.264951; Thu, 17 Jun 2021 11:26:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltqAl-0006fX-G9; Thu, 17 Jun 2021 11:26:59 +0000
Received: by outflank-mailman (input) for mailman id 143853;
 Thu, 17 Jun 2021 11:26:58 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=k/hY=LL=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1ltqAk-0006fR-JC
 for xen-users@lists.xenproject.org; Thu, 17 Jun 2021 11:26:58 +0000
Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 65c36ff3-0f92-4756-b46f-2b0fb8acd8ea;
 Thu, 17 Jun 2021 11:26:57 +0000 (UTC)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2110.outbound.protection.outlook.com [104.47.18.110])
 (Using TLS) by relay.mimecast.com with ESMTP id
 de-mta-34-OV81rD_nPLG_ZOJ2NsFzGw-1; Thu, 17 Jun 2021 13:26:55 +0200
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16)
 by VI1PR04MB7038.eurprd04.prod.outlook.com (2603:10a6:800:12d::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.18; Thu, 17 Jun
 2021 11:26:54 +0000
Received: from VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::f06c:6f5d:34d2:1c36]) by VI1PR04MB5600.eurprd04.prod.outlook.com
 ([fe80::f06c:6f5d:34d2:1c36%5]) with mapi id 15.20.4242.019; Thu, 17 Jun 2021
 11:26:54 +0000
Received: from [10.156.60.236] (37.24.206.209) by
 AM0PR10CA0042.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16 via Frontend
 Transport; Thu, 17 Jun 2021 11:26:53 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 65c36ff3-0f92-4756-b46f-2b0fb8acd8ea
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619;
	t=1623929216;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=lrrhj9SYZqIh8aS7IWlO2rnbf3bc7oJzJyiLEXjp+AQ=;
	b=UNE9JyVprswgMYu/Z230aQMPWk3LvkKH2YoYgId7CnKmazpBwnd+IFSPJvdM0U9Ivz54+L
	s7yUWME2bInmgCBjmxEzgsaWm4AzE/6wAq/DQ88UfBN5V3rTC4GjVDr+X7+1yjDkgO3mgR
	hZalHUtrLVweJswd8aJRajMf6D0pbhg=
X-MC-Unique: OV81rD_nPLG_ZOJ2NsFzGw-1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cAk1MEM9+wMFafNT9hMCIU7QiDCvYmlZJZ4l5dHZtrYrsCvjEHi2qaE3tpzWrWUvIuskx/0hjsdR1kKy+upnj8ptShrIWmcidcDSldgpjuDAkLDYV7gTJWZGG73hww4PHSU0W6MNOedIRrj3cuhejMChKkPQa5mg9CSzfetzpsXaE3+KcBG8VjMawB2nNg+OG5872LzMhh/USESNUM7T8PBBVQUhG8jJxqU/3JrYhtBMiPL3o/0+4cNMMQ3sTvt1wvQ3pxQ1gAyaWDnahkuxNvhtbLGi+FH7qmNXFqql5LFNZ5RscRj4ydoGz0f7JQVhMp2N3jsLRWQSCib9U5FNMA==
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-SenderADCheck;
 bh=lrrhj9SYZqIh8aS7IWlO2rnbf3bc7oJzJyiLEXjp+AQ=;
 b=VbA98o5FtXj/pMqC0vLcB+vBQiSrFctO3YnPI6g0/3czTZ7fRBcX8nAH1RZP6PjuAZhd6ksu9LvfgKCECSpdQBEotq9q7DZQJio9ZILVQ5eBgOyINjs+F1kyZk+kaH2EfJ33RhJGsBOAe6+ujzvhPpZHQq/aTDtio8X8Dlt56/0nm0LmCnWVOwmwdMfMSqsfxlE1ixCdjwqpqDR0FHGEiQbB3Q9kzmMQ+cCgbP5cighB9+st+OPRott9LV8tT9jEGPpQn91DDaSqWIYrCVXlBF5TaSU5hgSMBIlx47phgtHI1JtM7NVTHgQzxR5m6zbEW+3+yOGInoZHXl8DtWuHdg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
Authentication-Results: citrix.com; dkim=none (message not signed)
 header.d=none;citrix.com; dmarc=none action=none header.from=suse.com;
Subject: Re: Howto read MSR thermal under XEN-4.15.0
To: Julien Grall <julien@xen.org>, Bobbi Sanchez <bobbisanchez@gmx.de>
References: <1b165ee0-fd39-4dcb-bd5c-5720aed0bef0@gmx.de>
 <95ce3aca-326a-df20-4a74-60cf03e240bc@xen.org>
Cc: Xen-users@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Message-ID: <e664b8f6-8420-957c-8736-7ee15019435d@suse.com>
Date: Thu, 17 Jun 2021 13:26:51 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
 Thunderbird/78.11.0
In-Reply-To: <95ce3aca-326a-df20-4a74-60cf03e240bc@xen.org>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Originating-IP: [37.24.206.209]
X-ClientProxiedBy: AM0PR10CA0042.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:20b:150::22) To VI1PR04MB5600.eurprd04.prod.outlook.com
 (2603:10a6:803:e7::16)
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 99a1cf29-b393-4a22-a376-08d93182cf15
X-MS-TrafficTypeDiagnostic: VI1PR04MB7038:
X-Microsoft-Antispam-PRVS:
	<VI1PR04MB7038AF2AFFD2795F38A2FD20B30E9@VI1PR04MB7038.eurprd04.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	myqUDpP4IERXh1Ssvqk5bsfDq5jKm2mCB5DhjGSpRTqk7w8pL53jGHBETepTY7t5caVIPGveEglXqZF3DlAsAjaBxBuCOScxe5qPSZcNqC1t8sJ+WTyNXPUTO71M+z7zoLKn6/fClBbs0B1Wp1wOkMO6g+tFGhBoeqUOH9g/dkGFnQ26W7GZt60UZkAQD4Abzv0tzSqySJ0PigbzSiY5TYzcJoShc2wzkm+BEfEsIXbDEeVa+PbmawDsUynGcBO4qTxI+AAxp4QF8RKw/Wn//lW4VN2huLCUsi3EMYl6OEygB/EFE9ivIuRYjmuObaeETPFNAXLDmE0uSuTKe/2AqkEP3m5dmUqGkdv2VRVE21J772p8+hTkcJKMq/BtBjBZ0ExhT7pheo/HskT6CdMuasP03w6cnoixyoxb5VwyTwLtEcWix983PwBMHv+esuNqGs5T7kOu+clSpCwiurLdctIiGtcN+t3yjKiIUpOnzpLxXwrt5wYbeMQBHbKglXS1IqY3IGF2JwnSGf+MwHevG4NBemunL1Qoxr+UfXp58Ytcox9CLH+GC1rZgGe/6CGmy9ti8Kf6irzvqGnSOUdvHjVMf++qeDr29Bob+PtaV8v2E6/gihHnu59CmN/fx1XCwFu63e9TIzlpu6m5C7UWVWP/1WbC5EP6F4pajRBcH+IVmurW5kzgqBlxCwegoKWE
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(396003)(39860400002)(366004)(136003)(956004)(66946007)(2906002)(8676002)(31686004)(2616005)(6486002)(110136005)(4744005)(83380400001)(31696002)(316002)(16576012)(8936002)(86362001)(16526019)(186003)(4326008)(66476007)(478600001)(5660300002)(66556008)(53546011)(38100700002)(26005)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UmRDdllRR0lZMkQ4VmxwYllNWG1kWVhGZ1lFcUZtaHQ4Y1c3WEdpMDJQVGRC?=
 =?utf-8?B?Y0I1Z2tBRTZQRUFYWWtyYnYvS1BkczA1RjVQWEZOdHJiK2ROdkFtdTIvRmQ2?=
 =?utf-8?B?TmVQaytIOW53andRK2lDWUtqOUNhU1U2UC9qUFQ2WTkvUzZkYXdDNzRCeWF3?=
 =?utf-8?B?YkhEUVFCVlpVM2xHdTFkc0RxVVA1dm9jcGlHWjJLbXNaWTRDbEk5c0VwbXZi?=
 =?utf-8?B?cmNpS2Y0dGxUY29yNlV3bUdVcXZIQ293YThUOXhCSEx1MTBQcFdIU0dSL1l6?=
 =?utf-8?B?VmpkZnhSQjVQTnJuamg1M0RPTVhjVE1XUEVzeFMxb05WWDVSclRzR0ZEcTE4?=
 =?utf-8?B?MHMySGhubUhYKzR3enBrcTlxcndUSUluS0FSWU5mdElnSDlVK1J2ZkNBMWFJ?=
 =?utf-8?B?SGVZNk14Zmd6VjVIZUVLN0d4S29pU2duMjBKOEMzY2cxcnB5YTUzbGxFQ2sw?=
 =?utf-8?B?b2dFekxFNjh3NEw2aWF0UHdkem9wa3NLZzlvaWRJS2lRUTA4ZHNKTmhRZlFL?=
 =?utf-8?B?UGRaNFJxUGVaSXZ3TUVPck1VTy93TmJzZ00vQXZJbjNGR1NOeDNLNXA3ZkpB?=
 =?utf-8?B?RzFKNW5naFdqN3VWYTlzYSsrd0VvaVM0UGtIcGQ4dUdTWEY5SlR6ejRHRXVw?=
 =?utf-8?B?RjdMbTlFbHdJVlR2dC8zMnU3cVo0eHE3QmlHRjVLdVpuWk1xVXhTQ09iTk5C?=
 =?utf-8?B?T1NzVGtSUGQ1aVFyS2pNbWtmcmtSNUYycGVGWHMyWGkyN3Q4Rk1CbGdQcEov?=
 =?utf-8?B?T2NXdUlrckU3SkpKejIzcmw2dHJ2ejdNNEJYTXpnMysyd2V3TTFxZExSWWVl?=
 =?utf-8?B?YzkwQTdSd21GSFB3OUY1MWViOG5XYlJmSWMyckZDeFVKaytRckxMLzJBUUZF?=
 =?utf-8?B?OXNwUnVycFQ5WXExTE1manBzQ3cyME1ueWlWMUYyQXhUbnJ5WUdLQXFDU1F1?=
 =?utf-8?B?cEsyY042aC9qaldRN2NPalBCaSttRE11WldRblZFUExKYUczYk1MSzJSNCs4?=
 =?utf-8?B?bVg0cFdOdkp3aXZPbHFFTE9yTmwzNXJPTzF0TkdrZ1FwYkdHb1htakRZNDZk?=
 =?utf-8?B?d0s5MjZmcnl4TnUwdy9wODBPbGFrL01YZ1dyVmx0bjZvaTB6NWsrK3VlNlNw?=
 =?utf-8?B?N3FEc2YwaklCMmtvd1E3QVY5K0tFQjlMaHZ6bzZiSWlqSzJNSDhKMHRPcmVn?=
 =?utf-8?B?aDJjekx5Z1p5c0VwNHl3cVdUMHVqRURsL20xUGlnejhLeUw4Nmt2WGxVOWcz?=
 =?utf-8?B?emtDOXN6OGJyMDRsZzNCaUFZYmxCZE14WnVUWTBaODlTQ2pEUHlCTGo3TTRK?=
 =?utf-8?B?eExJaDhZWFlDWC95Vmt3WVJUUUJTQnBvaUdiS2ZrcVBMYlVKK1hCei9leVNZ?=
 =?utf-8?B?YytxdnF0UnVHL3dpdFA0eW80UlBRaW1uUXhFSHNvaEJXcjNUaFZZVXpkVDFP?=
 =?utf-8?B?ZUdXSk1WQ3ZkKzNlTktaTW9hRGxaTVRvVkFhWEpxYnNpMkY2dzV3aTkyNjFH?=
 =?utf-8?B?WEpCYzdweHhncXZqOEg2RGdsSWt3K0ZtcTVlaVY5bVk4MWo1ejRHZTRIMWVu?=
 =?utf-8?B?dmtZUGF1QndReVpNaEV5cmFXamMvOWl2TDFFalNEcUxVSjBuNE9KLzB4NzVE?=
 =?utf-8?B?MGREZVhKNGU4WERETjUxc0o2Y3YyQmZKNEsycUtHdHQ0Wkw0aUExejl2U3Ur?=
 =?utf-8?B?L21Ld2d2Y0RqSDhlQ0NzaHlvdDBxQ1lTd2N2R0dQbk9iMk1LNlgycTRDVHVp?=
 =?utf-8?Q?3AncgssqvjXNZxo+mc6s8oW2ylT43ZFXFoP2ZSW?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 99a1cf29-b393-4a22-a376-08d93182cf15
X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jun 2021 11:26:54.0526
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zg2SW1nA3l+tknqtbAVyY9JVCOfUrBDNUB8c2E8cwY4J2CC0tLC4I9TVp78UyKY5KYulH+ylBjmj/pm5hwgg0A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7038

On 17.06.2021 13:09, Julien Grall wrote:
> On 16/06/2021 23:39, Bobbi Sanchez wrote:
>> how can i read the MSR Thermal Values under XEN-4.15.0 ?
>>
>> Usually without having XEN-4.15.0 installed i can read the MSR Thermal 
>> Values like this:
>>
>> rdmsr -p 0 -d -f22:16 0x19c
>>
>> this works for my Core2Quod Q6600.
>>
>> But after having xen-4.15.0 installed and booted, same command shows now: 0
> 
> I believe the access was restricted as part of XSA-351 [1]. I am not 
> sure if there are a safe generic way to access them. I will let Andrew 
> and Jan commenting.

just as additional context (i.e. on top of Andrew's reply): It wasn't
that XSA, but our general switch of policy from blacklisting to
whitelisting MSRs. The XSA was about *_POWER_* and *_PERF_* MSRs.

Jan



From xen-users-bounces@lists.xenproject.org Thu Jun 17 11:44:08 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Jun 2021 11:44:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.143891.265009 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltqR5-000342-DW; Thu, 17 Jun 2021 11:43:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 143891.265009; Thu, 17 Jun 2021 11:43:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1ltqR5-00033u-9s; Thu, 17 Jun 2021 11:43:51 +0000
Received: by outflank-mailman (input) for mailman id 143891;
 Thu, 17 Jun 2021 11:43:50 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/zva=LL=citrix.com=andrew.cooper3@srs-us1.protection.inumbo.net>)
 id 1ltqR4-00033i-49
 for Xen-users@lists.xenproject.org; Thu, 17 Jun 2021 11:43:50 +0000
Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id dc657ea7-1fb3-41aa-b9b3-478244ae0f1e;
 Thu, 17 Jun 2021 11:43:49 +0000 (UTC)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: dc657ea7-1fb3-41aa-b9b3-478244ae0f1e
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1623930228;
  h=to:cc:references:from:subject:message-id:date:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=V1oB+KouzyAYbH5dZayQSj+aZa8vZ644FUTTy1X0pJs=;
  b=dq0dm623tb63XSrcMHFXsXF0qgopKHDaAkgCAsBVaW5kSazBkgcZ1wml
   nj+M/2f4GE3r8BnfTARGTSfi8axoPWTIV3WzmaRMNXzH6NH11iYt825bE
   lIvlooSn1+JMb2ZWGK/NnLQOYV1yofda2T6DuREZA69XJgMNYL8pOB3D+
   M=;
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
IronPort-SDR: 2DnrLphgyRk6srXIzwRmcBqkbRr11RpX1PtrW8NDT7/aWn3PSTygwT0TSeWMO7K5IBTlCTlZeX
 hG41tTbUy3/NDtl8TAKmtFq7KCU+Nxe3fs1fd1Gs2n1oy9/EvCSL+ImopHeZm48GmHycEU3MJZ
 0JXBTKvLkHQbbC+CFqmpRkUElsV3ZVcWKdEjj1RMPxVfgnjUg7j6/BfothtyUroQFCAM+4HwEI
 GUlLKrIKWiH907E/TWk9gjniRjmwiyddAMql6bTrqvzz9DnuNn2PwfHTE3z7b8YgZaFV200PAK
 r/k=
X-SBRS: 5.1
X-MesageID: 46083321
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.158.21
X-Policy: $RELAYED
IronPort-HdrOrdr: A9a23:QuPNk6HRdJwpGKmopLqFA5HXdLJyesId70hD6qkvc3Nom52j+/
 xGws536faVslcssHFJo6HkBEDyewKiyXcT2/hsAV7CZniahILMFu9fBOTZskXd8kHFh4lgPO
 JbAtJD4b7LfCtHZKTBkXCF+r8bqbHtmsDY5paq854ud3APV0gJ1XYINu/xKDwReOApP+taKH
 PR3Ls9m9L2Ek5nH/hTS0N1E9TrlpnurtbLcBQGDxko5E2nii6p0qfzF1y90g0FWz1C7L8++S
 yd+jaJqJmLgrWe8FvxxmXT55NZlJ/IzcZCPtWFjowwJi/3ggilSYx9U/mpvSwzosuo9FE2+e
 O87CsIDoBW0Tf8b2u1qRzi103LyzA18ULvzleenD/KvdH5bChSMbsDuatpNj/ir2YwttB116
 xGm0iDsYBMMB/GlCPho/DVShBRkFauq3ZKq59Ss5Vma/paVFZtl/1awKsMe61wWx4SqbpXUd
 WGNfuspsq/KjihHjbkVgAF+q3fYpwxdi32CXTq9PbligS+p0oJuHfw8vZv1kvoxKhNP6Ws2N
 60RJiAtIs+BPP+PpgNSdvof6OMeyXwqEX3QRyvyBLcZfk6B04=
X-IronPort-AV: E=Sophos;i="5.83,280,1616472000"; 
   d="scan'208";a="46083321"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NUOIvhU0IDD/peZOMLgpALactD9dsOna9huQpJzKKDgRT16U7Tn8U+pHN3LaeZyZ3RUy86Du85JAWxliEJ2b5u9R3WKUko45olfnlybZYOJ/w2wFt+fb31FG0sIId2bSsRndLsUW3LgLjFb8NrUm0FnDp9aGEAETqClSW6tDW0EZP1n4KNKGoECcFSn7Ixw0WaZgHPHbNkoFmasImHBPoXI9ylnPbagZqx8EUgJzqwRCMg49EInRSZSezj/p5IUBedY5yFQunconLJippHBccFii4i+Cag71aUIsx50a8hBOh19x29DaV4RcG+Q3B5Pl5YALQfC4VCY3rQaxhCCl1g==
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-SenderADCheck;
 bh=V1oB+KouzyAYbH5dZayQSj+aZa8vZ644FUTTy1X0pJs=;
 b=Luew0nlqJq7sXMlpDE261kXGUCAkBZKdAKbjNl3gICmjsjrOniaNKGU5bnbI/vdSUr6lP91GlZO8HTcl/ewbOMxoMefW4AZgtmsUmXA7PIslTCpN8Xgnxw70oELDEDa5DDhFFvNmTtW4NOcgLTRU9OF5CC7h+Qa8wJnAEo5kU+nC3A61fPMvN7o/sIitOVpmhJTQ6qAyI54Ij6TCMuqjPeDcHkM9GXnpcxkRxxitF0B22D2APPaJBSX+cT8+fXQnkevYjpOEIUkohYLxmGnL4b/gDQrtpiYH5XYYa7E7Xcv1msdaMNLGBNAVb+EWAWRJCx3T9I0xFIOUuLSM/F688w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V1oB+KouzyAYbH5dZayQSj+aZa8vZ644FUTTy1X0pJs=;
 b=TZwj8NoiWhQWlxHC4RQK9kmvsFhCtcmtFnpIGxdAdFoQgni05x+cUYk4WYN9YyKiH3/vsrqbOHf7xkrkNjvS1z49Dy/TIwx6E9FCH4zW62KjC9wNHjEReC3OGApn9zbFepGrVPNPYa87e+Q1bYh75LSNrfliL6uaYNETBLdRCEU=
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, "Bobbi
 Sanchez" <bobbisanchez@gmx.de>
CC: <Xen-users@lists.xenproject.org>
References: <1b165ee0-fd39-4dcb-bd5c-5720aed0bef0@gmx.de>
 <95ce3aca-326a-df20-4a74-60cf03e240bc@xen.org>
 <e664b8f6-8420-957c-8736-7ee15019435d@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: Howto read MSR thermal under XEN-4.15.0
Message-ID: <e9fa0977-508d-533a-1fad-2590d16076c2@citrix.com>
Date: Thu, 17 Jun 2021 12:43:40 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.11.0
In-Reply-To: <e664b8f6-8420-957c-8736-7ee15019435d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB
X-ClientProxiedBy: LO4P123CA0217.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a6::6) To BYAPR03MB3623.namprd03.prod.outlook.com
 (2603:10b6:a02:aa::12)
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 50def61c-e4af-4831-7a86-08d9318529da
X-MS-TrafficTypeDiagnostic: BYAPR03MB3798:
X-Microsoft-Antispam-PRVS: <BYAPR03MB3798B6AB125FA6F40A9F2F45BA0E9@BYAPR03MB3798.namprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 8Mjc2HMMFyML5Az+bypJ6Q9D6ODqvrbfxSASt+E9XHtGpdnMn5OK9U7M9UiOQB9nnvfPdHXHm5ZiAWF980D5nUKPJUeeHuGl/FvHlJ7l73N48Ix/iKVN+mR1shD9cTrl/BS8/b2YeXX1yHiDpXQ2R3NvQ2aQWLdWZUWNu4IorYgn1giz3iLWj3p31Slz24MD26Gfkw8vh7vcozWzpEAL4xHTlTEz+FwxaiHzETcjz1CT07Wbyy9G6q6cqWcZx0u0Mdaa+SF/QnZTnANWdOsqxWT9nmRWNtJuPKBH57pIm0JtCW5u5dEEHh7bbD3m9534LwzHy7bv88jnaMhuYIPKvwJXVNsAZ4PGfEbhMLKvuH/OJams6HjW99urHiz1GZttvZ3HGr2u40jF3OOrIJOFALCwLakT+Tu/kPZWF1YHvty8e/5u0vEZmVk0YXfA3eYMIOhCFHY0/N/MiI66IZ/ZtF8ocMgTlKcsoZ2S0FFAqciguzdHeXOpyhZ63b+opgQ5MYOGHnYWodj/uUVVhg1QILtEpWyILTSWVGOWuptX7x2XjK3QF+Zxw3jSpWP5xg6OWIeds+98a+OZeadrlG4It22xZhyYSizQNrOtPayfFiDBbRiWCmEd3H0DRjKvkJ+R2NqX+G6DOWalTWoszoGc5KjzYQ4SAudT6Jbz2apWNMTjrD9CIdphQRqZ+qX9iWyP
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR03MB3623.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(376002)(366004)(396003)(346002)(39860400002)(6486002)(2616005)(66556008)(186003)(31686004)(956004)(2906002)(8676002)(316002)(6666004)(478600001)(26005)(16526019)(83380400001)(36756003)(5660300002)(110136005)(16576012)(66476007)(4326008)(8936002)(86362001)(31696002)(53546011)(66946007)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cW1vclZ4cmljYTJZcDVLbFJDdE5tVE9WNi9uTTB1Q0JTbEQ3L3RObVhaZldT?=
 =?utf-8?B?TmxsMVVWaFRKSnIrVjJJOGU1dTRtTnQrVFRQZFBPRXVGWHh6NzdXQjdiT3Z6?=
 =?utf-8?B?T0QvR2ZxZ09Ma3NIQUtJbGdsaUdEckhnUnRjRDFZWXZHZWtWM0hlZm5PcFpu?=
 =?utf-8?B?MkdBcVJDWkVxLzI4L21YV0VsZUpCNi9wVjVkbmQ3SUdMalJ4RW05VFVpejZs?=
 =?utf-8?B?Rm9qTk1KUVBhem5zMXBzYmR3T3drMjVSWGhIdGxKaVJjZkQyU3RQVWNIN0Uw?=
 =?utf-8?B?QlFoSTJnSENZU2RjY09Sdk9WNWVDN1Q1NjB2dkdmRjFRY0lHcWNEM2xKT1Nv?=
 =?utf-8?B?ZTZPMWlIWFdXQkdnOHhnb1QxcVphd3doUDRzenFEV2tCSDN0MVczSCswK1VV?=
 =?utf-8?B?VnNnQW1mRy9sczhIbS81U1lWM05KOEd0aDVUUnlpMW9TaDJrd1d1ZDVwa2sy?=
 =?utf-8?B?N0JWL0MrRXl2aGllN2hHWG9NQnh3TjBJRVhWQ043ZnlUeVM1SHNVNFdQZ3JE?=
 =?utf-8?B?SFJ6MVRQdnphbi8vcUpWN3AxMUJrMGxSR0ZNcm9QalNoeTRDUWRrNk1zTWg1?=
 =?utf-8?B?eHVLVWZEbE5FdG1EYzZXVXppWGlIb05lclpXTE43WGYrMDNNaGdDWTBIMkpJ?=
 =?utf-8?B?QkdWRzNJM0t6OEJzRG9hNURzR3BQVnExZTVSeHRBTmN1dW1wZzlMU3ZtcWsz?=
 =?utf-8?B?MTZLZHhuR2lyaHVZZEZVUGx3ZWc1Nmp2UGdGTjgyK3B6eVlQY0I5NlJEY0VU?=
 =?utf-8?B?TDY3MUtya2xHbUZzdTI3d254UzJPSStYaEdyOFlTT3RndUJTUUV3eWVaL005?=
 =?utf-8?B?THBOS0svV2RLR2xpOGtOM2kzUlR1ODB1d082VlBKb29xeXhZQ0hlNzNjREZo?=
 =?utf-8?B?NU84MFpUUEp0b0R3UDJNK0lNYWhBMEtPUmYwb1R5MXFJQklBMHhmbWlOdGZ0?=
 =?utf-8?B?M0NNeTdHdnJKb3hSWUZHbk5DUjFHYXBsTWMzQUhlKzNScDZ2MWFpdHNJaEJS?=
 =?utf-8?B?ZnhiWTNsY1N2VHRJemdoUWp3WS9qcE9HQ3k3STNSSmhWU0xiVkJUK3Vub3NJ?=
 =?utf-8?B?aUdVc3ltcHlOby9Rc0ZFQTV4a0oxWGNzNForQlozT3R0eFp1SEZSUEVURWc5?=
 =?utf-8?B?TkwxcDl0eGZLUkI0VXZWbG5VMkJTdkthK3NhdVhzK3k0WWtuektjNWxidXJH?=
 =?utf-8?B?d0FCOFJna1JVRDd2ZmtWSjBTZXU0MnVCUEdiV0VlZzRKS3RJYmdUNHlyMUtJ?=
 =?utf-8?B?T1B1S1BwN0JkSFR0OTZNNkxqaVlSK2ZKUkViYkhSYTd4cGxlTU1sQ3JTQUdl?=
 =?utf-8?B?ZlA0Mnh3NXZkTDZSai9oaEd3SURuLzNjSVhHR29YTUpxNXNDNTZORDdyQ2dx?=
 =?utf-8?B?QS9JYzZxS0IrLzZQMFM4YldaQklkODg3anpDL0lEdEVHUGNTMzVUVytlTXFn?=
 =?utf-8?B?dU5nZmRmVlBJQ1VLOCsxTFRsTGJMMlI2NUxOMFJ3UEo0UFBkZldkVDNMQ3Vo?=
 =?utf-8?B?YXd0QXVWWVpCOEZ4QnV5aVF4Qks5SzRTMTlzSnpUMDdZWUVTRHBITUtqWHFi?=
 =?utf-8?B?M3B2WVNGdDRnanNLUkNYakpBVFlzcVhqMTRya2Z0MlVLMFZDNDFxZ1JWQitF?=
 =?utf-8?B?R21WNVBGdE5kVlhvRVRDdEFBaExyQUg1bnJ4am9RWlB2cmVQa3pCSUJ2V1BK?=
 =?utf-8?B?UWVHWTJRZ3luNU1zWXQrck5BV0lqY01URTdYWk5zekNFaEJHeDk5UkFHM05s?=
 =?utf-8?Q?/4bVK/qT5ge+0Dt+bLEOXZOtgOUzUPELTPbiS6R?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 50def61c-e4af-4831-7a86-08d9318529da
X-MS-Exchange-CrossTenant-AuthSource: BYAPR03MB3623.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jun 2021 11:43:45.3550
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: NqnYZkrWCIkWnvM22EJM2AWMjXduI/bUTGPipQ3IrqWd3Gey2yrSYOr186ThXE/v1Pt0bPab2VhfQPc/PXuKol7y8+9HzLqp2DYuNzjEeSY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB3798
X-OriginatorOrg: citrix.com

On 17/06/2021 12:26, Jan Beulich wrote:
> On 17.06.2021 13:09, Julien Grall wrote:
>> On 16/06/2021 23:39, Bobbi Sanchez wrote:
>>> how can i read the MSR Thermal Values under XEN-4.15.0 ?
>>>
>>> Usually without having XEN-4.15.0 installed i can read the MSR Thermal=
=20
>>> Values like this:
>>>
>>> rdmsr -p 0 -d -f22:16 0x19c
>>>
>>> this works for my Core2Quod Q6600.
>>>
>>> But after having xen-4.15.0 installed and booted, same command shows no=
w: 0
>> I believe the access was restricted as part of XSA-351 [1]. I am not=20
>> sure if there are a safe generic way to access them. I will let Andrew=20
>> and Jan commenting.
> just as additional context (i.e. on top of Andrew's reply): It wasn't
> that XSA, but our general switch of policy from blacklisting to
> whitelisting MSRs. The XSA was about *_POWER_* and *_PERF_* MSRs.

Well - that XSA was the trigger for finally removing default read access
from all VMs, but yes - this specific issue described here only on Xen
4.15 and later.

You can use boot with dom0=3Dmsr-relaxed to regain read access, but will
still be subject to all the reasons I explained before about this not
actually working properly.

~Andrew



From xen-users-bounces@lists.xenproject.org Fri Jun 18 08:05:38 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Jun 2021 08:05:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.144353.265698 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lu9US-00060e-Di; Fri, 18 Jun 2021 08:04:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 144353.265698; Fri, 18 Jun 2021 08:04:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lu9US-00060W-AR; Fri, 18 Jun 2021 08:04:36 +0000
Received: by outflank-mailman (input) for mailman id 144353;
 Fri, 18 Jun 2021 08:04:34 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=djXT=LM=googlemail.com=cleanerx1@srs-us1.protection.inumbo.net>)
 id 1lu9UQ-00060Q-PM
 for xen-users@lists.xenproject.org; Fri, 18 Jun 2021 08:04:34 +0000
Received: from mail-ej1-x632.google.com (unknown [2a00:1450:4864:20::632])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 3d0bd3c8-cf95-4525-84f7-d7d9b1f47375;
 Fri, 18 Jun 2021 08:04:33 +0000 (UTC)
Received: by mail-ej1-x632.google.com with SMTP id my49so14425200ejc.7
 for <xen-users@lists.xenproject.org>; Fri, 18 Jun 2021 01:04:33 -0700 (PDT)
Received: from smtpclient.apple
 (200116b82449840020fdb8240c54b778.dip.versatel-1u1.de.
 [2001:16b8:2449:8400:20fd:b824:c54:b778])
 by smtp.gmail.com with ESMTPSA id cf5sm5802648edb.81.2021.06.18.01.04.32
 for <xen-users@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 18 Jun 2021 01:04:32 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d0bd3c8-cf95-4525-84f7-d7d9b1f47375
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=googlemail.com; s=20161025;
        h=content-transfer-encoding:from:mime-version:date:subject:message-id
         :to;
        bh=utauYNKkmrEYKlspYuT+yYFT+HPLT/sNWcxAL/qHatU=;
        b=o6HPs6TNdkjTMG8XjWCOVmwxbfb9vxrJBrku7mp0sljOfAIHnb2eGiw5gdWwit+WzS
         oMrkFX4Rirfd6Fo/crVAq1rqcscshFdMRr8kzTu7IzSrTuEMFEF/vQpqcMasxq0CtwFF
         UrcCdblLSHxQXWAO3dr8wwZA+g8NzUiDN7zjMyLqhy4WU2VQKDNpXPiyG4fNg8yKvyoJ
         oVEhaKtxcXb51Ezl287GWK17He7/oMEnlv3P3+fnKCZDxF1btPkLxU80is/iByYS4rgA
         hTkyZrjFqGHUhF+rj5PIFkWeAgxpq72HdvFo3rlYWBNGDBcTq104x6DkXhHtO/DcTLUp
         4Sqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:content-transfer-encoding:from:mime-version:date
         :subject:message-id:to;
        bh=utauYNKkmrEYKlspYuT+yYFT+HPLT/sNWcxAL/qHatU=;
        b=jWa5/Qd640Skrc8QCvXSPtEnfS/HFwzU3BbTc4inyiOXMNf4zah5+UZ8J7cx521Bdc
         4kTJlb7DmHnAA2p3og3CwRbgF3XXDYdNd4Olfxt13NJBtjrVaJWujsifGMyOJ5VljtdK
         ydqXwzWCCc4NJ3WBpcOymXrk+e9T9WpCRPAXAkAtAGsgieN/Ejiqwy1XOsjDGtYCPBat
         XJyYZtlampg33+5vhTmAZFneHYQ87GPhxBcbb7mNfKTTTbRL6rJE4S+X7JJe0q1rSX6c
         MD1sAnAVOkwV8T1mHrL7YcYheZY7HHseegYO+90Q1/obbVAipiZr27/vhmaKdKvK2PKd
         bF5Q==
X-Gm-Message-State: AOAM530ERR+zk65OpyRcSAsgfBnmqeFcX8SpNdeY2YzR8XplDkOgSOwG
	PmmsxU2nHAepwmiC15YLPZv3CKwB36Y=
X-Google-Smtp-Source: ABdhPJwIIrE+CGASzlBFZ20cf3FZ8ULcZuRl0+5ODHFWTt/rJzhjAk4xZqeyZExPwodMPkp0QROo2w==
X-Received: by 2002:a17:906:a043:: with SMTP id bg3mr9772806ejb.444.1624003472772;
        Fri, 18 Jun 2021 01:04:32 -0700 (PDT)
Content-Type: multipart/alternative; boundary=Apple-Mail-7A5F5875-3882-4B5A-BFE1-524C45A9A0B1
Content-Transfer-Encoding: 7bit
From: =?utf-8?Q?Jens_K=C3=BCbler?= <cleanerx1@googlemail.com>
Mime-Version: 1.0 (1.0)
Date: Fri, 18 Jun 2021 10:04:31 +0200
Subject: XEN Block Script times out sporadically
Message-Id: <E9D45400-07C1-4B59-AEC7-B2852FE911E6@googlemail.com>
To: xen-users@lists.xenproject.org
X-Mailer: iPhone Mail (18F72)


--Apple-Mail-7A5F5875-3882-4B5A-BFE1-524C45A9A0B1
Content-Type: text/plain;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi

I=E2=80=98m giving Xen on raspi 4 a try and experience some problems. Dom0 i=
s Debian based and I start VMs via another process by forking xl create.

Sporadically 50% of the time I so see

libxl: error: libxl_aoutils.c:539:async_exec_timeout: killing execution of /=
etc/xen/scripts/block add because of timeout
And the vm falls to start. I set a lot of echos in the block script and veri=
fied that the script runs not in a subshell and exits the main shell and ret=
ournied fast enough. The block process remains as defunct in the process lis=
t indicating that the caller did not read the state.
I suspect the pipe between libxl sporadiccaly breaks due to a race. However I=
 cannot pinpoint where the start of the script is actually triggered during D=
om creation.
Looking through old posts I so see that other people had similar problems un=
able to pinpoint the source of the condition.

Any ideas where to look?

Kind Regards
Jens=

--Apple-Mail-7A5F5875-3882-4B5A-BFE1-524C45A9A0B1
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto">Hi<div><br></div><div>I=E2=80=98m giving Xe=
n on raspi 4 a try and experience some problems. Dom0 is Debian based and I s=
tart VMs via another process by forking xl create.</div><div><br></div><div>=
Sporadically 50% of the time I so see</div><div><span style=3D"-webkit-text-=
size-adjust: auto; caret-color: rgb(25, 37, 39); color: rgb(25, 37, 39); fon=
t-family: &quot;Segoe UI&quot;, &quot;Segoe WP&quot;, Arial, sans-serif;"><b=
r></span></div><div><span style=3D"-webkit-text-size-adjust: auto; caret-col=
or: rgb(25, 37, 39); color: rgb(25, 37, 39); font-family: &quot;Segoe UI&quo=
t;, &quot;Segoe WP&quot;, Arial, sans-serif;">libxl: error: libxl_aoutils.c:=
539:async_exec_timeout: killing execution of /etc/xen/scripts/block add beca=
use of timeout</span></div><div><span style=3D"-webkit-text-size-adjust: aut=
o; caret-color: rgb(25, 37, 39); color: rgb(25, 37, 39); font-family: &quot;=
Segoe UI&quot;, &quot;Segoe WP&quot;, Arial, sans-serif;">And the vm falls t=
o start. I set a lot of echos in the block script and verified that the scri=
pt runs not in a subshell and exits the main shell and retournied fast enoug=
h. The block process remains as defunct in the process list indicating that t=
he caller did not read the state.</span></div><div><span style=3D"-webkit-te=
xt-size-adjust: auto; caret-color: rgb(25, 37, 39); color: rgb(25, 37, 39); f=
ont-family: &quot;Segoe UI&quot;, &quot;Segoe WP&quot;, Arial, sans-serif;">=
I suspect the pipe between libxl sporadiccaly breaks due to a race. However I=
 cannot pinpoint where the start of the script is actually triggered during D=
om creation.</span></div><div><span style=3D"-webkit-text-size-adjust: auto;=
 caret-color: rgb(25, 37, 39); color: rgb(25, 37, 39); font-family: &quot;Se=
goe UI&quot;, &quot;Segoe WP&quot;, Arial, sans-serif;">Looking through old p=
osts I so see that other people had similar problems unable to pinpoint the s=
ource of the condition.</span></div><div><span style=3D"-webkit-text-size-ad=
just: auto; caret-color: rgb(25, 37, 39); color: rgb(25, 37, 39); font-famil=
y: &quot;Segoe UI&quot;, &quot;Segoe WP&quot;, Arial, sans-serif;"><br></spa=
n></div><div><font color=3D"#192527" face=3D"Segoe UI, Segoe WP, Arial, sans=
-serif"><span style=3D"caret-color: rgb(25, 37, 39); -webkit-text-size-adjus=
t: auto;">Any ideas where to look?</span></font></div><div><br><div dir=3D"l=
tr">Kind Regards</div></div><div dir=3D"ltr">Jens</div></body></html>=

--Apple-Mail-7A5F5875-3882-4B5A-BFE1-524C45A9A0B1--


From xen-users-bounces@lists.xenproject.org Fri Jun 18 19:37:22 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Jun 2021 19:37:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.144971.266771 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1luKIC-0006zu-Nq; Fri, 18 Jun 2021 19:36:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 144971.266771; Fri, 18 Jun 2021 19:36:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1luKIC-0006zn-KG; Fri, 18 Jun 2021 19:36:40 +0000
Received: by outflank-mailman (input) for mailman id 144971;
 Fri, 18 Jun 2021 19:36:39 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7XR/=LM=evoleotech.com=prem.harikrishnan@srs-us1.protection.inumbo.net>)
 id 1luKIB-0006zh-6Q
 for xen-users@lists.xenproject.org; Fri, 18 Jun 2021 19:36:39 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com (unknown
 [40.107.15.115]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id e79e4381-b47b-4336-8c18-6aaf7935290d;
 Fri, 18 Jun 2021 19:36:33 +0000 (UTC)
Received: from VI1PR05MB4430.eurprd05.prod.outlook.com (2603:10a6:803:46::26)
 by VI1PR05MB6430.eurprd05.prod.outlook.com (2603:10a6:803:ff::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.19; Fri, 18 Jun
 2021 19:36:31 +0000
Received: from VI1PR05MB4430.eurprd05.prod.outlook.com
 ([fe80::ed7b:e5f9:618a:3eea]) by VI1PR05MB4430.eurprd05.prod.outlook.com
 ([fe80::ed7b:e5f9:618a:3eea%3]) with mapi id 15.20.4242.019; Fri, 18 Jun 2021
 19:36:31 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: e79e4381-b47b-4336-8c18-6aaf7935290d
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VhDEUcFh6MLBVj0QeX8j9EW982lgmf2EX0GqAQqz/56zaBQix2cq41xDRFDhry7Ty6dG0Xq3wfhp/PrGyjfIVuz25pGHnPXE5ho0vqkMoSMXgkJimE1O+Us2kgQ8yDZBG2093KrFUAwGfvjmakfjsKunD9qPu67q/oAhNEAX4pUhN8rXC6lvfRrWzqsncTxGK9tZu1JO0Lvvgp+o3pO1aagEAyUNvcESAsBL0CJI4FAmcg4PgHrkX2vZnGsZ2PFDiKXcDZqzHo0zjuTHq3BLoXX3FTyIV87mD7BncQFSNXI+F1B7spXYwSDbnLik+ujQiuwxupY4EMQISo6t0GcFsg==
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-SenderADCheck;
 bh=COHUFgZZtxjjSy1ZyJ0Te321qHZBzgEp42S8nQnTlkc=;
 b=Ft5tdmsLGliKOb/1sTCBF2VWIj1bB8uVMcOSYBceDCoymleda0LhR6Jig0vjBZhhH711CfRVcEHsIMZC+FMOZdzAZDKZ0oYhhC7uo/IvO119sror3T0KDKP38ch7L4MP4tMJgYHrNbP668L8FjUqW5her7RmQ9SHqJHnkO+J20xHhAPLNhnSMmvKHy00TBIxUSZ6j9wfqaG9GHLfPQkb5o6LpI0oqK0RwYXh9IohWClTC2jA8utXS5Us1NznInMiiYj1NuxEDsmBr5wyLPTGZH1q6UbYR90JzHVOmtDx2QKlUWkx3Iixrenc/v5+TYBF+e/O0UhzodO4lhz3TyUoKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=evoleotech.com; dmarc=pass action=none
 header.from=evoleotech.com; dkim=pass header.d=evoleotech.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=evoleotechnologies.onmicrosoft.com;
 s=selector2-evoleotechnologies-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=COHUFgZZtxjjSy1ZyJ0Te321qHZBzgEp42S8nQnTlkc=;
 b=ProltMcCfXRCfYGKEyvGyRcu/LwX19enDv9Ioj3lidllfmic+1dvsmDCNZJElkYbAhjJVwdYLUWGF4W2IwDlHwlXNbXlQITynEC6EnnbsVhWOSbSngFUiLqCN9cKyl8QCDRQ9o2yyUd9Dx41uyYHYuSR6pz66UE0r8uQ9sh0VKE=
From: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
To: Stefano Stabellini <stefano.stabellini@xilinx.com>
CC: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>,
	"JOVITAC@xilinx.com" <JOVITAC@xilinx.com>, "fnuv@xilinx.com"
	<fnuv@xilinx.com>, "brian.woods@xilinx.com" <brian.woods@xilinx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL masters
 in ZCU102 dev kit
Thread-Topic: Help: Information required for AXI DMA passthrough for PL
 masters in ZCU102 dev kit
Thread-Index:
 AQHXOqMAPewhx/0ZVE2fbco7T/GOXKrdFmqAgACD+ICABAVYgIABrlVrgABJdgCAAATIt4AADpaAgARL642AAI9eAIABDuwsgAAXkYCADm9DhoAAJeiAgADiys+AAEjyAIAE2MzdgABzowCAAM/6LoAWBmGYgABBTYCABKooYQ==
Date: Fri, 18 Jun 2021 19:36:31 +0000
Message-ID:
 <VI1PR05MB4430F1A749CB6AE4C3C1AC0B890D9@VI1PR05MB4430.eurprd05.prod.outlook.com>
References:
 <VI1PR05MB4430D5035127951DEC282E5189429@VI1PR05MB4430.eurprd05.prod.outlook.com>
 <VI1PR05MB4430B2C2C3FAC23D77021605892D9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105171729480.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB44301C4198B1E9EF7FD8864A892C9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105181109020.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430F091D37D614EFAD15C6E89239@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105271745210.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB443063BF7A7C514C1C9C37C489229@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105281140360.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430B62D7D79E47B784FA34C893F9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9@BYAPR02MB4278.namprd02.prod.outlook.com>,<VI1PR05MB44308D16502AA518E05B210C893E9@VI1PR05MB4430.eurprd05.prod.outlook.com>
 <VI1PR05MB44303184209DF3F6215FFF3E89309@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2106151235180.24906@sstabellini-ThinkPad-T480s>
In-Reply-To: <alpine.DEB.2.21.2106151235180.24906@sstabellini-ThinkPad-T480s>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: xilinx.com; dkim=none (message not signed)
 header.d=none;xilinx.com; dmarc=none action=none header.from=evoleotech.com;
x-originating-ip: [80.81.14.67]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 98e0bc45-ddb6-4e3d-ac65-08d932905fd5
x-ms-traffictypediagnostic: VI1PR05MB6430:
x-microsoft-antispam-prvs:
 <VI1PR05MB64301CB2C768195B406107BE890D9@VI1PR05MB6430.eurprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6790;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 J3oNqW2aeIr/QbnnvClmQkg+dq4ohWJbB645fyZUpJsCQbP+PKX99QRDKujBl2p9i8zflNW3qQbMqGqCiXcG9OaPvkTJjYd4sC7iORuk/nxro+GbSwfa57KWDqRTeWSBLDPAGJTYANDIKoOEfqPo9zcX5E2fghkjyLQW1Stul5ndIKtzojtobLknMi1DtxogqK3tpQ/yxTXG8iP93q46S1PAq7q2y5zI2XWIjznFUlYJun8zf59YCRaAlUsq97pYmnZHp19kZQzF9gOGSBTEK6CtC6k2u0SwiC3J3UmJCwcJe+LpQGN7vpV/Xrj0juhw7nVrLMZhs1zawEN2WqlLmFLobDXQgqRtCZIaduGlIVZNwa/RvhC/FL4ubE977PPrzCVYzFjGeTe4SmbXZa3nc/T0PebbUlfjWK7KxmbA32cvzYGbQuNmPw3Ks2F7wPTVNpC1pWnWw2Tn9nTLF4ieVNBo8v+FebTF/17gPDVcve1XhwJ5R7jj96jJUAQfpm3/vvCXNWZIU1GMRttE5EwIyWf01P/8jo0hPb00rbSct9KioA967IG3FYPX8UkphL8fSMBkx/Uf8cTt2+da2UaHS6gyC+wiLdgnw1rF7kSxHzfIkEl0MbVEdYrP05OKq4wEPgu0fX1EGW8VDFy9bkYK/OGiwZGg9oKTy4B21dy2SpykFEzCfOMf0ZnceX9zBJUiz5mHpN7fl79S3bVP9rx1aHvNekSYtN0GG2V4M2zBqzQD6k8kkF+cSmKSh1/eMyPitpbFS/zJlKYfeEsow6Z+FaB8GUCUOz4oynpc1Or/ZXQ=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR05MB4430.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(396003)(366004)(346002)(39830400003)(136003)(376002)(316002)(122000001)(38100700002)(19627405001)(30864003)(66446008)(66556008)(64756008)(71200400001)(66476007)(966005)(166002)(91956017)(76116006)(66946007)(54906003)(9686003)(8936002)(55016002)(52536014)(8676002)(5660300002)(83380400001)(478600001)(53546011)(186003)(86362001)(21615005)(6506007)(45080400002)(6916009)(7696005)(18265965003)(2906002)(44832011)(26005)(4326008)(33656002)(579004)(139555002);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?G7+XwH95tJx5nIcRcg5JJRWDS/9n5PPJClMXCxaVGRzDdLd8OoNKEvX+nrgj?=
 =?us-ascii?Q?OJKQYtCfygCr7Tbvt9NO+/chnIucDA1lvONT0DksruHL8uwU7RUVaaVmvAeN?=
 =?us-ascii?Q?fqE5olawjMDpZ9tVJYehbD5uuAgJQDjnMYPyaEel4ccQ4JkjteZ8Cqs4J3WI?=
 =?us-ascii?Q?G+tmHE+C0+YUbL3OlMe57hp0fugRIVsDaGr/dBitdKpjALwDaOLpr/0NMNkk?=
 =?us-ascii?Q?vFz0CCd/bsE7RGAkAhWBjEzvFM95Vj9iUXwsa/2MPBfk2bbWJJ2yxC8B62eT?=
 =?us-ascii?Q?E+dtCoBqv5+F6dNLmHpx7Sum/0T1F0YpYUXgDX2T5NS8FmqcNc02ONV4M5zo?=
 =?us-ascii?Q?fCLJAf/x4HXEHo0KabiQx0TFtOzc5UopghU+HXD3hsKd3uHIo6ld/rYXwq32?=
 =?us-ascii?Q?tndTeKaSVxh0Nu95QwPB+SmjiFqFQEXYaM1dMgvIEvSc55yjt8sJK8jm4HoC?=
 =?us-ascii?Q?JdeSd28jvfPMF+fO2JgtcMZDe22CbfBdtmk3CbjUgNXyt9Nj+wvDwmKVyhRA?=
 =?us-ascii?Q?ZsLOfPisYs/riYHWCHVXa04/bwLmBzVoB6NYqEtfS7t+EqjhcddZami3vTgG?=
 =?us-ascii?Q?Qf/6IaWR9oGpj0o2FJE704uh2SQIqumdi2dbyHe3MSezMcRwRewM8B8nmlG0?=
 =?us-ascii?Q?tPI9HttHRcCdDvJG7Nj8EtB6nbCoszPrjGsoDoepDWVCRcn8h6DbjkVafc62?=
 =?us-ascii?Q?5FYJpUpNydVJUHict9nUQfikj0RER1pxzoFBBCFY34y+AokmM4m+QLHYwoPC?=
 =?us-ascii?Q?2z7PqVgp87Q766lkQdYhLcm9cCndX+jj/eiN1pvISNrXsG1mn6r3wXSnBwwU?=
 =?us-ascii?Q?Lf497hP3g8ZgEksOb/3AtOM3xvrLVCeYrmmvTtJUnxUY3Y9ALceVeBRKt60B?=
 =?us-ascii?Q?bMAg6y6/I7I+zBcqB+lD4Q+Z6sL7PLmR2b/LfIx5avlR24iWWohdsDWAa/OC?=
 =?us-ascii?Q?Cwul0VdbyOnxpe0ThKiiPKOv64VaKM0o6pRsIvHH9jPasFZV/NYmDTUYwmvX?=
 =?us-ascii?Q?it9b6iKvjxWorSNdoq5lBCBf6i/twPz1kxAB5gY0+5ogOWNmRloQUAkt3rg2?=
 =?us-ascii?Q?YZJr3TV5Gv4c1EEzsZ0Q0XpwdJ/cpJslJihY2utsQoLEi6o7RhjJgC4LmSL7?=
 =?us-ascii?Q?76U+6QmdshUfg3tTybtqNu7YCIzbRvL4f98TAuwJ8w1EcUURkYGVlHaXqHib?=
 =?us-ascii?Q?0xq/e/ePwCmkWN1WRawMo4JmqDdZf5YmlZ1dm9byKh5J4fV63DRPPIAGK70x?=
 =?us-ascii?Q?teWG0C23ORnWglu+wuFczSSOvRM+gtT0dgawCxUuJYvWbN9+CJ5977MphtFY?=
 =?us-ascii?Q?TPQ=3D?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative;
	boundary="_000_VI1PR05MB4430F1A749CB6AE4C3C1AC0B890D9VI1PR05MB4430eurp_"
MIME-Version: 1.0
X-OriginatorOrg: evoleotech.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR05MB4430.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 98e0bc45-ddb6-4e3d-ac65-08d932905fd5
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2021 19:36:31.3104
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 34ebafdc-9323-4bfe-8f24-6bb9f135b0a9
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EOd27oA9bw9JSxtEAFmiz3KCxUl91l3ugGmsR3lYtBj6I0zt1ZR6Eabv8rToP7mSVJvEvQyU9yozWI5Ucru0jh2VquvZWQjxwZMlo72zhysNbzrUN2VZGoUwxOpw8YIJ
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6430

--_000_VI1PR05MB4430F1A749CB6AE4C3C1AC0B890D9VI1PR05MB4430eurp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Stefano,

Thank you very much for your detailed reply.  I now have xen booting from q=
spi, i followed your instructions, the only additional thing i had to chang=
e is the boot script offset in petalinux u boot config. Thank you again for=
 your support.

Best Regards,
Prem
________________________________
From: Stefano Stabellini <stefano.stabellini@xilinx.com>
Sent: Tuesday, June 15, 2021 22:17
To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
Cc: Stefano Stabellini <stefanos@xilinx.com>; xen-users@lists.xenproject.or=
g <xen-users@lists.xenproject.org>; JOVITAC@xilinx.com <JOVITAC@xilinx.com>=
; fnuv@xilinx.com <fnuv@xilinx.com>; brian.woods@xilinx.com <brian.woods@xi=
linx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL mast=
ers in ZCU102 dev kit

We don't have a recipe ready. It is not something we test. However I
think it should be possible.

The first step would be try to generate a BOOT.BIN for QSPI booting and
write it to QSPI. The goal is to get to the u-boot prompt, with
everything booted from QSPI. Then the next step is to add Xen, Linux,
the DTB and Linux ramdisk. (Of course if you are OK with loading Xen and
the other binaries from somewhere else like the SD card then it is going
to work as is.)

You should be able to write each binary to QSPI as separate partitions.

At that point, you are only missing a boot.scr that can load them and
boot. ImageBuilder supports custom u-boot load commands by setting the
LOAD_CMD variable. In this case you'd need to set LOAD_CMD to something
like "sf read", but given that the other command arguments are not
filenames, ImageBuilder won't be able to handle it anyway.

But you can take an ImageBuilder-generated boot.source, substitute the
"tftpb" commands with the appropriate "sf read" commands and call
mkimage to get a boot.scr.

Now you should be able to run boot.scr from the u-boot prompt and load
everything from QSPI.

This is some relevant info:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842465/U-Boot+QSPI+=
Driver


I know it is a bit complex but I think it should work OK.



On Tue, 15 Jun 2021, Prem Harikrishnan wrote:
> Hi Stefano,
>
> Is it possible to boot XEN from QSPI? Is there an image builder script al=
ready available to generate boot.scr? Please let me know.
> Thanks and Best Regards,
> Prem
>
> _________________________________________________________________________=
__________________________________________________________________
> From: Xen-users <xen-users-bounces@lists.xenproject.org> on behalf of Pre=
m Harikrishnan <prem.harikrishnan@evoleotech.com>
> Sent: Tuesday, June 1, 2021 18:07
> To: Mubin Usman Sayyed <MUBINUSM@xilinx.com>; Stefano Stabellini <stefano=
s@xilinx.com>
> Cc: xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; Jovi=
ta Castelino <JOVITAC@xilinx.com>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL ma=
sters in ZCU102 dev kit
> Hi Stefano and Mubin,
>
> Thank you very much for helping me setup up FreeRTOS and baremetal guests=
, everything works as expected and I also get expected performance
> in both baremetal and hypervisor guests. Thank you again for your prompt =
support during the past few weeks.
>
> Best Regrards,
> Prem
>
> _________________________________________________________________________=
__________________________________________________________________
> From: Mubin Usman Sayyed <MUBINUSM@xilinx.com>
> Sent: Tuesday, June 1, 2021 05:38
> To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>; Stefano Stabell=
ini <stefanos@xilinx.com>
> Cc: xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; Jovi=
ta Castelino <JOVITAC@xilinx.com>
> Subject: RE: Help: Information required for AXI DMA passthrough for PL ma=
sters in ZCU102 dev kit
>
> In case of FreeRTOS,  you need to use APIs from FreeRTOS port for interru=
pt handling
>  (https://github.com/Xilinx/embeddedsw/blob/master/ThirdParty/bsp/freerto=
s10_xilinx/examples/freertos_intr_example.c#L192 and line 194).
> Please make sure that you are taking care of that in DMA interrupt exampl=
e .
>
>
>
> Thanks,
>
> Mubin
>
>
>
> From: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> Sent: Tuesday, June 1, 2021 2:48 AM
> To: Stefano Stabellini <stefanos@xilinx.com>
> Cc: xen-users@lists.xenproject.org; Jovita Castelino <JOVITAC@xilinx.com>=
; Mubin Usman Sayyed <MUBINUSM@xilinx.com>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL ma=
sters in ZCU102 dev kit
>
>
>
>
>
> Hi Stefano and Mubin,
>
> Thank you very much for your replies.
>
> @Stefano Stabellini Sorry to bother you again, and thank you for pointing=
 this out, the TTC0 is by default enabled for FreeRTOS to generate
> ticks, although this says only for R5 core, i would have never figured th=
is out. As soon as I added the irqs and iomem and gave a xen
> passthrough in the xen.dtsi as you have suggested, FreeRTOS guest started=
 working for other peripherals except for my DMA (FreeRTOS guest
> does not work with interrupt and DMA).
>
>
>
> I can see my DMA is enabled because i have LEDs configured to blink for e=
very interrupt I get from the PL. I don't see my interrupts being
> processed, but when I destroy the guest, I get this output periodically w=
hen an interrupt occurs.
>
>
>
> (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be seriou=
s
> (XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSY=
NR1 0x00000e80, GFSYNR2 0x00000000
>
> (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be seriou=
s
> (XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSY=
NR1 0x00000e80, GFSYNR2 0x00000000
>
> (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be seriou=
s
> (XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSY=
NR1 0x00000e80, GFSYNR2 0x00000000
>
>
>
> From section 3.6 of the wiki https://xilinx-wiki.atlassian.net/wiki/space=
s/A/pages/18842066/Xen+and+PL+Masters
>
> Xen and PL Masters - Xilinx Wiki - Confluence
>
> 3.4 Stream IDs in the Device Tree. For Xen based systems the stream IDs o=
f PL masters must be added to the Linux Dom0 device tree.
> Automated device tree generation does not generate the stream IDs for the=
 PL masters so that the user must add them into the device tree
> manually.
>
> xilinx-wiki.atlassian.net
>
> The fault indicates an unidentified stream ID has been received by the SM=
MU as shown in the GFSR register. The GFSYNR1 register contains
> the stream ID that was unidentified. A stream ID of 0xE80 was unidentifie=
d in the above fault.
>
>
>
> But I think i have already added that in my smmu and iommu in xen.dtsi be=
cause my baremetal application works well as expected. I have
> attached my xen.dtsi, system.dtsi, baremetal.cfg(working) and freertos.cf=
g(not working).
>
> What could I be missing here? Do I have to enable the ttc0 in the device =
tree?
>
> Also what does (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq=
: 99990 KHz mean when XEN boots up?
>
> Thanks, I look forward for your reply.
>
>
>
> Best Regards,
>
> Prem
>
>
>
>
>
>
>  ________________________________________________________________________=
________________________________________________________________
>
>
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> Sent: Friday, May 28, 2021 20:43
> To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists.x=
enproject.org <xen-users@lists.xenproject.org>; JOVITAC@xilinx.com
> <JOVITAC@xilinx.com>; MUBINUSM@xilinx.com <MUBINUSM@xilinx.com>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL ma=
sters in ZCU102 dev kit
>
>
>
> From the gpa address, it looks like FreeRTOS is trying to access the TTC
> timer? If you look at device tree, the corresponding node is
> timer@ff110000.
>
> If FreeRTOS is configured to access the TTC timer, then you need to
> assign it to it. Did you assign the TTC timer to the FreeRTOS domU by
> any chance?
>
> You can do that by adding:
>
> irqs =3D [ 68, 69, 70 ]
> iomem =3D [ "0xff110,1" ]
>
>
> On Fri, 28 May 2021, Prem Harikrishnan wrote:
> > Hi Stefano,
> > Thanks for your reply. I am pretty sure I followed the steps you mentio=
ned below to run the FreeRTOS hello world example. I already added
> > printfs and i can see XEN cannot start the scheduler and i get the foll=
owing out put on XEN.
> >
> > Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]
> > (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D2 mem=
flags=3D0xc0 (0 of 64)
> > (XEN) memory_map:add: dom2 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0
> > (XEN) sched_null.c:344: 1 <-- d2v0
> > (XEN) traps.c:1973:d2v0 HSR=3D0x93820007 pc=3D0x00000040012b08 gva=3D0x=
ff11000c gpa=3D0x000000ff11000c
> >
> >
> > I also see that according to this article
> > https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-=
as-a-Xen-Virtual-Machine/ba-p/947030
> > [52662iFAD1733707609204?v=3Dv2]
> > Partner: FreeRTOS as a Xen Virtual Machine - Community Forums
> > Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks =
What is FreeRTOS? The FreeRTOS kernel is a market leading
> real-time
> > operating system for embedded systems. As embedded applications grow in=
 complexity, there is a growing need for a lightweight kernel
> > capable of task scheduling...
> > forums.xilinx.com
> > FreeRTOS does not run out of the box for XEN, although the article is 2=
 years old, I am not sure if there are any updates on this after
> > that. Can you please confirm?
> >
> > Thanks and Best Regards,
> > Prem
> >
> >________________________________________________________________________=
__________________________________________________________________
> _
> > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > Sent: Friday, May 28, 2021 02:51
> > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists=
.xenproject.org <xen-users@lists.xenproject.org>;
> JOVITAC@xilinx.com
> > <JOVITAC@xilinx.com>; MUBINUSM@xilinx.com <MUBINUSM@xilinx.com>
> > Subject: Re: Help: Information required for AXI DMA passthrough for PL =
masters in ZCU102 dev kit
> > +Mubin
> >
> >
> > Hi Prem,
> >
> > Did you make sure to build FreeRTOS as "hypervisor guest"? I think
> > FreeRTOS is built to run at EL3 by default so if that is not changed
> > there are errors when run on any hypervisor. It is possible to build
> > FreeRTOS to run on Xen but it requires a couple of manual steps:
> >
> > - source settings64.sh from Vitis builds
> > - xsct
> > - set WORKSPACE .
> > - setws -switch $WORKSPACE
> > - app create -name freertos-hello-world -template {FreeRTOS Hello World=
} -proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx
> > - bsp config stdin psu_uart_1
> > - bsp config stdout psu_uart_1
> > - bsp config hypervisor_guest true
> > - Go to application source path and modify the linker script start addr=
ess to 0x40000000,
> > - app build -name freertos-hello-world
> > - Run command to generate BIN file from executable "aarch64-linux-gnu-o=
bjcopy -O binary --gap-fill 0  <elf path> BOOT.BIN"
> >
> > The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,
> > might be able to provide additional info.
> >
> >
> >
> > On Thu, 27 May 2021, Prem Harikrishnan wrote:
> > > Hi Stefano,
> > > Sorry to bother you again.
> > > I am currently trying to run my custom IP which sends periodic dma in=
terrupts to the PS with cache coloring enabled. I have now
> compiled
> > my
> > > guest running with FreeRTOS and it generates a trap.
> > > Petalinux and VITIS IDE Version is 2020.2.
> > >
> > > Please find the log attached. After the trap occurs, for every interr=
upt XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context
> fault:
> > > fsr=3D0x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1
> > >
> > > root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing config f=
rom apu_freertos.cfg
> > > (XEN) Dom1 colors: [ 8 ]
> > > (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=3D1 m=
emflags=3D0xc0 (0 of 64)
> > > (XEN) memory_map:add: dom1 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=3D0
> > > (XEN) memory_map:add: dom1 gfn=3Da0010 mfn=3Da0010 nr=3D1 cache=3D0
> > > (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000
> > > (XEN) sched_null.c:344: 1 <-- d1v0
> > > (XEN) traps.c:1973:d1v0 HSR=3D0x93820007 pc=3D0x00000040013188 gva=3D=
0xff11000c gpa=3D0x000000ff11000c
> > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iov=
a=3D0x41000000, fsynr=3D0x12, cb=3D1
> > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iov=
a=3D0x41000000, fsynr=3D0x12, cb=3D1
> > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iov=
a=3D0x41000000, fsynr=3D0x12, cb=3D1
> > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0x402, iov=
a=3D0x41000000, fsynr=3D0x12, cb=3D1
> > >
> > > The same application works as expected without FreeRTOS, i.e as a bar=
emetal guest. I look forward for your comment on this.
> > >
> > > Although i see performance degradation, normally i can measure delta =
time for each interrupt configured to 1ms (without XEN), with XEN
> > for
> > > the same measurement shows 16 ms for each interval (but the performan=
ce is not a priority for now).
> > > Thanks and Best Regards,
> > > Prem
> > >
> >>_______________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > Sent: Tuesday, May 18, 2021 20:09
> > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lis=
ts.xenproject.org <xen-users@lists.xenproject.org>;
> > JOVITAC@xilinx.com
> > > <JOVITAC@xilinx.com>
> > > Subject: Re: Help: Information required for AXI DMA passthrough for P=
L masters in ZCU102 dev kit
> > > Great to hear! Thank you for reporting back.
> > >
> > >
> > > On Tue, 18 May 2021, Prem Harikrishnan wrote:
> > > > Dear Stefano,
> > > > Thank you very much for your guidance and support. I finally fixed =
the issue. I made an error in base memory address like you pointed
> > > out.
> > > > I actually modified the base address correctly to 0x40000000 but th=
e default C code had an additional offset of 0x1100000 , and the
> > DomU
> > > > memory allocated was only 8MB. I either had to change the offset or=
 allocate more memory to the DomU guest which i missed until you
> > > pointed
> > > > out. Additionally i had to set to AxPROT bits to 0x2 in Vivado and =
the SMID required is 0xE80.
> > > >
> > > > Thanks again i was able get my custom IP also working as an AXI mas=
ter from PL.
> > > >
> > > > Best Regards,
> > > > Prem
> > > >
> >>>______________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > Sent: Tuesday, May 18, 2021 02:35
> > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; Brian Woods=
 <brian.woods@xilinx.com>; Julien Grall <julien@xen.org>; Stefano
> > > > Stabellini <sstabellini@kernel.org>; xen-users@lists.xenproject.org=
 <xen-users@lists.xenproject.org>; fnuv@xilinx.com
> > <fnuv@xilinx.com>;
> > > > edgari@xilinx.com <edgari@xilinx.com>; bwoods288@gmail.com <bwoods2=
88@gmail.com>; Renato Costa Amorim <renato.amorim@evoleotech.com>;
> > > > JOVITAC@xilinx.com <JOVITAC@xilinx.com>
> > > > Subject: Re: Help: Information required for AXI DMA passthrough for=
 PL masters in ZCU102 dev kit
> > > > Your configuration looks correct as far as I can tell.
> > > >
> > > > You need dtdev because it triggers the SMMU configuration for your =
PL
> > > > block. You don't need device_tree because your baremetal applicatio=
n is
> > > > not going to read it, but it is not going to cause any issues eithe=
r.
> > > >
> > > > When you say "the execution does not complete the loop at line 244"=
, it
> > > > means that you see the execution entering the loop and then never
> > > > leaving? Like an infinite loop?
> > > >
> > > > If so, then I imagine the issue could be that the application is
> > > > crashing when trying to access TxBufferPtr, which is pointing to
> > > > TX_BUFFER_BASE, which is:
> > > >
> > > >
> > > > #ifndef DDR_BASE_ADDR
> > > > #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \
> > > >                  DEFAULT SET TO 0x01000000
> > > > #define MEM_BASE_ADDR           0x01000000
> > > > #else
> > > > #define MEM_BASE_ADDR           (DDR_BASE_ADDR + 0x1000000)
> > > > #endif
> > > >
> > > > #define TX_BUFFER_BASE          (MEM_BASE_ADDR + 0x00100000)
> > > >
> > > >
> > > >
> > > > Can you double check that TX_BUFFER_BASE is pointing to a correct
> > > > address? Memory starts at 0x40000000 in a Xen DomU.
> > > >
> > > > Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?
> > > >
> > > >
> > > > On Mon, 17 May 2021, Prem Harikrishnan wrote:
> > > > > Hi Stefano,
> > > > > Thanks again for your reply and your suggestion.  I did try to re=
place the Xil_DCacheFlushRange with
> Xil_DCacheInvalidateRange(works
> > > only
> > > > > in EL3), I added printfs to debug, i can see that the execution d=
oes not complete the loop at line 244
> > > > > https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorI=
PLib/drivers/axidma/examples/xaxidma_example_simple_poll.c  and
> > > > > Xil_DCacheFlushRange is not reached. Please find attached my xen =
bootlog.txt.
> > > > > I am still unable to find out why??
> > > > >
> > > > > Can you please atleast verify that my xen.dtsi, and pl.dtb is cor=
rect? and do i need dtdev and device_tree in my guest config file
> > when
> > > > it
> > > > > is already added to xen.dtsi?
> > > > >
> > > > > Best Regards,
> > > > > Prem
> > > > >
> > > > >
> >>>>_____________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > Sent: Saturday, May 15, 2021 00:25
> > > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; Brian Woo=
ds <brian.woods@xilinx.com>; Julien Grall <julien@xen.org>;
> Stefano
> > > > > Stabellini <sstabellini@kernel.org>; xen-users@lists.xenproject.o=
rg <xen-users@lists.xenproject.org>; fnuv@xilinx.com
> > > <fnuv@xilinx.com>;
> > > > > edgari@xilinx.com <edgari@xilinx.com>; bwoods288@gmail.com <bwood=
s288@gmail.com>; Renato Costa Amorim
> <renato.amorim@evoleotech.com>;
> > > > > JOVITAC@xilinx.com <JOVITAC@xilinx.com>
> > > > > Subject: Re: Help: Information required for AXI DMA passthrough f=
or PL masters in ZCU102 dev kit
> > > > > Hi Prem,
> > > > >
> > > > > Some older versions of Xil_DCacheFlushRange were implemented usin=
g
> > > > > deprecated set/way instructions that are known to cause problems =
in
> > > > > virtualized environments.
> > > > >
> > > > > More recent implementations use the "dc civac" intruction that sh=
ouldn't
> > > > > have any issues.
> > > > >
> > > > > Can you double-check that you are calling the 64-bit version impl=
emented
> > > > > by CIVAC?
> > > > >
> >>>>https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb18eda0182f=
3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#L
> 4
> > 1
> > > 4
> > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > > Hi Stefano,
> > > > > > Thanks for your reply. Yes the axidma application is a baremeta=
l application from the xilinx vitis ide example.
> > > > > > Also yes, I have already run hello world as DomU guest, with UA=
RT1.
> > > > > >
> > > > > > I am using the simple mode using polling and not interrupts(the=
y are disabled in the c code), which is Why I didn't include in
> the
> > > > guest
> > > > > > config file. This works well when I compile it normally (as EL3=
). When compiled as hypervisor guest, the execution stops before
> the
> > > > > > function xil_dcacheflushrange(). Please find the c code attache=
d
> > > > > > in https://github.com/Xilinx/embeddedsw/blob/master/XilinxProce=
ssorIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c
> > > > > >
> > > > > > I found the SATA example similar to my use case, also using DMA=
 and SMMU. I just used it as a reference to create my pl.dtb to
> pass
> > > > > through
> > > > > > in the guest config.(from pl.dtsi, which I manually created).
> > > > > >
> > > > > > Thanks and Best Regards,
> > > > > > Prem
> > > > > >
> > > > > > Get Outlook for Android
> > > > > >
> >>>>>____________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > > Sent: Friday 14 May 2021, 23:16
> > > > > > To: Prem Harikrishnan
> > > > > > Cc: Brian Woods; Stefano Stabellini; Julien Grall; Stefano Stab=
ellini; xen-users@lists.xenproject.org; fnuv@xilinx.com;
> > > > > edgari@xilinx.com;
> > > > > > bwoods288@gmail.com; Renato Costa Amorim; JOVITAC@xilinx.com
> > > > > > Subject: Re: Help: Information required for AXI DMA passthrough=
 for PL masters in ZCU102 dev kit
> > > > > >
> > > > > > I take that the guest kernel "/bin/xaxidma_example_simple_poll_=
1.bin" is
> > > > > > a baremetal application? Can you run it successfully, just prin=
ting
> > > > > > "hello world", if you only assign the UART and nothing else?
> > > > > >
> > > > > > I am asking just to verify that you can run the baremetal VM
> > > > > > successfully, aside from the PL device assignment.
> > > > > >
> > > > > >
> > > > > > In regards to the PL device assignment, I'll let Brian answer o=
n the
> > > > > > Vivado configuration and SMID calculation. But I noticed that y=
ou only
> > > > > > assigned IRQ 54 to the DomU which is the one for UART1. You hav=
en't
> > > > > > assigned any IRQs for axi_dma_0. Looking at pl_from_petalinux.d=
tsi, it
> > > > > > looks like there are two related IRQs: 121 and 122.
> > > > > >
> > > > > > Finally, why did you mention SATA passthrough in your reply? I =
don't
> > > > > > follow: I cannot see any SATA controller assignment in your
> > > > > > configuration.
> > > > > >
> > > > > >
> > > > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > > > Dear Brian, Stefano and Julien,
> > > > > > >
> > > > > > > Thank you very much for your replies.
> > > > > > > Hi Brian and Stefano, Can you please help me with the followi=
ng questions?
> > > > > > >
> > > > > > > @Brian Woods Please find attached my vivado configuration, wh=
en i added my AXI DMA now running on simple polling
> mode(previously
> > i
> > > > > tried
> > > > > > it
> > > > > > > with Scatter Gather mode), Run Automation automatically gener=
ated, 1 AXI Interconnect and 1 smart connect. Since there is only
> 1
> > > > master
> > > > > > and
> > > > > > > I use the S_AXI _HP0_FPD, I finally get a value of 0xE80 for =
the stream IDs.
> > > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1884206=
6/Xen+and+PL+Masters According to this link section 6.5 I have
> > > manually
> > > > > tied
> > > > > > > of AxPROT bits to value of 0x2 to create non secure transacti=
ons. Can you please confirm that my Vivado configuration is
> correct?
> > I
> > > > can
> > > > > > > update you soon with an ILA trace on Vivado.
> > > > > > >
> > > > > > > @Stefano Stabellini Please find attached my pl.dtsi generated=
 from petalinux and system.dtsi also generated after manually
> adding
> > > > > > xen.dtsi.
> > > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3846635=
61/Building+Xen+Hypervisor+with+Petalinux+2020.1+and+2020.2 Using
> > this
> > > > > SATA
> > > > > > > passthrough, i made my own pl.dtsi for passthrough used in dm=
a.cfg. I could really use your help to identify what is missing in
> > my
> > > > xen
> > > > > > > configuration.
> > > > > > >
> > > > > > > Thanks and Best Regards,
> > > > > > > Prem
> > > > > > >
> >>>>>>___________________________________________________________________=
__________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > _
> > > > > > > From: Brian Woods <brian.woods@xilinx.com>
> > > > > > > Sent: Thursday, May 13, 2021 17:13
> > > > > > > To: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > > > Cc: Julien Grall <julien@xen.org>; Prem Harikrishnan <prem.ha=
rikrishnan@evoleotech.com>; Stefano Stabellini
> > > <sstabellini@kernel.org>;
> > > > > > > xen-users@lists.xenproject.org <xen-users@lists.xenproject.or=
g>; brian.woods@xilinx.com <brian.woods@xilinx.com>;
> fnuv@xilinx.com
> > > > > > > <fnuv@xilinx.com>; edgari@xilinx.com <edgari@xilinx.com>; bwo=
ods288@gmail.com <bwoods288@gmail.com>
> > > > > > > Subject: Re: Help: Information required for AXI DMA passthrou=
gh for PL masters in ZCU102 dev kit
> > > > > > > Prem,
> > > > > > >
> > > > > > > Sorry for the late email, I've been under the weather and hav=
e been away
> > > > > > > from my computer.  In the Zynq SOCs this is how the SMMU IDs =
in PL are
> > > > > > > calculated:
> > > > > > >
> > > > > > > 14-10: TBU bits
> > > > > > > 9-6: Master ID bits
> > > > > > > 5-0: AXI ID bits
> > > > > > >
> > > > > > > https://www.xilinx.com/support/documentation/user_guides/ug10=
85-zynq-ultrascale-trm.pdf
> > > > > > > To look up the TBU value, see UG1085 and look for the "System=
 Masters"
> > > > > > > table which is table 16-4 on page 409.
> > > > > > >
> > > > > > > For the master ID, see UG1085 and look for the "Master IDs Li=
st" table
> > > > > > > which is table 16-13 on page 429.
> > > > > > >
> > > > > > > The AXI ID bits is a bit trickery since it's going to be out =
in PL.
> > > > > > > See: https://www.xilinx.com/support/answers/69447.html
> > > > > > > With SmartConnect all the AXI IDs are 0, they aren't passed o=
n.  There
> > > > > > > are work arounds.  Here's a couple of examples (with example =
numbers):
> > > > > > >
> > > > > > > AXI master -> PS slave port 0
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0=
000001
> > > > > > >
> > > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0=
000000
> > > > > > >
> > > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > > >                            -> PS slave port 1
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0=
000000
> > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0=
000000
> > > > > > >
> > > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0=
000000 (both share)
> > > > > > >
> > > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > > >                                 -> PS slave port 1
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0=
000000 (both share)
> > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0=
000000 (both share)
> > > > > > >
> > > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS=
 slave port 0
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0=
000001 (master #1)
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0=
000002 (master #2)
> > > > > > >
> > > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS=
 slave port 0
> > > > > > >                                                         -> PS=
 slave port 1
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0=
000001 (master #1)
> > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0=
000001 (master #1)
> > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0=
000002 (master #2)
> > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0=
000002 (master #2)
> > > > > > >
> > > > > > > The "sideband -> SmartConenct -> sideband" can also be functi=
onally
> > > > > > > replaced with "AXI Interconnect" to my knowledge.  So the AXI=
 ID bits are
> > > > > > > fairly simple but with some caveats.
> > > > > > >
> > > > > > > You can also read in the SMMU faults from Xen and use:
> > > > > > > https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_=
architecture_specification.pdf
> > > > > > > to decode them. That should tell you the SMMU IDs as well.
> > > > > > >
> > > > > > > Let me know if this isn't clear or you have any other questio=
ns.
> > > > > > >
> > > > > > > Brian
> > > > > > >
> > > > > > > On Mon, May 10, 2021 at 06:49:07PM -0700, Stefano Stabellini =
wrote:
> > > > > > > > On Mon, 10 May 2021, Julien Grall wrote:
> > > > > > > > > On 26/04/2021 15:41, Prem Harikrishnan wrote:
> > > > > > > > > > Hello everyone,
> > > > > > > > >
> > > > > > > > > Hi Prem,
> > > > > > > > >
> > > > > > > > > > I am using the latest version of the xilinx mpsoc zcu10=
2 development board
> > > > > > > > > > and i am trying to create a barematal application that =
uses the AXI DMA on
> > > > > > > > > > the programmable logic, using the scatter gather exampl=
e from the xilinx
> > > > > > > > > > repository. This works perfectly well for the baremetal=
 application. The
> > > > > > > > > > diagram below represents the information flow. The AXI =
DMA and the AXI data
> > > > > > > > > > FIFO are in the Programable logic (FPGA). This AXI DMA =
is out of the box IP
> > > > > > > > > > from Vivado and uses a single channel (Does not use AxU=
SER) which means the
> > > > > > > > > > AXI ID cannot manually be set.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Now i want to make this as a baremetal hypervisor guest=
, in future this will
> > > > > > > > > > be replaced by a custom IP with cache colouring enabled=
. I want to pass
> > > > > > > > > > through the AXI DMA in the PL. (Not to be used by Dom0)
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > I followed this tutorial Baremetal + DomU
> > > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/=
18842536/XEN+EL1+Baremetal+DomU>
> > > > > > > > > > guest changed the base address to 0x4000000,(1GB alloca=
ted to Dom-0) to
> > > > > > > > > > create my EL1 binary. I used Petalinux 2020.2 to genera=
te my linux, xen
> > > > > > > > > > image and use tftp to boot.
> > > > > > > > > >
> > > > > > > > > >  From what i understand from the xilinx tutorials Xen+a=
nd+PL+Masters
> > > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/=
18842066/Xen+and+PL+Masters>
> > > > > > > > > > section 3 and MPSOC SMMU
> > > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/=
18841981/Zynq+UltraScale+MPSOC+SMMU>
> > > > > > > > > > section 4, stream ids are required by the SMMU to get t=
he correct address
> > > > > > > > > > translation.
> > > > > > > > > >
> > > > > > > > > > I am still unable to figure out how to get the iommu pr=
operty for my AXI DMA
> > > > > > > > > > and how to set the dtdev config for my hypervisor guest=
.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > I can also see some new updates with the XEN 2020.1 and=
 2020.2 releases
> > > > > > > > > > which i can be useful to my application
> > > > > > > > > >
> > > > > > > > > >   *   1:1 memory mappings for Xen virtual machines, ena=
bling device
> > > > > > > > > >     assignments without SMMU
> > > > > > > > > >   *
> > > > > > > > > >       Static assignment of PL blocks, including bus-mas=
tering blocks, to
> > > > > > > > > >     Xen virtual machines
> > > > > > > > > >   *   Support for PL Device Passthrough to DomU in Xen
> > > > > > > > >
> > > > > > > > > You are usiong a version of Xen that has been customised =
by Xilinx. So I would
> > > > > > > > > recommend to contact them directly.
> > > > > > > > >
> > > > > > > > > I have CCed Stefano who might be able to help you.
> > > > > > > >
> > > > > > > > Hi Julien,
> > > > > > > >
> > > > > > > > Many thanks for CC'ing me, I missed the email.
> > > > > > > >
> > > > > > > >
> > > > > > > > Hi Prem,
> > > > > > > >
> > > > > > > > Let me CC a few people that might be able to help.
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
>

--_000_VI1PR05MB4430F1A749CB6AE4C3C1AC0B890D9VI1PR05MB4430eurp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Hi Stefano,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Thank you very much&nbsp;for your detailed reply.&nbsp; I now have xen boot=
ing from qspi, i followed your instructions, the only additional thing i ha=
d to change is the boot script offset in petalinux u boot config. Thank you=
 again for your support.</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Best Regards,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Prem&nbsp; <br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Stefano Stabellini &l=
t;stefano.stabellini@xilinx.com&gt;<br>
<b>Sent:</b> Tuesday, June 15, 2021 22:17<br>
<b>To:</b> Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;<br>
<b>Cc:</b> Stefano Stabellini &lt;stefanos@xilinx.com&gt;; xen-users@lists.=
xenproject.org &lt;xen-users@lists.xenproject.org&gt;; JOVITAC@xilinx.com &=
lt;JOVITAC@xilinx.com&gt;; fnuv@xilinx.com &lt;fnuv@xilinx.com&gt;; brian.w=
oods@xilinx.com &lt;brian.woods@xilinx.com&gt;<br>
<b>Subject:</b> Re: Help: Information required for AXI DMA passthrough for =
PL masters in ZCU102 dev kit</font>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt;=
">
<div class=3D"PlainText">We don't have a recipe ready. It is not something =
we test. However I<br>
think it should be possible.<br>
<br>
The first step would be try to generate a BOOT.BIN for QSPI booting and<br>
write it to QSPI. The goal is to get to the u-boot prompt, with<br>
everything booted from QSPI. Then the next step is to add Xen, Linux,<br>
the DTB and Linux ramdisk. (Of course if you are OK with loading Xen and<br=
>
the other binaries from somewhere else like the SD card then it is going<br=
>
to work as is.)<br>
<br>
You should be able to write each binary to QSPI as separate partitions.<br>
<br>
At that point, you are only missing a boot.scr that can load them and<br>
boot. ImageBuilder supports custom u-boot load commands by setting the<br>
LOAD_CMD variable. In this case you'd need to set LOAD_CMD to something<br>
like &quot;sf read&quot;, but given that the other command arguments are no=
t<br>
filenames, ImageBuilder won't be able to handle it anyway.<br>
<br>
But you can take an ImageBuilder-generated boot.source, substitute the<br>
&quot;tftpb&quot; commands with the appropriate &quot;sf read&quot; command=
s and call<br>
mkimage to get a boot.scr.<br>
<br>
Now you should be able to run boot.scr from the u-boot prompt and load<br>
everything from QSPI.<br>
<br>
This is some relevant info:<br>
<br>
<a href=3D"https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842465/U=
-Boot+QSPI+Driver">https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18=
842465/U-Boot+QSPI+Driver</a><br>
<br>
<br>
I know it is a bit complex but I think it should work OK.<br>
<br>
<br>
<br>
On Tue, 15 Jun 2021, Prem Harikrishnan wrote:<br>
&gt; Hi Stefano,<br>
&gt; <br>
&gt; Is it possible to boot XEN from QSPI? Is there an image builder script=
 already available to generate boot.scr? Please let me&nbsp;know.<br>
&gt; Thanks and Best Regards,<br>
&gt; Prem<br>
&gt; <br>
&gt; ______________________________________________________________________=
_____________________________________________________________________<br>
&gt; From: Xen-users &lt;xen-users-bounces@lists.xenproject.org&gt; on beha=
lf of Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;<br>
&gt; Sent: Tuesday, June 1, 2021 18:07<br>
&gt; To: Mubin Usman Sayyed &lt;MUBINUSM@xilinx.com&gt;; Stefano Stabellini=
 &lt;stefanos@xilinx.com&gt;<br>
&gt; Cc: xen-users@lists.xenproject.org &lt;xen-users@lists.xenproject.org&=
gt;; Jovita Castelino &lt;JOVITAC@xilinx.com&gt;<br>
&gt; Subject: Re: Help: Information required for AXI DMA passthrough for PL=
 masters in ZCU102 dev kit &nbsp;<br>
&gt; Hi Stefano and Mubin,<br>
&gt; <br>
&gt; Thank you very much for helping me setup up FreeRTOS and baremetal gue=
sts, everything works as expected and I also get expected performance<br>
&gt; in both baremetal and hypervisor guests. Thank you again for your prom=
pt support during the past few weeks.<br>
&gt; <br>
&gt; Best Regrards,<br>
&gt; Prem<br>
&gt; <br>
&gt; ______________________________________________________________________=
_____________________________________________________________________<br>
&gt; From: Mubin Usman Sayyed &lt;MUBINUSM@xilinx.com&gt;<br>
&gt; Sent: Tuesday, June 1, 2021 05:38<br>
&gt; To: Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;; Stefan=
o Stabellini &lt;stefanos@xilinx.com&gt;<br>
&gt; Cc: xen-users@lists.xenproject.org &lt;xen-users@lists.xenproject.org&=
gt;; Jovita Castelino &lt;JOVITAC@xilinx.com&gt;<br>
&gt; Subject: RE: Help: Information required for AXI DMA passthrough for PL=
 masters in ZCU102 dev kit &nbsp;<br>
&gt; <br>
&gt; In case of FreeRTOS, &nbsp;you need to use APIs from FreeRTOS port for=
 interrupt handling<br>
&gt; &nbsp;(<a href=3D""></a>https://github.com/Xilinx/embeddedsw/blob/mast=
er/ThirdParty/bsp/freertos10_xilinx/examples/freertos_intr_example.c#L192 a=
nd line 194).<br>
&gt; Please make sure that you are taking care of that in DMA interrupt exa=
mple .<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; Thanks,<br>
&gt; <br>
&gt; Mubin<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; From: Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;<br>
&gt; Sent: Tuesday, June 1, 2021 2:48 AM<br>
&gt; To: Stefano Stabellini &lt;stefanos@xilinx.com&gt;<br>
&gt; Cc: xen-users@lists.xenproject.org; Jovita Castelino &lt;JOVITAC@xilin=
x.com&gt;; Mubin Usman Sayyed &lt;MUBINUSM@xilinx.com&gt;<br>
&gt; Subject: Re: Help: Information required for AXI DMA passthrough for PL=
 masters in ZCU102 dev kit<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; Hi Stefano and Mubin,<br>
&gt; <br>
&gt; Thank you very much for your replies.<br>
&gt; <br>
&gt; @Stefano Stabellini Sorry to bother you again, and thank you for point=
ing this out, the TTC0 is by default enabled for FreeRTOS to generate<br>
&gt; ticks, although this says only for R5 core, i would have never figured=
 this out. As soon as I added the irqs and iomem and gave a xen<br>
&gt; passthrough in the xen.dtsi as you have suggested, FreeRTOS guest star=
ted working for other peripherals except for my DMA (FreeRTOS guest<br>
&gt; does not work with interrupt and DMA).<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; I can see my DMA is enabled because i have LEDs configured to blink fo=
r every interrupt I get from the PL. I don't see my interrupts being<br>
&gt; processed, but when I destroy the guest, I get this output periodicall=
y when an interrupt occurs.<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be ser=
ious<br>
&gt; (XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x0=
0000002, GFSYNR1 0x00000e80, GFSYNR2 0x00000000<br>
&gt; <br>
&gt; (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be ser=
ious<br>
&gt; (XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x0=
0000002, GFSYNR1 0x00000e80, GFSYNR2 0x00000000<br>
&gt; <br>
&gt; (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be ser=
ious<br>
&gt; (XEN) smmu: /smmu@fd800000: &nbsp; &nbsp; GFSR 0x80000002, GFSYNR0 0x0=
0000002, GFSYNR1 0x00000e80, GFSYNR2 0x00000000<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; From section 3.6 of the wiki <a href=3D"https://xilinx-wiki.atlassian.=
net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+M=
asters</a><br>
&gt; <br>
&gt; Xen and PL Masters - Xilinx Wiki - Confluence<br>
&gt; <br>
&gt; 3.4 Stream IDs in the Device Tree. For Xen based systems the stream ID=
s of PL masters must be added to the Linux Dom0 device tree.<br>
&gt; Automated device tree generation does not generate the stream IDs for =
the PL masters so that the user must add them into the device tree<br>
&gt; manually.<br>
&gt; <br>
&gt; xilinx-wiki.atlassian.net<br>
&gt; <br>
&gt; The fault indicates an unidentified stream ID has been received by the=
 SMMU as shown in the GFSR register. The GFSYNR1 register contains<br>
&gt; the stream ID that was unidentified. A stream ID of 0xE80 was unidenti=
fied in the above fault.<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; But I think i have already added that in my smmu and iommu in xen.dtsi=
 because my baremetal application works well as expected. I have<br>
&gt; attached my xen.dtsi, system.dtsi, baremetal.cfg(working) and freertos=
.cfg(not working).<br>
&gt; <br>
&gt; What could I be missing here? Do I have to enable the ttc0 in the devi=
ce tree?<br>
&gt; <br>
&gt; Also what does (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 F=
req: 99990 KHz mean when XEN boots up?<br>
&gt; <br>
&gt; Thanks, I look forward for your reply.<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; Best Regards,<br>
&gt; <br>
&gt; Prem<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; <br>
&gt;&nbsp; ________________________________________________________________=
________________________________________________________________________<br=
>
&gt; <br>
&gt; <br>
&gt; From: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;<br>
&gt; Sent: Friday, May 28, 2021 20:43<br>
&gt; To: Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;<br>
&gt; Cc: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;; xen-user=
s@lists.xenproject.org &lt;xen-users@lists.xenproject.org&gt;; JOVITAC@xili=
nx.com<br>
&gt; &lt;JOVITAC@xilinx.com&gt;; MUBINUSM@xilinx.com &lt;MUBINUSM@xilinx.co=
m&gt;<br>
&gt; Subject: Re: Help: Information required for AXI DMA passthrough for PL=
 masters in ZCU102 dev kit<br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; From the gpa address, it looks like FreeRTOS is trying to access the T=
TC<br>
&gt; timer? If you look at device tree, the corresponding node is<br>
&gt; timer@ff110000.<br>
&gt; <br>
&gt; If FreeRTOS is configured to access the TTC timer, then you need to<br=
>
&gt; assign it to it. Did you assign the TTC timer to the FreeRTOS domU by<=
br>
&gt; any chance?<br>
&gt; <br>
&gt; You can do that by adding:<br>
&gt; <br>
&gt; irqs =3D [ 68, 69, 70 ]<br>
&gt; iomem =3D [ &quot;0xff110,1&quot; ]<br>
&gt; <br>
&gt; <br>
&gt; On Fri, 28 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; Hi Stefano,<br>
&gt; &gt; Thanks for your reply. I am pretty sure I followed the steps you =
mentioned below to run the FreeRTOS hello world example. I already added<br=
>
&gt; &gt; printfs and i can see XEN cannot start the scheduler and i get th=
e following out put on XEN.<br>
&gt; &gt;<br>
&gt; &gt; Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]<br>
&gt; &gt; (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent: id=
=3D2 memflags=3D0xc0 (0 of 64)<br>
&gt; &gt; (XEN) memory_map:add: dom2 gfn=3Dff010 mfn=3Dff010 nr=3D1 cache=
=3D0<br>
&gt; &gt; (XEN) sched_null.c:344: 1 &lt;-- d2v0<br>
&gt; &gt; (XEN) traps.c:1973:d2v0 HSR=3D0x93820007 pc=3D0x00000040012b08 gv=
a=3D0xff11000c gpa=3D0x000000ff11000c<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; I also see that according to this article<br>
&gt; &gt; <a href=3D"https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/=
Partner-FreeRTOS-as-a-Xen-Virtual-Machine/ba-p/947030">
https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as-a=
-Xen-Virtual-Machine/ba-p/947030</a><br>
&gt; &gt; [52662iFAD1733707609204?v=3Dv2]<br>
&gt; &gt; Partner: FreeRTOS as a Xen Virtual Machine - Community Forums<br>
&gt; &gt; Contributed by Jeff Kubascik, Embedded Systems Engineer at Dorner=
Works What is FreeRTOS? The FreeRTOS kernel is a market leading<br>
&gt; real-time<br>
&gt; &gt; operating system for embedded systems. As embedded applications g=
row in complexity, there is a growing need for a lightweight kernel<br>
&gt; &gt; capable of task scheduling...<br>
&gt; &gt; forums.xilinx.com<br>
&gt; &gt; FreeRTOS does not run out of the box for XEN, although the articl=
e is 2 years old, I am not sure if there are any updates on this after<br>
&gt; &gt; that. Can you please confirm?<br>
&gt; &gt;<br>
&gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; Prem<br>
&gt; &gt;<br>
&gt; &gt;__________________________________________________________________=
________________________________________________________________________<br=
>
&gt; _<br>
&gt; &gt; From: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;<br=
>
&gt; &gt; Sent: Friday, May 28, 2021 02:51<br>
&gt; &gt; To: Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;<br=
>
&gt; &gt; Cc: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;; xen=
-users@lists.xenproject.org &lt;xen-users@lists.xenproject.org&gt;;<br>
&gt; JOVITAC@xilinx.com<br>
&gt; &gt; &lt;JOVITAC@xilinx.com&gt;; MUBINUSM@xilinx.com &lt;MUBINUSM@xili=
nx.com&gt;<br>
&gt; &gt; Subject: Re: Help: Information required for AXI DMA passthrough f=
or PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; +Mubin<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Hi Prem,<br>
&gt; &gt;<br>
&gt; &gt; Did you make sure to build FreeRTOS as &quot;hypervisor guest&quo=
t;? I think<br>
&gt; &gt; FreeRTOS is built to run at EL3 by default so if that is not chan=
ged<br>
&gt; &gt; there are errors when run on any hypervisor. It is possible to bu=
ild<br>
&gt; &gt; FreeRTOS to run on Xen but it requires a couple of manual steps:<=
br>
&gt; &gt;<br>
&gt; &gt; - source settings64.sh from Vitis builds<br>
&gt; &gt; - xsct<br>
&gt; &gt; - set WORKSPACE .<br>
&gt; &gt; - setws -switch $WORKSPACE<br>
&gt; &gt; - app create -name freertos-hello-world -template {FreeRTOS Hello=
 World} -proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx<br>
&gt; &gt; - bsp config stdin psu_uart_1<br>
&gt; &gt; - bsp config stdout psu_uart_1<br>
&gt; &gt; - bsp config hypervisor_guest true<br>
&gt; &gt; - Go to application source path and modify the linker script star=
t address to 0x40000000,<br>
&gt; &gt; - app build -name freertos-hello-world<br>
&gt; &gt; - Run command to generate BIN file from executable &quot;aarch64-=
linux-gnu-objcopy -O binary --gap-fill 0&nbsp; &lt;elf path&gt; BOOT.BIN&qu=
ot;<br>
&gt; &gt;<br>
&gt; &gt; The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC=
'ed,<br>
&gt; &gt; might be able to provide additional info.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Thu, 27 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; Hi Stefano,<br>
&gt; &gt; &gt; Sorry to bother you again.<br>
&gt; &gt; &gt; I am currently trying to run my custom IP which sends period=
ic dma interrupts to the PS with cache coloring enabled. I have now<br>
&gt; compiled<br>
&gt; &gt; my<br>
&gt; &gt; &gt; guest running with FreeRTOS and it generates a trap.<br>
&gt; &gt; &gt; Petalinux and VITIS IDE Version is 2020.2.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Please find the log attached. After the trap occurs, for eve=
ry interrupt XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context<br>
&gt; fault:<br>
&gt; &gt; &gt; fsr=3D0x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing=
 config from apu_freertos.cfg<br>
&gt; &gt; &gt; (XEN) Dom1 colors: [ 8 ]<br>
&gt; &gt; &gt; (XEN) memory.c:255:d0v0 Could not allocate order=3D9 extent:=
 id=3D1 memflags=3D0xc0 (0 of 64)<br>
&gt; &gt; &gt; (XEN) memory_map:add: dom1 gfn=3Dff010 mfn=3Dff010 nr=3D1 ca=
che=3D0<br>
&gt; &gt; &gt; (XEN) memory_map:add: dom1 gfn=3Da0010 mfn=3Da0010 nr=3D1 ca=
che=3D0<br>
&gt; &gt; &gt; (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000<b=
r>
&gt; &gt; &gt; (XEN) sched_null.c:344: 1 &lt;-- d1v0<br>
&gt; &gt; &gt; (XEN) traps.c:1973:d1v0 HSR=3D0x93820007 pc=3D0x000000400131=
88 gva=3D0xff11000c gpa=3D0x000000ff11000c<br>
&gt; &gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0=
x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0=
x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0=
x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; &gt; (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=3D0=
x402, iova=3D0x41000000, fsynr=3D0x12, cb=3D1<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; The same application works as expected without FreeRTOS, i.e=
 as a baremetal guest. I look forward for your comment on this.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Although i see performance degradation, normally i can measu=
re delta time for each interrupt configured to 1ms (without XEN), with XEN<=
br>
&gt; &gt; for<br>
&gt; &gt; &gt; the same measurement shows 16 ms for each interval (but the =
performance is not a priority for now).<br>
&gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; Prem<br>
&gt; &gt; &gt;<br>
&gt; &gt;&gt;______________________________________________________________=
___________________________________________________________________________=
<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; From: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&g=
t;<br>
&gt; &gt; &gt; Sent: Tuesday, May 18, 2021 20:09<br>
&gt; &gt; &gt; To: Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&g=
t;<br>
&gt; &gt; &gt; Cc: Stefano Stabellini &lt;stefano.stabellini@xilinx.com&gt;=
; xen-users@lists.xenproject.org &lt;xen-users@lists.xenproject.org&gt;;<br=
>
&gt; &gt; JOVITAC@xilinx.com<br>
&gt; &gt; &gt; &lt;JOVITAC@xilinx.com&gt;<br>
&gt; &gt; &gt; Subject: Re: Help: Information required for AXI DMA passthro=
ugh for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; Great to hear! Thank you for reporting back.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Tue, 18 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; Dear Stefano,<br>
&gt; &gt; &gt; &gt; Thank you very much for your guidance and support. I fi=
nally fixed the issue. I made an error in base memory address like you poin=
ted<br>
&gt; &gt; &gt; out.<br>
&gt; &gt; &gt; &gt; I actually modified the base address correctly to 0x400=
00000 but the default C code had an additional offset of 0x1100000 , and th=
e<br>
&gt; &gt; DomU<br>
&gt; &gt; &gt; &gt; memory allocated was only 8MB. I either had to change t=
he offset or allocate more memory to the DomU guest which i missed until yo=
u<br>
&gt; &gt; &gt; pointed<br>
&gt; &gt; &gt; &gt; out. Additionally i had to set to AxPROT bits to 0x2 in=
 Vivado and the SMID required is 0xE80.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Thanks again i was able get my custom IP also working a=
s an AXI master from PL.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;__________________________________________________________=
___________________________________________________________________________=
___<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;stefano.stabellini@xilinx.=
com&gt;<br>
&gt; &gt; &gt; &gt; Sent: Tuesday, May 18, 2021 02:35<br>
&gt; &gt; &gt; &gt; To: Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.=
com&gt;<br>
&gt; &gt; &gt; &gt; Cc: Stefano Stabellini &lt;stefano.stabellini@xilinx.co=
m&gt;; Brian Woods &lt;brian.woods@xilinx.com&gt;; Julien Grall &lt;julien@=
xen.org&gt;; Stefano<br>
&gt; &gt; &gt; &gt; Stabellini &lt;sstabellini@kernel.org&gt;; xen-users@li=
sts.xenproject.org &lt;xen-users@lists.xenproject.org&gt;; fnuv@xilinx.com<=
br>
&gt; &gt; &lt;fnuv@xilinx.com&gt;;<br>
&gt; &gt; &gt; &gt; edgari@xilinx.com &lt;edgari@xilinx.com&gt;; bwoods288@=
gmail.com &lt;bwoods288@gmail.com&gt;; Renato Costa Amorim &lt;renato.amori=
m@evoleotech.com&gt;;<br>
&gt; &gt; &gt; &gt; JOVITAC@xilinx.com &lt;JOVITAC@xilinx.com&gt;<br>
&gt; &gt; &gt; &gt; Subject: Re: Help: Information required for AXI DMA pas=
sthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; Your configuration looks correct as far as I can tell.<=
br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; You need dtdev because it triggers the SMMU configurati=
on for your PL<br>
&gt; &gt; &gt; &gt; block. You don't need device_tree because your baremeta=
l application is<br>
&gt; &gt; &gt; &gt; not going to read it, but it is not going to cause any =
issues either.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; When you say &quot;the execution does not complete the =
loop at line 244&quot;, it<br>
&gt; &gt; &gt; &gt; means that you see the execution entering the loop and =
then never<br>
&gt; &gt; &gt; &gt; leaving? Like an infinite loop?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; If so, then I imagine the issue could be that the appli=
cation is<br>
&gt; &gt; &gt; &gt; crashing when trying to access TxBufferPtr, which is po=
inting to<br>
&gt; &gt; &gt; &gt; TX_BUFFER_BASE, which is:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; #ifndef DDR_BASE_ADDR<br>
&gt; &gt; &gt; &gt; #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS=
.H, \<br>
&gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT SET TO 0x01000000<br>
&gt; &gt; &gt; &gt; #define MEM_BASE_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp; 0x01000000<br>
&gt; &gt; &gt; &gt; #else<br>
&gt; &gt; &gt; &gt; #define MEM_BASE_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp; (DDR_BASE_ADDR + 0x1000000)<br>
&gt; &gt; &gt; &gt; #endif<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; #define TX_BUFFER_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; (MEM_BASE_ADDR + 0x00100000)<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can you double check that TX_BUFFER_BASE is pointing to=
 a correct<br>
&gt; &gt; &gt; &gt; address? Memory starts at 0x40000000 in a Xen DomU.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?=
<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Mon, 17 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; Hi Stefano,<br>
&gt; &gt; &gt; &gt; &gt; Thanks again for your reply and your suggestion.&n=
bsp; I did try to replace the Xil_DCacheFlushRange with<br>
&gt; Xil_DCacheInvalidateRange(works<br>
&gt; &gt; &gt; only<br>
&gt; &gt; &gt; &gt; &gt; in EL3), I added printfs to debug, i can see that =
the execution does not complete the loop at line 244<br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"https://github.com/Xilinx/embeddedsw/bl=
ob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_example_simp=
le_poll.c">
https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drive=
rs/axidma/examples/xaxidma_example_simple_poll.c</a>&nbsp; and<br>
&gt; &gt; &gt; &gt; &gt; Xil_DCacheFlushRange is not reached. Please find a=
ttached my xen bootlog.txt.<br>
&gt; &gt; &gt; &gt; &gt; I am still unable to find out why??<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Can you please atleast verify that my xen.dtsi, an=
d pl.dtb is correct? and do i need dtdev and device_tree in my guest config=
 file<br>
&gt; &gt; when<br>
&gt; &gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt; &gt; is already added to xen.dtsi?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;______________________________________________________=
___________________________________________________________________________=
______<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;stefano.stabellini@xi=
linx.com&gt;<br>
&gt; &gt; &gt; &gt; &gt; Sent: Saturday, May 15, 2021 00:25<br>
&gt; &gt; &gt; &gt; &gt; To: Prem Harikrishnan &lt;prem.harikrishnan@evoleo=
tech.com&gt;<br>
&gt; &gt; &gt; &gt; &gt; Cc: Stefano Stabellini &lt;stefano.stabellini@xili=
nx.com&gt;; Brian Woods &lt;brian.woods@xilinx.com&gt;; Julien Grall &lt;ju=
lien@xen.org&gt;;<br>
&gt; Stefano<br>
&gt; &gt; &gt; &gt; &gt; Stabellini &lt;sstabellini@kernel.org&gt;; xen-use=
rs@lists.xenproject.org &lt;xen-users@lists.xenproject.org&gt;; fnuv@xilinx=
.com<br>
&gt; &gt; &gt; &lt;fnuv@xilinx.com&gt;;<br>
&gt; &gt; &gt; &gt; &gt; edgari@xilinx.com &lt;edgari@xilinx.com&gt;; bwood=
s288@gmail.com &lt;bwoods288@gmail.com&gt;; Renato Costa Amorim<br>
&gt; &lt;renato.amorim@evoleotech.com&gt;;<br>
&gt; &gt; &gt; &gt; &gt; JOVITAC@xilinx.com &lt;JOVITAC@xilinx.com&gt;<br>
&gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required for AXI DM=
A passthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Some older versions of Xil_DCacheFlushRange were i=
mplemented using<br>
&gt; &gt; &gt; &gt; &gt; deprecated set/way instructions that are known to =
cause problems in<br>
&gt; &gt; &gt; &gt; &gt; virtualized environments.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; More recent implementations use the &quot;dc civac=
&quot; intruction that shouldn't<br>
&gt; &gt; &gt; &gt; &gt; have any issues.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Can you double-check that you are calling the 64-b=
it version implemented<br>
&gt; &gt; &gt; &gt; &gt; by CIVAC?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;<a href=3D"https://github.com/Xilinx/embeddedsw/blob/8=
75dcc7a4dca47ccb18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64=
bit/xil_cache.c#L">https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47=
ccb18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache=
.c#L</a><br>
&gt; 4<br>
&gt; &gt; 1<br>
&gt; &gt; &gt; 4<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; On Fri, 14 May 2021, Prem Harikrishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; Hi Stefano,&nbsp;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thanks for your reply. Yes the axidma applica=
tion is a baremetal application from the xilinx vitis ide example.&nbsp;<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; Also yes, I have already run hello world as D=
omU guest, with UART1.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; I am using the simple mode using polling and =
not interrupts(they are disabled in the c code), which is Why I didn't incl=
ude in<br>
&gt; the<br>
&gt; &gt; &gt; &gt; guest<br>
&gt; &gt; &gt; &gt; &gt; &gt; config file. This works well when I compile i=
t normally (as EL3). When compiled as hypervisor guest, the execution stops=
 before<br>
&gt; the<br>
&gt; &gt; &gt; &gt; &gt; &gt; function xil_dcacheflushrange(). Please find =
the c code attached<br>
&gt; &gt; &gt; &gt; &gt; &gt; in&nbsp;<a href=3D"https://github.com/Xilinx/=
embeddedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma=
_example_simple_poll.c">https://github.com/Xilinx/embeddedsw/blob/master/Xi=
linxProcessorIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c</a=
>&nbsp;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; I found the SATA example similar to my use ca=
se, also using DMA and SMMU. I just used it as a reference to create my pl.=
dtb to<br>
&gt; pass<br>
&gt; &gt; &gt; &gt; &gt; through<br>
&gt; &gt; &gt; &gt; &gt; &gt; in the guest config.(from pl.dtsi, which I ma=
nually created).<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Get Outlook for Android<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;__________________________________________________=
___________________________________________________________________________=
_________<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; &gt; From: Stefano Stabellini &lt;stefano.stabelli=
ni@xilinx.com&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sent: Friday 14 May 2021, 23:16<br>
&gt; &gt; &gt; &gt; &gt; &gt; To: Prem Harikrishnan<br>
&gt; &gt; &gt; &gt; &gt; &gt; Cc: Brian Woods; Stefano Stabellini; Julien G=
rall; Stefano Stabellini; xen-users@lists.xenproject.org; fnuv@xilinx.com;<=
br>
&gt; &gt; &gt; &gt; &gt; edgari@xilinx.com;<br>
&gt; &gt; &gt; &gt; &gt; &gt; bwoods288@gmail.com; Renato Costa Amorim; JOV=
ITAC@xilinx.com<br>
&gt; &gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required for A=
XI DMA passthrough for PL masters in ZCU102 dev kit<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; I take that the guest kernel &quot;/bin/xaxid=
ma_example_simple_poll_1.bin&quot; is<br>
&gt; &gt; &gt; &gt; &gt; &gt; a baremetal application? Can you run it succe=
ssfully, just printing<br>
&gt; &gt; &gt; &gt; &gt; &gt; &quot;hello world&quot;, if you only assign t=
he UART and nothing else?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; I am asking just to verify that you can run t=
he baremetal VM<br>
&gt; &gt; &gt; &gt; &gt; &gt; successfully, aside from the PL device assign=
ment.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; In regards to the PL device assignment, I'll =
let Brian answer on the<br>
&gt; &gt; &gt; &gt; &gt; &gt; Vivado configuration and SMID calculation. Bu=
t I noticed that you only<br>
&gt; &gt; &gt; &gt; &gt; &gt; assigned IRQ 54 to the DomU which is the one =
for UART1. You haven't<br>
&gt; &gt; &gt; &gt; &gt; &gt; assigned any IRQs for axi_dma_0. Looking at p=
l_from_petalinux.dtsi, it<br>
&gt; &gt; &gt; &gt; &gt; &gt; looks like there are two related IRQs: 121 an=
d 122.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Finally, why did you mention SATA passthrough=
 in your reply? I don't<br>
&gt; &gt; &gt; &gt; &gt; &gt; follow: I cannot see any SATA controller assi=
gnment in your<br>
&gt; &gt; &gt; &gt; &gt; &gt; configuration.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Fri, 14 May 2021, Prem Harikrishnan wrote:=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Dear Brian, Stefano and Julien,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Thank you very much for your replies.<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Brian and Stefano, Can you please hel=
p me with the following questions?<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; @Brian Woods Please find attached my viv=
ado configuration, when i added my AXI DMA now running on simple polling<br=
>
&gt; mode(previously<br>
&gt; &gt; i<br>
&gt; &gt; &gt; &gt; &gt; tried<br>
&gt; &gt; &gt; &gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; with Scatter Gather mode), Run Automatio=
n automatically generated, 1 AXI Interconnect and 1 smart connect. Since th=
ere is only<br>
&gt; 1<br>
&gt; &gt; &gt; &gt; master<br>
&gt; &gt; &gt; &gt; &gt; &gt; and<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; I use the S_AXI _HP0_FPD, I finally get =
a value of 0xE80 for the stream IDs.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://xilinx-wiki.atlassian=
.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+M=
asters</a> According to this link section 6.5 I have<br>
&gt; &gt; &gt; manually<br>
&gt; &gt; &gt; &gt; &gt; tied<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; of AxPROT bits to value of 0x2 to create=
 non secure transactions. Can you please confirm that my Vivado configurati=
on is<br>
&gt; correct?<br>
&gt; &gt; I<br>
&gt; &gt; &gt; &gt; can<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; update you soon with an ILA trace on Viv=
ado.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; @Stefano Stabellini Please find attached=
 my pl.dtsi generated from petalinux and system.dtsi also generated after m=
anually<br>
&gt; adding<br>
&gt; &gt; &gt; &gt; &gt; &gt; xen.dtsi.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://xilinx-wiki.atlassian=
.net/wiki/spaces/A/pages/384663561/Building+Xen+Hypervisor+with+Petalinux+2=
020.1+and+2020.2">
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561/Building+Xe=
n+Hypervisor+with+Petalinux+2020.1+and+2020.2</a> Using<br>
&gt; &gt; this<br>
&gt; &gt; &gt; &gt; &gt; SATA<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; passthrough, i made my own pl.dtsi for p=
assthrough used in dma.cfg. I could really use your help to identify what i=
s missing in<br>
&gt; &gt; my<br>
&gt; &gt; &gt; &gt; xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; configuration.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Thanks and Best Regards,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Prem<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;______________________________________________=
___________________________________________________________________________=
____________<br>
&gt; _<br>
&gt; &gt; _<br>
&gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; &gt; _<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; From: Brian Woods &lt;brian.woods@xilinx=
.com&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Sent: Thursday, May 13, 2021 17:13<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; To: Stefano Stabellini &lt;stefano.stabe=
llini@xilinx.com&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Cc: Julien Grall &lt;julien@xen.org&gt;;=
 Prem Harikrishnan &lt;prem.harikrishnan@evoleotech.com&gt;; Stefano Stabel=
lini<br>
&gt; &gt; &gt; &lt;sstabellini@kernel.org&gt;;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; xen-users@lists.xenproject.org &lt;xen-u=
sers@lists.xenproject.org&gt;; brian.woods@xilinx.com &lt;brian.woods@xilin=
x.com&gt;;<br>
&gt; fnuv@xilinx.com<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;fnuv@xilinx.com&gt;; edgari@xilinx.c=
om &lt;edgari@xilinx.com&gt;; bwoods288@gmail.com &lt;bwoods288@gmail.com&g=
t;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Subject: Re: Help: Information required =
for AXI DMA passthrough for PL masters in ZCU102 dev kit &nbsp;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Sorry for the late email, I've been unde=
r the weather and have been away<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; from my computer.&nbsp; In the Zynq SOCs=
 this is how the SMMU IDs in PL are<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; calculated:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 14-10: TBU bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 9-6: Master ID bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 5-0: AXI ID bits<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://www.xilinx.com/suppor=
t/documentation/user_guides/ug1085-zynq-ultrascale-trm.pdf">
https://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultras=
cale-trm.pdf</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; To look up the TBU value, see UG1085 and=
 look for the &quot;System Masters&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; table which is table 16-4 on page 409.<b=
r>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; For the master ID, see UG1085 and look f=
or the &quot;Master IDs List&quot; table<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; which is table 16-13 on page 429.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; The AXI ID bits is a bit trickery since =
it's going to be out in PL.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; See: <a href=3D"https://www.xilinx.com/s=
upport/answers/69447.html">https://www.xilinx.com/support/answers/69447.htm=
l</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; With SmartConnect all the AXI IDs are 0,=
 they aren't passed on.&nbsp; There<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; are work arounds.&nbsp; Here's a couple =
of examples (with example numbers):<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; SmartConnect -&gt; PS s=
lave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; AXI master -&gt; SmartConnect -&gt; PS s=
lave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; SmartConnect -&gt;=
 PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; SmartConnect -&gt;=
 PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&g=
t; PS slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000 (both share)=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; sideband -&gt; Sma=
rtConnect -&gt; sideband -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Two AXI masters -&gt; sideband -&gt; Sma=
rtConnect -&gt; sideband -&gt; PS slave port 0<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; PS =
slave port 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000001 (master #1)<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000002 (master #2)<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; The &quot;sideband -&gt; SmartConenct -&=
gt; sideband&quot; can also be functionally<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; replaced with &quot;AXI Interconnect&quo=
t; to my knowledge.&nbsp; So the AXI ID bits are<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; fairly simple but with some caveats.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; You can also read in the SMMU faults fro=
m Xen and use:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://static.docs.arm.com/i=
hi0062/dc/IHI0062D_c_system_mmu_architecture_specification.pdf">
https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_architecture_s=
pecification.pdf</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; to decode them. That should tell you the=
 SMMU IDs as well.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Let me know if this isn't clear or you h=
ave any other questions.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Brian<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; On Mon, May 10, 2021 at 06:49:07PM -0700=
, Stefano Stabellini wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On Mon, 10 May 2021, Julien Grall w=
rote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On 26/04/2021 15:41, Prem Hari=
krishnan wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hello everyone,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am using the latest ver=
sion of the xilinx mpsoc zcu102 development board<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and i am trying to create=
 a barematal application that uses the AXI DMA on<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the programmable logic, u=
sing the scatter gather example from the xilinx<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; repository. This works pe=
rfectly well for the baremetal application. The<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; diagram below represents =
the information flow. The AXI DMA and the AXI data<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; FIFO are in the Programab=
le logic (FPGA). This AXI DMA is out of the box IP<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; from Vivado and uses a si=
ngle channel (Does not use AxUSER) which means the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; AXI ID cannot manually be=
 set.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Now i want to make this a=
s a baremetal hypervisor guest, in future this will<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; be replaced by a custom I=
P with cache colouring enabled. I want to pass<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; through the AXI DMA in th=
e PL. (Not to be used by Dom0)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I followed this tutorial =
Baremetal + DomU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xi=
linx-wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremetal+DomU=
">https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Ba=
remetal+DomU</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; guest changed the base ad=
dress to 0x4000000,(1GB allocated to Dom-0) to<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; create my EL1 binary. I u=
sed Petalinux 2020.2 to generate my linux, xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; image and use tftp to boo=
t.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp; From what i underst=
and from the xilinx tutorials Xen+and+PL+Masters<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xi=
linx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters">ht=
tps://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Mas=
ters</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section 3 and MPSOC SMMU<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;<a href=3D"https://xi=
linx-wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraScale+MPSOC+=
SMMU">https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+U=
ltraScale+MPSOC+SMMU</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section 4, stream ids are=
 required by the SMMU to get the correct address<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; translation.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am still unable to figu=
re out how to get the iommu property for my AXI DMA<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and how to set the dtdev =
config for my hypervisor guest.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I can also see some new u=
pdates with the XEN 2020.1 and 2020.2 releases<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; which i can be useful to =
my application<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *&nbsp; &nbsp=
;1:1 memory mappings for Xen virtual machines, enabling device<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; a=
ssignments without SMMU<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; &nbsp;Static assignment of PL blocks, including bus-mastering blocks, =
to<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; X=
en virtual machines<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; *&nbsp; &nbsp=
;Support for PL Device Passthrough to DomU in Xen<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; You are usiong a version of Xe=
n that has been customised by Xilinx. So I would<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; recommend to contact them dire=
ctly.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I have CCed Stefano who might =
be able to help you.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Julien,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Many thanks for CC'ing me, I missed=
 the email.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Prem,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Let me CC a few people that might b=
e able to help.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; <br>
&gt; <br>
&gt; </div>
</span></font></div>
</body>
</html>

--_000_VI1PR05MB4430F1A749CB6AE4C3C1AC0B890D9VI1PR05MB4430eurp_--


From xen-users-bounces@lists.xenproject.org Mon Jun 21 17:20:39 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Jun 2021 17:20:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.145642.267833 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lvNaI-0003wU-KV; Mon, 21 Jun 2021 17:19:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 145642.267833; Mon, 21 Jun 2021 17:19:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lvNaI-0003wM-Gy; Mon, 21 Jun 2021 17:19:42 +0000
Received: by outflank-mailman (input) for mailman id 145642;
 Mon, 21 Jun 2021 17:19:41 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qxyp=LP=xilinx.com=stefanos@srs-us1.protection.inumbo.net>)
 id 1lvNaG-0003wG-WA
 for xen-users@lists.xenproject.org; Mon, 21 Jun 2021 17:19:41 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com (unknown
 [40.107.94.71]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 58cc21d8-2784-4d9a-a03c-90000b62a39e;
 Mon, 21 Jun 2021 17:19:36 +0000 (UTC)
Received: from SN4PR0601CA0005.namprd06.prod.outlook.com
 (2603:10b6:803:2f::15) by DM6PR02MB6138.namprd02.prod.outlook.com
 (2603:10b6:5:1fd::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.21; Mon, 21 Jun
 2021 17:19:33 +0000
Received: from SN1NAM02FT0054.eop-nam02.prod.protection.outlook.com
 (2603:10b6:803:2f:cafe::3f) by SN4PR0601CA0005.outlook.office365.com
 (2603:10b6:803:2f::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.19 via Frontend
 Transport; Mon, 21 Jun 2021 17:19:33 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by
 SN1NAM02FT0054.mail.protection.outlook.com (10.97.4.242) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.4242.16 via Frontend Transport; Mon, 21 Jun 2021 17:19:33 +0000
Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2176.2; Mon, 21 Jun 2021 10:19:32 -0700
Received: from smtp.xilinx.com (172.19.127.95) by
 xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id
 15.1.2176.2 via Frontend Transport; Mon, 21 Jun 2021 10:19:32 -0700
Received: from [10.23.121.28] (port=56605 helo=localhost)
 by smtp.xilinx.com with esmtp (Exim 4.90)
 (envelope-from <stefano.stabellini@xilinx.com>)
 id 1lvNa8-0007s9-7M; Mon, 21 Jun 2021 10:19:32 -0700
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 58cc21d8-2784-4d9a-a03c-90000b62a39e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=C4aCm16wlyXfXvAa198i2NbH8WgqMHBy+uunqr/abzk2gEVj9vUyek1Fm6Yb6rVR+uoS77s6J4DFNG2u8CHZ5u37dHeXnQK2IxIP2tYwbOoU30b0oV1xPT0VnL0NNSuIB7WyY/x3PojGnZk+Xjy2Dzr3y/r8CB/LHKSqu3XBPSnx35EWppBRO8wzrf2x3M/aMJmLbfo9bHrxV4e8UaUziD2HNyUy6XjTwakVFCp/gWgNm3Y4R1bT5XsZtn+0CP+DRvYFR82td02VRFHuqLzObTeNYr63L40ibB9YCnSmfH6v24VcbsalyoPZ8aRUXK3ues02MvJ0YOlk9Da5VybJqQ==
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-SenderADCheck;
 bh=SphoMi1J51jdT9K/koeOFh/KUbF54cdhMKdVp5GGBoA=;
 b=HvCZOYw3FAzp7qGiMYaSWur8k1yetJGaRlrteGoscHsapcSy42OKzGcvAXoAGC0Hb16jQberdQ7bu5jFGEQe417VC5qk680lElLbo2A6Uc5yNrJPTAVU3vP2lAk2gBgC3xSYJyfBMe1tbcgyV6If6Vy8CtIDS0ok8QiZAlAwxEGOjL4MDoe8mm26E1SVkxUqLo8col+vWMstdPvqKHSi6o7xbXPsNajV/b4K1eMvIbHwJp1gh479yWfls84qI55x8IerPm8fB4CK155gAE4RIIzl0N7eHwKOkfOf31vtbh+ybSwNr0f+MVx9GbqsMy24WjxjkyajVR1jb19dQmXvhg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 149.199.62.198) smtp.rcpttodomain=evoleotech.com smtp.mailfrom=xilinx.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SphoMi1J51jdT9K/koeOFh/KUbF54cdhMKdVp5GGBoA=;
 b=G0g4N1LGTEJB3xzpDEs/w5fvLDjSbGOwwIaql8uR0A9ugJkqnB6wCckqgFXVNHzYOx+FqF7+Ze1REqWsFO+uNh4y+H1pD90HXEW1kzajdSMDVvZmCOFIt7AmhLEOaBRPK+x/TXlnNk0IEC9RE/AujPTHx/zCveEHjJc+z6JDaKw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198)
 smtp.mailfrom=xilinx.com; evoleotech.com; dkim=none (message not signed)
 header.d=none;evoleotech.com; dmarc=pass action=none header.from=xilinx.com;
Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates
 149.199.62.198 as permitted sender) receiver=protection.outlook.com;
 client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com;
Date: Mon, 21 Jun 2021 10:19:31 -0700
From: Stefano Stabellini <stefano.stabellini@xilinx.com>
X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s
To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
CC: Stefano Stabellini <stefano.stabellini@xilinx.com>,
	"xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>,
	"JOVITAC@xilinx.com" <JOVITAC@xilinx.com>, "fnuv@xilinx.com"
	<fnuv@xilinx.com>, "brian.woods@xilinx.com" <brian.woods@xilinx.com>
Subject: Re: Help: Information required for AXI DMA passthrough for PL masters
 in ZCU102 dev kit
In-Reply-To: <VI1PR05MB4430F1A749CB6AE4C3C1AC0B890D9@VI1PR05MB4430.eurprd05.prod.outlook.com>
Message-ID: <alpine.DEB.2.21.2106211019110.24906@sstabellini-ThinkPad-T480s>
References: <VI1PR05MB4430D5035127951DEC282E5189429@VI1PR05MB4430.eurprd05.prod.outlook.com> <VI1PR05MB44301C4198B1E9EF7FD8864A892C9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105181109020.14426@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430F091D37D614EFAD15C6E89239@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105271745210.7272@sstabellini-ThinkPad-T480s> <VI1PR05MB443063BF7A7C514C1C9C37C489229@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2105281140360.7272@sstabellini-ThinkPad-T480s>
 <VI1PR05MB4430B62D7D79E47B784FA34C893F9@VI1PR05MB4430.eurprd05.prod.outlook.com>,<BYAPR02MB4278EEDED8076A1F3E79B1B8A13E9@BYAPR02MB4278.namprd02.prod.outlook.com>,<VI1PR05MB44308D16502AA518E05B210C893E9@VI1PR05MB4430.eurprd05.prod.outlook.com>
 <VI1PR05MB44303184209DF3F6215FFF3E89309@VI1PR05MB4430.eurprd05.prod.outlook.com>,<alpine.DEB.2.21.2106151235180.24906@sstabellini-ThinkPad-T480s> <VI1PR05MB4430F1A749CB6AE4C3C1AC0B890D9@VI1PR05MB4430.eurprd05.prod.outlook.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="8323329-246563793-1624295964=:24906"
Content-ID: <alpine.DEB.2.21.2106211019250.24906@sstabellini-ThinkPad-T480s>
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 9e2364ba-1b11-46b6-d7a7-08d934d8bc96
X-MS-TrafficTypeDiagnostic: DM6PR02MB6138:
X-Microsoft-Antispam-PRVS:
	<DM6PR02MB61383CE8343FAF070151A77DA00A9@DM6PR02MB6138.namprd02.prod.outlook.com>
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-MS-Oob-TLC-OOBClassifiers: OLM:6790;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	dJD1lp9SZlyLc3//KpnKkCtFMMmi9w2Ht/tZTyV757n+MQHLLxiB3b3ROCKc9RMumGVFRWBHfzcGCyFhfYcL5q7r0zzsuRy3njAVfBl9GgQM5uYJDtWxw1vVszK7jpYU9f8u4ungt84VY7mAZy/uSasy0D5iI+XO4/0kG/zmrbs/9rtFoJmNXzMZ93QOy9VA5GbOxPmRX4ent2NKAYCfjBraK/+W23/4yMVqxw8QvVlmdO/k2JebOBxD6sVatLesqLTPbRpySkA9ck80jrGFu1NdipFSrPYRjRrfHw6DJekczskXJfHZ6nasPqqGFU0BEUe73wYW3PakwMloGJ89SrIwRnEfNIBMPucDpadkw+IfgZIq2IRJNEPzqrKyDHOJyphBDJxvyGPjsnq2A3eWRL/QEIqKCJI1WsgduEf0GVt4jbqU9O+G6WkKslirkYTUK3eJPW46wNrAbnRjyGzENtHBedzui08gpX3q1tJ2x6QBzV3E7QpTam1ZUCJy+aMlPMUVo02McG1n7R109uqv3JJvrZDGvAlJtaCLOJ/bQKGBQacUVC9A878b697luGwHyBPMWUOh64iivAaxlWmRqUHKd1Kmd7Ufdf9mwye5MfOfTtSwnh7HJQsEO9ytCSzVxlG3qGGC159+Yz4dFrqT6HsUq8wsZMqEZc+HRKC1/GhuQT36e00jxhvQ6bmDHyxu1waSmqU/FuwJOF+qkESCUe254ihnRgMxEkdtnbJE8Uf5kFRI+83cS9s6nGKcrgtNw6UTfSOHvG1SEvEQSXtEFYYdKJ2NhYsiXqkcr81G4d/2PPg7D6/zOoBHsSCnf+sWzhzdk3+fuSI8/tViMztbdQ==
X-Forefront-Antispam-Report:
	CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(7916004)(4636009)(39860400002)(396003)(376002)(136003)(346002)(46966006)(36840700001)(5660300002)(44832011)(9786002)(8676002)(426003)(316002)(9686003)(336012)(45080400002)(30864003)(82310400003)(36860700001)(8936002)(36906005)(47076005)(6916009)(2906002)(186003)(26005)(107886003)(53546011)(966005)(82740400003)(33964004)(7636003)(70206006)(83380400001)(54906003)(33716001)(70586007)(478600001)(4326008)(356005)(139555002);DIR:OUT;SFP:1101;
X-OriginatorOrg: xilinx.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2021 17:19:33.0418
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e2364ba-1b11-46b6-d7a7-08d934d8bc96
X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1NAM02FT0054.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB6138

--8323329-246563793-1624295964=:24906
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.21.2106211019251.24906@sstabellini-ThinkPad-T480s>

Excellent! Thanks for letting me know.


On Fri, 18 Jun 2021, Prem Harikrishnan wrote:
> Hi Stefano,
> 
> Thank you very much for your detailed reply.  I now have xen booting from qspi, i followed your instructions, the only additional thing i
> had to change is the boot script offset in petalinux u boot config. Thank you again for your support.
> 
> Best Regards,
> Prem 
> 
> ___________________________________________________________________________________________________________________________________________
> From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> Sent: Tuesday, June 15, 2021 22:17
> To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> Cc: Stefano Stabellini <stefanos@xilinx.com>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; JOVITAC@xilinx.com
> <JOVITAC@xilinx.com>; fnuv@xilinx.com <fnuv@xilinx.com>; brian.woods@xilinx.com <brian.woods@xilinx.com>
> Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> We don't have a recipe ready. It is not something we test. However I
> think it should be possible.
> 
> The first step would be try to generate a BOOT.BIN for QSPI booting and
> write it to QSPI. The goal is to get to the u-boot prompt, with
> everything booted from QSPI. Then the next step is to add Xen, Linux,
> the DTB and Linux ramdisk. (Of course if you are OK with loading Xen and
> the other binaries from somewhere else like the SD card then it is going
> to work as is.)
> 
> You should be able to write each binary to QSPI as separate partitions.
> 
> At that point, you are only missing a boot.scr that can load them and
> boot. ImageBuilder supports custom u-boot load commands by setting the
> LOAD_CMD variable. In this case you'd need to set LOAD_CMD to something
> like "sf read", but given that the other command arguments are not
> filenames, ImageBuilder won't be able to handle it anyway.
> 
> But you can take an ImageBuilder-generated boot.source, substitute the
> "tftpb" commands with the appropriate "sf read" commands and call
> mkimage to get a boot.scr.
> 
> Now you should be able to run boot.scr from the u-boot prompt and load
> everything from QSPI.
> 
> This is some relevant info:
> 
> https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842465/U-Boot+QSPI+Driver
> 
> 
> I know it is a bit complex but I think it should work OK.
> 
> 
> 
> On Tue, 15 Jun 2021, Prem Harikrishnan wrote:
> > Hi Stefano,
> >
> > Is it possible to boot XEN from QSPI? Is there an image builder script already available to generate boot.scr? Please let me know.
> > Thanks and Best Regards,
> > Prem
> >
> >__________________________________________________________________________________________________________________________________________
> _
> > From: Xen-users <xen-users-bounces@lists.xenproject.org> on behalf of Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > Sent: Tuesday, June 1, 2021 18:07
> > To: Mubin Usman Sayyed <MUBINUSM@xilinx.com>; Stefano Stabellini <stefanos@xilinx.com>
> > Cc: xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; Jovita Castelino <JOVITAC@xilinx.com>
> > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > Hi Stefano and Mubin,
> >
> > Thank you very much for helping me setup up FreeRTOS and baremetal guests, everything works as expected and I also get expected
> performance
> > in both baremetal and hypervisor guests. Thank you again for your prompt support during the past few weeks.
> >
> > Best Regrards,
> > Prem
> >
> >__________________________________________________________________________________________________________________________________________
> _
> > From: Mubin Usman Sayyed <MUBINUSM@xilinx.com>
> > Sent: Tuesday, June 1, 2021 05:38
> > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>; Stefano Stabellini <stefanos@xilinx.com>
> > Cc: xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; Jovita Castelino <JOVITAC@xilinx.com>
> > Subject: RE: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> >
> > In case of FreeRTOS,  you need to use APIs from FreeRTOS port for interrupt handling
> >  (https://github.com/Xilinx/embeddedsw/blob/master/ThirdParty/bsp/freertos10_xilinx/examples/freertos_intr_example.c#L192 and line 194).
> > Please make sure that you are taking care of that in DMA interrupt example .
> >
> >  
> >
> > Thanks,
> >
> > Mubin
> >
> >  
> >
> > From: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > Sent: Tuesday, June 1, 2021 2:48 AM
> > To: Stefano Stabellini <stefanos@xilinx.com>
> > Cc: xen-users@lists.xenproject.org; Jovita Castelino <JOVITAC@xilinx.com>; Mubin Usman Sayyed <MUBINUSM@xilinx.com>
> > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit
> >
> >  
> >
> >  
> >
> > Hi Stefano and Mubin,
> >
> > Thank you very much for your replies.
> >
> > @Stefano Stabellini Sorry to bother you again, and thank you for pointing this out, the TTC0 is by default enabled for FreeRTOS to
> generate
> > ticks, although this says only for R5 core, i would have never figured this out. As soon as I added the irqs and iomem and gave a xen
> > passthrough in the xen.dtsi as you have suggested, FreeRTOS guest started working for other peripherals except for my DMA (FreeRTOS guest
> > does not work with interrupt and DMA).
> >
> >  
> >
> > I can see my DMA is enabled because i have LEDs configured to blink for every interrupt I get from the PL. I don't see my interrupts
> being
> > processed, but when I destroy the guest, I get this output periodically when an interrupt occurs.
> >
> >  
> >
> > (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
> > (XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR1 0x00000e80, GFSYNR2 0x00000000
> >
> > (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
> > (XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR1 0x00000e80, GFSYNR2 0x00000000
> >
> > (XEN) smmu: /smmu@fd800000: Unexpected global fault, this could be serious
> > (XEN) smmu: /smmu@fd800000:     GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR1 0x00000e80, GFSYNR2 0x00000000
> >
> >  
> >
> > From section 3.6 of the wiki https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters
> >
> > Xen and PL Masters - Xilinx Wiki - Confluence
> >
> > 3.4 Stream IDs in the Device Tree. For Xen based systems the stream IDs of PL masters must be added to the Linux Dom0 device tree.
> > Automated device tree generation does not generate the stream IDs for the PL masters so that the user must add them into the device tree
> > manually.
> >
> > xilinx-wiki.atlassian.net
> >
> > The fault indicates an unidentified stream ID has been received by the SMMU as shown in the GFSR register. The GFSYNR1 register contains
> > the stream ID that was unidentified. A stream ID of 0xE80 was unidentified in the above fault.
> >
> >  
> >
> > But I think i have already added that in my smmu and iommu in xen.dtsi because my baremetal application works well as expected. I have
> > attached my xen.dtsi, system.dtsi, baremetal.cfg(working) and freertos.cfg(not working).
> >
> > What could I be missing here? Do I have to enable the ttc0 in the device tree?
> >
> > Also what does (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 99990 KHz mean when XEN boots up?
> >
> > Thanks, I look forward for your reply.
> >
> >  
> >
> > Best Regards,
> >
> > Prem
> >
> >  
> >
> >  
> >
> >
> >  ________________________________________________________________________________________________________________________________________
> >
> >
> > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > Sent: Friday, May 28, 2021 20:43
> > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>;
> JOVITAC@xilinx.com
> > <JOVITAC@xilinx.com>; MUBINUSM@xilinx.com <MUBINUSM@xilinx.com>
> > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit
> >
> >  
> >
> > From the gpa address, it looks like FreeRTOS is trying to access the TTC
> > timer? If you look at device tree, the corresponding node is
> > timer@ff110000.
> >
> > If FreeRTOS is configured to access the TTC timer, then you need to
> > assign it to it. Did you assign the TTC timer to the FreeRTOS domU by
> > any chance?
> >
> > You can do that by adding:
> >
> > irqs = [ 68, 69, 70 ]
> > iomem = [ "0xff110,1" ]
> >
> >
> > On Fri, 28 May 2021, Prem Harikrishnan wrote:
> > > Hi Stefano,
> > > Thanks for your reply. I am pretty sure I followed the steps you mentioned below to run the FreeRTOS hello world example. I already
> added
> > > printfs and i can see XEN cannot start the scheduler and i get the following out put on XEN.
> > >
> > > Parsing config from freertos.cfg (XEN) Dom2 colors: [ 8 ]
> > > (XEN) memory.c:255:d0v0 Could not allocate order=9 extent: id=2 memflags=0xc0 (0 of 64)
> > > (XEN) memory_map:add: dom2 gfn=ff010 mfn=ff010 nr=1 cache=0
> > > (XEN) sched_null.c:344: 1 <-- d2v0
> > > (XEN) traps.c:1973:d2v0 HSR=0x93820007 pc=0x00000040012b08 gva=0xff11000c gpa=0x000000ff11000c
> > >
> > >
> > > I also see that according to this article
> > > https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as-a-Xen-Virtual-Machine/ba-p/947030
> > > [52662iFAD1733707609204?v=v2]
> > > Partner: FreeRTOS as a Xen Virtual Machine - Community Forums
> > > Contributed by Jeff Kubascik, Embedded Systems Engineer at DornerWorks What is FreeRTOS? The FreeRTOS kernel is a market leading
> > real-time
> > > operating system for embedded systems. As embedded applications grow in complexity, there is a growing need for a lightweight kernel
> > > capable of task scheduling...
> > > forums.xilinx.com
> > > FreeRTOS does not run out of the box for XEN, although the article is 2 years old, I am not sure if there are any updates on this after
> > > that. Can you please confirm?
> > >
> > > Thanks and Best Regards,
> > > Prem
> > >
> >>_________________________________________________________________________________________________________________________________________
> _
> > _
> > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > Sent: Friday, May 28, 2021 02:51
> > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>;
> > JOVITAC@xilinx.com
> > > <JOVITAC@xilinx.com>; MUBINUSM@xilinx.com <MUBINUSM@xilinx.com>
> > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > > +Mubin
> > >
> > >
> > > Hi Prem,
> > >
> > > Did you make sure to build FreeRTOS as "hypervisor guest"? I think
> > > FreeRTOS is built to run at EL3 by default so if that is not changed
> > > there are errors when run on any hypervisor. It is possible to build
> > > FreeRTOS to run on Xen but it requires a couple of manual steps:
> > >
> > > - source settings64.sh from Vitis builds
> > > - xsct
> > > - set WORKSPACE .
> > > - setws -switch $WORKSPACE
> > > - app create -name freertos-hello-world -template {FreeRTOS Hello World} -proc psu_cortexa53_0 -hw {xsa path} -os freertos10_xilinx
> > > - bsp config stdin psu_uart_1
> > > - bsp config stdout psu_uart_1
> > > - bsp config hypervisor_guest true
> > > - Go to application source path and modify the linker script start address to 0x40000000,
> > > - app build -name freertos-hello-world
> > > - Run command to generate BIN file from executable "aarch64-linux-gnu-objcopy -O binary --gap-fill 0  <elf path> BOOT.BIN"
> > >
> > > The resulting BOOT.BIN can be started a Xen DomU guest. Mubin, CC'ed,
> > > might be able to provide additional info.
> > >
> > >
> > >
> > > On Thu, 27 May 2021, Prem Harikrishnan wrote:
> > > > Hi Stefano,
> > > > Sorry to bother you again.
> > > > I am currently trying to run my custom IP which sends periodic dma interrupts to the PS with cache coloring enabled. I have now
> > compiled
> > > my
> > > > guest running with FreeRTOS and it generates a trap.
> > > > Petalinux and VITIS IDE Version is 2020.2.
> > > >
> > > > Please find the log attached. After the trap occurs, for every interrupt XEN prints (XEN) smmu: /smmu@fd800000: Unhandled context
> > fault:
> > > > fsr=0x402, iova=0x41000000, fsynr=0x12, cb=1
> > > >
> > > > root@pilbara:/etc/xen# xl create -c apu_freertos.cfg Parsing config from apu_freertos.cfg
> > > > (XEN) Dom1 colors: [ 8 ]
> > > > (XEN) memory.c:255:d0v0 Could not allocate order=9 extent: id=1 memflags=0xc0 (0 of 64)
> > > > (XEN) memory_map:add: dom1 gfn=ff010 mfn=ff010 nr=1 cache=0
> > > > (XEN) memory_map:add: dom1 gfn=a0010 mfn=a0010 nr=1 cache=0
> > > > (XEN) smmu: /smmu@fd800000: d1: p2maddr 0x000000087f554000
> > > > (XEN) sched_null.c:344: 1 <-- d1v0
> > > > (XEN) traps.c:1973:d1v0 HSR=0x93820007 pc=0x00000040013188 gva=0xff11000c gpa=0x000000ff11000c
> > > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0x41000000, fsynr=0x12, cb=1
> > > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0x41000000, fsynr=0x12, cb=1
> > > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0x41000000, fsynr=0x12, cb=1
> > > > (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0x41000000, fsynr=0x12, cb=1
> > > >
> > > > The same application works as expected without FreeRTOS, i.e as a baremetal guest. I look forward for your comment on this.
> > > >
> > > > Although i see performance degradation, normally i can measure delta time for each interrupt configured to 1ms (without XEN), with
> XEN
> > > for
> > > > the same measurement shows 16 ms for each interval (but the performance is not a priority for now).
> > > > Thanks and Best Regards,
> > > > Prem
> > > >
> >>>________________________________________________________________________________________________________________________________________
> _
> > _
> > > _
> > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > Sent: Tuesday, May 18, 2021 20:09
> > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>;
> > > JOVITAC@xilinx.com
> > > > <JOVITAC@xilinx.com>
> > > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > > > Great to hear! Thank you for reporting back.
> > > >
> > > >
> > > > On Tue, 18 May 2021, Prem Harikrishnan wrote:
> > > > > Dear Stefano,
> > > > > Thank you very much for your guidance and support. I finally fixed the issue. I made an error in base memory address like you
> pointed
> > > > out.
> > > > > I actually modified the base address correctly to 0x40000000 but the default C code had an additional offset of 0x1100000 , and the
> > > DomU
> > > > > memory allocated was only 8MB. I either had to change the offset or allocate more memory to the DomU guest which i missed until you
> > > > pointed
> > > > > out. Additionally i had to set to AxPROT bits to 0x2 in Vivado and the SMID required is 0xE80.
> > > > >
> > > > > Thanks again i was able get my custom IP also working as an AXI master from PL.
> > > > >
> > > > > Best Regards,
> > > > > Prem
> > > > >
> >>>>_______________________________________________________________________________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > Sent: Tuesday, May 18, 2021 02:35
> > > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; Brian Woods <brian.woods@xilinx.com>; Julien Grall <julien@xen.org>;
> Stefano
> > > > > Stabellini <sstabellini@kernel.org>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; fnuv@xilinx.com
> > > <fnuv@xilinx.com>;
> > > > > edgari@xilinx.com <edgari@xilinx.com>; bwoods288@gmail.com <bwoods288@gmail.com>; Renato Costa Amorim
> <renato.amorim@evoleotech.com>;
> > > > > JOVITAC@xilinx.com <JOVITAC@xilinx.com>
> > > > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > > > > Your configuration looks correct as far as I can tell.
> > > > >
> > > > > You need dtdev because it triggers the SMMU configuration for your PL
> > > > > block. You don't need device_tree because your baremetal application is
> > > > > not going to read it, but it is not going to cause any issues either.
> > > > >
> > > > > When you say "the execution does not complete the loop at line 244", it
> > > > > means that you see the execution entering the loop and then never
> > > > > leaving? Like an infinite loop?
> > > > >
> > > > > If so, then I imagine the issue could be that the application is
> > > > > crashing when trying to access TxBufferPtr, which is pointing to
> > > > > TX_BUFFER_BASE, which is:
> > > > >
> > > > >
> > > > > #ifndef DDR_BASE_ADDR
> > > > > #warning CHECK FOR THE VALID DDR ADDRESS IN XPARAMETERS.H, \
> > > > >                  DEFAULT SET TO 0x01000000
> > > > > #define MEM_BASE_ADDR           0x01000000
> > > > > #else
> > > > > #define MEM_BASE_ADDR           (DDR_BASE_ADDR + 0x1000000)
> > > > > #endif
> > > > >
> > > > > #define TX_BUFFER_BASE          (MEM_BASE_ADDR + 0x00100000)
> > > > >
> > > > >
> > > > >
> > > > > Can you double check that TX_BUFFER_BASE is pointing to a correct
> > > > > address? Memory starts at 0x40000000 in a Xen DomU.
> > > > >
> > > > > Maybe MEM_BASE_ADDR/DDR_BASE_ADDR is not set correctly?
> > > > >
> > > > >
> > > > > On Mon, 17 May 2021, Prem Harikrishnan wrote:
> > > > > > Hi Stefano,
> > > > > > Thanks again for your reply and your suggestion.  I did try to replace the Xil_DCacheFlushRange with
> > Xil_DCacheInvalidateRange(works
> > > > only
> > > > > > in EL3), I added printfs to debug, i can see that the execution does not complete the loop at line 244
> > > > > > https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c  and
> > > > > > Xil_DCacheFlushRange is not reached. Please find attached my xen bootlog.txt.
> > > > > > I am still unable to find out why??
> > > > > >
> > > > > > Can you please atleast verify that my xen.dtsi, and pl.dtb is correct? and do i need dtdev and device_tree in my guest config
> file
> > > when
> > > > > it
> > > > > > is already added to xen.dtsi?
> > > > > >
> > > > > > Best Regards,
> > > > > > Prem
> > > > > >
> > > > > >
> >>>>>______________________________________________________________________________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > > Sent: Saturday, May 15, 2021 00:25
> > > > > > To: Prem Harikrishnan <prem.harikrishnan@evoleotech.com>
> > > > > > Cc: Stefano Stabellini <stefano.stabellini@xilinx.com>; Brian Woods <brian.woods@xilinx.com>; Julien Grall <julien@xen.org>;
> > Stefano
> > > > > > Stabellini <sstabellini@kernel.org>; xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; fnuv@xilinx.com
> > > > <fnuv@xilinx.com>;
> > > > > > edgari@xilinx.com <edgari@xilinx.com>; bwoods288@gmail.com <bwoods288@gmail.com>; Renato Costa Amorim
> > <renato.amorim@evoleotech.com>;
> > > > > > JOVITAC@xilinx.com <JOVITAC@xilinx.com>
> > > > > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > > > > > Hi Prem,
> > > > > >
> > > > > > Some older versions of Xil_DCacheFlushRange were implemented using
> > > > > > deprecated set/way instructions that are known to cause problems in
> > > > > > virtualized environments.
> > > > > >
> > > > > > More recent implementations use the "dc civac" intruction that shouldn't
> > > > > > have any issues.
> > > > > >
> > > > > > Can you double-check that you are calling the 64-bit version implemented
> > > > > > by CIVAC?
> > > > > >
> >>>>>https://github.com/Xilinx/embeddedsw/blob/875dcc7a4dca47ccb18eda0182f3577e598f8917/lib/bsp/standalone/src/arm/ARMv8/64bit/xil_cache.c#
> L
> > 4
> > > 1
> > > > 4
> > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > > > Hi Stefano, 
> > > > > > > Thanks for your reply. Yes the axidma application is a baremetal application from the xilinx vitis ide example. 
> > > > > > > Also yes, I have already run hello world as DomU guest, with UART1.
> > > > > > >
> > > > > > > I am using the simple mode using polling and not interrupts(they are disabled in the c code), which is Why I didn't include in
> > the
> > > > > guest
> > > > > > > config file. This works well when I compile it normally (as EL3). When compiled as hypervisor guest, the execution stops before
> > the
> > > > > > > function xil_dcacheflushrange(). Please find the c code attached
> > > > > > > in https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_example_simple_poll.c 
> > > > > > >
> > > > > > > I found the SATA example similar to my use case, also using DMA and SMMU. I just used it as a reference to create my pl.dtb to
> > pass
> > > > > > through
> > > > > > > in the guest config.(from pl.dtsi, which I manually created).
> > > > > > >
> > > > > > > Thanks and Best Regards,
> > > > > > > Prem
> > > > > > >
> > > > > > > Get Outlook for Android
> > > > > > >
> >>>>>>_____________________________________________________________________________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > _
> > > > > > > From: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > > > Sent: Friday 14 May 2021, 23:16
> > > > > > > To: Prem Harikrishnan
> > > > > > > Cc: Brian Woods; Stefano Stabellini; Julien Grall; Stefano Stabellini; xen-users@lists.xenproject.org; fnuv@xilinx.com;
> > > > > > edgari@xilinx.com;
> > > > > > > bwoods288@gmail.com; Renato Costa Amorim; JOVITAC@xilinx.com
> > > > > > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit
> > > > > > >
> > > > > > > I take that the guest kernel "/bin/xaxidma_example_simple_poll_1.bin" is
> > > > > > > a baremetal application? Can you run it successfully, just printing
> > > > > > > "hello world", if you only assign the UART and nothing else?
> > > > > > >
> > > > > > > I am asking just to verify that you can run the baremetal VM
> > > > > > > successfully, aside from the PL device assignment.
> > > > > > >
> > > > > > >
> > > > > > > In regards to the PL device assignment, I'll let Brian answer on the
> > > > > > > Vivado configuration and SMID calculation. But I noticed that you only
> > > > > > > assigned IRQ 54 to the DomU which is the one for UART1. You haven't
> > > > > > > assigned any IRQs for axi_dma_0. Looking at pl_from_petalinux.dtsi, it
> > > > > > > looks like there are two related IRQs: 121 and 122.
> > > > > > >
> > > > > > > Finally, why did you mention SATA passthrough in your reply? I don't
> > > > > > > follow: I cannot see any SATA controller assignment in your
> > > > > > > configuration.
> > > > > > >
> > > > > > >
> > > > > > > On Fri, 14 May 2021, Prem Harikrishnan wrote:
> > > > > > > > Dear Brian, Stefano and Julien,
> > > > > > > >
> > > > > > > > Thank you very much for your replies.
> > > > > > > > Hi Brian and Stefano, Can you please help me with the following questions?
> > > > > > > >
> > > > > > > > @Brian Woods Please find attached my vivado configuration, when i added my AXI DMA now running on simple polling
> > mode(previously
> > > i
> > > > > > tried
> > > > > > > it
> > > > > > > > with Scatter Gather mode), Run Automation automatically generated, 1 AXI Interconnect and 1 smart connect. Since there is
> only
> > 1
> > > > > master
> > > > > > > and
> > > > > > > > I use the S_AXI _HP0_FPD, I finally get a value of 0xE80 for the stream IDs.
> > > > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters According to this link section 6.5 I have
> > > > manually
> > > > > > tied
> > > > > > > > of AxPROT bits to value of 0x2 to create non secure transactions. Can you please confirm that my Vivado configuration is
> > correct?
> > > I
> > > > > can
> > > > > > > > update you soon with an ILA trace on Vivado.
> > > > > > > >
> > > > > > > > @Stefano Stabellini Please find attached my pl.dtsi generated from petalinux and system.dtsi also generated after manually
> > adding
> > > > > > > xen.dtsi.
> > > > > > > > https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/384663561/Building+Xen+Hypervisor+with+Petalinux+2020.1+and+2020.2
> Using
> > > this
> > > > > > SATA
> > > > > > > > passthrough, i made my own pl.dtsi for passthrough used in dma.cfg. I could really use your help to identify what is missing
> in
> > > my
> > > > > xen
> > > > > > > > configuration.
> > > > > > > >
> > > > > > > > Thanks and Best Regards,
> > > > > > > > Prem
> > > > > > > >
> >>>>>>>____________________________________________________________________________________________________________________________________
> _
> > _
> > > _
> > > > _
> > > > > _
> > > > > > _
> > > > > > > _
> > > > > > > > From: Brian Woods <brian.woods@xilinx.com>
> > > > > > > > Sent: Thursday, May 13, 2021 17:13
> > > > > > > > To: Stefano Stabellini <stefano.stabellini@xilinx.com>
> > > > > > > > Cc: Julien Grall <julien@xen.org>; Prem Harikrishnan <prem.harikrishnan@evoleotech.com>; Stefano Stabellini
> > > > <sstabellini@kernel.org>;
> > > > > > > > xen-users@lists.xenproject.org <xen-users@lists.xenproject.org>; brian.woods@xilinx.com <brian.woods@xilinx.com>;
> > fnuv@xilinx.com
> > > > > > > > <fnuv@xilinx.com>; edgari@xilinx.com <edgari@xilinx.com>; bwoods288@gmail.com <bwoods288@gmail.com>
> > > > > > > > Subject: Re: Help: Information required for AXI DMA passthrough for PL masters in ZCU102 dev kit  
> > > > > > > > Prem,
> > > > > > > >
> > > > > > > > Sorry for the late email, I've been under the weather and have been away
> > > > > > > > from my computer.  In the Zynq SOCs this is how the SMMU IDs in PL are
> > > > > > > > calculated:
> > > > > > > >
> > > > > > > > 14-10: TBU bits
> > > > > > > > 9-6: Master ID bits
> > > > > > > > 5-0: AXI ID bits
> > > > > > > >
> > > > > > > > https://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultrascale-trm.pdf
> > > > > > > > To look up the TBU value, see UG1085 and look for the "System Masters"
> > > > > > > > table which is table 16-4 on page 409.
> > > > > > > >
> > > > > > > > For the master ID, see UG1085 and look for the "Master IDs List" table
> > > > > > > > which is table 16-13 on page 429.
> > > > > > > >
> > > > > > > > The AXI ID bits is a bit trickery since it's going to be out in PL.
> > > > > > > > See: https://www.xilinx.com/support/answers/69447.html
> > > > > > > > With SmartConnect all the AXI IDs are 0, they aren't passed on.  There
> > > > > > > > are work arounds.  Here's a couple of examples (with example numbers):
> > > > > > > >
> > > > > > > > AXI master -> PS slave port 0
> > > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001
> > > > > > > >
> > > > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000
> > > > > > > >
> > > > > > > > AXI master -> SmartConnect -> PS slave port 0
> > > > > > > >                            -> PS slave port 1
> > > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000
> > > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000
> > > > > > > >
> > > > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)
> > > > > > > >
> > > > > > > > Two AXI masters -> SmartConnect -> PS slave port 0
> > > > > > > >                                 -> PS slave port 1
> > > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000000 (both share)
> > > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000000 (both share)
> > > > > > > >
> > > > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS slave port 0
> > > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)
> > > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)
> > > > > > > >
> > > > > > > > Two AXI masters -> sideband -> SmartConnect -> sideband -> PS slave port 0
> > > > > > > >                                                         -> PS slave port 1
> > > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000001 (master #1)
> > > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000001 (master #1)
> > > > > > > >         TBU bits: 00001, Master ID bits: 0000, AXI ID bits: 0000002 (master #2)
> > > > > > > >         TBU bits: 00001, Master ID bits: 0001, AXI ID bits: 0000002 (master #2)
> > > > > > > >
> > > > > > > > The "sideband -> SmartConenct -> sideband" can also be functionally
> > > > > > > > replaced with "AXI Interconnect" to my knowledge.  So the AXI ID bits are
> > > > > > > > fairly simple but with some caveats.
> > > > > > > >
> > > > > > > > You can also read in the SMMU faults from Xen and use:
> > > > > > > > https://static.docs.arm.com/ihi0062/dc/IHI0062D_c_system_mmu_architecture_specification.pdf
> > > > > > > > to decode them. That should tell you the SMMU IDs as well.
> > > > > > > >
> > > > > > > > Let me know if this isn't clear or you have any other questions.
> > > > > > > >
> > > > > > > > Brian
> > > > > > > >
> > > > > > > > On Mon, May 10, 2021 at 06:49:07PM -0700, Stefano Stabellini wrote:
> > > > > > > > > On Mon, 10 May 2021, Julien Grall wrote:
> > > > > > > > > > On 26/04/2021 15:41, Prem Harikrishnan wrote:
> > > > > > > > > > > Hello everyone,
> > > > > > > > > >
> > > > > > > > > > Hi Prem,
> > > > > > > > > >
> > > > > > > > > > > I am using the latest version of the xilinx mpsoc zcu102 development board
> > > > > > > > > > > and i am trying to create a barematal application that uses the AXI DMA on
> > > > > > > > > > > the programmable logic, using the scatter gather example from the xilinx
> > > > > > > > > > > repository. This works perfectly well for the baremetal application. The
> > > > > > > > > > > diagram below represents the information flow. The AXI DMA and the AXI data
> > > > > > > > > > > FIFO are in the Programable logic (FPGA). This AXI DMA is out of the box IP
> > > > > > > > > > > from Vivado and uses a single channel (Does not use AxUSER) which means the
> > > > > > > > > > > AXI ID cannot manually be set.
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Now i want to make this as a baremetal hypervisor guest, in future this will
> > > > > > > > > > > be replaced by a custom IP with cache colouring enabled. I want to pass
> > > > > > > > > > > through the AXI DMA in the PL. (Not to be used by Dom0)
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > I followed this tutorial Baremetal + DomU
> > > > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842536/XEN+EL1+Baremetal+DomU>
> > > > > > > > > > > guest changed the base address to 0x4000000,(1GB allocated to Dom-0) to
> > > > > > > > > > > create my EL1 binary. I used Petalinux 2020.2 to generate my linux, xen
> > > > > > > > > > > image and use tftp to boot.
> > > > > > > > > > >
> > > > > > > > > > >  From what i understand from the xilinx tutorials Xen+and+PL+Masters
> > > > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842066/Xen+and+PL+Masters>
> > > > > > > > > > > section 3 and MPSOC SMMU
> > > > > > > > > > > <https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841981/Zynq+UltraScale+MPSOC+SMMU>
> > > > > > > > > > > section 4, stream ids are required by the SMMU to get the correct address
> > > > > > > > > > > translation.
> > > > > > > > > > >
> > > > > > > > > > > I am still unable to figure out how to get the iommu property for my AXI DMA
> > > > > > > > > > > and how to set the dtdev config for my hypervisor guest.
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > I can also see some new updates with the XEN 2020.1 and 2020.2 releases
> > > > > > > > > > > which i can be useful to my application
> > > > > > > > > > >
> > > > > > > > > > >   *   1:1 memory mappings for Xen virtual machines, enabling device
> > > > > > > > > > >     assignments without SMMU
> > > > > > > > > > >   *
> > > > > > > > > > >       Static assignment of PL blocks, including bus-mastering blocks, to
> > > > > > > > > > >     Xen virtual machines
> > > > > > > > > > >   *   Support for PL Device Passthrough to DomU in Xen
> > > > > > > > > >
> > > > > > > > > > You are usiong a version of Xen that has been customised by Xilinx. So I would
> > > > > > > > > > recommend to contact them directly.
> > > > > > > > > >
> > > > > > > > > > I have CCed Stefano who might be able to help you.
> > > > > > > > >
> > > > > > > > > Hi Julien,
> > > > > > > > >
> > > > > > > > > Many thanks for CC'ing me, I missed the email.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Hi Prem,
> > > > > > > > >
> > > > > > > > > Let me CC a few people that might be able to help.
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
> >
> 
> 
--8323329-246563793-1624295964=:24906--


From xen-users-bounces@lists.xenproject.org Thu Jun 24 08:10:18 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Jun 2021 08:10:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.146472.269507 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwKQZ-0008AI-Rx; Thu, 24 Jun 2021 08:09:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 146472.269507; Thu, 24 Jun 2021 08:09:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwKQZ-0008AA-Nj; Thu, 24 Jun 2021 08:09:35 +0000
Received: by outflank-mailman (input) for mailman id 146472;
 Thu, 24 Jun 2021 08:09:34 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nTpM=LS=protonmail.ch=mabi@srs-us1.protection.inumbo.net>)
 id 1lwKQY-0008A4-BZ
 for xen-users@lists.xenproject.org; Thu, 24 Jun 2021 08:09:34 +0000
Received: from mail-40138.protonmail.ch (unknown [185.70.40.138])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 8319bf1c-5941-4e0d-8e47-ba11209e26d3;
 Thu, 24 Jun 2021 08:09:31 +0000 (UTC)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 8319bf1c-5941-4e0d-8e47-ba11209e26d3
Date: Thu, 24 Jun 2021 08:09:18 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.ch;
	s=protonmail; t=1624522169;
	bh=iaoqOSkNZgcfzrw/M2PcT2Cgk4gyD3QIqrXvIZxb7ao=;
	h=Date:To:From:Reply-To:Subject:From;
	b=O+gGCPj2vxHrUSxtOkeKqcOIWjAWHKTcQBB95Qw2ZKJ5iEbxpUYKre5RYSktH03Wo
	 +NL0dPASQdcAZFsSMn3bYWpp9j4XFVuSVCEnTZL8DxQUSuishwVRb/IdwsPkGg9TB/
	 zaagEGXQN7IVTokpumqIvnpVMQXEar1Nfx79/izo=
To: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>
From: mabi <mabi@protonmail.ch>
Reply-To: mabi <mabi@protonmail.ch>
Subject: Two redundant Xen servers with one SAN
Message-ID: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no
	autolearn=disabled version=3.4.4
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on
	mailout.protonmail.ch

Hello,

Is it possible with Xen on Debian 10 to have two Xen servers both directly =
attached in a redundant way through HBA interfaces to a single SAN?

The goal here would be to achieve higher availability of the Vms in case on=
e Xen server is down for maintenance or because it is defective. This would=
 mean that the the virtual machines can continue to run on the second avail=
able Xen server. The SAN would be used to store the virtual machines images=
 directly via LVM I guess.

I did not find any Xen documentation or third-party howtos in order to do t=
hat. Does anyone have any pointers to some documentation or hints? or maybe=
 this is simply not possible?

Best regards,
Mabi









From xen-users-bounces@lists.xenproject.org Thu Jun 24 09:37:25 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Jun 2021 09:37:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.146549.269641 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwLml-00061k-9i; Thu, 24 Jun 2021 09:36:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 146549.269641; Thu, 24 Jun 2021 09:36:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwLml-00061c-6b; Thu, 24 Jun 2021 09:36:35 +0000
Received: by outflank-mailman (input) for mailman id 146549;
 Thu, 24 Jun 2021 09:36:34 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/0fc=LS=tiscali.it=g.d.monnezza@srs-us1.protection.inumbo.net>)
 id 1lwLmj-00061V-MO
 for xen-users@lists.xenproject.org; Thu, 24 Jun 2021 09:36:34 +0000
Received: from smtp.tiscali.it (unknown [213.205.33.215])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 093c4801-e535-4a30-a33c-37a4b472a6f4;
 Thu, 24 Jun 2021 09:36:31 +0000 (UTC)
Received: from [192.168.200.10] ([91.254.8.183])
 by santino.mail.tiscali.it with 
 id LxcU2500U3wwlYB01xcU87; Thu, 24 Jun 2021 09:36:29 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 093c4801-e535-4a30-a33c-37a4b472a6f4
X-Spam-Final-Verdict: clean
X-Spam-State: 0
X-Spam-Score: 0
X-Spam-Verdict: clean
x-auth-user: g.d.monnezza@tiscali.it
Subject: Re: Two redundant Xen servers with one SAN
To: xen-users@lists.xenproject.org
References: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch>
From: GD <g.d.monnezza@tiscali.it>
Message-ID: <dc703273-fcc7-f146-3d21-4984e602302a@tiscali.it>
Date: Thu, 24 Jun 2021 11:36:27 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.4.1
MIME-Version: 1.0
In-Reply-To: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch>
Content-Type: multipart/alternative;
 boundary="------------5DB38B21C6E49C84F8E4CB09"
Content-Language: en-US
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tiscali.it; s=smtp;
	t=1624527389; bh=CHwilkwZ2w5dWo81WKZUgP2FI08VeOq0TFY65R6ySAg=;
	h=Subject:To:References:From:Date:In-Reply-To;
	b=OZheSZO8JTwK0cTLDd7tGHi33P4SjunlF3XUhtig/VnPMu7YqgqxFs6H8rPKvBDJz
	 I51m2+BrNKbZnjMelHZdDAlM3GAyW7r5db29eVhxJfEM6OkrYE7xr7CyBIBmnEfoiy
	 ux0+HRNFcKDxGunMZksWXiCfuFRDKlHW3TrBwvYI=

This is a multi-part message in MIME format.
--------------5DB38B21C6E49C84F8E4CB09
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi.
In my opinion the goal you wish to achive is not reachable.
Two identical VM on two different VM can't symultaneously run if the 
root filesystem is shared.

The only way I can imagine is to have pseudo-HA, having a shared root 
filesystem for the two xen host, but only one running the the VM.
When the running xen host goes down, you can (manually or via heartbeat 
script) start the VM(s) on the second xen host.
Of course, the VM will have a boot-up time and probably a filesystem 
recovery.

If you wish to have a full-HA solution, you have to setup two 
simultaneously running VMs each with its own root filesystem (and 
services configuration) on the two xen hosts, a shared data filesystem 
and an external load balancing service (HAproxy or NGINX rev proxy) in 
failover mode.

Hope it helps
g

On 24/06/21 10:09, mabi wrote:
> Hello,
>
> Is it possible with Xen on Debian 10 to have two Xen servers both directly attached in a redundant way through HBA interfaces to a single SAN?
>
> The goal here would be to achieve higher availability of the Vms in case one Xen server is down for maintenance or because it is defective. This would mean that the the virtual machines can continue to run on the second available Xen server. The SAN would be used to store the virtual machines images directly via LVM I guess.
>
> I did not find any Xen documentation or third-party howtos in order to do that. Does anyone have any pointers to some documentation or hints? or maybe this is simply not possible?
>
> Best regards,
> Mabi
>
>
>
>
>
>
>
>


--------------5DB38B21C6E49C84F8E4CB09
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="-1">Hi.<br>
      In my opinion the goal you wish to achive is not reachable.<br>
      Two identical VM on two different VM can't symultaneously run if
      the root filesystem is shared.<br>
      <br>
      The only way I can imagine is to have pseudo-HA, having a shared
      root filesystem for the two xen host, but only one running the the
      VM.<br>
      When the running xen host goes down, you can (manually or via
      heartbeat script) start the VM(s) on the second xen host.<br>
      Of course, the VM will have a boot-up time and probably a
      filesystem recovery.<br>
      <br>
      If you wish to have a full-HA solution, you have to setup two
      simultaneously running VMs each with its own root filesystem </font><font
      size="-1"><font size="-1"> (and services configuration) </font>on
      the two xen hosts, a shared data filesystem and an external load
      balancing service (HAproxy or NGINX rev proxy) in failover mode.<br>
      <br>
      Hope it helps<br>
      g<br>
    </font><br>
    <div class="moz-cite-prefix">On 24/06/21 10:09, mabi wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch">
      <pre class="moz-quote-pre" wrap="">Hello,

Is it possible with Xen on Debian 10 to have two Xen servers both directly attached in a redundant way through HBA interfaces to a single SAN?

The goal here would be to achieve higher availability of the Vms in case one Xen server is down for maintenance or because it is defective. This would mean that the the virtual machines can continue to run on the second available Xen server. The SAN would be used to store the virtual machines images directly via LVM I guess.

I did not find any Xen documentation or third-party howtos in order to do that. Does anyone have any pointers to some documentation or hints? or maybe this is simply not possible?

Best regards,
Mabi








</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------5DB38B21C6E49C84F8E4CB09--


From xen-users-bounces@lists.xenproject.org Thu Jun 24 10:28:58 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Jun 2021 10:28:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.146612.269836 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwMav-00062V-RJ; Thu, 24 Jun 2021 10:28:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 146612.269836; Thu, 24 Jun 2021 10:28:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwMav-00062N-O7; Thu, 24 Jun 2021 10:28:25 +0000
Received: by outflank-mailman (input) for mailman id 146612;
 Thu, 24 Jun 2021 10:28:24 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eu4e=LS=gmail.com=florian.heigl@srs-us1.protection.inumbo.net>)
 id 1lwMau-000628-OC
 for xen-users@lists.xenproject.org; Thu, 24 Jun 2021 10:28:24 +0000
Received: from mail-wr1-x42f.google.com (unknown [2a00:1450:4864:20::42f])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id da1fbf8a-e351-4a31-b5c2-3b44c21c9806;
 Thu, 24 Jun 2021 10:28:23 +0000 (UTC)
Received: by mail-wr1-x42f.google.com with SMTP id b3so6049439wrm.6
 for <xen-users@lists.xenproject.org>; Thu, 24 Jun 2021 03:28:23 -0700 (PDT)
Received: from smtpclient.apple (ppp-93-104-190-119.dynamic.mnet-online.de.
 [93.104.190.119])
 by smtp.gmail.com with ESMTPSA id n13sm2589200wms.37.2021.06.24.03.28.22
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 24 Jun 2021 03:28:22 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: da1fbf8a-e351-4a31-b5c2-3b44c21c9806
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:subject:from:in-reply-to:date:cc
         :content-transfer-encoding:message-id:references:to;
        bh=dLwe8wFD1sImHxOdYVhoKDiFzblzWaBL2zrGzhUVjOM=;
        b=dJ2iWMen66o2MXRS6NM+1vGE81j+GOrkCi5n/Em91Sl2ber6vyobYn7kvCp7bzA1JB
         JPfblD86l0A7w0b6yrIvUoVd4ZAKQA5iKQOVPOwlPo8HxiSLgtxm6FjMxFXLXfRFOjur
         t62kgs32JPno2REb1xPtRlPB6K2FYZgSAeuUxjNiSkp43zrBpvhDTEn8N2yW6p/3D0Go
         JoXtClLuJYjbw8JquygPCMRbww51n9Hi1ltrExn6RSRac+T+aIh0GDbOd9OMsXgdGAj3
         e2E2FoKWENh+uJC4uDP4IU9qVsYUpYZPJi7Iff6BDx5JefkMVGewQMn3/hhwHHd5nX9g
         FAJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc
         :content-transfer-encoding:message-id:references:to;
        bh=dLwe8wFD1sImHxOdYVhoKDiFzblzWaBL2zrGzhUVjOM=;
        b=Vg5O2quWQPwjtO3fJ08CdwXdfHNq5nR+6QyBG1s0lgvQxxE7q2tKZfRirtwmYDPCw4
         U0/FDjuudTUXyx+65c7nLBbJX1oR+BqOvCwTNVUhX/LeNfYU1r5OYeItGOOBMlzupR01
         iYYuLyjFC7g2uE9WkzerVrYzpkyXjAZknLUSViYmlLpITnu+2m2zdkhVbaJPSXvbrjoI
         gGbrznl97HBaYf/U4HVONAR7ob8X1Mw2F+D8T3n8dLicP5jcnxYpmSmPO8RI7qETD3gR
         FRUW3S1/Rm71ewd2EDJxxNCwD/mp8DS6AhiU14wt16Zo+guNlXQPMZWhc7n5pu03BvOH
         y5QA==
X-Gm-Message-State: AOAM533TbyzRqm/nr7dvLM8aXowuEcgU/G9/iQOb8FVsPux8eyNYVIDL
	6Q+2ChJSLb9vrXwwuVy/sXY=
X-Google-Smtp-Source: ABdhPJxPX9/zpE9WG3ARmHOYDjoglx1kiHHlZYgHoEO4AF4wvpFN7gfXAdmHDoA3t9qIa3VEiYUNBA==
X-Received: by 2002:adf:c3d4:: with SMTP id d20mr3593026wrg.183.1624530503026;
        Thu, 24 Jun 2021 03:28:23 -0700 (PDT)
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.22\))
Subject: Re: Two redundant Xen servers with one SAN
From: Florian Heigl <florian.heigl@gmail.com>
In-Reply-To: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch>
Date: Thu, 24 Jun 2021 12:28:21 +0200
Cc: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <8AE60F63-3886-4247-BA9C-D83DD6555481@gmail.com>
References: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch>
To: mabi <mabi@protonmail.ch>
X-Mailer: Apple Mail (2.3654.100.0.2.22)

Hi,

you can look into solutions based on cLVM or OCFS2 + Corosync/Pacemaker.
Don't forget to set up multipathd so your system can handle the =
link/controller failovers.
This has been done, and also has been/is a commonplace solution. There =
is also lots of blog posts that you can dig up once you search the right =
way.
I would avoid running natively on SAN luns attached to VMs due the risk =
of "the cluster stack had an error / was misconfigured". If you'd =
failover manually that would be less of an issue. The clusters like =
Pacemaker can protect the VMs a bit using SCSI reservations.

There was also Remus for running 2 VMs in lockstep for HA, but that was =
expecting no shared storage and was never polished by anyone to be =
worthwhile for production use.

A fair warning: Most homegrown HA setups like they're done commonly in =
the ISP industry tend to blow up much more often than what a proper =
solution should be like.=20

It might be better to pick something pre-made for that purpose if you =
don't have the SAN/Cluster experience.
I.e. XenServer/XCP or Oracle VM3.

Good luck!

Florian


> Am 24.06.2021 um 10:09 schrieb mabi <mabi@protonmail.ch>:
>=20
> Hello,
>=20
> Is it possible with Xen on Debian 10 to have two Xen servers both =
directly attached in a redundant way through HBA interfaces to a single =
SAN?
>=20
> The goal here would be to achieve higher availability of the Vms in =
case one Xen server is down for maintenance or because it is defective. =
This would mean that the the virtual machines can continue to run on the =
second available Xen server. The SAN would be used to store the virtual =
machines images directly via LVM I guess.
>=20
> I did not find any Xen documentation or third-party howtos in order to =
do that. Does anyone have any pointers to some documentation or hints? =
or maybe this is simply not possible?
>=20
> Best regards,
> Mabi
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20



From xen-users-bounces@lists.xenproject.org Thu Jun 24 11:17:16 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Jun 2021 11:17:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.146710.270099 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwNLk-0001HJ-1k; Thu, 24 Jun 2021 11:16:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 146710.270099; Thu, 24 Jun 2021 11:16:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwNLj-0001HB-S8; Thu, 24 Jun 2021 11:16:47 +0000
Received: by outflank-mailman (input) for mailman id 146710;
 Thu, 24 Jun 2021 11:16:46 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nTpM=LS=protonmail.ch=mabi@srs-us1.protection.inumbo.net>)
 id 1lwNLi-0001H5-3e
 for xen-users@lists.xenproject.org; Thu, 24 Jun 2021 11:16:46 +0000
Received: from mail-4319.protonmail.ch (unknown [185.70.43.19])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 0e77aa94-a7ce-4baf-bfd3-3c9ef87fc61b;
 Thu, 24 Jun 2021 11:16:42 +0000 (UTC)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e77aa94-a7ce-4baf-bfd3-3c9ef87fc61b
Date: Thu, 24 Jun 2021 11:16:40 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.ch;
	s=protonmail; t=1624533401;
	bh=43NOeeA5826wblKl2SZT+eGjQ6mgIwd2gtDaSS9sohc=;
	h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From;
	b=JF+JNLdjUXCcyISilsbSmcsUxMka3CgAMnVo2S+46yWJnTWnC4jx7/tmqCv0vrTS7
	 Aa22HoifoX4OR4qPjtxvTMgTfjVPO0AhYtadHxCbK0Pievw/3IvjNOFZjph7iMiZz0
	 pPJVCCW3yRTtYGqJ6GPxQKMmZ4vyOILtywRK1pss=
To: Florian Heigl <florian.heigl@gmail.com>
From: mabi <mabi@protonmail.ch>
Cc: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>
Reply-To: mabi <mabi@protonmail.ch>
Subject: Re: Two redundant Xen servers with one SAN
Message-ID: <bvfE7rlAH2oAw0aajdo_x5cu-Q-TeZpeYCoTEWYxqBN1bEA9WpB0dgKJh624H_EAWjSkczzSDEHBZU6HAMxEbmkV6aKAwNZQHtamp-bp_dQ=@protonmail.ch>
In-Reply-To: <8AE60F63-3886-4247-BA9C-D83DD6555481@gmail.com>
References: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch> <8AE60F63-3886-4247-BA9C-D83DD6555481@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no
	autolearn=disabled version=3.4.4
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on
	mailout.protonmail.ch

Thanks Florian and GD for your answers.

I should have been more precise, I am looking into building a active/passiv=
e dual node Xen installation. I don't need active/active as I believe this =
is also more dangerous.

Also I was thinking that I would manually failover the VM whenever necessar=
y in order not to rely on additional external tools such as corosync/pacema=
ker and hence avoid more complexity.

So as you notice, at least for a start, I am trying to keep things as simpl=
e as possible. If I understand correctly that should be possible with Xen a=
nd all I need is multipathd and CLVM, is this correct?

Then regarding CLVM, I checked Debian buster but could not find any CLVM-re=
lated pacakges. Is maybe CLVM not available on Debian?

Regards,
Mabi

=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 Original Me=
ssage =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90

On Thursday, June 24th, 2021 at 12:28 PM, Florian Heigl <florian.heigl@gmai=
l.com> wrote:

> Hi,
>
> you can look into solutions based on cLVM or OCFS2 + Corosync/Pacemaker.
>
> Don't forget to set up multipathd so your system can handle the link/cont=
roller failovers.
>
> This has been done, and also has been/is a commonplace solution. There is=
 also lots of blog posts that you can dig up once you search the right way.
>
> I would avoid running natively on SAN luns attached to VMs due the risk o=
f "the cluster stack had an error / was misconfigured". If you'd failover m=
anually that would be less of an issue. The clusters like Pacemaker can pro=
tect the VMs a bit using SCSI reservations.
>
> There was also Remus for running 2 VMs in lockstep for HA, but that was e=
xpecting no shared storage and was never polished by anyone to be worthwhil=
e for production use.
>
> A fair warning: Most homegrown HA setups like they're done commonly in th=
e ISP industry tend to blow up much more often than what a proper solution =
should be like.
>
> It might be better to pick something pre-made for that purpose if you don=
't have the SAN/Cluster experience.
>
> I.e. XenServer/XCP or Oracle VM3.
>
> Good luck!
>
> Florian
>
> > Am 24.06.2021 um 10:09 schrieb mabi mabi@protonmail.ch:
> >
> > Hello,
> >
> > Is it possible with Xen on Debian 10 to have two Xen servers both direc=
tly attached in a redundant way through HBA interfaces to a single SAN?
> >
> > The goal here would be to achieve higher availability of the Vms in cas=
e one Xen server is down for maintenance or because it is defective. This w=
ould mean that the the virtual machines can continue to run on the second a=
vailable Xen server. The SAN would be used to store the virtual machines im=
ages directly via LVM I guess.
> >
> > I did not find any Xen documentation or third-party howtos in order to =
do that. Does anyone have any pointers to some documentation or hints? or m=
aybe this is simply not possible?
> >
> > Best regards,
> >
> > Mabi


From xen-users-bounces@lists.xenproject.org Thu Jun 24 11:45:20 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Jun 2021 11:45:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.146747.270172 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwNmt-0007NA-HW; Thu, 24 Jun 2021 11:44:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 146747.270172; Thu, 24 Jun 2021 11:44:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwNmt-0007N2-EG; Thu, 24 Jun 2021 11:44:51 +0000
Received: by outflank-mailman (input) for mailman id 146747;
 Thu, 24 Jun 2021 11:44:49 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eu4e=LS=gmail.com=florian.heigl@srs-us1.protection.inumbo.net>)
 id 1lwNmr-0007Mw-Iv
 for xen-users@lists.xenproject.org; Thu, 24 Jun 2021 11:44:49 +0000
Received: from mail-ed1-x52c.google.com (unknown [2a00:1450:4864:20::52c])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 81b629c2-0065-4c63-b32c-490a5512a224;
 Thu, 24 Jun 2021 11:44:48 +0000 (UTC)
Received: by mail-ed1-x52c.google.com with SMTP id df12so8096072edb.2
 for <xen-users@lists.xenproject.org>; Thu, 24 Jun 2021 04:44:48 -0700 (PDT)
Received: from smtpclient.apple (pd95c9906.dip0.t-ipconnect.de. [217.92.153.6])
 by smtp.gmail.com with ESMTPSA id jz12sm1060868ejc.94.2021.06.24.04.44.46
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 24 Jun 2021 04:44:47 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 81b629c2-0065-4c63-b32c-490a5512a224
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:subject:from:in-reply-to:date:cc
         :content-transfer-encoding:message-id:references:to;
        bh=ICdHQDlCzjhFBpd5OW5hza4rrRzj+FYsaEVzTbTZctU=;
        b=QZSRLw1EEIwINwRxpb8rbq8+5xNoZZX3GtTJ7BndH3L1TGhtZ2QvRDUH7nqH1jpt/3
         v+S156vssFar4+LjOWMU12jEfFIc7xVciT7eaL0RbbBCVwh2LqVypeHDIqSAz0aqqiZ/
         KwBgCWKnpkNEUCGStYGEMyKRg6AMS1JuNDONcKlwf43XJk1k5oqoIGJ9WJwXiRLqPCdj
         OFXCIP4igB8EhCBVpH91ie6W0BR/+8iPq+1Gz5m6ezWmlrbc3ZyeSUvOITBzb17eolQR
         1fszVn0yTnmbO+92AuJVNSvAPPbkqymnBZbvFkwbyHaEVIq2sR1ntvmJo73ifcynpL9Q
         tt4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc
         :content-transfer-encoding:message-id:references:to;
        bh=ICdHQDlCzjhFBpd5OW5hza4rrRzj+FYsaEVzTbTZctU=;
        b=kcBa5OqL3Hoyft14Cw44URyg1KuLpwNW0OXluB5rIpFvy+WnRltxk0FvplZFZU4CP4
         5vFXWk/8pHRjpGCrvvr/fUDv3FIJgtsftP0USAYZdjxuE3leTyiBOpuemrIqSTVMPUbo
         8SsXQpnUmpI82dK7FR38PEI7ixJItSe07qF6Bly1kY1A5piEl592YEOU8HvNqQPzV0Hw
         WGVAN50mjJc+rMZ4iPrMlrWFaoD+zK5Cm14Hd5aiQUh8ksEEWLf1vkNubdwSfAYW6scP
         unV2s7aPa8eUEvelhYA3JFV49s5UvnNC/jt/o6vBD6PHyvYJvrVfXjHcQdvxj7eWrpic
         ji2A==
X-Gm-Message-State: AOAM530Mbsa/SsIURj3WF+SkgAcehIkMBmnhME6FUf+/N1CljH6pxDKt
	jrbVrT6EkcnBRPV2XSiZn6k=
X-Google-Smtp-Source: ABdhPJy9efJorNGEdYePZdY81jtGFdSuprkFzWbZSyQoCEm6pfOMHCr7YkCVrt49lXsyDHx4J+Zw5Q==
X-Received: by 2002:a05:6402:26c7:: with SMTP id x7mr6411322edd.383.1624535087555;
        Thu, 24 Jun 2021 04:44:47 -0700 (PDT)
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.22\))
Subject: Re: Two redundant Xen servers with one SAN
From: Florian Heigl <florian.heigl@gmail.com>
In-Reply-To: <bvfE7rlAH2oAw0aajdo_x5cu-Q-TeZpeYCoTEWYxqBN1bEA9WpB0dgKJh624H_EAWjSkczzSDEHBZU6HAMxEbmkV6aKAwNZQHtamp-bp_dQ=@protonmail.ch>
Date: Thu, 24 Jun 2021 13:44:45 +0200
Cc: "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <468BBB18-E803-46DA-BFE5-1B75D7F26C30@gmail.com>
References: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch>
 <8AE60F63-3886-4247-BA9C-D83DD6555481@gmail.com>
 <bvfE7rlAH2oAw0aajdo_x5cu-Q-TeZpeYCoTEWYxqBN1bEA9WpB0dgKJh624H_EAWjSkczzSDEHBZU6HAMxEbmkV6aKAwNZQHtamp-bp_dQ=@protonmail.ch>
To: mabi <mabi@protonmail.ch>
X-Mailer: Apple Mail (2.3654.100.0.2.22)

Hi,

> Am 24.06.2021 um 13:16 schrieb mabi <mabi@protonmail.ch>:
>=20
> So as you notice, at least for a start, I am trying to keep things as =
simple as possible. If I understand correctly that should be possible =
with Xen and all I need is multipathd and CLVM, is this correct?

That sounds just fine.
You must not enable autostart of the VMs on either host, so i.e. keep =
the configs elsewhere than /etc/xen/auto (iirc).
You should put in some extra effort to keep the configs in sync, i have =
in the past used csync2 for that.

> Then regarding CLVM, I checked Debian buster but could not find any =
CLVM-related pacakges. Is maybe CLVM not available on Debian?

It might be an outdated solution, i searched quickly and found this:
"=46rom SUSE Linux Enterprise 15 onward, we use lvmlockd as the LVM2 =
cluster extension, rather than clvmd. Make sure the clvmd daemon is not =
running, ..."

Maybe you can find something in that direction.=


From xen-users-bounces@lists.xenproject.org Thu Jun 24 14:05:38 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Jun 2021 14:05:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.146787.270244 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwPyS-00062p-Jd; Thu, 24 Jun 2021 14:04:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 146787.270244; Thu, 24 Jun 2021 14:04:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwPyS-00062h-Fm; Thu, 24 Jun 2021 14:04:56 +0000
Received: by outflank-mailman (input) for mailman id 146787;
 Thu, 24 Jun 2021 14:04:54 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/0fc=LS=tiscali.it=g.d.monnezza@srs-us1.protection.inumbo.net>)
 id 1lwPyQ-00062P-Hn
 for xen-users@lists.xenproject.org; Thu, 24 Jun 2021 14:04:54 +0000
Received: from smtp.tiscali.it (unknown [213.205.33.216])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 466b9789-83fa-4f11-9eff-6b67fa223e37;
 Thu, 24 Jun 2021 14:04:52 +0000 (UTC)
Received: from [192.168.200.10] ([91.254.8.183])
 by michael.mail.tiscali.it with 
 id M24q2500U3wwlYB0124qZp; Thu, 24 Jun 2021 14:04:51 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 466b9789-83fa-4f11-9eff-6b67fa223e37
X-Spam-Final-Verdict: clean
X-Spam-State: 0
X-Spam-Score: 0
X-Spam-Verdict: clean
x-auth-user: g.d.monnezza@tiscali.it
Subject: Re: Two redundant Xen servers with one SAN
To: xen-users@lists.xenproject.org
References: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch>
 <8AE60F63-3886-4247-BA9C-D83DD6555481@gmail.com>
 <bvfE7rlAH2oAw0aajdo_x5cu-Q-TeZpeYCoTEWYxqBN1bEA9WpB0dgKJh624H_EAWjSkczzSDEHBZU6HAMxEbmkV6aKAwNZQHtamp-bp_dQ=@protonmail.ch>
From: GD <g.d.monnezza@tiscali.it>
Message-ID: <548faf9b-a95b-211a-7433-b26e3d7b3491@tiscali.it>
Date: Thu, 24 Jun 2021 16:04:49 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.4.1
MIME-Version: 1.0
In-Reply-To: <bvfE7rlAH2oAw0aajdo_x5cu-Q-TeZpeYCoTEWYxqBN1bEA9WpB0dgKJh624H_EAWjSkczzSDEHBZU6HAMxEbmkV6aKAwNZQHtamp-bp_dQ=@protonmail.ch>
Content-Type: multipart/alternative;
 boundary="------------CEB14FC9419D3ACFC4931EEF"
Content-Language: en-US
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tiscali.it; s=smtp;
	t=1624543491; bh=7DTCFv6yfE+7osbczEEVspvGWTHscwfrmOa3QqWTeFA=;
	h=Subject:To:References:From:Date:In-Reply-To;
	b=aQyileFQtA8T7UjQC3A+EpO8uxSD/RwcldoqeZ+VA93faOVmQRTChF7ll+KMXdHTf
	 14RyIThijqfCizVVvD3AQgq0Np/qyX9Dny1SjpCVRWefUruvntwAjSIQ165U4m300k
	 z/pFTa4bJPlLBwYBhV7VOuufd6ohSyXT2aaFKFIc=

This is a multi-part message in MIME format.
--------------CEB14FC9419D3ACFC4931EEF
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

"I should have been more precise, I am looking into building a 
active/passive dual node Xen installation "

In this case, you can configure a simple but robust architecture I'm 
already running:
Two Xen Server, storing VMs in LV built on top of DRBD. It's up to you 
if create a DRBD-LV pair for each VM (as I did in my setup) or a single 
DRBD-LVG
Both Xen host are running, but VMs are running on the host having the 
DRBD(s) active. Xen hosts shares VM conf files (and other stuffs as 
iptables forwarding rules) in a csync'd directory.
When the "active" Xen host dies, you can quickly boot up the VMs on the 
other Xen host after switching the DRBD volumes into "primary" mode.
If xen's VMs confs are the same, you'll end up with the same VMs with 
the same IPs (if in a LAN, they immediatly work, othewise you have to 
change the routing in previous-hop)

In this scenario, you can also think to go further (as i did) and run a 
"cross-configuration" with both Xen server running VMs on an active 
DRBD, but holding the passive DRBD of the other server. This way you can 
run half of the VMs on a server and the other half on the other server ;)

Side notes:
- On a 1Gb/s eth link it works for low global disk write rates. 10GB 
fiber/eth link is required for high disk write rates such as in storage 
servers.
- Be careful to disk write speed: I experienced dramatic slow down with 
Debian 10 when booted Xen kernel (comparison made against regular kernel 
boot)

Hope it helps
g

On 24/06/21 13:16, mabi wrote:
> Thanks Florian and GD for your answers.
>
> I should have been more precise, I am looking into building a active/passive dual node Xen installation. I don't need active/active as I believe this is also more dangerous.
>
> Also I was thinking that I would manually failover the VM whenever necessary in order not to rely on additional external tools such as corosync/pacemaker and hence avoid more complexity.
>
> So as you notice, at least for a start, I am trying to keep things as simple as possible. If I understand correctly that should be possible with Xen and all I need is multipathd and CLVM, is this correct?
>
> Then regarding CLVM, I checked Debian buster but could not find any CLVM-related pacakges. Is maybe CLVM not available on Debian?
>
> Regards,
> Mabi
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>
> On Thursday, June 24th, 2021 at 12:28 PM, Florian Heigl <florian.heigl@gmail.com> wrote:
>
>> Hi,
>>
>> you can look into solutions based on cLVM or OCFS2 + Corosync/Pacemaker.
>>
>> Don't forget to set up multipathd so your system can handle the link/controller failovers.
>>
>> This has been done, and also has been/is a commonplace solution. There is also lots of blog posts that you can dig up once you search the right way.
>>
>> I would avoid running natively on SAN luns attached to VMs due the risk of "the cluster stack had an error / was misconfigured". If you'd failover manually that would be less of an issue. The clusters like Pacemaker can protect the VMs a bit using SCSI reservations.
>>
>> There was also Remus for running 2 VMs in lockstep for HA, but that was expecting no shared storage and was never polished by anyone to be worthwhile for production use.
>>
>> A fair warning: Most homegrown HA setups like they're done commonly in the ISP industry tend to blow up much more often than what a proper solution should be like.
>>
>> It might be better to pick something pre-made for that purpose if you don't have the SAN/Cluster experience.
>>
>> I.e. XenServer/XCP or Oracle VM3.
>>
>> Good luck!
>>
>> Florian
>>
>>> Am 24.06.2021 um 10:09 schrieb mabi mabi@protonmail.ch:
>>>
>>> Hello,
>>>
>>> Is it possible with Xen on Debian 10 to have two Xen servers both directly attached in a redundant way through HBA interfaces to a single SAN?
>>>
>>> The goal here would be to achieve higher availability of the Vms in case one Xen server is down for maintenance or because it is defective. This would mean that the the virtual machines can continue to run on the second available Xen server. The SAN would be used to store the virtual machines images directly via LVM I guess.
>>>
>>> I did not find any Xen documentation or third-party howtos in order to do that. Does anyone have any pointers to some documentation or hints? or maybe this is simply not possible?
>>>
>>> Best regards,
>>>
>>> Mabi


--------------CEB14FC9419D3ACFC4931EEF
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="-1">"</font>I should have been more precise, I am
    looking into building a active/passive dual node Xen installation
    "<font size="-1"><br>
      <br>
      In this case, you can configure a simple but robust architecture
      I'm already running:<br>
      Two Xen Server, storing VMs in LV built on top of DRBD. It's up to
      you if create a DRBD-LV pair for each VM (as I did in my setup) or
      a single DRBD-LVG<br>
      Both Xen host are running, but VMs are running on the host having
      the DRBD(s) active. Xen hosts shares VM conf files (and other
      stuffs as iptables forwarding rules) in a csync'd directory.<br>
      When the "active" Xen host dies, you can quickly boot up the VMs
      on the other Xen host after switching the DRBD volumes into
      "primary" mode.<br>
      If xen's VMs confs are the same, you'll end up with the same VMs
      with the same IPs (if in a LAN, they immediatly work, othewise you
      have to change the routing in previous-hop)<br>
      <br>
      In this scenario, you can also think to go further (as i did) and
      run a "cross-configuration" with both Xen server running VMs on an
      active DRBD, but holding the passive DRBD of the other server.
      This way you can run half of the VMs on a server and the other
      half on the other server ;) <br>
      <br>
      Side notes:<br>
      - On a 1Gb/s eth link it works for low global disk write rates.
      10GB fiber/eth link is required for high disk write rates such as
      in storage servers.<br>
      - Be careful to disk write speed: I experienced dramatic slow down
      with Debian 10 when booted Xen kernel (comparison made against
      regular kernel boot)<br>
      <br>
      Hope it helps<br>
      g<br>
    </font> <br>
    <div class="moz-cite-prefix">On 24/06/21 13:16, mabi wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:bvfE7rlAH2oAw0aajdo_x5cu-Q-TeZpeYCoTEWYxqBN1bEA9WpB0dgKJh624H_EAWjSkczzSDEHBZU6HAMxEbmkV6aKAwNZQHtamp-bp_dQ=@protonmail.ch">
      <pre class="moz-quote-pre" wrap="">Thanks Florian and GD for your answers.

I should have been more precise, I am looking into building a active/passive dual node Xen installation. I don't need active/active as I believe this is also more dangerous.

Also I was thinking that I would manually failover the VM whenever necessary in order not to rely on additional external tools such as corosync/pacemaker and hence avoid more complexity.

So as you notice, at least for a start, I am trying to keep things as simple as possible. If I understand correctly that should be possible with Xen and all I need is multipathd and CLVM, is this correct?

Then regarding CLVM, I checked Debian buster but could not find any CLVM-related pacakges. Is maybe CLVM not available on Debian?

Regards,
Mabi

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Thursday, June 24th, 2021 at 12:28 PM, Florian Heigl <a class="moz-txt-link-rfc2396E" href="mailto:florian.heigl@gmail.com">&lt;florian.heigl@gmail.com&gt;</a> wrote:

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Hi,

you can look into solutions based on cLVM or OCFS2 + Corosync/Pacemaker.

Don't forget to set up multipathd so your system can handle the link/controller failovers.

This has been done, and also has been/is a commonplace solution. There is also lots of blog posts that you can dig up once you search the right way.

I would avoid running natively on SAN luns attached to VMs due the risk of "the cluster stack had an error / was misconfigured". If you'd failover manually that would be less of an issue. The clusters like Pacemaker can protect the VMs a bit using SCSI reservations.

There was also Remus for running 2 VMs in lockstep for HA, but that was expecting no shared storage and was never polished by anyone to be worthwhile for production use.

A fair warning: Most homegrown HA setups like they're done commonly in the ISP industry tend to blow up much more often than what a proper solution should be like.

It might be better to pick something pre-made for that purpose if you don't have the SAN/Cluster experience.

I.e. XenServer/XCP or Oracle VM3.

Good luck!

Florian

</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">Am 24.06.2021 um 10:09 schrieb mabi <a class="moz-txt-link-abbreviated" href="mailto:mabi@protonmail.ch">mabi@protonmail.ch</a>:

Hello,

Is it possible with Xen on Debian 10 to have two Xen servers both directly attached in a redundant way through HBA interfaces to a single SAN?

The goal here would be to achieve higher availability of the Vms in case one Xen server is down for maintenance or because it is defective. This would mean that the the virtual machines can continue to run on the second available Xen server. The SAN would be used to store the virtual machines images directly via LVM I guess.

I did not find any Xen documentation or third-party howtos in order to do that. Does anyone have any pointers to some documentation or hints? or maybe this is simply not possible?

Best regards,

Mabi
</pre>
        </blockquote>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------CEB14FC9419D3ACFC4931EEF--


From xen-users-bounces@lists.xenproject.org Thu Jun 24 14:12:48 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Jun 2021 14:12:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.146805.270272 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwQ5v-00004q-R9; Thu, 24 Jun 2021 14:12:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 146805.270272; Thu, 24 Jun 2021 14:12:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwQ5v-0008WP-Mu; Thu, 24 Jun 2021 14:12:39 +0000
Received: by outflank-mailman (input) for mailman id 146805;
 Thu, 24 Jun 2021 14:12:38 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/0fc=LS=tiscali.it=g.d.monnezza@srs-us1.protection.inumbo.net>)
 id 1lwQ5t-0008WJ-Uo
 for xen-users@lists.xenproject.org; Thu, 24 Jun 2021 14:12:37 +0000
Received: from smtp.tiscali.it (unknown [213.205.33.216])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 3183f088-71cf-4732-bd72-a737dddb51bf;
 Thu, 24 Jun 2021 14:12:35 +0000 (UTC)
Received: from [192.168.200.10] ([91.254.8.183])
 by michael.mail.tiscali.it with 
 id M2CZ2502N3wwlYB012CaJ6; Thu, 24 Jun 2021 14:12:34 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 3183f088-71cf-4732-bd72-a737dddb51bf
X-Spam-Final-Verdict: clean
X-Spam-State: 0
X-Spam-Score: 0
X-Spam-Verdict: clean
x-auth-user: g.d.monnezza@tiscali.it
Subject: Re: Two redundant Xen servers with one SAN
To: xen-users@lists.xenproject.org
References: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch>
 <8AE60F63-3886-4247-BA9C-D83DD6555481@gmail.com>
 <bvfE7rlAH2oAw0aajdo_x5cu-Q-TeZpeYCoTEWYxqBN1bEA9WpB0dgKJh624H_EAWjSkczzSDEHBZU6HAMxEbmkV6aKAwNZQHtamp-bp_dQ=@protonmail.ch>
 <548faf9b-a95b-211a-7433-b26e3d7b3491@tiscali.it>
From: GD <g.d.monnezza@tiscali.it>
Message-ID: <654f9c97-59f9-6455-a33a-c387ec1ab0b5@tiscali.it>
Date: Thu, 24 Jun 2021 16:12:33 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.4.1
MIME-Version: 1.0
In-Reply-To: <548faf9b-a95b-211a-7433-b26e3d7b3491@tiscali.it>
Content-Type: multipart/alternative;
 boundary="------------A8F7A2672F2D2B9458CB5876"
Content-Language: en-US
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tiscali.it; s=smtp;
	t=1624543954; bh=LQ350stB0B4erZ32jkhdowowsxjjXjM1BM9dO+VbAJ4=;
	h=Subject:To:References:From:Date:In-Reply-To;
	b=sDYWR1oCvVAfPSOtYuAjoeBt+1GOau5M3WDzwuPWnDafl65htiWduYQtkMdojBf1u
	 2NesNTwImfabbKcZqZTJCcUvWvYXUacQy/MaNO9+09lieZ9Ih6cOtR3Jq6qHbRGrlR
	 wJcI3vNwCo6EnnOOFnGujjJ0lcDgnBPBnlBKr1GI=

This is a multi-part message in MIME format.
--------------A8F7A2672F2D2B9458CB5876
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

P.S. for sync'd directory, I used "lsyncd", not csync.

On 24/06/21 16:04, GD wrote:
> "I should have been more precise, I am looking into building a 
> active/passive dual node Xen installation "
>
> In this case, you can configure a simple but robust architecture I'm 
> already running:
> Two Xen Server, storing VMs in LV built on top of DRBD. It's up to you 
> if create a DRBD-LV pair for each VM (as I did in my setup) or a 
> single DRBD-LVG
> Both Xen host are running, but VMs are running on the host having the 
> DRBD(s) active. Xen hosts shares VM conf files (and other stuffs as 
> iptables forwarding rules) in a csync'd directory.
> When the "active" Xen host dies, you can quickly boot up the VMs on 
> the other Xen host after switching the DRBD volumes into "primary" mode.
> If xen's VMs confs are the same, you'll end up with the same VMs with 
> the same IPs (if in a LAN, they immediatly work, othewise you have to 
> change the routing in previous-hop)
>
> In this scenario, you can also think to go further (as i did) and run 
> a "cross-configuration" with both Xen server running VMs on an active 
> DRBD, but holding the passive DRBD of the other server. This way you 
> can run half of the VMs on a server and the other half on the other 
> server ;)
>
> Side notes:
> - On a 1Gb/s eth link it works for low global disk write rates. 10GB 
> fiber/eth link is required for high disk write rates such as in 
> storage servers.
> - Be careful to disk write speed: I experienced dramatic slow down 
> with Debian 10 when booted Xen kernel (comparison made against regular 
> kernel boot)
>
> Hope it helps
> g
>
> On 24/06/21 13:16, mabi wrote:
>> Thanks Florian and GD for your answers.
>>
>> I should have been more precise, I am looking into building a active/passive dual node Xen installation. I don't need active/active as I believe this is also more dangerous.
>>
>> Also I was thinking that I would manually failover the VM whenever necessary in order not to rely on additional external tools such as corosync/pacemaker and hence avoid more complexity.
>>
>> So as you notice, at least for a start, I am trying to keep things as simple as possible. If I understand correctly that should be possible with Xen and all I need is multipathd and CLVM, is this correct?
>>
>> Then regarding CLVM, I checked Debian buster but could not find any CLVM-related pacakges. Is maybe CLVM not available on Debian?
>>
>> Regards,
>> Mabi
>>
>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>
>> On Thursday, June 24th, 2021 at 12:28 PM, Florian Heigl<florian.heigl@gmail.com>  wrote:
>>
>>> Hi,
>>>
>>> you can look into solutions based on cLVM or OCFS2 + Corosync/Pacemaker.
>>>
>>> Don't forget to set up multipathd so your system can handle the link/controller failovers.
>>>
>>> This has been done, and also has been/is a commonplace solution. There is also lots of blog posts that you can dig up once you search the right way.
>>>
>>> I would avoid running natively on SAN luns attached to VMs due the risk of "the cluster stack had an error / was misconfigured". If you'd failover manually that would be less of an issue. The clusters like Pacemaker can protect the VMs a bit using SCSI reservations.
>>>
>>> There was also Remus for running 2 VMs in lockstep for HA, but that was expecting no shared storage and was never polished by anyone to be worthwhile for production use.
>>>
>>> A fair warning: Most homegrown HA setups like they're done commonly in the ISP industry tend to blow up much more often than what a proper solution should be like.
>>>
>>> It might be better to pick something pre-made for that purpose if you don't have the SAN/Cluster experience.
>>>
>>> I.e. XenServer/XCP or Oracle VM3.
>>>
>>> Good luck!
>>>
>>> Florian
>>>
>>>> Am 24.06.2021 um 10:09 schrieb mabimabi@protonmail.ch:
>>>>
>>>> Hello,
>>>>
>>>> Is it possible with Xen on Debian 10 to have two Xen servers both directly attached in a redundant way through HBA interfaces to a single SAN?
>>>>
>>>> The goal here would be to achieve higher availability of the Vms in case one Xen server is down for maintenance or because it is defective. This would mean that the the virtual machines can continue to run on the second available Xen server. The SAN would be used to store the virtual machines images directly via LVM I guess.
>>>>
>>>> I did not find any Xen documentation or third-party howtos in order to do that. Does anyone have any pointers to some documentation or hints? or maybe this is simply not possible?
>>>>
>>>> Best regards,
>>>>
>>>> Mabi
>


--------------A8F7A2672F2D2B9458CB5876
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="-1">P.S. for sync'd directory, I used "lsyncd", not
      csync.</font><br>
    <br>
    <div class="moz-cite-prefix">On 24/06/21 16:04, GD wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:548faf9b-a95b-211a-7433-b26e3d7b3491@tiscali.it">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <font size="-1">"</font>I should have been more precise, I am
      looking into building a active/passive dual node Xen installation
      "<font size="-1"><br>
        <br>
        In this case, you can configure a simple but robust architecture
        I'm already running:<br>
        Two Xen Server, storing VMs in LV built on top of DRBD. It's up
        to you if create a DRBD-LV pair for each VM (as I did in my
        setup) or a single DRBD-LVG<br>
        Both Xen host are running, but VMs are running on the host
        having the DRBD(s) active. Xen hosts shares VM conf files (and
        other stuffs as iptables forwarding rules) in a csync'd
        directory.<br>
        When the "active" Xen host dies, you can quickly boot up the VMs
        on the other Xen host after switching the DRBD volumes into
        "primary" mode.<br>
        If xen's VMs confs are the same, you'll end up with the same VMs
        with the same IPs (if in a LAN, they immediatly work, othewise
        you have to change the routing in previous-hop)<br>
        <br>
        In this scenario, you can also think to go further (as i did)
        and run a "cross-configuration" with both Xen server running VMs
        on an active DRBD, but holding the passive DRBD of the other
        server. This way you can run half of the VMs on a server and the
        other half on the other server ;) <br>
        <br>
        Side notes:<br>
        - On a 1Gb/s eth link it works for low global disk write rates.
        10GB fiber/eth link is required for high disk write rates such
        as in storage servers.<br>
        - Be careful to disk write speed: I experienced dramatic slow
        down with Debian 10 when booted Xen kernel (comparison made
        against regular kernel boot)<br>
        <br>
        Hope it helps<br>
        g<br>
      </font> <br>
      <div class="moz-cite-prefix">On 24/06/21 13:16, mabi wrote:<br>
      </div>
      <blockquote type="cite"
cite="mid:bvfE7rlAH2oAw0aajdo_x5cu-Q-TeZpeYCoTEWYxqBN1bEA9WpB0dgKJh624H_EAWjSkczzSDEHBZU6HAMxEbmkV6aKAwNZQHtamp-bp_dQ=@protonmail.ch">
        <pre class="moz-quote-pre" wrap="">Thanks Florian and GD for your answers.

I should have been more precise, I am looking into building a active/passive dual node Xen installation. I don't need active/active as I believe this is also more dangerous.

Also I was thinking that I would manually failover the VM whenever necessary in order not to rely on additional external tools such as corosync/pacemaker and hence avoid more complexity.

So as you notice, at least for a start, I am trying to keep things as simple as possible. If I understand correctly that should be possible with Xen and all I need is multipathd and CLVM, is this correct?

Then regarding CLVM, I checked Debian buster but could not find any CLVM-related pacakges. Is maybe CLVM not available on Debian?

Regards,
Mabi

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Thursday, June 24th, 2021 at 12:28 PM, Florian Heigl <a class="moz-txt-link-rfc2396E" href="mailto:florian.heigl@gmail.com" moz-do-not-send="true">&lt;florian.heigl@gmail.com&gt;</a> wrote:

</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">Hi,

you can look into solutions based on cLVM or OCFS2 + Corosync/Pacemaker.

Don't forget to set up multipathd so your system can handle the link/controller failovers.

This has been done, and also has been/is a commonplace solution. There is also lots of blog posts that you can dig up once you search the right way.

I would avoid running natively on SAN luns attached to VMs due the risk of "the cluster stack had an error / was misconfigured". If you'd failover manually that would be less of an issue. The clusters like Pacemaker can protect the VMs a bit using SCSI reservations.

There was also Remus for running 2 VMs in lockstep for HA, but that was expecting no shared storage and was never polished by anyone to be worthwhile for production use.

A fair warning: Most homegrown HA setups like they're done commonly in the ISP industry tend to blow up much more often than what a proper solution should be like.

It might be better to pick something pre-made for that purpose if you don't have the SAN/Cluster experience.

I.e. XenServer/XCP or Oracle VM3.

Good luck!

Florian

</pre>
          <blockquote type="cite">
            <pre class="moz-quote-pre" wrap="">Am 24.06.2021 um 10:09 schrieb mabi <a class="moz-txt-link-abbreviated" href="mailto:mabi@protonmail.ch" moz-do-not-send="true">mabi@protonmail.ch</a>:

Hello,

Is it possible with Xen on Debian 10 to have two Xen servers both directly attached in a redundant way through HBA interfaces to a single SAN?

The goal here would be to achieve higher availability of the Vms in case one Xen server is down for maintenance or because it is defective. This would mean that the the virtual machines can continue to run on the second available Xen server. The SAN would be used to store the virtual machines images directly via LVM I guess.

I did not find any Xen documentation or third-party howtos in order to do that. Does anyone have any pointers to some documentation or hints? or maybe this is simply not possible?

Best regards,

Mabi
</pre>
          </blockquote>
        </blockquote>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>

--------------A8F7A2672F2D2B9458CB5876--


From xen-users-bounces@lists.xenproject.org Thu Jun 24 14:20:51 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Jun 2021 14:20:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.146819.270290 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwQDb-0001w1-QK; Thu, 24 Jun 2021 14:20:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 146819.270290; Thu, 24 Jun 2021 14:20:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwQDb-0001vu-N6; Thu, 24 Jun 2021 14:20:35 +0000
Received: by outflank-mailman (input) for mailman id 146819;
 Thu, 24 Jun 2021 14:20:34 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nTpM=LS=protonmail.ch=mabi@srs-us1.protection.inumbo.net>)
 id 1lwQDa-0001vo-AW
 for xen-users@lists.xenproject.org; Thu, 24 Jun 2021 14:20:34 +0000
Received: from mail-40137.protonmail.ch (unknown [185.70.40.137])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 2454fd94-8371-4896-91c0-b10dcee4a76c;
 Thu, 24 Jun 2021 14:20:30 +0000 (UTC)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: 2454fd94-8371-4896-91c0-b10dcee4a76c
Date: Thu, 24 Jun 2021 14:20:28 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.ch;
	s=protonmail; t=1624544428;
	bh=tqhUmhKQcZqiOTJ+Gd49pmfm3x8K22HPb9GwKrGGU5k=;
	h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From;
	b=I05hYVre8UOwem3EZ9S7K15bpDPLu3npcdDbso62ABzIuH9a46Xj3IDMpwNVI3xhF
	 SVbfMI7f7DPzJk/GaJBl5Y8P/IcfRbWpZfa+akM77/ScgZX04e9eVV1stn6aSHYO++
	 4W/vWhKVbYbxy9/CWEcvy3IPeoUBS+dN8qY52+tk=
To: GD <g.d.monnezza@tiscali.it>
From: mabi <mabi@protonmail.ch>
Cc: xen-users@lists.xenproject.org
Reply-To: mabi <mabi@protonmail.ch>
Subject: Re: Two redundant Xen servers with one SAN
Message-ID: <KgsQfo1l6VvEMdeo7fv0tGdEXu1Re1UcTkCKMAcMj6VsYhmijChsLoeJHUtzR_Oclpv__XaCI_DNNHJkyMXv6nwKG0P8qO5Wvs5KuCCutAA=@protonmail.ch>
In-Reply-To: <548faf9b-a95b-211a-7433-b26e3d7b3491@tiscali.it>
References: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch> <8AE60F63-3886-4247-BA9C-D83DD6555481@gmail.com> <bvfE7rlAH2oAw0aajdo_x5cu-Q-TeZpeYCoTEWYxqBN1bEA9WpB0dgKJh624H_EAWjSkczzSDEHBZU6HAMxEbmkV6aKAwNZQHtamp-bp_dQ=@protonmail.ch> <548faf9b-a95b-211a-7433-b26e3d7b3491@tiscali.it>
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="b1_hH7vnWWofGJfeXXUi93ve68ZhkBnfpZUDoPwnGQ"
X-Spam-Status: No, score=-0.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,FREEMAIL_REPLYTO,
	HTML_MESSAGE shortcircuit=no autolearn=disabled version=3.4.4
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on
	mailout.protonmail.ch

This is a multi-part message in MIME format.

--b1_hH7vnWWofGJfeXXUi93ve68ZhkBnfpZUDoPwnGQ
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

VGhhbmsgeW91IEdEIGZvciB0aGUgZGV0YWlscyByZWdhcmRpbmcgYSBEUkJEIHNldHVwLiBJIHdh
cyBhbHNvIHRoaW5raW5nIG9mIHN1Y2ggYSBzb2x1dGlvbiBidXQgdGhlIHVuZGVybHlpbmcgVk1z
IHdpbGwgaGF2ZSB2aXJ0dWFsIGRyaXZlcyB3aGljaCBhcmUgYXJlIGluIHRoZSBUQiByYW5nZSwg
cHJvYmFibHkgNS0xMCBUQi4gQXMgZmFyIGFzIEkga25vdyBhIHN5bmMvcmVzeW5jIG9mIHRoZSBE
UkJELUxWIGZvciBzdWNoIGEgVk0gd291bGYgdGFrZSBhZ2VzIGV2ZW4gb3ZlciBhIDEwIEdiaXQv
cyBmaWJlciBsaW5rLiBUaGlzIGlzIHRoZSByZWFzb24gd2h5IEkgd2FzIHRoaW5raW5nIEkgc2hv
dWxkIGdvIGZvciBhIFNBTi4KCuKAkOKAkOKAkOKAkOKAkOKAkOKAkCBPcmlnaW5hbCBNZXNzYWdl
IOKAkOKAkOKAkOKAkOKAkOKAkOKAkApPbiBUaHVyc2RheSwgSnVuZSAyNHRoLCAyMDIxIGF0IDQ6
MDQgUE0sIEdEIDxnLmQubW9ubmV6emFAdGlzY2FsaS5pdD4gd3JvdGU6Cgo+ICJJIHNob3VsZCBo
YXZlIGJlZW4gbW9yZSBwcmVjaXNlLCBJIGFtIGxvb2tpbmcgaW50byBidWlsZGluZyBhIGFjdGl2
ZS9wYXNzaXZlIGR1YWwgbm9kZSBYZW4gaW5zdGFsbGF0aW9uICIKPgo+IEluIHRoaXMgY2FzZSwg
eW91IGNhbiBjb25maWd1cmUgYSBzaW1wbGUgYnV0IHJvYnVzdCBhcmNoaXRlY3R1cmUgSSdtIGFs
cmVhZHkgcnVubmluZzoKPiBUd28gWGVuIFNlcnZlciwgc3RvcmluZyBWTXMgaW4gTFYgYnVpbHQg
b24gdG9wIG9mIERSQkQuIEl0J3MgdXAgdG8geW91IGlmIGNyZWF0ZSBhIERSQkQtTFYgcGFpciBm
b3IgZWFjaCBWTSAoYXMgSSBkaWQgaW4gbXkgc2V0dXApIG9yIGEgc2luZ2xlIERSQkQtTFZHCj4g
Qm90aCBYZW4gaG9zdCBhcmUgcnVubmluZywgYnV0IFZNcyBhcmUgcnVubmluZyBvbiB0aGUgaG9z
dCBoYXZpbmcgdGhlIERSQkQocykgYWN0aXZlLiBYZW4gaG9zdHMgc2hhcmVzIFZNIGNvbmYgZmls
ZXMgKGFuZCBvdGhlciBzdHVmZnMgYXMgaXB0YWJsZXMgZm9yd2FyZGluZyBydWxlcykgaW4gYSBj
c3luYydkIGRpcmVjdG9yeS4KPiBXaGVuIHRoZSAiYWN0aXZlIiBYZW4gaG9zdCBkaWVzLCB5b3Ug
Y2FuIHF1aWNrbHkgYm9vdCB1cCB0aGUgVk1zIG9uIHRoZSBvdGhlciBYZW4gaG9zdCBhZnRlciBz
d2l0Y2hpbmcgdGhlIERSQkQgdm9sdW1lcyBpbnRvICJwcmltYXJ5IiBtb2RlLgo+IElmIHhlbidz
IFZNcyBjb25mcyBhcmUgdGhlIHNhbWUsIHlvdSdsbCBlbmQgdXAgd2l0aCB0aGUgc2FtZSBWTXMg
d2l0aCB0aGUgc2FtZSBJUHMgKGlmIGluIGEgTEFOLCB0aGV5IGltbWVkaWF0bHkgd29yaywgb3Ro
ZXdpc2UgeW91IGhhdmUgdG8gY2hhbmdlIHRoZSByb3V0aW5nIGluIHByZXZpb3VzLWhvcCkKPgo+
IEluIHRoaXMgc2NlbmFyaW8sIHlvdSBjYW4gYWxzbyB0aGluayB0byBnbyBmdXJ0aGVyIChhcyBp
IGRpZCkgYW5kIHJ1biBhICJjcm9zcy1jb25maWd1cmF0aW9uIiB3aXRoIGJvdGggWGVuIHNlcnZl
ciBydW5uaW5nIFZNcyBvbiBhbiBhY3RpdmUgRFJCRCwgYnV0IGhvbGRpbmcgdGhlIHBhc3NpdmUg
RFJCRCBvZiB0aGUgb3RoZXIgc2VydmVyLiBUaGlzIHdheSB5b3UgY2FuIHJ1biBoYWxmIG9mIHRo
ZSBWTXMgb24gYSBzZXJ2ZXIgYW5kIHRoZSBvdGhlciBoYWxmIG9uIHRoZSBvdGhlciBzZXJ2ZXIg
OykKPgo+IFNpZGUgbm90ZXM6Cj4gLSBPbiBhIDFHYi9zIGV0aCBsaW5rIGl0IHdvcmtzIGZvciBs
b3cgZ2xvYmFsIGRpc2sgd3JpdGUgcmF0ZXMuIDEwR0IgZmliZXIvZXRoIGxpbmsgaXMgcmVxdWly
ZWQgZm9yIGhpZ2ggZGlzayB3cml0ZSByYXRlcyBzdWNoIGFzIGluIHN0b3JhZ2Ugc2VydmVycy4K
PiAtIEJlIGNhcmVmdWwgdG8gZGlzayB3cml0ZSBzcGVlZDogSSBleHBlcmllbmNlZCBkcmFtYXRp
YyBzbG93IGRvd24gd2l0aCBEZWJpYW4gMTAgd2hlbiBib290ZWQgWGVuIGtlcm5lbCAoY29tcGFy
aXNvbiBtYWRlIGFnYWluc3QgcmVndWxhciBrZXJuZWwgYm9vdCkKPgo+IEhvcGUgaXQgaGVscHMK
PiBnCj4KPiBPbiAyNC8wNi8yMSAxMzoxNiwgbWFiaSB3cm90ZToKPgo+PiBUaGFua3MgRmxvcmlh
biBhbmQgR0QgZm9yIHlvdXIgYW5zd2Vycy4KPj4KPj4gSSBzaG91bGQgaGF2ZSBiZWVuIG1vcmUg
cHJlY2lzZSwgSSBhbSBsb29raW5nIGludG8gYnVpbGRpbmcgYSBhY3RpdmUvcGFzc2l2ZSBkdWFs
IG5vZGUgWGVuIGluc3RhbGxhdGlvbi4gSSBkb24ndCBuZWVkIGFjdGl2ZS9hY3RpdmUgYXMgSSBi
ZWxpZXZlIHRoaXMgaXMgYWxzbyBtb3JlIGRhbmdlcm91cy4KPj4KPj4gQWxzbyBJIHdhcyB0aGlu
a2luZyB0aGF0IEkgd291bGQgbWFudWFsbHkgZmFpbG92ZXIgdGhlIFZNIHdoZW5ldmVyIG5lY2Vz
c2FyeSBpbiBvcmRlciBub3QgdG8gcmVseSBvbiBhZGRpdGlvbmFsIGV4dGVybmFsIHRvb2xzIHN1
Y2ggYXMgY29yb3N5bmMvcGFjZW1ha2VyIGFuZCBoZW5jZSBhdm9pZCBtb3JlIGNvbXBsZXhpdHku
Cj4+Cj4+IFNvIGFzIHlvdSBub3RpY2UsIGF0IGxlYXN0IGZvciBhIHN0YXJ0LCBJIGFtIHRyeWlu
ZyB0byBrZWVwIHRoaW5ncyBhcyBzaW1wbGUgYXMgcG9zc2libGUuIElmIEkgdW5kZXJzdGFuZCBj
b3JyZWN0bHkgdGhhdCBzaG91bGQgYmUgcG9zc2libGUgd2l0aCBYZW4gYW5kIGFsbCBJIG5lZWQg
aXMgbXVsdGlwYXRoZCBhbmQgQ0xWTSwgaXMgdGhpcyBjb3JyZWN0Pwo+Pgo+PiBUaGVuIHJlZ2Fy
ZGluZyBDTFZNLCBJIGNoZWNrZWQgRGViaWFuIGJ1c3RlciBidXQgY291bGQgbm90IGZpbmQgYW55
IENMVk0tcmVsYXRlZCBwYWNha2dlcy4gSXMgbWF5YmUgQ0xWTSBub3QgYXZhaWxhYmxlIG9uIERl
Ymlhbj8KPj4KPj4gUmVnYXJkcywKPj4gTWFiaQo+Pgo+PiDigJDigJDigJDigJDigJDigJDigJAg
T3JpZ2luYWwgTWVzc2FnZSDigJDigJDigJDigJDigJDigJDigJAKPj4KPj4gT24gVGh1cnNkYXks
IEp1bmUgMjR0aCwgMjAyMSBhdCAxMjoyOCBQTSwgRmxvcmlhbiBIZWlnbAo+PiBbPGZsb3JpYW4u
aGVpZ2xAZ21haWwuY29tPl0obWFpbHRvOmZsb3JpYW4uaGVpZ2xAZ21haWwuY29tKQo+PiB3cm90
ZToKPj4KPj4+IEhpLAo+Pj4KPj4+IHlvdSBjYW4gbG9vayBpbnRvIHNvbHV0aW9ucyBiYXNlZCBv
biBjTFZNIG9yIE9DRlMyICsgQ29yb3N5bmMvUGFjZW1ha2VyLgo+Pj4KPj4+IERvbid0IGZvcmdl
dCB0byBzZXQgdXAgbXVsdGlwYXRoZCBzbyB5b3VyIHN5c3RlbSBjYW4gaGFuZGxlIHRoZSBsaW5r
L2NvbnRyb2xsZXIgZmFpbG92ZXJzLgo+Pj4KPj4+IFRoaXMgaGFzIGJlZW4gZG9uZSwgYW5kIGFs
c28gaGFzIGJlZW4vaXMgYSBjb21tb25wbGFjZSBzb2x1dGlvbi4gVGhlcmUgaXMgYWxzbyBsb3Rz
IG9mIGJsb2cgcG9zdHMgdGhhdCB5b3UgY2FuIGRpZyB1cCBvbmNlIHlvdSBzZWFyY2ggdGhlIHJp
Z2h0IHdheS4KPj4+Cj4+PiBJIHdvdWxkIGF2b2lkIHJ1bm5pbmcgbmF0aXZlbHkgb24gU0FOIGx1
bnMgYXR0YWNoZWQgdG8gVk1zIGR1ZSB0aGUgcmlzayBvZiAidGhlIGNsdXN0ZXIgc3RhY2sgaGFk
IGFuIGVycm9yIC8gd2FzIG1pc2NvbmZpZ3VyZWQiLiBJZiB5b3UnZCBmYWlsb3ZlciBtYW51YWxs
eSB0aGF0IHdvdWxkIGJlIGxlc3Mgb2YgYW4gaXNzdWUuIFRoZSBjbHVzdGVycyBsaWtlIFBhY2Vt
YWtlciBjYW4gcHJvdGVjdCB0aGUgVk1zIGEgYml0IHVzaW5nIFNDU0kgcmVzZXJ2YXRpb25zLgo+
Pj4KPj4+IFRoZXJlIHdhcyBhbHNvIFJlbXVzIGZvciBydW5uaW5nIDIgVk1zIGluIGxvY2tzdGVw
IGZvciBIQSwgYnV0IHRoYXQgd2FzIGV4cGVjdGluZyBubyBzaGFyZWQgc3RvcmFnZSBhbmQgd2Fz
IG5ldmVyIHBvbGlzaGVkIGJ5IGFueW9uZSB0byBiZSB3b3J0aHdoaWxlIGZvciBwcm9kdWN0aW9u
IHVzZS4KPj4+Cj4+PiBBIGZhaXIgd2FybmluZzogTW9zdCBob21lZ3Jvd24gSEEgc2V0dXBzIGxp
a2UgdGhleSdyZSBkb25lIGNvbW1vbmx5IGluIHRoZSBJU1AgaW5kdXN0cnkgdGVuZCB0byBibG93
IHVwIG11Y2ggbW9yZSBvZnRlbiB0aGFuIHdoYXQgYSBwcm9wZXIgc29sdXRpb24gc2hvdWxkIGJl
IGxpa2UuCj4+Pgo+Pj4gSXQgbWlnaHQgYmUgYmV0dGVyIHRvIHBpY2sgc29tZXRoaW5nIHByZS1t
YWRlIGZvciB0aGF0IHB1cnBvc2UgaWYgeW91IGRvbid0IGhhdmUgdGhlIFNBTi9DbHVzdGVyIGV4
cGVyaWVuY2UuCj4+Pgo+Pj4gSS5lLiBYZW5TZXJ2ZXIvWENQIG9yIE9yYWNsZSBWTTMuCj4+Pgo+
Pj4gR29vZCBsdWNrIQo+Pj4KPj4+IEZsb3JpYW4KPj4+Cj4+Pj4gQW0gMjQuMDYuMjAyMSB1bSAx
MDowOSBzY2hyaWViIG1hYmkKPj4+PiBtYWJpQHByb3Rvbm1haWwuY2gKPj4+PiA6Cj4+Pj4KPj4+
PiBIZWxsbywKPj4+Pgo+Pj4+IElzIGl0IHBvc3NpYmxlIHdpdGggWGVuIG9uIERlYmlhbiAxMCB0
byBoYXZlIHR3byBYZW4gc2VydmVycyBib3RoIGRpcmVjdGx5IGF0dGFjaGVkIGluIGEgcmVkdW5k
YW50IHdheSB0aHJvdWdoIEhCQSBpbnRlcmZhY2VzIHRvIGEgc2luZ2xlIFNBTj8KPj4+Pgo+Pj4+
IFRoZSBnb2FsIGhlcmUgd291bGQgYmUgdG8gYWNoaWV2ZSBoaWdoZXIgYXZhaWxhYmlsaXR5IG9m
IHRoZSBWbXMgaW4gY2FzZSBvbmUgWGVuIHNlcnZlciBpcyBkb3duIGZvciBtYWludGVuYW5jZSBv
ciBiZWNhdXNlIGl0IGlzIGRlZmVjdGl2ZS4gVGhpcyB3b3VsZCBtZWFuIHRoYXQgdGhlIHRoZSB2
aXJ0dWFsIG1hY2hpbmVzIGNhbiBjb250aW51ZSB0byBydW4gb24gdGhlIHNlY29uZCBhdmFpbGFi
bGUgWGVuIHNlcnZlci4gVGhlIFNBTiB3b3VsZCBiZSB1c2VkIHRvIHN0b3JlIHRoZSB2aXJ0dWFs
IG1hY2hpbmVzIGltYWdlcyBkaXJlY3RseSB2aWEgTFZNIEkgZ3Vlc3MuCj4+Pj4KPj4+PiBJIGRp
ZCBub3QgZmluZCBhbnkgWGVuIGRvY3VtZW50YXRpb24gb3IgdGhpcmQtcGFydHkgaG93dG9zIGlu
IG9yZGVyIHRvIGRvIHRoYXQuIERvZXMgYW55b25lIGhhdmUgYW55IHBvaW50ZXJzIHRvIHNvbWUg
ZG9jdW1lbnRhdGlvbiBvciBoaW50cz8gb3IgbWF5YmUgdGhpcyBpcyBzaW1wbHkgbm90IHBvc3Np
YmxlPwo+Pj4+Cj4+Pj4gQmVzdCByZWdhcmRzLAo+Pj4+Cj4+Pj4gTWFiaQ==

--b1_hH7vnWWofGJfeXXUi93ve68ZhkBnfpZUDoPwnGQ
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

PGRpdj5UaGFuayB5b3UgR0QgZm9yIHRoZSBkZXRhaWxzIHJlZ2FyZGluZyBhIERSQkQgc2V0dXAu
IEkgd2FzIGFsc28gdGhpbmtpbmcgb2Ygc3VjaCBhIHNvbHV0aW9uIGJ1dCB0aGUgdW5kZXJseWlu
ZyBWTXMgd2lsbCBoYXZlIHZpcnR1YWwgZHJpdmVzIHdoaWNoIGFyZSBhcmUgaW4gdGhlIFRCIHJh
bmdlLCBwcm9iYWJseSA1LTEwIFRCLiBBcyBmYXIgYXMgSSBrbm93IGEgc3luYy9yZXN5bmMgb2Yg
dGhlIERSQkQtTFYgZm9yIHN1Y2ggYSBWTSB3b3VsZiB0YWtlIGFnZXMgZXZlbiBvdmVyIGEgMTAg
R2JpdC9zIGZpYmVyIGxpbmsuIFRoaXMgaXMgdGhlIHJlYXNvbiB3aHkgSSB3YXMgdGhpbmtpbmcg
SSBzaG91bGQgZ28gZm9yIGEgU0FOLjxicj48L2Rpdj48ZGl2IGNsYXNzPSJwcm90b25tYWlsX3Np
Z25hdHVyZV9ibG9jayBwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay1lbXB0eSI+PGRpdiBjbGFz
cz0icHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stdXNlciBwcm90b25tYWlsX3NpZ25hdHVyZV9i
bG9jay1lbXB0eSI+PGRpdj48YnI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icHJvdG9ubWFpbF9z
aWduYXR1cmVfYmxvY2stcHJvdG9uIHByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLWVtcHR5Ij48
L2Rpdj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2IGNsYXNzPSJwcm90b25tYWlsX3F1b3RlIj48
ZGl2PuKAkOKAkOKAkOKAkOKAkOKAkOKAkCBPcmlnaW5hbCBNZXNzYWdlIOKAkOKAkOKAkOKAkOKA
kOKAkOKAkDxicj48L2Rpdj48ZGl2PiBPbiBUaHVyc2RheSwgSnVuZSAyNHRoLCAyMDIxIGF0IDQ6
MDQgUE0sIEdEICZsdDtnLmQubW9ubmV6emFAdGlzY2FsaS5pdCZndDsgd3JvdGU6PGJyPjwvZGl2
PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJwcm90b25tYWlsX3F1b3Rl
IiB0eXBlPSJjaXRlIj4NCg0KICAgIDxmb250IHNpemU9Ii0xIj4iPC9mb250Pkkgc2hvdWxkIGhh
dmUgYmVlbiBtb3JlIHByZWNpc2UsIEkgYW0NCiAgICBsb29raW5nIGludG8gYnVpbGRpbmcgYSBh
Y3RpdmUvcGFzc2l2ZSBkdWFsIG5vZGUgWGVuIGluc3RhbGxhdGlvbg0KICAgICI8Zm9udCBzaXpl
PSItMSI+PGJyPg0KICAgICAgPGJyPg0KICAgICAgSW4gdGhpcyBjYXNlLCB5b3UgY2FuIGNvbmZp
Z3VyZSBhIHNpbXBsZSBidXQgcm9idXN0IGFyY2hpdGVjdHVyZQ0KICAgICAgSSdtIGFscmVhZHkg
cnVubmluZzo8YnI+DQogICAgICBUd28gWGVuIFNlcnZlciwgc3RvcmluZyBWTXMgaW4gTFYgYnVp
bHQgb24gdG9wIG9mIERSQkQuIEl0J3MgdXAgdG8NCiAgICAgIHlvdSBpZiBjcmVhdGUgYSBEUkJE
LUxWIHBhaXIgZm9yIGVhY2ggVk0gKGFzIEkgZGlkIGluIG15IHNldHVwKSBvcg0KICAgICAgYSBz
aW5nbGUgRFJCRC1MVkc8YnI+DQogICAgICBCb3RoIFhlbiBob3N0IGFyZSBydW5uaW5nLCBidXQg
Vk1zIGFyZSBydW5uaW5nIG9uIHRoZSBob3N0IGhhdmluZw0KICAgICAgdGhlIERSQkQocykgYWN0
aXZlLiBYZW4gaG9zdHMgc2hhcmVzIFZNIGNvbmYgZmlsZXMgKGFuZCBvdGhlcg0KICAgICAgc3R1
ZmZzIGFzIGlwdGFibGVzIGZvcndhcmRpbmcgcnVsZXMpIGluIGEgY3N5bmMnZCBkaXJlY3Rvcnku
PGJyPg0KICAgICAgV2hlbiB0aGUgImFjdGl2ZSIgWGVuIGhvc3QgZGllcywgeW91IGNhbiBxdWlj
a2x5IGJvb3QgdXAgdGhlIFZNcw0KICAgICAgb24gdGhlIG90aGVyIFhlbiBob3N0IGFmdGVyIHN3
aXRjaGluZyB0aGUgRFJCRCB2b2x1bWVzIGludG8NCiAgICAgICJwcmltYXJ5IiBtb2RlLjxicj4N
CiAgICAgIElmIHhlbidzIFZNcyBjb25mcyBhcmUgdGhlIHNhbWUsIHlvdSdsbCBlbmQgdXAgd2l0
aCB0aGUgc2FtZSBWTXMNCiAgICAgIHdpdGggdGhlIHNhbWUgSVBzIChpZiBpbiBhIExBTiwgdGhl
eSBpbW1lZGlhdGx5IHdvcmssIG90aGV3aXNlIHlvdQ0KICAgICAgaGF2ZSB0byBjaGFuZ2UgdGhl
IHJvdXRpbmcgaW4gcHJldmlvdXMtaG9wKTxicj4NCiAgICAgIDxicj4NCiAgICAgIEluIHRoaXMg
c2NlbmFyaW8sIHlvdSBjYW4gYWxzbyB0aGluayB0byBnbyBmdXJ0aGVyIChhcyBpIGRpZCkgYW5k
DQogICAgICBydW4gYSAiY3Jvc3MtY29uZmlndXJhdGlvbiIgd2l0aCBib3RoIFhlbiBzZXJ2ZXIg
cnVubmluZyBWTXMgb24gYW4NCiAgICAgIGFjdGl2ZSBEUkJELCBidXQgaG9sZGluZyB0aGUgcGFz
c2l2ZSBEUkJEIG9mIHRoZSBvdGhlciBzZXJ2ZXIuDQogICAgICBUaGlzIHdheSB5b3UgY2FuIHJ1
biBoYWxmIG9mIHRoZSBWTXMgb24gYSBzZXJ2ZXIgYW5kIHRoZSBvdGhlcg0KICAgICAgaGFsZiBv
biB0aGUgb3RoZXIgc2VydmVyIDspIDxicj4NCiAgICAgIDxicj4NCiAgICAgIFNpZGUgbm90ZXM6
PGJyPg0KICAgICAgLSBPbiBhIDFHYi9zIGV0aCBsaW5rIGl0IHdvcmtzIGZvciBsb3cgZ2xvYmFs
IGRpc2sgd3JpdGUgcmF0ZXMuDQogICAgICAxMEdCIGZpYmVyL2V0aCBsaW5rIGlzIHJlcXVpcmVk
IGZvciBoaWdoIGRpc2sgd3JpdGUgcmF0ZXMgc3VjaCBhcw0KICAgICAgaW4gc3RvcmFnZSBzZXJ2
ZXJzLjxicj4NCiAgICAgIC0gQmUgY2FyZWZ1bCB0byBkaXNrIHdyaXRlIHNwZWVkOiBJIGV4cGVy
aWVuY2VkIGRyYW1hdGljIHNsb3cgZG93bg0KICAgICAgd2l0aCBEZWJpYW4gMTAgd2hlbiBib290
ZWQgWGVuIGtlcm5lbCAoY29tcGFyaXNvbiBtYWRlIGFnYWluc3QNCiAgICAgIHJlZ3VsYXIga2Vy
bmVsIGJvb3QpPGJyPg0KICAgICAgPGJyPg0KICAgICAgSG9wZSBpdCBoZWxwczxicj4NCiAgICAg
IGc8YnI+DQogICAgPC9mb250PiZuYnNwOzxicj4NCiAgICA8ZGl2IGNsYXNzPSJtb3otY2l0ZS1w
cmVmaXgiPk9uIDI0LzA2LzIxIDEzOjE2LCBtYWJpIHdyb3RlOjxicj4NCiAgICA8L2Rpdj4NCiAg
ICA8YmxvY2txdW90ZSB0eXBlPSJjaXRlIj4NCiAgICAgIDxwcmUgd3JhcD0iIj5UaGFua3MgRmxv
cmlhbiBhbmQgR0QgZm9yIHlvdXIgYW5zd2Vycy4NCg0KSSBzaG91bGQgaGF2ZSBiZWVuIG1vcmUg
cHJlY2lzZSwgSSBhbSBsb29raW5nIGludG8gYnVpbGRpbmcgYSBhY3RpdmUvcGFzc2l2ZSBkdWFs
IG5vZGUgWGVuIGluc3RhbGxhdGlvbi4gSSBkb24ndCBuZWVkIGFjdGl2ZS9hY3RpdmUgYXMgSSBi
ZWxpZXZlIHRoaXMgaXMgYWxzbyBtb3JlIGRhbmdlcm91cy4NCg0KQWxzbyBJIHdhcyB0aGlua2lu
ZyB0aGF0IEkgd291bGQgbWFudWFsbHkgZmFpbG92ZXIgdGhlIFZNIHdoZW5ldmVyIG5lY2Vzc2Fy
eSBpbiBvcmRlciBub3QgdG8gcmVseSBvbiBhZGRpdGlvbmFsIGV4dGVybmFsIHRvb2xzIHN1Y2gg
YXMgY29yb3N5bmMvcGFjZW1ha2VyIGFuZCBoZW5jZSBhdm9pZCBtb3JlIGNvbXBsZXhpdHkuDQoN
ClNvIGFzIHlvdSBub3RpY2UsIGF0IGxlYXN0IGZvciBhIHN0YXJ0LCBJIGFtIHRyeWluZyB0byBr
ZWVwIHRoaW5ncyBhcyBzaW1wbGUgYXMgcG9zc2libGUuIElmIEkgdW5kZXJzdGFuZCBjb3JyZWN0
bHkgdGhhdCBzaG91bGQgYmUgcG9zc2libGUgd2l0aCBYZW4gYW5kIGFsbCBJIG5lZWQgaXMgbXVs
dGlwYXRoZCBhbmQgQ0xWTSwgaXMgdGhpcyBjb3JyZWN0Pw0KDQpUaGVuIHJlZ2FyZGluZyBDTFZN
LCBJIGNoZWNrZWQgRGViaWFuIGJ1c3RlciBidXQgY291bGQgbm90IGZpbmQgYW55IENMVk0tcmVs
YXRlZCBwYWNha2dlcy4gSXMgbWF5YmUgQ0xWTSBub3QgYXZhaWxhYmxlIG9uIERlYmlhbj8NCg0K
UmVnYXJkcywNCk1hYmkNCg0K4oCQ4oCQ4oCQ4oCQ4oCQ4oCQ4oCQIE9yaWdpbmFsIE1lc3NhZ2Ug
4oCQ4oCQ4oCQ4oCQ4oCQ4oCQ4oCQDQoNCk9uIFRodXJzZGF5LCBKdW5lIDI0dGgsIDIwMjEgYXQg
MTI6MjggUE0sIEZsb3JpYW4gSGVpZ2wgPGEgaHJlZj0ibWFpbHRvOmZsb3JpYW4uaGVpZ2xAZ21h
aWwuY29tIiByZWw9Im5vcmVmZXJyZXIgbm9mb2xsb3cgbm9vcGVuZXIiPiZsdDtmbG9yaWFuLmhl
aWdsQGdtYWlsLmNvbSZndDs8L2E+IHdyb3RlOg0KDQo8L3ByZT4NCiAgICAgIDxibG9ja3F1b3Rl
IHR5cGU9ImNpdGUiPg0KICAgICAgICA8cHJlIHdyYXA9IiI+SGksDQoNCnlvdSBjYW4gbG9vayBp
bnRvIHNvbHV0aW9ucyBiYXNlZCBvbiBjTFZNIG9yIE9DRlMyICsgQ29yb3N5bmMvUGFjZW1ha2Vy
Lg0KDQpEb24ndCBmb3JnZXQgdG8gc2V0IHVwIG11bHRpcGF0aGQgc28geW91ciBzeXN0ZW0gY2Fu
IGhhbmRsZSB0aGUgbGluay9jb250cm9sbGVyIGZhaWxvdmVycy4NCg0KVGhpcyBoYXMgYmVlbiBk
b25lLCBhbmQgYWxzbyBoYXMgYmVlbi9pcyBhIGNvbW1vbnBsYWNlIHNvbHV0aW9uLiBUaGVyZSBp
cyBhbHNvIGxvdHMgb2YgYmxvZyBwb3N0cyB0aGF0IHlvdSBjYW4gZGlnIHVwIG9uY2UgeW91IHNl
YXJjaCB0aGUgcmlnaHQgd2F5Lg0KDQpJIHdvdWxkIGF2b2lkIHJ1bm5pbmcgbmF0aXZlbHkgb24g
U0FOIGx1bnMgYXR0YWNoZWQgdG8gVk1zIGR1ZSB0aGUgcmlzayBvZiAidGhlIGNsdXN0ZXIgc3Rh
Y2sgaGFkIGFuIGVycm9yIC8gd2FzIG1pc2NvbmZpZ3VyZWQiLiBJZiB5b3UnZCBmYWlsb3ZlciBt
YW51YWxseSB0aGF0IHdvdWxkIGJlIGxlc3Mgb2YgYW4gaXNzdWUuIFRoZSBjbHVzdGVycyBsaWtl
IFBhY2VtYWtlciBjYW4gcHJvdGVjdCB0aGUgVk1zIGEgYml0IHVzaW5nIFNDU0kgcmVzZXJ2YXRp
b25zLg0KDQpUaGVyZSB3YXMgYWxzbyBSZW11cyBmb3IgcnVubmluZyAyIFZNcyBpbiBsb2Nrc3Rl
cCBmb3IgSEEsIGJ1dCB0aGF0IHdhcyBleHBlY3Rpbmcgbm8gc2hhcmVkIHN0b3JhZ2UgYW5kIHdh
cyBuZXZlciBwb2xpc2hlZCBieSBhbnlvbmUgdG8gYmUgd29ydGh3aGlsZSBmb3IgcHJvZHVjdGlv
biB1c2UuDQoNCkEgZmFpciB3YXJuaW5nOiBNb3N0IGhvbWVncm93biBIQSBzZXR1cHMgbGlrZSB0
aGV5J3JlIGRvbmUgY29tbW9ubHkgaW4gdGhlIElTUCBpbmR1c3RyeSB0ZW5kIHRvIGJsb3cgdXAg
bXVjaCBtb3JlIG9mdGVuIHRoYW4gd2hhdCBhIHByb3BlciBzb2x1dGlvbiBzaG91bGQgYmUgbGlr
ZS4NCg0KSXQgbWlnaHQgYmUgYmV0dGVyIHRvIHBpY2sgc29tZXRoaW5nIHByZS1tYWRlIGZvciB0
aGF0IHB1cnBvc2UgaWYgeW91IGRvbid0IGhhdmUgdGhlIFNBTi9DbHVzdGVyIGV4cGVyaWVuY2Uu
DQoNCkkuZS4gWGVuU2VydmVyL1hDUCBvciBPcmFjbGUgVk0zLg0KDQpHb29kIGx1Y2shDQoNCkZs
b3JpYW4NCg0KPC9wcmU+DQogICAgICAgIDxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPg0KICAgICAg
ICAgIDxwcmUgd3JhcD0iIj5BbSAyNC4wNi4yMDIxIHVtIDEwOjA5IHNjaHJpZWIgbWFiaSA8YSBo
cmVmPSJtYWlsdG86bWFiaUBwcm90b25tYWlsLmNoIiByZWw9Im5vcmVmZXJyZXIgbm9mb2xsb3cg
bm9vcGVuZXIiPm1hYmlAcHJvdG9ubWFpbC5jaDwvYT46DQoNCkhlbGxvLA0KDQpJcyBpdCBwb3Nz
aWJsZSB3aXRoIFhlbiBvbiBEZWJpYW4gMTAgdG8gaGF2ZSB0d28gWGVuIHNlcnZlcnMgYm90aCBk
aXJlY3RseSBhdHRhY2hlZCBpbiBhIHJlZHVuZGFudCB3YXkgdGhyb3VnaCBIQkEgaW50ZXJmYWNl
cyB0byBhIHNpbmdsZSBTQU4/DQoNClRoZSBnb2FsIGhlcmUgd291bGQgYmUgdG8gYWNoaWV2ZSBo
aWdoZXIgYXZhaWxhYmlsaXR5IG9mIHRoZSBWbXMgaW4gY2FzZSBvbmUgWGVuIHNlcnZlciBpcyBk
b3duIGZvciBtYWludGVuYW5jZSBvciBiZWNhdXNlIGl0IGlzIGRlZmVjdGl2ZS4gVGhpcyB3b3Vs
ZCBtZWFuIHRoYXQgdGhlIHRoZSB2aXJ0dWFsIG1hY2hpbmVzIGNhbiBjb250aW51ZSB0byBydW4g
b24gdGhlIHNlY29uZCBhdmFpbGFibGUgWGVuIHNlcnZlci4gVGhlIFNBTiB3b3VsZCBiZSB1c2Vk
IHRvIHN0b3JlIHRoZSB2aXJ0dWFsIG1hY2hpbmVzIGltYWdlcyBkaXJlY3RseSB2aWEgTFZNIEkg
Z3Vlc3MuDQoNCkkgZGlkIG5vdCBmaW5kIGFueSBYZW4gZG9jdW1lbnRhdGlvbiBvciB0aGlyZC1w
YXJ0eSBob3d0b3MgaW4gb3JkZXIgdG8gZG8gdGhhdC4gRG9lcyBhbnlvbmUgaGF2ZSBhbnkgcG9p
bnRlcnMgdG8gc29tZSBkb2N1bWVudGF0aW9uIG9yIGhpbnRzPyBvciBtYXliZSB0aGlzIGlzIHNp
bXBseSBub3QgcG9zc2libGU/DQoNCkJlc3QgcmVnYXJkcywNCg0KTWFiaQ0KPC9wcmU+DQogICAg
ICAgIDwvYmxvY2txdW90ZT4NCiAgICAgIDwvYmxvY2txdW90ZT4NCiAgICAgIDxwcmUgd3JhcD0i
Ij48L3ByZT4NCiAgICA8L2Jsb2NrcXVvdGU+DQogICAgPGJyPg0KDQoNCg0KICAgICAgICA8L2Js
b2NrcXVvdGU+


--b1_hH7vnWWofGJfeXXUi93ve68ZhkBnfpZUDoPwnGQ--



From xen-users-bounces@lists.xenproject.org Thu Jun 24 14:39:18 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Jun 2021 14:39:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.146839.270333 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwQVO-0004DD-PT; Thu, 24 Jun 2021 14:38:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 146839.270333; Thu, 24 Jun 2021 14:38:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lwQVO-0004D5-KZ; Thu, 24 Jun 2021 14:38:58 +0000
Received: by outflank-mailman (input) for mailman id 146839;
 Thu, 24 Jun 2021 14:38:56 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/0fc=LS=tiscali.it=g.d.monnezza@srs-us1.protection.inumbo.net>)
 id 1lwQVM-0004Cz-6Y
 for xen-users@lists.xenproject.org; Thu, 24 Jun 2021 14:38:56 +0000
Received: from smtp.tiscali.it (unknown [213.205.33.216])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id d5a02691-615e-4834-b111-a2c28352e53e;
 Thu, 24 Jun 2021 14:38:53 +0000 (UTC)
Received: from [192.168.200.10] ([91.254.8.183])
 by michael.mail.tiscali.it with 
 id M2ep2503N3wwlYB012eqoH; Thu, 24 Jun 2021 14:38:51 +0000
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: d5a02691-615e-4834-b111-a2c28352e53e
X-Spam-Final-Verdict: clean
X-Spam-State: 0
X-Spam-Score: 0
X-Spam-Verdict: clean
x-auth-user: g.d.monnezza@tiscali.it
Subject: Re: Two redundant Xen servers with one SAN
To: mabi <mabi@protonmail.ch>
Cc: xen-users@lists.xenproject.org
References: <nEhC__m9omdRTtiJLn9i51DD9U_oaY4GCMzLqaCdyFZ0wuhOZr8o3I4AF-btKf4j-H77otqF5SciZqwShk_SM_S6WLcjjBvH5BJnBG4OPjI=@protonmail.ch>
 <8AE60F63-3886-4247-BA9C-D83DD6555481@gmail.com>
 <bvfE7rlAH2oAw0aajdo_x5cu-Q-TeZpeYCoTEWYxqBN1bEA9WpB0dgKJh624H_EAWjSkczzSDEHBZU6HAMxEbmkV6aKAwNZQHtamp-bp_dQ=@protonmail.ch>
 <548faf9b-a95b-211a-7433-b26e3d7b3491@tiscali.it>
 <KgsQfo1l6VvEMdeo7fv0tGdEXu1Re1UcTkCKMAcMj6VsYhmijChsLoeJHUtzR_Oclpv__XaCI_DNNHJkyMXv6nwKG0P8qO5Wvs5KuCCutAA=@protonmail.ch>
From: GD <g.d.monnezza@tiscali.it>
Message-ID: <865eb610-3e1b-cbf7-9cf6-b12be480f889@tiscali.it>
Date: Thu, 24 Jun 2021 16:38:49 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.4.1
MIME-Version: 1.0
In-Reply-To: <KgsQfo1l6VvEMdeo7fv0tGdEXu1Re1UcTkCKMAcMj6VsYhmijChsLoeJHUtzR_Oclpv__XaCI_DNNHJkyMXv6nwKG0P8qO5Wvs5KuCCutAA=@protonmail.ch>
Content-Type: multipart/alternative;
 boundary="------------7A06F62A309DA504DD337FD5"
Content-Language: en-US
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tiscali.it; s=smtp;
	t=1624545531; bh=aJYq7Ygr1RiBGXwNok1GLjtHIkFm1Btj1KXfZMCXIck=;
	h=Subject:To:Cc:References:From:Date:In-Reply-To;
	b=c5sdVW3pMZhuoba+vpuIb2VvceivKWngoAjEMwGm24jbP+Rhq1CxkMlne/1d4psa8
	 6EeCeHF6JyJsA4s4mmvLDZ1Cvm3IwVAMF0+RymueYaTelt79qmXsbCAAaHhaPW+3+1
	 rSI1nR6vZwd/GDPqEUFvdzE1AnPeqgprmLTV2N8g=

This is a multi-part message in MIME format.
--------------7A06F62A309DA504DD337FD5
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Maybe a different approach can helps: if the large data amount is 
essentially at rest for most of the time, you can think to share it as 
simple NFS4 shared directories (better file lock mechanism than NFS3) ad 
expose them to a kubernetes cluster running small&fast "VM" (pods, 
docker instances)
You can run a redundant (two) kubernetes controllers and two kubernetes 
nodes. You can set up this scenario with two bare-metal server. If a 
server dies the cluster survives by replicating automatically the pods 
(VMs) on the second node.
This is nearly a full-HA solution. But it doesn't make use of xen, so 
you have to change discussion list :D

g

On 24/06/21 16:20, mabi wrote:
> Thank you GD for the details regarding a DRBD setup. I was also 
> thinking of such a solution but the underlying VMs will have virtual 
> drives which are are in the TB range, probably 5-10 TB. As far as I 
> know a sync/resync of the DRBD-LV for such a VM woulf take ages even 
> over a 10 Gbit/s fiber link. This is the reason why I was thinking I 
> should go for a SAN.
>
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Thursday, June 24th, 2021 at 4:04 PM, GD <g.d.monnezza@tiscali.it> 
> wrote:
>
>> "I should have been more precise, I am looking into building a 
>> active/passive dual node Xen installation "
>>
>> In this case, you can configure a simple but robust architecture I'm 
>> already running:
>> Two Xen Server, storing VMs in LV built on top of DRBD. It's up to 
>> you if create a DRBD-LV pair for each VM (as I did in my setup) or a 
>> single DRBD-LVG
>> Both Xen host are running, but VMs are running on the host having the 
>> DRBD(s) active. Xen hosts shares VM conf files (and other stuffs as 
>> iptables forwarding rules) in a csync'd directory.
>> When the "active" Xen host dies, you can quickly boot up the VMs on 
>> the other Xen host after switching the DRBD volumes into "primary" mode.
>> If xen's VMs confs are the same, you'll end up with the same VMs with 
>> the same IPs (if in a LAN, they immediatly work, othewise you have to 
>> change the routing in previous-hop)
>>
>> In this scenario, you can also think to go further (as i did) and run 
>> a "cross-configuration" with both Xen server running VMs on an active 
>> DRBD, but holding the passive DRBD of the other server. This way you 
>> can run half of the VMs on a server and the other half on the other 
>> server ;)
>>
>> Side notes:
>> - On a 1Gb/s eth link it works for low global disk write rates. 10GB 
>> fiber/eth link is required for high disk write rates such as in 
>> storage servers.
>> - Be careful to disk write speed: I experienced dramatic slow down 
>> with Debian 10 when booted Xen kernel (comparison made against 
>> regular kernel boot)
>>
>> Hope it helps
>> g
>>
>> On 24/06/21 13:16, mabi wrote:
>>> Thanks Florian and GD for your answers.
>>>
>>> I should have been more precise, I am looking into building a active/passive dual node Xen installation. I don't need active/active as I believe this is also more dangerous.
>>>
>>> Also I was thinking that I would manually failover the VM whenever necessary in order not to rely on additional external tools such as corosync/pacemaker and hence avoid more complexity.
>>>
>>> So as you notice, at least for a start, I am trying to keep things as simple as possible. If I understand correctly that should be possible with Xen and all I need is multipathd and CLVM, is this correct?
>>>
>>> Then regarding CLVM, I checked Debian buster but could not find any CLVM-related pacakges. Is maybe CLVM not available on Debian?
>>>
>>> Regards,
>>> Mabi
>>>
>>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>>
>>> On Thursday, June 24th, 2021 at 12:28 PM, Florian Heigl<florian.heigl@gmail.com>  <mailto:florian.heigl@gmail.com>  wrote:
>>>
>>>> Hi,
>>>>
>>>> you can look into solutions based on cLVM or OCFS2 + Corosync/Pacemaker.
>>>>
>>>> Don't forget to set up multipathd so your system can handle the link/controller failovers.
>>>>
>>>> This has been done, and also has been/is a commonplace solution. There is also lots of blog posts that you can dig up once you search the right way.
>>>>
>>>> I would avoid running natively on SAN luns attached to VMs due the risk of "the cluster stack had an error / was misconfigured". If you'd failover manually that would be less of an issue. The clusters like Pacemaker can protect the VMs a bit using SCSI reservations.
>>>>
>>>> There was also Remus for running 2 VMs in lockstep for HA, but that was expecting no shared storage and was never polished by anyone to be worthwhile for production use.
>>>>
>>>> A fair warning: Most homegrown HA setups like they're done commonly in the ISP industry tend to blow up much more often than what a proper solution should be like.
>>>>
>>>> It might be better to pick something pre-made for that purpose if you don't have the SAN/Cluster experience.
>>>>
>>>> I.e. XenServer/XCP or Oracle VM3.
>>>>
>>>> Good luck!
>>>>
>>>> Florian
>>>>
>>>>> Am 24.06.2021 um 10:09 schrieb mabimabi@protonmail.ch  <mailto:mabi@protonmail.ch>:
>>>>>
>>>>> Hello,
>>>>>
>>>>> Is it possible with Xen on Debian 10 to have two Xen servers both directly attached in a redundant way through HBA interfaces to a single SAN?
>>>>>
>>>>> The goal here would be to achieve higher availability of the Vms in case one Xen server is down for maintenance or because it is defective. This would mean that the the virtual machines can continue to run on the second available Xen server. The SAN would be used to store the virtual machines images directly via LVM I guess.
>>>>>
>>>>> I did not find any Xen documentation or third-party howtos in order to do that. Does anyone have any pointers to some documentation or hints? or maybe this is simply not possible?
>>>>>
>>>>> Best regards,
>>>>>
>>>>> Mabi
>>


--------------7A06F62A309DA504DD337FD5
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="-1">Maybe a different approach can helps: if the large
      data amount is essentially at rest for most of the time, you can
      think to share it as simple NFS4 shared directories (better file
      lock mechanism than NFS3) ad expose them to a kubernetes cluster
      running small&amp;fast "VM" (pods, docker instances)<br>
      You can run a redundant (two) kubernetes controllers and two
      kubernetes nodes. You can set up this scenario with two bare-metal
      server. If a server dies the cluster survives by replicating
      automatically the pods (VMs) on the second node.<br>
      This is nearly a full-HA solution. But it doesn't make use of xen,
      so you have to change discussion list :D<br>
      <br>
      g  <br>
    </font><br>
    <div class="moz-cite-prefix">On 24/06/21 16:20, mabi wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:KgsQfo1l6VvEMdeo7fv0tGdEXu1Re1UcTkCKMAcMj6VsYhmijChsLoeJHUtzR_Oclpv__XaCI_DNNHJkyMXv6nwKG0P8qO5Wvs5KuCCutAA=@protonmail.ch">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div>Thank you GD for the details regarding a DRBD setup. I was
        also thinking of such a solution but the underlying VMs will
        have virtual drives which are are in the TB range, probably 5-10
        TB. As far as I know a sync/resync of the DRBD-LV for such a VM
        woulf take ages even over a 10 Gbit/s fiber link. This is the
        reason why I was thinking I should go for a SAN.<br>
      </div>
      <div class="protonmail_signature_block
        protonmail_signature_block-empty">
        <div class="protonmail_signature_block-user
          protonmail_signature_block-empty">
          <div><br>
          </div>
        </div>
      </div>
      <div><br>
      </div>
      <div class="protonmail_quote">
        <div>‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐<br>
        </div>
        <div> On Thursday, June 24th, 2021 at 4:04 PM, GD
          <a class="moz-txt-link-rfc2396E" href="mailto:g.d.monnezza@tiscali.it">&lt;g.d.monnezza@tiscali.it&gt;</a> wrote:<br>
        </div>
      </div>
      <div><br>
      </div>
      <blockquote class="protonmail_quote" type="cite"> <font size="-1">"</font>I
        should have been more precise, I am looking into building a
        active/passive dual node Xen installation "<font size="-1"><br>
          <br>
          In this case, you can configure a simple but robust
          architecture I'm already running:<br>
          Two Xen Server, storing VMs in LV built on top of DRBD. It's
          up to you if create a DRBD-LV pair for each VM (as I did in my
          setup) or a single DRBD-LVG<br>
          Both Xen host are running, but VMs are running on the host
          having the DRBD(s) active. Xen hosts shares VM conf files (and
          other stuffs as iptables forwarding rules) in a csync'd
          directory.<br>
          When the "active" Xen host dies, you can quickly boot up the
          VMs on the other Xen host after switching the DRBD volumes
          into "primary" mode.<br>
          If xen's VMs confs are the same, you'll end up with the same
          VMs with the same IPs (if in a LAN, they immediatly work,
          othewise you have to change the routing in previous-hop)<br>
          <br>
          In this scenario, you can also think to go further (as i did)
          and run a "cross-configuration" with both Xen server running
          VMs on an active DRBD, but holding the passive DRBD of the
          other server. This way you can run half of the VMs on a server
          and the other half on the other server ;) <br>
          <br>
          Side notes:<br>
          - On a 1Gb/s eth link it works for low global disk write
          rates. 10GB fiber/eth link is required for high disk write
          rates such as in storage servers.<br>
          - Be careful to disk write speed: I experienced dramatic slow
          down with Debian 10 when booted Xen kernel (comparison made
          against regular kernel boot)<br>
          <br>
          Hope it helps<br>
          g<br>
        </font> <br>
        <div class="moz-cite-prefix">On 24/06/21 13:16, mabi wrote:<br>
        </div>
        <blockquote type="cite">
          <pre wrap="">Thanks Florian and GD for your answers.

I should have been more precise, I am looking into building a active/passive dual node Xen installation. I don't need active/active as I believe this is also more dangerous.

Also I was thinking that I would manually failover the VM whenever necessary in order not to rely on additional external tools such as corosync/pacemaker and hence avoid more complexity.

So as you notice, at least for a start, I am trying to keep things as simple as possible. If I understand correctly that should be possible with Xen and all I need is multipathd and CLVM, is this correct?

Then regarding CLVM, I checked Debian buster but could not find any CLVM-related pacakges. Is maybe CLVM not available on Debian?

Regards,
Mabi

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Thursday, June 24th, 2021 at 12:28 PM, Florian Heigl <a href="mailto:florian.heigl@gmail.com" rel="noreferrer nofollow noopener" moz-do-not-send="true">&lt;florian.heigl@gmail.com&gt;</a> wrote:

</pre>
          <blockquote type="cite">
            <pre wrap="">Hi,

you can look into solutions based on cLVM or OCFS2 + Corosync/Pacemaker.

Don't forget to set up multipathd so your system can handle the link/controller failovers.

This has been done, and also has been/is a commonplace solution. There is also lots of blog posts that you can dig up once you search the right way.

I would avoid running natively on SAN luns attached to VMs due the risk of "the cluster stack had an error / was misconfigured". If you'd failover manually that would be less of an issue. The clusters like Pacemaker can protect the VMs a bit using SCSI reservations.

There was also Remus for running 2 VMs in lockstep for HA, but that was expecting no shared storage and was never polished by anyone to be worthwhile for production use.

A fair warning: Most homegrown HA setups like they're done commonly in the ISP industry tend to blow up much more often than what a proper solution should be like.

It might be better to pick something pre-made for that purpose if you don't have the SAN/Cluster experience.

I.e. XenServer/XCP or Oracle VM3.

Good luck!

Florian

</pre>
            <blockquote type="cite">
              <pre wrap="">Am 24.06.2021 um 10:09 schrieb mabi <a href="mailto:mabi@protonmail.ch" rel="noreferrer nofollow noopener" moz-do-not-send="true">mabi@protonmail.ch</a>:

Hello,

Is it possible with Xen on Debian 10 to have two Xen servers both directly attached in a redundant way through HBA interfaces to a single SAN?

The goal here would be to achieve higher availability of the Vms in case one Xen server is down for maintenance or because it is defective. This would mean that the the virtual machines can continue to run on the second available Xen server. The SAN would be used to store the virtual machines images directly via LVM I guess.

I did not find any Xen documentation or third-party howtos in order to do that. Does anyone have any pointers to some documentation or hints? or maybe this is simply not possible?

Best regards,

Mabi
</pre>
            </blockquote>
          </blockquote>
        </blockquote>
        <br>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>

--------------7A06F62A309DA504DD337FD5--


From xen-users-bounces@lists.xenproject.org Mon Jun 28 00:09:29 2021
Return-path: <xen-users-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Jun 2021 00:09:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.147707.272543 (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lxepR-0001rQ-FP; Mon, 28 Jun 2021 00:08:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 147707.272543; Mon, 28 Jun 2021 00:08:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-users-bounces@lists.xenproject.org>)
	id 1lxepR-0001rF-Ag; Mon, 28 Jun 2021 00:08:45 +0000
Received: by outflank-mailman (input) for mailman id 147707;
 Mon, 28 Jun 2021 00:08:44 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LWn0=LW=gmail.com=chrismyers81@srs-us1.protection.inumbo.net>)
 id 1lxepP-0001r9-S8
 for xen-users@lists.xenproject.org; Mon, 28 Jun 2021 00:08:43 +0000
Received: from mail-pj1-x1031.google.com (unknown [2607:f8b0:4864:20::1031])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id e3a64f84-7865-4713-9f36-1c9c9276ad6c;
 Mon, 28 Jun 2021 00:08:43 +0000 (UTC)
Received: by mail-pj1-x1031.google.com with SMTP id
 22-20020a17090a0c16b0290164a5354ad0so11657453pjs.2
 for <xen-users@lists.xenproject.org>; Sun, 27 Jun 2021 17:08:43 -0700 (PDT)
X-BeenThere: xen-users@lists.xenproject.org
List-Id: Xen user discussion <xen-users.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-users@lists.xenproject.org>
List-Help: <mailto:xen-users-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-users>,
 <mailto:xen-users-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-users-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-users" <xen-users-bounces@lists.xenproject.org>
X-Inumbo-ID: e3a64f84-7865-4713-9f36-1c9c9276ad6c
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:from:date:message-id:subject:to;
        bh=aUEdIP3NKj+gMJqIT36EJiSxHIeYzwRBD50tXQxC3yc=;
        b=NWWYvWphzhnDLIl58Z5+sM/11viXYKcG2v2RWON4IVv/+RRZBImkiXyBM3BFZ9KCZR
         0/Vt6LwYUC6R/sfyLSedaX17KBs9W2aCwkr+aM8ylAPUbVa23R3ZD15hZwL5Cvy8eyXj
         QbkVawqKTIlzTylkZIuytrGznScLYGUbc3waBegjRvDXH+lU91OfhdmT36aa/np/Ffud
         mm98Ek+p3lqfw7GkgCoKXzFv9betBStgiIOfSecL1bu15MkoglBSD3pjSQ8o2NunSrBm
         aquX58oB7b+23+x8sBWElTu6RjdMJt+AJgbpwo97u31W5DjVT5J2QUJbUfGNoyXjGhWp
         /KpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
        bh=aUEdIP3NKj+gMJqIT36EJiSxHIeYzwRBD50tXQxC3yc=;
        b=FwQdVEoymmcc8eixV1J1/JKFxbCDZWK5Xnvnt/GKU747pgYOiv5wepN5e8pCl2huFW
         wMw3+MjMVAGvRpK4pWCg0UY+1PwJrHfuRqXU7oIRw5ABgMYFiAot7TG0Ydllqe5TJazl
         FflQ1uQRBVdz7YMfM2TjZ91GNUrVK2zV0qrpIvSYMoLTlmuAk5EUzEUbrvGiH/X9E1nu
         iZymbIRAagvqsb6y5ubH0FlRNtdiV1G1eUIP03RWcbQaZar87Z1srHx9ygEkBwM2Glgx
         LIi2e5RGFHig9zkjuFq3i0eF1mair95EqM0s3lQgiYTFJFSIERsIQdCzcHjFGtHGs55x
         fLPQ==
X-Gm-Message-State: AOAM533O+WuOS3Qv9Yn40kVsPlIantR4NGUE6Z8u00Ulxu8T/sgMUsJi
	QoYzHvGhlEQlgof/IS6uHzI16yo9q60ATnaZnaUEJJAQkpI=
X-Google-Smtp-Source: ABdhPJzLzRNYvgc3pETpQ2osvn7NHQNa8R9ukBgvRBkeSRkXvbFLyoQfV3qOy5d8dhjBar+38PAyNDenLKaAi6B81Tw=
X-Received: by 2002:a17:90b:4b4e:: with SMTP id mi14mr24693223pjb.195.1624838922257;
 Sun, 27 Jun 2021 17:08:42 -0700 (PDT)
MIME-Version: 1.0
From: Chris Myers <chrismyers81@gmail.com>
Date: Sun, 27 Jun 2021 19:08:31 -0500
Message-ID: <CADrndxPNfP0cAXa7rdgj8qbVgMwdzaYm4rmoiNP3YagQqJ8t=A@mail.gmail.com>
Subject: Xen Remus with network storage
To: xen-users@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000c7477105c5c84a1e"

--000000000000c7477105c5c84a1e
Content-Type: text/plain; charset="UTF-8"

Good afternoon!

I've been reading about using Remus (here:
https://wiki.xenproject.org/wiki/Getting_Started_with_Remus) and was
curious - I've currently got two Xen hosts hooked to an iscsi backend,
where the volumes are accessible on both hosts already. Live-migration
works well at this point. I was hoping to set up some HA for one of my VMs
(router/firewall), and was curious if it would be possible to use the Remus
functionality without disk replication (since that's already being
handled)? Would it be safe to walk through most of the steps, just not do
the "disk replication" step?

Chris

--000000000000c7477105c5c84a1e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Good afternoon!</div><div><br></div><div>I&#39;ve bee=
n reading about using Remus (here: <a href=3D"https://wiki.xenproject.org/w=
iki/Getting_Started_with_Remus">https://wiki.xenproject.org/wiki/Getting_St=
arted_with_Remus</a>) and was curious - I&#39;ve currently got two Xen host=
s hooked to an iscsi backend, where the volumes are accessible on both host=
s already. Live-migration works well at this point. I was hoping to set up =
some HA for one of my VMs (router/firewall), and was curious if it would be=
 possible to use the Remus functionality without disk replication (since th=
at&#39;s already being handled)? Would it be safe to walk through most of t=
he steps, just not do the &quot;disk replication&quot; step?<br></div><div>=
<br></div><div>Chris<br></div><div><br></div><div><br></div><br><br></div>

--000000000000c7477105c5c84a1e--


