From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 53AADC433F5 for ; Mon, 16 May 2022 09:49:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238555AbiEPJtD (ORCPT ); Mon, 16 May 2022 05:49:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52074 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233564AbiEPJs4 (ORCPT ); Mon, 16 May 2022 05:48:56 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADB3136E0F; Mon, 16 May 2022 02:48:55 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1D3F7612CC; Mon, 16 May 2022 09:48:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A416C385AA; Mon, 16 May 2022 09:48:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652694534; bh=leHS3GcsKVc1Lrf/nqyL0NPJMCBOOuuCoSxhEbeGdFg=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=H4sPnGiwwh9XPdEbTNyUwxkbrG8ifZIPDKFEVrHAMoC+HxGU3DV4nw2hozTUb0v+p vJdE4IlfnSMT3tk2mfmVycqVB+Hg5RJbJpAGphDjUPUs1rLHL34AKp9wRenjdSPzU+ BXBG/97cFqQtNml6wjRsE0S5EIhzmtcFC4tVAgM+2dH5sGgXSOrsfN+4KuBigY1qx9 sD+PDzh2vcX5237CybA9/59RtqUpC6DoOUABa9I9lEYGHCFFzJTJ8brg/oPCjoOTN8 A6DFURdJwl/qqNZMKA/fKfWVEBDgiy4mpQR8QSlSrEjLV63de/3goR6RiJMA6Hgw1+ EaSRk1Y+LxQOA== Received: from sofa.misterjones.org ([185.219.108.64] helo=why.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nqXLP-00BZNP-GO; Mon, 16 May 2022 10:48:51 +0100 Date: Mon, 16 May 2022 10:48:51 +0100 Message-ID: <87mtfh6c58.wl-maz@kernel.org> From: Marc Zyngier To: Chris Packham Cc: "robh+dt@kernel.org" , "krzysztof.kozlowski+dt@linaro.org" , "catalin.marinas@arm.com" , "will@kernel.org" , "andrew@lunn.ch" , "gregory.clement@bootlin.com" , "sebastian.hesselbarth@gmail.com" , "kostap@marvell.com" , "robert.marko@sartura.hr" , "vadym.kochan@plvision.eu" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v7 2/3] arm64: dts: marvell: Add Armada 98DX2530 SoC and RD-AC5X board In-Reply-To: References: <20220512042501.3339775-1-chris.packham@alliedtelesis.co.nz> <20220512042501.3339775-3-chris.packham@alliedtelesis.co.nz> <87wnermc9c.wl-maz@kernel.org> <5c01f20a-acd3-da15-081d-7cf878f8a77a@alliedtelesis.co.nz> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: Chris.Packham@alliedtelesis.co.nz, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, catalin.marinas@arm.com, will@kernel.org, andrew@lunn.ch, gregory.clement@bootlin.com, sebastian.hesselbarth@gmail.com, kostap@marvell.com, robert.marko@sartura.hr, vadym.kochan@plvision.eu, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 13 May 2022 02:26:21 +0100, Chris Packham wrote: >=20 > Hi Marc, >=20 > On 13/05/22 10:10, Chris Packham wrote: > > Hi Marc, > > > > On 12/05/22 19:38, Marc Zyngier wrote: > >> On Thu, 12 May 2022 05:25:00 +0100, > >> Chris Packham wrote: > >>> The 98DX2530 SoC is the Control and Management CPU integrated into > >>> the Marvell 98DX25xx and 98DX35xx series of switch chip (internally > >>> referred to as AlleyCat5 and AlleyCat5X). > >>> > >>> These files have been taken from the Marvell SDK and lightly cleaned > >>> up with the License and copyright retained. > >>> > >>> Signed-off-by: Chris Packham > >>> Reviewed-by: Andrew Lunn > >>> --- > >>> > >>> Notes: > >>> =C2=A0=C2=A0=C2=A0=C2=A0 The Marvell SDK has a number of new compatib= le strings. I've=20 > >>> brought > >>> =C2=A0=C2=A0=C2=A0=C2=A0 through some of the drivers or where possibl= e used an in-tree > >>> =C2=A0=C2=A0=C2=A0=C2=A0 alternative (e.g. there is SDK code for a ac= 5-gpio but two=20 > >>> instances of > >>> =C2=A0=C2=A0=C2=A0=C2=A0 the existing marvell,orion-gpio seems to cov= er what is needed=20 > >>> if you use > >>> =C2=A0=C2=A0=C2=A0=C2=A0 an appropriate binding). I expect that there= will a new series of > >>> =C2=A0=C2=A0=C2=A0=C2=A0 patches when I get some different hardware (= or additions to=20 > >>> this series > >>> =C2=A0=C2=A0=C2=A0=C2=A0 depending on if/when it lands). > >>> =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 Changes in v7: > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Add missing compatible on usb1 > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Add "rd-ac5x" compatible for board > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Move aliases to board dts > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Move board specific usb info to board dts > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Consolidate usb1 board settings and remove= unnecessary=20 > >>> compatible > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Add Allied Telesis copyright > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Rename files after mailng-list discussion > >>> =C2=A0=C2=A0=C2=A0=C2=A0 Changes in v6: > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Move CPU nodes above the SoC (Krzysztof) > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Minor formatting clean ups (Krzysztof) > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Run through `make dtbs_check` > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Move gic nodes inside SoC > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Group clocks under a clock node > >>> =C2=A0=C2=A0=C2=A0=C2=A0 Changes in v5: > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - add #{address,size}-cells property to i2c = nodes > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - make i2c nodes disabled in the SoC and ena= ble them in the board > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - add interrupt controller attributes to gpi= o nodes > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Move fixed-clock nodes up a level and remo= ve unnecessary @0 > >>> =C2=A0=C2=A0=C2=A0=C2=A0 Changes in v4: > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - use 'phy-handle' instead of 'phy' > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - move status=3D"okay" on usb nodes to board= dts > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Add review from Andrew > >>> =C2=A0=C2=A0=C2=A0=C2=A0 Changes in v3: > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Move memory node to board > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Use single digit reg value for phy address > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Remove MMC node (driver needs work) > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Remove syscon & simple-mfd for pinctrl > >>> =C2=A0=C2=A0=C2=A0=C2=A0 Changes in v2: > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Make pinctrl a child node of a syscon node > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Use marvell,armada-8k-gpio instead of orio= n-gpio > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Remove nand peripheral. The Marvell SDK do= es have some=20 > >>> changes for the > >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ac5-nand-controller but I curren= tly lack hardware with NAND=20 > >>> fitted so > >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 I can't test it right now. I've = therefore chosen to omit the=20 > >>> node and > >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 not attempted to bring in the dr= iver or binding. > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Remove pcie peripheral. Again there are ch= anges in the SDK=20 > >>> and I have > >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 no way of testing them. > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Remove prestera node. > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Remove "marvell,ac5-ehci" compatible from = USB node as > >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "marvell,orion-ehci" is sufficie= nt > >>> =C2=A0=C2=A0=C2=A0=C2=A0 - Remove watchdog node. There is a buggy dri= ver for the ac5=20 > >>> watchdog in > >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 the SDK but it needs some work s= o I've dropped the node for now. > >>> > >>> =C2=A0 arch/arm64/boot/dts/marvell/Makefile=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 1 + > >>> =C2=A0 .../boot/dts/marvell/armada-98dx25xx.dtsi=C2=A0=C2=A0=C2=A0=C2= =A0 | 295=20 > >>> ++++++++++++++++++ > >>> =C2=A0 .../boot/dts/marvell/armada-98dx35xx-rd.dts=C2=A0=C2=A0 | 101 = ++++++ > >>> =C2=A0 .../boot/dts/marvell/armada-98dx35xx.dtsi=C2=A0=C2=A0=C2=A0=C2= =A0 |=C2=A0 13 + > >>> =C2=A0 4 files changed, 410 insertions(+) > >>> =C2=A0 create mode 100644 arch/arm64/boot/dts/marvell/armada-98dx25xx= .dtsi > >>> =C2=A0 create mode 100644 arch/arm64/boot/dts/marvell/armada-98dx35xx= -rd.dts > >>> =C2=A0 create mode 100644 arch/arm64/boot/dts/marvell/armada-98dx35xx= .dtsi > >>> > >>> diff --git a/arch/arm64/boot/dts/marvell/Makefile=20 > >>> b/arch/arm64/boot/dts/marvell/Makefile > >>> index 1c794cdcb8e6..b7a4c715afbb 100644 > >>> --- a/arch/arm64/boot/dts/marvell/Makefile > >>> +++ b/arch/arm64/boot/dts/marvell/Makefile > >>> @@ -24,3 +24,4 @@ dtb-$(CONFIG_ARCH_MVEBU) +=3D cn9132-db.dtb > >>> =C2=A0 dtb-$(CONFIG_ARCH_MVEBU) +=3D cn9132-db-B.dtb > >>> =C2=A0 dtb-$(CONFIG_ARCH_MVEBU) +=3D cn9130-crb-A.dtb > >>> =C2=A0 dtb-$(CONFIG_ARCH_MVEBU) +=3D cn9130-crb-B.dtb > >>> +dtb-$(CONFIG_ARCH_MVEBU) +=3D armada-98dx35xx-rd.dtb > >>> diff --git a/arch/arm64/boot/dts/marvell/armada-98dx25xx.dtsi=20 > >>> b/arch/arm64/boot/dts/marvell/armada-98dx25xx.dtsi > >>> new file mode 100644 > >>> index 000000000000..55ab4cd843a9 > >>> --- /dev/null > >>> +++ b/arch/arm64/boot/dts/marvell/armada-98dx25xx.dtsi > >>> @@ -0,0 +1,295 @@ > >>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > >>> +/* > >>> + * Device Tree For AC5. > >>> + * > >>> + * Copyright (C) 2021 Marvell > >>> + * Copyright (C) 2022 Allied Telesis Labs > >>> + */ > >>> + > >>> +#include > >>> +#include > >>> + > >>> +/ { > >>> +=C2=A0=C2=A0=C2=A0 model =3D "Marvell AC5 SoC"; > >>> +=C2=A0=C2=A0=C2=A0 compatible =3D "marvell,ac5"; > >>> +=C2=A0=C2=A0=C2=A0 interrupt-parent =3D <&gic>; > >>> +=C2=A0=C2=A0=C2=A0 #address-cells =3D <2>; > >>> +=C2=A0=C2=A0=C2=A0 #size-cells =3D <2>; > >>> + > >>> +=C2=A0=C2=A0=C2=A0 cpus { > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #address-cells =3D <2>; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #size-cells =3D <0>; > >>> + > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu-map { > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 c= luster0 { > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 core0 { > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu =3D <&cpu0>; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 }; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 core1 { > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu =3D <&cpu1>; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 }; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }; > >>> + > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu0: cpu@0 { > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d= evice_type =3D "cpu"; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 c= ompatible =3D "arm,armv8"; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 r= eg =3D <0x0 0x0>; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 e= nable-method =3D "psci"; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 n= ext-level-cache =3D <&l2>; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }; > >>> + > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu1: cpu@1 { > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d= evice_type =3D "cpu"; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 c= ompatible =3D "arm,armv8"; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 r= eg =3D <0x0 0x100>; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 e= nable-method =3D "psci"; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 n= ext-level-cache =3D <&l2>; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }; > >>> + > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 l2: l2-cache { > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 c= ompatible =3D "cache"; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }; > >>> +=C2=A0=C2=A0=C2=A0 }; > >>> + > >>> + > >>> +=C2=A0=C2=A0=C2=A0 psci { > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 compatible =3D "arm,psci-= 0.2"; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 method =3D "smc"; > >>> +=C2=A0=C2=A0=C2=A0 }; > >>> + > >>> +=C2=A0=C2=A0=C2=A0 timer { > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 compatible =3D "arm,armv8= -timer"; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 interrupts =3D , > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 , > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 , > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ; > >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 clock-frequency =3D <2500= 0000>; > >> I said no to this hack in a past version of this patch, and I'm going > >> to say it *again*. > > Sorry I must have missed it. > >> Please fix your firmware to program CNTFRQ_EL0, and > >> remove this useless property. > > I'm kind of at the mercy of what Marvell have provided for ATF. I am=20 > > working on the bootloader portion in parallel and am getting things=20 > > ready for submitting the u-boot support upstream. I was hoping to=20 > > leave ATF alone I can at least see if they haven't fixed this already=20 > > (the original dtsi I started with was fairly old) and if they haven't=20 > > I'll raise it via their support system. > Seems to work fine without the clock so I'll drop it. Thanks. If you can, please verify that this is set on both CPUs (I have seen plenty of firmware only setting it on CPU0 in the past). > >> You are also missing a PPI for the EL2 virtual timer which is present > >> on any ARMv8.1+ CPU (and since this system is using A55, it definitely > >> has it). > >> > >> [...] > > Will add. > I assume you're talking about the 5th PPI per the=20 > timer/arm,arch_timer.yaml ("hypervisor virtual timer irq"). Indeed. > Helpfully > Marvell don't include the PPI interrupt numbers in their datasheet. But=20 > then I also notice that none of the other boards that have a=20 > "arm,armv8-timer" provide a 5th interrupt either, have I misunderstood=20 > something? This was only recently added to the DT binding, but the interrupt definitely exist at the CPU level for anything that implements ARMv8.1 and up. AFAIK, the M1 is the only machine to expose this interrupt in DT, but this doesn't mean the interrupt doesn't exist on all the other systems that have the same architecture revision. If you have contacts in Marvell, maybe try and find out whether they have simply decided not to wire the interrupt (I wouldn't be surprised). In this case, please add a comment. Thanks, M. --=20 Without deviation from the norm, progress is not possible. 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 29E7DC433F5 for ; Mon, 16 May 2022 09:50:10 +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: Subject:Cc:To:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5Ph5uTf1qtLXUTMLNDnFXhsza7jH67olpTtexnp6O04=; b=4N01ie7PbLxkbV HOZDb8x/eb0xzgxvDWGoTPqRMQcS0x1kRkd5t1Vdt5x/dJ8Nlms/pfxB2NfN17Hc/KzeZi7LWz0LO bGHTQz5AtsceRJ4DAnItIFezE29O8bpIXtfxlgoS0m8+a+6sJsjMVduoIeShhhxI2KGlbPpQmqnGq 33hnq2aiO/kYHNpsji8y+bPO8+hcPsEMmjGhT2i5yUc54Y2GATnJS/cS1hOSlS6aFEtg2W8saGzlo VLPurn9qRL8YPiOScGk/z8Owaxv1dItgzR9vO+QKjmlmE7I62vtltrByQgbPI123bLJn4GGq5DlyF LsNH88OsFiedOX3DEQEA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqXLX-006xjP-D7; Mon, 16 May 2022 09:48:59 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqXLT-006xib-PH for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 09:48:57 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 19AEA612B4; Mon, 16 May 2022 09:48:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A416C385AA; Mon, 16 May 2022 09:48:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652694534; bh=leHS3GcsKVc1Lrf/nqyL0NPJMCBOOuuCoSxhEbeGdFg=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=H4sPnGiwwh9XPdEbTNyUwxkbrG8ifZIPDKFEVrHAMoC+HxGU3DV4nw2hozTUb0v+p vJdE4IlfnSMT3tk2mfmVycqVB+Hg5RJbJpAGphDjUPUs1rLHL34AKp9wRenjdSPzU+ BXBG/97cFqQtNml6wjRsE0S5EIhzmtcFC4tVAgM+2dH5sGgXSOrsfN+4KuBigY1qx9 sD+PDzh2vcX5237CybA9/59RtqUpC6DoOUABa9I9lEYGHCFFzJTJ8brg/oPCjoOTN8 A6DFURdJwl/qqNZMKA/fKfWVEBDgiy4mpQR8QSlSrEjLV63de/3goR6RiJMA6Hgw1+ EaSRk1Y+LxQOA== Received: from sofa.misterjones.org ([185.219.108.64] helo=why.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nqXLP-00BZNP-GO; Mon, 16 May 2022 10:48:51 +0100 Date: Mon, 16 May 2022 10:48:51 +0100 Message-ID: <87mtfh6c58.wl-maz@kernel.org> From: Marc Zyngier To: Chris Packham Cc: "robh+dt@kernel.org" , "krzysztof.kozlowski+dt@linaro.org" , "catalin.marinas@arm.com" , "will@kernel.org" , "andrew@lunn.ch" , "gregory.clement@bootlin.com" , "sebastian.hesselbarth@gmail.com" , "kostap@marvell.com" , "robert.marko@sartura.hr" , "vadym.kochan@plvision.eu" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v7 2/3] arm64: dts: marvell: Add Armada 98DX2530 SoC and RD-AC5X board In-Reply-To: References: <20220512042501.3339775-1-chris.packham@alliedtelesis.co.nz> <20220512042501.3339775-3-chris.packham@alliedtelesis.co.nz> <87wnermc9c.wl-maz@kernel.org> <5c01f20a-acd3-da15-081d-7cf878f8a77a@alliedtelesis.co.nz> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: Chris.Packham@alliedtelesis.co.nz, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, catalin.marinas@arm.com, will@kernel.org, andrew@lunn.ch, gregory.clement@bootlin.com, sebastian.hesselbarth@gmail.com, kostap@marvell.com, robert.marko@sartura.hr, vadym.kochan@plvision.eu, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220516_024855_944458_068D0DDA X-CRM114-Status: GOOD ( 52.95 ) 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 T24gRnJpLCAxMyBNYXkgMjAyMiAwMjoyNjoyMSArMDEwMCwKQ2hyaXMgUGFja2hhbSA8Q2hyaXMu UGFja2hhbUBhbGxpZWR0ZWxlc2lzLmNvLm56PiB3cm90ZToKPiAKPiBIaSBNYXJjLAo+IAo+IE9u IDEzLzA1LzIyIDEwOjEwLCBDaHJpcyBQYWNraGFtIHdyb3RlOgo+ID4gSGkgTWFyYywKPiA+Cj4g PiBPbiAxMi8wNS8yMiAxOTozOCwgTWFyYyBaeW5naWVyIHdyb3RlOgo+ID4+IE9uIFRodSwgMTIg TWF5IDIwMjIgMDU6MjU6MDAgKzAxMDAsCj4gPj4gQ2hyaXMgUGFja2hhbSA8Y2hyaXMucGFja2hh bUBhbGxpZWR0ZWxlc2lzLmNvLm56PiB3cm90ZToKPiA+Pj4gVGhlIDk4RFgyNTMwIFNvQyBpcyB0 aGUgQ29udHJvbCBhbmQgTWFuYWdlbWVudCBDUFUgaW50ZWdyYXRlZCBpbnRvCj4gPj4+IHRoZSBN YXJ2ZWxsIDk4RFgyNXh4IGFuZCA5OERYMzV4eCBzZXJpZXMgb2Ygc3dpdGNoIGNoaXAgKGludGVy bmFsbHkKPiA+Pj4gcmVmZXJyZWQgdG8gYXMgQWxsZXlDYXQ1IGFuZCBBbGxleUNhdDVYKS4KPiA+ Pj4KPiA+Pj4gVGhlc2UgZmlsZXMgaGF2ZSBiZWVuIHRha2VuIGZyb20gdGhlIE1hcnZlbGwgU0RL IGFuZCBsaWdodGx5IGNsZWFuZWQKPiA+Pj4gdXAgd2l0aCB0aGUgTGljZW5zZSBhbmQgY29weXJp Z2h0IHJldGFpbmVkLgo+ID4+Pgo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBQYWNraGFtIDxj aHJpcy5wYWNraGFtQGFsbGllZHRlbGVzaXMuY28ubno+Cj4gPj4+IFJldmlld2VkLWJ5OiBBbmRy ZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+Cj4gPj4+IC0tLQo+ID4+Pgo+ID4+PiBOb3RlczoKPiA+ Pj4gwqDCoMKgwqAgVGhlIE1hcnZlbGwgU0RLIGhhcyBhIG51bWJlciBvZiBuZXcgY29tcGF0aWJs ZSBzdHJpbmdzLiBJJ3ZlIAo+ID4+PiBicm91Z2h0Cj4gPj4+IMKgwqDCoMKgIHRocm91Z2ggc29t ZSBvZiB0aGUgZHJpdmVycyBvciB3aGVyZSBwb3NzaWJsZSB1c2VkIGFuIGluLXRyZWUKPiA+Pj4g wqDCoMKgwqAgYWx0ZXJuYXRpdmUgKGUuZy4gdGhlcmUgaXMgU0RLIGNvZGUgZm9yIGEgYWM1LWdw aW8gYnV0IHR3byAKPiA+Pj4gaW5zdGFuY2VzIG9mCj4gPj4+IMKgwqDCoMKgIHRoZSBleGlzdGlu ZyBtYXJ2ZWxsLG9yaW9uLWdwaW8gc2VlbXMgdG8gY292ZXIgd2hhdCBpcyBuZWVkZWQgCj4gPj4+ IGlmIHlvdSB1c2UKPiA+Pj4gwqDCoMKgwqAgYW4gYXBwcm9wcmlhdGUgYmluZGluZykuIEkgZXhw ZWN0IHRoYXQgdGhlcmUgd2lsbCBhIG5ldyBzZXJpZXMgb2YKPiA+Pj4gwqDCoMKgwqAgcGF0Y2hl cyB3aGVuIEkgZ2V0IHNvbWUgZGlmZmVyZW50IGhhcmR3YXJlIChvciBhZGRpdGlvbnMgdG8gCj4g Pj4+IHRoaXMgc2VyaWVzCj4gPj4+IMKgwqDCoMKgIGRlcGVuZGluZyBvbiBpZi93aGVuIGl0IGxh bmRzKS4KPiA+Pj4gwqDCoMKgwqAgwqDCoMKgwqAgQ2hhbmdlcyBpbiB2NzoKPiA+Pj4gwqDCoMKg wqAgLSBBZGQgbWlzc2luZyBjb21wYXRpYmxlIG9uIHVzYjEKPiA+Pj4gwqDCoMKgwqAgLSBBZGQg InJkLWFjNXgiIGNvbXBhdGlibGUgZm9yIGJvYXJkCj4gPj4+IMKgwqDCoMKgIC0gTW92ZSBhbGlh c2VzIHRvIGJvYXJkIGR0cwo+ID4+PiDCoMKgwqDCoCAtIE1vdmUgYm9hcmQgc3BlY2lmaWMgdXNi IGluZm8gdG8gYm9hcmQgZHRzCj4gPj4+IMKgwqDCoMKgIC0gQ29uc29saWRhdGUgdXNiMSBib2Fy ZCBzZXR0aW5ncyBhbmQgcmVtb3ZlIHVubmVjZXNzYXJ5IAo+ID4+PiBjb21wYXRpYmxlCj4gPj4+ IMKgwqDCoMKgIC0gQWRkIEFsbGllZCBUZWxlc2lzIGNvcHlyaWdodAo+ID4+PiDCoMKgwqDCoCAt IFJlbmFtZSBmaWxlcyBhZnRlciBtYWlsbmctbGlzdCBkaXNjdXNzaW9uCj4gPj4+IMKgwqDCoMKg IENoYW5nZXMgaW4gdjY6Cj4gPj4+IMKgwqDCoMKgIC0gTW92ZSBDUFUgbm9kZXMgYWJvdmUgdGhl IFNvQyAoS3J6eXN6dG9mKQo+ID4+PiDCoMKgwqDCoCAtIE1pbm9yIGZvcm1hdHRpbmcgY2xlYW4g dXBzIChLcnp5c3p0b2YpCj4gPj4+IMKgwqDCoMKgIC0gUnVuIHRocm91Z2ggYG1ha2UgZHRic19j aGVja2AKPiA+Pj4gwqDCoMKgwqAgLSBNb3ZlIGdpYyBub2RlcyBpbnNpZGUgU29DCj4gPj4+IMKg wqDCoMKgIC0gR3JvdXAgY2xvY2tzIHVuZGVyIGEgY2xvY2sgbm9kZQo+ID4+PiDCoMKgwqDCoCBD aGFuZ2VzIGluIHY1Ogo+ID4+PiDCoMKgwqDCoCAtIGFkZCAje2FkZHJlc3Msc2l6ZX0tY2VsbHMg cHJvcGVydHkgdG8gaTJjIG5vZGVzCj4gPj4+IMKgwqDCoMKgIC0gbWFrZSBpMmMgbm9kZXMgZGlz YWJsZWQgaW4gdGhlIFNvQyBhbmQgZW5hYmxlIHRoZW0gaW4gdGhlIGJvYXJkCj4gPj4+IMKgwqDC oMKgIC0gYWRkIGludGVycnVwdCBjb250cm9sbGVyIGF0dHJpYnV0ZXMgdG8gZ3BpbyBub2Rlcwo+ ID4+PiDCoMKgwqDCoCAtIE1vdmUgZml4ZWQtY2xvY2sgbm9kZXMgdXAgYSBsZXZlbCBhbmQgcmVt b3ZlIHVubmVjZXNzYXJ5IEAwCj4gPj4+IMKgwqDCoMKgIENoYW5nZXMgaW4gdjQ6Cj4gPj4+IMKg wqDCoMKgIC0gdXNlICdwaHktaGFuZGxlJyBpbnN0ZWFkIG9mICdwaHknCj4gPj4+IMKgwqDCoMKg IC0gbW92ZSBzdGF0dXM9Im9rYXkiIG9uIHVzYiBub2RlcyB0byBib2FyZCBkdHMKPiA+Pj4gwqDC oMKgwqAgLSBBZGQgcmV2aWV3IGZyb20gQW5kcmV3Cj4gPj4+IMKgwqDCoMKgIENoYW5nZXMgaW4g djM6Cj4gPj4+IMKgwqDCoMKgIC0gTW92ZSBtZW1vcnkgbm9kZSB0byBib2FyZAo+ID4+PiDCoMKg wqDCoCAtIFVzZSBzaW5nbGUgZGlnaXQgcmVnIHZhbHVlIGZvciBwaHkgYWRkcmVzcwo+ID4+PiDC oMKgwqDCoCAtIFJlbW92ZSBNTUMgbm9kZSAoZHJpdmVyIG5lZWRzIHdvcmspCj4gPj4+IMKgwqDC oMKgIC0gUmVtb3ZlIHN5c2NvbiAmIHNpbXBsZS1tZmQgZm9yIHBpbmN0cmwKPiA+Pj4gwqDCoMKg wqAgQ2hhbmdlcyBpbiB2MjoKPiA+Pj4gwqDCoMKgwqAgLSBNYWtlIHBpbmN0cmwgYSBjaGlsZCBu b2RlIG9mIGEgc3lzY29uIG5vZGUKPiA+Pj4gwqDCoMKgwqAgLSBVc2UgbWFydmVsbCxhcm1hZGEt OGstZ3BpbyBpbnN0ZWFkIG9mIG9yaW9uLWdwaW8KPiA+Pj4gwqDCoMKgwqAgLSBSZW1vdmUgbmFu ZCBwZXJpcGhlcmFsLiBUaGUgTWFydmVsbCBTREsgZG9lcyBoYXZlIHNvbWUgCj4gPj4+IGNoYW5n ZXMgZm9yIHRoZQo+ID4+PiDCoMKgwqDCoMKgwqAgYWM1LW5hbmQtY29udHJvbGxlciBidXQgSSBj dXJyZW50bHkgbGFjayBoYXJkd2FyZSB3aXRoIE5BTkQgCj4gPj4+IGZpdHRlZCBzbwo+ID4+PiDC oMKgwqDCoMKgwqAgSSBjYW4ndCB0ZXN0IGl0IHJpZ2h0IG5vdy4gSSd2ZSB0aGVyZWZvcmUgY2hv c2VuIHRvIG9taXQgdGhlIAo+ID4+PiBub2RlIGFuZAo+ID4+PiDCoMKgwqDCoMKgwqAgbm90IGF0 dGVtcHRlZCB0byBicmluZyBpbiB0aGUgZHJpdmVyIG9yIGJpbmRpbmcuCj4gPj4+IMKgwqDCoMKg IC0gUmVtb3ZlIHBjaWUgcGVyaXBoZXJhbC4gQWdhaW4gdGhlcmUgYXJlIGNoYW5nZXMgaW4gdGhl IFNESyAKPiA+Pj4gYW5kIEkgaGF2ZQo+ID4+PiDCoMKgwqDCoMKgwqAgbm8gd2F5IG9mIHRlc3Rp bmcgdGhlbS4KPiA+Pj4gwqDCoMKgwqAgLSBSZW1vdmUgcHJlc3RlcmEgbm9kZS4KPiA+Pj4gwqDC oMKgwqAgLSBSZW1vdmUgIm1hcnZlbGwsYWM1LWVoY2kiIGNvbXBhdGlibGUgZnJvbSBVU0Igbm9k ZSBhcwo+ID4+PiDCoMKgwqDCoMKgwqAgIm1hcnZlbGwsb3Jpb24tZWhjaSIgaXMgc3VmZmljaWVu dAo+ID4+PiDCoMKgwqDCoCAtIFJlbW92ZSB3YXRjaGRvZyBub2RlLiBUaGVyZSBpcyBhIGJ1Z2d5 IGRyaXZlciBmb3IgdGhlIGFjNSAKPiA+Pj4gd2F0Y2hkb2cgaW4KPiA+Pj4gwqDCoMKgwqDCoMKg IHRoZSBTREsgYnV0IGl0IG5lZWRzIHNvbWUgd29yayBzbyBJJ3ZlIGRyb3BwZWQgdGhlIG5vZGUg Zm9yIG5vdy4KPiA+Pj4KPiA+Pj4gwqAgYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL01ha2Vm aWxlwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDEgKwo+ID4+PiDCoCAuLi4vYm9vdC9kdHMvbWFy dmVsbC9hcm1hZGEtOThkeDI1eHguZHRzacKgwqDCoMKgIHwgMjk1IAo+ID4+PiArKysrKysrKysr KysrKysrKysKPiA+Pj4gwqAgLi4uL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTk4ZHgzNXh4LXJk LmR0c8KgwqAgfCAxMDEgKysrKysrCj4gPj4+IMKgIC4uLi9ib290L2R0cy9tYXJ2ZWxsL2FybWFk YS05OGR4MzV4eC5kdHNpwqDCoMKgwqAgfMKgIDEzICsKPiA+Pj4gwqAgNCBmaWxlcyBjaGFuZ2Vk LCA0MTAgaW5zZXJ0aW9ucygrKQo+ID4+PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm02 NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS05OGR4MjV4eC5kdHNpCj4gPj4+IMKgIGNyZWF0ZSBt b2RlIDEwMDY0NCBhcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTk4ZHgzNXh4LXJk LmR0cwo+ID4+PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2 ZWxsL2FybWFkYS05OGR4MzV4eC5kdHNpCj4gPj4+Cj4gPj4+IGRpZmYgLS1naXQgYS9hcmNoL2Fy bTY0L2Jvb3QvZHRzL21hcnZlbGwvTWFrZWZpbGUgCj4gPj4+IGIvYXJjaC9hcm02NC9ib290L2R0 cy9tYXJ2ZWxsL01ha2VmaWxlCj4gPj4+IGluZGV4IDFjNzk0Y2RjYjhlNi4uYjdhNGM3MTVhZmJi IDEwMDY0NAo+ID4+PiAtLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvTWFrZWZpbGUK PiA+Pj4gKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL01ha2VmaWxlCj4gPj4+IEBA IC0yNCwzICsyNCw0IEBAIGR0Yi0kKENPTkZJR19BUkNIX01WRUJVKSArPSBjbjkxMzItZGIuZHRi Cj4gPj4+IMKgIGR0Yi0kKENPTkZJR19BUkNIX01WRUJVKSArPSBjbjkxMzItZGItQi5kdGIKPiA+ Pj4gwqAgZHRiLSQoQ09ORklHX0FSQ0hfTVZFQlUpICs9IGNuOTEzMC1jcmItQS5kdGIKPiA+Pj4g wqAgZHRiLSQoQ09ORklHX0FSQ0hfTVZFQlUpICs9IGNuOTEzMC1jcmItQi5kdGIKPiA+Pj4gK2R0 Yi0kKENPTkZJR19BUkNIX01WRUJVKSArPSBhcm1hZGEtOThkeDM1eHgtcmQuZHRiCj4gPj4+IGRp ZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTk4ZHgyNXh4LmR0 c2kgCj4gPj4+IGIvYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS05OGR4MjV4eC5k dHNpCj4gPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPj4+IGluZGV4IDAwMDAwMDAwMDAwMC4u NTVhYjRjZDg0M2E5Cj4gPj4+IC0tLSAvZGV2L251bGwKPiA+Pj4gKysrIGIvYXJjaC9hcm02NC9i b290L2R0cy9tYXJ2ZWxsL2FybWFkYS05OGR4MjV4eC5kdHNpCj4gPj4+IEBAIC0wLDAgKzEsMjk1 IEBACj4gPj4+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjArIE9SIE1JVCkK PiA+Pj4gKy8qCj4gPj4+ICsgKiBEZXZpY2UgVHJlZSBGb3IgQUM1Lgo+ID4+PiArICoKPiA+Pj4g KyAqIENvcHlyaWdodCAoQykgMjAyMSBNYXJ2ZWxsCj4gPj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIw MjIgQWxsaWVkIFRlbGVzaXMgTGFicwo+ID4+PiArICovCj4gPj4+ICsKPiA+Pj4gKyNpbmNsdWRl IDxkdC1iaW5kaW5ncy9ncGlvL2dwaW8uaD4KPiA+Pj4gKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9p bnRlcnJ1cHQtY29udHJvbGxlci9hcm0tZ2ljLmg+Cj4gPj4+ICsKPiA+Pj4gKy8gewo+ID4+PiAr wqDCoMKgIG1vZGVsID0gIk1hcnZlbGwgQUM1IFNvQyI7Cj4gPj4+ICvCoMKgwqAgY29tcGF0aWJs ZSA9ICJtYXJ2ZWxsLGFjNSI7Cj4gPj4+ICvCoMKgwqAgaW50ZXJydXB0LXBhcmVudCA9IDwmZ2lj PjsKPiA+Pj4gK8KgwqDCoCAjYWRkcmVzcy1jZWxscyA9IDwyPjsKPiA+Pj4gK8KgwqDCoCAjc2l6 ZS1jZWxscyA9IDwyPjsKPiA+Pj4gKwo+ID4+PiArwqDCoMKgIGNwdXMgewo+ID4+PiArwqDCoMKg wqDCoMKgwqAgI2FkZHJlc3MtY2VsbHMgPSA8Mj47Cj4gPj4+ICvCoMKgwqDCoMKgwqDCoCAjc2l6 ZS1jZWxscyA9IDwwPjsKPiA+Pj4gKwo+ID4+PiArwqDCoMKgwqDCoMKgwqAgY3B1LW1hcCB7Cj4g Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNsdXN0ZXIwIHsKPiA+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBjb3JlMCB7Cj4gPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBjcHUgPSA8JmNwdTA+Owo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIH07Cj4gPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29y ZTEgewo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY3B1ID0g PCZjcHUxPjsKPiA+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+ID4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+ID4+PiArwqDCoMKgwqDCoMKgwqAgfTsKPiA+Pj4g Kwo+ID4+PiArwqDCoMKgwqDCoMKgwqAgY3B1MDogY3B1QDAgewo+ID4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBkZXZpY2VfdHlwZSA9ICJjcHUiOwo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBjb21wYXRpYmxlID0gImFybSxhcm12OCI7Cj4gPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHJlZyA9IDwweDAgMHgwPjsKPiA+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW5hYmxl LW1ldGhvZCA9ICJwc2NpIjsKPiA+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmV4dC1sZXZl bC1jYWNoZSA9IDwmbDI+Owo+ID4+PiArwqDCoMKgwqDCoMKgwqAgfTsKPiA+Pj4gKwo+ID4+PiAr wqDCoMKgwqDCoMKgwqAgY3B1MTogY3B1QDEgewo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBkZXZpY2VfdHlwZSA9ICJjcHUiOwo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb21w YXRpYmxlID0gImFybSxhcm12OCI7Cj4gPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlZyA9 IDwweDAgMHgxMDA+Owo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbmFibGUtbWV0aG9k ID0gInBzY2kiOwo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuZXh0LWxldmVsLWNhY2hl ID0gPCZsMj47Cj4gPj4+ICvCoMKgwqDCoMKgwqDCoCB9Owo+ID4+PiArCj4gPj4+ICvCoMKgwqDC oMKgwqDCoCBsMjogbDItY2FjaGUgewo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb21w YXRpYmxlID0gImNhY2hlIjsKPiA+Pj4gK8KgwqDCoMKgwqDCoMKgIH07Cj4gPj4+ICvCoMKgwqAg fTsKPiA+Pj4gKwo+ID4+PiArCj4gPj4+ICvCoMKgwqAgcHNjaSB7Cj4gPj4+ICvCoMKgwqDCoMKg wqDCoCBjb21wYXRpYmxlID0gImFybSxwc2NpLTAuMiI7Cj4gPj4+ICvCoMKgwqDCoMKgwqDCoCBt ZXRob2QgPSAic21jIjsKPiA+Pj4gK8KgwqDCoCB9Owo+ID4+PiArCj4gPj4+ICvCoMKgwqAgdGlt ZXIgewo+ID4+PiArwqDCoMKgwqDCoMKgwqAgY29tcGF0aWJsZSA9ICJhcm0sYXJtdjgtdGltZXIi Owo+ID4+PiArwqDCoMKgwqDCoMKgwqAgaW50ZXJydXB0cyA9IDxHSUNfUFBJIDkgSVJRX1RZUEVf TEVWRUxfSElHSD4sCj4gPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA8R0lD X1BQSSA4IElSUV9UWVBFX0xFVkVMX0hJR0g+LAo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgPEdJQ19QUEkgMTAgSVJRX1RZUEVfTEVWRUxfSElHSD4sCj4gPj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA8R0lDX1BQSSA3IElSUV9UWVBFX0xFVkVMX0hJ R0g+Owo+ID4+PiArwqDCoMKgwqDCoMKgwqAgY2xvY2stZnJlcXVlbmN5ID0gPDI1MDAwMDAwPjsK PiA+PiBJIHNhaWQgbm8gdG8gdGhpcyBoYWNrIGluIGEgcGFzdCB2ZXJzaW9uIG9mIHRoaXMgcGF0 Y2gsIGFuZCBJJ20gZ29pbmcKPiA+PiB0byBzYXkgaXQgKmFnYWluKi4KPiA+IFNvcnJ5IEkgbXVz dCBoYXZlIG1pc3NlZCBpdC4KPiA+PiBQbGVhc2UgZml4IHlvdXIgZmlybXdhcmUgdG8gcHJvZ3Jh bSBDTlRGUlFfRUwwLCBhbmQKPiA+PiByZW1vdmUgdGhpcyB1c2VsZXNzIHByb3BlcnR5Lgo+ID4g SSdtIGtpbmQgb2YgYXQgdGhlIG1lcmN5IG9mIHdoYXQgTWFydmVsbCBoYXZlIHByb3ZpZGVkIGZv ciBBVEYuIEkgYW0gCj4gPiB3b3JraW5nIG9uIHRoZSBib290bG9hZGVyIHBvcnRpb24gaW4gcGFy YWxsZWwgYW5kIGFtIGdldHRpbmcgdGhpbmdzIAo+ID4gcmVhZHkgZm9yIHN1Ym1pdHRpbmcgdGhl IHUtYm9vdCBzdXBwb3J0IHVwc3RyZWFtLiBJIHdhcyBob3BpbmcgdG8gCj4gPiBsZWF2ZSBBVEYg YWxvbmUgSSBjYW4gYXQgbGVhc3Qgc2VlIGlmIHRoZXkgaGF2ZW4ndCBmaXhlZCB0aGlzIGFscmVh ZHkgCj4gPiAodGhlIG9yaWdpbmFsIGR0c2kgSSBzdGFydGVkIHdpdGggd2FzIGZhaXJseSBvbGQp IGFuZCBpZiB0aGV5IGhhdmVuJ3QgCj4gPiBJJ2xsIHJhaXNlIGl0IHZpYSB0aGVpciBzdXBwb3J0 IHN5c3RlbS4KPiBTZWVtcyB0byB3b3JrIGZpbmUgd2l0aG91dCB0aGUgY2xvY2sgc28gSSdsbCBk cm9wIGl0LgoKVGhhbmtzLiBJZiB5b3UgY2FuLCBwbGVhc2UgdmVyaWZ5IHRoYXQgdGhpcyBpcyBz ZXQgb24gYm90aCBDUFVzIChJCmhhdmUgc2VlbiBwbGVudHkgb2YgZmlybXdhcmUgb25seSBzZXR0 aW5nIGl0IG9uIENQVTAgaW4gdGhlIHBhc3QpLgoKPiA+PiBZb3UgYXJlIGFsc28gbWlzc2luZyBh IFBQSSBmb3IgdGhlIEVMMiB2aXJ0dWFsIHRpbWVyIHdoaWNoIGlzIHByZXNlbnQKPiA+PiBvbiBh bnkgQVJNdjguMSsgQ1BVIChhbmQgc2luY2UgdGhpcyBzeXN0ZW0gaXMgdXNpbmcgQTU1LCBpdCBk ZWZpbml0ZWx5Cj4gPj4gaGFzIGl0KS4KPiA+Pgo+ID4+IFsuLi5dCj4gPiBXaWxsIGFkZC4KPiBJ IGFzc3VtZSB5b3UncmUgdGFsa2luZyBhYm91dCB0aGUgNXRoIFBQSSBwZXIgdGhlIAo+IHRpbWVy L2FybSxhcmNoX3RpbWVyLnlhbWwgKCJoeXBlcnZpc29yIHZpcnR1YWwgdGltZXIgaXJxIikuCgpJ bmRlZWQuCgo+IEhlbHBmdWxseQo+IE1hcnZlbGwgZG9uJ3QgaW5jbHVkZSB0aGUgUFBJIGludGVy cnVwdCBudW1iZXJzIGluIHRoZWlyIGRhdGFzaGVldC4gQnV0IAo+IHRoZW4gSSBhbHNvIG5vdGlj ZSB0aGF0IG5vbmUgb2YgdGhlIG90aGVyIGJvYXJkcyB0aGF0IGhhdmUgYSAKPiAiYXJtLGFybXY4 LXRpbWVyIiBwcm92aWRlIGEgNXRoIGludGVycnVwdCBlaXRoZXIsIGhhdmUgSSBtaXN1bmRlcnN0 b29kIAo+IHNvbWV0aGluZz8KClRoaXMgd2FzIG9ubHkgcmVjZW50bHkgYWRkZWQgdG8gdGhlIERU IGJpbmRpbmcsIGJ1dCB0aGUgaW50ZXJydXB0CmRlZmluaXRlbHkgZXhpc3QgYXQgdGhlIENQVSBs ZXZlbCBmb3IgYW55dGhpbmcgdGhhdCBpbXBsZW1lbnRzIEFSTXY4LjEKYW5kIHVwLiBBRkFJSywg dGhlIE0xIGlzIHRoZSBvbmx5IG1hY2hpbmUgdG8gZXhwb3NlIHRoaXMgaW50ZXJydXB0IGluCkRU LCBidXQgdGhpcyBkb2Vzbid0IG1lYW4gdGhlIGludGVycnVwdCBkb2Vzbid0IGV4aXN0IG9uIGFs bCB0aGUgb3RoZXIKc3lzdGVtcyB0aGF0IGhhdmUgdGhlIHNhbWUgYXJjaGl0ZWN0dXJlIHJldmlz aW9uLgoKSWYgeW91IGhhdmUgY29udGFjdHMgaW4gTWFydmVsbCwgbWF5YmUgdHJ5IGFuZCBmaW5k IG91dCB3aGV0aGVyIHRoZXkKaGF2ZSBzaW1wbHkgZGVjaWRlZCBub3QgdG8gd2lyZSB0aGUgaW50 ZXJydXB0IChJIHdvdWxkbid0IGJlCnN1cnByaXNlZCkuIEluIHRoaXMgY2FzZSwgcGxlYXNlIGFk ZCBhIGNvbW1lbnQuCgpUaGFua3MsCgoJTS4KCi0tIApXaXRob3V0IGRldmlhdGlvbiBmcm9tIHRo ZSBub3JtLCBwcm9ncmVzcyBpcyBub3QgcG9zc2libGUuCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==