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 B5604ECAAD8 for ; Fri, 16 Sep 2022 09:56:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230298AbiIPJ4Q (ORCPT ); Fri, 16 Sep 2022 05:56:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42712 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230242AbiIPJ4K (ORCPT ); Fri, 16 Sep 2022 05:56:10 -0400 Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0CFE46744C for ; Fri, 16 Sep 2022 02:56:08 -0700 (PDT) Received: by mail-wm1-x335.google.com with SMTP id n35-20020a05600c502300b003b4924c6868so624265wmr.1 for ; Fri, 16 Sep 2022 02:56:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date; bh=BIH+Ua2ctNDqD+U7VTgao+s7qmIoiZgxzg9e85W4kXg=; b=Kv5F+chWVHc4jO3ej5aBUFOzXTLjAvP9hVcBIkcBUyr/Qo1XS7X+JFJGof/jRQ6kU/ 7CxxhssLPA2jUwsVk9vLqiw69tDKYzTZvzlbOThO0G42yqb5krL4ICqM8o6oY9fqfN2Y ppShERCKTOGnTmNSpvyFHRru1MfFBnu8EtTph+SeNMYN7iFNOHReK0mG3mzMQPAybeEV Z0r1ZWDxbJgAfAK6oCKD7thRrhkwHdub9+oGWL3fue5/wsh+tbi4VphqEdatPsIPF+1B hDtWOKgnjr7UGhkMjX2uDRVRmBwJ5Il78g3gibyGOQEDTB+e6nDaEFmjTdbiXGcAGDs9 YSzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date; bh=BIH+Ua2ctNDqD+U7VTgao+s7qmIoiZgxzg9e85W4kXg=; b=BgHLisdK2PuOsUvjpEWOk3MJKwKrCE/WFBBijt/IQLA9cBPrAILV4+7ySnetA/TRro Wm7Np7NPSoEVWZcvJUTvUAcYrukwC8h/WlSAIrFcQTYwWlAAUW8G74u391DQ9YDnD0Bs v0OO6qZX7w4R5vpaKMEmNyOYsf+qvQpITxVtRkIolQmV8oBS0CB1M9Jr3uQXf0hzAe/F meaq/SS5+4nmX1OykH/4HD7oMzmhFjgBh8lUTka/c4TeZLdRz7hYgkobgCcdJ8InMLgE 4NjhhK51bIdaJD2qmukMnuSLPT0HQeFqPNRkbODJ0MVgozMeNuhEZ6d4uifAMhKIQ3IC kuiw== X-Gm-Message-State: ACgBeo1udwrtbggT50JoNTIfkBJmI43/7T9Ay0NFzp0+9bMByawZDNhm kO125cJrxtICaV1Fv0Cd5ZQl4jHGRdexE1Oo X-Google-Smtp-Source: AA6agR7I8maX9O3jTdWbResolXJBvKUAvzJblkF15cLMYKrHvP4pgPOZdox7gyyB8B2iknFJJQIlog== X-Received: by 2002:a1c:4b15:0:b0:3b4:9a81:5f7b with SMTP id y21-20020a1c4b15000000b003b49a815f7bmr9179916wma.95.1663322166554; Fri, 16 Sep 2022 02:56:06 -0700 (PDT) Received: from [10.119.22.201] ([89.101.193.73]) by smtp.gmail.com with ESMTPSA id l3-20020a05600c4f0300b003a5c244fc13sm1861213wmq.2.2022.09.16.02.56.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 16 Sep 2022 02:56:06 -0700 (PDT) Message-ID: <9e006307-f7c7-c68a-e5c3-d0d0b2807d87@linaro.org> Date: Fri, 16 Sep 2022 10:56:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0 Subject: Re: [PATCH v6 06/17] dt-bindings: mfd: amd,pensando-elbasr: Add AMD Pensando Elba System Resource chip Content-Language: en-US To: "Larson, Bradley" , Rob Herring Cc: "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "linux-mmc@vger.kernel.org" , "adrian.hunter@intel.com" , "alcooperx@gmail.com" , "andy.shevchenko@gmail.com" , "arnd@arndb.de" , "brijeshkumar.singh@amd.com" , "catalin.marinas@arm.com" , "gsomlo@gmail.com" , "gerg@linux-m68k.org" , "krzysztof.kozlowski+dt@linaro.org" , "lee.jones@linaro.org" , "broonie@kernel.org" , "yamada.masahiro@socionext.com" , "p.zabel@pengutronix.de" , "piotrs@cadence.com" , "p.yadav@ti.com" , "rdunlap@infradead.org" , "samuel@sholland.org" , "fancer.lancer@gmail.com" , "Suthikulpanit, Suravee" , "Lendacky, Thomas" , "ulf.hansson@linaro.org" , "will@kernel.org" , "devicetree@vger.kernel.org" References: <20220820195750.70861-1-brad@pensando.io> <20220820195750.70861-7-brad@pensando.io> <20220822142544.GA3770388-robh@kernel.org> <554f33b4-d235-5516-e8ff-5bf80d63a9b9@amd.com> <936c5623-07b9-c49d-e113-fc056a4eb9bc@linaro.org> <0852ffa5-9996-0f42-c5a8-d1fe9d39887e@linaro.org> <9a98d026-7f70-a69b-64de-c77419888e42@amd.com> From: Krzysztof Kozlowski In-Reply-To: <9a98d026-7f70-a69b-64de-c77419888e42@amd.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 13/09/2022 22:57, Larson, Bradley wrote: > On 9/8/22 4:27 AM, Krzysztof Kozlowski wrote: >> On 01/09/2022 22:37, Larson, Bradley wrote: >>> On 9/1/22 12:20 AM, Krzysztof Kozlowski wrote: >>>> On 01/09/2022 02:01, Larson, Bradley wrote: >>>>>>> + is implemented by a sub-device reset-controller which accesses >>>>>>> + a CS0 control register. >>>>>>> + >>>>>>> +maintainers: >>>>>>> + - Brad Larson >>>>>>> + >>>>>>> +properties: >>>>>>> + compatible: >>>>>>> + items: >>>>>>> + - enum: >>>>>>> + - amd,pensando-elbasr >>>>>>> + >>>>>>> + spi-max-frequency: >>>>>>> + description: Maximum SPI frequency of the device in Hz. >>>>>> No need for generic descriptions of common properties. >>>>> Changed to "spi-max-frequency: true" and moved to end of properties. >>>> Then you should rather reference spi-peripheral-props just like other >>>> SPI devices. >>> >>> Will look at this dependent on the result of below >>> >>> >>>>>>> + >>>>>>> + reg: >>>>>>> + maxItems: 1 >>>>>>> + >>>>>>> + '#address-cells': >>>>>>> + const: 1 >>>>>>> + >>>>>>> + '#size-cells': >>>>>>> + const: 0 >>>>>>> + >>>>>>> + interrupts: >>>>>>> + maxItems: 1 >>>>>>> + >>>>>>> +required: >>>>>>> + - compatible >>>>>>> + - reg >>>>>>> + - spi-max-frequency >>>>>>> + >>>>>>> +patternProperties: >>>>>>> + '^reset-controller@[a-f0-9]+$': >>>>>>> + $ref: /schemas/reset/amd,pensando-elbasr-reset.yaml >>>>>>> + >>>>>>> +additionalProperties: false >>>>>>> + >>>>>>> +examples: >>>>>>> + - | >>>>>>> + #include >>>>>>> + >>>>>>> + spi { >>>>>>> + #address-cells = <1>; >>>>>>> + #size-cells = <0>; >>>>>>> + num-cs = <4>; >>>>>>> + >>>>>>> + sysc: system-controller@0 { >>>>>>> + compatible = "amd,pensando-elbasr"; >>>>>>> + reg = <0>; >>>>>>> + #address-cells = <1>; >>>>>>> + #size-cells = <0>; >>>>>>> + spi-max-frequency = <12000000>; >>>>>>> + >>>>>>> + rstc: reset-controller@0 { >>>>>>> + compatible = "amd,pensando-elbasr-reset"; >>>>>>> + reg = <0>; >>>>>> What does 0 represent here? A register address within 'elbasr' device? >>>>> Removed, I recall a check threw a warning or error without reg. >>>>> >>>>>> Why do you need a child node for this? Are there other sub-devices and >>>>>> your binding is incomplete? Just put '#reset-cells' in the parent. >>>>> Without a reset-controller node and booting the function >>>>> __of_reset_control_get(...) fails to find a match in the list here >>>> That's not actually the answer to the question. There was no concerns >>>> whether you need or not reset controller. The question was why do you >>>> need a child device instead of elbasr being the reset controller. >>>> >>>> Your answer does not cover this at all, so again - why do you need a >>>> child for this? >>>> >>> If the parent becomes a reset-controller compatible with >>> "amd,pensando-elbasr-reset" then the /dev node will not be created >> Why /dev node will not be created? How bindings affect having or not >> having something in /dev ? I repeat - why? >> >>> as there is no match to "amd,pensando-elbasr" for cs0. For cs0 internal >>> to linux the reset-controller manages one register bit to hardware reset >>> the mmc device. A userspace application opens the device node to manage >>> transceiver leds, system leds, reporting temps to host, other reset >>> controls, etc. Looking at future requirements there likely will be other >>> child devices. >> You mean "amd,pensando-elbasr" will instantiate some more devices? Why >> you cannot add the binding for them now? This is actually important >> because earlier we agreed you remove unit address from children. >> >>> Going down this path with one compatible should reset-elbasr.c just be >>> deleted and fold it into the parent driver pensando-elbasr.c? Then I >>> wonder if it even belongs in drivers/mfd and should just be modified >>> and put in drivers/spi. >> How is it related to bindings? > The compatible "amd,pensando-elbasr" is matched in > drivers/mfd/pensando-elbasr.c Does not matter really... We do not talk about driver, but about hardware and bindings. > which creates /dev/pensr0. for spi chip-selects defined in the > parent node as: Wait, can we skip the driver entirely? I am not reviewing your driver and what it creates under /dev. > >         num-cs = <4>; >         cs-gpios = <0>, <0>, <&porta 1 GPIO_ACTIVE_LOW>, >                    <&porta 7 GPIO_ACTIVE_LOW>; > > The compatible "amd,pensando-elbasr-reset" is in > drivers/reset/reset-elbasr.c Again, why does it matter for the bindings? > which uses regmap to control one bit in the function at cs0 to hardware > reset the eMMC. > This is the reason for the reset-controller child and the two driver > files.  You did not provide reason. You described Linux driver implementation which we do not talk about. We talk about bindings, which are not really related to implementation (at least in most cases). > The > probe in drivers/mfd/pensando-elbasr.c is called 4 times, once per spi > chip-select > and for cs0 mfd_add_devices() is called for the reset controller. > > I'll change "rstc: reset-controller@0" to "rstc: reset-controller". > > Maybe I've gotten off track following what looked like an appropriate model > to follow ("altr,a10sr") that was initially added in 2017 and has the same > device topology which is SoC <= spi => CPLD/FPGA where a10sr has a 3rd > driver > file for a gpio controller resulting in two child nodes. > > In our case its not one function its four in the device where the function > at chip-select 0 is where the hardware team provided the bit to control > eMMC hardware reset.  Is this a bad approach to follow and if so please > recommend an acceptable approach.  Also, "amd,pensando-elbasr" will not > instantiate more devices. > > Snippets below for a10sr in linux-next: Device on other end of spi, > one chip select, two child devices and 3 driver files in mfd, reset, and > gpio. > > FILE: arch/arm/boot/dts/socfpga_arria10_socdk.dtsi: > &spi1 { >         status = "okay"; > >         resource-manager@0 { >                 compatible = "altr,a10sr"; >                 reg = <0>; >                 spi-max-frequency = <100000>; >                 /* low-level active IRQ at GPIO1_5 */ >                 interrupt-parent = <&portb>; >                 interrupts = <5 IRQ_TYPE_LEVEL_LOW>; >                 interrupt-controller; >                 #interrupt-cells = <2>; > >                 a10sr_gpio: gpio-controller { >                         compatible = "altr,a10sr-gpio"; >                         gpio-controller; >                         #gpio-cells = <2>; >                 }; > >                 a10sr_rst: reset-controller { >                         compatible = "altr,a10sr-reset"; >                         #reset-cells = <1>; >                 }; >         }; > }; > > FILE: drivers/mfd/altera-a10sr.c (parent) > static const struct mfd_cell altr_a10sr_subdev_info[] = { >         { >                 .name = "altr_a10sr_gpio", >                 .of_compatible = "altr,a10sr-gpio", >         }, >         { >                 .name = "altr_a10sr_reset", >                 .of_compatible = "altr,a10sr-reset", >         }, I know Linux drivers. No need to paste them here. They are unrelated to this talk. > }; > > static const struct of_device_id altr_a10sr_spi_of_match[] = { >         { .compatible = "altr,a10sr" }, >         { }, > }; > > FILE: drivers/reset/reset-a10sr.c (reset driver) > static const struct of_device_id a10sr_reset_of_match[] = { >         { .compatible = "altr,a10sr-reset" }, >         { }, > }; > > FILE: ./drivers/gpio/gpio-altera-a10sr.c (gpio driver) > static const struct of_device_id altr_a10sr_gpio_of_match[] = { >         { .compatible = "altr,a10sr-gpio" }, >         { }, > }; > > In comparision, the pensando device is also on the other end of spi, > four chip selects with /dev created for each for userspace control, > and one child device on cs0 for hw reset emmc that the Linux block > layer controls (single bit managed only by kernel). > > Pensando: > &spi0 { >         num-cs = <4>; >         cs-gpios = <0>, <0>, <&porta 1 GPIO_ACTIVE_LOW>, >                    <&porta 7 GPIO_ACTIVE_LOW>; >         status = "okay"; >         system-controller@0 { >                 compatible = "amd,pensando-elbasr"; >                 reg = <0>; >                 #address-cells = <1>; >                 #size-cells = <0>; >                 spi-max-frequency = <12000000>; > >                 rstc: reset-controller { >                         compatible = "amd,pensando-elbasr-reset"; >                         #reset-cells = <1>; >                 }; >         }; > >         system-controller@1 { >                 compatible = "amd,pensando-elbasr"; >                 reg = <1>; >                 spi-max-frequency = <12000000>; >         }; > >         system-controller@2 { >                 compatible = "amd,pensando-elbasr"; >                 reg = <2>; >                 spi-max-frequency = <12000000>; >                 interrupt-parent = <&porta>; >                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; >         }; > >         system-controller@3 { >                 compatible = "amd,pensando-elbasr"; >                 reg = <3>; >                 spi-max-frequency = <12000000>; >         }; > }; You replied with quite a response of which 90% is unrelated talk about driver. Please be specific. We talk here only about hardware. Your last DTS might be the answer, but you never explicitly wrote it... So let's check if I understand it correctly. Only some of elbasr block contain reset control? This however does not answer my questions before.... You keep ignoring them. So please answer yes or no: "Are there other sub-devices?" " and your binding is incomplete?" and a new question: "Is reset block (amd,pensando-elbasr-reset) re-usable so it will appear in different device (not in amd,pensando-elbasr)?" Because from what you wrote you should just put reset-cells in the parent... 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 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 886C2ECAAD8 for ; Fri, 16 Sep 2022 09:57:17 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FKDVLic599r+KUSOrrfCdcfz0p91hjt30l13Qlh6D3U=; b=qcbMCUhiiMPtsD k0SfdIeiKmjux4HAIsGDoiGeWPYb9zFICT1Q5fFM7MMfHi7UefQ6nYfODjvG1A7zIl+QqRzs+qG6u 8/Jv3SfLwrObPSv1uLiUonq5+0EaeA+on3vwP6XEMEBR7slKQxvyBPCk+lFCTLqTtjG/dKHOWJoTN 909aBgGtvRZ3EeIIenyg6nf1VkdTCuSj0+i9lp6PZydiE0pWCYm3s4VP4LFOcdOOsRQvnwmJMTmjN ga4NPETGr5xYHG/1XcalKLHJoSypSflk9O7Oau3kAKmPqYz2C9Tbng9n4Mtm+JePd+JNvXT1GdRs2 SPuc+jI5/Yo0sbePpIsw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oZ84z-00BuWo-OC; Fri, 16 Sep 2022 09:56:13 +0000 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oZ84v-00BuU2-49 for linux-arm-kernel@lists.infradead.org; Fri, 16 Sep 2022 09:56:11 +0000 Received: by mail-wm1-x332.google.com with SMTP id o20-20020a05600c4fd400b003b4a516c479so5001407wmq.1 for ; Fri, 16 Sep 2022 02:56:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date; bh=BIH+Ua2ctNDqD+U7VTgao+s7qmIoiZgxzg9e85W4kXg=; b=Kv5F+chWVHc4jO3ej5aBUFOzXTLjAvP9hVcBIkcBUyr/Qo1XS7X+JFJGof/jRQ6kU/ 7CxxhssLPA2jUwsVk9vLqiw69tDKYzTZvzlbOThO0G42yqb5krL4ICqM8o6oY9fqfN2Y ppShERCKTOGnTmNSpvyFHRru1MfFBnu8EtTph+SeNMYN7iFNOHReK0mG3mzMQPAybeEV Z0r1ZWDxbJgAfAK6oCKD7thRrhkwHdub9+oGWL3fue5/wsh+tbi4VphqEdatPsIPF+1B hDtWOKgnjr7UGhkMjX2uDRVRmBwJ5Il78g3gibyGOQEDTB+e6nDaEFmjTdbiXGcAGDs9 YSzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date; bh=BIH+Ua2ctNDqD+U7VTgao+s7qmIoiZgxzg9e85W4kXg=; b=2Fnls+Hsil1QnTiKUDIAhk2sFYeiVqSA+5v4feSGtshUjQ46fuY06BnhOdDkFBKQ9n jb4r1AbqjOuNfZFyo3k1MzYnUBA009nvli9c1uZnQQcCXSFTT1s9e8EMgtAmJLx/vwDr T5Ns3LCwEDANTyDu62/5hDoPznJ1tgUfymYSzeFsxPY7SL63ejbYjLrw3DBCYdnkg1eC jyypKECNttqmb+BViYgG3bECDQD2olox8gvaVXiNFR+a/EMCmvAXuqxXlc/C+2GU6Myf 0m/6+UUbtDjWBFk1+Hv5TABagHGGx0mdmOQt7FENKwt2ukshQu9ad2ErfKozbcLmOcWm oxZA== X-Gm-Message-State: ACgBeo1Cr00sNRJnh+HYwCulmjxs9WhDkqKqvajgJ6REdXcLyxALwgUe gtIFwRkVQGrHXWzLQslWU0iT7g== X-Google-Smtp-Source: AA6agR7I8maX9O3jTdWbResolXJBvKUAvzJblkF15cLMYKrHvP4pgPOZdox7gyyB8B2iknFJJQIlog== X-Received: by 2002:a1c:4b15:0:b0:3b4:9a81:5f7b with SMTP id y21-20020a1c4b15000000b003b49a815f7bmr9179916wma.95.1663322166554; Fri, 16 Sep 2022 02:56:06 -0700 (PDT) Received: from [10.119.22.201] ([89.101.193.73]) by smtp.gmail.com with ESMTPSA id l3-20020a05600c4f0300b003a5c244fc13sm1861213wmq.2.2022.09.16.02.56.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 16 Sep 2022 02:56:06 -0700 (PDT) Message-ID: <9e006307-f7c7-c68a-e5c3-d0d0b2807d87@linaro.org> Date: Fri, 16 Sep 2022 10:56:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0 Subject: Re: [PATCH v6 06/17] dt-bindings: mfd: amd,pensando-elbasr: Add AMD Pensando Elba System Resource chip Content-Language: en-US To: "Larson, Bradley" , Rob Herring Cc: "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "linux-mmc@vger.kernel.org" , "adrian.hunter@intel.com" , "alcooperx@gmail.com" , "andy.shevchenko@gmail.com" , "arnd@arndb.de" , "brijeshkumar.singh@amd.com" , "catalin.marinas@arm.com" , "gsomlo@gmail.com" , "gerg@linux-m68k.org" , "krzysztof.kozlowski+dt@linaro.org" , "lee.jones@linaro.org" , "broonie@kernel.org" , "yamada.masahiro@socionext.com" , "p.zabel@pengutronix.de" , "piotrs@cadence.com" , "p.yadav@ti.com" , "rdunlap@infradead.org" , "samuel@sholland.org" , "fancer.lancer@gmail.com" , "Suthikulpanit, Suravee" , "Lendacky, Thomas" , "ulf.hansson@linaro.org" , "will@kernel.org" , "devicetree@vger.kernel.org" References: <20220820195750.70861-1-brad@pensando.io> <20220820195750.70861-7-brad@pensando.io> <20220822142544.GA3770388-robh@kernel.org> <554f33b4-d235-5516-e8ff-5bf80d63a9b9@amd.com> <936c5623-07b9-c49d-e113-fc056a4eb9bc@linaro.org> <0852ffa5-9996-0f42-c5a8-d1fe9d39887e@linaro.org> <9a98d026-7f70-a69b-64de-c77419888e42@amd.com> From: Krzysztof Kozlowski In-Reply-To: <9a98d026-7f70-a69b-64de-c77419888e42@amd.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220916_025609_205795_7DAACC0D X-CRM114-Status: GOOD ( 38.29 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMTMvMDkvMjAyMiAyMjo1NywgTGFyc29uLCBCcmFkbGV5IHdyb3RlOgo+IE9uIDkvOC8yMiA0 OjI3IEFNLCBLcnp5c3p0b2YgS296bG93c2tpIHdyb3RlOgo+PiBPbiAwMS8wOS8yMDIyIDIyOjM3 LCBMYXJzb24sIEJyYWRsZXkgd3JvdGU6Cj4+PiBPbiA5LzEvMjIgMTI6MjAgQU0sIEtyenlzenRv ZiBLb3psb3dza2kgd3JvdGU6Cj4+Pj4gT24gMDEvMDkvMjAyMiAwMjowMSwgTGFyc29uLCBCcmFk bGV5IHdyb3RlOgo+Pj4+Pj4+ICsgIGlzIGltcGxlbWVudGVkIGJ5IGEgc3ViLWRldmljZSByZXNl dC1jb250cm9sbGVyIHdoaWNoIGFjY2Vzc2VzCj4+Pj4+Pj4gKyAgYSBDUzAgY29udHJvbCByZWdp c3Rlci4KPj4+Pj4+PiArCj4+Pj4+Pj4gK21haW50YWluZXJzOgo+Pj4+Pj4+ICsgIC0gQnJhZCBM YXJzb24gPGJsYXJzb25AYW1kLmNvbT4KPj4+Pj4+PiArCj4+Pj4+Pj4gK3Byb3BlcnRpZXM6Cj4+ Pj4+Pj4gKyAgY29tcGF0aWJsZToKPj4+Pj4+PiArICAgIGl0ZW1zOgo+Pj4+Pj4+ICsgICAgICAt IGVudW06Cj4+Pj4+Pj4gKyAgICAgICAgICAtIGFtZCxwZW5zYW5kby1lbGJhc3IKPj4+Pj4+PiAr Cj4+Pj4+Pj4gKyAgc3BpLW1heC1mcmVxdWVuY3k6Cj4+Pj4+Pj4gKyAgICBkZXNjcmlwdGlvbjog TWF4aW11bSBTUEkgZnJlcXVlbmN5IG9mIHRoZSBkZXZpY2UgaW4gSHouCj4+Pj4+PiBObyBuZWVk IGZvciBnZW5lcmljIGRlc2NyaXB0aW9ucyBvZiBjb21tb24gcHJvcGVydGllcy4KPj4+Pj4gQ2hh bmdlZCB0byAic3BpLW1heC1mcmVxdWVuY3k6IHRydWUiIGFuZCBtb3ZlZCB0byBlbmQgb2YgcHJv cGVydGllcy4KPj4+PiBUaGVuIHlvdSBzaG91bGQgcmF0aGVyIHJlZmVyZW5jZSBzcGktcGVyaXBo ZXJhbC1wcm9wcyBqdXN0IGxpa2Ugb3RoZXIKPj4+PiBTUEkgZGV2aWNlcy4KPj4+Cj4+PiBXaWxs IGxvb2sgYXQgdGhpcyBkZXBlbmRlbnQgb24gdGhlIHJlc3VsdCBvZiBiZWxvdwo+Pj4KPj4+Cj4+ Pj4+Pj4gKwo+Pj4+Pj4+ICsgIHJlZzoKPj4+Pj4+PiArICAgIG1heEl0ZW1zOiAxCj4+Pj4+Pj4g Kwo+Pj4+Pj4+ICsgICcjYWRkcmVzcy1jZWxscyc6Cj4+Pj4+Pj4gKyAgICBjb25zdDogMQo+Pj4+ Pj4+ICsKPj4+Pj4+PiArICAnI3NpemUtY2VsbHMnOgo+Pj4+Pj4+ICsgICAgY29uc3Q6IDAKPj4+ Pj4+PiArCj4+Pj4+Pj4gKyAgaW50ZXJydXB0czoKPj4+Pj4+PiArICAgIG1heEl0ZW1zOiAxCj4+ Pj4+Pj4gKwo+Pj4+Pj4+ICtyZXF1aXJlZDoKPj4+Pj4+PiArICAtIGNvbXBhdGlibGUKPj4+Pj4+ PiArICAtIHJlZwo+Pj4+Pj4+ICsgIC0gc3BpLW1heC1mcmVxdWVuY3kKPj4+Pj4+PiArCj4+Pj4+ Pj4gK3BhdHRlcm5Qcm9wZXJ0aWVzOgo+Pj4+Pj4+ICsgICdecmVzZXQtY29udHJvbGxlckBbYS1m MC05XSskJzoKPj4+Pj4+PiArICAgICRyZWY6IC9zY2hlbWFzL3Jlc2V0L2FtZCxwZW5zYW5kby1l bGJhc3ItcmVzZXQueWFtbAo+Pj4+Pj4+ICsKPj4+Pj4+PiArYWRkaXRpb25hbFByb3BlcnRpZXM6 IGZhbHNlCj4+Pj4+Pj4gKwo+Pj4+Pj4+ICtleGFtcGxlczoKPj4+Pj4+PiArICAtIHwKPj4+Pj4+ PiArICAgICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9hcm0tZ2lj Lmg+Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgc3BpIHsKPj4+Pj4+PiArICAgICAgICAjYWRkcmVz cy1jZWxscyA9IDwxPjsKPj4+Pj4+PiArICAgICAgICAjc2l6ZS1jZWxscyA9IDwwPjsKPj4+Pj4+ PiArICAgICAgICBudW0tY3MgPSA8ND47Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgICAgIHN5c2M6 IHN5c3RlbS1jb250cm9sbGVyQDAgewo+Pj4+Pj4+ICsgICAgICAgICAgICBjb21wYXRpYmxlID0g ImFtZCxwZW5zYW5kby1lbGJhc3IiOwo+Pj4+Pj4+ICsgICAgICAgICAgICByZWcgPSA8MD47Cj4+ Pj4+Pj4gKyAgICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0gPDE+Owo+Pj4+Pj4+ICsgICAgICAg ICAgICAjc2l6ZS1jZWxscyA9IDwwPjsKPj4+Pj4+PiArICAgICAgICAgICAgc3BpLW1heC1mcmVx dWVuY3kgPSA8MTIwMDAwMDA+Owo+Pj4+Pj4+ICsKPj4+Pj4+PiArICAgICAgICAgICAgcnN0Yzog cmVzZXQtY29udHJvbGxlckAwIHsKPj4+Pj4+PiArICAgICAgICAgICAgICAgIGNvbXBhdGlibGUg PSAiYW1kLHBlbnNhbmRvLWVsYmFzci1yZXNldCI7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICBy ZWcgPSA8MD47Cj4+Pj4+PiBXaGF0IGRvZXMgMCByZXByZXNlbnQgaGVyZT8gQSByZWdpc3RlciBh ZGRyZXNzIHdpdGhpbiAnZWxiYXNyJyBkZXZpY2U/Cj4+Pj4+IFJlbW92ZWQsIEkgcmVjYWxsIGEg Y2hlY2sgdGhyZXcgYSB3YXJuaW5nIG9yIGVycm9yIHdpdGhvdXQgcmVnLgo+Pj4+Pgo+Pj4+Pj4g V2h5IGRvIHlvdSBuZWVkIGEgY2hpbGQgbm9kZSBmb3IgdGhpcz8gQXJlIHRoZXJlIG90aGVyIHN1 Yi1kZXZpY2VzIGFuZAo+Pj4+Pj4geW91ciBiaW5kaW5nIGlzIGluY29tcGxldGU/IEp1c3QgcHV0 ICcjcmVzZXQtY2VsbHMnIGluIHRoZSBwYXJlbnQuCj4+Pj4+IFdpdGhvdXQgYSByZXNldC1jb250 cm9sbGVyIG5vZGUgYW5kIGJvb3RpbmcgdGhlIGZ1bmN0aW9uCj4+Pj4+IF9fb2ZfcmVzZXRfY29u dHJvbF9nZXQoLi4uKSBmYWlscyB0byBmaW5kIGEgbWF0Y2ggaW4gdGhlIGxpc3QgaGVyZQo+Pj4+ IFRoYXQncyBub3QgYWN0dWFsbHkgdGhlIGFuc3dlciB0byB0aGUgcXVlc3Rpb24uIFRoZXJlIHdh cyBubyBjb25jZXJucwo+Pj4+IHdoZXRoZXIgeW91IG5lZWQgb3Igbm90IHJlc2V0IGNvbnRyb2xs ZXIuIFRoZSBxdWVzdGlvbiB3YXMgd2h5IGRvIHlvdQo+Pj4+IG5lZWQgYSBjaGlsZCBkZXZpY2Ug aW5zdGVhZCBvZiBlbGJhc3IgYmVpbmcgdGhlIHJlc2V0IGNvbnRyb2xsZXIuCj4+Pj4KPj4+PiBZ b3VyIGFuc3dlciBkb2VzIG5vdCBjb3ZlciB0aGlzIGF0IGFsbCwgc28gYWdhaW4gLSB3aHkgZG8g eW91IG5lZWQgYQo+Pj4+IGNoaWxkIGZvciB0aGlzPwo+Pj4+Cj4+PiBJZiB0aGUgcGFyZW50IGJl Y29tZXMgYSByZXNldC1jb250cm9sbGVyIGNvbXBhdGlibGUgd2l0aAo+Pj4gImFtZCxwZW5zYW5k by1lbGJhc3ItcmVzZXQiIHRoZW4gdGhlIC9kZXYgbm9kZSB3aWxsIG5vdCBiZSBjcmVhdGVkCj4+ IFdoeSAvZGV2IG5vZGUgd2lsbCBub3QgYmUgY3JlYXRlZD8gSG93IGJpbmRpbmdzIGFmZmVjdCBo YXZpbmcgb3Igbm90Cj4+IGhhdmluZyBzb21ldGhpbmcgaW4gL2RldiA/CgpJIHJlcGVhdCAtIHdo eT8KCj4+Cj4+PiBhcyB0aGVyZSBpcyBubyBtYXRjaCB0byAiYW1kLHBlbnNhbmRvLWVsYmFzciIg Zm9yIGNzMC4gIEZvciBjczAgaW50ZXJuYWwKPj4+IHRvIGxpbnV4IHRoZSByZXNldC1jb250cm9s bGVyIG1hbmFnZXMgb25lIHJlZ2lzdGVyIGJpdCB0byBoYXJkd2FyZSByZXNldAo+Pj4gdGhlIG1t YyBkZXZpY2UuICBBIHVzZXJzcGFjZSBhcHBsaWNhdGlvbiBvcGVucyB0aGUgZGV2aWNlIG5vZGUg dG8gbWFuYWdlCj4+PiB0cmFuc2NlaXZlciBsZWRzLCBzeXN0ZW0gbGVkcywgcmVwb3J0aW5nIHRl bXBzIHRvIGhvc3QsIG90aGVyIHJlc2V0Cj4+PiBjb250cm9scywgZXRjLiAgTG9va2luZyBhdCBm dXR1cmUgcmVxdWlyZW1lbnRzIHRoZXJlIGxpa2VseSB3aWxsIGJlIG90aGVyCj4+PiBjaGlsZCBk ZXZpY2VzLgo+PiBZb3UgbWVhbiAiYW1kLHBlbnNhbmRvLWVsYmFzciIgd2lsbCBpbnN0YW50aWF0 ZSBzb21lIG1vcmUgZGV2aWNlcz8gV2h5Cj4+IHlvdSBjYW5ub3QgYWRkIHRoZSBiaW5kaW5nIGZv ciB0aGVtIG5vdz8gVGhpcyBpcyBhY3R1YWxseSBpbXBvcnRhbnQKPj4gYmVjYXVzZSBlYXJsaWVy IHdlIGFncmVlZCB5b3UgcmVtb3ZlIHVuaXQgYWRkcmVzcyBmcm9tIGNoaWxkcmVuLgo+Pgo+Pj4g R29pbmcgZG93biB0aGlzIHBhdGggd2l0aCBvbmUgY29tcGF0aWJsZSBzaG91bGQgcmVzZXQtZWxi YXNyLmMganVzdCBiZQo+Pj4gZGVsZXRlZCBhbmQgZm9sZCBpdCBpbnRvIHRoZSBwYXJlbnQgZHJp dmVyIHBlbnNhbmRvLWVsYmFzci5jPyBUaGVuIEkKPj4+IHdvbmRlciBpZiBpdCBldmVuIGJlbG9u Z3MgaW4gZHJpdmVycy9tZmQgYW5kIHNob3VsZCBqdXN0IGJlIG1vZGlmaWVkCj4+PiBhbmQgcHV0 IGluIGRyaXZlcnMvc3BpLgo+PiBIb3cgaXMgaXQgcmVsYXRlZCB0byBiaW5kaW5ncz8KPiBUaGUg Y29tcGF0aWJsZSAiYW1kLHBlbnNhbmRvLWVsYmFzciIgaXMgbWF0Y2hlZCBpbiAKPiBkcml2ZXJz L21mZC9wZW5zYW5kby1lbGJhc3IuYwoKRG9lcyBub3QgbWF0dGVyIHJlYWxseS4uLiBXZSBkbyBu b3QgdGFsayBhYm91dCBkcml2ZXIsIGJ1dCBhYm91dApoYXJkd2FyZSBhbmQgYmluZGluZ3MuCgo+ IHdoaWNoIGNyZWF0ZXMgL2Rldi9wZW5zcjAuPGNzPiBmb3Igc3BpIGNoaXAtc2VsZWN0cyBkZWZp bmVkIGluIHRoZSAKPiBwYXJlbnQgbm9kZSBhczoKCldhaXQsIGNhbiB3ZSBza2lwIHRoZSBkcml2 ZXIgZW50aXJlbHk/IEkgYW0gbm90IHJldmlld2luZyB5b3VyIGRyaXZlcgphbmQgd2hhdCBpdCBj cmVhdGVzIHVuZGVyIC9kZXYuCgo+IAo+ICDCoMKgwqDCoMKgwqDCoCBudW0tY3MgPSA8ND47Cj4g IMKgwqDCoMKgwqDCoMKgIGNzLWdwaW9zID0gPDA+LCA8MD4sIDwmcG9ydGEgMSBHUElPX0FDVElW RV9MT1c+LAo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPCZwb3J0YSA3 IEdQSU9fQUNUSVZFX0xPVz47Cj4gCj4gVGhlIGNvbXBhdGlibGUgImFtZCxwZW5zYW5kby1lbGJh c3ItcmVzZXQiIGlzIGluIAo+IGRyaXZlcnMvcmVzZXQvcmVzZXQtZWxiYXNyLmMKCkFnYWluLCB3 aHkgZG9lcyBpdCBtYXR0ZXIgZm9yIHRoZSBiaW5kaW5ncz8KCj4gd2hpY2ggdXNlcyByZWdtYXAg dG8gY29udHJvbCBvbmUgYml0IGluIHRoZSBmdW5jdGlvbiBhdCBjczAgdG8gaGFyZHdhcmUgCj4g cmVzZXQgdGhlIGVNTUMuCj4gVGhpcyBpcyB0aGUgcmVhc29uIGZvciB0aGUgcmVzZXQtY29udHJv bGxlciBjaGlsZCBhbmQgdGhlIHR3byBkcml2ZXIgCj4gZmlsZXMuwqAgCgpZb3UgZGlkIG5vdCBw cm92aWRlIHJlYXNvbi4gWW91IGRlc2NyaWJlZCBMaW51eCBkcml2ZXIgaW1wbGVtZW50YXRpb24K d2hpY2ggd2UgZG8gbm90IHRhbGsgYWJvdXQuIFdlIHRhbGsgYWJvdXQgYmluZGluZ3MsIHdoaWNo IGFyZSBub3QgcmVhbGx5CnJlbGF0ZWQgdG8gaW1wbGVtZW50YXRpb24gKGF0IGxlYXN0IGluIG1v c3QgY2FzZXMpLgoKPiBUaGUKPiBwcm9iZSBpbiBkcml2ZXJzL21mZC9wZW5zYW5kby1lbGJhc3Iu YyBpcyBjYWxsZWQgNCB0aW1lcywgb25jZSBwZXIgc3BpIAo+IGNoaXAtc2VsZWN0Cj4gYW5kIGZv ciBjczAgbWZkX2FkZF9kZXZpY2VzKCkgaXMgY2FsbGVkIGZvciB0aGUgcmVzZXQgY29udHJvbGxl ci4KPiAKPiBJJ2xsIGNoYW5nZSAicnN0YzogcmVzZXQtY29udHJvbGxlckAwIiB0byAicnN0Yzog cmVzZXQtY29udHJvbGxlciIuCj4gCj4gTWF5YmUgSSd2ZSBnb3R0ZW4gb2ZmIHRyYWNrIGZvbGxv d2luZyB3aGF0IGxvb2tlZCBsaWtlIGFuIGFwcHJvcHJpYXRlIG1vZGVsCj4gdG8gZm9sbG93ICgi YWx0cixhMTBzciIpIHRoYXQgd2FzIGluaXRpYWxseSBhZGRlZCBpbiAyMDE3IGFuZCBoYXMgdGhl IHNhbWUKPiBkZXZpY2UgdG9wb2xvZ3kgd2hpY2ggaXMgU29DIDw9IHNwaSA9PiBDUExEL0ZQR0Eg d2hlcmUgYTEwc3IgaGFzIGEgM3JkIAo+IGRyaXZlcgo+IGZpbGUgZm9yIGEgZ3BpbyBjb250cm9s bGVyIHJlc3VsdGluZyBpbiB0d28gY2hpbGQgbm9kZXMuCj4gCj4gSW4gb3VyIGNhc2UgaXRzIG5v dCBvbmUgZnVuY3Rpb24gaXRzIGZvdXIgaW4gdGhlIGRldmljZSB3aGVyZSB0aGUgZnVuY3Rpb24K PiBhdCBjaGlwLXNlbGVjdCAwIGlzIHdoZXJlIHRoZSBoYXJkd2FyZSB0ZWFtIHByb3ZpZGVkIHRo ZSBiaXQgdG8gY29udHJvbAo+IGVNTUMgaGFyZHdhcmUgcmVzZXQuwqAgSXMgdGhpcyBhIGJhZCBh cHByb2FjaCB0byBmb2xsb3cgYW5kIGlmIHNvIHBsZWFzZQo+IHJlY29tbWVuZCBhbiBhY2NlcHRh YmxlIGFwcHJvYWNoLsKgIEFsc28sICJhbWQscGVuc2FuZG8tZWxiYXNyIiB3aWxsIG5vdAo+IGlu c3RhbnRpYXRlIG1vcmUgZGV2aWNlcy4KPiAKPiBTbmlwcGV0cyBiZWxvdyBmb3IgYTEwc3IgaW4g bGludXgtbmV4dDogRGV2aWNlIG9uIG90aGVyIGVuZCBvZiBzcGksCj4gb25lIGNoaXAgc2VsZWN0 LCB0d28gY2hpbGQgZGV2aWNlcyBhbmQgMyBkcml2ZXIgZmlsZXMgaW4gbWZkLCByZXNldCwgYW5k IAo+IGdwaW8uCj4gCj4gRklMRTogYXJjaC9hcm0vYm9vdC9kdHMvc29jZnBnYV9hcnJpYTEwX3Nv Y2RrLmR0c2k6Cj4gJnNwaTEgewo+ICDCoMKgwqDCoMKgwqDCoCBzdGF0dXMgPSAib2theSI7Cj4g Cj4gIMKgwqDCoMKgwqDCoMKgIHJlc291cmNlLW1hbmFnZXJAMCB7Cj4gIMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBjb21wYXRpYmxlID0gImFsdHIsYTEwc3IiOwo+ICDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVnID0gPDA+Owo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgc3BpLW1heC1mcmVxdWVuY3kgPSA8MTAwMDAwPjsKPiAgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC8qIGxvdy1sZXZlbCBhY3RpdmUgSVJRIGF0IEdQSU8xXzUgKi8KPiAg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludGVycnVwdC1wYXJlbnQgPSA8JnBvcnRi PjsKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludGVycnVwdHMgPSA8NSBJUlFf VFlQRV9MRVZFTF9MT1c+Owo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ZXJy dXB0LWNvbnRyb2xsZXI7Cj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjaW50ZXJy dXB0LWNlbGxzID0gPDI+Owo+IAo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYTEw c3JfZ3BpbzogZ3Bpby1jb250cm9sbGVyIHsKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBjb21wYXRpYmxlID0gImFsdHIsYTEwc3ItZ3BpbyI7Cj4gIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ3Bpby1jb250cm9s bGVyOwo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICNn cGlvLWNlbGxzID0gPDI+Owo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfTsKPiAK PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGExMHNyX3JzdDogcmVzZXQtY29udHJv bGxlciB7Cj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Y29tcGF0aWJsZSA9ICJhbHRyLGExMHNyLXJlc2V0IjsKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjcmVzZXQtY2VsbHMgPSA8MT47Cj4gIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+ICDCoMKgwqDCoMKgwqDCoCB9Owo+IH07Cj4gCj4g RklMRTogZHJpdmVycy9tZmQvYWx0ZXJhLWExMHNyLmMgKHBhcmVudCkKPiBzdGF0aWMgY29uc3Qg c3RydWN0IG1mZF9jZWxsIGFsdHJfYTEwc3Jfc3ViZGV2X2luZm9bXSA9IHsKPiAgwqDCoMKgwqDC oMKgwqAgewo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLm5hbWUgPSAiYWx0cl9h MTBzcl9ncGlvIiwKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5vZl9jb21wYXRp YmxlID0gImFsdHIsYTEwc3ItZ3BpbyIsCj4gIMKgwqDCoMKgwqDCoMKgIH0sCj4gIMKgwqDCoMKg wqDCoMKgIHsKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5uYW1lID0gImFsdHJf YTEwc3JfcmVzZXQiLAo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLm9mX2NvbXBh dGlibGUgPSAiYWx0cixhMTBzci1yZXNldCIsCj4gIMKgwqDCoMKgwqDCoMKgIH0sCgpJIGtub3cg TGludXggZHJpdmVycy4gTm8gbmVlZCB0byBwYXN0ZSB0aGVtIGhlcmUuIFRoZXkgYXJlIHVucmVs YXRlZCB0bwp0aGlzIHRhbGsuCgo+IH07Cj4gCj4gc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZp Y2VfaWQgYWx0cl9hMTBzcl9zcGlfb2ZfbWF0Y2hbXSA9IHsKPiAgwqDCoMKgwqDCoMKgwqAgeyAu Y29tcGF0aWJsZSA9ICJhbHRyLGExMHNyIiB9LAo+ICDCoMKgwqDCoMKgwqDCoCB7IH0sCj4gfTsK PiAKPiBGSUxFOiBkcml2ZXJzL3Jlc2V0L3Jlc2V0LWExMHNyLmMgKHJlc2V0IGRyaXZlcikKPiBz dGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhMTBzcl9yZXNldF9vZl9tYXRjaFtdID0g ewo+ICDCoMKgwqDCoMKgwqDCoCB7IC5jb21wYXRpYmxlID0gImFsdHIsYTEwc3ItcmVzZXQiIH0s Cj4gIMKgwqDCoMKgwqDCoMKgIHsgfSwKPiB9Owo+IAo+IEZJTEU6IC4vZHJpdmVycy9ncGlvL2dw aW8tYWx0ZXJhLWExMHNyLmMgKGdwaW8gZHJpdmVyKQo+IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkIGFsdHJfYTEwc3JfZ3Bpb19vZl9tYXRjaFtdID0gewo+ICDCoMKgwqDCoMKgwqDC oCB7IC5jb21wYXRpYmxlID0gImFsdHIsYTEwc3ItZ3BpbyIgfSwKPiAgwqDCoMKgwqDCoMKgwqAg eyB9LAo+IH07Cj4gCj4gSW4gY29tcGFyaXNpb24sIHRoZSBwZW5zYW5kbyBkZXZpY2UgaXMgYWxz byBvbiB0aGUgb3RoZXIgZW5kIG9mIHNwaSwKPiBmb3VyIGNoaXAgc2VsZWN0cyB3aXRoIC9kZXYg Y3JlYXRlZCBmb3IgZWFjaCBmb3IgdXNlcnNwYWNlIGNvbnRyb2wsCj4gYW5kIG9uZSBjaGlsZCBk ZXZpY2Ugb24gY3MwIGZvciBodyByZXNldCBlbW1jIHRoYXQgdGhlIExpbnV4IGJsb2NrCj4gbGF5 ZXIgY29udHJvbHMgKHNpbmdsZSBiaXQgbWFuYWdlZCBvbmx5IGJ5IGtlcm5lbCkuCj4gCj4gUGVu c2FuZG86Cj4gJnNwaTAgewo+ICDCoMKgwqDCoMKgwqDCoCBudW0tY3MgPSA8ND47Cj4gIMKgwqDC oMKgwqDCoMKgIGNzLWdwaW9zID0gPDA+LCA8MD4sIDwmcG9ydGEgMSBHUElPX0FDVElWRV9MT1c+ LAo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPCZwb3J0YSA3IEdQSU9f QUNUSVZFX0xPVz47Cj4gIMKgwqDCoMKgwqDCoMKgIHN0YXR1cyA9ICJva2F5IjsKPiAgwqDCoMKg wqDCoMKgwqAgc3lzdGVtLWNvbnRyb2xsZXJAMCB7Cj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBjb21wYXRpYmxlID0gImFtZCxwZW5zYW5kby1lbGJhc3IiOwo+ICDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVnID0gPDA+Owo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgI2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAjc2l6ZS1jZWxscyA9IDwwPjsKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHNwaS1tYXgtZnJlcXVlbmN5ID0gPDEyMDAwMDAwPjsKPiAKPiAgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHJzdGM6IHJlc2V0LWNvbnRyb2xsZXIgewo+ICDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbXBhdGlibGUgPSAiYW1kLHBlbnNh bmRvLWVsYmFzci1yZXNldCI7Cj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgI3Jlc2V0LWNlbGxzID0gPDE+Owo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfTsKPiAgwqDCoMKgwqDCoMKgwqAgfTsKPiAKPiAgwqDCoMKgwqDCoMKgwqAgc3lz dGVtLWNvbnRyb2xsZXJAMSB7Cj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb21w YXRpYmxlID0gImFtZCxwZW5zYW5kby1lbGJhc3IiOwo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgcmVnID0gPDE+Owo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Bp LW1heC1mcmVxdWVuY3kgPSA8MTIwMDAwMDA+Owo+ICDCoMKgwqDCoMKgwqDCoCB9Owo+IAo+ICDC oMKgwqDCoMKgwqDCoCBzeXN0ZW0tY29udHJvbGxlckAyIHsKPiAgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGNvbXBhdGlibGUgPSAiYW1kLHBlbnNhbmRvLWVsYmFzciI7Cj4gIMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWcgPSA8Mj47Cj4gIMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzcGktbWF4LWZyZXF1ZW5jeSA9IDwxMjAwMDAwMD47Cj4gIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnRlcnJ1cHQtcGFyZW50ID0gPCZwb3J0YT47Cj4gIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnRlcnJ1cHRzID0gPDAgSVJRX1RZUEVfTEVW RUxfTE9XPjsKPiAgwqDCoMKgwqDCoMKgwqAgfTsKPiAKPiAgwqDCoMKgwqDCoMKgwqAgc3lzdGVt LWNvbnRyb2xsZXJAMyB7Cj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb21wYXRp YmxlID0gImFtZCxwZW5zYW5kby1lbGJhc3IiOwo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcmVnID0gPDM+Owo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3BpLW1h eC1mcmVxdWVuY3kgPSA8MTIwMDAwMDA+Owo+ICDCoMKgwqDCoMKgwqDCoCB9Owo+IH07CgpZb3Ug cmVwbGllZCB3aXRoIHF1aXRlIGEgcmVzcG9uc2Ugb2Ygd2hpY2ggOTAlIGlzIHVucmVsYXRlZCB0 YWxrIGFib3V0CmRyaXZlci4gUGxlYXNlIGJlIHNwZWNpZmljLiBXZSB0YWxrIGhlcmUgb25seSBh Ym91dCBoYXJkd2FyZS4KCllvdXIgbGFzdCBEVFMgbWlnaHQgYmUgdGhlIGFuc3dlciwgYnV0IHlv dSBuZXZlciBleHBsaWNpdGx5IHdyb3RlIGl0Li4uClNvIGxldCdzIGNoZWNrIGlmIEkgdW5kZXJz dGFuZCBpdCBjb3JyZWN0bHkuIE9ubHkgc29tZSBvZiBlbGJhc3IgYmxvY2sKY29udGFpbiByZXNl dCBjb250cm9sPwoKVGhpcyBob3dldmVyIGRvZXMgbm90IGFuc3dlciBteSBxdWVzdGlvbnMgYmVm b3JlLi4uLiBZb3Uga2VlcCBpZ25vcmluZwp0aGVtLiBTbyBwbGVhc2UgYW5zd2VyIHllcyBvciBu bzoKCiJBcmUgdGhlcmUgb3RoZXIgc3ViLWRldmljZXM/IgoiIGFuZCB5b3VyIGJpbmRpbmcgaXMg aW5jb21wbGV0ZT8iCgphbmQgYSBuZXcgcXVlc3Rpb246CiJJcyByZXNldCBibG9jayAoYW1kLHBl bnNhbmRvLWVsYmFzci1yZXNldCkgcmUtdXNhYmxlIHNvIGl0IHdpbGwgYXBwZWFyCmluIGRpZmZl cmVudCBkZXZpY2UgKG5vdCBpbiBhbWQscGVuc2FuZG8tZWxiYXNyKT8iCgpCZWNhdXNlIGZyb20g d2hhdCB5b3Ugd3JvdGUgeW91IHNob3VsZCBqdXN0IHB1dCByZXNldC1jZWxscyBpbiB0aGUgcGFy ZW50Li4uCgoKCkJlc3QgcmVnYXJkcywKS3J6eXN6dG9mCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==