From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) (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 2AA4B79D3 for ; Tue, 23 Apr 2024 08:39:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.196 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713861574; cv=none; b=T/NfNwD39TQ9QqMonhxt72Cf0Dv2oa3jtxHYzdubJQfOUeW86CI/SDWLr35HvUvEfJ65ImdCBn6iM8v4GronTKROXuTz0gQCwSPXzehJs56p29984XExj8AW0f7hMgIxkvMieIl1YW4V+4nrxGs/GiJaP6ozGntWDjWoeC9Na0c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713861574; c=relaxed/simple; bh=QTujR1a7+ujDQPHOp+uzhs//S+2APRPzioOxbcORayA=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=jgF6j0GM4gL3Z+e+y+4sOxNg2f+gyazMvoFJUHNJlnAq65oEEM3/Ck7kdZ7Rpkerymi5aCuh4WzUX3748+AXhBP1s3WcSf4s0aj3mWrgp5/duh6NWD+SZZghHattnfnIJJaVvzPlcXgn1GDkg1IOY7+f9pBdygjrflOM/vDXz/Q= 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=hLHTY6wa; arc=none smtp.client-ip=217.70.183.196 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="hLHTY6wa" Received: by mail.gandi.net (Postfix) with ESMTPSA id 272DCE0004; Tue, 23 Apr 2024 08:39:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1713861568; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IWooWzbcUrSnTPeszzSJpcTzFIEr2JfKzqakj4tFJJY=; b=hLHTY6waJMhOsBbEkB2wckL8NFXE/Z5ge/rWHSfH+e/KLA8ApALX67yjQ+GuQJt1ovw9p3 jy+JZRWVzXB/GWT293hP1J7JhRVXmkqSKfV7nBqrtIJDzw3RLzJSwcmQt/73yWcvuQydfy FUR6cTax7hyIqbWcxzyYVXiSwdV+DRgtKDBRCk8cJIjEwiQIJGfgFc7QKr00M3kBFI8H9t aaKSs9g3e2tJqAfX3nK9a5x0L7TLJ6IPCUM7ADcyR/Om0qJTl5nT065vGP/9w+oz9el9ii qI98mhXg92GzjapvNeMLw6EPRcpE7Mc3eU88wsOSg+v/xix91Ef8xWRJ3kArxw== Date: Tue, 23 Apr 2024 10:39:24 +0200 From: Herve Codina To: Saravana Kannan Cc: Greg Kroah-Hartman , "Rafael J. Wysocki" , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Wolfram Sang , Rob Herring , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Geert Uytterhoeven , kernel-team@android.com, Wolfram Sang , linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, Luca Ceresoli , Thomas Petazzoni Subject: Re: [PATCH v3 0/2] fw_devlink overlay fix Message-ID: <20240423103924.366eba43@bootlin.com> In-Reply-To: <20240411235623.1260061-1-saravanak@google.com> References: <20240411235623.1260061-1-saravanak@google.com> Organization: Bootlin X-Mailer: Claws Mail 4.2.0 (GTK 3.24.41; x86_64-redhat-linux-gnu) Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: herve.codina@bootlin.com Hi Saravana, On Thu, 11 Apr 2024 16:56:20 -0700 Saravana Kannan wrote: > Overlays don't work correctly with fw_devlink. This patch series fixes > it. This series is now ready for review and merging once Geert and Herve > give they Tested-by. > > Geert and Herve, > > This patch series should hopefully fix both of your use cases [1][2][3]. > Can you please check to make sure the device links created to/from the > overlay devices are to/from the right ones? > > Thanks, > Saravana > I tested the series. On my Microchip use case (i.e. DT overlay on a PCIe device), I observed that some driver removal were done in a wrong order. For instance, the onboard PCIe device interrupt controller (oic@e00c0120) was removed before its consumers. I enabled debug traces in core.c and observed that many links were dropped. These links are related to pinctrl, clock, reset, interrupts, ... I have the feeling that these links should not be dropped. Here are extracted traces: --- 8< --- [ 9.225355] mchp_lan966x 0000:01:00.0: enabling device (0000 -> 0002) [ 9.279024] device: 'd0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0': device_add [ 9.286555] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/switch@e0000000 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/oic@e00c0120 [ 9.302168] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/switch@e0000000 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/reset@e200400c [ 9.317489] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/switch@e0000000 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064/tod_pins ... [ 9.403387] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/mdio@e200413c Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/reset@e200400c [ 9.418466] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/sfp-eth3 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064 [ 9.433263] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/sfp-eth2 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064 ... [ 9.495849] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 [ 9.512111] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000/i2c@600 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/oic@e00c0120 [ 9.527931] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000/i2c@600 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 [ 9.544878] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000/i2c@600 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064/fcb4-i2c-pins ... [ 9.562283] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/reset@e200400c [ 9.577563] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/oic@e00c0120 ... [ 9.592813] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/cpu_clk [ 9.608258] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/ddr_clk [ 9.623731] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/sys_clk [ 9.639269] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/oic@e00c0120 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0 [ 9.651930] device: 'pci:0000:01:00.0--platform:d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0': device_add [ 9.661716] platform d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0: Linked as a sync state only consumer to 0000:01:00.0 ... [ 9.803560] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/sfp-eth2 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 9.816827] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/sfp-eth2 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064 [ 9.831309] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/sfp-eth3 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 9.844561] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/sfp-eth3 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064 ... [ 9.919384] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000/i2c@600 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 9.934028] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000/i2c@600 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064/fcb4-i2c-pins [ 9.951138] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/switch@e0000000 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 9.965012] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/switch@e0000000 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064/tod_pins [ 9.980886] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 9.994831] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/reset@e200400c [ 10.009834] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/mdio@e200413c Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 10.023520] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/mdio@e200413c Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/reset@e200400c [ 10.038248] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/switch@e0000000 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/reset@e200400c [ 10.053160] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000/i2c@600 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 [ 10.069820] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 10.083772] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 [ 10.099739] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 Linked as a fwnode consumer to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 10.114471] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/sys_clk [ 10.129648] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/ddr_clk [ 10.144818] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/clock-controller@e00c00a8 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/cpu_clk [ 10.159986] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/pinctrl@e2004064 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/oic@e00c0120 [ 10.174802] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000/i2c@600 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/oic@e00c0120 [ 10.190323] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/switch@e0000000 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/oic@e00c0120 [ 10.205098] simple-pm-bus d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0: Dropping the link to 0000:01:00.0 [ 10.214501] device: 'pci:0000:01:00.0--platform:d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0': device_unregister [ 10.225187] device: 'ea000000.switch': device_add [ 10.230321] device: 'platform:d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0--platform:ea000000.switch': device_add [ 10.240806] devices_kset: Moving ea000000.switch to end of list [ 10.246794] platform ea000000.switch: Linked as a consumer to d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0 [ 10.256399] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/switch@e0000000 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 10.270803] device: 'e800413c.mdio': device_add [ 10.275775] device: 'platform:d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0--platform:e800413c.mdio': device_add [ 10.286036] devices_kset: Moving e800413c.mdio to end of list [ 10.291863] platform e800413c.mdio: Linked as a consumer to d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0 [ 10.301213] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/mdio@e200413c Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 10.315260] mscc-miim e800413c.mdio: error -EPROBE_DEFER: Failed to get reset ... [ 10.387676] device: 'd0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0:sfp-eth3': device_add [ 10.388124] devices_kset: Moving ea000000.switch to end of list [ 10.402096] device: 'platform:d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0--platform:d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0:sfp-eth3': device_add [ 10.416004] devices_kset: Moving d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0:sfp-eth3 to end of list [ 10.425281] platform d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0:sfp-eth3: Linked as a consumer to d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0 [ 10.437942] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/sfp-eth3 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 10.451352] devices_kset: Moving e800413c.mdio to end of list [ 10.451912] device: 'd0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0:sfp-eth2': device_add [ 10.458161] mscc-miim e800413c.mdio: error -EPROBE_DEFER: Failed to get reset [ 10.466501] device: 'platform:d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0--platform:d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0:sfp-eth2': device_add [ 10.485906] devices_kset: Moving d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0:sfp-eth2 to end of list [ 10.495096] platform d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0:sfp-eth2: Linked as a consumer to d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0 [ 10.507855] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/sfp-eth2 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 ... [ 10.580486] device: 'ea040000.flexcom': device_add [ 10.585753] device: 'platform:d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0--platform:ea040000.flexcom': device_add [ 10.596336] devices_kset: Moving ea040000.flexcom to end of list [ 10.602429] platform ea040000.flexcom: Linked as a consumer to d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0 [ 10.612031] /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0/flexcom@e0040000 Dropping the fwnode link to /soc/pcie@d0070000/pci@0,0/dev@0,0/pci-ep-bus@0 [ 10.626863] device: 'e8004064.pinctrl': device_add [ 10.632045] device: 'platform:d0070000.pcie:pci@0,0:dev@0,0:pci-ep-bus@0--platform:e8004064.pinctrl': device_add ... --- 8< --- Here is the related dtso applied at the PCIe device DT node: --- 8< --- / { fragment@0 { target-path=""; __overlay__ { #address-cells = <3>; #size-cells = <2>; pci-ep-bus@0 { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; /* * map @0xe2000000 (32MB) to BAR0 (CPU) * map @0xe0000000 (16MB) to BAR1 (AMBA) */ ranges = <0xe2000000 0x00 0x00 0x00 0x2000000 0xe0000000 0x01 0x00 0x00 0x1000000>; oic: oic@e00c0120 { compatible = "microchip,lan966x-oic"; #interrupt-cells = <2>; interrupt-controller; interrupts = <0>; /* PCI INTx assigned interrupt */ reg = <0xe00c0120 0x190>; }; cpu_clk: cpu_clk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <600000000>; // CPU clock = 600MHz }; ddr_clk: ddr_clk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <30000000>; // Fabric clock = 30MHz }; sys_clk: sys_clk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <15625000>; // System clock = 15.625MHz }; clks: clock-controller@e00c00a8 { compatible = "microchip,lan966x-gck"; #clock-cells = <1>; clocks = <&cpu_clk>, <&ddr_clk>, <&sys_clk>; clock-names = "cpu", "ddr", "sys"; reg = <0xe00c00a8 0x38>, <0xe00c02cc 0x4>; }; cpu_ctrl: syscon@e00c0000 { compatible = "microchip,lan966x-cpu-syscon", "syscon"; reg = <0xe00c0000 0xa8>; }; reset: reset@e200400c { compatible = "microchip,lan966x-switch-reset"; reg = <0xe200400c 0x4>; reg-names = "gcb"; #reset-cells = <1>; cpu-syscon = <&cpu_ctrl>; }; gpio: pinctrl@e2004064 { compatible = "microchip,lan966x-pinctrl"; reg = <0xe2004064 0xb4>, <0xe2010024 0x138>; resets = <&reset 0>; reset-names = "switch"; gpio-controller; #gpio-cells = <2>; gpio-ranges = <&gpio 0 0 78>; interrupt-parent = <&oic>; interrupt-controller; interrupts = <17 IRQ_TYPE_LEVEL_HIGH>; #interrupt-cells = <2>; tod_pins: tod_pins { pins = "GPIO_36"; function = "ptpsync_1"; }; fc0_a_pins: fcb4-i2c-pins { /* RXD, TXD */ pins = "GPIO_9", "GPIO_10"; function = "fc0_a"; }; i2cmux_pins: i2cmux-pins { pins = "GPIO_76", "GPIO_77"; function = "twi_slc_gate"; output-low; }; i2cmux_0: i2cmux-0 { pins = "GPIO_76"; function = "twi_slc_gate"; output-high; }; i2cmux_1: i2cmux-1 { pins = "GPIO_77"; function = "twi_slc_gate"; output-high; }; }; flx0: flexcom@e0040000 { compatible = "atmel,sama5d2-flexcom"; reg = <0xe0040000 0x100>; clocks = <&clks GCK_ID_FLEXCOM0>; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xe0040000 0x800>; atmel,flexcom-mode = ; i2c_lan966x: i2c@600 { compatible = "microchip,lan966x-i2c"; reg = <0x600 0x200>; interrupt-parent = <&oic>; interrupts = <48 IRQ_TYPE_LEVEL_HIGH>; #address-cells = <1>; #size-cells = <0>; clocks = <&clks GCK_ID_FLEXCOM0>; assigned-clocks = <&clks GCK_ID_FLEXCOM0>; assigned-clock-rates = <20000000>; pinctrl-0 = <&fc0_a_pins>; pinctrl-names = "default"; i2c-analog-filter; i2c-digital-filter; i2c-digital-filter-width-ns = <35>; }; }; i2c0_emux: i2c0-emux@0 { compatible = "i2c-mux-pinctrl"; #address-cells = <1>; #size-cells = <0>; i2c-parent = <&i2c_lan966x>; pinctrl-names = "i2c102", "i2c103", "idle"; pinctrl-0 = <&i2cmux_0>; pinctrl-1 = <&i2cmux_1>; pinctrl-2 = <&i2cmux_pins>; i2c102: i2c_sfp1 { reg = <0>; #address-cells = <1>; #size-cells = <0>; }; i2c103: i2c_sfp2 { reg = <1>; #address-cells = <1>; #size-cells = <0>; }; }; sfp_eth2: sfp-eth2 { compatible = "sff,sfp"; i2c-bus = <&i2c102>; tx-disable-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; los-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>; mod-def0-gpios = <&gpio 18 GPIO_ACTIVE_LOW>; tx-fault-gpios = <&gpio 2 GPIO_ACTIVE_HIGH>; }; sfp_eth3: sfp-eth3 { compatible = "sff,sfp"; i2c-bus = <&i2c103>; tx-disable-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; los-gpios = <&gpio 26 GPIO_ACTIVE_HIGH>; mod-def0-gpios = <&gpio 19 GPIO_ACTIVE_LOW>; tx-fault-gpios = <&gpio 3 GPIO_ACTIVE_HIGH>; }; serdes: serdes@e202c000 { compatible = "microchip,lan966x-serdes"; reg = <0xe202c000 0x9c>, <0xe2004010 0x4>; #phy-cells = <2>; }; mdio1: mdio@e200413c { #address-cells = <1>; #size-cells = <0>; compatible = "microchip,lan966x-miim"; reg = <0xe200413c 0x24>, <0xe2010020 0x4>; resets = <&reset 0>; reset-names = "switch"; lan966x_phy0: ethernet-lan966x_phy@1 { reg = <1>; }; lan966x_phy1: ethernet-lan966x_phy@2 { reg = <2>; }; }; switch: switch@e0000000 { compatible = "microchip,lan966x-switch"; reg = <0xe0000000 0x0100000>, <0xe2000000 0x0800000>; reg-names = "cpu", "gcb"; interrupt-parent = <&oic>; interrupts = <12 IRQ_TYPE_LEVEL_HIGH>, <9 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "xtr", "ana"; resets = <&reset 0>; reset-names = "switch"; pinctrl-names = "default"; pinctrl-0 = <&tod_pins>; ethernet-ports { #address-cells = <1>; #size-cells = <0>; port0: port@0 { phy-handle = <&lan966x_phy0>; reg = <0>; phy-mode = "gmii"; phys = <&serdes 0 CU(0)>; }; port1: port@1 { phy-handle = <&lan966x_phy1>; reg = <1>; phy-mode = "gmii"; phys = <&serdes 1 CU(1)>; }; port2: port@2 { reg = <2>; phy-mode = "sgmii"; phys = <&serdes 2 SERDES6G(0)>; sfp = <&sfp_eth2>; managed = "in-band-status"; }; port3: port@3 { reg = <3>; phy-mode = "sgmii"; phys = <&serdes 3 SERDES6G(1)>; sfp = <&sfp_eth3>; managed = "in-band-status"; }; }; }; }; }; }; }; --- 8< --- Best regards, Hervé 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 8B28DC4345F for ; Tue, 23 Apr 2024 08:39:54 +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:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5i+9/biDL3XgEh6Oldg3X7qLXXQsvelgSYPfCMTTGeM=; b=BHxscHbt/e43ZO 6PrQTVHyksgzCtO6Db9ezlGw90yb8qELCjTx3U1OkIDdV+arhxi4GBkpkL0uI7ubMPhFskYrkByBj yludPXISbavChbBCPQiFzpjIsgU2waB87wyZTTq6gtRZ5CqJqZesmCJKzX55FfGcnu43tKeYJghFo FzIATLBgoeTVnek+mW/ZkLyz3qdjVd1/LExjp7EG6mGXsq0/KtWJDiTOuYJZal7trsSPJZNw31U+8 NNtBRkItZdCGfQWQzp5v608sPs+A+QFkyFeew3oG+bGt0071vw4uSIfMMDWhI4uR5hSOwV7UQY9ZL 8NZ0fXWBoc7/j1h2IUhw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzBge-0000000GU61-0yqD; Tue, 23 Apr 2024 08:39:36 +0000 Received: from relay4-d.mail.gandi.net ([217.70.183.196]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzBgb-0000000GU5N-14Ky for linux-arm-kernel@lists.infradead.org; Tue, 23 Apr 2024 08:39:35 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 272DCE0004; Tue, 23 Apr 2024 08:39:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1713861568; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IWooWzbcUrSnTPeszzSJpcTzFIEr2JfKzqakj4tFJJY=; b=hLHTY6waJMhOsBbEkB2wckL8NFXE/Z5ge/rWHSfH+e/KLA8ApALX67yjQ+GuQJt1ovw9p3 jy+JZRWVzXB/GWT293hP1J7JhRVXmkqSKfV7nBqrtIJDzw3RLzJSwcmQt/73yWcvuQydfy FUR6cTax7hyIqbWcxzyYVXiSwdV+DRgtKDBRCk8cJIjEwiQIJGfgFc7QKr00M3kBFI8H9t aaKSs9g3e2tJqAfX3nK9a5x0L7TLJ6IPCUM7ADcyR/Om0qJTl5nT065vGP/9w+oz9el9ii qI98mhXg92GzjapvNeMLw6EPRcpE7Mc3eU88wsOSg+v/xix91Ef8xWRJ3kArxw== Date: Tue, 23 Apr 2024 10:39:24 +0200 From: Herve Codina To: Saravana Kannan Cc: Greg Kroah-Hartman , "Rafael J. Wysocki" , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Wolfram Sang , Rob Herring , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Geert Uytterhoeven , kernel-team@android.com, Wolfram Sang , linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, Luca Ceresoli , Thomas Petazzoni Subject: Re: [PATCH v3 0/2] fw_devlink overlay fix Message-ID: <20240423103924.366eba43@bootlin.com> In-Reply-To: <20240411235623.1260061-1-saravanak@google.com> References: <20240411235623.1260061-1-saravanak@google.com> Organization: Bootlin X-Mailer: Claws Mail 4.2.0 (GTK 3.24.41; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-GND-Sasl: herve.codina@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240423_013933_605661_EED933BC X-CRM114-Status: GOOD ( 15.92 ) 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 SGkgU2FyYXZhbmEsCgpPbiBUaHUsIDExIEFwciAyMDI0IDE2OjU2OjIwIC0wNzAwClNhcmF2YW5h IEthbm5hbiA8c2FyYXZhbmFrQGdvb2dsZS5jb20+IHdyb3RlOgoKPiBPdmVybGF5cyBkb24ndCB3 b3JrIGNvcnJlY3RseSB3aXRoIGZ3X2RldmxpbmsuIFRoaXMgcGF0Y2ggc2VyaWVzIGZpeGVzCj4g aXQuIFRoaXMgc2VyaWVzIGlzIG5vdyByZWFkeSBmb3IgcmV2aWV3IGFuZCBtZXJnaW5nIG9uY2Ug R2VlcnQgYW5kIEhlcnZlCj4gZ2l2ZSB0aGV5IFRlc3RlZC1ieS4KPiAKPiBHZWVydCBhbmQgSGVy dmUsCj4gCj4gVGhpcyBwYXRjaCBzZXJpZXMgc2hvdWxkIGhvcGVmdWxseSBmaXggYm90aCBvZiB5 b3VyIHVzZSBjYXNlcyBbMV1bMl1bM10uCj4gQ2FuIHlvdSBwbGVhc2UgY2hlY2sgdG8gbWFrZSBz dXJlIHRoZSBkZXZpY2UgbGlua3MgY3JlYXRlZCB0by9mcm9tIHRoZQo+IG92ZXJsYXkgZGV2aWNl cyBhcmUgdG8vZnJvbSB0aGUgcmlnaHQgb25lcz8KPiAKPiBUaGFua3MsCj4gU2FyYXZhbmEKPiAK CkkgdGVzdGVkIHRoZSBzZXJpZXMuCgpPbiBteSBNaWNyb2NoaXAgdXNlIGNhc2UgKGkuZS4gRFQg b3ZlcmxheSBvbiBhIFBDSWUgZGV2aWNlKSwgSSBvYnNlcnZlZCB0aGF0CnNvbWUgZHJpdmVyIHJl bW92YWwgd2VyZSBkb25lIGluIGEgd3Jvbmcgb3JkZXIuIEZvciBpbnN0YW5jZSwgdGhlIG9uYm9h cmQKUENJZSBkZXZpY2UgaW50ZXJydXB0IGNvbnRyb2xsZXIgKG9pY0BlMDBjMDEyMCkgd2FzIHJl bW92ZWQgYmVmb3JlIGl0cwpjb25zdW1lcnMuCgpJIGVuYWJsZWQgZGVidWcgdHJhY2VzIGluIGNv cmUuYyBhbmQgb2JzZXJ2ZWQgdGhhdCBtYW55IGxpbmtzIHdlcmUgZHJvcHBlZC4KVGhlc2UgbGlu a3MgYXJlIHJlbGF0ZWQgdG8gcGluY3RybCwgY2xvY2ssIHJlc2V0LCBpbnRlcnJ1cHRzLCAuLi4K SSBoYXZlIHRoZSBmZWVsaW5nIHRoYXQgdGhlc2UgbGlua3Mgc2hvdWxkIG5vdCBiZSBkcm9wcGVk LgoKSGVyZSBhcmUgZXh0cmFjdGVkIHRyYWNlczoKLS0tIDg8IC0tLQogIFsgICAgOS4yMjUzNTVd IG1jaHBfbGFuOTY2eCAwMDAwOjAxOjAwLjA6IGVuYWJsaW5nIGRldmljZSAoMDAwMCAtPiAwMDAy KQogIFsgICAgOS4yNzkwMjRdIGRldmljZTogJ2QwMDcwMDAwLnBjaWU6cGNpQDAsMDpkZXZAMCww OnBjaS1lcC1idXNAMCc6IGRldmljZV9hZGQKICBbICAgIDkuMjg2NTU1XSAvc29jL3BjaWVAZDAw NzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9zd2l0Y2hAZTAwMDAwMDAgTGlua2Vk IGFzIGEgZndub2RlIGNvbnN1bWVyIHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAw LDAvcGNpLWVwLWJ1c0AwL29pY0BlMDBjMDEyMAogIFsgICAgOS4zMDIxNjhdIC9zb2MvcGNpZUBk MDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL3N3aXRjaEBlMDAwMDAwMCBMaW5r ZWQgYXMgYSBmd25vZGUgY29uc3VtZXIgdG8gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2 QDAsMC9wY2ktZXAtYnVzQDAvcmVzZXRAZTIwMDQwMGMKICBbICAgIDkuMzE3NDg5XSAvc29jL3Bj aWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9zd2l0Y2hAZTAwMDAwMDAg TGlua2VkIGFzIGEgZndub2RlIGNvbnN1bWVyIHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCww L2RldkAwLDAvcGNpLWVwLWJ1c0AwL3BpbmN0cmxAZTIwMDQwNjQvdG9kX3BpbnMKICAuLi4KICBb ICAgIDkuNDAzMzg3XSAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1i dXNAMC9tZGlvQGUyMDA0MTNjIExpbmtlZCBhcyBhIGZ3bm9kZSBjb25zdW1lciB0byAvc29jL3Bj aWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9yZXNldEBlMjAwNDAwYwog IFsgICAgOS40MTg0NjZdIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVw LWJ1c0AwL3NmcC1ldGgzIExpbmtlZCBhcyBhIGZ3bm9kZSBjb25zdW1lciB0byAvc29jL3BjaWVA ZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9waW5jdHJsQGUyMDA0MDY0CiAg WyAgICA5LjQzMzI2M10gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAt YnVzQDAvc2ZwLWV0aDIgTGlua2VkIGFzIGEgZndub2RlIGNvbnN1bWVyIHRvIC9zb2MvcGNpZUBk MDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL3BpbmN0cmxAZTIwMDQwNjQKICAu Li4KICBbICAgIDkuNDk1ODQ5XSAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3Bj aS1lcC1idXNAMC9mbGV4Y29tQGUwMDQwMDAwIExpbmtlZCBhcyBhIGZ3bm9kZSBjb25zdW1lciB0 byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9jbG9jay1j b250cm9sbGVyQGUwMGMwMGE4CiAgWyAgICA5LjUxMjExMV0gL3NvYy9wY2llQGQwMDcwMDAwL3Bj aUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvZmxleGNvbUBlMDA0MDAwMC9pMmNANjAwIExpbmtl ZCBhcyBhIGZ3bm9kZSBjb25zdW1lciB0byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZA MCwwL3BjaS1lcC1idXNAMC9vaWNAZTAwYzAxMjAKICBbICAgIDkuNTI3OTMxXSAvc29jL3BjaWVA ZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9mbGV4Y29tQGUwMDQwMDAwL2ky Y0A2MDAgTGlua2VkIGFzIGEgZndub2RlIGNvbnN1bWVyIHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9w Y2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL2Nsb2NrLWNvbnRyb2xsZXJAZTAwYzAwYTgKICBb ICAgIDkuNTQ0ODc4XSAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1i dXNAMC9mbGV4Y29tQGUwMDQwMDAwL2kyY0A2MDAgTGlua2VkIGFzIGEgZndub2RlIGNvbnN1bWVy IHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL3BpbmN0 cmxAZTIwMDQwNjQvZmNiNC1pMmMtcGlucwogIC4uLgogIFsgICAgOS41NjIyODNdIC9zb2MvcGNp ZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL3BpbmN0cmxAZTIwMDQwNjQg TGlua2VkIGFzIGEgZndub2RlIGNvbnN1bWVyIHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCww L2RldkAwLDAvcGNpLWVwLWJ1c0AwL3Jlc2V0QGUyMDA0MDBjCiAgWyAgICA5LjU3NzU2M10gL3Nv Yy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvcGluY3RybEBlMjAw NDA2NCBMaW5rZWQgYXMgYSBmd25vZGUgY29uc3VtZXIgdG8gL3NvYy9wY2llQGQwMDcwMDAwL3Bj aUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvb2ljQGUwMGMwMTIwCiAgLi4uCiAgWyAgICA5LjU5 MjgxM10gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvY2xv Y2stY29udHJvbGxlckBlMDBjMDBhOCBMaW5rZWQgYXMgYSBmd25vZGUgY29uc3VtZXIgdG8gL3Nv Yy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvY3B1X2NsawogIFsg ICAgOS42MDgyNThdIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1 c0AwL2Nsb2NrLWNvbnRyb2xsZXJAZTAwYzAwYTggTGlua2VkIGFzIGEgZndub2RlIGNvbnN1bWVy IHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL2Rkcl9j bGsKICBbICAgIDkuNjIzNzMxXSAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3Bj aS1lcC1idXNAMC9jbG9jay1jb250cm9sbGVyQGUwMGMwMGE4IExpbmtlZCBhcyBhIGZ3bm9kZSBj b25zdW1lciB0byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNA MC9zeXNfY2xrCiAgWyAgICA5LjYzOTI2OV0gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2 QDAsMC9wY2ktZXAtYnVzQDAvb2ljQGUwMGMwMTIwIExpbmtlZCBhcyBhIGZ3bm9kZSBjb25zdW1l ciB0byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwCiAgWyAgICA5LjY1MTkzMF0g ZGV2aWNlOiAncGNpOjAwMDA6MDE6MDAuMC0tcGxhdGZvcm06ZDAwNzAwMDAucGNpZTpwY2lAMCww OmRldkAwLDA6cGNpLWVwLWJ1c0AwJzogZGV2aWNlX2FkZAogIFsgICAgOS42NjE3MTZdIHBsYXRm b3JtIGQwMDcwMDAwLnBjaWU6cGNpQDAsMDpkZXZAMCwwOnBjaS1lcC1idXNAMDogTGlua2VkIGFz IGEgc3luYyBzdGF0ZSBvbmx5IGNvbnN1bWVyIHRvIDAwMDA6MDE6MDAuMAogIC4uLgogIFsgICAg OS44MDM1NjBdIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0Aw L3NmcC1ldGgyIExpbmtlZCBhcyBhIGZ3bm9kZSBjb25zdW1lciB0byAvc29jL3BjaWVAZDAwNzAw MDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMAogIFsgICAgOS44MTY4MjddIC9zb2MvcGNp ZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL3NmcC1ldGgyIERyb3BwaW5n IHRoZSBmd25vZGUgbGluayB0byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3Bj aS1lcC1idXNAMC9waW5jdHJsQGUyMDA0MDY0CiAgWyAgICA5LjgzMTMwOV0gL3NvYy9wY2llQGQw MDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvc2ZwLWV0aDMgTGlua2VkIGFzIGEg Zndub2RlIGNvbnN1bWVyIHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNp LWVwLWJ1c0AwCiAgWyAgICA5Ljg0NDU2MV0gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2 QDAsMC9wY2ktZXAtYnVzQDAvc2ZwLWV0aDMgRHJvcHBpbmcgdGhlIGZ3bm9kZSBsaW5rIHRvIC9z b2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL3BpbmN0cmxAZTIw MDQwNjQKICAuLi4KICBbICAgIDkuOTE5Mzg0XSAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9k ZXZAMCwwL3BjaS1lcC1idXNAMC9mbGV4Y29tQGUwMDQwMDAwL2kyY0A2MDAgTGlua2VkIGFzIGEg Zndub2RlIGNvbnN1bWVyIHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNp LWVwLWJ1c0AwCiAgWyAgICA5LjkzNDAyOF0gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2 QDAsMC9wY2ktZXAtYnVzQDAvZmxleGNvbUBlMDA0MDAwMC9pMmNANjAwIERyb3BwaW5nIHRoZSBm d25vZGUgbGluayB0byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1i dXNAMC9waW5jdHJsQGUyMDA0MDY0L2ZjYjQtaTJjLXBpbnMKICBbICAgIDkuOTUxMTM4XSAvc29j L3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9zd2l0Y2hAZTAwMDAw MDAgTGlua2VkIGFzIGEgZndub2RlIGNvbnN1bWVyIHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lA MCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwCiAgWyAgICA5Ljk2NTAxMl0gL3NvYy9wY2llQGQwMDcw MDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvc3dpdGNoQGUwMDAwMDAwIERyb3BwaW5n IHRoZSBmd25vZGUgbGluayB0byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3Bj aS1lcC1idXNAMC9waW5jdHJsQGUyMDA0MDY0L3RvZF9waW5zCiAgWyAgICA5Ljk4MDg4Nl0gL3Nv Yy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvcGluY3RybEBlMjAw NDA2NCBMaW5rZWQgYXMgYSBmd25vZGUgY29uc3VtZXIgdG8gL3NvYy9wY2llQGQwMDcwMDAwL3Bj aUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAKICBbICAgIDkuOTk0ODMxXSAvc29jL3BjaWVAZDAw NzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9waW5jdHJsQGUyMDA0MDY0IERyb3Bw aW5nIHRoZSBmd25vZGUgbGluayB0byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCww L3BjaS1lcC1idXNAMC9yZXNldEBlMjAwNDAwYwogIFsgICAxMC4wMDk4MzRdIC9zb2MvcGNpZUBk MDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL21kaW9AZTIwMDQxM2MgTGlua2Vk IGFzIGEgZndub2RlIGNvbnN1bWVyIHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAw LDAvcGNpLWVwLWJ1c0AwCiAgWyAgIDEwLjAyMzUyMF0gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAw LDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvbWRpb0BlMjAwNDEzYyBEcm9wcGluZyB0aGUgZndub2Rl IGxpbmsgdG8gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAv cmVzZXRAZTIwMDQwMGMKICBbICAgMTAuMDM4MjQ4XSAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAs MC9kZXZAMCwwL3BjaS1lcC1idXNAMC9zd2l0Y2hAZTAwMDAwMDAgRHJvcHBpbmcgdGhlIGZ3bm9k ZSBsaW5rIHRvIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0Aw L3Jlc2V0QGUyMDA0MDBjCiAgWyAgIDEwLjA1MzE2MF0gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAw LDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvZmxleGNvbUBlMDA0MDAwMC9pMmNANjAwIERyb3BwaW5n IHRoZSBmd25vZGUgbGluayB0byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3Bj aS1lcC1idXNAMC9jbG9jay1jb250cm9sbGVyQGUwMGMwMGE4CiAgWyAgIDEwLjA2OTgyMF0gL3Nv Yy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvZmxleGNvbUBlMDA0 MDAwMCBMaW5rZWQgYXMgYSBmd25vZGUgY29uc3VtZXIgdG8gL3NvYy9wY2llQGQwMDcwMDAwL3Bj aUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAKICBbICAgMTAuMDgzNzcyXSAvc29jL3BjaWVAZDAw NzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9mbGV4Y29tQGUwMDQwMDAwIERyb3Bw aW5nIHRoZSBmd25vZGUgbGluayB0byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCww L3BjaS1lcC1idXNAMC9jbG9jay1jb250cm9sbGVyQGUwMGMwMGE4CiAgWyAgIDEwLjA5OTczOV0g L3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvY2xvY2stY29u dHJvbGxlckBlMDBjMDBhOCBMaW5rZWQgYXMgYSBmd25vZGUgY29uc3VtZXIgdG8gL3NvYy9wY2ll QGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAKICBbICAgMTAuMTE0NDcxXSAv c29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9jbG9jay1jb250 cm9sbGVyQGUwMGMwMGE4IERyb3BwaW5nIHRoZSBmd25vZGUgbGluayB0byAvc29jL3BjaWVAZDAw NzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9zeXNfY2xrCiAgWyAgIDEwLjEyOTY0 OF0gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvY2xvY2st Y29udHJvbGxlckBlMDBjMDBhOCBEcm9wcGluZyB0aGUgZndub2RlIGxpbmsgdG8gL3NvYy9wY2ll QGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvZGRyX2NsawogIFsgICAxMC4x NDQ4MThdIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL2Ns b2NrLWNvbnRyb2xsZXJAZTAwYzAwYTggRHJvcHBpbmcgdGhlIGZ3bm9kZSBsaW5rIHRvIC9zb2Mv cGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL2NwdV9jbGsKICBbICAg MTAuMTU5OTg2XSAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNA MC9waW5jdHJsQGUyMDA0MDY0IERyb3BwaW5nIHRoZSBmd25vZGUgbGluayB0byAvc29jL3BjaWVA ZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMC9vaWNAZTAwYzAxMjAKICBbICAg MTAuMTc0ODAyXSAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNA MC9mbGV4Y29tQGUwMDQwMDAwL2kyY0A2MDAgRHJvcHBpbmcgdGhlIGZ3bm9kZSBsaW5rIHRvIC9z b2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwL29pY0BlMDBjMDEy MAogIFsgICAxMC4xOTAzMjNdIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNp LWVwLWJ1c0AwL3N3aXRjaEBlMDAwMDAwMCBEcm9wcGluZyB0aGUgZndub2RlIGxpbmsgdG8gL3Nv Yy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2ktZXAtYnVzQDAvb2ljQGUwMGMwMTIw CiAgWyAgIDEwLjIwNTA5OF0gc2ltcGxlLXBtLWJ1cyBkMDA3MDAwMC5wY2llOnBjaUAwLDA6ZGV2 QDAsMDpwY2ktZXAtYnVzQDA6IERyb3BwaW5nIHRoZSBsaW5rIHRvIDAwMDA6MDE6MDAuMAogIFsg ICAxMC4yMTQ1MDFdIGRldmljZTogJ3BjaTowMDAwOjAxOjAwLjAtLXBsYXRmb3JtOmQwMDcwMDAw LnBjaWU6cGNpQDAsMDpkZXZAMCwwOnBjaS1lcC1idXNAMCc6IGRldmljZV91bnJlZ2lzdGVyCiAg WyAgIDEwLjIyNTE4N10gZGV2aWNlOiAnZWEwMDAwMDAuc3dpdGNoJzogZGV2aWNlX2FkZAogIFsg ICAxMC4yMzAzMjFdIGRldmljZTogJ3BsYXRmb3JtOmQwMDcwMDAwLnBjaWU6cGNpQDAsMDpkZXZA MCwwOnBjaS1lcC1idXNAMC0tcGxhdGZvcm06ZWEwMDAwMDAuc3dpdGNoJzogZGV2aWNlX2FkZAog IFsgICAxMC4yNDA4MDZdIGRldmljZXNfa3NldDogTW92aW5nIGVhMDAwMDAwLnN3aXRjaCB0byBl bmQgb2YgbGlzdAogIFsgICAxMC4yNDY3OTRdIHBsYXRmb3JtIGVhMDAwMDAwLnN3aXRjaDogTGlu a2VkIGFzIGEgY29uc3VtZXIgdG8gZDAwNzAwMDAucGNpZTpwY2lAMCwwOmRldkAwLDA6cGNpLWVw LWJ1c0AwCiAgWyAgIDEwLjI1NjM5OV0gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAs MC9wY2ktZXAtYnVzQDAvc3dpdGNoQGUwMDAwMDAwIERyb3BwaW5nIHRoZSBmd25vZGUgbGluayB0 byAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMAogIFsgICAx MC4yNzA4MDNdIGRldmljZTogJ2U4MDA0MTNjLm1kaW8nOiBkZXZpY2VfYWRkCiAgWyAgIDEwLjI3 NTc3NV0gZGV2aWNlOiAncGxhdGZvcm06ZDAwNzAwMDAucGNpZTpwY2lAMCwwOmRldkAwLDA6cGNp LWVwLWJ1c0AwLS1wbGF0Zm9ybTplODAwNDEzYy5tZGlvJzogZGV2aWNlX2FkZAogIFsgICAxMC4y ODYwMzZdIGRldmljZXNfa3NldDogTW92aW5nIGU4MDA0MTNjLm1kaW8gdG8gZW5kIG9mIGxpc3QK ICBbICAgMTAuMjkxODYzXSBwbGF0Zm9ybSBlODAwNDEzYy5tZGlvOiBMaW5rZWQgYXMgYSBjb25z dW1lciB0byBkMDA3MDAwMC5wY2llOnBjaUAwLDA6ZGV2QDAsMDpwY2ktZXAtYnVzQDAKICBbICAg MTAuMzAxMjEzXSAvc29jL3BjaWVAZDAwNzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNA MC9tZGlvQGUyMDA0MTNjIERyb3BwaW5nIHRoZSBmd25vZGUgbGluayB0byAvc29jL3BjaWVAZDAw NzAwMDAvcGNpQDAsMC9kZXZAMCwwL3BjaS1lcC1idXNAMAogIFsgICAxMC4zMTUyNjBdIG1zY2Mt bWlpbSBlODAwNDEzYy5tZGlvOiBlcnJvciAtRVBST0JFX0RFRkVSOiBGYWlsZWQgdG8gZ2V0IHJl c2V0CiAgLi4uCiAgWyAgIDEwLjM4NzY3Nl0gZGV2aWNlOiAnZDAwNzAwMDAucGNpZTpwY2lAMCww OmRldkAwLDA6cGNpLWVwLWJ1c0AwOnNmcC1ldGgzJzogZGV2aWNlX2FkZAogIFsgICAxMC4zODgx MjRdIGRldmljZXNfa3NldDogTW92aW5nIGVhMDAwMDAwLnN3aXRjaCB0byBlbmQgb2YgbGlzdAog IFsgICAxMC40MDIwOTZdIGRldmljZTogJ3BsYXRmb3JtOmQwMDcwMDAwLnBjaWU6cGNpQDAsMDpk ZXZAMCwwOnBjaS1lcC1idXNAMC0tcGxhdGZvcm06ZDAwNzAwMDAucGNpZTpwY2lAMCwwOmRldkAw LDA6cGNpLWVwLWJ1c0AwOnNmcC1ldGgzJzogZGV2aWNlX2FkZAogIFsgICAxMC40MTYwMDRdIGRl dmljZXNfa3NldDogTW92aW5nIGQwMDcwMDAwLnBjaWU6cGNpQDAsMDpkZXZAMCwwOnBjaS1lcC1i dXNAMDpzZnAtZXRoMyB0byBlbmQgb2YgbGlzdAogIFsgICAxMC40MjUyODFdIHBsYXRmb3JtIGQw MDcwMDAwLnBjaWU6cGNpQDAsMDpkZXZAMCwwOnBjaS1lcC1idXNAMDpzZnAtZXRoMzogTGlua2Vk IGFzIGEgY29uc3VtZXIgdG8gZDAwNzAwMDAucGNpZTpwY2lAMCwwOmRldkAwLDA6cGNpLWVwLWJ1 c0AwCiAgWyAgIDEwLjQzNzk0Ml0gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9w Y2ktZXAtYnVzQDAvc2ZwLWV0aDMgRHJvcHBpbmcgdGhlIGZ3bm9kZSBsaW5rIHRvIC9zb2MvcGNp ZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwCiAgWyAgIDEwLjQ1MTM1Ml0g ZGV2aWNlc19rc2V0OiBNb3ZpbmcgZTgwMDQxM2MubWRpbyB0byBlbmQgb2YgbGlzdAogIFsgICAx MC40NTE5MTJdIGRldmljZTogJ2QwMDcwMDAwLnBjaWU6cGNpQDAsMDpkZXZAMCwwOnBjaS1lcC1i dXNAMDpzZnAtZXRoMic6IGRldmljZV9hZGQKICBbICAgMTAuNDU4MTYxXSBtc2NjLW1paW0gZTgw MDQxM2MubWRpbzogZXJyb3IgLUVQUk9CRV9ERUZFUjogRmFpbGVkIHRvIGdldCByZXNldAogIFsg ICAxMC40NjY1MDFdIGRldmljZTogJ3BsYXRmb3JtOmQwMDcwMDAwLnBjaWU6cGNpQDAsMDpkZXZA MCwwOnBjaS1lcC1idXNAMC0tcGxhdGZvcm06ZDAwNzAwMDAucGNpZTpwY2lAMCwwOmRldkAwLDA6 cGNpLWVwLWJ1c0AwOnNmcC1ldGgyJzogZGV2aWNlX2FkZAogIFsgICAxMC40ODU5MDZdIGRldmlj ZXNfa3NldDogTW92aW5nIGQwMDcwMDAwLnBjaWU6cGNpQDAsMDpkZXZAMCwwOnBjaS1lcC1idXNA MDpzZnAtZXRoMiB0byBlbmQgb2YgbGlzdAogIFsgICAxMC40OTUwOTZdIHBsYXRmb3JtIGQwMDcw MDAwLnBjaWU6cGNpQDAsMDpkZXZAMCwwOnBjaS1lcC1idXNAMDpzZnAtZXRoMjogTGlua2VkIGFz IGEgY29uc3VtZXIgdG8gZDAwNzAwMDAucGNpZTpwY2lAMCwwOmRldkAwLDA6cGNpLWVwLWJ1c0Aw CiAgWyAgIDEwLjUwNzg1NV0gL3NvYy9wY2llQGQwMDcwMDAwL3BjaUAwLDAvZGV2QDAsMC9wY2kt ZXAtYnVzQDAvc2ZwLWV0aDIgRHJvcHBpbmcgdGhlIGZ3bm9kZSBsaW5rIHRvIC9zb2MvcGNpZUBk MDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwCiAgLi4uCiAgWyAgIDEwLjU4MDQ4 Nl0gZGV2aWNlOiAnZWEwNDAwMDAuZmxleGNvbSc6IGRldmljZV9hZGQKICBbICAgMTAuNTg1NzUz XSBkZXZpY2U6ICdwbGF0Zm9ybTpkMDA3MDAwMC5wY2llOnBjaUAwLDA6ZGV2QDAsMDpwY2ktZXAt YnVzQDAtLXBsYXRmb3JtOmVhMDQwMDAwLmZsZXhjb20nOiBkZXZpY2VfYWRkCiAgWyAgIDEwLjU5 NjMzNl0gZGV2aWNlc19rc2V0OiBNb3ZpbmcgZWEwNDAwMDAuZmxleGNvbSB0byBlbmQgb2YgbGlz dAogIFsgICAxMC42MDI0MjldIHBsYXRmb3JtIGVhMDQwMDAwLmZsZXhjb206IExpbmtlZCBhcyBh IGNvbnN1bWVyIHRvIGQwMDcwMDAwLnBjaWU6cGNpQDAsMDpkZXZAMCwwOnBjaS1lcC1idXNAMAog IFsgICAxMC42MTIwMzFdIC9zb2MvcGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVw LWJ1c0AwL2ZsZXhjb21AZTAwNDAwMDAgRHJvcHBpbmcgdGhlIGZ3bm9kZSBsaW5rIHRvIC9zb2Mv cGNpZUBkMDA3MDAwMC9wY2lAMCwwL2RldkAwLDAvcGNpLWVwLWJ1c0AwCiAgWyAgIDEwLjYyNjg2 M10gZGV2aWNlOiAnZTgwMDQwNjQucGluY3RybCc6IGRldmljZV9hZGQKICBbICAgMTAuNjMyMDQ1 XSBkZXZpY2U6ICdwbGF0Zm9ybTpkMDA3MDAwMC5wY2llOnBjaUAwLDA6ZGV2QDAsMDpwY2ktZXAt YnVzQDAtLXBsYXRmb3JtOmU4MDA0MDY0LnBpbmN0cmwnOiBkZXZpY2VfYWRkCiAgLi4uCi0tLSA4 PCAtLS0KCgpIZXJlIGlzIHRoZSByZWxhdGVkIGR0c28gYXBwbGllZCBhdCB0aGUgUENJZSBkZXZp Y2UgRFQgbm9kZToKLS0tIDg8IC0tLQovIHsKCWZyYWdtZW50QDAgewoJCXRhcmdldC1wYXRoPSIi OwoJCV9fb3ZlcmxheV9fIHsKCQkJI2FkZHJlc3MtY2VsbHMgPSA8Mz47CgkJCSNzaXplLWNlbGxz ID0gPDI+OwoKCQkJcGNpLWVwLWJ1c0AwIHsKCQkJCWNvbXBhdGlibGUgPSAic2ltcGxlLWJ1cyI7 CgkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKCQkJCSNzaXplLWNlbGxzID0gPDE+OwoKCQkJCS8q CgkJCQkgKiBtYXAgQDB4ZTIwMDAwMDAgKDMyTUIpIHRvIEJBUjAgKENQVSkKCQkJCSAqIG1hcCBA MHhlMDAwMDAwMCAoMTZNQikgdG8gQkFSMSAoQU1CQSkKCQkJCSAqLwoJCQkJcmFuZ2VzID0gPDB4 ZTIwMDAwMDAgMHgwMCAweDAwIDB4MDAgMHgyMDAwMDAwCgkJCQkgICAgICAgICAgMHhlMDAwMDAw MCAweDAxIDB4MDAgMHgwMCAweDEwMDAwMDA+OwoKCQkJCW9pYzogb2ljQGUwMGMwMTIwIHsKCQkJ CQljb21wYXRpYmxlID0gIm1pY3JvY2hpcCxsYW45NjZ4LW9pYyI7CgkJCQkJI2ludGVycnVwdC1j ZWxscyA9IDwyPjsKCQkJCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKCQkJCQlpbnRlcnJ1cHRzID0g PDA+OyAvKiBQQ0kgSU5UeCBhc3NpZ25lZCBpbnRlcnJ1cHQgKi8KCQkJCQlyZWcgPSA8MHhlMDBj MDEyMCAweDE5MD47CgkJCQl9OwoKCQkJCWNwdV9jbGs6IGNwdV9jbGsgewoJCQkJCWNvbXBhdGli bGUgPSAiZml4ZWQtY2xvY2siOwoJCQkJCSNjbG9jay1jZWxscyA9IDwwPjsKCQkJCQljbG9jay1m cmVxdWVuY3kgPSA8NjAwMDAwMDAwPjsgIC8vIENQVSBjbG9jayA9IDYwME1IegoJCQkJfTsKCgkJ CQlkZHJfY2xrOiBkZHJfY2xrIHsKCQkJCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKCQkJ CQkjY2xvY2stY2VsbHMgPSA8MD47CgkJCQkJY2xvY2stZnJlcXVlbmN5ID0gPDMwMDAwMDAwPjsg IC8vIEZhYnJpYyBjbG9jayA9IDMwTUh6CgkJCQl9OwoKCQkJCXN5c19jbGs6IHN5c19jbGsgewoJ CQkJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOwoJCQkJCSNjbG9jay1jZWxscyA9IDwwPjsK CQkJCQljbG9jay1mcmVxdWVuY3kgPSA8MTU2MjUwMDA+OyAgLy8gU3lzdGVtIGNsb2NrID0gMTUu NjI1TUh6CgkJCQl9OwoKCQkJCWNsa3M6IGNsb2NrLWNvbnRyb2xsZXJAZTAwYzAwYTggewoJCQkJ CWNvbXBhdGlibGUgPSAibWljcm9jaGlwLGxhbjk2NngtZ2NrIjsKCQkJCQkjY2xvY2stY2VsbHMg PSA8MT47CgkJCQkJY2xvY2tzID0gPCZjcHVfY2xrPiwgPCZkZHJfY2xrPiwgPCZzeXNfY2xrPjsK CQkJCQljbG9jay1uYW1lcyA9ICJjcHUiLCAiZGRyIiwgInN5cyI7CgkJCQkJcmVnID0gPDB4ZTAw YzAwYTggMHgzOD4sIDwweGUwMGMwMmNjIDB4ND47CgkJCQl9OwoKCQkJCWNwdV9jdHJsOiBzeXNj b25AZTAwYzAwMDAgewoJCQkJCWNvbXBhdGlibGUgPSAibWljcm9jaGlwLGxhbjk2NngtY3B1LXN5 c2NvbiIsICJzeXNjb24iOwoJCQkJCXJlZyA9IDwweGUwMGMwMDAwIDB4YTg+OwoJCQkJfTsKCgkJ CQlyZXNldDogcmVzZXRAZTIwMDQwMGMgewoJCQkJCWNvbXBhdGlibGUgPSAibWljcm9jaGlwLGxh bjk2Nngtc3dpdGNoLXJlc2V0IjsKCQkJCQlyZWcgPSA8MHhlMjAwNDAwYyAweDQ+OwoJCQkJCXJl Zy1uYW1lcyA9ICJnY2IiOwoJCQkJCSNyZXNldC1jZWxscyA9IDwxPjsKCQkJCQljcHUtc3lzY29u ID0gPCZjcHVfY3RybD47CgkJCQl9OwoKCQkJCWdwaW86IHBpbmN0cmxAZTIwMDQwNjQgewoJCQkJ CWNvbXBhdGlibGUgPSAibWljcm9jaGlwLGxhbjk2NngtcGluY3RybCI7CgkJCQkJcmVnID0gPDB4 ZTIwMDQwNjQgMHhiND4sCgkJCQkJICAgICAgPDB4ZTIwMTAwMjQgMHgxMzg+OwoJCQkJCXJlc2V0 cyA9IDwmcmVzZXQgMD47CgkJCQkJcmVzZXQtbmFtZXMgPSAic3dpdGNoIjsKCQkJCQlncGlvLWNv bnRyb2xsZXI7CgkJCQkJI2dwaW8tY2VsbHMgPSA8Mj47CgkJCQkJZ3Bpby1yYW5nZXMgPSA8Jmdw aW8gMCAwIDc4PjsKCQkJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZvaWM+OwoJCQkJCWludGVycnVw dC1jb250cm9sbGVyOwoJCQkJCWludGVycnVwdHMgPSA8MTcgSVJRX1RZUEVfTEVWRUxfSElHSD47 CgkJCQkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKCgkJCQkJdG9kX3BpbnM6IHRvZF9waW5zIHsK CQkJCQkJcGlucyA9ICJHUElPXzM2IjsKCQkJCQkJZnVuY3Rpb24gPSAicHRwc3luY18xIjsKCQkJ CQl9OwoKCQkJCQlmYzBfYV9waW5zOiBmY2I0LWkyYy1waW5zIHsKCQkJCQkJLyogUlhELCBUWEQg Ki8KCQkJCQkJcGlucyA9ICJHUElPXzkiLCAiR1BJT18xMCI7CgkJCQkJCWZ1bmN0aW9uID0gImZj MF9hIjsKCQkJCQl9OwoKCQkJCQlpMmNtdXhfcGluczogaTJjbXV4LXBpbnMgewoJCQkJCQlwaW5z ID0gIkdQSU9fNzYiLCAiR1BJT183NyI7CgkJCQkJCWZ1bmN0aW9uID0gInR3aV9zbGNfZ2F0ZSI7 CgkJCQkJCW91dHB1dC1sb3c7CgkJCQkJfTsKCgkJCQkJaTJjbXV4XzA6IGkyY211eC0wIHsKCQkJ CQkJcGlucyA9ICJHUElPXzc2IjsKCQkJCQkJZnVuY3Rpb24gPSAidHdpX3NsY19nYXRlIjsKCQkJ CQkJb3V0cHV0LWhpZ2g7CgkJCQkJfTsKCgkJCQkJaTJjbXV4XzE6IGkyY211eC0xIHsKCQkJCQkJ cGlucyA9ICJHUElPXzc3IjsKCQkJCQkJZnVuY3Rpb24gPSAidHdpX3NsY19nYXRlIjsKCQkJCQkJ b3V0cHV0LWhpZ2g7CgkJCQkJfTsKCQkJCX07CgoJCQkJZmx4MDogZmxleGNvbUBlMDA0MDAwMCB7 CgkJCQkJY29tcGF0aWJsZSA9ICJhdG1lbCxzYW1hNWQyLWZsZXhjb20iOwoJCQkJCXJlZyA9IDww eGUwMDQwMDAwIDB4MTAwPjsKCQkJCQljbG9ja3MgPSA8JmNsa3MgR0NLX0lEX0ZMRVhDT00wPjsK CQkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKCQkJCQkjc2l6ZS1jZWxscyA9IDwxPjsKCQkJCQly YW5nZXMgPSA8MHgwIDB4ZTAwNDAwMDAgMHg4MDA+OwoKCQkJCQlhdG1lbCxmbGV4Y29tLW1vZGUg PSA8QVRNRUxfRkxFWENPTV9NT0RFX1RXST47CgoJCQkJCWkyY19sYW45NjZ4OiBpMmNANjAwIHsK CQkJCQkJY29tcGF0aWJsZSA9ICJtaWNyb2NoaXAsbGFuOTY2eC1pMmMiOwoJCQkJCQlyZWcgPSA8 MHg2MDAgMHgyMDA+OwoJCQkJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZvaWM+OwoJCQkJCQlpbnRl cnJ1cHRzID0gPDQ4IElSUV9UWVBFX0xFVkVMX0hJR0g+OwoJCQkJCQkjYWRkcmVzcy1jZWxscyA9 IDwxPjsKCQkJCQkJI3NpemUtY2VsbHMgPSA8MD47CgkJCQkJCWNsb2NrcyA9IDwmY2xrcyBHQ0tf SURfRkxFWENPTTA+OwoJCQkJCQlhc3NpZ25lZC1jbG9ja3MgPSA8JmNsa3MgR0NLX0lEX0ZMRVhD T00wPjsKCQkJCQkJYXNzaWduZWQtY2xvY2stcmF0ZXMgPSA8MjAwMDAwMDA+OwoJCQkJCQlwaW5j dHJsLTAgPSA8JmZjMF9hX3BpbnM+OwoJCQkJCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOwoJ CQkJCQlpMmMtYW5hbG9nLWZpbHRlcjsKCQkJCQkJaTJjLWRpZ2l0YWwtZmlsdGVyOwoJCQkJCQlp MmMtZGlnaXRhbC1maWx0ZXItd2lkdGgtbnMgPSA8MzU+OwoJCQkJCX07CgkJCQl9OwoKCQkJCWky YzBfZW11eDogaTJjMC1lbXV4QDAgewoJCQkJCWNvbXBhdGlibGUgPSAiaTJjLW11eC1waW5jdHJs IjsKCQkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKCQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCQkJ CQlpMmMtcGFyZW50ID0gPCZpMmNfbGFuOTY2eD47CgkJCQkJcGluY3RybC1uYW1lcyA9ICJpMmMx MDIiLCAiaTJjMTAzIiwgImlkbGUiOwoJCQkJCXBpbmN0cmwtMCA9IDwmaTJjbXV4XzA+OwoJCQkJ CXBpbmN0cmwtMSA9IDwmaTJjbXV4XzE+OwoJCQkJCXBpbmN0cmwtMiA9IDwmaTJjbXV4X3BpbnM+ OwoKCQkJCQlpMmMxMDI6IGkyY19zZnAxIHsKCQkJCQkJcmVnID0gPDA+OwoJCQkJCQkjYWRkcmVz cy1jZWxscyA9IDwxPjsKCQkJCQkJI3NpemUtY2VsbHMgPSA8MD47CgkJCQkJfTsKCgkJCQkJaTJj MTAzOiBpMmNfc2ZwMiB7CgkJCQkJCXJlZyA9IDwxPjsKCQkJCQkJI2FkZHJlc3MtY2VsbHMgPSA8 MT47CgkJCQkJCSNzaXplLWNlbGxzID0gPDA+OwoJCQkJCX07CgkJCQl9OwoKCQkJCXNmcF9ldGgy OiBzZnAtZXRoMiB7CgkJCQkJY29tcGF0aWJsZSAgICAgICA9ICJzZmYsc2ZwIjsKCQkJCQlpMmMt YnVzICAgICAgICAgID0gPCZpMmMxMDI+OwoJCQkJCXR4LWRpc2FibGUtZ3Bpb3MgPSA8JmdwaW8g IDAgR1BJT19BQ1RJVkVfSElHSD47CgkJCQkJbG9zLWdwaW9zICAgICAgICA9IDwmZ3BpbyAyNSBH UElPX0FDVElWRV9ISUdIPjsKCQkJCQltb2QtZGVmMC1ncGlvcyAgID0gPCZncGlvIDE4IEdQSU9f QUNUSVZFX0xPVz47CgkJCQkJdHgtZmF1bHQtZ3Bpb3MgICA9IDwmZ3BpbyAgMiBHUElPX0FDVElW RV9ISUdIPjsKCQkJCX07CgoJCQkJc2ZwX2V0aDM6IHNmcC1ldGgzIHsKCQkJCQljb21wYXRpYmxl ICAgICAgID0gInNmZixzZnAiOwoJCQkJCWkyYy1idXMgICAgICAgICAgPSA8JmkyYzEwMz47CgkJ CQkJdHgtZGlzYWJsZS1ncGlvcyA9IDwmZ3BpbyAgMSBHUElPX0FDVElWRV9ISUdIPjsKCQkJCQls b3MtZ3Bpb3MgICAgICAgID0gPCZncGlvIDI2IEdQSU9fQUNUSVZFX0hJR0g+OwoJCQkJCW1vZC1k ZWYwLWdwaW9zICAgPSA8JmdwaW8gMTkgR1BJT19BQ1RJVkVfTE9XPjsKCQkJCQl0eC1mYXVsdC1n cGlvcyAgID0gPCZncGlvICAzIEdQSU9fQUNUSVZFX0hJR0g+OwoJCQkJfTsKCgkJCQlzZXJkZXM6 IHNlcmRlc0BlMjAyYzAwMCB7CgkJCQkJY29tcGF0aWJsZSA9ICJtaWNyb2NoaXAsbGFuOTY2eC1z ZXJkZXMiOwoJCQkJCXJlZyA9IDwweGUyMDJjMDAwIDB4OWM+LAoJCQkJCSAgICAgIDwweGUyMDA0 MDEwIDB4ND47CgkJCQkJI3BoeS1jZWxscyA9IDwyPjsKCQkJCX07CgoJCQkJbWRpbzE6IG1kaW9A ZTIwMDQxM2MgewoJCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwoJCQkJCSNzaXplLWNlbGxzID0g PDA+OwoJCQkJCWNvbXBhdGlibGUgPSAibWljcm9jaGlwLGxhbjk2NngtbWlpbSI7CgkJCQkJcmVn ID0gPDB4ZTIwMDQxM2MgMHgyND4sCgkJCQkJICAgICAgPDB4ZTIwMTAwMjAgMHg0PjsKCgkJCQkJ cmVzZXRzID0gPCZyZXNldCAwPjsKCQkJCQlyZXNldC1uYW1lcyA9ICJzd2l0Y2giOwoKCQkJCQls YW45NjZ4X3BoeTA6IGV0aGVybmV0LWxhbjk2NnhfcGh5QDEgewoJCQkJCQlyZWcgPSA8MT47CgkJ CQkJfTsKCgkJCQkJbGFuOTY2eF9waHkxOiBldGhlcm5ldC1sYW45NjZ4X3BoeUAyIHsKCQkJCQkJ cmVnID0gPDI+OwoJCQkJCX07CgkJCQl9OwoKCQkJCXN3aXRjaDogc3dpdGNoQGUwMDAwMDAwIHsK CQkJCQljb21wYXRpYmxlID0gIm1pY3JvY2hpcCxsYW45NjZ4LXN3aXRjaCI7CgkJCQkJcmVnID0g PDB4ZTAwMDAwMDAgMHgwMTAwMDAwPiwKCQkJCQkgICAgICA8MHhlMjAwMDAwMCAweDA4MDAwMDA+ OwoJCQkJCXJlZy1uYW1lcyA9ICJjcHUiLCAiZ2NiIjsKCgkJCQkJaW50ZXJydXB0LXBhcmVudCA9 IDwmb2ljPjsKCQkJCQlpbnRlcnJ1cHRzID0gPDEyIElSUV9UWVBFX0xFVkVMX0hJR0g+LAoJCQkJ CQkgICAgIDw5IElSUV9UWVBFX0xFVkVMX0hJR0g+OwoJCQkJCWludGVycnVwdC1uYW1lcyA9ICJ4 dHIiLCAiYW5hIjsKCgkJCQkJcmVzZXRzID0gPCZyZXNldCAwPjsKCQkJCQlyZXNldC1uYW1lcyA9 ICJzd2l0Y2giOwoKCQkJCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOwoJCQkJCXBpbmN0cmwt MCA9IDwmdG9kX3BpbnM+OwoKCQkJCQlldGhlcm5ldC1wb3J0cyB7CgkJCQkJCSNhZGRyZXNzLWNl bGxzID0gPDE+OwoJCQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCgkJCQkJCXBvcnQwOiBwb3J0QDAg ewoJCQkJCQkJcGh5LWhhbmRsZSA9IDwmbGFuOTY2eF9waHkwPjsKCgkJCQkJCQlyZWcgPSA8MD47 CgkJCQkJCQlwaHktbW9kZSA9ICJnbWlpIjsKCQkJCQkJCXBoeXMgPSA8JnNlcmRlcyAwIENVKDAp PjsKCQkJCQkJfTsKCgkJCQkJCXBvcnQxOiBwb3J0QDEgewoJCQkJCQkJcGh5LWhhbmRsZSA9IDwm bGFuOTY2eF9waHkxPjsKCgkJCQkJCQlyZWcgPSA8MT47CgkJCQkJCQlwaHktbW9kZSA9ICJnbWlp IjsKCQkJCQkJCXBoeXMgPSA8JnNlcmRlcyAxIENVKDEpPjsKCQkJCQkJfTsKCgkJCQkJCXBvcnQy OiBwb3J0QDIgewoJCQkJCQkJcmVnID0gPDI+OwoJCQkJCQkJcGh5LW1vZGUgPSAic2dtaWkiOwoJ CQkJCQkJcGh5cyA9IDwmc2VyZGVzIDIgU0VSREVTNkcoMCk+OwoJCQkJCQkJc2ZwID0gPCZzZnBf ZXRoMj47CgkJCQkJCQltYW5hZ2VkID0gImluLWJhbmQtc3RhdHVzIjsKCQkJCQkJfTsKCgkJCQkJ CXBvcnQzOiBwb3J0QDMgewoJCQkJCQkJcmVnID0gPDM+OwoJCQkJCQkJcGh5LW1vZGUgPSAic2dt aWkiOwoJCQkJCQkJcGh5cyA9IDwmc2VyZGVzIDMgU0VSREVTNkcoMSk+OwoJCQkJCQkJc2ZwID0g PCZzZnBfZXRoMz47CgkJCQkJCQltYW5hZ2VkID0gImluLWJhbmQtc3RhdHVzIjsKCQkJCQkJfTsK CQkJCQl9OwoJCQkJfTsKCQkJfTsKCQl9OwoJfTsKfTsKLS0tIDg8IC0tLQoKQmVzdCByZWdhcmRz LApIZXJ2w6kKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFybS1rZXJuZWwK