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 X-Spam-Level: X-Spam-Status: No, score=-21.9 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15707C4320A for ; Fri, 6 Aug 2021 20:32:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EE7F761179 for ; Fri, 6 Aug 2021 20:32:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243804AbhHFUcj (ORCPT ); Fri, 6 Aug 2021 16:32:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55340 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230031AbhHFUci (ORCPT ); Fri, 6 Aug 2021 16:32:38 -0400 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24471C0613CF; Fri, 6 Aug 2021 13:32:21 -0700 (PDT) Received: by mail-lf1-x12c.google.com with SMTP id g30so15985757lfv.4; Fri, 06 Aug 2021 13:32:21 -0700 (PDT) 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:content-transfer-encoding; bh=C/zVNo/1ZCFRtL7GmaLSDm/O5uxdaQR4GtHKkpGKHTo=; b=McohqyqIsPlz8TRo8X71J5c357MvKWJurxAqO48dFG2SWc/0yiRM2PIlwGIXT4Iclx 565lxeyg7Zgk7mGVtTwn3zfibdD6sDPTRD/SPf2c/wpqkYYu9eMfJhAF4Kn5iltNbFK0 a16liBaVL1hybwxaJln5gJ/qCfBLVqLPae8ei/wYLzXk3GRP8MImdwOW7NXv8VDninq1 Tfjmj4DFBDqYf862eJZPRXlj3MBnnO93kQXN2uAQR+S/Bv5zNw33YlkOLQVOzyRSWhUs ps/64awGy8J/MwmGYx/aM6BfgeaHcuJGfEzvNcKVYd88MX7kr8oyMijT1rOA0/jy42Lo W4YA== 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 :content-transfer-encoding; bh=C/zVNo/1ZCFRtL7GmaLSDm/O5uxdaQR4GtHKkpGKHTo=; b=jM3nJcdkEEIU1rG1G1oLSgix1kDh8/jE1oprXhHoZ1ZNV1VQG/bI74dheKOoeFDuUp PKkMF6tdiz7aWJNT5Y6HnUdX1YYrAci4QCSN11Ker2dch7LmNM2/Oh6YCuzhLxQXspzH 8rapQ6DO6cQHPTmltLe2S8lNWhqViKwxxtgebZV3kBntGOO1ZNbTmofSf/ZJy0RDOVKB pOD4F5+5sRQ4bXp3neoKAS2x+Fed3ckMEZwKMCy+/L4JUs7kz7XcGcTWtmvoukuGTShU zB5HGx7VM6mu12IDQOQPQc7uuGAodXr0O3e+tAd4P8YBUoiZlY8uRJphkOdphHdcCeSz AQQQ== X-Gm-Message-State: AOAM533ylYHKVBidDBAauYOYKxqv0bgcW+WGxOhH2bUd1z63nhU56lOG G5uHqA4kGcRCWduJXdrUGEXoE13y4t0JKA== X-Google-Smtp-Source: ABdhPJzaNnNjy1MXRjvBCgoiexsEu605DKEQ8aNo7pAnbk4xE3QEeTahwhSWiy8McXseAVii1SCvmw== X-Received: by 2002:ac2:57cd:: with SMTP id k13mr9092414lfo.117.1628281939048; Fri, 06 Aug 2021 13:32:19 -0700 (PDT) Received: from ?IPv6:2a02:a315:4139:be00:71e7:1ee1:196a:5bbb? ([2a02:a315:4139:be00:71e7:1ee1:196a:5bbb]) by smtp.gmail.com with ESMTPSA id h1sm543751ljc.50.2021.08.06.13.32.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 06 Aug 2021 13:32:18 -0700 (PDT) Subject: Re: [PATCH 12/12] arm64: dts: exynos: Add Exynos850 SoC support To: Krzysztof Kozlowski , Sam Protsenko Cc: Sylwester Nawrocki , Chanwoo Choi , Linus Walleij , Tomasz Figa , Rob Herring , Stephen Boyd , Michael Turquette , Jiri Slaby , Greg Kroah-Hartman , Charles Keepax , Ryu Euiyoul , Tom Gall , Sumit Semwal , John Stultz , Amit Pundir , devicetree , linux-arm Mailing List , linux-clk , "open list:GPIO SUBSYSTEM" , Linux Kernel Mailing List , Linux Samsung SOC , "open list:SERIAL DRIVERS" References: <20210730144922.29111-1-semen.protsenko@linaro.org> <20210730144922.29111-13-semen.protsenko@linaro.org> <455cfb5e-dff7-a5c0-3875-49abe3e900f3@canonical.com> <68734f6c-fc76-595c-8d34-8924dbbbb845@canonical.com> From: =?UTF-8?Q?Pawe=c5=82_Chmiel?= Message-ID: <50f84842-c397-8012-af95-e9d9fce53162@gmail.com> Date: Fri, 6 Aug 2021 22:32:16 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org W dniu 06.08.2021 o 14:32, Krzysztof Kozlowski pisze: > On 06/08/2021 14:07, Sam Protsenko wrote: >> On Fri, 6 Aug 2021 at 10:49, Krzysztof Kozlowski >> wrote: >>> >>> On 06/08/2021 01:06, Sam Protsenko wrote: >>>> On Sat, 31 Jul 2021 at 12:03, Krzysztof Kozlowski >>>> wrote: >>>> >>>>>> >>>>>> This patch adds minimal SoC support. Particular board device tree files >>>>>> can include exynos850.dtsi file to get SoC related nodes, and then >>>>>> reference those nodes further as needed. >>>>>> >>>>>> Signed-off-by: Sam Protsenko >>>>>> --- >>>>>> .../boot/dts/exynos/exynos850-pinctrl.dtsi | 782 ++++++++++++++++++ >>>>>> arch/arm64/boot/dts/exynos/exynos850-usi.dtsi | 30 + >>>>>> arch/arm64/boot/dts/exynos/exynos850.dtsi | 245 ++++++ >>>>> >>>>> Not buildable. Missing Makefile, missing DTS. Please submit with initial >>>>> DTS, otherwise no one is able to verify it even compiles. >>>>> >>>> >>>> This device is not available for purchase yet. I'll send the patch for >>>> board dts once it's announced. I can do all the testing for now, if >>>> you have any specific requests. Would it be possible for us to review >>>> and apply only SoC support for now? Will send v2 soon... >>> >>> What you propose is equal to adding a driver (C source code) without >>> ability to compile it. What's the point of having it in the kernel? It's >>> unverifiable, unbuildable and unusable. >>> >> >> Yes, I understand. That's adding code with no users, and it's not a >> good practice. >> >>> We can review the DTSI however merging has to be with a DTS. Usually the >>> SoC vendor adds first an evalkit (e.g. SMDK board). Maybe you have one >>> for Exynos850? Otherwise if you cannot disclose the actual board, the >>> DTSI will have to wait. You can submit drivers, though. >>> >> >> Sure, let's go this way. I'll send v2 soon. Improving patches and >> having Reviewed-by tag for those would good enough for me at this >> point. I'll continue to prepare another Exynos850 related patches >> until the actual board is announced, like proper clock driver, reset, >> MMC, etc. Is it ok if I send those for a review too (so I can fix all >> issues ahead)? > > Sure, prepare all necessary drivers earlier. I suspect clocks will be a > real pain because of significant changes modeled in vendor kernel. I > remember Paweł Chmiel (+Cc) was doing something for these: > https://github.com/PabloPL/linux/tree/exynos7420 > > I mentioned before - you should also modify the chipid driver. Check > also other drivers in drivers/soc/samsung, although some are needed only > for suspend&resume. > > BTW, Paweł, > How is your Exynos7420 progress? :) Hi Sadly i had to postpone it for a while. Maybe will have more time now to get back to it. About clock driver. In vendor sources there is clk driver with something called virtual clocks (different than real ones). That driver calls another driver called pwrcal, responsible for real manipulation of clocks in hardware. This one has info about real clocks and also additional info about for example rate for some of them, which is read from binary from memory, by another driver called ect_parser in case of devices at which i did looked. In my case i was able to find some more info about real clocks there - for example register names and offsets https://github.com/krzk/linux-vendor-backup/blob/mokee/android-3.18-samsung-galaxy-s7-sm-g930f-exynos8890/drivers/soc/samsung/pwrcal/S5E8890/S5E8890-cmusfr.h and some clocks hierarchy info inside https://github.com/krzk/linux-vendor-backup/blob/mokee/android-3.18-samsung-galaxy-s7-sm-g930f-exynos8890/drivers/soc/samsung/pwrcal/S5E8890/S5E8890-cmu.c but there was still many info missing. Finding a way (which could be applied to other Exynos SOC) to "convert" or use that vendor code and turn it into mainline driver, especially without TRM which is not available for all/most of them, would be great. I'm wondering if Exynos850 device has the same issue as on 7420 (and probably 8890/7578 and maybe also other 64 bit Exynos devices) - broken firmware. For example i had to specify in dts timer clock frequency, on few devices there is also a problem with timer registers not properly configured by FW, which probably won't be fixed by vendor and patches with workaround for it in kernel were rejected :/. > >> And should I maybe add RFC tag for those? > > No need. Drivers can be merged before DTS users. > > Best regards, > Krzysztof > 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 X-Spam-Level: X-Spam-Status: No, score=-19.9 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 68D37C4338F for ; Fri, 6 Aug 2021 20:34:27 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 20B6D61163 for ; Fri, 6 Aug 2021 20:34:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 20B6D61163 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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=HHsGeUmvH+Qp2ZyrG6MEl6cEnsmm7A239zo5Qu+Gwek=; b=EoLcMk4LxdhT9642vmAEtb1m/Q RSt4RFJzLQcC1b2dh6d8BX1IA0DHK5PKCbYSRfMDuTIVQbGg0DYV8S9tfo9skTo+eibSnxYnABqCF ZW5fCIvzfwqC/nuwjkdVkVGPrjeFFqEAddIt6LtaDErcmNLLAZQJXaZ4em/Z7/n/55vr0oNYQaSRu AkHcOgNc4sT/QARAO1JyUXezkBHa2FUHRC2/FEQcHqaGN+Yv8+DMunEEjI/ro2cEqMcM5X74TAgn2 wig1EITgvrCNTt676O2Ct5i8H3/W6YWbv2UzD3+f3NlA6mgTDRjNpHdLZ3iVsMw2/pyUK546XgZAB hC7s4zUg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mC6W1-00DVBJ-I4; Fri, 06 Aug 2021 20:32:25 +0000 Received: from mail-lf1-x132.google.com ([2a00:1450:4864:20::132]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mC6Vx-00DVAn-ET for linux-arm-kernel@lists.infradead.org; Fri, 06 Aug 2021 20:32:23 +0000 Received: by mail-lf1-x132.google.com with SMTP id z2so3465693lft.1 for ; Fri, 06 Aug 2021 13:32:20 -0700 (PDT) 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:content-transfer-encoding; bh=C/zVNo/1ZCFRtL7GmaLSDm/O5uxdaQR4GtHKkpGKHTo=; b=McohqyqIsPlz8TRo8X71J5c357MvKWJurxAqO48dFG2SWc/0yiRM2PIlwGIXT4Iclx 565lxeyg7Zgk7mGVtTwn3zfibdD6sDPTRD/SPf2c/wpqkYYu9eMfJhAF4Kn5iltNbFK0 a16liBaVL1hybwxaJln5gJ/qCfBLVqLPae8ei/wYLzXk3GRP8MImdwOW7NXv8VDninq1 Tfjmj4DFBDqYf862eJZPRXlj3MBnnO93kQXN2uAQR+S/Bv5zNw33YlkOLQVOzyRSWhUs ps/64awGy8J/MwmGYx/aM6BfgeaHcuJGfEzvNcKVYd88MX7kr8oyMijT1rOA0/jy42Lo W4YA== 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 :content-transfer-encoding; bh=C/zVNo/1ZCFRtL7GmaLSDm/O5uxdaQR4GtHKkpGKHTo=; b=YdaktvvjQeWsxWEkMXeCF1U3D1buHYFfMOUcNmCUPhnRq3ijdfYSOhd1o6Hiz/etH2 a/yyaBOaMVyPr8t1WSi7JDLRpAthrzmzeWKscRk8/GI7K0VVILplf237OMaD0LoOXt9v Ab2a0+shYM2UJGmnzZwmU3/m3gYYWzWjxddnww2+gI0EFTxaxkEAULYoGDZPQWDfTiic adtvf5aSN19KqSMJIzEqq6TH7R1or121WK+TulHUsc61wc+mWnwFGxVWlxAhHUC5VxsB T2DvaYjIKGXiqWzjyZZVE+aOh0kjyUTY+GLifDIRcFIuW8e7mD8d5JOsqLS1F9CPxnNZ bNvg== X-Gm-Message-State: AOAM5306QU34rD6rFF1oayHb8S4rD50iAkif9g4o/O9ZQZ9kx58w80u1 T4aUCYCU64G3NlU/PWpUpjc= X-Google-Smtp-Source: ABdhPJzaNnNjy1MXRjvBCgoiexsEu605DKEQ8aNo7pAnbk4xE3QEeTahwhSWiy8McXseAVii1SCvmw== X-Received: by 2002:ac2:57cd:: with SMTP id k13mr9092414lfo.117.1628281939048; Fri, 06 Aug 2021 13:32:19 -0700 (PDT) Received: from ?IPv6:2a02:a315:4139:be00:71e7:1ee1:196a:5bbb? ([2a02:a315:4139:be00:71e7:1ee1:196a:5bbb]) by smtp.gmail.com with ESMTPSA id h1sm543751ljc.50.2021.08.06.13.32.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 06 Aug 2021 13:32:18 -0700 (PDT) Subject: Re: [PATCH 12/12] arm64: dts: exynos: Add Exynos850 SoC support To: Krzysztof Kozlowski , Sam Protsenko Cc: Sylwester Nawrocki , Chanwoo Choi , Linus Walleij , Tomasz Figa , Rob Herring , Stephen Boyd , Michael Turquette , Jiri Slaby , Greg Kroah-Hartman , Charles Keepax , Ryu Euiyoul , Tom Gall , Sumit Semwal , John Stultz , Amit Pundir , devicetree , linux-arm Mailing List , linux-clk , "open list:GPIO SUBSYSTEM" , Linux Kernel Mailing List , Linux Samsung SOC , "open list:SERIAL DRIVERS" References: <20210730144922.29111-1-semen.protsenko@linaro.org> <20210730144922.29111-13-semen.protsenko@linaro.org> <455cfb5e-dff7-a5c0-3875-49abe3e900f3@canonical.com> <68734f6c-fc76-595c-8d34-8924dbbbb845@canonical.com> From: =?UTF-8?Q?Pawe=c5=82_Chmiel?= Message-ID: <50f84842-c397-8012-af95-e9d9fce53162@gmail.com> Date: Fri, 6 Aug 2021 22:32:16 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.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-20210806_133221_540639_13B784DB X-CRM114-Status: GOOD ( 29.88 ) 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 VyBkbml1IDA2LjA4LjIwMjEgb8KgMTQ6MzIsIEtyenlzenRvZiBLb3psb3dza2kgcGlzemU6Cj4g T24gMDYvMDgvMjAyMSAxNDowNywgU2FtIFByb3RzZW5rbyB3cm90ZToKPj4gT24gRnJpLCA2IEF1 ZyAyMDIxIGF0IDEwOjQ5LCBLcnp5c3p0b2YgS296bG93c2tpCj4+IDxrcnp5c3p0b2Yua296bG93 c2tpQGNhbm9uaWNhbC5jb20+IHdyb3RlOgo+Pj4KPj4+IE9uIDA2LzA4LzIwMjEgMDE6MDYsIFNh bSBQcm90c2Vua28gd3JvdGU6Cj4+Pj4gT24gU2F0LCAzMSBKdWwgMjAyMSBhdCAxMjowMywgS3J6 eXN6dG9mIEtvemxvd3NraQo+Pj4+IDxrcnp5c3p0b2Yua296bG93c2tpQGNhbm9uaWNhbC5jb20+ IHdyb3RlOgo+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gVGhpcyBwYXRjaCBhZGRzIG1pbmltYWwgU29DIHN1 cHBvcnQuIFBhcnRpY3VsYXIgYm9hcmQgZGV2aWNlIHRyZWUgZmlsZXMKPj4+Pj4+IGNhbiBpbmNs dWRlIGV4eW5vczg1MC5kdHNpIGZpbGUgdG8gZ2V0IFNvQyByZWxhdGVkIG5vZGVzLCBhbmQgdGhl bgo+Pj4+Pj4gcmVmZXJlbmNlIHRob3NlIG5vZGVzIGZ1cnRoZXIgYXMgbmVlZGVkLgo+Pj4+Pj4K Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFNhbSBQcm90c2Vua28gPHNlbWVuLnByb3RzZW5rb0BsaW5h cm8ub3JnPgo+Pj4+Pj4gLS0tCj4+Pj4+PiAgIC4uLi9ib290L2R0cy9leHlub3MvZXh5bm9zODUw LXBpbmN0cmwuZHRzaSAgICB8IDc4MiArKysrKysrKysrKysrKysrKysKPj4+Pj4+ICAgYXJjaC9h cm02NC9ib290L2R0cy9leHlub3MvZXh5bm9zODUwLXVzaS5kdHNpIHwgIDMwICsKPj4+Pj4+ICAg YXJjaC9hcm02NC9ib290L2R0cy9leHlub3MvZXh5bm9zODUwLmR0c2kgICAgIHwgMjQ1ICsrKysr Kwo+Pj4+Pgo+Pj4+PiBOb3QgYnVpbGRhYmxlLiBNaXNzaW5nIE1ha2VmaWxlLCBtaXNzaW5nIERU Uy4gUGxlYXNlIHN1Ym1pdCB3aXRoIGluaXRpYWwKPj4+Pj4gRFRTLCBvdGhlcndpc2Ugbm8gb25l IGlzIGFibGUgdG8gdmVyaWZ5IGl0IGV2ZW4gY29tcGlsZXMuCj4+Pj4+Cj4+Pj4KPj4+PiBUaGlz IGRldmljZSBpcyBub3QgYXZhaWxhYmxlIGZvciBwdXJjaGFzZSB5ZXQuIEknbGwgc2VuZCB0aGUg cGF0Y2ggZm9yCj4+Pj4gYm9hcmQgZHRzIG9uY2UgaXQncyBhbm5vdW5jZWQuIEkgY2FuIGRvIGFs bCB0aGUgdGVzdGluZyBmb3Igbm93LCBpZgo+Pj4+IHlvdSBoYXZlIGFueSBzcGVjaWZpYyByZXF1 ZXN0cy4gV291bGQgaXQgYmUgcG9zc2libGUgZm9yIHVzIHRvIHJldmlldwo+Pj4+IGFuZCBhcHBs eSBvbmx5IFNvQyBzdXBwb3J0IGZvciBub3c/IFdpbGwgc2VuZCB2MiBzb29uLi4uCj4+Pgo+Pj4g V2hhdCB5b3UgcHJvcG9zZSBpcyBlcXVhbCB0byBhZGRpbmcgYSBkcml2ZXIgKEMgc291cmNlIGNv ZGUpIHdpdGhvdXQKPj4+IGFiaWxpdHkgdG8gY29tcGlsZSBpdC4gV2hhdCdzIHRoZSBwb2ludCBv ZiBoYXZpbmcgaXQgaW4gdGhlIGtlcm5lbD8gSXQncwo+Pj4gdW52ZXJpZmlhYmxlLCB1bmJ1aWxk YWJsZSBhbmQgdW51c2FibGUuCj4+Pgo+Pgo+PiBZZXMsIEkgdW5kZXJzdGFuZC4gVGhhdCdzIGFk ZGluZyBjb2RlIHdpdGggbm8gdXNlcnMsIGFuZCBpdCdzIG5vdCBhCj4+IGdvb2QgcHJhY3RpY2Uu Cj4+Cj4+PiBXZSBjYW4gcmV2aWV3IHRoZSBEVFNJIGhvd2V2ZXIgbWVyZ2luZyBoYXMgdG8gYmUg d2l0aCBhIERUUy4gVXN1YWxseSB0aGUKPj4+IFNvQyB2ZW5kb3IgYWRkcyBmaXJzdCBhbiBldmFs a2l0IChlLmcuIFNNREsgYm9hcmQpLiBNYXliZSB5b3UgaGF2ZSBvbmUKPj4+IGZvciBFeHlub3M4 NTA/IE90aGVyd2lzZSBpZiB5b3UgY2Fubm90IGRpc2Nsb3NlIHRoZSBhY3R1YWwgYm9hcmQsIHRo ZQo+Pj4gRFRTSSB3aWxsIGhhdmUgdG8gd2FpdC4gWW91IGNhbiBzdWJtaXQgZHJpdmVycywgdGhv dWdoLgo+Pj4KPj4KPj4gU3VyZSwgbGV0J3MgZ28gdGhpcyB3YXkuIEknbGwgc2VuZCB2MiBzb29u LiBJbXByb3ZpbmcgcGF0Y2hlcyBhbmQKPj4gaGF2aW5nIFJldmlld2VkLWJ5IHRhZyBmb3IgdGhv c2Ugd291bGQgZ29vZCBlbm91Z2ggZm9yIG1lIGF0IHRoaXMKPj4gcG9pbnQuIEknbGwgY29udGlu dWUgdG8gcHJlcGFyZSBhbm90aGVyIEV4eW5vczg1MCByZWxhdGVkIHBhdGNoZXMKPj4gdW50aWwg dGhlIGFjdHVhbCBib2FyZCBpcyBhbm5vdW5jZWQsIGxpa2UgcHJvcGVyIGNsb2NrIGRyaXZlciwg cmVzZXQsCj4+IE1NQywgZXRjLiBJcyBpdCBvayBpZiBJIHNlbmQgdGhvc2UgZm9yIGEgcmV2aWV3 IHRvbyAoc28gSSBjYW4gZml4IGFsbAo+PiBpc3N1ZXMgYWhlYWQpPwo+IAo+IFN1cmUsIHByZXBh cmUgYWxsIG5lY2Vzc2FyeSBkcml2ZXJzIGVhcmxpZXIuIEkgc3VzcGVjdCBjbG9ja3Mgd2lsbCBi ZSBhCj4gcmVhbCBwYWluIGJlY2F1c2Ugb2Ygc2lnbmlmaWNhbnQgY2hhbmdlcyBtb2RlbGVkIGlu IHZlbmRvciBrZXJuZWwuIEkKPiByZW1lbWJlciBQYXdlxYIgQ2htaWVsICgrQ2MpIHdhcyBkb2lu ZyBzb21ldGhpbmcgZm9yIHRoZXNlOgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9QYWJsb1BML2xpbnV4 L3RyZWUvZXh5bm9zNzQyMAo+IAo+IEkgbWVudGlvbmVkIGJlZm9yZSAtIHlvdSBzaG91bGQgYWxz byBtb2RpZnkgdGhlIGNoaXBpZCBkcml2ZXIuIENoZWNrCj4gYWxzbyBvdGhlciBkcml2ZXJzIGlu IGRyaXZlcnMvc29jL3NhbXN1bmcsIGFsdGhvdWdoIHNvbWUgYXJlIG5lZWRlZCBvbmx5Cj4gZm9y IHN1c3BlbmQmcmVzdW1lLgo+IAo+IEJUVywgUGF3ZcWCLAo+IEhvdyBpcyB5b3VyIEV4eW5vczc0 MjAgcHJvZ3Jlc3M/IDopCkhpCgpTYWRseSBpIGhhZCB0byBwb3N0cG9uZSBpdCBmb3IgYSB3aGls ZS4gTWF5YmUgd2lsbCBoYXZlIG1vcmUgdGltZSBub3cgdG8gCmdldCBiYWNrIHRvIGl0LgoKQWJv dXQgY2xvY2sgZHJpdmVyLiBJbiB2ZW5kb3Igc291cmNlcyB0aGVyZSBpcyBjbGsgZHJpdmVyIHdp dGggc29tZXRoaW5nIApjYWxsZWQgdmlydHVhbCBjbG9ja3MgKGRpZmZlcmVudCB0aGFuIHJlYWwg b25lcykuIFRoYXQgZHJpdmVyIGNhbGxzIAphbm90aGVyIGRyaXZlciBjYWxsZWQgcHdyY2FsLCBy ZXNwb25zaWJsZSBmb3IgcmVhbCBtYW5pcHVsYXRpb24gb2YgCmNsb2NrcyBpbiBoYXJkd2FyZS4g VGhpcyBvbmUgaGFzIGluZm8gYWJvdXQgcmVhbCBjbG9ja3MgYW5kIGFsc28gCmFkZGl0aW9uYWwg aW5mbyBhYm91dCBmb3IgZXhhbXBsZSByYXRlIGZvciBzb21lIG9mIHRoZW0sIHdoaWNoIGlzIHJl YWQgCmZyb20gYmluYXJ5IGZyb20gbWVtb3J5LCBieSBhbm90aGVyIGRyaXZlciBjYWxsZWQgZWN0 X3BhcnNlciBpbiBjYXNlIG9mIApkZXZpY2VzIGF0IHdoaWNoIGkgZGlkIGxvb2tlZC4KCkluIG15 IGNhc2UgaSB3YXMgYWJsZSB0byBmaW5kIHNvbWUgbW9yZSBpbmZvIGFib3V0IHJlYWwgY2xvY2tz IHRoZXJlIC0gCmZvciBleGFtcGxlIHJlZ2lzdGVyIG5hbWVzIGFuZCBvZmZzZXRzIApodHRwczov L2dpdGh1Yi5jb20va3J6ay9saW51eC12ZW5kb3ItYmFja3VwL2Jsb2IvbW9rZWUvYW5kcm9pZC0z LjE4LXNhbXN1bmctZ2FsYXh5LXM3LXNtLWc5MzBmLWV4eW5vczg4OTAvZHJpdmVycy9zb2Mvc2Ft c3VuZy9wd3JjYWwvUzVFODg5MC9TNUU4ODkwLWNtdXNmci5oIAphbmQgc29tZSBjbG9ja3MgaGll cmFyY2h5IGluZm8gaW5zaWRlIApodHRwczovL2dpdGh1Yi5jb20va3J6ay9saW51eC12ZW5kb3It YmFja3VwL2Jsb2IvbW9rZWUvYW5kcm9pZC0zLjE4LXNhbXN1bmctZ2FsYXh5LXM3LXNtLWc5MzBm LWV4eW5vczg4OTAvZHJpdmVycy9zb2Mvc2Ftc3VuZy9wd3JjYWwvUzVFODg5MC9TNUU4ODkwLWNt dS5jIApidXQgdGhlcmUgd2FzIHN0aWxsIG1hbnkgaW5mbyBtaXNzaW5nLgoKRmluZGluZyBhIHdh eSAod2hpY2ggY291bGQgYmUgYXBwbGllZCB0byBvdGhlciBFeHlub3MgU09DKSB0byAiY29udmVy dCIgCm9yIHVzZSB0aGF0IHZlbmRvciBjb2RlIGFuZCB0dXJuIGl0IGludG8gbWFpbmxpbmUgZHJp dmVyLCBlc3BlY2lhbGx5IAp3aXRob3V0IFRSTSB3aGljaCBpcyBub3QgYXZhaWxhYmxlIGZvciBh bGwvbW9zdCBvZiB0aGVtLCB3b3VsZCBiZSBncmVhdC4KCkknbSB3b25kZXJpbmcgaWYgRXh5bm9z ODUwIGRldmljZSBoYXMgdGhlIHNhbWUgaXNzdWUgYXMgb24gNzQyMCAoYW5kIApwcm9iYWJseSA4 ODkwLzc1NzggYW5kIG1heWJlIGFsc28gb3RoZXIgNjQgYml0IEV4eW5vcyBkZXZpY2VzKSAtIGJy b2tlbiAKZmlybXdhcmUuIEZvciBleGFtcGxlIGkgaGFkIHRvIHNwZWNpZnkgaW4gZHRzIHRpbWVy IGNsb2NrIGZyZXF1ZW5jeSwgb24gCmZldyBkZXZpY2VzIHRoZXJlIGlzIGFsc28gYSBwcm9ibGVt IHdpdGggdGltZXIgcmVnaXN0ZXJzIG5vdCBwcm9wZXJseSAKY29uZmlndXJlZCBieSBGVywgd2hp Y2ggcHJvYmFibHkgd29uJ3QgYmUgZml4ZWQgYnkgdmVuZG9yIGFuZCBwYXRjaGVzIAp3aXRoIHdv cmthcm91bmQgZm9yIGl0IGluIGtlcm5lbCB3ZXJlIHJlamVjdGVkIDovLgo+IAo+PiBBbmQgc2hv dWxkIEkgbWF5YmUgYWRkIFJGQyB0YWcgZm9yIHRob3NlPwo+IAo+IE5vIG5lZWQuIERyaXZlcnMg Y2FuIGJlIG1lcmdlZCBiZWZvcmUgRFRTIHVzZXJzLgo+IAo+IEJlc3QgcmVnYXJkcywKPiBLcnp5 c3p0b2YKPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==