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 50D5DC83F27 for ; Tue, 15 Jul 2025 20:21:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date :Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=c3FvSx6o8Ig7hqIemWG3aGM0Aly8D1whtV4O1eHlt+Y=; b=nXieuBu5OwhOXUWg4A1iiXKLUK 6biGOmWiTxhE+901e9uo3IbHBgwgxMo50yFDb1gxygRtzHoonSRED+lyUHv+GxJtgpL5WpkW0Z7f6 8s1jgcLqHDzD2F+a9pMSL9sHaJeACG0rCUypE88ckT+nPrxfZJgtHTop3kNfOkVa0DMF1cxeqyh1O dQRmKMbh7nPTjbHSqEG238co9iV6JZyeBELgiqG15y2OUP7V4yvMnv0DvhoGefqzpQpA+RnJzXmc7 Yxgt0oxmOT6vNU7b1MWwUxwfPhSaDFIqau9lZHDPchhDV0UnK9Nyt/WC7cv5W5rJ4t9OzllWjWZe5 uodei7aQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1ubm9r-00000006AfF-494p; Tue, 15 Jul 2025 20:21:48 +0000 Received: from gloria.sntech.de ([185.11.138.130]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1ubkpZ-00000005w08-437W; Tue, 15 Jul 2025 18:56:47 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Type:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Reply-To; bh=c3FvSx6o8Ig7hqIemWG3aGM0Aly8D1whtV4O1eHlt+Y=; b=eNDMsA6LcsaN7pYQ7Z/QS7JEyZ O8jVUSPdMmuprxx3e8zpoYvuTYkKu7wFrqC1tWmCvdBsD43uRaPIW+prYIUgJcmzXX88LsTbjm3B/ jeKPCpEcOW6wSzu/r2PL+pkR9iP2EVQGNgMlIskhL19++pwTWtxUaUIMkUs/qUb46D+OjhmnKrUZy TmazskNXfcV6TCtsQ2F7L53l/EYaxSafCt/8Ku1RPXcqTGaIp3E7L2GnNRrT30TRwDI4HjFAFtrgP l+R+DhUHmpoK4UxoRYgXD4o+sPtRc1KsSJSJyawS5cX0Q8ulYcsGwF35hLvG0dCPg2+X+W/qkVH40 L+rRkGKA==; Received: from i53875a5c.versanet.de ([83.135.90.92] helo=diego.localnet) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ubkpQ-00040J-A1; Tue, 15 Jul 2025 20:56:36 +0200 From: Heiko =?UTF-8?B?U3TDvGJuZXI=?= To: Jonas Karlman , Yao Zi , Alex Bee Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chukun Pan , linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 0/6] arm64: dts: rockchip: Add ROCK 2A/2F, Sige1 and NanoPi Zero2 Date: Tue, 15 Jul 2025 20:56:38 +0200 Message-ID: <11576357.nUPlyArG6x@diego> In-Reply-To: <063ec197-bbd7-4ad2-add9-40f028e800b7@gmail.com> References: <20250712173805.584586-1-jonas@kwiboo.se> <16d99271-ba04-4ce1-a335-fab1917637c7@kwiboo.se> <063ec197-bbd7-4ad2-add9-40f028e800b7@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250715_115646_152346_B06C0B04 X-CRM114-Status: GOOD ( 55.89 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Am Montag, 14. Juli 2025, 07:53:09 Mitteleurop=C3=A4ische Sommerzeit schrie= b Alex Bee: > Hi Jonas, Hi Yao, >=20 > > Hi Alex, > > > > On 7/13/2025 10:56 PM, Alex Bee wrote: > >> Hi Jonas, > >> > >>> Hi Alex, > >>> > >>> On 7/13/2025 9:13 PM, Alex Bee wrote: > >>>> Hi list, Hi Jonas, > >>>> > >>>>> This series adds dt-bindings and initial device tree for the follow= ing > >>>>> Rockchip RK3528A boards: > >>>>> - Radxa ROCK 2A/2F > >>>>> - ArmSoM Sige1 > >>>>> - FriendlyElec NanoPi Zero2 > >>>> this only sub-related to this series: Is there any particular reason= , why > >>>> we call the compatible "rockchip,rk3528" and not "rockchip,rk3528a"?= From > >>>> what I can see all boards currently supported (and those in this ser= ies) > >>>> are having the RK3528A version of the SoC. I didn't follow the devel= opment > >>>> here, but there are differences - I did a quick compare of the datas= heets > >>>> of those two SoC versions - it looks like RK3528 version has USB3-DRD > >>>> controller, while RK3528A has USB3 host-only controller. Also it see= ms to > >>>> have different video codec IPs and the DRAM controller additionally > >>>> supports LPDDR4X. > >>> What datasheet versions did you check? I can only find: > >>> - RK3528 Rev 1.0 (2023-05-22) > >>> - RK3528A Rev 1.2 (2024-04-10) > >> I used > >> > >> 2023-07-12 Revision V1.0 > >> > >> which didn't include these features - which is interesting: Why would a > >> SoC vendor not try to sell all features in the first place :) > >> > >> But I now double checked in > >> > >> 2025-05-12 Revision 1.4 > >> > >> and you are right: It appears there also for RK3528A. > >> > >> The only difference I could now make out by comparing v1.4 of both ver= sions > >> is the cipher engine: RK3528 additionally supports "SM2/SM3/SM4 cipher= " - > >> but still it exists and additionally the different video codec (if mpp > >> userspace library is correct about that). > >> > >> Anyway: My question was more about: Why didn't we choose the correct > >> compatible from the beginning? And of course the dts files would have = to be > >> renamed if the compatible is changed, as they are named according to t= heir > >> SoC-compatible. > > Not sure, possible due to lack of technical documentation for this SoC, > > to my knowledge all upstream development has been done without any > > access to a TRM for the SoC. > Hhm, OK: Without any documentation, I'm seeing "RK3528A" silkscreened > directly on the SoC package :) So ... the TRM I meanwhile got, calls itself "Rockchip RK3528A Technical Reference Manual" in the title and=20 "RK3528A TRM (Part 1)" on each page. The one thing with an "A" I remember was the rk3066a. There even was a rk3066b variant ... which was quite different, but I've never seen any products using that variant. So for the things to do: =2D renaming devicetree _files_ later is no problem ... the given "guarante= e" is that the kernel is supposed to boot with an old devicetree blob, you found in the attic ;-) . (if it follows established bindings) =2D renaming compatibles is more difficult - and a lot of stuff already calls itself rk3528 - without-a in a bunch of bindings. So part of me just sees continuing without-a as the way to go, that rk3518 mentioned below even has a different number ;-) And wait until an actual rk3528 b-c-whatever variant needing different stuff comes along. Heiko >=20 > > Based on vendor code (u-boot and linux) there does not seem to be > > anything special about the A-variant, so my thinking has always been > > that the A-variant may have just been an updated/fixed hw revision and > > is the version that went into newer production devices. > > > > The recently released U-Boot 2025.07 is referencing the filename > > rk3528-radxa-e20c.dtb from the synced devicetree-rebasing tree. So a > > possible rename will affect a future release of U-Boot, and possible > > devices in the field depending on when a rename would land in linux. > > > > For this series I tried to just follow what is currently used for the > > Radxa E20C. > > > > If I am correct there is now also a RK3518 tvbox variant of this SoC, > > do not know how that would fit into all this :-S > Yeah, that's why I started comparing the features - and according to > RK3518's datasheet it only has the features I mentioned in my first mail > for RK3528A minus PCIe and the ability to connect an external ethernet phy > to the gmac controller (it probably has only one). Well, it's version 1.0= of > the datasheet ... >=20 > Regards, > Alex >=20 > > Regards, > > Jonas > > > >> Regards, > >> Alex > >>> And both list LPDDR4X support and the A-variant seem to list USB3-DRD > >>> support, did you mix them up above? > >>> > >>> I think these SoCs are similar to rk3228/rk3229, rk3228h/rk3328 and n= ow > >>> rk3528/rk3528a, in that only the second variant support VP9 decoding. > >>> > >>> Use of rockchip,rk3528a compatible could be something to change, > >>> could also be something that bootloader set at runtime, similar to > >>> what it does for rk3288w. > >>> > >>>> I guess it would be good to discuss this before this series is merge= d, > >>>> because re-naming *.dts files after they have been in a release is s= omewhat > >>>> impossible. > >>> I think renaming the device tree files is unnecessary, as there seem = to > >>> be very little difference. All boards I have come across are currently > >>> RK3528A variants. How would we treat the Radxa E20C?, it is not named > >>> rk3528-radxa-e20c.dtb, yet uses the A-variant. > >>> > >>> For mainline U-Boot I have included printing out the SoC-variant, > >>> however the compatible is not adjusted: > >>> > >>> Model: Radxa E20C > >>> SoC: RK3528A > >>> DRAM: 2 GiB > >>> > >>> Regards, > >>> Jonas > >>> > >>>> Regards, > >>>> Alex > >>>>> The bt/wifi_reg_on pins are described in the device tree using > >>>>> rfkill-gpio nodes. > >>>>> > >>>>> Changes in v3: > >>>>> - Rename led nodes to led-0/led-1 > >>>>> - Remove pinctrl* props from sdio0 > >>>>> - Collect a-b tags > >>>>> > >>>>> Changes in v2: > >>>>> - Limit sdmmc max-frequency to 100 MHz on ROCK 2A/2F > >>>>> - Drop clock-output-names prop from rtc node on Sige1 and NanoPi Ze= ro2 > >>>>> - Drop regulator-boot-on from usb 2.0 host regulators on Sige1 > >>>>> - Add bluetooth and wifi nodes on Sige1 > >>>>> - Collect t-b tag for NanoPi Zero2 > >>>>> > >>>>> These boards can be booted from emmc or sd-card using the U-Boot 20= 25.07 > >>>>> generic-rk3528 target or work-in-progress patches for these boards = [1]. > >>>>> > >>>>> For working bluetooth on ArmSoM Sige1 the patch "arm64: dts: rockch= ip: > >>>>> Fix UART DMA support for RK3528" [2] is required. > >>>>> > >>>>> [1] https://source.denx.de/u-boot/contributors/kwiboo/u-boot/-/comm= its/rk3528 > >>>>> [2] https://lore.kernel.org/r/20250709210831.3170458-1-jonas@kwiboo= =2Ese > >>>>> > >>>>> Jonas Karlman (6): > >>>>> dt-bindings: arm: rockchip: Add Radxa ROCK 2A/2F > >>>>> arm64: dts: rockchip: Add Radxa ROCK 2A/2F > >>>>> dt-bindings: arm: rockchip: Add ArmSoM Sige1 > >>>>> arm64: dts: rockchip: Add ArmSoM Sige1 > >>>>> dt-bindings: arm: rockchip: Add FriendlyElec NanoPi Zero2 > >>>>> arm64: dts: rockchip: Add FriendlyElec NanoPi Zero2 > >>>>> > >>>>> .../devicetree/bindings/arm/rockchip.yaml | 17 + > >>>>> arch/arm64/boot/dts/rockchip/Makefile | 4 + > >>>>> .../boot/dts/rockchip/rk3528-armsom-sige1.dts | 465 +++++++++++= +++++++ > >>>>> .../boot/dts/rockchip/rk3528-nanopi-zero2.dts | 340 +++++++++++= ++ > >>>>> .../boot/dts/rockchip/rk3528-rock-2.dtsi | 293 +++++++++++ > >>>>> .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++ > >>>>> .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + > >>>>> 7 files changed, 1211 insertions(+) > >>>>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-armsom-s= ige1.dts > >>>>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-nanopi-z= ero2.dts > >>>>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2.d= tsi > >>>>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2a.= dts > >>>>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2f.= dts > >>>>> >=20 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 5542DC83F17 for ; Tue, 15 Jul 2025 19:20:39 +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:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=lJ6Ml5QsZ4FmwDRXNdrHmqjTJ+Zlj1dLeNczx/XBtn8=; b=ExVbPtu+t4ey+m JRr/1EPjrZQqb0yQKMFExrlb+mjrtlgrle2eEJkGSIUezQrHeY8mj2+TKnECloAxr0dfgrRVsSYLJ eX7vNYQYrCwjDtLtc9JZyBDBPG8vjavoTZScpSr05Evo/ba19rIfDifS4P+zTo/fQn0NXxOp+kP8r iqqpe72gqvZMzwcLv7H/dGg4DN9aewxy7sbIUMFBKPCMTN6iBIF/iHDGnfGgP4ej33oUZ93haMJPn H9ULY7IKg4iw4+Bh5u6fWW5Mut7avOUMJuMhgyEjcjdPjoa91bFJGrTc5Xz0rp12ZC7lSdSVJbsbf 5je2o3pFqxC6Q6X5MWng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1ublCZ-0000000639r-0gTe; Tue, 15 Jul 2025 19:20:31 +0000 Received: from gloria.sntech.de ([185.11.138.130]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1ubkpZ-00000005w08-437W; Tue, 15 Jul 2025 18:56:47 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Type:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Reply-To; bh=c3FvSx6o8Ig7hqIemWG3aGM0Aly8D1whtV4O1eHlt+Y=; b=eNDMsA6LcsaN7pYQ7Z/QS7JEyZ O8jVUSPdMmuprxx3e8zpoYvuTYkKu7wFrqC1tWmCvdBsD43uRaPIW+prYIUgJcmzXX88LsTbjm3B/ jeKPCpEcOW6wSzu/r2PL+pkR9iP2EVQGNgMlIskhL19++pwTWtxUaUIMkUs/qUb46D+OjhmnKrUZy TmazskNXfcV6TCtsQ2F7L53l/EYaxSafCt/8Ku1RPXcqTGaIp3E7L2GnNRrT30TRwDI4HjFAFtrgP l+R+DhUHmpoK4UxoRYgXD4o+sPtRc1KsSJSJyawS5cX0Q8ulYcsGwF35hLvG0dCPg2+X+W/qkVH40 L+rRkGKA==; Received: from i53875a5c.versanet.de ([83.135.90.92] helo=diego.localnet) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ubkpQ-00040J-A1; Tue, 15 Jul 2025 20:56:36 +0200 From: Heiko =?UTF-8?B?U3TDvGJuZXI=?= To: Jonas Karlman , Yao Zi , Alex Bee Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chukun Pan , linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 0/6] arm64: dts: rockchip: Add ROCK 2A/2F, Sige1 and NanoPi Zero2 Date: Tue, 15 Jul 2025 20:56:38 +0200 Message-ID: <11576357.nUPlyArG6x@diego> In-Reply-To: <063ec197-bbd7-4ad2-add9-40f028e800b7@gmail.com> References: <20250712173805.584586-1-jonas@kwiboo.se> <16d99271-ba04-4ce1-a335-fab1917637c7@kwiboo.se> <063ec197-bbd7-4ad2-add9-40f028e800b7@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250715_115646_152346_B06C0B04 X-CRM114-Status: GOOD ( 55.89 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org QW0gTW9udGFnLCAxNC4gSnVsaSAyMDI1LCAwNzo1MzowOSBNaXR0ZWxldXJvcMOkaXNjaGUgU29t bWVyemVpdCBzY2hyaWViIEFsZXggQmVlOgo+IEhpIEpvbmFzLCBIaSBZYW8sCj4gCj4gPiBIaSBB bGV4LAo+ID4KPiA+IE9uIDcvMTMvMjAyNSAxMDo1NiBQTSwgQWxleCBCZWUgd3JvdGU6Cj4gPj4g SGkgSm9uYXMsCj4gPj4KPiA+Pj4gSGkgQWxleCwKPiA+Pj4KPiA+Pj4gT24gNy8xMy8yMDI1IDk6 MTMgUE0sIEFsZXggQmVlIHdyb3RlOgo+ID4+Pj4gSGkgbGlzdCwgSGkgSm9uYXMsCj4gPj4+Pgo+ ID4+Pj4+IFRoaXMgc2VyaWVzIGFkZHMgZHQtYmluZGluZ3MgYW5kIGluaXRpYWwgZGV2aWNlIHRy ZWUgZm9yIHRoZSBmb2xsb3dpbmcKPiA+Pj4+PiBSb2NrY2hpcCBSSzM1MjhBIGJvYXJkczoKPiA+ Pj4+PiAtIFJhZHhhIFJPQ0sgMkEvMkYKPiA+Pj4+PiAtIEFybVNvTSBTaWdlMQo+ID4+Pj4+IC0g RnJpZW5kbHlFbGVjIE5hbm9QaSBaZXJvMgo+ID4+Pj4gdGhpcyBvbmx5IHN1Yi1yZWxhdGVkIHRv IHRoaXMgc2VyaWVzOiBJcyB0aGVyZSBhbnkgcGFydGljdWxhciByZWFzb24sIHdoeQo+ID4+Pj4g d2UgY2FsbCB0aGUgY29tcGF0aWJsZSAicm9ja2NoaXAscmszNTI4IiBhbmQgbm90ICJyb2NrY2hp cCxyazM1MjhhIj8gRnJvbQo+ID4+Pj4gd2hhdCBJIGNhbiBzZWUgYWxsIGJvYXJkcyBjdXJyZW50 bHkgc3VwcG9ydGVkIChhbmQgdGhvc2UgaW4gdGhpcyBzZXJpZXMpCj4gPj4+PiBhcmUgaGF2aW5n IHRoZSBSSzM1MjhBIHZlcnNpb24gb2YgdGhlIFNvQy4gSSBkaWRuJ3QgZm9sbG93IHRoZSBkZXZl bG9wbWVudAo+ID4+Pj4gaGVyZSwgYnV0IHRoZXJlIGFyZSBkaWZmZXJlbmNlcyAtIEkgZGlkIGEg cXVpY2sgY29tcGFyZSBvZiB0aGUgZGF0YXNoZWV0cwo+ID4+Pj4gb2YgdGhvc2UgdHdvIFNvQyB2 ZXJzaW9ucyAtIGl0IGxvb2tzIGxpa2UgUkszNTI4IHZlcnNpb24gaGFzIFVTQjMtRFJECj4gPj4+ PiBjb250cm9sbGVyLCB3aGlsZSBSSzM1MjhBIGhhcyBVU0IzIGhvc3Qtb25seSBjb250cm9sbGVy LiBBbHNvIGl0IHNlZW1zIHRvCj4gPj4+PiBoYXZlIGRpZmZlcmVudCB2aWRlbyBjb2RlYyBJUHMg YW5kIHRoZSBEUkFNIGNvbnRyb2xsZXIgYWRkaXRpb25hbGx5Cj4gPj4+PiBzdXBwb3J0cyBMUERE UjRYLgo+ID4+PiBXaGF0IGRhdGFzaGVldCB2ZXJzaW9ucyBkaWQgeW91IGNoZWNrPyBJIGNhbiBv bmx5IGZpbmQ6Cj4gPj4+IC0gUkszNTI4IFJldiAxLjAgKDIwMjMtMDUtMjIpCj4gPj4+IC0gUksz NTI4QSBSZXYgMS4yICgyMDI0LTA0LTEwKQo+ID4+IEkgdXNlZAo+ID4+Cj4gPj4gMjAyMy0wNy0x MiBSZXZpc2lvbiBWMS4wCj4gPj4KPiA+PiB3aGljaCBkaWRuJ3QgaW5jbHVkZSB0aGVzZSBmZWF0 dXJlcyAtIHdoaWNoIGlzIGludGVyZXN0aW5nOiBXaHkgd291bGQgYQo+ID4+IFNvQyB2ZW5kb3Ig bm90IHRyeSB0byBzZWxsIGFsbCBmZWF0dXJlcyBpbiB0aGUgZmlyc3QgcGxhY2UgOikKPiA+Pgo+ ID4+IEJ1dCBJIG5vdyBkb3VibGUgY2hlY2tlZCBpbgo+ID4+Cj4gPj4gMjAyNS0wNS0xMiBSZXZp c2lvbiAxLjQKPiA+Pgo+ID4+IGFuZCB5b3UgYXJlIHJpZ2h0OiBJdCBhcHBlYXJzIHRoZXJlIGFs c28gZm9yIFJLMzUyOEEuCj4gPj4KPiA+PiBUaGUgb25seSBkaWZmZXJlbmNlIEkgY291bGQgbm93 IG1ha2Ugb3V0IGJ5IGNvbXBhcmluZyB2MS40IG9mIGJvdGggdmVyc2lvbnMKPiA+PiBpcyB0aGUg Y2lwaGVyIGVuZ2luZTogUkszNTI4IGFkZGl0aW9uYWxseSBzdXBwb3J0cyAiU00yL1NNMy9TTTQg Y2lwaGVyIiAtCj4gPj4gYnV0IHN0aWxsIGl0IGV4aXN0cyBhbmQgYWRkaXRpb25hbGx5IHRoZSBk aWZmZXJlbnQgdmlkZW8gY29kZWMgKGlmIG1wcAo+ID4+IHVzZXJzcGFjZSBsaWJyYXJ5IGlzIGNv cnJlY3QgYWJvdXQgdGhhdCkuCj4gPj4KPiA+PiBBbnl3YXk6IE15IHF1ZXN0aW9uIHdhcyBtb3Jl IGFib3V0OiBXaHkgZGlkbid0IHdlIGNob29zZSB0aGUgY29ycmVjdAo+ID4+IGNvbXBhdGlibGUg ZnJvbSB0aGUgYmVnaW5uaW5nPyBBbmQgb2YgY291cnNlIHRoZSBkdHMgZmlsZXMgd291bGQgaGF2 ZSB0byBiZQo+ID4+IHJlbmFtZWQgaWYgdGhlIGNvbXBhdGlibGUgaXMgY2hhbmdlZCwgYXMgdGhl eSBhcmUgbmFtZWQgYWNjb3JkaW5nIHRvIHRoZWlyCj4gPj4gU29DLWNvbXBhdGlibGUuCj4gPiBO b3Qgc3VyZSwgcG9zc2libGUgZHVlIHRvIGxhY2sgb2YgdGVjaG5pY2FsIGRvY3VtZW50YXRpb24g Zm9yIHRoaXMgU29DLAo+ID4gdG8gbXkga25vd2xlZGdlIGFsbCB1cHN0cmVhbSBkZXZlbG9wbWVu dCBoYXMgYmVlbiBkb25lIHdpdGhvdXQgYW55Cj4gPiBhY2Nlc3MgdG8gYSBUUk0gZm9yIHRoZSBT b0MuCj4gSGhtLCBPSzogV2l0aG91dCBhbnkgZG9jdW1lbnRhdGlvbiwgSSdtIHNlZWluZyAiUksz NTI4QSIgc2lsa3NjcmVlbmVkCj4gZGlyZWN0bHkgb24gdGhlIFNvQyBwYWNrYWdlIDopCgpTbyAu Li4gdGhlIFRSTSBJIG1lYW53aGlsZSBnb3QsIGNhbGxzIGl0c2VsZgoJIlJvY2tjaGlwIFJLMzUy OEEgVGVjaG5pY2FsIFJlZmVyZW5jZSBNYW51YWwiCmluIHRoZSB0aXRsZSBhbmQgCgkiUkszNTI4 QSBUUk0gKFBhcnQgMSkiCm9uIGVhY2ggcGFnZS4KClRoZSBvbmUgdGhpbmcgd2l0aCBhbiAiQSIg SSByZW1lbWJlciB3YXMgdGhlIHJrMzA2NmEuIFRoZXJlIGV2ZW4gd2FzCmEgcmszMDY2YiB2YXJp YW50IC4uLiB3aGljaCB3YXMgcXVpdGUgZGlmZmVyZW50LCBidXQgSSd2ZSBuZXZlciBzZWVuIGFu eQpwcm9kdWN0cyB1c2luZyB0aGF0IHZhcmlhbnQuCgpTbyBmb3IgdGhlIHRoaW5ncyB0byBkbzoK Ci0gcmVuYW1pbmcgZGV2aWNldHJlZSBfZmlsZXNfIGxhdGVyIGlzIG5vIHByb2JsZW0gLi4uIHRo ZSBnaXZlbiAiZ3VhcmFudGVlIgogIGlzIHRoYXQgdGhlIGtlcm5lbCBpcyBzdXBwb3NlZCB0byBi b290IHdpdGggYW4gb2xkIGRldmljZXRyZWUgYmxvYiwgeW91CiAgZm91bmQgaW4gdGhlIGF0dGlj IDstKSAuIChpZiBpdCBmb2xsb3dzIGVzdGFibGlzaGVkIGJpbmRpbmdzKQotIHJlbmFtaW5nIGNv bXBhdGlibGVzIGlzIG1vcmUgZGlmZmljdWx0IC0gYW5kIGEgbG90IG9mIHN0dWZmIGFscmVhZHkK ICBjYWxscyBpdHNlbGYgcmszNTI4IC0gd2l0aG91dC1hIGluIGEgYnVuY2ggb2YgYmluZGluZ3Mu CgpTbyBwYXJ0IG9mIG1lIGp1c3Qgc2VlcyBjb250aW51aW5nIHdpdGhvdXQtYSBhcyB0aGUgd2F5 IHRvIGdvLCB0aGF0CnJrMzUxOCBtZW50aW9uZWQgYmVsb3cgZXZlbiBoYXMgYSBkaWZmZXJlbnQg bnVtYmVyIDstKQoKQW5kIHdhaXQgdW50aWwgYW4gYWN0dWFsIHJrMzUyOCBiLWMtd2hhdGV2ZXIg dmFyaWFudCBuZWVkaW5nIGRpZmZlcmVudApzdHVmZiBjb21lcyBhbG9uZy4KCgpIZWlrbwoKCj4g Cj4gPiBCYXNlZCBvbiB2ZW5kb3IgY29kZSAodS1ib290IGFuZCBsaW51eCkgdGhlcmUgZG9lcyBu b3Qgc2VlbSB0byBiZQo+ID4gYW55dGhpbmcgc3BlY2lhbCBhYm91dCB0aGUgQS12YXJpYW50LCBz byBteSB0aGlua2luZyBoYXMgYWx3YXlzIGJlZW4KPiA+IHRoYXQgdGhlIEEtdmFyaWFudCBtYXkg aGF2ZSBqdXN0IGJlZW4gYW4gdXBkYXRlZC9maXhlZCBodyByZXZpc2lvbiBhbmQKPiA+IGlzIHRo ZSB2ZXJzaW9uIHRoYXQgd2VudCBpbnRvIG5ld2VyIHByb2R1Y3Rpb24gZGV2aWNlcy4KPiA+Cj4g PiBUaGUgcmVjZW50bHkgcmVsZWFzZWQgVS1Cb290IDIwMjUuMDcgaXMgcmVmZXJlbmNpbmcgdGhl IGZpbGVuYW1lCj4gPiByazM1MjgtcmFkeGEtZTIwYy5kdGIgZnJvbSB0aGUgc3luY2VkIGRldmlj ZXRyZWUtcmViYXNpbmcgdHJlZS4gU28gYQo+ID4gcG9zc2libGUgcmVuYW1lIHdpbGwgYWZmZWN0 IGEgZnV0dXJlIHJlbGVhc2Ugb2YgVS1Cb290LCBhbmQgcG9zc2libGUKPiA+IGRldmljZXMgaW4g dGhlIGZpZWxkIGRlcGVuZGluZyBvbiB3aGVuIGEgcmVuYW1lIHdvdWxkIGxhbmQgaW4gbGludXgu Cj4gPgo+ID4gRm9yIHRoaXMgc2VyaWVzIEkgdHJpZWQgdG8ganVzdCBmb2xsb3cgd2hhdCBpcyBj dXJyZW50bHkgdXNlZCBmb3IgdGhlCj4gPiBSYWR4YSBFMjBDLgo+ID4KPiA+IElmIEkgYW0gY29y cmVjdCB0aGVyZSBpcyBub3cgYWxzbyBhIFJLMzUxOCB0dmJveCB2YXJpYW50IG9mIHRoaXMgU29D LAo+ID4gZG8gbm90IGtub3cgaG93IHRoYXQgd291bGQgZml0IGludG8gYWxsIHRoaXMgOi1TCj4g WWVhaCwgdGhhdCdzIHdoeSBJIHN0YXJ0ZWQgY29tcGFyaW5nIHRoZSBmZWF0dXJlcyAtIGFuZCBh Y2NvcmRpbmcgdG8KPiBSSzM1MTgncyBkYXRhc2hlZXQgaXQgb25seSBoYXMgdGhlIGZlYXR1cmVz IEkgbWVudGlvbmVkIGluIG15IGZpcnN0IG1haWwKPiBmb3IgUkszNTI4QSBtaW51cyBQQ0llIGFu ZCB0aGUgYWJpbGl0eSB0byBjb25uZWN0IGFuIGV4dGVybmFsIGV0aGVybmV0IHBoeQo+IHRvIHRo ZSBnbWFjIGNvbnRyb2xsZXIgKGl0IHByb2JhYmx5IGhhcyBvbmx5IG9uZSkuIFdlbGwsIGl0J3Mg dmVyc2lvbiAxLjAgb2YKPiB0aGUgZGF0YXNoZWV0IC4uLgo+IAo+IFJlZ2FyZHMsCj4gQWxleAo+ IAo+ID4gUmVnYXJkcywKPiA+IEpvbmFzCj4gPgo+ID4+IFJlZ2FyZHMsCj4gPj4gQWxleAo+ID4+ PiBBbmQgYm90aCBsaXN0IExQRERSNFggc3VwcG9ydCBhbmQgdGhlIEEtdmFyaWFudCBzZWVtIHRv IGxpc3QgVVNCMy1EUkQKPiA+Pj4gc3VwcG9ydCwgZGlkIHlvdSBtaXggdGhlbSB1cCBhYm92ZT8K PiA+Pj4KPiA+Pj4gSSB0aGluayB0aGVzZSBTb0NzIGFyZSBzaW1pbGFyIHRvIHJrMzIyOC9yazMy MjksIHJrMzIyOGgvcmszMzI4IGFuZCBub3cKPiA+Pj4gcmszNTI4L3JrMzUyOGEsIGluIHRoYXQg b25seSB0aGUgc2Vjb25kIHZhcmlhbnQgc3VwcG9ydCBWUDkgZGVjb2RpbmcuCj4gPj4+Cj4gPj4+ IFVzZSBvZiByb2NrY2hpcCxyazM1MjhhIGNvbXBhdGlibGUgY291bGQgYmUgc29tZXRoaW5nIHRv IGNoYW5nZSwKPiA+Pj4gY291bGQgYWxzbyBiZSBzb21ldGhpbmcgdGhhdCBib290bG9hZGVyIHNl dCBhdCBydW50aW1lLCBzaW1pbGFyIHRvCj4gPj4+IHdoYXQgaXQgZG9lcyBmb3IgcmszMjg4dy4K PiA+Pj4KPiA+Pj4+IEkgZ3Vlc3MgaXQgd291bGQgYmUgZ29vZCB0byBkaXNjdXNzIHRoaXMgYmVm b3JlIHRoaXMgc2VyaWVzIGlzIG1lcmdlZCwKPiA+Pj4+IGJlY2F1c2UgcmUtbmFtaW5nICouZHRz IGZpbGVzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGluIGEgcmVsZWFzZSBpcyBzb21ld2hhdAo+ID4+ Pj4gaW1wb3NzaWJsZS4KPiA+Pj4gSSB0aGluayByZW5hbWluZyB0aGUgZGV2aWNlIHRyZWUgZmls ZXMgaXMgdW5uZWNlc3NhcnksIGFzIHRoZXJlIHNlZW0gdG8KPiA+Pj4gYmUgdmVyeSBsaXR0bGUg ZGlmZmVyZW5jZS4gQWxsIGJvYXJkcyBJIGhhdmUgY29tZSBhY3Jvc3MgYXJlIGN1cnJlbnRseQo+ ID4+PiBSSzM1MjhBIHZhcmlhbnRzLiBIb3cgd291bGQgd2UgdHJlYXQgdGhlIFJhZHhhIEUyMEM/ LCBpdCBpcyBub3QgbmFtZWQKPiA+Pj4gcmszNTI4LXJhZHhhLWUyMGMuZHRiLCB5ZXQgdXNlcyB0 aGUgQS12YXJpYW50Lgo+ID4+Pgo+ID4+PiBGb3IgbWFpbmxpbmUgVS1Cb290IEkgaGF2ZSBpbmNs dWRlZCBwcmludGluZyBvdXQgdGhlIFNvQy12YXJpYW50LAo+ID4+PiBob3dldmVyIHRoZSBjb21w YXRpYmxlIGlzIG5vdCBhZGp1c3RlZDoKPiA+Pj4KPiA+Pj4gICAgIE1vZGVsOiBSYWR4YSBFMjBD Cj4gPj4+ICAgICBTb0M6ICAgUkszNTI4QQo+ID4+PiAgICAgRFJBTTogIDIgR2lCCj4gPj4+Cj4g Pj4+IFJlZ2FyZHMsCj4gPj4+IEpvbmFzCj4gPj4+Cj4gPj4+PiBSZWdhcmRzLAo+ID4+Pj4gQWxl eAo+ID4+Pj4+IFRoZSBidC93aWZpX3JlZ19vbiBwaW5zIGFyZSBkZXNjcmliZWQgaW4gdGhlIGRl dmljZSB0cmVlIHVzaW5nCj4gPj4+Pj4gcmZraWxsLWdwaW8gbm9kZXMuCj4gPj4+Pj4KPiA+Pj4+ PiBDaGFuZ2VzIGluIHYzOgo+ID4+Pj4+IC0gUmVuYW1lIGxlZCBub2RlcyB0byBsZWQtMC9sZWQt MQo+ID4+Pj4+IC0gUmVtb3ZlIHBpbmN0cmwqIHByb3BzIGZyb20gc2RpbzAKPiA+Pj4+PiAtIENv bGxlY3QgYS1iIHRhZ3MKPiA+Pj4+Pgo+ID4+Pj4+IENoYW5nZXMgaW4gdjI6Cj4gPj4+Pj4gLSBM aW1pdCBzZG1tYyBtYXgtZnJlcXVlbmN5IHRvIDEwMCBNSHogb24gUk9DSyAyQS8yRgo+ID4+Pj4+ IC0gRHJvcCBjbG9jay1vdXRwdXQtbmFtZXMgcHJvcCBmcm9tIHJ0YyBub2RlIG9uIFNpZ2UxIGFu ZCBOYW5vUGkgWmVybzIKPiA+Pj4+PiAtIERyb3AgcmVndWxhdG9yLWJvb3Qtb24gZnJvbSB1c2Ig Mi4wIGhvc3QgcmVndWxhdG9ycyBvbiBTaWdlMQo+ID4+Pj4+IC0gQWRkIGJsdWV0b290aCBhbmQg d2lmaSBub2RlcyBvbiBTaWdlMQo+ID4+Pj4+IC0gQ29sbGVjdCB0LWIgdGFnIGZvciBOYW5vUGkg WmVybzIKPiA+Pj4+Pgo+ID4+Pj4+IFRoZXNlIGJvYXJkcyBjYW4gYmUgYm9vdGVkIGZyb20gZW1t YyBvciBzZC1jYXJkIHVzaW5nIHRoZSBVLUJvb3QgMjAyNS4wNwo+ID4+Pj4+IGdlbmVyaWMtcmsz NTI4IHRhcmdldCBvciB3b3JrLWluLXByb2dyZXNzIHBhdGNoZXMgZm9yIHRoZXNlIGJvYXJkcyBb MV0uCj4gPj4+Pj4KPiA+Pj4+PiBGb3Igd29ya2luZyBibHVldG9vdGggb24gQXJtU29NIFNpZ2Ux IHRoZSBwYXRjaCAiYXJtNjQ6IGR0czogcm9ja2NoaXA6Cj4gPj4+Pj4gRml4IFVBUlQgRE1BIHN1 cHBvcnQgZm9yIFJLMzUyOCIgWzJdIGlzIHJlcXVpcmVkLgo+ID4+Pj4+Cj4gPj4+Pj4gWzFdIGh0 dHBzOi8vc291cmNlLmRlbnguZGUvdS1ib290L2NvbnRyaWJ1dG9ycy9rd2lib28vdS1ib290Ly0v Y29tbWl0cy9yazM1MjgKPiA+Pj4+PiBbMl0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDI1 MDcwOTIxMDgzMS4zMTcwNDU4LTEtam9uYXNAa3dpYm9vLnNlCj4gPj4+Pj4KPiA+Pj4+PiBKb25h cyBLYXJsbWFuICg2KToKPiA+Pj4+PiAgICAgIGR0LWJpbmRpbmdzOiBhcm06IHJvY2tjaGlwOiBB ZGQgUmFkeGEgUk9DSyAyQS8yRgo+ID4+Pj4+ICAgICAgYXJtNjQ6IGR0czogcm9ja2NoaXA6IEFk ZCBSYWR4YSBST0NLIDJBLzJGCj4gPj4+Pj4gICAgICBkdC1iaW5kaW5nczogYXJtOiByb2NrY2hp cDogQWRkIEFybVNvTSBTaWdlMQo+ID4+Pj4+ICAgICAgYXJtNjQ6IGR0czogcm9ja2NoaXA6IEFk ZCBBcm1Tb00gU2lnZTEKPiA+Pj4+PiAgICAgIGR0LWJpbmRpbmdzOiBhcm06IHJvY2tjaGlwOiBB ZGQgRnJpZW5kbHlFbGVjIE5hbm9QaSBaZXJvMgo+ID4+Pj4+ICAgICAgYXJtNjQ6IGR0czogcm9j a2NoaXA6IEFkZCBGcmllbmRseUVsZWMgTmFub1BpIFplcm8yCj4gPj4+Pj4KPiA+Pj4+PiAgICAg Li4uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3JvY2tjaGlwLnlhbWwgICAgIHwgIDE3ICsKPiA+ Pj4+PiAgICAgYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9NYWtlZmlsZSAgICAgICAgIHwg ICA0ICsKPiA+Pj4+PiAgICAgLi4uL2Jvb3QvZHRzL3JvY2tjaGlwL3JrMzUyOC1hcm1zb20tc2ln ZTEuZHRzIHwgNDY1ICsrKysrKysrKysrKysrKysrKwo+ID4+Pj4+ICAgICAuLi4vYm9vdC9kdHMv cm9ja2NoaXAvcmszNTI4LW5hbm9waS16ZXJvMi5kdHMgfCAzNDAgKysrKysrKysrKysrKwo+ID4+ Pj4+ICAgICAuLi4vYm9vdC9kdHMvcm9ja2NoaXAvcmszNTI4LXJvY2stMi5kdHNpICAgICAgfCAy OTMgKysrKysrKysrKysKPiA+Pj4+PiAgICAgLi4uL2Jvb3QvZHRzL3JvY2tjaGlwL3JrMzUyOC1y b2NrLTJhLmR0cyAgICAgIHwgIDgyICsrKwo+ID4+Pj4+ICAgICAuLi4vYm9vdC9kdHMvcm9ja2No aXAvcmszNTI4LXJvY2stMmYuZHRzICAgICAgfCAgMTAgKwo+ID4+Pj4+ICAgICA3IGZpbGVzIGNo YW5nZWQsIDEyMTEgaW5zZXJ0aW9ucygrKQo+ID4+Pj4+ICAgICBjcmVhdGUgbW9kZSAxMDA2NDQg YXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9yazM1MjgtYXJtc29tLXNpZ2UxLmR0cwo+ID4+ Pj4+ICAgICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9y azM1MjgtbmFub3BpLXplcm8yLmR0cwo+ID4+Pj4+ICAgICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJj aC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9yazM1Mjgtcm9jay0yLmR0c2kKPiA+Pj4+PiAgICAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtNjQvYm9vdC9kdHMvcm9ja2NoaXAvcmszNTI4LXJv Y2stMmEuZHRzCj4gPj4+Pj4gICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0L2Jvb3Qv ZHRzL3JvY2tjaGlwL3JrMzUyOC1yb2NrLTJmLmR0cwo+ID4+Pj4+Cj4gCgoKCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFp bGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAo=