From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 099BD34F48C; Tue, 27 Jan 2026 17:09:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769533781; cv=none; b=LnjLJDsitac0fXOrN47CdFnkStAGc4I+e4fs9NPEyqMN1BknC2abqwzY8RhPDgxIeimi35Qo3RC7Ru0OhUnNjQGRR5Od/ZQVCF8Wp/zRg+E4qD6p3Gvnk7aI6Wgj1pntdvjpqefaC7GO7nwRmavweIqmJPq54UTSWwH3kXRfeiI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769533781; c=relaxed/simple; bh=NubZnecZnkvp6ZJAITtFBvz3k1y+RVSeCCVQn9KFPcE=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=fP2BqOIozMTS86x4lKq52ak1WT5EjjCmSGG5A6C5BZemlHMwiJ8Dn7saOfM2+bd7AqRRjtAXyy+bAVwZhxYgnIjrRF0AqHwnONrWftdWOOxicfbR44ULV1qhiMiZpRALHR2KrKDs1E1NLeNUDtX4NMHdf6AhiZtjdsXM38mDBIk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=0YKLmkCm; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="0YKLmkCm" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 40509C211C6; Tue, 27 Jan 2026 17:09:39 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id E54DE606F5; Tue, 27 Jan 2026 17:09:36 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 060AE119A8696; Tue, 27 Jan 2026 18:09:30 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1769533775; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding; bh=cb8JTW51tEAAL3YsAmU++TZYGVfsW7jvVhSBEQLhIiE=; b=0YKLmkCm845QEkg69rx5AG82RE4DpOFzdKQqT/lqRxxQDo7Jr4kCTBX6XRPqmkFffQDTE/ TzMsfnrzyAYlhlIElzF5cXmqh4WeoAYRLhPubJXs6yAao41wdHUe3/gvZLk/FxWUl7xTh/ Ts7LwvY86ArPr/btTu3QWZZnGVSdykro4w+BcB2zEVhPJonul41/YMjgQ/x/j0l0Sd14ys d7y6iJxElzGvQmgTzJ0p9Ts/M6Np0U10nJx7jP+0rdVNw7itUXqI0qL85VkLFVgNsA1XeP ZwaQ0Nbz7MxqnGDQ8VSBjFms03w8gbV9SfcB39F44AZrvpdJ9Vwyo9uDB72r2A== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Subject: [PATCH v6 0/8] Add generic PHY driver used by MACB/GEM on EyeQ5 Date: Tue, 27 Jan 2026 18:09:28 +0100 Message-Id: <20260127-macb-phy-v6-0-cdd840588188@bootlin.com> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-B4-Tracking: v=1; b=H4sIAAAAAAAC/23MwY7CIBDG8VcxnGXTGaAtnvY9Nh4GGCyJFtOaR mP67otexOjxm8zvfxczT4lnsdvcxcRLmlMey2i3G+EHGg8sUyhbYIMGGkR5Iu/kebhJBOc1Q4j OdaK8nyeO6fpM/e3LHtJ8ydPtWV7gcf0SWUA2MqKN2EfiDuHX5Xw5pvHH55N4ZBZ8UWigolioB wOWOUIb1CdVFQVbUVUoW+ocQ9+S+kJ1RVFXVBdqjfEtGuqBuk9qXhTBVNQUSjZEJmUDKf1O13X 9BwDegTGOAQAA X-Change-ID: 20251022-macb-phy-21bc4e1dfbb7 To: Vladimir Kondratiev , =?utf-8?q?Gr=C3=A9gory_Clement?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Kishon Vijay Abraham I , Michael Turquette , Stephen Boyd , Philipp Zabel , Thomas Bogendoerfer , Neil Armstrong Cc: linux-mips@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, linux-clk@vger.kernel.org, =?utf-8?q?Beno=C3=AEt_Monin?= , Tawfik Bayouk , Thomas Petazzoni , Luca Ceresoli , =?utf-8?q?Th=C3=A9o_Lebrun?= , Conor Dooley , Jerome Brunet , Andrew Lunn X-Mailer: b4 0.14.3 X-Last-TLS-Session-Version: TLSv1.3 EyeQ5 SoCs integrate two GEM instances. A system-controller register region named "OLB" has some control over the Ethernet PHY integration. Past iterations [0] touched those syscon registers directly from MACB. It was a bad idea. Extend the current OLB ecosystem with a new generic PHY driver. - OLB is carried by one main platform driver: clk-eyeq. - It instantiates auxiliary devices: reset-eyeq & pinctrl-eyeq5. - We add a new one: phy-eyeq5-eth. I always find devicetree the simplest way to understand device interactions, so here is a DT overview: olb: system-controller@e00000 { compatible = "mobileye,eyeq5-olb", "syscon"; reg = <0 0xe00000 0x0 0x400>; // ... #reset-cells = <2>; #clock-cells = <1>; #phy-cells = <1>; // <- this is new }; macb0: ethernet@2a00000 { compatible = "mobileye,eyeq5-gem"; phys = <&olb 0>; // <- GEM device consumes the PHY // ... }; macb1: ethernet@2b00000 { compatible = "mobileye,eyeq5-gem"; phys = <&olb 1>; // <- same thing for the second instance // ... }; The Linux MACB driver already consumes a generic PHY for some other compatibles, this is nothing new. The MACB series [1] has been merged in v6.19-rc1. -- About merging, Philipp Zabel gave his ACK for [5/7] to go into linux-clk. The split is: - [PATCH 1/7] dt-bindings: soc: mobileye: OLB is an Ethernet PHY provider on EyeQ5 [PATCH 6/7] MIPS: mobileye: eyeq5: add two Cadence GEM Ethernet controllers [PATCH 7/7] MIPS: mobileye: eyeq5-epm: add two Cadence GEM Ethernet PHYs => linux-mips - [PATCH 2/7] phy: Add driver for EyeQ5 Ethernet PHY wrapper => linux-phy - [PATCH 3/7] clk: eyeq: use the auxiliary device creation helper [PATCH 4/7] clk: eyeq: add EyeQ5 children auxiliary device for generic PHYs [PATCH 5/7] reset: eyeq: drop device_set_of_node_from_dev() done by parent => linux-clk Any objections to get it in before the next merge window? The new PHY driver has only seen tiny changes since V1. Have a nice day, Thanks! Théo [0]: https://lore.kernel.org/lkml/20250627-macb-v2-15-ff8207d0bb77@bootlin.com/ [1]: https://lore.kernel.org/lkml/20251022-macb-eyeq5-v2-0-7c140abb0581@bootlin.com/ Signed-off-by: Théo Lebrun --- Changes in v6: - Rebase upon v6.19-rc7; nothing to report. - Add new patch "phy: sort Kconfig and Makefile". - phy-eyeq5-eth: drop useless explicit __iomem cast to dev_get_platdata() return value. - I did *not* drop the Kconfig `default MACH_EYEQ5` nor driver `dev_dbg()`. I think both are useful and should be kept. See last revision discussion here: https://lore.kernel.org/lkml/DFGSMN8268O0.33TYCQDBVHUHZ@bootlin.com/ - Link to v5: https://lore.kernel.org/r/20251215-macb-phy-v5-0-a9dfea39da34@bootlin.com Changes in v5: - phy-eyeq5-eth: - fix #includes: add delay, gfp_types, module and drop array_size, bug, cleanup, container_of, lockdep, mutex. - eq5_phy_xlate(): avoid magic value, use EQ5_PHY_COUNT. - use dev_err_probe() in error cases of devm_phy_create() and devm_of_phy_provider_register(). - 3x Reviewed-by: Luca Ceresoli. - Add Neil Armstrong to Cc as new PHY subsystem reviewer. - Rebase on v6.19-rc1, tested on hardware, no changes. - Link to v4: https://lore.kernel.org/r/20251124-macb-phy-v4-0-955c625a81a7@bootlin.com Changes in v4: - Append my SoB to Jerome's patch: [PATCH v4 3/7] clk: eyeq: use the auxiliary device creation helper - Rebase on net-next & linux-{clk,mips,phy}. Nothing to report. - Link to v3: https://lore.kernel.org/r/20251119-macb-phy-v3-0-e9a7be186a33@bootlin.com Changes in v3: - Take Philipp Zabel's Reviewed-by & Acked-by trailers on reset patch. - Take Thomas Bogendoerfer's two Acked-by trailers on DT patches. - Rebase on net-next & test on target. Nothing to report. - Link to v2: https://lore.kernel.org/r/20251101-macb-phy-v2-0-c1519eef16d3@bootlin.com Changes in v2: - Take Acked-by: Conor Dooley on dt-bindings-patch. - s/%ld/%tu/ for printing ptrdiff_t; warnings on 32-bit archs. Reported by NIPA's netdev/build_32bit test. https://patchwork.kernel.org/project/netdevbpf/patch/20251021-macb-eyeq5-v1-7-3b0b5a9d2f85@bootlin.com/ https://netdev.bots.linux.dev/static/nipa/1014126/14277857/build_32bit/stderr - Link to v1: https://lore.kernel.org/r/20251022-macb-phy-v1-0-f29f28fae721@bootlin.com Changes since MACB V1: - Drop the old "mobileye,olb" properties from DT patches; found while running dtbs_check and dt_binding_check. - Drop all patches targeting net-next. That is MACB dt-bindings patch and MACB driver code. See there here [1]. - Link to v1: https://lore.kernel.org/lkml/20251021-macb-eyeq5-v1-0-3b0b5a9d2f85@bootlin.com/ Past versions of MACB patches: - March 2025: [PATCH net-next 00/13] Support the Cadence MACB/GEM instances on Mobileye EyeQ5 SoCs https://lore.kernel.org/lkml/20250321-macb-v1-0-537b7e37971d@bootlin.com/ - June 2025: [PATCH net-next v2 00/18] Support the Cadence MACB/GEM instances on Mobileye EyeQ5 SoCs https://lore.kernel.org/lkml/20250627-macb-v2-0-ff8207d0bb77@bootlin.com/ - August 2025: [PATCH net v3 00/16] net: macb: various fixes & cleanup https://lore.kernel.org/lkml/20250808-macb-fixes-v3-0-08f1fcb5179f@bootlin.com/ --- Jerome Brunet (1): clk: eyeq: use the auxiliary device creation helper Théo Lebrun (7): dt-bindings: soc: mobileye: OLB is an Ethernet PHY provider on EyeQ5 phy: sort Kconfig and Makefile phy: Add driver for EyeQ5 Ethernet PHY wrapper clk: eyeq: add EyeQ5 children auxiliary device for generic PHYs reset: eyeq: drop device_set_of_node_from_dev() done by parent MIPS: mobileye: eyeq5: add two Cadence GEM Ethernet controllers MIPS: mobileye: eyeq5-epm: add two Cadence GEM Ethernet PHYs .../bindings/soc/mobileye/mobileye,eyeq5-olb.yaml | 7 +- MAINTAINERS | 1 + arch/mips/boot/dts/mobileye/eyeq5-epm5.dts | 26 +++ arch/mips/boot/dts/mobileye/eyeq5.dtsi | 45 ++++ drivers/clk/clk-eyeq.c | 60 ++--- drivers/phy/Kconfig | 75 ++++--- drivers/phy/Makefile | 7 +- drivers/phy/phy-eyeq5-eth.c | 249 +++++++++++++++++++++ drivers/reset/reset-eyeq.c | 24 +- 9 files changed, 392 insertions(+), 102 deletions(-) --- base-commit: aaae99475aaae1373d8bbdef6105e8ad2d4c75af change-id: 20251022-macb-phy-21bc4e1dfbb7 Best regards, -- Théo Lebrun 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 CCDDED2FEC3 for ; Tue, 27 Jan 2026 17:09:46 +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:Cc:To:MIME-Version:Message-Id:Date: Subject:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=/z6gGesVqX4zy4fQKb5Ov02javknTJ5DOdZhqZCTLN0=; b=dADfJLbHmil3Ny OYDRzRdTuv9QzFBKLww8vd/5hKqgS5X8XdjGZCQccuzSBgo+5o9Yuc/77BSjyKgA8acdo2rrHUWTW yaM/mCbPeOYiZmOlO/9/j9Hzf864Qz3JEdhUken2yDYvyBwRnaVATNAYu/dfLih8LxzYmXStJSswr mEKuPaMElFtLuIS980v+lDg7zN9pk/ddDkHejEHxj7smVUptPTMuMOrGvkJOGtQi7xAcBFUCtA3nS iCfv7zL2/Ep0loxws+5ZuP1uK/o1KpApPM5IqVzuC0STZipdBbGkhKnQbHJktymhD04oZTit6sgyB j9PdlpHbXiC2SJxCg75g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vkmZW-0000000Ei0f-24fp; Tue, 27 Jan 2026 17:09:46 +0000 Received: from smtpout-02.galae.net ([185.246.84.56]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vkmZS-0000000Ehy5-1m4U for linux-phy@lists.infradead.org; Tue, 27 Jan 2026 17:09:44 +0000 Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 2D8CB1A2A99; Tue, 27 Jan 2026 17:09:37 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id E54DE606F5; Tue, 27 Jan 2026 17:09:36 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 060AE119A8696; Tue, 27 Jan 2026 18:09:30 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1769533775; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding; bh=cb8JTW51tEAAL3YsAmU++TZYGVfsW7jvVhSBEQLhIiE=; b=0YKLmkCm845QEkg69rx5AG82RE4DpOFzdKQqT/lqRxxQDo7Jr4kCTBX6XRPqmkFffQDTE/ TzMsfnrzyAYlhlIElzF5cXmqh4WeoAYRLhPubJXs6yAao41wdHUe3/gvZLk/FxWUl7xTh/ Ts7LwvY86ArPr/btTu3QWZZnGVSdykro4w+BcB2zEVhPJonul41/YMjgQ/x/j0l0Sd14ys d7y6iJxElzGvQmgTzJ0p9Ts/M6Np0U10nJx7jP+0rdVNw7itUXqI0qL85VkLFVgNsA1XeP ZwaQ0Nbz7MxqnGDQ8VSBjFms03w8gbV9SfcB39F44AZrvpdJ9Vwyo9uDB72r2A== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Subject: [PATCH v6 0/8] Add generic PHY driver used by MACB/GEM on EyeQ5 Date: Tue, 27 Jan 2026 18:09:28 +0100 Message-Id: <20260127-macb-phy-v6-0-cdd840588188@bootlin.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAAAAAAAC/23MwY7CIBDG8VcxnGXTGaAtnvY9Nh4GGCyJFtOaR mP67otexOjxm8zvfxczT4lnsdvcxcRLmlMey2i3G+EHGg8sUyhbYIMGGkR5Iu/kebhJBOc1Q4j OdaK8nyeO6fpM/e3LHtJ8ydPtWV7gcf0SWUA2MqKN2EfiDuHX5Xw5pvHH55N4ZBZ8UWigolioB wOWOUIb1CdVFQVbUVUoW+ocQ9+S+kJ1RVFXVBdqjfEtGuqBuk9qXhTBVNQUSjZEJmUDKf1O13X 9BwDegTGOAQAA X-Change-ID: 20251022-macb-phy-21bc4e1dfbb7 To: Vladimir Kondratiev , =?utf-8?q?Gr=C3=A9gory_Clement?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Kishon Vijay Abraham I , Michael Turquette , Stephen Boyd , Philipp Zabel , Thomas Bogendoerfer , Neil Armstrong Cc: linux-mips@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, linux-clk@vger.kernel.org, =?utf-8?q?Beno=C3=AEt_Monin?= , Tawfik Bayouk , Thomas Petazzoni , Luca Ceresoli , =?utf-8?q?Th=C3=A9o_Lebrun?= , Conor Dooley , Jerome Brunet , Andrew Lunn X-Mailer: b4 0.14.3 X-Last-TLS-Session-Version: TLSv1.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260127_090942_598725_1A0AD902 X-CRM114-Status: GOOD ( 17.31 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org RXllUTUgU29DcyBpbnRlZ3JhdGUgdHdvIEdFTSBpbnN0YW5jZXMuIEEgc3lzdGVtLWNvbnRyb2xs ZXIgcmVnaXN0ZXIKcmVnaW9uIG5hbWVkICJPTEIiIGhhcyBzb21lIGNvbnRyb2wgb3ZlciB0aGUg RXRoZXJuZXQgUEhZIGludGVncmF0aW9uLgoKUGFzdCBpdGVyYXRpb25zIFswXSB0b3VjaGVkIHRo b3NlIHN5c2NvbiByZWdpc3RlcnMgZGlyZWN0bHkgZnJvbSBNQUNCLgpJdCB3YXMgYSBiYWQgaWRl YS4gRXh0ZW5kIHRoZSBjdXJyZW50IE9MQiBlY29zeXN0ZW0gd2l0aCBhIG5ldyBnZW5lcmljClBI WSBkcml2ZXIuCiAtIE9MQiBpcyBjYXJyaWVkIGJ5IG9uZSBtYWluIHBsYXRmb3JtIGRyaXZlcjog Y2xrLWV5ZXEuCiAtIEl0IGluc3RhbnRpYXRlcyBhdXhpbGlhcnkgZGV2aWNlczogcmVzZXQtZXll cSAmIHBpbmN0cmwtZXllcTUuCiAtIFdlIGFkZCBhIG5ldyBvbmU6IHBoeS1leWVxNS1ldGguCgpJ IGFsd2F5cyBmaW5kIGRldmljZXRyZWUgdGhlIHNpbXBsZXN0IHdheSB0byB1bmRlcnN0YW5kIGRl dmljZQppbnRlcmFjdGlvbnMsIHNvIGhlcmUgaXMgYSBEVCBvdmVydmlldzoKCiAgICBvbGI6IHN5 c3RlbS1jb250cm9sbGVyQGUwMDAwMCB7CiAgICAgICAgICAgIGNvbXBhdGlibGUgPSAibW9iaWxl eWUsZXllcTUtb2xiIiwgInN5c2NvbiI7CiAgICAgICAgICAgIHJlZyA9IDwwIDB4ZTAwMDAwIDB4 MCAweDQwMD47CiAgICAgICAgICAgIC8vIC4uLgogICAgICAgICAgICAjcmVzZXQtY2VsbHMgPSA8 Mj47CiAgICAgICAgICAgICNjbG9jay1jZWxscyA9IDwxPjsKICAgICAgICAgICAgI3BoeS1jZWxs cyA9IDwxPjsgLy8gPC0gdGhpcyBpcyBuZXcKICAgIH07CgogICAgbWFjYjA6IGV0aGVybmV0QDJh MDAwMDAgewogICAgICAgICAgICBjb21wYXRpYmxlID0gIm1vYmlsZXllLGV5ZXE1LWdlbSI7CiAg ICAgICAgICAgIHBoeXMgPSA8Jm9sYiAwPjsgLy8gPC0gR0VNIGRldmljZSBjb25zdW1lcyB0aGUg UEhZCiAgICAgICAgICAgIC8vIC4uLgogICAgfTsKCiAgICBtYWNiMTogZXRoZXJuZXRAMmIwMDAw MCB7CiAgICAgICAgICAgIGNvbXBhdGlibGUgPSAibW9iaWxleWUsZXllcTUtZ2VtIjsKICAgICAg ICAgICAgcGh5cyA9IDwmb2xiIDE+OyAvLyA8LSBzYW1lIHRoaW5nIGZvciB0aGUgc2Vjb25kIGlu c3RhbmNlCiAgICAgICAgICAgIC8vIC4uLgogICAgfTsKClRoZSBMaW51eCBNQUNCIGRyaXZlciBh bHJlYWR5IGNvbnN1bWVzIGEgZ2VuZXJpYyBQSFkgZm9yIHNvbWUgb3RoZXIKY29tcGF0aWJsZXMs IHRoaXMgaXMgbm90aGluZyBuZXcuIFRoZSBNQUNCIHNlcmllcyBbMV0gaGFzIGJlZW4gbWVyZ2Vk CmluIHY2LjE5LXJjMS4KCi0tCgpBYm91dCBtZXJnaW5nLCBQaGlsaXBwIFphYmVsIGdhdmUgaGlz IEFDSyBmb3IgWzUvN10gdG8gZ28gaW50bwpsaW51eC1jbGsuIFRoZSBzcGxpdCBpczoKCiAtIFtQ QVRDSCAxLzddIGR0LWJpbmRpbmdzOiBzb2M6IG1vYmlsZXllOiBPTEIgaXMgYW4gRXRoZXJuZXQg UEhZIHByb3ZpZGVyIG9uIEV5ZVE1CiAgIFtQQVRDSCA2LzddIE1JUFM6IG1vYmlsZXllOiBleWVx NTogYWRkIHR3byBDYWRlbmNlIEdFTSBFdGhlcm5ldCBjb250cm9sbGVycwogICBbUEFUQ0ggNy83 XSBNSVBTOiBtb2JpbGV5ZTogZXllcTUtZXBtOiBhZGQgdHdvIENhZGVuY2UgR0VNIEV0aGVybmV0 IFBIWXMKICAgPT4gbGludXgtbWlwcwoKIC0gW1BBVENIIDIvN10gcGh5OiBBZGQgZHJpdmVyIGZv ciBFeWVRNSBFdGhlcm5ldCBQSFkgd3JhcHBlcgogICA9PiBsaW51eC1waHkKCiAtIFtQQVRDSCAz LzddIGNsazogZXllcTogdXNlIHRoZSBhdXhpbGlhcnkgZGV2aWNlIGNyZWF0aW9uIGhlbHBlcgog ICBbUEFUQ0ggNC83XSBjbGs6IGV5ZXE6IGFkZCBFeWVRNSBjaGlsZHJlbiBhdXhpbGlhcnkgZGV2 aWNlIGZvciBnZW5lcmljIFBIWXMKICAgW1BBVENIIDUvN10gcmVzZXQ6IGV5ZXE6IGRyb3AgZGV2 aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KCkgZG9uZSBieSBwYXJlbnQKICAgPT4gbGludXgtY2xr CgpBbnkgb2JqZWN0aW9ucyB0byBnZXQgaXQgaW4gYmVmb3JlIHRoZSBuZXh0IG1lcmdlIHdpbmRv dz8KVGhlIG5ldyBQSFkgZHJpdmVyIGhhcyBvbmx5IHNlZW4gdGlueSBjaGFuZ2VzIHNpbmNlIFYx LgoKSGF2ZSBhIG5pY2UgZGF5LApUaGFua3MhClRow6lvCgpbMF06IGh0dHBzOi8vbG9yZS5rZXJu ZWwub3JnL2xrbWwvMjAyNTA2MjctbWFjYi12Mi0xNS1mZjgyMDdkMGJiNzdAYm9vdGxpbi5jb20v ClsxXTogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDI1MTAyMi1tYWNiLWV5ZXE1LXYy LTAtN2MxNDBhYmIwNTgxQGJvb3RsaW4uY29tLwoKU2lnbmVkLW9mZi1ieTogVGjDqW8gTGVicnVu IDx0aGVvLmxlYnJ1bkBib290bGluLmNvbT4KLS0tCkNoYW5nZXMgaW4gdjY6Ci0gUmViYXNlIHVw b24gdjYuMTktcmM3OyBub3RoaW5nIHRvIHJlcG9ydC4KLSBBZGQgbmV3IHBhdGNoICJwaHk6IHNv cnQgS2NvbmZpZyBhbmQgTWFrZWZpbGUiLgotIHBoeS1leWVxNS1ldGg6IGRyb3AgdXNlbGVzcyBl eHBsaWNpdCBfX2lvbWVtIGNhc3QgdG8KICBkZXZfZ2V0X3BsYXRkYXRhKCkgcmV0dXJuIHZhbHVl LgotIEkgZGlkICpub3QqIGRyb3AgdGhlIEtjb25maWcgYGRlZmF1bHQgTUFDSF9FWUVRNWAgbm9y IGRyaXZlcgogIGBkZXZfZGJnKClgLiBJIHRoaW5rIGJvdGggYXJlIHVzZWZ1bCBhbmQgc2hvdWxk IGJlIGtlcHQuIFNlZQogIGxhc3QgcmV2aXNpb24gZGlzY3Vzc2lvbiBoZXJlOgogIGh0dHBzOi8v bG9yZS5rZXJuZWwub3JnL2xrbWwvREZHU01OODI2OE8wLjMzVFlDUURCVkhVSFpAYm9vdGxpbi5j b20vCi0gTGluayB0byB2NTogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDI1MTIxNS1tYWNi LXBoeS12NS0wLWE5ZGZlYTM5ZGEzNEBib290bGluLmNvbQoKQ2hhbmdlcyBpbiB2NToKLSBwaHkt ZXllcTUtZXRoOgogIC0gZml4ICNpbmNsdWRlczogYWRkIGRlbGF5LCBnZnBfdHlwZXMsIG1vZHVs ZSBhbmQgZHJvcCBhcnJheV9zaXplLAogICAgYnVnLCBjbGVhbnVwLCBjb250YWluZXJfb2YsIGxv Y2tkZXAsIG11dGV4LgogIC0gZXE1X3BoeV94bGF0ZSgpOiBhdm9pZCBtYWdpYyB2YWx1ZSwgdXNl IEVRNV9QSFlfQ09VTlQuCiAgLSB1c2UgZGV2X2Vycl9wcm9iZSgpIGluIGVycm9yIGNhc2VzIG9m IGRldm1fcGh5X2NyZWF0ZSgpIGFuZAogICAgZGV2bV9vZl9waHlfcHJvdmlkZXJfcmVnaXN0ZXIo KS4KLSAzeCBSZXZpZXdlZC1ieTogTHVjYSBDZXJlc29saS4KLSBBZGQgTmVpbCBBcm1zdHJvbmcg dG8gQ2MgYXMgbmV3IFBIWSBzdWJzeXN0ZW0gcmV2aWV3ZXIuCi0gUmViYXNlIG9uIHY2LjE5LXJj MSwgdGVzdGVkIG9uIGhhcmR3YXJlLCBubyBjaGFuZ2VzLgotIExpbmsgdG8gdjQ6IGh0dHBzOi8v bG9yZS5rZXJuZWwub3JnL3IvMjAyNTExMjQtbWFjYi1waHktdjQtMC05NTVjNjI1YTgxYTdAYm9v dGxpbi5jb20KCkNoYW5nZXMgaW4gdjQ6Ci0gQXBwZW5kIG15IFNvQiB0byBKZXJvbWUncyBwYXRj aDoKICBbUEFUQ0ggdjQgMy83XSBjbGs6IGV5ZXE6IHVzZSB0aGUgYXV4aWxpYXJ5IGRldmljZSBj cmVhdGlvbiBoZWxwZXIKLSBSZWJhc2Ugb24gbmV0LW5leHQgJiBsaW51eC17Y2xrLG1pcHMscGh5 fS4gTm90aGluZyB0byByZXBvcnQuCi0gTGluayB0byB2MzogaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvci8yMDI1MTExOS1tYWNiLXBoeS12My0wLWU5YTdiZTE4NmEzM0Bib290bGluLmNvbQoKQ2hh bmdlcyBpbiB2MzoKLSBUYWtlIFBoaWxpcHAgWmFiZWwncyBSZXZpZXdlZC1ieSAmIEFja2VkLWJ5 IHRyYWlsZXJzIG9uIHJlc2V0IHBhdGNoLgotIFRha2UgVGhvbWFzIEJvZ2VuZG9lcmZlcidzIHR3 byBBY2tlZC1ieSB0cmFpbGVycyBvbiBEVCBwYXRjaGVzLgotIFJlYmFzZSBvbiBuZXQtbmV4dCAm IHRlc3Qgb24gdGFyZ2V0LiBOb3RoaW5nIHRvIHJlcG9ydC4KLSBMaW5rIHRvIHYyOiBodHRwczov L2xvcmUua2VybmVsLm9yZy9yLzIwMjUxMTAxLW1hY2ItcGh5LXYyLTAtYzE1MTllZWYxNmQzQGJv b3RsaW4uY29tCgpDaGFuZ2VzIGluIHYyOgotIFRha2UgQWNrZWQtYnk6IENvbm9yIERvb2xleSBv biBkdC1iaW5kaW5ncy1wYXRjaC4KLSBzLyVsZC8ldHUvIGZvciBwcmludGluZyBwdHJkaWZmX3Q7 IHdhcm5pbmdzIG9uIDMyLWJpdCBhcmNocy4KICBSZXBvcnRlZCBieSBOSVBBJ3MgbmV0ZGV2L2J1 aWxkXzMyYml0IHRlc3QuCiAgaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L25l dGRldmJwZi9wYXRjaC8yMDI1MTAyMS1tYWNiLWV5ZXE1LXYxLTctM2IwYjVhOWQyZjg1QGJvb3Rs aW4uY29tLwogIGh0dHBzOi8vbmV0ZGV2LmJvdHMubGludXguZGV2L3N0YXRpYy9uaXBhLzEwMTQx MjYvMTQyNzc4NTcvYnVpbGRfMzJiaXQvc3RkZXJyCi0gTGluayB0byB2MTogaHR0cHM6Ly9sb3Jl Lmtlcm5lbC5vcmcvci8yMDI1MTAyMi1tYWNiLXBoeS12MS0wLWYyOWYyOGZhZTcyMUBib290bGlu LmNvbQoKQ2hhbmdlcyBzaW5jZSBNQUNCIFYxOgotIERyb3AgdGhlIG9sZCAibW9iaWxleWUsb2xi IiBwcm9wZXJ0aWVzIGZyb20gRFQgcGF0Y2hlczsgZm91bmQgd2hpbGUKICBydW5uaW5nIGR0YnNf Y2hlY2sgYW5kIGR0X2JpbmRpbmdfY2hlY2suCi0gRHJvcCBhbGwgcGF0Y2hlcyB0YXJnZXRpbmcg bmV0LW5leHQuIFRoYXQgaXMgTUFDQiBkdC1iaW5kaW5ncyBwYXRjaAogIGFuZCBNQUNCIGRyaXZl ciBjb2RlLiBTZWUgdGhlcmUgaGVyZSBbMV0uCi0gTGluayB0byB2MTogaHR0cHM6Ly9sb3JlLmtl cm5lbC5vcmcvbGttbC8yMDI1MTAyMS1tYWNiLWV5ZXE1LXYxLTAtM2IwYjVhOWQyZjg1QGJvb3Rs aW4uY29tLwoKUGFzdCB2ZXJzaW9ucyBvZiBNQUNCIHBhdGNoZXM6CiAtIE1hcmNoIDIwMjU6IFtQ QVRDSCBuZXQtbmV4dCAwMC8xM10gU3VwcG9ydCB0aGUgQ2FkZW5jZSBNQUNCL0dFTQogICBpbnN0 YW5jZXMgb24gTW9iaWxleWUgRXllUTUgU29DcwogICBodHRwczovL2xvcmUua2VybmVsLm9yZy9s a21sLzIwMjUwMzIxLW1hY2ItdjEtMC01MzdiN2UzNzk3MWRAYm9vdGxpbi5jb20vCiAtIEp1bmUg MjAyNTogW1BBVENIIG5ldC1uZXh0IHYyIDAwLzE4XSBTdXBwb3J0IHRoZSBDYWRlbmNlIE1BQ0Iv R0VNCiAgIGluc3RhbmNlcyBvbiBNb2JpbGV5ZSBFeWVRNSBTb0NzCiAgIGh0dHBzOi8vbG9yZS5r ZXJuZWwub3JnL2xrbWwvMjAyNTA2MjctbWFjYi12Mi0wLWZmODIwN2QwYmI3N0Bib290bGluLmNv bS8KIC0gQXVndXN0IDIwMjU6IFtQQVRDSCBuZXQgdjMgMDAvMTZdIG5ldDogbWFjYjogdmFyaW91 cyBmaXhlcyAmIGNsZWFudXAKICAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDI1MDgw OC1tYWNiLWZpeGVzLXYzLTAtMDhmMWZjYjUxNzlmQGJvb3RsaW4uY29tLwoKLS0tCkplcm9tZSBC cnVuZXQgKDEpOgogICAgICBjbGs6IGV5ZXE6IHVzZSB0aGUgYXV4aWxpYXJ5IGRldmljZSBjcmVh dGlvbiBoZWxwZXIKClRow6lvIExlYnJ1biAoNyk6CiAgICAgIGR0LWJpbmRpbmdzOiBzb2M6IG1v YmlsZXllOiBPTEIgaXMgYW4gRXRoZXJuZXQgUEhZIHByb3ZpZGVyIG9uIEV5ZVE1CiAgICAgIHBo eTogc29ydCBLY29uZmlnIGFuZCBNYWtlZmlsZQogICAgICBwaHk6IEFkZCBkcml2ZXIgZm9yIEV5 ZVE1IEV0aGVybmV0IFBIWSB3cmFwcGVyCiAgICAgIGNsazogZXllcTogYWRkIEV5ZVE1IGNoaWxk cmVuIGF1eGlsaWFyeSBkZXZpY2UgZm9yIGdlbmVyaWMgUEhZcwogICAgICByZXNldDogZXllcTog ZHJvcCBkZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoKSBkb25lIGJ5IHBhcmVudAogICAgICBN SVBTOiBtb2JpbGV5ZTogZXllcTU6IGFkZCB0d28gQ2FkZW5jZSBHRU0gRXRoZXJuZXQgY29udHJv bGxlcnMKICAgICAgTUlQUzogbW9iaWxleWU6IGV5ZXE1LWVwbTogYWRkIHR3byBDYWRlbmNlIEdF TSBFdGhlcm5ldCBQSFlzCgogLi4uL2JpbmRpbmdzL3NvYy9tb2JpbGV5ZS9tb2JpbGV5ZSxleWVx NS1vbGIueWFtbCAgfCAgIDcgKy0KIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAxICsKIGFyY2gvbWlwcy9ib290L2R0cy9tb2JpbGV5ZS9leWVx NS1lcG01LmR0cyAgICAgICAgIHwgIDI2ICsrKwogYXJjaC9taXBzL2Jvb3QvZHRzL21vYmlsZXll L2V5ZXE1LmR0c2kgICAgICAgICAgICAgfCAgNDUgKysrKwogZHJpdmVycy9jbGsvY2xrLWV5ZXEu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjAgKystLS0KIGRyaXZlcnMvcGh5L0tj b25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDc1ICsrKystLS0KIGRyaXZl cnMvcGh5L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiBk cml2ZXJzL3BoeS9waHktZXllcTUtZXRoLmMgICAgICAgICAgICAgICAgICAgICAgICB8IDI0OSAr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvcmVzZXQvcmVzZXQtZXllcS5jICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDI0ICstCiA5IGZpbGVzIGNoYW5nZWQsIDM5MiBpbnNlcnRpb25z KCspLCAxMDIgZGVsZXRpb25zKC0pCi0tLQpiYXNlLWNvbW1pdDogYWFhZTk5NDc1YWFhZTEzNzNk OGJiZGVmNjEwNWU4YWQyZDRjNzVhZgpjaGFuZ2UtaWQ6IDIwMjUxMDIyLW1hY2ItcGh5LTIxYmM0 ZTFkZmJiNwoKQmVzdCByZWdhcmRzLAotLSAKVGjDqW8gTGVicnVuIDx0aGVvLmxlYnJ1bkBib290 bGluLmNvbT4KCgotLSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1waHkK