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=-4.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 AFFC9C4321A for ; Thu, 11 Mar 2021 18:24:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7967964FBA for ; Thu, 11 Mar 2021 18:24:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230193AbhCKSYL (ORCPT ); Thu, 11 Mar 2021 13:24:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53854 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230162AbhCKSXw (ORCPT ); Thu, 11 Mar 2021 13:23:52 -0500 Received: from mail-ot1-x331.google.com (mail-ot1-x331.google.com [IPv6:2607:f8b0:4864:20::331]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9B15CC061574; Thu, 11 Mar 2021 10:23:52 -0800 (PST) Received: by mail-ot1-x331.google.com with SMTP id m21-20020a9d7ad50000b02901b83efc84a0so77878otn.10; Thu, 11 Mar 2021 10:23:52 -0800 (PST) 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=X2TrxazCY9UP4CB1vU4flOfkXW+UhcWuBfdkGL2i0ls=; b=BUtq+4jn2klGMKpxl2wR35WkkEZRdFysShY3uG2jaEHooE5HIc95GqTSX4danc4zMU qsBYqW1K22GAI3c7WPdEgjeMPgAgvQG7CpPSIoEUSlU6Vey/U1rdMc2BPpBORnyvio+R bzArVzZ7NRpCjhrOFVEtVqpfcqt+5cNUYqiBCHOT4t/+WzA9sPQKpHHQhRdlRzU0stjR crVK1HfaLduy6I8LXQQ0HfVmDcthoqFZUVjUNPVewAan2cLH0K7GEP8uHV7yu8A9zyJo ovg6OFKRr8pJVDCahIGNKzStPzIqfaEcHe4Np8JG09s0eVFtMwRbMdOpOajM9+ewvYrg z4uA== 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=X2TrxazCY9UP4CB1vU4flOfkXW+UhcWuBfdkGL2i0ls=; b=oOpO34LFgfFhbXw5N3KClCjgfbyPNSgYcD/qJlI02gMNkmfHYMidfhxEjuTyUxsZ1H sR80claCIr0ElvAinQP+ZKQKis4wAZMwVBYgYFdpmSn9aERrPj7bkAke3Gh3hosoSals BemjOEkpwrXNfVOQFAg5x7DjvTD4Q0r0/Y0WIqef+KjzCDKfQRrOGtsipsheWKGQY655 HnujLrbBfloWzA4DuWbVOViuX+K4T1dj0aORzy64HpMKt0g3Mqdl63pLJsWbJ50ryh0K PCm06fcVljkfMMbKOlrU5kSJfIuohzKD9r4uXritrWf72DonU56jpRmIQZu12jNqUVCi Hr1w== X-Gm-Message-State: AOAM533Jfm0iTjM40AcscTraupfoIMOgcZ4ydb9CcJjv2hD2FE67JWVY NOejxFIINTvSy5eUEg4/+5BkeAmVPyC+vA== X-Google-Smtp-Source: ABdhPJwfReDNY3UNDzP/Lron5+DB+qEb1RaV1nW4bRx4prAzn7c5QIcnORnFi7XILA1BRkgwA9hCAA== X-Received: by 2002:a9d:480d:: with SMTP id c13mr155104otf.149.1615487031747; Thu, 11 Mar 2021 10:23:51 -0800 (PST) Received: from nuclearis2-1.gtech (c-98-195-139-126.hsd1.tx.comcast.net. [98.195.139.126]) by smtp.gmail.com with ESMTPSA id m11sm691670oih.34.2021.03.11.10.23.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 11 Mar 2021 10:23:51 -0800 (PST) Subject: Re: [Linux-stm32] [PATCH v2 00/14] Introduce STM32MP1 RCC in secured mode To: Alexandre TORGUE , Marek Vasut , Ahmad Fatoum , Alexandre TORGUE , Gabriel FERNANDEZ - foss , Michael Turquette , Stephen Boyd , Rob Herring , Maxime Coquelin , Philipp Zabel , Etienne CARRIERE Cc: "devicetree@vger.kernel.org" , "linux-stm32@st-md-mailman.stormreply.com" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-clk@vger.kernel.org" References: <20210126090120.19900-1-gabriel.fernandez@foss.st.com> <2e04f814-b694-119d-fe8a-13e6df129536@gmail.com> <463dafed-ec60-cd9a-33d2-ba118a6af629@foss.st.com> From: "Alex G." Message-ID: <6c470715-0042-622b-d53d-59445cab8ed1@gmail.com> Date: Thu, 11 Mar 2021 12:23:50 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.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-kernel@vger.kernel.org On 3/11/21 12:10 PM, Alexandre TORGUE wrote: > Hi Guys > > On 3/11/21 5:11 PM, Marek Vasut wrote: >> On 3/11/21 3:41 PM, Ahmad Fatoum wrote: >>> Hello, >> >> Hi, >> >>> On 11.03.21 15:02, Alexandre TORGUE wrote: >>>> On 3/11/21 12:43 PM, Marek Vasut wrote: >>>>> On 3/11/21 9:08 AM, Alexandre TORGUE wrote: >>>>>> 1- Break the current ABI: as soon as those patches are merged, >>>>>> stm32mp157c-dk2.dtb will impose to use >>>>>> A tf-a for scmi clocks. For people using u-boot spl, the will have >>>>>> to create their own "no-secure" devicetree. >>>>> >>>>> NAK, this breaks existing boards and existing setups, e.g. DK2 that >>>>> does not use ATF. >>>>> >>>>>> 2-As you suggest, create a new "secure" dtb per boards (Not my >>>>>> wish for maintenance perspectives). >>>>> >>>>> I agree with Alex (G) that the "secure" option should be opt-in. >>>>> That way existing setups remain working and no extra requirements >>>>> are imposed on MP1 users. Esp. since as far as I understand this, >>>>> the "secure" part isn't really about security, but rather about >>>>> moving clock configuration from Linux to some firmware blob. >>>>> >>>>>> 3- Keep kernel device tree as they are and applied this secure >>>>>> layer (scmi clocks phandle) thanks to dtbo in >>>>>> U-boot. >>>>> >>>>> Is this really better than >>>>> #include "stm32mp15xx-enable-secure-stuff.dtsi" >>>>> in a board DT ? Because that is how I imagine the opt-in "secure" >>>>> option could work. >>>>> >>>> >>>> Discussing with Patrick about u-boot, we could use dtbo application >>>> thanks to extlinux.conf. BUT it it will not prevent other case (i.e. >>>> TF-A which jump directly in kernel@). So the "least worst" solution >>>> is to create a new "stm32mp1257c-scmi-dk2 board which will overload >>>> clock entries with a scmi phandle (as proposed by Alex). >>> >>> I raised this issue before with your colleagues. I still believe the >>> correct way >>> would be for the TF-A to pass down either a device tree or an overlay >>> with the >>> actual settings in use, e.g.: >>> >>>    - Clocks/Resets done via SCMI >>>    - Reserved memory regions >>> >>> If TF-A directly boots Linux, it can apply the overlay itself, >>> otherwise it's >>> passed down to SSBL that applies it before booting Linux. >> >> That sounds good and it is something e.g. R-Car already does, it >> merges DT fragment from prior stages at U-Boot level and then passes >> the result to Linux. >> >> So on ST hardware, the same could very well happen and it would work >> for both non-ATF / ATF / ATF+TEE options. > > Even this solution sounds good but we are currently not able to do it in > our TF-A/u-boot so not feasible for the moment. So we have to find a > solution for now. Create a new dtb can be this solution. Our internal > strategy is to use scmi on our official ST board. It will be a really > drawback to include a "no-scmi.dtsi" in DH boards (for example) and to > create a stm32mp157c-noscmi-dk2.dts ? It could work, as long as all users are reminded to change their build scripts to pick up a "-noscmi.dtb". I suspect that if this were the case we'll see quite a few bug reports saying "stm32mp1 no longer boots with kernel v5.13". I didn't think of this originally, though u-boot already does the DTB patching for OPTEE reserved memory regions. It's not too hard to also patch in the SCMI clocks at boot. In u-boot's case, runtime detection might even be feasible. Alex 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=-2.2 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 ED9E4C433E0 for ; Thu, 11 Mar 2021 18:28:04 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 71D6064F87 for ; Thu, 11 Mar 2021 18:28:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 71D6064F87 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; 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=+cBdmdG2d/rJ8XT/yfREeQK28pjFGr6bbpxav4R3N5Q=; b=BiTWE67C8nMYTnpzMZjjB4dMT wpWq9vZEA7B5us/ZvWnhFZo8/fcfLsXOpE4fgXKCimlnl6a2GfX7AZQQZlBuj4vYzaSeQX74+S8mJ clOkWSRG7ATLR1vwns9YGqR+P4b1Z6vTbl16lzRhMsRP8R1GBADKAwUxCxfQka/MUjasDptW24JIx KZUPOZt0/aU9dQpRgJHsg5jqCRe2E1rXlpFza0jjY4dKfByryheBuf4ilnHybj/3UsuJExyFWH0Vi 4cR8kFsmnhkGuXoriqc/qWvxdgYcpxtrxE5Bfk1B1hUv9WJt4mwM1PGuZn+o7FIyE8y4xWSdIrUD/ 3QYH5kasw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lKQ0x-009rKU-9Q; Thu, 11 Mar 2021 18:26:27 +0000 Received: from mail-ot1-x330.google.com ([2607:f8b0:4864:20::330]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lKPyT-009qnQ-QN for linux-arm-kernel@lists.infradead.org; Thu, 11 Mar 2021 18:23:55 +0000 Received: by mail-ot1-x330.google.com with SMTP id 101-20020a9d04ee0000b02901b506659320so78070otm.7 for ; Thu, 11 Mar 2021 10:23:52 -0800 (PST) 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=X2TrxazCY9UP4CB1vU4flOfkXW+UhcWuBfdkGL2i0ls=; b=BUtq+4jn2klGMKpxl2wR35WkkEZRdFysShY3uG2jaEHooE5HIc95GqTSX4danc4zMU qsBYqW1K22GAI3c7WPdEgjeMPgAgvQG7CpPSIoEUSlU6Vey/U1rdMc2BPpBORnyvio+R bzArVzZ7NRpCjhrOFVEtVqpfcqt+5cNUYqiBCHOT4t/+WzA9sPQKpHHQhRdlRzU0stjR crVK1HfaLduy6I8LXQQ0HfVmDcthoqFZUVjUNPVewAan2cLH0K7GEP8uHV7yu8A9zyJo ovg6OFKRr8pJVDCahIGNKzStPzIqfaEcHe4Np8JG09s0eVFtMwRbMdOpOajM9+ewvYrg z4uA== 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=X2TrxazCY9UP4CB1vU4flOfkXW+UhcWuBfdkGL2i0ls=; b=Xck71gPx4hfUlKaZDwNxZpoOMqOxLdydeFsOrOfucauVGAZl8ii679wABxdiG5RUKT Z1SivGnOfc6Xif+1/nYkH+X9Iy5frLn6QB6VMQPPIrm85JjF16W4tSp3JRNSiHE4PsqC qdIXZxlGoFQS8x7+uqjcW5E5wR026csc2i6GSlJpAzhRQPNaEied5jCtpR3FSb5tQzhu 9zwz68oGBrJbJ+W70cHPYapEvsgepb9widD7LjlqVQTzsoN7WaFzIcTT478FrtAOIQgs gUtKtBdfV7jGOIFuFIroVhGuuf0BOiho8Eke7QiCAnKt2xP1Kxnx7KjJvdc4BHSCRQ55 upgQ== X-Gm-Message-State: AOAM532CwnbHsryBXgXQfGkcpckxRLFXaUh8X0sCv39B10BWXeCWr5AW lwRMQbwN/3Vn+GWmv6VHhdY= X-Google-Smtp-Source: ABdhPJwfReDNY3UNDzP/Lron5+DB+qEb1RaV1nW4bRx4prAzn7c5QIcnORnFi7XILA1BRkgwA9hCAA== X-Received: by 2002:a9d:480d:: with SMTP id c13mr155104otf.149.1615487031747; Thu, 11 Mar 2021 10:23:51 -0800 (PST) Received: from nuclearis2-1.gtech (c-98-195-139-126.hsd1.tx.comcast.net. [98.195.139.126]) by smtp.gmail.com with ESMTPSA id m11sm691670oih.34.2021.03.11.10.23.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 11 Mar 2021 10:23:51 -0800 (PST) Subject: Re: [Linux-stm32] [PATCH v2 00/14] Introduce STM32MP1 RCC in secured mode To: Alexandre TORGUE , Marek Vasut , Ahmad Fatoum , Alexandre TORGUE , Gabriel FERNANDEZ - foss , Michael Turquette , Stephen Boyd , Rob Herring , Maxime Coquelin , Philipp Zabel , Etienne CARRIERE Cc: "devicetree@vger.kernel.org" , "linux-stm32@st-md-mailman.stormreply.com" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-clk@vger.kernel.org" References: <20210126090120.19900-1-gabriel.fernandez@foss.st.com> <2e04f814-b694-119d-fe8a-13e6df129536@gmail.com> <463dafed-ec60-cd9a-33d2-ba118a6af629@foss.st.com> From: "Alex G." Message-ID: <6c470715-0042-622b-d53d-59445cab8ed1@gmail.com> Date: Thu, 11 Mar 2021 12:23:50 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.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-20210311_182353_998129_B13B00ED X-CRM114-Status: GOOD ( 27.41 ) 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 CgpPbiAzLzExLzIxIDEyOjEwIFBNLCBBbGV4YW5kcmUgVE9SR1VFIHdyb3RlOgo+IEhpIEd1eXMK PiAKPiBPbiAzLzExLzIxIDU6MTEgUE0sIE1hcmVrIFZhc3V0IHdyb3RlOgo+PiBPbiAzLzExLzIx IDM6NDEgUE0sIEFobWFkIEZhdG91bSB3cm90ZToKPj4+IEhlbGxvLAo+Pgo+PiBIaSwKPj4KPj4+ IE9uIDExLjAzLjIxIDE1OjAyLCBBbGV4YW5kcmUgVE9SR1VFIHdyb3RlOgo+Pj4+IE9uIDMvMTEv MjEgMTI6NDMgUE0sIE1hcmVrIFZhc3V0IHdyb3RlOgo+Pj4+PiBPbiAzLzExLzIxIDk6MDggQU0s IEFsZXhhbmRyZSBUT1JHVUUgd3JvdGU6Cj4+Pj4+PiAxLSBCcmVhayB0aGUgY3VycmVudCBBQkk6 IGFzIHNvb24gYXMgdGhvc2UgcGF0Y2hlcyBhcmUgbWVyZ2VkLCAKPj4+Pj4+IHN0bTMybXAxNTdj LWRrMi5kdGIgd2lsbCBpbXBvc2UgdG8gdXNlCj4+Pj4+PiBBIHRmLWEgZm9yIHNjbWkgY2xvY2tz LiBGb3IgcGVvcGxlIHVzaW5nIHUtYm9vdCBzcGwsIHRoZSB3aWxsIGhhdmUgCj4+Pj4+PiB0byBj cmVhdGUgdGhlaXIgb3duICJuby1zZWN1cmUiIGRldmljZXRyZWUuCj4+Pj4+Cj4+Pj4+IE5BSywg dGhpcyBicmVha3MgZXhpc3RpbmcgYm9hcmRzIGFuZCBleGlzdGluZyBzZXR1cHMsIGUuZy4gREsy IHRoYXQgCj4+Pj4+IGRvZXMgbm90IHVzZSBBVEYuCj4+Pj4+Cj4+Pj4+PiAyLUFzIHlvdSBzdWdn ZXN0LCBjcmVhdGUgYSBuZXcgInNlY3VyZSIgZHRiIHBlciBib2FyZHMgKE5vdCBteSAKPj4+Pj4+ IHdpc2ggZm9yIG1haW50ZW5hbmNlIHBlcnNwZWN0aXZlcykuCj4+Pj4+Cj4+Pj4+IEkgYWdyZWUg d2l0aCBBbGV4IChHKSB0aGF0IHRoZSAic2VjdXJlIiBvcHRpb24gc2hvdWxkIGJlIG9wdC1pbi4K Pj4+Pj4gVGhhdCB3YXkgZXhpc3Rpbmcgc2V0dXBzIHJlbWFpbiB3b3JraW5nIGFuZCBubyBleHRy YSByZXF1aXJlbWVudHMgCj4+Pj4+IGFyZSBpbXBvc2VkIG9uIE1QMSB1c2Vycy4gRXNwLiBzaW5j ZSBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIHRoaXMsIAo+Pj4+PiB0aGUgInNlY3VyZSIgcGFydCBp c24ndCByZWFsbHkgYWJvdXQgc2VjdXJpdHksIGJ1dCByYXRoZXIgYWJvdXQgCj4+Pj4+IG1vdmlu ZyBjbG9jayBjb25maWd1cmF0aW9uIGZyb20gTGludXggdG8gc29tZSBmaXJtd2FyZSBibG9iLgo+ Pj4+Pgo+Pj4+Pj4gMy0gS2VlcCBrZXJuZWwgZGV2aWNlIHRyZWUgYXMgdGhleSBhcmUgYW5kIGFw cGxpZWQgdGhpcyBzZWN1cmUgCj4+Pj4+PiBsYXllciAoc2NtaSBjbG9ja3MgcGhhbmRsZSkgdGhh bmtzIHRvIGR0Ym8gaW4KPj4+Pj4+IFUtYm9vdC4KPj4+Pj4KPj4+Pj4gSXMgdGhpcyByZWFsbHkg YmV0dGVyIHRoYW4KPj4+Pj4gI2luY2x1ZGUgInN0bTMybXAxNXh4LWVuYWJsZS1zZWN1cmUtc3R1 ZmYuZHRzaSIKPj4+Pj4gaW4gYSBib2FyZCBEVCA/IEJlY2F1c2UgdGhhdCBpcyBob3cgSSBpbWFn aW5lIHRoZSBvcHQtaW4gInNlY3VyZSIgCj4+Pj4+IG9wdGlvbiBjb3VsZCB3b3JrLgo+Pj4+Pgo+ Pj4+Cj4+Pj4gRGlzY3Vzc2luZyB3aXRoIFBhdHJpY2sgYWJvdXQgdS1ib290LCB3ZSBjb3VsZCB1 c2UgZHRibyBhcHBsaWNhdGlvbiAKPj4+PiB0aGFua3MgdG8gZXh0bGludXguY29uZi4gQlVUIGl0 IGl0IHdpbGwgbm90IHByZXZlbnQgb3RoZXIgY2FzZSAoaS5lLiAKPj4+PiBURi1BIHdoaWNoIGp1 bXAgZGlyZWN0bHkgaW4ga2VybmVsQCkuIFNvIHRoZSAibGVhc3Qgd29yc3QiIHNvbHV0aW9uIAo+ Pj4+IGlzIHRvIGNyZWF0ZSBhIG5ldyAic3RtMzJtcDEyNTdjLXNjbWktZGsyIGJvYXJkIHdoaWNo IHdpbGwgb3ZlcmxvYWQgCj4+Pj4gY2xvY2sgZW50cmllcyB3aXRoIGEgc2NtaSBwaGFuZGxlIChh cyBwcm9wb3NlZCBieSBBbGV4KS4KPj4+Cj4+PiBJIHJhaXNlZCB0aGlzIGlzc3VlIGJlZm9yZSB3 aXRoIHlvdXIgY29sbGVhZ3Vlcy4gSSBzdGlsbCBiZWxpZXZlIHRoZSAKPj4+IGNvcnJlY3Qgd2F5 Cj4+PiB3b3VsZCBiZSBmb3IgdGhlIFRGLUEgdG8gcGFzcyBkb3duIGVpdGhlciBhIGRldmljZSB0 cmVlIG9yIGFuIG92ZXJsYXkgCj4+PiB3aXRoIHRoZQo+Pj4gYWN0dWFsIHNldHRpbmdzIGluIHVz ZSwgZS5nLjoKPj4+Cj4+PiDCoMKgIC0gQ2xvY2tzL1Jlc2V0cyBkb25lIHZpYSBTQ01JCj4+PiDC oMKgIC0gUmVzZXJ2ZWQgbWVtb3J5IHJlZ2lvbnMKPj4+Cj4+PiBJZiBURi1BIGRpcmVjdGx5IGJv b3RzIExpbnV4LCBpdCBjYW4gYXBwbHkgdGhlIG92ZXJsYXkgaXRzZWxmLCAKPj4+IG90aGVyd2lz ZSBpdCdzCj4+PiBwYXNzZWQgZG93biB0byBTU0JMIHRoYXQgYXBwbGllcyBpdCBiZWZvcmUgYm9v dGluZyBMaW51eC4KPj4KPj4gVGhhdCBzb3VuZHMgZ29vZCBhbmQgaXQgaXMgc29tZXRoaW5nIGUu Zy4gUi1DYXIgYWxyZWFkeSBkb2VzLCBpdCAKPj4gbWVyZ2VzIERUIGZyYWdtZW50IGZyb20gcHJp b3Igc3RhZ2VzIGF0IFUtQm9vdCBsZXZlbCBhbmQgdGhlbiBwYXNzZXMgCj4+IHRoZSByZXN1bHQg dG8gTGludXguCj4+Cj4+IFNvIG9uIFNUIGhhcmR3YXJlLCB0aGUgc2FtZSBjb3VsZCB2ZXJ5IHdl bGwgaGFwcGVuIGFuZCBpdCB3b3VsZCB3b3JrIAo+PiBmb3IgYm90aCBub24tQVRGIC8gQVRGIC8g QVRGK1RFRSBvcHRpb25zLgo+IAo+IEV2ZW4gdGhpcyBzb2x1dGlvbiBzb3VuZHMgZ29vZCBidXQg d2UgYXJlIGN1cnJlbnRseSBub3QgYWJsZSB0byBkbyBpdCBpbiAKPiBvdXIgVEYtQS91LWJvb3Qg c28gbm90IGZlYXNpYmxlIGZvciB0aGUgbW9tZW50LiBTbyB3ZSBoYXZlIHRvIGZpbmQgYSAKPiBz b2x1dGlvbiBmb3Igbm93LiBDcmVhdGUgYSBuZXcgZHRiIGNhbiBiZSB0aGlzIHNvbHV0aW9uLiBP dXIgaW50ZXJuYWwgCj4gc3RyYXRlZ3kgaXMgdG8gdXNlIHNjbWkgb24gb3VyIG9mZmljaWFsIFNU IGJvYXJkLiBJdCB3aWxsIGJlIGEgcmVhbGx5IAo+IGRyYXdiYWNrIHRvIGluY2x1ZGUgYSAibm8t c2NtaS5kdHNpIiBpbiBESCBib2FyZHMgKGZvciBleGFtcGxlKSBhbmQgdG8gCj4gY3JlYXRlIGEg c3RtMzJtcDE1N2Mtbm9zY21pLWRrMi5kdHMgPwoKSXQgY291bGQgd29yaywgYXMgbG9uZyBhcyBh bGwgdXNlcnMgYXJlIHJlbWluZGVkIHRvIGNoYW5nZSB0aGVpciBidWlsZCAKc2NyaXB0cyB0byBw aWNrIHVwIGEgIi1ub3NjbWkuZHRiIi4gSSBzdXNwZWN0IHRoYXQgaWYgdGhpcyB3ZXJlIHRoZSBj YXNlIAp3ZSdsbCBzZWUgcXVpdGUgYSBmZXcgYnVnIHJlcG9ydHMgc2F5aW5nICJzdG0zMm1wMSBu byBsb25nZXIgYm9vdHMgd2l0aCAKa2VybmVsIHY1LjEzIi4KCkkgZGlkbid0IHRoaW5rIG9mIHRo aXMgb3JpZ2luYWxseSwgdGhvdWdoIHUtYm9vdCBhbHJlYWR5IGRvZXMgdGhlIERUQiAKcGF0Y2hp bmcgZm9yIE9QVEVFIHJlc2VydmVkIG1lbW9yeSByZWdpb25zLiBJdCdzIG5vdCB0b28gaGFyZCB0 byBhbHNvIApwYXRjaCBpbiB0aGUgU0NNSSBjbG9ja3MgYXQgYm9vdC4gSW4gdS1ib290J3MgY2Fz ZSwgcnVudGltZSBkZXRlY3Rpb24gCm1pZ2h0IGV2ZW4gYmUgZmVhc2libGUuCgpBbGV4CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs Cg==