From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C8E5C433F5 for ; Tue, 19 Apr 2022 17:12:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244442AbiDSROw (ORCPT ); Tue, 19 Apr 2022 13:14:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37914 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238334AbiDSROi (ORCPT ); Tue, 19 Apr 2022 13:14:38 -0400 Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD8FA3B3FB for ; Tue, 19 Apr 2022 10:11:17 -0700 (PDT) Received: by mail-lj1-x236.google.com with SMTP id c15so21346075ljr.9 for ; Tue, 19 Apr 2022 10:11:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=rxPYmQa0Egn1mqp1mSydb9Om/nZ3dlYXqwZ9ZJ/h6io=; b=dyWdHQ6Lc1rlJ6pELKH/xYiaKPOXoQ/YcCodyE8U8e8bJBI77zlMVC+Ki6HcNSpIeZ hJhP6IRzUA4XCB0CBu49/DWNC2kDBRY6Pb2V4fXowbHziawlTEuj1pobxjq4/74XRzHZ P04N+J4pxJESMwwUZ/O2VvJMUiPQiB31BKyfGR5KU7rbwgKt2kpcI8QRn/jUpuEzNlQZ BF26p8IN65HWr/A4mTBhF0ZoyuOAyjgP2gt0p0gmutZfrzGiFS/zwsWUARmd/Tsv9Yab gn1QKQyQzIc/sGsGr4aW/kVp0yTL+K/d22SwqK1Urv8YmJlhqe2Ogkij7yMTxIpxpxDV wp1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=rxPYmQa0Egn1mqp1mSydb9Om/nZ3dlYXqwZ9ZJ/h6io=; b=IqbBuLphMTNYh6gteRQXC6GgRQUeRjFdce0W4ezLODm2X3105mrPIkdlzAU+CYMsoC lO4LasWD59pIjV8hxSw2Yh9VGztHPXg4+V6qc6Ubn2euTOS9cfSLzgu5S6863bmLL4KH U3jS42G6Pmo+mBL9kR28Tl7pgXLHC33gpb5hWb9D63YuywefpiWt383VlJfzZPRWFssG KAogifZ9aPmC49LjaFsdjk2qVCmmWYNErSCy8xtKmSNOTyfPvYibcHz9qlYUWCZaZVBt Cwc87QTthYJ072vJDd7yXD6zem6Q+opfdnfZ7FNFbKon0J93V9hojQnHnORxZJo7jw4M orWw== X-Gm-Message-State: AOAM530y5OMFy4QMIqSPIB5MvAMIas+/Ac47sAR2+K5v0AdNFW706SAY UHt/kNEojNWiyZ2npBod9BA= X-Google-Smtp-Source: ABdhPJwgqbLh/VuZRiEY2WTuxX7nyZVaNDxdTGSqSrhHfcljZTAensAc3R99HsPQkc5LdCgC/gCgEw== X-Received: by 2002:a2e:9c43:0:b0:24b:469:2bb6 with SMTP id t3-20020a2e9c43000000b0024b04692bb6mr11327140ljj.248.1650388274392; Tue, 19 Apr 2022 10:11:14 -0700 (PDT) Received: from [192.168.1.7] ([212.22.223.21]) by smtp.gmail.com with ESMTPSA id s10-20020a19ad4a000000b0044826a25a2esm1559012lfd.292.2022.04.19.10.11.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 19 Apr 2022 10:11:14 -0700 (PDT) Subject: Re: [RFC PATCH 6/6] arm/xen: Assign xen-virtio DMA ops for virtio devices in Xen guests To: Juergen Gross , Stefano Stabellini Cc: Christoph Hellwig , xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Oleksandr Tyshchenko , Boris Ostrovsky , Julien Grall , "Michael S. Tsirkin" References: <1649963973-22879-1-git-send-email-olekstysh@gmail.com> <1649963973-22879-7-git-send-email-olekstysh@gmail.com> <6a04cc34-fbb3-44d8-c1a4-03bda5b3deb1@gmail.com> From: Oleksandr Message-ID: <5afb9e61-4164-9cc9-278a-911fc21f4f6c@gmail.com> Date: Tue, 19 Apr 2022 20:11:12 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Stefano, Juergen On 19.04.22 17:48, Juergen Gross wrote: > On 19.04.22 14:17, Oleksandr wrote: >> >> Hello Stefano, Juergen >> >> >> On 18.04.22 22:11, Stefano Stabellini wrote: >>> On Mon, 18 Apr 2022, Oleksandr wrote: >>>> On 16.04.22 09:07, Christoph Hellwig wrote: >>>> >>>> Hello Christoph >>>> >>>>> On Fri, Apr 15, 2022 at 03:02:45PM -0700, Stefano Stabellini wrote: >>>>>> This makes sense overall. Considering that the swiotlb-xen case >>>>>> and the >>>>>> virtio case are mutually exclusive, I would write it like this: >>>>> Curious question:  Why can't the same grant scheme also be used for >>>>> non-virtio devices?  I really hate having virtio hooks in the arch >>>>> dma code.  Why can't Xen just say in DT/ACPI that grants can be used >>>>> for a given device? >>> [...] >>> >>>> This patch series tries to make things work with "virtio" devices >>>> in Xen >>>> system without introducing any modifications to code under >>>> drivers/virtio. >>> >>> Actually, I think Christoph has a point. >>> >>> There is nothing inherently virtio specific in this patch series or in >>> the "xen,dev-domid" device tree binding. >> >> >> Although the main intention of this series was to enable using virtio >> devices in Xen guests, I agree that nothing in new DMA ops layer >> (xen-virtio.c) is virtio specific (at least at the moment). Regarding >> the whole patch series I am not quite sure, as it uses >> arch_has_restricted_virtio_memory_access(). > >>>   Assuming a given device is >>> emulated by a Xen backend, it could be used with grants as well. >>> >>> For instance, we could provide an emulated e1000 NIC with a >>> "xen,dev-domid" property in device tree. Linux could use grants with it >>> and the backend could map the grants. It would work the same way as >>> virtio-net/block/etc. Passthrough devices wouldn't have the >>> "xen,dev-domid" property, so no problems. >>> >>> So I think we could easily generalize this work and expand it to any >>> device. We just need to hook on the "xen,dev-domid" device tree >>> property. >>> >>> I think it is just a matter of: >>> - remove the "virtio,mmio" check from xen_is_virtio_device >>> - rename xen_is_virtio_device to something more generic, like >>>    xen_is_grants_device > > xen_is_grants_dma_device, please. Normal Xen PV devices are covered by > grants, too, and I'd like to avoid the confusion arising from this. yes, this definitely makes sense as we need to distinguish > > >>> - rename xen_virtio_setup_dma_ops to something more generic, like >>>    xen_grants_setup_dma_ops >>> >>> And that's pretty much it. >> >> + likely renaming everything in that patch series not to mention >> virtio (mostly related to xen-virtio.c internals). >> >> >> Stefano, thank you for clarifying Christoph's point. >> >> Well, I am not against going this direction. Could we please make a >> decision on this? @Juergen, what is your opinion? > > Yes, why not. ok, thank you for confirming. > > > Maybe rename xen-virtio.c to grant-dma.c? Personally I don't mind. > > I'd keep the XEN_VIRTIO related config option, as this will be the > normal use > case. grant-dma.c should be covered by a new hidden config option > XEN_GRANT_DMA > selected by XEN_VIRTIO. I got it, ok > > > CONFIG_XEN_VIRTIO should still guard > xen_has_restricted_virtio_memory_access(). ok So a few questions to clarify: 1. What is the best place to keep "xen,dev-domid" binding's description now? I think that proposed in current series place (Documentation/devicetree/bindings/virtio/) is not good fit now. 2. I assume the logic in the current patch will remain the same, I mean we will still assign Xen grant DMA ops from xen_setup_dma_ops() here? > > > > Juergen -- Regards, Oleksandr Tyshchenko From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8E066C433F5 for ; Tue, 19 Apr 2022 17:39:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=oJMsT7mV1OQ86Zq87WLUijEYvO2cT/Eb8+0KD5orToo=; b=BL1/ck437c20KVEhkaDPcXKwQo gHTy+iAuJ6cSKkj/6HAIJTvvBrTNFXN43VbOcBoBofwB+NNrAZA3Mcy4HaFzi8M4kfdfIUJZ+NuJ+ 7sRwi1ybOFVALHB7BCxD3rDvXJQTJVCg7dM31bXWj7Yg4PGg4j8f1TRJDcjWE2PObqSbDKRrMTzGC +a57v0XjS15UVgd0pd/1Z9QZR7YkLr86+PctPr3KPuVzZkOPAAKXqD2RdU6WXs9UnCwfSJXiAm8wI SoJ9LDsjrnnagMLILbCeX37/+OxwCHnMs0plyizt1JDLAr/7BMMV90jcnCiZsQ+bpU6LwiNM3T/Oe Lbv8z8GQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ngrnW-005NTb-Cl; Tue, 19 Apr 2022 17:37:54 +0000 Received: from mail-lj1-x232.google.com ([2a00:1450:4864:20::232]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ngrNn-005BYt-AL for linux-arm-kernel@lists.infradead.org; Tue, 19 Apr 2022 17:11:26 +0000 Received: by mail-lj1-x232.google.com with SMTP id r18so21402324ljp.0 for ; Tue, 19 Apr 2022 10:11:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=rxPYmQa0Egn1mqp1mSydb9Om/nZ3dlYXqwZ9ZJ/h6io=; b=dyWdHQ6Lc1rlJ6pELKH/xYiaKPOXoQ/YcCodyE8U8e8bJBI77zlMVC+Ki6HcNSpIeZ hJhP6IRzUA4XCB0CBu49/DWNC2kDBRY6Pb2V4fXowbHziawlTEuj1pobxjq4/74XRzHZ P04N+J4pxJESMwwUZ/O2VvJMUiPQiB31BKyfGR5KU7rbwgKt2kpcI8QRn/jUpuEzNlQZ BF26p8IN65HWr/A4mTBhF0ZoyuOAyjgP2gt0p0gmutZfrzGiFS/zwsWUARmd/Tsv9Yab gn1QKQyQzIc/sGsGr4aW/kVp0yTL+K/d22SwqK1Urv8YmJlhqe2Ogkij7yMTxIpxpxDV wp1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=rxPYmQa0Egn1mqp1mSydb9Om/nZ3dlYXqwZ9ZJ/h6io=; b=WllS2dB+U7v/bBkFaHpoYZE6DoddJDIRADSt49/taCk7IivmvuDhrE/3apqe8mW6M5 +apVmACKsep9S7bBJmFnKLSs8ea7/dbm78YZgVh6q3R86f3nmdMPg3i8xqsTaFf4SPLq mepfIWUVmFIrbns+vIwBLEhzF5RbasAUNK31VtOaxRSyD/9sKo9rFPSROQh2uc81Gqxo oRj8T92p8L4Nl+Ro1MfDRRK3gu6jqIJVMX4TYLl61SyinXuD1cbVyAAHDh21m2hLb2tT KiFuVwu/lMGqDUufKTip2fz48IsnnBluKikDNSlWR3LE2HGcPG0fchZdmK4/1gnKiZYo NjnQ== X-Gm-Message-State: AOAM532vuaFLh4pwYvhvQyrLuoNdMdpivDgcBU5yoq/QH5WEo3F4uyqs 0JCJWaGs2ugu8587e59mYJw= X-Google-Smtp-Source: ABdhPJwgqbLh/VuZRiEY2WTuxX7nyZVaNDxdTGSqSrhHfcljZTAensAc3R99HsPQkc5LdCgC/gCgEw== X-Received: by 2002:a2e:9c43:0:b0:24b:469:2bb6 with SMTP id t3-20020a2e9c43000000b0024b04692bb6mr11327140ljj.248.1650388274392; Tue, 19 Apr 2022 10:11:14 -0700 (PDT) Received: from [192.168.1.7] ([212.22.223.21]) by smtp.gmail.com with ESMTPSA id s10-20020a19ad4a000000b0044826a25a2esm1559012lfd.292.2022.04.19.10.11.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 19 Apr 2022 10:11:14 -0700 (PDT) Subject: Re: [RFC PATCH 6/6] arm/xen: Assign xen-virtio DMA ops for virtio devices in Xen guests To: Juergen Gross , Stefano Stabellini Cc: Christoph Hellwig , xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Oleksandr Tyshchenko , Boris Ostrovsky , Julien Grall , "Michael S. Tsirkin" References: <1649963973-22879-1-git-send-email-olekstysh@gmail.com> <1649963973-22879-7-git-send-email-olekstysh@gmail.com> <6a04cc34-fbb3-44d8-c1a4-03bda5b3deb1@gmail.com> From: Oleksandr Message-ID: <5afb9e61-4164-9cc9-278a-911fc21f4f6c@gmail.com> Date: Tue, 19 Apr 2022 20:11:12 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220419_101119_436983_8B49198E X-CRM114-Status: GOOD ( 34.11 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CkhlbGxvIFN0ZWZhbm8sIEp1ZXJnZW4KCgpPbiAxOS4wNC4yMiAxNzo0OCwgSnVlcmdlbiBHcm9z cyB3cm90ZToKPiBPbiAxOS4wNC4yMiAxNDoxNywgT2xla3NhbmRyIHdyb3RlOgo+Pgo+PiBIZWxs byBTdGVmYW5vLCBKdWVyZ2VuCj4+Cj4+Cj4+IE9uIDE4LjA0LjIyIDIyOjExLCBTdGVmYW5vIFN0 YWJlbGxpbmkgd3JvdGU6Cj4+PiBPbiBNb24sIDE4IEFwciAyMDIyLCBPbGVrc2FuZHIgd3JvdGU6 Cj4+Pj4gT24gMTYuMDQuMjIgMDk6MDcsIENocmlzdG9waCBIZWxsd2lnIHdyb3RlOgo+Pj4+Cj4+ Pj4gSGVsbG8gQ2hyaXN0b3BoCj4+Pj4KPj4+Pj4gT24gRnJpLCBBcHIgMTUsIDIwMjIgYXQgMDM6 MDI6NDVQTSAtMDcwMCwgU3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOgo+Pj4+Pj4gVGhpcyBtYWtl cyBzZW5zZSBvdmVyYWxsLiBDb25zaWRlcmluZyB0aGF0IHRoZSBzd2lvdGxiLXhlbiBjYXNlIAo+ Pj4+Pj4gYW5kIHRoZQo+Pj4+Pj4gdmlydGlvIGNhc2UgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSwg SSB3b3VsZCB3cml0ZSBpdCBsaWtlIHRoaXM6Cj4+Pj4+IEN1cmlvdXMgcXVlc3Rpb246wqAgV2h5 IGNhbid0IHRoZSBzYW1lIGdyYW50IHNjaGVtZSBhbHNvIGJlIHVzZWQgZm9yCj4+Pj4+IG5vbi12 aXJ0aW8gZGV2aWNlcz/CoCBJIHJlYWxseSBoYXRlIGhhdmluZyB2aXJ0aW8gaG9va3MgaW4gdGhl IGFyY2gKPj4+Pj4gZG1hIGNvZGUuwqAgV2h5IGNhbid0IFhlbiBqdXN0IHNheSBpbiBEVC9BQ1BJ IHRoYXQgZ3JhbnRzIGNhbiBiZSB1c2VkCj4+Pj4+IGZvciBhIGdpdmVuIGRldmljZT8KPj4+IFsu Li5dCj4+Pgo+Pj4+IFRoaXMgcGF0Y2ggc2VyaWVzIHRyaWVzIHRvIG1ha2UgdGhpbmdzIHdvcmsg d2l0aCAidmlydGlvIiBkZXZpY2VzIAo+Pj4+IGluIFhlbgo+Pj4+IHN5c3RlbSB3aXRob3V0IGlu dHJvZHVjaW5nIGFueSBtb2RpZmljYXRpb25zIHRvIGNvZGUgdW5kZXIgCj4+Pj4gZHJpdmVycy92 aXJ0aW8uCj4+Pgo+Pj4gQWN0dWFsbHksIEkgdGhpbmsgQ2hyaXN0b3BoIGhhcyBhIHBvaW50Lgo+ Pj4KPj4+IFRoZXJlIGlzIG5vdGhpbmcgaW5oZXJlbnRseSB2aXJ0aW8gc3BlY2lmaWMgaW4gdGhp cyBwYXRjaCBzZXJpZXMgb3IgaW4KPj4+IHRoZSAieGVuLGRldi1kb21pZCIgZGV2aWNlIHRyZWUg YmluZGluZy4KPj4KPj4KPj4gQWx0aG91Z2ggdGhlIG1haW4gaW50ZW50aW9uIG9mIHRoaXMgc2Vy aWVzIHdhcyB0byBlbmFibGUgdXNpbmcgdmlydGlvIAo+PiBkZXZpY2VzIGluIFhlbiBndWVzdHMs IEkgYWdyZWUgdGhhdCBub3RoaW5nIGluIG5ldyBETUEgb3BzIGxheWVyIAo+PiAoeGVuLXZpcnRp by5jKSBpcyB2aXJ0aW8gc3BlY2lmaWMgKGF0IGxlYXN0IGF0IHRoZSBtb21lbnQpLiBSZWdhcmRp bmcgCj4+IHRoZSB3aG9sZSBwYXRjaCBzZXJpZXMgSSBhbSBub3QgcXVpdGUgc3VyZSwgYXMgaXQg dXNlcyAKPj4gYXJjaF9oYXNfcmVzdHJpY3RlZF92aXJ0aW9fbWVtb3J5X2FjY2VzcygpLiA+Cj4+ PiDCoCBBc3N1bWluZyBhIGdpdmVuIGRldmljZSBpcwo+Pj4gZW11bGF0ZWQgYnkgYSBYZW4gYmFj a2VuZCwgaXQgY291bGQgYmUgdXNlZCB3aXRoIGdyYW50cyBhcyB3ZWxsLgo+Pj4KPj4+IEZvciBp bnN0YW5jZSwgd2UgY291bGQgcHJvdmlkZSBhbiBlbXVsYXRlZCBlMTAwMCBOSUMgd2l0aCBhCj4+ PiAieGVuLGRldi1kb21pZCIgcHJvcGVydHkgaW4gZGV2aWNlIHRyZWUuIExpbnV4IGNvdWxkIHVz ZSBncmFudHMgd2l0aCBpdAo+Pj4gYW5kIHRoZSBiYWNrZW5kIGNvdWxkIG1hcCB0aGUgZ3JhbnRz LiBJdCB3b3VsZCB3b3JrIHRoZSBzYW1lIHdheSBhcwo+Pj4gdmlydGlvLW5ldC9ibG9jay9ldGMu IFBhc3N0aHJvdWdoIGRldmljZXMgd291bGRuJ3QgaGF2ZSB0aGUKPj4+ICJ4ZW4sZGV2LWRvbWlk IiBwcm9wZXJ0eSwgc28gbm8gcHJvYmxlbXMuCj4+Pgo+Pj4gU28gSSB0aGluayB3ZSBjb3VsZCBl YXNpbHkgZ2VuZXJhbGl6ZSB0aGlzIHdvcmsgYW5kIGV4cGFuZCBpdCB0byBhbnkKPj4+IGRldmlj ZS4gV2UganVzdCBuZWVkIHRvIGhvb2sgb24gdGhlICJ4ZW4sZGV2LWRvbWlkIiBkZXZpY2UgdHJl ZQo+Pj4gcHJvcGVydHkuCj4+Pgo+Pj4gSSB0aGluayBpdCBpcyBqdXN0IGEgbWF0dGVyIG9mOgo+ Pj4gLSByZW1vdmUgdGhlICJ2aXJ0aW8sbW1pbyIgY2hlY2sgZnJvbSB4ZW5faXNfdmlydGlvX2Rl dmljZQo+Pj4gLSByZW5hbWUgeGVuX2lzX3ZpcnRpb19kZXZpY2UgdG8gc29tZXRoaW5nIG1vcmUg Z2VuZXJpYywgbGlrZQo+Pj4gwqDCoCB4ZW5faXNfZ3JhbnRzX2RldmljZQo+Cj4geGVuX2lzX2dy YW50c19kbWFfZGV2aWNlLCBwbGVhc2UuIE5vcm1hbCBYZW4gUFYgZGV2aWNlcyBhcmUgY292ZXJl ZCBieQo+IGdyYW50cywgdG9vLCBhbmQgSSdkIGxpa2UgdG8gYXZvaWQgdGhlIGNvbmZ1c2lvbiBh cmlzaW5nIGZyb20gdGhpcy4KCgp5ZXMsIHRoaXMgZGVmaW5pdGVseSBtYWtlcyBzZW5zZSBhcyB3 ZSBuZWVkIHRvIGRpc3Rpbmd1aXNoCgoKPgo+Cj4+PiAtIHJlbmFtZSB4ZW5fdmlydGlvX3NldHVw X2RtYV9vcHMgdG8gc29tZXRoaW5nIG1vcmUgZ2VuZXJpYywgbGlrZQo+Pj4gwqDCoCB4ZW5fZ3Jh bnRzX3NldHVwX2RtYV9vcHMKPj4+Cj4+PiBBbmQgdGhhdCdzIHByZXR0eSBtdWNoIGl0Lgo+Pgo+ PiArIGxpa2VseSByZW5hbWluZyBldmVyeXRoaW5nIGluIHRoYXQgcGF0Y2ggc2VyaWVzIG5vdCB0 byBtZW50aW9uIAo+PiB2aXJ0aW8gKG1vc3RseSByZWxhdGVkIHRvIHhlbi12aXJ0aW8uYyBpbnRl cm5hbHMpLgo+Pgo+Pgo+PiBTdGVmYW5vLCB0aGFuayB5b3UgZm9yIGNsYXJpZnlpbmcgQ2hyaXN0 b3BoJ3MgcG9pbnQuCj4+Cj4+IFdlbGwsIEkgYW0gbm90IGFnYWluc3QgZ29pbmcgdGhpcyBkaXJl Y3Rpb24uIENvdWxkIHdlIHBsZWFzZSBtYWtlIGEgCj4+IGRlY2lzaW9uIG9uIHRoaXM/IEBKdWVy Z2VuLCB3aGF0IGlzIHlvdXIgb3Bpbmlvbj8KPgo+IFllcywgd2h5IG5vdC4KCgpvaywgdGhhbmsg eW91IGZvciBjb25maXJtaW5nLgoKCj4KPgo+IE1heWJlIHJlbmFtZSB4ZW4tdmlydGlvLmMgdG8g Z3JhbnQtZG1hLmM/CgoKUGVyc29uYWxseSBJIGRvbid0IG1pbmQuCgoKPgo+IEknZCBrZWVwIHRo ZSBYRU5fVklSVElPIHJlbGF0ZWQgY29uZmlnIG9wdGlvbiwgYXMgdGhpcyB3aWxsIGJlIHRoZSAK PiBub3JtYWwgdXNlCj4gY2FzZS4gZ3JhbnQtZG1hLmMgc2hvdWxkIGJlIGNvdmVyZWQgYnkgYSBu ZXcgaGlkZGVuIGNvbmZpZyBvcHRpb24gCj4gWEVOX0dSQU5UX0RNQQo+IHNlbGVjdGVkIGJ5IFhF Tl9WSVJUSU8uCgoKSSBnb3QgaXQsIG9rCgoKPgo+Cj4gQ09ORklHX1hFTl9WSVJUSU8gc2hvdWxk IHN0aWxsIGd1YXJkIAo+IHhlbl9oYXNfcmVzdHJpY3RlZF92aXJ0aW9fbWVtb3J5X2FjY2Vzcygp LgoKCm9rCgoKU28gYSBmZXcgcXVlc3Rpb25zIHRvIGNsYXJpZnk6CgoxLiBXaGF0IGlzIHRoZSBi ZXN0IHBsYWNlIHRvIGtlZXAgInhlbixkZXYtZG9taWQiIGJpbmRpbmcncyBkZXNjcmlwdGlvbiAK bm93PyBJIHRoaW5rIHRoYXQgcHJvcG9zZWQgaW4gY3VycmVudCBzZXJpZXMgcGxhY2UgCihEb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmlydGlvLykgaXMgbm90IGdvb2QgZml0IG5v dy4KCjIuIEkgYXNzdW1lIHRoZSBsb2dpYyBpbiB0aGUgY3VycmVudCBwYXRjaCB3aWxsIHJlbWFp biB0aGUgc2FtZSwgSSBtZWFuIAp3ZSB3aWxsIHN0aWxsIGFzc2lnbiBYZW4gZ3JhbnQgRE1BIG9w cyBmcm9tIHhlbl9zZXR1cF9kbWFfb3BzKCkgaGVyZT8KCgo+Cj4KPgo+IEp1ZXJnZW4KCi0tIApS ZWdhcmRzLAoKT2xla3NhbmRyIFR5c2hjaGVua28KCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==