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=-3.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 58562C2BA1A for ; Fri, 24 Apr 2020 06:27:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3480420700 for ; Fri, 24 Apr 2020 06:27:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="qBQDR3rE" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726338AbgDXG1d (ORCPT ); Fri, 24 Apr 2020 02:27:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51998 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725868AbgDXG1c (ORCPT ); Fri, 24 Apr 2020 02:27:32 -0400 Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 13A89C09B046 for ; Thu, 23 Apr 2020 23:27:32 -0700 (PDT) Received: by mail-wm1-x342.google.com with SMTP id k12so583444wmj.3 for ; Thu, 23 Apr 2020 23:27:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=UG4zneR+b2HX1vUABd9tEJTmiup5w9fG3+R5EQZb+0w=; b=qBQDR3rE5Zj/ATnIxvJjzyRU6q2opvmNDRcRX86ol/sJus6g3Jj+CYkD4T/5gNdCWO JrVDy6gxhkTdOjmj74r+UlZF3rm/x3MEhEmkWveasJOryF+aiGi9+UjvgDHHiwUU28Av +1y6tjhB1pPBrogQpqOuWptMo+8I4d39bLmKpiG1pNmsyPZH2bVjvkpryhm7WfJkR148 C6LrJeJ6GkimBmzuKgdvPg5ZcIc9EDFX4PsPgC0LpW6YKcj8U7tK/tDsAiTxHTPU7aDy qAa8Zv6MgDPFo3nByyWpC+0yrw8No80ruodXFWIH9xTfJ6ykgfXllYaOFEcTBxBV7BgK p3kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=UG4zneR+b2HX1vUABd9tEJTmiup5w9fG3+R5EQZb+0w=; b=UDtvyTf/4GCdNqQqkkuZpFlTxEeTuEMSUfjgN/cR0juV2ApM1N0++kCDxFCuB5TM/f pq2oQ/Nlyb9fJisgpUsaLpWX0Ysv1iNmSv/+dNi4l6v37RJM9STU1ZzgLUHy+BEpRVXQ JpY/LHUwwOZj++Av7kegInGHfoL2Plr5Xvk4XwbIdaaRtP3GxxGgNP4y09uHLMxYD3Pz jKxX0rznqVKZB5opOg+qi3M6uTzqaUqJUqGEax41hTS1y/9MGY7djiXJEufn7jbeFKG3 H7jk60AuYhSAnfyGTR8SKU2FiBov0BUV3peO4FwPxmwpzpe4BQm7GVUf9jooEYBqaxxc ZCMw== X-Gm-Message-State: AGi0PubLSkpXSjHduBqGcsPaOLQN4Rd3V7bPVHVnylakdap8AUgS5mKC HjKm3NwF5CWdRcDHQwJI6nWbjQ== X-Google-Smtp-Source: APiQypIm/Xjji5kQV2xW2buV/Rqqhd1gGi3AXANx2GMzwAiPHMVTVrnTO3qT8sfTAdAnbA3M9ll8eg== X-Received: by 2002:a1c:4e15:: with SMTP id g21mr8007933wmh.29.1587709650747; Thu, 23 Apr 2020 23:27:30 -0700 (PDT) Received: from dell ([2.31.163.63]) by smtp.gmail.com with ESMTPSA id j13sm6722742wro.51.2020.04.23.23.27.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2020 23:27:29 -0700 (PDT) Date: Fri, 24 Apr 2020 07:27:27 +0100 From: Lee Jones To: Aisheng Dong Cc: Abel Vesa , "arnd@arndb.de" , Shawn Guo , Peng Fan , Philipp Zabel , Stephen Boyd , Sascha Hauer , Anson Huang , Leonard Crestez , Jacky Bai , dl-linux-imx , Linux Kernel Mailing List , "devicetree@vger.kernel.org" , "linux-clk@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v3 01/13] mfd: Add i.MX generic mix support Message-ID: <20200424062727.GI3612@dell> References: <1586937773-5836-1-git-send-email-abel.vesa@nxp.com> <1586937773-5836-2-git-send-email-abel.vesa@nxp.com> <20200417080747.GE2167633@dell> <20200422091854.rhtkcfrdptwofngs@fsr-ub1664-175> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org On Thu, 23 Apr 2020, Aisheng Dong wrote: > > From: Abel Vesa > > Sent: Wednesday, April 22, 2020 5:19 PM > > On 20-04-17 09:07:47, Lee Jones wrote: > > > On Wed, 15 Apr 2020, Abel Vesa wrote: > > > > > > > Some of the i.MX SoCs have a IP for interfacing the dedicated IPs > > > > with clocks, resets and interrupts, plus some other specific control registers. > > > > To allow the functionality to be split between drivers, this MFD > > > > driver is added that has only two purposes: register the devices and > > > > map the entire register addresses. Everything else is left to the > > > > dedicated drivers that will bind to the registered devices. > > > > > > > > Signed-off-by: Abel Vesa > > > > --- > > > > drivers/mfd/Kconfig | 11 +++++++++++ > > > > drivers/mfd/Makefile | 1 + > > > > drivers/mfd/imx-mix.c | 48 > > > > ++++++++++++++++++++++++++++++++++++++++++++++++ > > > > 3 files changed, 60 insertions(+) > > > > create mode 100644 drivers/mfd/imx-mix.c > > > > > > For completeness - Arnd's reply to this patch: > > > > > > > I'm replying here to Arnd's reply. > > > > I'm trying to give here a whole picture of the entire problem while the > > documentation for i.MX8MP is _not yet_ public. > > > > Historically, each IP would have its own enclosure for all the related GPRs. > > Starting with i.MX8MP some GPRs (and some subparts) from the IP were placed > > inside these mixes. > > > > Audiomix for example, has multiple SAIs, a PLL, and some reset bits for EARC > > and some GPRs for AudioDSP. This means that i.MX8MP has 7 SAIs, 1 EARC and > > 1 AudioDSP. > > Future platforms might have different numbers of SAIs, EARCs or AudioDSPs. > > The PLL can't be placed in one of those SAIs and it was placed in audiomix. > > The i.MX8MP has at least 4 of these mixes. > > > > Now, the commonalities between all mixes are: > > - have their own power domains > > - driven by dedicated clock slice > > - contain clocks and resets > > - some very subsystem specific GPRs > > > > Knowing that each mix has its own power domain, AFAICT, it needs to be > > registered as a single device. Considering that it can have clocks (audiomix has > > gates, muxes and plls), I believe that needs a clock driver, even more so since the > > muxes need their parents from the platform clock driver. Same principle applies > > to reset bits. The subsystem specific GPRs can be registered as syscon devices > > and taken care of by its counterpart IP (e.g. the AudioDSP specific regs would be > > taken care of by the DSP driver, if there is one). > > > > Now based on all of the above, by using MFD we take care of the power domain > > control for the entire mix, plus, the MFD doesn't have any kind of functionality > > by its own, relying on its children devices that are populated based on what is in > > the mix MFD devicetree node. > > > > How about doing like this which maybe can address Arnd's concerns? > audiomix: audiomix@30e20000 { > compatible = "fsl,imx8mp-audiomix", "syscon"; > reg = <0x30e20000 xxx>, > <0x30e20xxx xxx>; > reg-names = "audio", "reset", "..."; > #clock-cells = <1>; > #reset-cells = <1>; > power-domains = <&audiomix_pd>; > } > > That means we have one combo driver registering two controllers (clk/reset), both use > the same power domain as audiomix. > And it can be easily extended to support more services provided by audiomix over syscon > if needed. > Then the 'dummy' MDF driver is not needed anymore. > > Jones & Arnd, > How do you think? Sounds okay in principle. Anything that prevents the existence of a dummy (a.k.a. pointless) MFD must be seen as a positive move. -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog 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=-3.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 EE2C7C55186 for ; Fri, 24 Apr 2020 06:27:46 +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 BD08520700 for ; Fri, 24 Apr 2020 06:27:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="AtdMa28s"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="qBQDR3rE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BD08520700 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QV4uRcjY7GH/QBuJEsubekpoFLYFgojBr24jwLVGW6s=; b=AtdMa28sqWAWQe BdiZr5EKuy9ofePnID9AvgyBT39vbDigpTLoolBm6mZpqSx/kIsn0JX6CWqGh3tDjhkOprD/KDvBS 3MNNqyVpZcLqQ1x1Fll9uVR6DQrsD4OafuXpjwQGBjt2deOOZ4Cc9wBvv3TirdBQH2ay5zn7j6Ls8 NLzkK/GcAnqcGcX/YyHmUqUGezf2SHoRI/1QaY0xRcvpAiQcyByvCzEgC87uOGSjFEUwl1abRpiQa fome6ESBp8AhdoWVgib/4hwY9aweq/t5tN/K2UMBKDhRrHtkbz9pvQYIcXGsPEx4kcfSfCLW/7mKh PVNy8gX7pPx4ACsLus+g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jRroL-0006sd-NR; Fri, 24 Apr 2020 06:27:41 +0000 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jRroE-0006rM-8j for linux-arm-kernel@lists.infradead.org; Fri, 24 Apr 2020 06:27:40 +0000 Received: by mail-wm1-x342.google.com with SMTP id u16so9360872wmc.5 for ; Thu, 23 Apr 2020 23:27:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=UG4zneR+b2HX1vUABd9tEJTmiup5w9fG3+R5EQZb+0w=; b=qBQDR3rE5Zj/ATnIxvJjzyRU6q2opvmNDRcRX86ol/sJus6g3Jj+CYkD4T/5gNdCWO JrVDy6gxhkTdOjmj74r+UlZF3rm/x3MEhEmkWveasJOryF+aiGi9+UjvgDHHiwUU28Av +1y6tjhB1pPBrogQpqOuWptMo+8I4d39bLmKpiG1pNmsyPZH2bVjvkpryhm7WfJkR148 C6LrJeJ6GkimBmzuKgdvPg5ZcIc9EDFX4PsPgC0LpW6YKcj8U7tK/tDsAiTxHTPU7aDy qAa8Zv6MgDPFo3nByyWpC+0yrw8No80ruodXFWIH9xTfJ6ykgfXllYaOFEcTBxBV7BgK p3kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=UG4zneR+b2HX1vUABd9tEJTmiup5w9fG3+R5EQZb+0w=; b=X9vuaLYUACNyZF9IAKDhvFLr2nTL7w3o2wBx4F2yVuQHanEpihtNtC7PxlXD3pWxVC nCl80WJc1bpqeFDguYHKvLVBfqhNq5J4fde9+yotHw34TaxnP41XY8kUs0vDTpjOaFb2 BkMfbXnKKtWZprXPx/aAnMvRrzoQ8NEgAXQCFEzW5+wRVvhB8I2wsKpFEQEwkYJJH0b5 VSA1tR+b04RLZlwiiHetUt8QETepCh59PlX93UujyIq3ey94Q2DbL2IsNwieZ6BDKL0T n71vrPezs+Q5yLFs5XKm2SmrF/ELNnNNsZPTZcEpQY/gyU/21Ip2Cn1hrNmJZW2w6fAT 67mA== X-Gm-Message-State: AGi0PuacvsEVO/cnvwDuFILVm+YyvKloI8wYa2oFTweTpFzX2A/aDwPj CFCP3D1hoHOPbN50P7a8G+ZuOg== X-Google-Smtp-Source: APiQypIm/Xjji5kQV2xW2buV/Rqqhd1gGi3AXANx2GMzwAiPHMVTVrnTO3qT8sfTAdAnbA3M9ll8eg== X-Received: by 2002:a1c:4e15:: with SMTP id g21mr8007933wmh.29.1587709650747; Thu, 23 Apr 2020 23:27:30 -0700 (PDT) Received: from dell ([2.31.163.63]) by smtp.gmail.com with ESMTPSA id j13sm6722742wro.51.2020.04.23.23.27.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2020 23:27:29 -0700 (PDT) Date: Fri, 24 Apr 2020 07:27:27 +0100 From: Lee Jones To: Aisheng Dong Subject: Re: [PATCH v3 01/13] mfd: Add i.MX generic mix support Message-ID: <20200424062727.GI3612@dell> References: <1586937773-5836-1-git-send-email-abel.vesa@nxp.com> <1586937773-5836-2-git-send-email-abel.vesa@nxp.com> <20200417080747.GE2167633@dell> <20200422091854.rhtkcfrdptwofngs@fsr-ub1664-175> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200423_232734_850890_6C8FFBCF X-CRM114-Status: GOOD ( 27.44 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "devicetree@vger.kernel.org" , Peng Fan , Abel Vesa , "arnd@arndb.de" , Anson Huang , Stephen Boyd , Linux Kernel Mailing List , "linux-clk@vger.kernel.org" , dl-linux-imx , Philipp Zabel , Leonard Crestez , Shawn Guo , Sascha Hauer , "linux-arm-kernel@lists.infradead.org" , Jacky Bai Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCAyMyBBcHIgMjAyMCwgQWlzaGVuZyBEb25nIHdyb3RlOgoKPiA+IEZyb206IEFiZWwg VmVzYSA8YWJlbC52ZXNhQG54cC5jb20+Cj4gPiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDIyLCAy MDIwIDU6MTkgUE0KPiA+IE9uIDIwLTA0LTE3IDA5OjA3OjQ3LCBMZWUgSm9uZXMgd3JvdGU6Cj4g PiA+IE9uIFdlZCwgMTUgQXByIDIwMjAsIEFiZWwgVmVzYSB3cm90ZToKPiA+ID4KPiA+ID4gPiBT b21lIG9mIHRoZSBpLk1YIFNvQ3MgaGF2ZSBhIElQIGZvciBpbnRlcmZhY2luZyB0aGUgZGVkaWNh dGVkIElQcwo+ID4gPiA+IHdpdGggY2xvY2tzLCByZXNldHMgYW5kIGludGVycnVwdHMsIHBsdXMg c29tZSBvdGhlciBzcGVjaWZpYyBjb250cm9sIHJlZ2lzdGVycy4KPiA+ID4gPiBUbyBhbGxvdyB0 aGUgZnVuY3Rpb25hbGl0eSB0byBiZSBzcGxpdCBiZXR3ZWVuIGRyaXZlcnMsIHRoaXMgTUZECj4g PiA+ID4gZHJpdmVyIGlzIGFkZGVkIHRoYXQgaGFzIG9ubHkgdHdvIHB1cnBvc2VzOiByZWdpc3Rl ciB0aGUgZGV2aWNlcyBhbmQKPiA+ID4gPiBtYXAgdGhlIGVudGlyZSByZWdpc3RlciBhZGRyZXNz ZXMuIEV2ZXJ5dGhpbmcgZWxzZSBpcyBsZWZ0IHRvIHRoZQo+ID4gPiA+IGRlZGljYXRlZCBkcml2 ZXJzIHRoYXQgd2lsbCBiaW5kIHRvIHRoZSByZWdpc3RlcmVkIGRldmljZXMuCj4gPiA+ID4KPiA+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBBYmVsIFZlc2EgPGFiZWwudmVzYUBueHAuY29tPgo+ID4gPiA+ IC0tLQo+ID4gPiA+ICBkcml2ZXJzL21mZC9LY29uZmlnICAgfCAxMSArKysrKysrKysrKwo+ID4g PiA+ICBkcml2ZXJzL21mZC9NYWtlZmlsZSAgfCAgMSArCj4gPiA+ID4gIGRyaXZlcnMvbWZkL2lt eC1taXguYyB8IDQ4Cj4gPiA+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKQo+ ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZmQvaW14LW1peC5jCj4gPiA+Cj4g PiA+IEZvciBjb21wbGV0ZW5lc3MgLSBBcm5kJ3MgcmVwbHkgdG8gdGhpcyBwYXRjaDoKPiA+ID4K PiA+IAo+ID4gSSdtIHJlcGx5aW5nIGhlcmUgdG8gQXJuZCdzIHJlcGx5Lgo+ID4gCj4gPiBJJ20g dHJ5aW5nIHRvIGdpdmUgaGVyZSBhIHdob2xlIHBpY3R1cmUgb2YgdGhlIGVudGlyZSBwcm9ibGVt IHdoaWxlIHRoZQo+ID4gZG9jdW1lbnRhdGlvbiBmb3IgaS5NWDhNUCBpcyBfbm90IHlldF8gcHVi bGljLgo+ID4gCj4gPiBIaXN0b3JpY2FsbHksIGVhY2ggSVAgd291bGQgaGF2ZSBpdHMgb3duIGVu Y2xvc3VyZSBmb3IgYWxsIHRoZSByZWxhdGVkIEdQUnMuCj4gPiBTdGFydGluZyB3aXRoIGkuTVg4 TVAgc29tZSBHUFJzIChhbmQgc29tZSBzdWJwYXJ0cykgZnJvbSB0aGUgSVAgd2VyZSBwbGFjZWQK PiA+IGluc2lkZSB0aGVzZSBtaXhlcy4KPiA+IAo+ID4gQXVkaW9taXggZm9yIGV4YW1wbGUsIGhh cyBtdWx0aXBsZSBTQUlzLCBhIFBMTCwgYW5kIHNvbWUgcmVzZXQgYml0cyBmb3IgRUFSQwo+ID4g YW5kIHNvbWUgR1BScyBmb3IgQXVkaW9EU1AuIFRoaXMgbWVhbnMgdGhhdCBpLk1YOE1QIGhhcyA3 IFNBSXMsIDEgRUFSQyBhbmQKPiA+IDEgQXVkaW9EU1AuCj4gPiBGdXR1cmUgcGxhdGZvcm1zIG1p Z2h0IGhhdmUgZGlmZmVyZW50IG51bWJlcnMgb2YgU0FJcywgRUFSQ3Mgb3IgQXVkaW9EU1BzLgo+ ID4gVGhlIFBMTCBjYW4ndCBiZSBwbGFjZWQgaW4gb25lIG9mIHRob3NlIFNBSXMgYW5kIGl0IHdh cyBwbGFjZWQgaW4gYXVkaW9taXguCj4gPiBUaGUgaS5NWDhNUCBoYXMgYXQgbGVhc3QgNCBvZiB0 aGVzZSBtaXhlcy4KPiA+IAo+ID4gTm93LCB0aGUgY29tbW9uYWxpdGllcyBiZXR3ZWVuIGFsbCBt aXhlcyBhcmU6Cj4gPiAgLSBoYXZlIHRoZWlyIG93biBwb3dlciBkb21haW5zCj4gPiAgLSBkcml2 ZW4gYnkgZGVkaWNhdGVkIGNsb2NrIHNsaWNlCj4gPiAgLSBjb250YWluIGNsb2NrcyBhbmQgcmVz ZXRzCj4gPiAgLSBzb21lIHZlcnkgc3Vic3lzdGVtIHNwZWNpZmljIEdQUnMKPiA+IAo+ID4gS25v d2luZyB0aGF0IGVhY2ggbWl4IGhhcyBpdHMgb3duIHBvd2VyIGRvbWFpbiwgQUZBSUNULCBpdCBu ZWVkcyB0byBiZQo+ID4gcmVnaXN0ZXJlZCBhcyBhIHNpbmdsZSBkZXZpY2UuIENvbnNpZGVyaW5n IHRoYXQgaXQgY2FuIGhhdmUgY2xvY2tzIChhdWRpb21peCBoYXMKPiA+IGdhdGVzLCBtdXhlcyBh bmQgcGxscyksIEkgYmVsaWV2ZSB0aGF0IG5lZWRzIGEgY2xvY2sgZHJpdmVyLCBldmVuIG1vcmUg c28gc2luY2UgdGhlCj4gPiBtdXhlcyBuZWVkIHRoZWlyIHBhcmVudHMgZnJvbSB0aGUgcGxhdGZv cm0gY2xvY2sgZHJpdmVyLiBTYW1lIHByaW5jaXBsZSBhcHBsaWVzCj4gPiB0byByZXNldCBiaXRz LiBUaGUgc3Vic3lzdGVtIHNwZWNpZmljIEdQUnMgY2FuIGJlIHJlZ2lzdGVyZWQgYXMgc3lzY29u IGRldmljZXMKPiA+IGFuZCB0YWtlbiBjYXJlIG9mIGJ5IGl0cyBjb3VudGVycGFydCBJUCAoZS5n LiB0aGUgQXVkaW9EU1Agc3BlY2lmaWMgcmVncyB3b3VsZCBiZQo+ID4gdGFrZW4gY2FyZSBvZiBi eSB0aGUgRFNQIGRyaXZlciwgaWYgdGhlcmUgaXMgb25lKS4KPiA+IAo+ID4gTm93IGJhc2VkIG9u IGFsbCBvZiB0aGUgYWJvdmUsIGJ5IHVzaW5nIE1GRCB3ZSB0YWtlIGNhcmUgb2YgdGhlIHBvd2Vy IGRvbWFpbgo+ID4gY29udHJvbCBmb3IgdGhlIGVudGlyZSBtaXgsIHBsdXMsIHRoZSBNRkQgZG9l c24ndCBoYXZlIGFueSBraW5kIG9mIGZ1bmN0aW9uYWxpdHkKPiA+IGJ5IGl0cyBvd24sIHJlbHlp bmcgb24gaXRzIGNoaWxkcmVuIGRldmljZXMgdGhhdCBhcmUgcG9wdWxhdGVkIGJhc2VkIG9uIHdo YXQgaXMgaW4KPiA+IHRoZSBtaXggTUZEIGRldmljZXRyZWUgbm9kZS4KPiA+IAo+IAo+IEhvdyBh Ym91dCBkb2luZyBsaWtlIHRoaXMgd2hpY2ggbWF5YmUgY2FuIGFkZHJlc3MgQXJuZCdzIGNvbmNl cm5zPwo+IGF1ZGlvbWl4OiBhdWRpb21peEAzMGUyMDAwMCB7Cj4gICAgICAgICBjb21wYXRpYmxl ID0gImZzbCxpbXg4bXAtYXVkaW9taXgiLCAic3lzY29uIjsKPiAgICAgICAgIHJlZyA9IDwweDMw ZTIwMDAwIHh4eD4sCj4gICAgICAgICAgICAgICA8MHgzMGUyMHh4eCB4eHg+Owo+ICAgICAgICAg cmVnLW5hbWVzID0gImF1ZGlvIiwgInJlc2V0IiwgIi4uLiI7Cj4gICAgICAgICAjY2xvY2stY2Vs bHMgPSA8MT47Cj4gICAgICAgICAjcmVzZXQtY2VsbHMgPSA8MT47Cj4gICAgICAgICBwb3dlci1k b21haW5zID0gPCZhdWRpb21peF9wZD47Cj4gfQo+IAo+IFRoYXQgbWVhbnMgd2UgaGF2ZSBvbmUg Y29tYm8gZHJpdmVyIHJlZ2lzdGVyaW5nIHR3byBjb250cm9sbGVycyAoY2xrL3Jlc2V0KSwgYm90 aCB1c2UKPiB0aGUgc2FtZSBwb3dlciBkb21haW4gYXMgYXVkaW9taXguCj4gQW5kIGl0IGNhbiBi ZSBlYXNpbHkgZXh0ZW5kZWQgdG8gc3VwcG9ydCBtb3JlIHNlcnZpY2VzIHByb3ZpZGVkIGJ5IGF1 ZGlvbWl4IG92ZXIgc3lzY29uCj4gaWYgbmVlZGVkLgo+IFRoZW4gdGhlICdkdW1teScgTURGIGRy aXZlciBpcyBub3QgbmVlZGVkIGFueW1vcmUuCj4gCj4gSm9uZXMgJiBBcm5kLAo+IEhvdyBkbyB5 b3UgdGhpbms/CgpTb3VuZHMgb2theSBpbiBwcmluY2lwbGUuICBBbnl0aGluZyB0aGF0IHByZXZl bnRzIHRoZSBleGlzdGVuY2Ugb2YgYQpkdW1teSAoYS5rLmEuIHBvaW50bGVzcykgTUZEIG11c3Qg YmUgc2VlbiBhcyBhIHBvc2l0aXZlIG1vdmUuCgotLSAKTGVlIEpvbmVzIFvmnY7nkLzmlq9dCkxp bmFybyBTZXJ2aWNlcyBUZWNobmljYWwgTGVhZApMaW5hcm8ub3JnIOKUgiBPcGVuIHNvdXJjZSBz b2Z0d2FyZSBmb3IgQVJNIFNvQ3MKRm9sbG93IExpbmFybzogRmFjZWJvb2sgfCBUd2l0dGVyIHwg QmxvZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo=