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 3832DC88E6A for ; Mon, 14 Sep 2026 08:59:13 +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:In-Reply-To:References:To: From:Subject:Cc:Message-Id:Date:Content-Type:Content-Transfer-Encoding: Mime-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=2vUAgjTs6GdjG01KZPCc5Vh53pfUq/UJYtzOr24zdMQ=; b=wMrkHYy3sUUJclAwkNMKXZ7mG3 lWFHg2bK9lPwz+UiRlw//swlFd9h0O7VYy6rsxQ9K4SnQKg3BbwbNCQ147+ZLVDfT1NcCsaficzZX uemOtlxx0POm/YLnwZ/x9TCN+jYDitc38OpGYNACEV3zMBuc8tG209UtclhEChBSKLCO1AdJvhKhM Rb9LtKXLqUCIokcpJPuPkoeOiVB6rXae4KOlGUBiB/mXoPyjAMzOquvW2NPVm+WAlgAjdHZF/eNii O9/gUncv5y6xGttP7zPoq3onZwfBaKdcaUDtnFlk8vb0dRKreapEg/25xqZ/oz7j2k7Qtw24cRYk6 PuyV0y5g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x62Wo-00000002qer-06gr; Mon, 14 Sep 2026 08:59:06 +0000 Received: from out-61.mta0.migadu.com ([2001:41d0:1004:224b::3d] helo=mta0.migadu.com) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x62Wl-00000002qdQ-1iCL for linux-arm-kernel@lists.infradead.org; Mon, 14 Sep 2026 08:59:05 +0000 X-Envelope-To: linux-arm-kernel@lists.infradead.org DKIM-Signature: a=rsa-sha256; bh=g6znYCCn3/yoIa4DdoJwc9F7KKna78UvWYBm5/Hagk4=; c=simple/simple; d=cknow-tech.com; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789376339; v=1; x=1789981139; b=MRCLqk/ltyx2C0g5pRAKsZtm0iJXn9FdB5sUR+T1MnXCemAG26tqvbnbbddaf9RktEnzOt9X TSLxHSlYVsVIjbLYi5uXv6WKgVq0AKwacGgwccAXFTttdo0UPTHO8QEQKpmoBx1lXyZLeG5px5v kknGEyoBsgSXy6p8rGUpCJrMsqagq6RD/75wJU1tzuDqorV13kb47SteqvdSmhnZh7tE26U7xty DjohuNK0lmEYta8feJoc4bXJtTZTY2xT5ZO1a76AT7oRcL7AFMad1522r1nPPaaiyAw18PBhtO/ 0/534V5NzQwNmzkHbYfFB92CgWxPXN7/PnVsACG+tMzqA== X-Envelope-To: linux-arm-kernel@lists.infradead.org Received: by smtp.migadu.com with ESMTPS id b1d13efd5afab658; Mon, 14 Sep 2026 08:58:49 +0000 X-Mizu-Trace-ID: b1d13efd5afab658 X-Migadu-Flow: FLOW_OUT Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Mon, 14 Sep 2026 10:58:44 +0200 Message-Id: Cc: , , , , "Chukun Pan" , "Jonas Karlman" , "jensen" , "Andrey Korshunov" , "Diederik de Haas" , "Conor Dooley" Subject: Re: [PATCH v5 0/4] arm64: dts: rockchip: Add FriendlyElec NanoPi R28S From: "Diederik de Haas" To: , "Rob Herring" , "Krzysztof Kozlowski" , "Conor Dooley" , "Heiko Stuebner" X-Mailer: aerc 0.22.0-9-ge948bb7230f4 References: <20260914-r28s-upstream-v5-0-7409c498e8dc@proton.me> In-Reply-To: <20260914-r28s-upstream-v5-0-7409c498e8dc@proton.me> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260914_015903_807503_0A72036C X-CRM114-Status: GOOD ( 37.07 ) 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 On Mon Sep 14, 2026 at 10:24 AM CEST, =E5=AE=89=E5=AE=B9 via B4 Relay wrote= : > The NanoPi R28S is a dual gigabit Ethernet router board based on the > Rockchip RK3528 SoC: > > https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R28S > > It is closely related to the already supported NanoPi Zero2, sharing > most of its power tree and peripheral routing. Patch 2 therefore moves > the common parts into rk3528-nanopi.dtsi, and patch 3 adds the board on > top of it. The split leaves the NanoPi Zero2 dtb unchanged; I verified > this by comparing the node and property sets of the dtb before and after > the split, which differ only in node order and phandle numbering. Patch > 4 is a coding style cleanup in the shared devicetree and the NanoPi > Zero2 devicetree. > > The devicetree was derived from the vendor tree: > > https://github.com/friendlyarm/kernel-rockchip/commit/ee640c5344b13a0a3= 17436e2357df01af8268ce7 > > but with many changes to make it suitable for mainline. > > Tested on a metal-case unit without the optional onboard eMMC: boots > from microSD, both Ethernet ports link up at 1000 Mbps, the HYM8563 RTC > registers, and all three LEDs are functional. The USB Type-C connector > registers as a DWC3 UDC in peripheral mode; gadget enumeration against > a USB host was not completed, because that connector is also the 5V > input and a PC port cannot power the board. > > The bootloader was U-Boot 2026.07 with a board specific R28S target, > which releases the RGMII PHY reset before Linux starts, so the reset > description in the PHY node is all the kernel needs. > > Two things I did not do, because my hardware cannot verify them: > > - The AICSemi AIC8800D80 WiFi chip on sdio0 has no upstream driver, so > only the SDIO controller is described. > - The eMMC is described as HS200 rather than the vendor's HS400 with > enhanced strobe, since the board at hand has an unpopulated eMMC > footprint and the faster modes could not be verified. > > --- > Changes in v5: > - Dropped the pinctrl-0 before pinctrl-names reordering from the coding > style patch and used the order the rest of the rockchip devicetrees > use, pinctrl-names first, in the new devicetree as well. The strict > mode of scripts/dtc/dt-check-style asks for the alphabetical order, > but it does so for many other properties that no rockchip devicetree > sorts that way either (Chukun Pan). Then you can also just drop patch 4 as (by far) most rockchip devicetrees do not have a blank line before ``status =3D ;`` > - Moved the SYS LED, which the NanoPi R28S shares with the NanoPi Zero2, > and the led1 and led_sys pin configurations into rk3528-nanopi.dtsi. > Both boards now only add their own LEDs to &leds (Chukun Pan). > - Renamed the NanoPi R28S LED nodes to led-1 and led-2, to use the > led-[0-9] node naming (Chukun Pan). > - Changed the user button from KEY_RESTART to BTN_1. It is a general > purpose button on this board, not a reset button (Chukun Pan). > - Link to v4: https://patch.msgid.link/20260911-r28s-upstream-v4-0-fb6c85= f226d4@proton.me > > Changes in v4: > - Dropped the patch that moved the NanoPi Zero2 RGMII PHY reset to the > MDIO bus. GPIO4_C2 resets the PHY, not the bus, so describing it on > &mdio1 is not a description of the hardware. It would also break > Ethernet in U-Boot, which reads reset-gpios, reset-assert-us and > reset-deassert-us from the PHY node and has no support for a bus > level reset. The nanopi-zero2-rk3528 U-Boot target releases the PHY > reset before Linux starts; the failure I reported was seen with the > generic-rk3528 target, which carries no board devicetree. Pointed out > by Chukun Pan, and by Jonas Karlman in the same discussion for the > HINLINK H28K: > https://lore.kernel.org/lkml/1e8da54f-ef87-4d31-9a0a-17c0ff66bee0@kwibo= o.se/ > My own R28S has in fact been running a board specific U-Boot target > all along, with the PHY node description this series now keeps, so > the reset ordering problem I described does not arise there. > - Reworded the coding style patch to state the coding style violation > itself as the reason, rather than the tool that found it (Diederik de > Haas). > - Link to v3: https://patch.msgid.link/20260909-r28s-upstream-v3-0-ee3e1a= 34a353@proton.me > > Changes in v3: > - New patch 1: describe the NanoPi Zero2 RGMII PHY reset on the MDIO > bus rather than in the PHY node, so that it is applied before the PHY > ID is read. A PHY held in reset by the bootloader was otherwise never > probed, leaving the port dead. Reported by Andrey Korshunov, who > proposed the deprecated snps,reset-gpio properties on the MAC; the > bus level reset-gpios in mdio.yaml fixes the same ordering without a > deprecated property. > - New patch 5: follow the DTS coding style in the three NanoPi RK3528 > devicetrees, as found by scripts/dtc/dt-check-style --mode=3Dstrict: > pinctrl-0 before pinctrl-names, and a blank line before status. > Suggested by Diederik de Haas. > - Picked up Conor Dooley's Acked-by on the binding. > - Link to v2: https://patch.msgid.link/20260907-r28s-upstream-v2-0-21ab57= 0fc91c@proton.me > > Changes in v2: > - Split the parts shared with the NanoPi Zero2 into a new > rk3528-nanopi.dtsi (new patch 2). The NanoPi Zero2 dtb is unchanged. > - Name the pinctrl labels after the nets in the schematic: usr_btn, > led1, led2, led_sys, pwr_wf and pcie_eth_perstb. > - Rename the button node to button-user and its label to "USER". > - Link to v1: https://patch.msgid.link/20260905-r28s-upstream-v1-0-f68d53= 89269a@proton.me > > --- > =E5=AE=89=E5=AE=B9 (4): > dt-bindings: arm: rockchip: Add FriendlyElec NanoPi R28S > arm64: dts: rockchip: Split out the common NanoPi RK3528 parts > arm64: dts: rockchip: Add devicetree for the FriendlyElec NanoPi R2= 8S > arm64: dts: rockchip: Follow the DTS coding style in the NanoPi RK3= 528 devicetrees > > .../devicetree/bindings/arm/rockchip.yaml | 5 + > arch/arm64/boot/dts/rockchip/Makefile | 1 + > .../arm64/boot/dts/rockchip/rk3528-nanopi-r28s.dts | 127 +++++++++ > .../boot/dts/rockchip/rk3528-nanopi-zero2.dts | 306 +--------------= ----- > arch/arm64/boot/dts/rockchip/rk3528-nanopi.dtsi | 314 +++++++++++++++= ++++++ > 5 files changed, 456 insertions(+), 297 deletions(-) > --- > base-commit: 32e0f64640d558a0f5410ac5cdd8ebf371c5e6a6 > change-id: 20260905-r28s-upstream-e212e27d6165 > > Best regards, > -- =20 > =E5=AE=89=E5=AE=B9 > > > > _______________________________________________ > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip 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 A3A81C88E64 for ; Mon, 14 Sep 2026 08:59:08 +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:References:To:From:Subject: Cc:Message-Id:Date:Mime-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=rkgSfupukFLckvCECrFDFDYApLL6kSI2+pt7QQz7Lqg=; b=eCi6VwsxnKxwRe XtE/JqcjrazqAbVaX68JDp4fGXZCdxO0OUvBeo0qK7iQSb4x9ljFNYJ2xM45L5HSU7z8grcWfLw77 J18r+0pG65qzCezdMMVzoTPzmRufG9DDwC0s2P9NGasGxKZanQsbXY4zpsSAsHPphfgXDlTEYB1PR tmXQJBYWLaSFl+i/a86SYFQU23fnXNz9D61pzaV3mTpoSUXZPkTSc6e8qDKRA0w/YuGyVGX6af9Kp Zwp2QZg/xUH6lcsDB7Qg445Arw1wR7KozaKC62/M2xSljVhOOqtV06bJGL+katNvfCuxeitpl9qAG 7zWmc46ljz398TRIDKhA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x62Wn-00000002qel-44Cs; Mon, 14 Sep 2026 08:59:05 +0000 Received: from out-64.mta0.migadu.com ([2001:41d0:1004:224b::40] helo=mta0.migadu.com) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x62Wl-00000002qdg-0lgi for linux-rockchip@lists.infradead.org; Mon, 14 Sep 2026 08:59:05 +0000 X-Envelope-To: linux-rockchip@lists.infradead.org DKIM-Signature: a=rsa-sha256; bh=g6znYCCn3/yoIa4DdoJwc9F7KKna78UvWYBm5/Hagk4=; c=simple/simple; d=cknow-tech.com; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789376339; v=1; x=1789981139; b=MRCLqk/ltyx2C0g5pRAKsZtm0iJXn9FdB5sUR+T1MnXCemAG26tqvbnbbddaf9RktEnzOt9X TSLxHSlYVsVIjbLYi5uXv6WKgVq0AKwacGgwccAXFTttdo0UPTHO8QEQKpmoBx1lXyZLeG5px5v kknGEyoBsgSXy6p8rGUpCJrMsqagq6RD/75wJU1tzuDqorV13kb47SteqvdSmhnZh7tE26U7xty DjohuNK0lmEYta8feJoc4bXJtTZTY2xT5ZO1a76AT7oRcL7AFMad1522r1nPPaaiyAw18PBhtO/ 0/534V5NzQwNmzkHbYfFB92CgWxPXN7/PnVsACG+tMzqA== X-Envelope-To: linux-rockchip@lists.infradead.org Received: by smtp.migadu.com with ESMTPS id b1d13efd5afab658; Mon, 14 Sep 2026 08:58:49 +0000 X-Mizu-Trace-ID: b1d13efd5afab658 X-Migadu-Flow: FLOW_OUT Mime-Version: 1.0 Date: Mon, 14 Sep 2026 10:58:44 +0200 Message-Id: Cc: , , , , "Chukun Pan" , "Jonas Karlman" , "jensen" , "Andrey Korshunov" , "Diederik de Haas" , "Conor Dooley" Subject: Re: [PATCH v5 0/4] arm64: dts: rockchip: Add FriendlyElec NanoPi R28S From: "Diederik de Haas" To: , "Rob Herring" , "Krzysztof Kozlowski" , "Conor Dooley" , "Heiko Stuebner" X-Mailer: aerc 0.22.0-9-ge948bb7230f4 References: <20260914-r28s-upstream-v5-0-7409c498e8dc@proton.me> In-Reply-To: <20260914-r28s-upstream-v5-0-7409c498e8dc@proton.me> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260914_015903_808137_D0DEFD17 X-CRM114-Status: GOOD ( 36.30 ) 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 T24gTW9uIFNlcCAxNCwgMjAyNiBhdCAxMDoyNCBBTSBDRVNULCDlronlrrkgdmlhIEI0IFJlbGF5 IHdyb3RlOgo+IFRoZSBOYW5vUGkgUjI4UyBpcyBhIGR1YWwgZ2lnYWJpdCBFdGhlcm5ldCByb3V0 ZXIgYm9hcmQgYmFzZWQgb24gdGhlCj4gUm9ja2NoaXAgUkszNTI4IFNvQzoKPgo+ICAgaHR0cHM6 Ly93aWtpLmZyaWVuZGx5ZWxlYy5jb20vd2lraS9pbmRleC5waHAvTmFub1BpX1IyOFMKPgo+IEl0 IGlzIGNsb3NlbHkgcmVsYXRlZCB0byB0aGUgYWxyZWFkeSBzdXBwb3J0ZWQgTmFub1BpIFplcm8y LCBzaGFyaW5nCj4gbW9zdCBvZiBpdHMgcG93ZXIgdHJlZSBhbmQgcGVyaXBoZXJhbCByb3V0aW5n LiBQYXRjaCAyIHRoZXJlZm9yZSBtb3Zlcwo+IHRoZSBjb21tb24gcGFydHMgaW50byByazM1Mjgt bmFub3BpLmR0c2ksIGFuZCBwYXRjaCAzIGFkZHMgdGhlIGJvYXJkIG9uCj4gdG9wIG9mIGl0LiBU aGUgc3BsaXQgbGVhdmVzIHRoZSBOYW5vUGkgWmVybzIgZHRiIHVuY2hhbmdlZDsgSSB2ZXJpZmll ZAo+IHRoaXMgYnkgY29tcGFyaW5nIHRoZSBub2RlIGFuZCBwcm9wZXJ0eSBzZXRzIG9mIHRoZSBk dGIgYmVmb3JlIGFuZCBhZnRlcgo+IHRoZSBzcGxpdCwgd2hpY2ggZGlmZmVyIG9ubHkgaW4gbm9k ZSBvcmRlciBhbmQgcGhhbmRsZSBudW1iZXJpbmcuIFBhdGNoCj4gNCBpcyBhIGNvZGluZyBzdHls ZSBjbGVhbnVwIGluIHRoZSBzaGFyZWQgZGV2aWNldHJlZSBhbmQgdGhlIE5hbm9QaQo+IFplcm8y IGRldmljZXRyZWUuCj4KPiBUaGUgZGV2aWNldHJlZSB3YXMgZGVyaXZlZCBmcm9tIHRoZSB2ZW5k b3IgdHJlZToKPgo+ICAgaHR0cHM6Ly9naXRodWIuY29tL2ZyaWVuZGx5YXJtL2tlcm5lbC1yb2Nr Y2hpcC9jb21taXQvZWU2NDBjNTM0NGIxM2EwYTMxNzQzNmUyMzU3ZGYwMWFmODI2OGNlNwo+Cj4g YnV0IHdpdGggbWFueSBjaGFuZ2VzIHRvIG1ha2UgaXQgc3VpdGFibGUgZm9yIG1haW5saW5lLgo+ Cj4gVGVzdGVkIG9uIGEgbWV0YWwtY2FzZSB1bml0IHdpdGhvdXQgdGhlIG9wdGlvbmFsIG9uYm9h cmQgZU1NQzogYm9vdHMKPiBmcm9tIG1pY3JvU0QsIGJvdGggRXRoZXJuZXQgcG9ydHMgbGluayB1 cCBhdCAxMDAwIE1icHMsIHRoZSBIWU04NTYzIFJUQwo+IHJlZ2lzdGVycywgYW5kIGFsbCB0aHJl ZSBMRURzIGFyZSBmdW5jdGlvbmFsLiBUaGUgVVNCIFR5cGUtQyBjb25uZWN0b3IKPiByZWdpc3Rl cnMgYXMgYSBEV0MzIFVEQyBpbiBwZXJpcGhlcmFsIG1vZGU7IGdhZGdldCBlbnVtZXJhdGlvbiBh Z2FpbnN0Cj4gYSBVU0IgaG9zdCB3YXMgbm90IGNvbXBsZXRlZCwgYmVjYXVzZSB0aGF0IGNvbm5l Y3RvciBpcyBhbHNvIHRoZSA1Vgo+IGlucHV0IGFuZCBhIFBDIHBvcnQgY2Fubm90IHBvd2VyIHRo ZSBib2FyZC4KPgo+IFRoZSBib290bG9hZGVyIHdhcyBVLUJvb3QgMjAyNi4wNyB3aXRoIGEgYm9h cmQgc3BlY2lmaWMgUjI4UyB0YXJnZXQsCj4gd2hpY2ggcmVsZWFzZXMgdGhlIFJHTUlJIFBIWSBy ZXNldCBiZWZvcmUgTGludXggc3RhcnRzLCBzbyB0aGUgcmVzZXQKPiBkZXNjcmlwdGlvbiBpbiB0 aGUgUEhZIG5vZGUgaXMgYWxsIHRoZSBrZXJuZWwgbmVlZHMuCj4KPiBUd28gdGhpbmdzIEkgZGlk IG5vdCBkbywgYmVjYXVzZSBteSBoYXJkd2FyZSBjYW5ub3QgdmVyaWZ5IHRoZW06Cj4KPiAtIFRo ZSBBSUNTZW1pIEFJQzg4MDBEODAgV2lGaSBjaGlwIG9uIHNkaW8wIGhhcyBubyB1cHN0cmVhbSBk cml2ZXIsIHNvCj4gICBvbmx5IHRoZSBTRElPIGNvbnRyb2xsZXIgaXMgZGVzY3JpYmVkLgo+IC0g VGhlIGVNTUMgaXMgZGVzY3JpYmVkIGFzIEhTMjAwIHJhdGhlciB0aGFuIHRoZSB2ZW5kb3IncyBI UzQwMCB3aXRoCj4gICBlbmhhbmNlZCBzdHJvYmUsIHNpbmNlIHRoZSBib2FyZCBhdCBoYW5kIGhh cyBhbiB1bnBvcHVsYXRlZCBlTU1DCj4gICBmb290cHJpbnQgYW5kIHRoZSBmYXN0ZXIgbW9kZXMg Y291bGQgbm90IGJlIHZlcmlmaWVkLgo+Cj4gLS0tCj4gQ2hhbmdlcyBpbiB2NToKPiAtIERyb3Bw ZWQgdGhlIHBpbmN0cmwtMCBiZWZvcmUgcGluY3RybC1uYW1lcyByZW9yZGVyaW5nIGZyb20gdGhl IGNvZGluZwo+ICAgc3R5bGUgcGF0Y2ggYW5kIHVzZWQgdGhlIG9yZGVyIHRoZSByZXN0IG9mIHRo ZSByb2NrY2hpcCBkZXZpY2V0cmVlcwo+ICAgdXNlLCBwaW5jdHJsLW5hbWVzIGZpcnN0LCBpbiB0 aGUgbmV3IGRldmljZXRyZWUgYXMgd2VsbC4gVGhlIHN0cmljdAo+ICAgbW9kZSBvZiBzY3JpcHRz L2R0Yy9kdC1jaGVjay1zdHlsZSBhc2tzIGZvciB0aGUgYWxwaGFiZXRpY2FsIG9yZGVyLAo+ICAg YnV0IGl0IGRvZXMgc28gZm9yIG1hbnkgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5vIHJvY2tjaGlw IGRldmljZXRyZWUKPiAgIHNvcnRzIHRoYXQgd2F5IGVpdGhlciAoQ2h1a3VuIFBhbikuCgpUaGVu IHlvdSBjYW4gYWxzbyBqdXN0IGRyb3AgcGF0Y2ggNCBhcyAoYnkgZmFyKSBtb3N0IHJvY2tjaGlw IGRldmljZXRyZWVzCmRvIG5vdCBoYXZlIGEgYmxhbmsgbGluZSBiZWZvcmUgYGBzdGF0dXMgPSA8 b2theT47YGAKCj4gLSBNb3ZlZCB0aGUgU1lTIExFRCwgd2hpY2ggdGhlIE5hbm9QaSBSMjhTIHNo YXJlcyB3aXRoIHRoZSBOYW5vUGkgWmVybzIsCj4gICBhbmQgdGhlIGxlZDEgYW5kIGxlZF9zeXMg cGluIGNvbmZpZ3VyYXRpb25zIGludG8gcmszNTI4LW5hbm9waS5kdHNpLgo+ICAgQm90aCBib2Fy ZHMgbm93IG9ubHkgYWRkIHRoZWlyIG93biBMRURzIHRvICZsZWRzIChDaHVrdW4gUGFuKS4KPiAt IFJlbmFtZWQgdGhlIE5hbm9QaSBSMjhTIExFRCBub2RlcyB0byBsZWQtMSBhbmQgbGVkLTIsIHRv IHVzZSB0aGUKPiAgIGxlZC1bMC05XSBub2RlIG5hbWluZyAoQ2h1a3VuIFBhbikuCj4gLSBDaGFu Z2VkIHRoZSB1c2VyIGJ1dHRvbiBmcm9tIEtFWV9SRVNUQVJUIHRvIEJUTl8xLiBJdCBpcyBhIGdl bmVyYWwKPiAgIHB1cnBvc2UgYnV0dG9uIG9uIHRoaXMgYm9hcmQsIG5vdCBhIHJlc2V0IGJ1dHRv biAoQ2h1a3VuIFBhbikuCj4gLSBMaW5rIHRvIHY0OiBodHRwczovL3BhdGNoLm1zZ2lkLmxpbmsv MjAyNjA5MTEtcjI4cy11cHN0cmVhbS12NC0wLWZiNmM4NWYyMjZkNEBwcm90b24ubWUKPgo+IENo YW5nZXMgaW4gdjQ6Cj4gLSBEcm9wcGVkIHRoZSBwYXRjaCB0aGF0IG1vdmVkIHRoZSBOYW5vUGkg WmVybzIgUkdNSUkgUEhZIHJlc2V0IHRvIHRoZQo+ICAgTURJTyBidXMuIEdQSU80X0MyIHJlc2V0 cyB0aGUgUEhZLCBub3QgdGhlIGJ1cywgc28gZGVzY3JpYmluZyBpdCBvbgo+ICAgJm1kaW8xIGlz IG5vdCBhIGRlc2NyaXB0aW9uIG9mIHRoZSBoYXJkd2FyZS4gSXQgd291bGQgYWxzbyBicmVhawo+ ICAgRXRoZXJuZXQgaW4gVS1Cb290LCB3aGljaCByZWFkcyByZXNldC1ncGlvcywgcmVzZXQtYXNz ZXJ0LXVzIGFuZAo+ICAgcmVzZXQtZGVhc3NlcnQtdXMgZnJvbSB0aGUgUEhZIG5vZGUgYW5kIGhh cyBubyBzdXBwb3J0IGZvciBhIGJ1cwo+ICAgbGV2ZWwgcmVzZXQuIFRoZSBuYW5vcGktemVybzIt cmszNTI4IFUtQm9vdCB0YXJnZXQgcmVsZWFzZXMgdGhlIFBIWQo+ICAgcmVzZXQgYmVmb3JlIExp bnV4IHN0YXJ0czsgdGhlIGZhaWx1cmUgSSByZXBvcnRlZCB3YXMgc2VlbiB3aXRoIHRoZQo+ICAg Z2VuZXJpYy1yazM1MjggdGFyZ2V0LCB3aGljaCBjYXJyaWVzIG5vIGJvYXJkIGRldmljZXRyZWUu IFBvaW50ZWQgb3V0Cj4gICBieSBDaHVrdW4gUGFuLCBhbmQgYnkgSm9uYXMgS2FybG1hbiBpbiB0 aGUgc2FtZSBkaXNjdXNzaW9uIGZvciB0aGUKPiAgIEhJTkxJTksgSDI4SzoKPiAgIGh0dHBzOi8v bG9yZS5rZXJuZWwub3JnL2xrbWwvMWU4ZGE1NGYtZWY4Ny00ZDMxLTlhMGEtMTdjMGZmNjZiZWUw QGt3aWJvby5zZS8KPiAgIE15IG93biBSMjhTIGhhcyBpbiBmYWN0IGJlZW4gcnVubmluZyBhIGJv YXJkIHNwZWNpZmljIFUtQm9vdCB0YXJnZXQKPiAgIGFsbCBhbG9uZywgd2l0aCB0aGUgUEhZIG5v ZGUgZGVzY3JpcHRpb24gdGhpcyBzZXJpZXMgbm93IGtlZXBzLCBzbwo+ICAgdGhlIHJlc2V0IG9y ZGVyaW5nIHByb2JsZW0gSSBkZXNjcmliZWQgZG9lcyBub3QgYXJpc2UgdGhlcmUuCj4gLSBSZXdv cmRlZCB0aGUgY29kaW5nIHN0eWxlIHBhdGNoIHRvIHN0YXRlIHRoZSBjb2Rpbmcgc3R5bGUgdmlv bGF0aW9uCj4gICBpdHNlbGYgYXMgdGhlIHJlYXNvbiwgcmF0aGVyIHRoYW4gdGhlIHRvb2wgdGhh dCBmb3VuZCBpdCAoRGllZGVyaWsgZGUKPiAgIEhhYXMpLgo+IC0gTGluayB0byB2MzogaHR0cHM6 Ly9wYXRjaC5tc2dpZC5saW5rLzIwMjYwOTA5LXIyOHMtdXBzdHJlYW0tdjMtMC1lZTNlMWEzNGEz NTNAcHJvdG9uLm1lCj4KPiBDaGFuZ2VzIGluIHYzOgo+IC0gTmV3IHBhdGNoIDE6IGRlc2NyaWJl IHRoZSBOYW5vUGkgWmVybzIgUkdNSUkgUEhZIHJlc2V0IG9uIHRoZSBNRElPCj4gICBidXMgcmF0 aGVyIHRoYW4gaW4gdGhlIFBIWSBub2RlLCBzbyB0aGF0IGl0IGlzIGFwcGxpZWQgYmVmb3JlIHRo ZSBQSFkKPiAgIElEIGlzIHJlYWQuIEEgUEhZIGhlbGQgaW4gcmVzZXQgYnkgdGhlIGJvb3Rsb2Fk ZXIgd2FzIG90aGVyd2lzZSBuZXZlcgo+ICAgcHJvYmVkLCBsZWF2aW5nIHRoZSBwb3J0IGRlYWQu IFJlcG9ydGVkIGJ5IEFuZHJleSBLb3JzaHVub3YsIHdobwo+ICAgcHJvcG9zZWQgdGhlIGRlcHJl Y2F0ZWQgc25wcyxyZXNldC1ncGlvIHByb3BlcnRpZXMgb24gdGhlIE1BQzsgdGhlCj4gICBidXMg bGV2ZWwgcmVzZXQtZ3Bpb3MgaW4gbWRpby55YW1sIGZpeGVzIHRoZSBzYW1lIG9yZGVyaW5nIHdp dGhvdXQgYQo+ICAgZGVwcmVjYXRlZCBwcm9wZXJ0eS4KPiAtIE5ldyBwYXRjaCA1OiBmb2xsb3cg dGhlIERUUyBjb2Rpbmcgc3R5bGUgaW4gdGhlIHRocmVlIE5hbm9QaSBSSzM1MjgKPiAgIGRldmlj ZXRyZWVzLCBhcyBmb3VuZCBieSBzY3JpcHRzL2R0Yy9kdC1jaGVjay1zdHlsZSAtLW1vZGU9c3Ry aWN0Ogo+ICAgcGluY3RybC0wIGJlZm9yZSBwaW5jdHJsLW5hbWVzLCBhbmQgYSBibGFuayBsaW5l IGJlZm9yZSBzdGF0dXMuCj4gICBTdWdnZXN0ZWQgYnkgRGllZGVyaWsgZGUgSGFhcy4KPiAtIFBp Y2tlZCB1cCBDb25vciBEb29sZXkncyBBY2tlZC1ieSBvbiB0aGUgYmluZGluZy4KPiAtIExpbmsg dG8gdjI6IGh0dHBzOi8vcGF0Y2gubXNnaWQubGluay8yMDI2MDkwNy1yMjhzLXVwc3RyZWFtLXYy LTAtMjFhYjU3MGZjOTFjQHByb3Rvbi5tZQo+Cj4gQ2hhbmdlcyBpbiB2MjoKPiAtIFNwbGl0IHRo ZSBwYXJ0cyBzaGFyZWQgd2l0aCB0aGUgTmFub1BpIFplcm8yIGludG8gYSBuZXcKPiAgIHJrMzUy OC1uYW5vcGkuZHRzaSAobmV3IHBhdGNoIDIpLiBUaGUgTmFub1BpIFplcm8yIGR0YiBpcyB1bmNo YW5nZWQuCj4gLSBOYW1lIHRoZSBwaW5jdHJsIGxhYmVscyBhZnRlciB0aGUgbmV0cyBpbiB0aGUg c2NoZW1hdGljOiB1c3JfYnRuLAo+ICAgbGVkMSwgbGVkMiwgbGVkX3N5cywgcHdyX3dmIGFuZCBw Y2llX2V0aF9wZXJzdGIuCj4gLSBSZW5hbWUgdGhlIGJ1dHRvbiBub2RlIHRvIGJ1dHRvbi11c2Vy IGFuZCBpdHMgbGFiZWwgdG8gIlVTRVIiLgo+IC0gTGluayB0byB2MTogaHR0cHM6Ly9wYXRjaC5t c2dpZC5saW5rLzIwMjYwOTA1LXIyOHMtdXBzdHJlYW0tdjEtMC1mNjhkNTM4OTI2OWFAcHJvdG9u Lm1lCj4KPiAtLS0KPiDlronlrrkgKDQpOgo+ICAgICAgIGR0LWJpbmRpbmdzOiBhcm06IHJvY2tj aGlwOiBBZGQgRnJpZW5kbHlFbGVjIE5hbm9QaSBSMjhTCj4gICAgICAgYXJtNjQ6IGR0czogcm9j a2NoaXA6IFNwbGl0IG91dCB0aGUgY29tbW9uIE5hbm9QaSBSSzM1MjggcGFydHMKPiAgICAgICBh cm02NDogZHRzOiByb2NrY2hpcDogQWRkIGRldmljZXRyZWUgZm9yIHRoZSBGcmllbmRseUVsZWMg TmFub1BpIFIyOFMKPiAgICAgICBhcm02NDogZHRzOiByb2NrY2hpcDogRm9sbG93IHRoZSBEVFMg Y29kaW5nIHN0eWxlIGluIHRoZSBOYW5vUGkgUkszNTI4IGRldmljZXRyZWVzCj4KPiAgLi4uL2Rl dmljZXRyZWUvYmluZGluZ3MvYXJtL3JvY2tjaGlwLnlhbWwgICAgICAgICAgfCAgIDUgKwo+ICBh cmNoL2FybTY0L2Jvb3QvZHRzL3JvY2tjaGlwL01ha2VmaWxlICAgICAgICAgICAgICB8ICAgMSAr Cj4gIC4uLi9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9yazM1MjgtbmFub3BpLXIyOHMuZHRzIHwg MTI3ICsrKysrKysrKwo+ICAuLi4vYm9vdC9kdHMvcm9ja2NoaXAvcmszNTI4LW5hbm9waS16ZXJv Mi5kdHMgICAgICB8IDMwNiArLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBhcmNoL2FybTY0L2Jvb3Qv ZHRzL3JvY2tjaGlwL3JrMzUyOC1uYW5vcGkuZHRzaSAgICB8IDMxNCArKysrKysrKysrKysrKysr KysrKysKPiAgNSBmaWxlcyBjaGFuZ2VkLCA0NTYgaW5zZXJ0aW9ucygrKSwgMjk3IGRlbGV0aW9u cygtKQo+IC0tLQo+IGJhc2UtY29tbWl0OiAzMmUwZjY0NjQwZDU1OGEwZjU0MTBhYzVjZGQ4ZWJm MzcxYzVlNmE2Cj4gY2hhbmdlLWlkOiAyMDI2MDkwNS1yMjhzLXVwc3RyZWFtLWUyMTJlMjdkNjE2 NQo+Cj4gQmVzdCByZWdhcmRzLAo+IC0tICAKPiDlronlrrkgPEh5c3RlcmljYWxEcmFnb25zQHBy b3Rvbi5tZT4KPgo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IExpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdAo+IExpbnV4LXJvY2tjaGlwQGxp c3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LXJvY2tjaGlwCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hp cEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtcm9ja2NoaXAK