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 X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F782C433DF for ; Fri, 21 Aug 2020 12:21:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E2A7D207BB for ; Fri, 21 Aug 2020 12:21:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728605AbgHUMV0 (ORCPT ); Fri, 21 Aug 2020 08:21:26 -0400 Received: from comms.puri.sm ([159.203.221.185]:51448 "EHLO comms.puri.sm" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727888AbgHUMS4 (ORCPT ); Fri, 21 Aug 2020 08:18:56 -0400 Received: from localhost (localhost [127.0.0.1]) by comms.puri.sm (Postfix) with ESMTP id 5F4D7DF65D; Fri, 21 Aug 2020 05:18:25 -0700 (PDT) Received: from comms.puri.sm ([127.0.0.1]) by localhost (comms.puri.sm [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ftYvoarcxpqb; Fri, 21 Aug 2020 05:18:22 -0700 (PDT) From: Martin Kepplinger To: robh@kernel.org, kernel@puri.sm, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, mchehab@kernel.org, Anson.Huang@nxp.com, agx@sigxcpu.org, angus@akkea.ca, broonie@kernel.org Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Martin Kepplinger , Daniel Baluta Subject: [PATCH v6 1/3] arm64: dts: Add a device tree for the Librem 5 phone Date: Fri, 21 Aug 2020 14:17:53 +0200 Message-Id: <20200821121755.24599-1-martin.kepplinger@puri.sm> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Angus Ainslie (Purism)" Add a devicetree description for the Librem 5 phone. 4 hardware revisions have been available. Some revisions include changes that need different software to be run. So far, r3 ("Dogwood") is one such example, see: "Aspen" r0 not supported (very few devices exist) "Birch" r1 supported by r2 "Chestnut" r2 added by this patch "Dogwood" r3 added by this patch "Evergreen" r4 tba / most likely supported by r3 See https://puri.sm/products/librem-5/ for more information. This boots to a working console with working WWAN modem, wifi usdhc, IMU sensor device, proximity sensor, haptic motor, gpio keys, GNSS and LEDs. Signed-off-by: Martin Kepplinger Signed-off-by: Angus Ainslie (Purism) Signed-off-by: Guido Günther Reviewed-by: Daniel Baluta (for the audio part) Reviewed-by: Fabio Estevam --- revision history ---------------- v6: thanks a lot Rob and Fabio for reviewing * add pinctrl-names = "default" where it was missing * removed the lm3560 flash/torch device. add it when the driver is hooked up. * fsl-lpspi cs-gpios active low * remove unneeded comment and one node naming improvement * add near-level to proximity description * add missing Acked-by: Rob Herring to dt-bindings commit message v5: thanks a lot Pavel for reviewing again * remove pwmleds (no stable interface yet) https://lore.kernel.org/linux-arm-kernel/20200731082725.21878-1-martin.kepplinger@puri.sm/T/ v4: thanks a lot Shawn for reviewing * rename to dtsi and split out r2 and r3 dts with revision specifics * add the USB2642 hard-wired Hub * fix charge controller boost-max-current * disable pullup on CHRG_INT (not needed due to external one) * add documentation for the boards' compatible strings * fix led-backlight propery usage * coding style fixes https://lore.kernel.org/linux-devicetree/20200721153225.7593-1-martin.kepplinger@puri.sm/T/ v3: thanks a lot Mark for reviewing! changes since v2: * nicer audio cards names * squash unneeded audio_pwr regulator * remove the susphy_quirk from dwc3_1 after more testing * add usdhc2 card detect via gpio * add headphone detect for audio card https://lore.kernel.org/linux-arm-kernel/20200617073821.16737-1-martin.kepplinger@puri.sm/T/ v2: thanks a lot Marco, Daniel and Pavel for reviewing. changes since v1: * alphabetical sortings / more consistent node names * remove unused regulator and pinctrl descriptions * generic labels for leds, backlight, flash and torch * audio clk settings moved to sai2 node https://lore.kernel.org/linux-arm-kernel/20200604084756.586-1-martin.kepplinger@puri.sm/T/ v1: https://lore.kernel.org/linux-arm-kernel/20200514155737.12160-1-martin.kepplinger@puri.sm/ arch/arm64/boot/dts/freescale/Makefile | 2 + .../boot/dts/freescale/imx8mq-librem5-r2.dts | 29 + .../boot/dts/freescale/imx8mq-librem5-r3.dts | 27 + .../boot/dts/freescale/imx8mq-librem5.dtsi | 1105 +++++++++++++++++ 4 files changed, 1163 insertions(+) create mode 100644 arch/arm64/boot/dts/freescale/imx8mq-librem5-r2.dts create mode 100644 arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts create mode 100644 arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index a39f0a1723e0..97335205b600 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -35,6 +35,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mq-hummingboard-pulse.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-devkit.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-r2.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-r3.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mq-nitrogen.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mq-phanbell.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mq-pico-pi.dtb diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5-r2.dts b/arch/arm64/boot/dts/freescale/imx8mq-librem5-r2.dts new file mode 100644 index 000000000000..d77fc5df3f06 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-r2.dts @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +// Copyright (C) 2020 Purism SPC +// +// Librem 5 Chestnut + +/dts-v1/; + +#include "imx8mq-librem5.dtsi" + +/ { + model = "Purism Librem 5r2"; + compatible = "purism,librem5r2", "purism,librem5", "fsl,imx8mq"; +}; + +&bq25895 { + ti,battery-regulation-voltage = <4192000>; /* uV */ + ti,charge-current = <1600000>; /* uA */ + ti,termination-current = <66000>; /* uA */ +}; + +&accel_gyro { + mount-matrix = "1", "0", "0", + "0", "-1", "0", + "0", "0", "1"; +}; + +&proximity { + proximity-near-level = <220>; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts b/arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts new file mode 100644 index 000000000000..6704ea2c72a3 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +// Copyright (C) 2020 Purism SPC + +/dts-v1/; + +#include "imx8mq-librem5.dtsi" + +/ { + model = "Purism Librem 5r3"; + compatible = "purism,librem5r3", "purism,librem5", "fsl,imx8mq"; +}; + +&accel_gyro { + mount-matrix = "1", "0", "0", + "0", "1", "0", + "0", "0", "-1"; +}; + +&bq25895 { + ti,battery-regulation-voltage = <4200000>; /* uV */ + ti,charge-current = <1500000>; /* uA */ + ti,termination-current = <144000>; /* uA */ +}; + +&proximity { + proximity-near-level = <25>; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi b/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi new file mode 100644 index 000000000000..c3e290703fe8 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi @@ -0,0 +1,1105 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2018-2020 Purism SPC + */ + +/dts-v1/; + +#include "dt-bindings/input/input.h" +#include "dt-bindings/pwm/pwm.h" +#include "dt-bindings/usb/pd.h" +#include "imx8mq.dtsi" + +/ { + model = "Purism Librem 5"; + compatible = "purism,librem5", "fsl,imx8mq"; + + backlight_dsi: backlight-dsi { + compatible = "led-backlight"; + leds = <&led_backlight>; + }; + + pmic_osc: clock-pmic { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <32768>; + clock-output-names = "pmic_osc"; + }; + + chosen { + stdout-path = &uart1; + }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_keys>; + + vol-down { + label = "VOL_DOWN"; + gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + vol-up { + label = "VOL_UP"; + gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + reg_aud_1v8: regulator-audio-1v8 { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_audiopwr>; + regulator-name = "AUDIO_PWR_EN"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_gnss: regulator-gnss { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gnsspwr>; + regulator-name = "GNSS"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&gpio3 12 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_hub: regulator-hub { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hub_pwr>; + regulator-name = "HUB"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_lcd_3v4: regulator-lcd-3v4 { + compatible = "regulator-fixed"; + regulator-name = "LCD_3V4"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_dsibiasen>; + vin-supply = <®_vsys_3v4>; + gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_vdd_sen: regulator-vdd-sen { + compatible = "regulator-fixed"; + regulator-name = "VDD_SEN"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + reg_vdd_3v3: regulator-vdd-3v3 { + compatible = "regulator-fixed"; + regulator-name = "VDD_3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + reg_vdd_1v8: regulator-vdd-1v8 { + compatible = "regulator-fixed"; + regulator-name = "VCC_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + reg_vsys_3v4: regulator-vsys-3v4 { + compatible = "regulator-fixed"; + regulator-name = "VSYS_3V4"; + regulator-min-microvolt = <3400000>; + regulator-max-microvolt = <3400000>; + regulator-always-on; + }; + + reg_wifi_3v3: regulator-wifi-3v3 { + compatible = "regulator-fixed"; + regulator-name = "3V3_WIFI"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + sound { + compatible = "simple-audio-card"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hp>; + simple-audio-card,name = "Librem 5"; + simple-audio-card,format = "i2s"; + simple-audio-card,widgets = + "Headphone", "Headphones", + "Microphone", "Headset Mic", + "Microphone", "Digital Mic", + "Speaker", "Speaker"; + simple-audio-card,routing = + "Headphones", "HPOUTL", + "Headphones", "HPOUTR", + "Speaker", "SPKOUTL", + "Speaker", "SPKOUTR", + "Headset Mic", "MICBIAS", + "IN3R", "Headset Mic", + "DMICDAT", "Digital Mic"; + simple-audio-card,hp-det-gpio = <&gpio3 9 GPIO_ACTIVE_HIGH>; + + simple-audio-card,cpu { + sound-dai = <&sai2>; + }; + + simple-audio-card,codec { + sound-dai = <&codec>; + clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>; + frame-master; + bitclock-master; + }; + }; + + sound-wwan { + compatible = "simple-audio-card"; + simple-audio-card,name = "Modem"; + simple-audio-card,format = "i2s"; + + simple-audio-card,cpu { + sound-dai = <&sai6>; + frame-inversion; + }; + + simple-audio-card,codec { + sound-dai = <&bm818_codec>; + frame-master; + bitclock-master; + }; + }; + + bm818_codec: sound-wwan-codec { + compatible = "broadmobi,bm818", "option,gtm601"; + #sound-dai-cells = <0>; + }; + + vibrator { + compatible = "pwm-vibrator"; + pwms = <&pwm1 0 1000000000 0>; + pwm-names = "enable"; + vcc-supply = <®_vdd_3v3>; + }; +}; + +&A53_0 { + cpu-supply = <&buck2_reg>; +}; + +&A53_1 { + cpu-supply = <&buck2_reg>; +}; + +&A53_2 { + cpu-supply = <&buck2_reg>; +}; + +&A53_3 { + cpu-supply = <&buck2_reg>; +}; + +&ddrc { + operating-points-v2 = <&ddrc_opp_table>; + + ddrc_opp_table: ddrc-opp-table { + compatible = "operating-points-v2"; + + opp-25M { + opp-hz = /bits/ 64 <25000000>; + }; + + opp-100M { + opp-hz = /bits/ 64 <100000000>; + }; + + opp-800M { + opp-hz = /bits/ 64 <800000000>; + }; + }; +}; + +&dphy { + status = "okay"; +}; + +&ecspi1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ecspi1>; + cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + nor_flash: flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <1000000>; + }; +}; + +&gpio1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pmic_5v>; + + pmic-5v { + gpio-hog; + gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>; + input; + }; +}; + +&iomuxc { + pinctrl_audiopwr: audiopwrgrp { + fsl,pins = < + /* AUDIO_POWER_EN_3V3 */ + MX8MQ_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x83 + >; + }; + + pinctrl_bl: blgrp { + fsl,pins = < + /* BACKLINGE_EN */ + MX8MQ_IOMUXC_NAND_DQS_GPIO3_IO14 0x83 + >; + }; + + pinctrl_charger_in: chargeringrp { + fsl,pins = < + /* CHRG_INT */ + MX8MQ_IOMUXC_NAND_CE2_B_GPIO3_IO3 0x00 + /* CHG_STATUS_B */ + MX8MQ_IOMUXC_NAND_ALE_GPIO3_IO0 0x80 + >; + }; + + pinctrl_dsibiasen: dsibiasengrp { + fsl,pins = < + /* DSI_BIAS_EN */ + MX8MQ_IOMUXC_ENET_TD1_GPIO1_IO20 0x83 + >; + }; + + pinctrl_dsien: dsiengrp { + fsl,pins = < + /* DSI_EN_3V3 */ + MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x83 + >; + }; + + pinctrl_ecspi1: ecspigrp { + fsl,pins = < + MX8MQ_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x83 + MX8MQ_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x83 + MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19 + MX8MQ_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x83 + >; + }; + + pinctrl_gauge: gaugegrp { + fsl,pins = < + /* BAT_LOW */ + MX8MQ_IOMUXC_SAI5_RXC_GPIO3_IO20 0x80 + >; + }; + + pinctrl_gnsspwr: gnsspwrgrp { + fsl,pins = < + /* GPS3V3_EN */ + MX8MQ_IOMUXC_NAND_DATA06_GPIO3_IO12 0x83 + >; + }; + + pinctrl_haptic: hapticgrp { + fsl,pins = < + /* MOTO */ + MX8MQ_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT 0x83 + >; + }; + + pinctrl_hp: hpgrp { + fsl,pins = < + /* HEADPHONE_DET_1V8 */ + MX8MQ_IOMUXC_NAND_DATA03_GPIO3_IO9 0x180 + >; + }; + + pinctrl_hub_pwr: hubpwrgrp { + fsl,pins = < + /* HUB_PWR_3V3_EN */ + MX8MQ_IOMUXC_GPIO1_IO14_GPIO1_IO14 0x83 + >; + }; + + pinctrl_i2c1: i2c1grp { + fsl,pins = < + MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL 0x40000026 + MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000026 + >; + }; + + pinctrl_i2c2: i2c2grp { + fsl,pins = < + MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL 0x40000026 + MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA 0x40000026 + >; + }; + + pinctrl_i2c3: i2c3grp { + fsl,pins = < + MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL 0x40000026 + MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA 0x40000026 + >; + }; + + pinctrl_i2c4: i2c4grp { + fsl,pins = < + MX8MQ_IOMUXC_I2C4_SCL_I2C4_SCL 0x40000026 + MX8MQ_IOMUXC_I2C4_SDA_I2C4_SDA 0x40000026 + >; + }; + + pinctrl_keys: keysgrp { + fsl,pins = < + /* VOL- */ + MX8MQ_IOMUXC_ENET_MDIO_GPIO1_IO17 0x01C0 + /* VOL+ */ + MX8MQ_IOMUXC_ENET_MDC_GPIO1_IO16 0x01C0 + >; + }; + + pinctrl_led_b: ledbgrp { + fsl,pins = < + /* LED_B */ + MX8MQ_IOMUXC_GPIO1_IO13_PWM2_OUT 0x06 + >; + }; + + pinctrl_led_g: ledggrp { + fsl,pins = < + /* LED_G */ + MX8MQ_IOMUXC_SAI3_MCLK_PWM4_OUT 0x06 + >; + }; + + pinctrl_led_r: ledrgrp { + fsl,pins = < + /* LED_R */ + MX8MQ_IOMUXC_SPDIF_TX_PWM3_OUT 0x06 + >; + }; + + pinctrl_mag: maggrp { + fsl,pins = < + /* INT_MAG */ + MX8MQ_IOMUXC_SAI5_RXD1_GPIO3_IO22 0x80 + >; + }; + + pinctrl_pmic: pmicgrp { + fsl,pins = < + /* PMIC_NINT */ + MX8MQ_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x80 + >; + }; + + pinctrl_pmic_5v: pmic5vgrp { + fsl,pins = < + /* PMIC_5V */ + MX8MQ_IOMUXC_GPIO1_IO01_GPIO1_IO1 0x80 + >; + }; + + pinctrl_prox: proxgrp { + fsl,pins = < + /* INT_LIGHT */ + MX8MQ_IOMUXC_NAND_DATA01_GPIO3_IO7 0x80 + >; + }; + + pinctrl_rtc: rtcgrp { + fsl,pins = < + /* RTC_INT */ + MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x80 + >; + }; + + pinctrl_sai2: sai2grp { + fsl,pins = < + MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0 0xd6 + MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC 0xd6 + MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK 0xd6 + MX8MQ_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0 0xd6 + MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK 0xd6 + >; + }; + + pinctrl_sai6: sai6grp { + fsl,pins = < + MX8MQ_IOMUXC_SAI1_RXD5_SAI6_RX_DATA0 0xd6 + MX8MQ_IOMUXC_SAI1_RXD6_SAI6_RX_SYNC 0xd6 + MX8MQ_IOMUXC_SAI1_TXD4_SAI6_RX_BCLK 0xd6 + MX8MQ_IOMUXC_SAI1_TXD5_SAI6_TX_DATA0 0xd6 + >; + }; + + pinctrl_tcpc: tcpcgrp { + fsl,pins = < + /* TCPC_INT */ + MX8MQ_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x01C0 + >; + }; + + pinctrl_typec: typecgrp { + fsl,pins = < + /* TYPEC_MUX_EN */ + MX8MQ_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x83 + >; + }; + + pinctrl_uart1: uart1grp { + fsl,pins = < + MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x49 + MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX 0x49 + >; + }; + + pinctrl_uart2: uart2grp { + fsl,pins = < + MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49 + MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49 + >; + }; + + pinctrl_uart3: uart3grp { + fsl,pins = < + MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX 0x49 + MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX 0x49 + >; + }; + + pinctrl_uart4: uart4grp { + fsl,pins = < + MX8MQ_IOMUXC_ECSPI2_SCLK_UART4_DCE_RX 0x49 + MX8MQ_IOMUXC_ECSPI2_MOSI_UART4_DCE_TX 0x49 + MX8MQ_IOMUXC_ECSPI2_MISO_UART4_DCE_CTS_B 0x49 + MX8MQ_IOMUXC_ECSPI2_SS0_UART4_DCE_RTS_B 0x49 + >; + }; + + pinctrl_usdhc1: usdhc1grp { + fsl,pins = < + MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x83 + MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc3 + MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xc3 + MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xc3 + MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xc3 + MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xc3 + MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xc3 + MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xc3 + MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xc3 + MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xc3 + MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x83 + MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 + >; + }; + + pinctrl_usdhc1_100mhz: usdhc1grp100mhz { + fsl,pins = < + MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x8d + MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xcd + MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xcd + MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xcd + MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xcd + MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xcd + MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xcd + MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xcd + MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xcd + MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xcd + MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x8d + MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 + >; + }; + + pinctrl_usdhc1_200mhz: usdhc1grp200mhz { + fsl,pins = < + MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x9f + MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xdf + MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xdf + MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xdf + MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xdf + MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xdf + MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xdf + MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xdf + MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xdf + MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xdf + MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x9f + MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 + >; + }; + + pinctrl_usdhc2: usdhc2grp { + fsl,pins = < + MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80 + MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83 + MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3 + MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3 + MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3 + MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3 + MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3 + MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1 + >; + }; + + pinctrl_usdhc2_100mhz: usdhc2grp100mhz { + fsl,pins = < + MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80 + MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d + MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd + MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcd + MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcd + MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcd + MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcd + MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1 + >; + }; + + pinctrl_usdhc2_200mhz: usdhc2grp200mhz { + fsl,pins = < + MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80 + MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f + MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcf + MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcf + MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcf + MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcf + MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcf + MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1 + >; + }; + + pinctrl_wdog: wdoggrp { + fsl,pins = < + /* nWDOG */ + MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0x1f + >; + }; +}; + +&i2c1 { + clock-frequency = <387000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c1>; + status = "okay"; + + typec_pd: usb-pd@3f { + compatible = "ti,tps6598x"; + reg = <0x3f>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_typec>, <&pinctrl_tcpc>; + interrupt-parent = <&gpio1>; + interrupts = <10 IRQ_TYPE_LEVEL_LOW>; + + connector { + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + usb_con_hs: endpoint { + remote-endpoint = <&typec_hs>; + }; + }; + + port@1 { + reg = <1>; + + usb_con_ss: endpoint { + remote-endpoint = <&typec_ss>; + }; + }; + }; + }; + }; + + pmic: pmic@4b { + compatible = "rohm,bd71837"; + reg = <0x4b>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pmic>; + clocks = <&pmic_osc>; + clock-names = "osc"; + clock-output-names = "pmic_clk"; + interrupt-parent = <&gpio1>; + interrupts = <7 GPIO_ACTIVE_LOW>; + interrupt-names = "irq"; + rohm,reset-snvs-powered; + + regulators { + buck1_reg: BUCK1 { + regulator-name = "BUCK1"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1300000>; + regulator-ramp-delay = <1250>; + rohm,dvs-run-voltage = <900000>; + rohm,dvs-idle-voltage = <850000>; + rohm,dvs-suspend-voltage = <800000>; + regulator-always-on; + }; + + buck2_reg: BUCK2 { + regulator-name = "BUCK2"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1300000>; + regulator-ramp-delay = <1250>; + rohm,dvs-run-voltage = <1000000>; + rohm,dvs-idle-voltage = <900000>; + regulator-always-on; + }; + + buck3_reg: BUCK3 { + regulator-name = "BUCK3"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1300000>; + rohm,dvs-run-voltage = <900000>; + regulator-always-on; + }; + + buck4_reg: BUCK4 { + regulator-name = "BUCK4"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1300000>; + rohm,dvs-run-voltage = <1000000>; + }; + + buck5_reg: BUCK5 { + regulator-name = "BUCK5"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + }; + + buck6_reg: BUCK6 { + regulator-name = "BUCK6"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + buck7_reg: BUCK7 { + regulator-name = "BUCK7"; + regulator-min-microvolt = <1605000>; + regulator-max-microvolt = <1995000>; + regulator-always-on; + }; + + buck8_reg: BUCK8 { + regulator-name = "BUCK8"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1400000>; + regulator-always-on; + }; + + ldo1_reg: LDO1 { + regulator-name = "LDO1"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3300000>; + /* leave on for snvs power button */ + regulator-always-on; + }; + + ldo2_reg: LDO2 { + regulator-name = "LDO2"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + /* leave on for snvs power button */ + regulator-always-on; + }; + + ldo3_reg: LDO3 { + regulator-name = "LDO3"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + ldo4_reg: LDO4 { + regulator-name = "LDO4"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; + + ldo5_reg: LDO5 { + /* VDD_PHY_0V9 - MIPI and HDMI domains */ + regulator-name = "LDO5"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + ldo6_reg: LDO6 { + /* VDD_PHY_0V9 - MIPI, HDMI and USB domains */ + regulator-name = "LDO6"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; + + ldo7_reg: LDO7 { + /* VDD_PHY_3V3 - USB domain */ + regulator-name = "LDO7"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + }; + }; + + rtc@68 { + compatible = "microcrystal,rv4162"; + reg = <0x68>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_rtc>; + interrupt-parent = <&gpio1>; + interrupts = <9 IRQ_TYPE_LEVEL_LOW>; + }; +}; + +&i2c2 { + clock-frequency = <387000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c2>; + status = "okay"; + + magnetometer@1e { + compatible = "st,lsm9ds1-magn"; + reg = <0x1e>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_mag>; + interrupt-parent = <&gpio3>; + interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; + vdd-supply = <®_vdd_sen>; + vddio-supply = <®_vdd_1v8>; + }; + + regulator@3e { + compatible = "tps65132"; + reg = <0x3e>; + + outp { + regulator-name = "LCD_AVDD"; + vin-supply = <®_lcd_3v4>; + }; + + outn { + regulator-name = "LCD_AVEE"; + vin-supply = <®_lcd_3v4>; + }; + }; + + proximity: prox@60 { + compatible = "vishay,vcnl4040"; + reg = <0x60>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_prox>; + interrupt-parent = <&gpio3>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; + }; + + accel_gyro: accel-gyro@6a { + compatible = "st,lsm9ds1-imu"; + reg = <0x6a>; + vdd-supply = <®_vdd_sen>; + vddio-supply = <®_vdd_1v8>; + }; +}; + +&i2c3 { + clock-frequency = <387000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c3>; + status = "okay"; + + codec: audio-codec@1a { + compatible = "wlf,wm8962"; + reg = <0x1a>; + clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>; + assigned-clocks = <&clk IMX8MQ_CLK_SAI2>; + assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>; + assigned-clock-rates = <24576000>; + #sound-dai-cells = <0>; + mic-cfg = <0x200>; + DCVDD-supply = <®_aud_1v8>; + DBVDD-supply = <®_aud_1v8>; + AVDD-supply = <®_aud_1v8>; + CPVDD-supply = <®_aud_1v8>; + MICVDD-supply = <®_aud_1v8>; + PLLVDD-supply = <®_aud_1v8>; + SPKVDD1-supply = <®_vsys_3v4>; + SPKVDD2-supply = <®_vsys_3v4>; + gpio-cfg = < + 0x0000 /* n/c */ + 0x0001 /* gpio2, 1: default */ + 0x0013 /* gpio3, 2: dmicclk */ + 0x0000 /* n/c, 3: default */ + 0x8014 /* gpio5, 4: dmic_dat */ + 0x0000 /* gpio6, 5: default */ + >; + }; + + backlight@36 { + compatible = "ti,lm36922"; + reg = <0x36>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_bl>; + #address-cells = <1>; + #size-cells = <0>; + enable-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; + vled-supply = <®_vsys_3v4>; + ti,ovp-microvolt = <25000000>; + + led_backlight: led@0 { + reg = <0>; + label = ":backlight"; + linux,default-trigger = "backlight"; + led-max-microamp = <20000>; + }; + }; + + touchscreen@38 { + compatible = "edt,edt-ft5506"; + reg = <0x38>; + interrupt-parent = <&gpio1>; + interrupts = <27 IRQ_TYPE_EDGE_FALLING>; + touchscreen-size-x = <720>; + touchscreen-size-y = <1440>; + }; +}; + +&i2c4 { + clock-frequency = <387000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c4>; + status = "okay"; + + bat: fuel-gauge@36 { + compatible = "maxim,max17055"; + reg = <0x36>; + interrupt-parent = <&gpio3>; + interrupts = <20 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gauge>; + maxim,over-heat-temp = <700>; + maxim,over-volt = <4500>; + maxim,rsns-microohm = <5000>; + }; + + bq25895: charger@6a { + compatible = "ti,bq25895", "ti,bq25890"; + reg = <0x6a>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_charger_in>; + interrupt-parent = <&gpio3>; + interrupts = <3 IRQ_TYPE_EDGE_FALLING>; + phys = <&usb3_phy0>; + ti,precharge-current = <130000>; /* uA */ + ti,minimum-sys-voltage = <3700000>; /* uV */ + ti,boost-voltage = <5000000>; /* uV */ + ti,boost-max-current = <500000>; /* uA */ + ti,use-vinmin-threshold = <1>; /* enable VINDPM */ + ti,vinmin-threshold = <3900000>; /* uV */ + monitored-battery = <&bat>; + }; +}; + +&pgc_gpu { + power-supply = <&buck3_reg>; +}; + +&pgc_mipi { + power-supply = <&ldo5_reg>; +}; + +&pgc_vpu { + power-supply = <&buck4_reg>; +}; + +&pwm1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_haptic>; + status = "okay"; +}; + +&pwm2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_led_b>; + status = "okay"; +}; + +&pwm3 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_led_g>; + status = "okay"; +}; + +&pwm4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_led_r>; + status = "okay"; +}; + +&sai2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai2>; + assigned-clocks = <&clk IMX8MQ_CLK_SAI2>; + assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>; + assigned-clock-rates = <24576000>; + assigned-clocks = <&clk IMX8MQ_AUDIO_PLL1>, <&clk IMX8MQ_AUDIO_PLL2>; + assigned-clock-rates = <786432000>, <722534400>; + status = "okay"; +}; + +&sai6 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai6>; + assigned-clocks = <&clk IMX8MQ_CLK_SAI6>; + assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>; + assigned-clock-rates = <24576000>; + fsl,sai-synchronous-rx; + status = "okay"; +}; + +&snvs_pwrkey { + status = "okay"; +}; + +&snvs_rtc { + status = "disabled"; +}; + +&uart1 { /* console */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1>; + status = "okay"; +}; + +&uart2 { /* TPS - GPS - DEBUG */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart2>; + status = "okay"; + + gnss { + compatible = "globaltop,pa6h"; + vcc-supply = <®_gnss>; + current-speed = <9600>; + }; +}; + +&uart3 { /* SMC */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart3>; + status = "okay"; +}; + +&uart4 { /* BT */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart4>; + uart-has-rtscts; + status = "okay"; +}; + +&usb3_phy0 { + status = "okay"; +}; + +&usb3_phy1 { + vbus-supply = <®_hub>; + status = "okay"; +}; + +&usb_dwc3_0 { + #address-cells = <1>; + #size-cells = <0>; + dr_mode = "otg"; + snps,dis_u3_susphy_quirk; + status = "okay"; + + port@0 { + reg = <0>; + + typec_hs: endpoint { + remote-endpoint = <&usb_con_hs>; + }; + }; + + port@1 { + reg = <1>; + + typec_ss: endpoint { + remote-endpoint = <&usb_con_ss>; + }; + }; +}; + +&usb_dwc3_1 { + dr_mode = "host"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + /* Microchip USB2642 */ + hub@1 { + compatible = "usb424,2640"; + reg = <1>; + #address-cells = <1>; + #size-cells = <0>; + + mass-storage@1 { + compatible = "usb424,4041"; + reg = <1>; + }; + }; +}; + +&usdhc1 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc1>; + pinctrl-1 = <&pinctrl_usdhc1_100mhz>; + pinctrl-2 = <&pinctrl_usdhc1_200mhz>; + bus-width = <8>; + vmmc-supply = <®_vdd_3v3>; + power-supply = <®_vdd_1v8>; + non-removable; + status = "okay"; +}; + +&usdhc2 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc2>; + pinctrl-1 = <&pinctrl_usdhc2_100mhz>; + pinctrl-2 = <&pinctrl_usdhc2_200mhz>; + bus-width = <4>; + vmmc-supply = <®_wifi_3v3>; + cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; + disable-wp; + cap-sdio-irq; + keep-power-in-suspend; + wakeup-source; + status = "okay"; +}; + +&wdog1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_wdog>; + fsl,ext-reset-output; + status = "okay"; +}; -- 2.20.1 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 X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF985C433E1 for ; Fri, 21 Aug 2020 12:20:23 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7421E207BB for ; Fri, 21 Aug 2020 12:20:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="nNLS4eX9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7421E207BB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=puri.sm Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-Id:Date:Subject:To: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=iTE2a1pYoPrrecVGCuXlzmRk68EYJG6jXv4BnhCeGYE=; b=nNLS4eX94ljHJzfSi8QzxNLnLr riDeiQA6QwuxX87+yJIXSlBg5sTat1cpUYuaol2LxHsv3einnn7d/IT1xOv9Z/xj7my8kN+s9hfm9 86EKV81AQYRJtmOdhEY4JtoxJvXUMyFdvQ5L4BaykzWaBfsvG2ftP5YVbR9CCpmreKU/zg43n+Far 2+mDovXsdntX/ZHyaJkxi3EkACZ9C8a6+n5Go2J3JNQekyJYMzoeBKOtyvYvuivBwiMTWkJnYoszq c5Els0IkFZNMi8TDFgB2HtGIw2CLAbQYHbNCt6HYPbd7ogKipJXzMJvKvMH8KahipQ7+wmA+2i6yj a3j21jtA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k9609-0006yQ-7F; Fri, 21 Aug 2020 12:18:33 +0000 Received: from comms.puri.sm ([159.203.221.185]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1k9603-0006wK-68 for linux-arm-kernel@lists.infradead.org; Fri, 21 Aug 2020 12:18:29 +0000 Received: from localhost (localhost [127.0.0.1]) by comms.puri.sm (Postfix) with ESMTP id 5F4D7DF65D; Fri, 21 Aug 2020 05:18:25 -0700 (PDT) Received: from comms.puri.sm ([127.0.0.1]) by localhost (comms.puri.sm [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ftYvoarcxpqb; Fri, 21 Aug 2020 05:18:22 -0700 (PDT) From: Martin Kepplinger To: robh@kernel.org, kernel@puri.sm, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, mchehab@kernel.org, Anson.Huang@nxp.com, agx@sigxcpu.org, angus@akkea.ca, broonie@kernel.org Subject: [PATCH v6 1/3] arm64: dts: Add a device tree for the Librem 5 phone Date: Fri, 21 Aug 2020 14:17:53 +0200 Message-Id: <20200821121755.24599-1-martin.kepplinger@puri.sm> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200821_081827_448848_35BAEC44 X-CRM114-Status: GOOD ( 17.73 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Daniel Baluta , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Martin Kepplinger MIME-Version: 1.0 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 RnJvbTogIkFuZ3VzIEFpbnNsaWUgKFB1cmlzbSkiIDxhbmd1c0Bha2tlYS5jYT4KCkFkZCBhIGRl dmljZXRyZWUgZGVzY3JpcHRpb24gZm9yIHRoZSBMaWJyZW0gNSBwaG9uZS4gNCBoYXJkd2FyZSBy ZXZpc2lvbnMKaGF2ZSBiZWVuIGF2YWlsYWJsZS4gU29tZSByZXZpc2lvbnMgaW5jbHVkZSBjaGFu Z2VzIHRoYXQgbmVlZCBkaWZmZXJlbnQKc29mdHdhcmUgdG8gYmUgcnVuLiBTbyBmYXIsIHIzICgi RG9nd29vZCIpIGlzIG9uZSBzdWNoIGV4YW1wbGUsIHNlZToKCgkiQXNwZW4iCQlyMAlub3Qgc3Vw cG9ydGVkICh2ZXJ5IGZldyBkZXZpY2VzIGV4aXN0KQoJIkJpcmNoIgkJcjEJc3VwcG9ydGVkIGJ5 IHIyCgkiQ2hlc3RudXQiCXIyCWFkZGVkIGJ5IHRoaXMgcGF0Y2gKCSJEb2d3b29kIglyMwlhZGRl ZCBieSB0aGlzIHBhdGNoCgkiRXZlcmdyZWVuIglyNAl0YmEgLyBtb3N0IGxpa2VseSBzdXBwb3J0 ZWQgYnkgcjMKClNlZSBodHRwczovL3B1cmkuc20vcHJvZHVjdHMvbGlicmVtLTUvIGZvciBtb3Jl IGluZm9ybWF0aW9uLgoKVGhpcyBib290cyB0byBhIHdvcmtpbmcgY29uc29sZSB3aXRoIHdvcmtp bmcgV1dBTiBtb2RlbSwgd2lmaSB1c2RoYywKSU1VIHNlbnNvciBkZXZpY2UsIHByb3hpbWl0eSBz ZW5zb3IsIGhhcHRpYyBtb3RvciwgZ3BpbyBrZXlzLCBHTlNTIGFuZCBMRURzLgoKU2lnbmVkLW9m Zi1ieTogTWFydGluIEtlcHBsaW5nZXIgPG1hcnRpbi5rZXBwbGluZ2VyQHB1cmkuc20+ClNpZ25l ZC1vZmYtYnk6IEFuZ3VzIEFpbnNsaWUgKFB1cmlzbSkgPGFuZ3VzQGFra2VhLmNhPgpTaWduZWQt b2ZmLWJ5OiBHdWlkbyBHw7xudGhlciA8YWd4QHNpZ3hjcHUub3JnPgpSZXZpZXdlZC1ieTogRGFu aWVsIEJhbHV0YSA8ZGFuaWVsLmJhbHV0YUBueHAuY29tPiAoZm9yIHRoZSBhdWRpbyBwYXJ0KQpS ZXZpZXdlZC1ieTogRmFiaW8gRXN0ZXZhbSA8ZmVzdGV2YW1AZ21haWwuY29tPgotLS0KCnJldmlz aW9uIGhpc3RvcnkKLS0tLS0tLS0tLS0tLS0tLQp2NjoKdGhhbmtzIGEgbG90IFJvYiBhbmQgRmFi aW8gZm9yIHJldmlld2luZwogKiBhZGQgcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IiB3aGVyZSBp dCB3YXMgbWlzc2luZwogKiByZW1vdmVkIHRoZSBsbTM1NjAgZmxhc2gvdG9yY2ggZGV2aWNlLiBh ZGQgaXQgd2hlbiB0aGUgZHJpdmVyIGlzIGhvb2tlZCB1cC4KICogZnNsLWxwc3BpIGNzLWdwaW9z IGFjdGl2ZSBsb3cKICogcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQgYW5kIG9uZSBub2RlIG5hbWlu ZyBpbXByb3ZlbWVudAogKiBhZGQgbmVhci1sZXZlbCB0byBwcm94aW1pdHkgZGVzY3JpcHRpb24K ICogYWRkIG1pc3NpbmcgQWNrZWQtYnk6IFJvYiBIZXJyaW5nIHRvIGR0LWJpbmRpbmdzIGNvbW1p dCBtZXNzYWdlCgp2NToKdGhhbmtzIGEgbG90IFBhdmVsIGZvciByZXZpZXdpbmcgYWdhaW4KICog cmVtb3ZlIHB3bWxlZHMgKG5vIHN0YWJsZSBpbnRlcmZhY2UgeWV0KQpodHRwczovL2xvcmUua2Vy bmVsLm9yZy9saW51eC1hcm0ta2VybmVsLzIwMjAwNzMxMDgyNzI1LjIxODc4LTEtbWFydGluLmtl cHBsaW5nZXJAcHVyaS5zbS9ULwoKdjQ6CnRoYW5rcyBhIGxvdCBTaGF3biBmb3IgcmV2aWV3aW5n CiAqIHJlbmFtZSB0byBkdHNpIGFuZCBzcGxpdCBvdXQgcjIgYW5kIHIzIGR0cyB3aXRoIHJldmlz aW9uIHNwZWNpZmljcwogKiBhZGQgdGhlIFVTQjI2NDIgaGFyZC13aXJlZCBIdWIKICogZml4IGNo YXJnZSBjb250cm9sbGVyIGJvb3N0LW1heC1jdXJyZW50CiAqIGRpc2FibGUgcHVsbHVwIG9uIENI UkdfSU5UIChub3QgbmVlZGVkIGR1ZSB0byBleHRlcm5hbCBvbmUpCiAqIGFkZCBkb2N1bWVudGF0 aW9uIGZvciB0aGUgYm9hcmRzJyBjb21wYXRpYmxlIHN0cmluZ3MKICogZml4IGxlZC1iYWNrbGln aHQgcHJvcGVyeSB1c2FnZQogKiBjb2Rpbmcgc3R5bGUgZml4ZXMKaHR0cHM6Ly9sb3JlLmtlcm5l bC5vcmcvbGludXgtZGV2aWNldHJlZS8yMDIwMDcyMTE1MzIyNS43NTkzLTEtbWFydGluLmtlcHBs aW5nZXJAcHVyaS5zbS9ULwoKdjM6CnRoYW5rcyBhIGxvdCBNYXJrIGZvciByZXZpZXdpbmchIGNo YW5nZXMgc2luY2UgdjI6CiAqIG5pY2VyIGF1ZGlvIGNhcmRzIG5hbWVzCiAqIHNxdWFzaCB1bm5l ZWRlZCBhdWRpb19wd3IgcmVndWxhdG9yCiAqIHJlbW92ZSB0aGUgc3VzcGh5X3F1aXJrIGZyb20g ZHdjM18xIGFmdGVyIG1vcmUgdGVzdGluZwogKiBhZGQgdXNkaGMyIGNhcmQgZGV0ZWN0IHZpYSBn cGlvCiAqIGFkZCBoZWFkcGhvbmUgZGV0ZWN0IGZvciBhdWRpbyBjYXJkCmh0dHBzOi8vbG9yZS5r ZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvMjAyMDA2MTcwNzM4MjEuMTY3MzctMS1tYXJ0aW4u a2VwcGxpbmdlckBwdXJpLnNtL1QvCgp2MjoKdGhhbmtzIGEgbG90IE1hcmNvLCBEYW5pZWwgYW5k IFBhdmVsIGZvciByZXZpZXdpbmcuIGNoYW5nZXMgc2luY2UgdjE6CiAqIGFscGhhYmV0aWNhbCBz b3J0aW5ncyAvIG1vcmUgY29uc2lzdGVudCBub2RlIG5hbWVzCiAqIHJlbW92ZSB1bnVzZWQgcmVn dWxhdG9yIGFuZCBwaW5jdHJsIGRlc2NyaXB0aW9ucwogKiBnZW5lcmljIGxhYmVscyBmb3IgbGVk cywgYmFja2xpZ2h0LCBmbGFzaCBhbmQgdG9yY2gKICogYXVkaW8gY2xrIHNldHRpbmdzIG1vdmVk IHRvIHNhaTIgbm9kZQpodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1hcm0ta2VybmVsLzIw MjAwNjA0MDg0NzU2LjU4Ni0xLW1hcnRpbi5rZXBwbGluZ2VyQHB1cmkuc20vVC8KCnYxOgpodHRw czovL2xvcmUua2VybmVsLm9yZy9saW51eC1hcm0ta2VybmVsLzIwMjAwNTE0MTU1NzM3LjEyMTYw LTEtbWFydGluLmtlcHBsaW5nZXJAcHVyaS5zbS8KCgogYXJjaC9hcm02NC9ib290L2R0cy9mcmVl c2NhbGUvTWFrZWZpbGUgICAgICAgIHwgICAgMiArCiAuLi4vYm9vdC9kdHMvZnJlZXNjYWxlL2lt eDhtcS1saWJyZW01LXIyLmR0cyAgfCAgIDI5ICsKIC4uLi9ib290L2R0cy9mcmVlc2NhbGUvaW14 OG1xLWxpYnJlbTUtcjMuZHRzICB8ICAgMjcgKwogLi4uL2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4 bXEtbGlicmVtNS5kdHNpICAgIHwgMTEwNSArKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFu Z2VkLCAxMTYzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0L2Jv b3QvZHRzL2ZyZWVzY2FsZS9pbXg4bXEtbGlicmVtNS1yMi5kdHMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBhcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bXEtbGlicmVtNS1yMy5kdHMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bXEtbGli cmVtNS5kdHNpCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvTWFr ZWZpbGUgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9NYWtlZmlsZQppbmRleCBhMzlm MGExNzIzZTAuLjk3MzM1MjA1YjYwMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9m cmVlc2NhbGUvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvTWFr ZWZpbGUKQEAgLTM1LDYgKzM1LDggQEAgZHRiLSQoQ09ORklHX0FSQ0hfTVhDKSArPSBpbXg4bXAt ZXZrLmR0YgogZHRiLSQoQ09ORklHX0FSQ0hfTVhDKSArPSBpbXg4bXEtZXZrLmR0YgogZHRiLSQo Q09ORklHX0FSQ0hfTVhDKSArPSBpbXg4bXEtaHVtbWluZ2JvYXJkLXB1bHNlLmR0YgogZHRiLSQo Q09ORklHX0FSQ0hfTVhDKSArPSBpbXg4bXEtbGlicmVtNS1kZXZraXQuZHRiCitkdGItJChDT05G SUdfQVJDSF9NWEMpICs9IGlteDhtcS1saWJyZW01LXIyLmR0YgorZHRiLSQoQ09ORklHX0FSQ0hf TVhDKSArPSBpbXg4bXEtbGlicmVtNS1yMy5kdGIKIGR0Yi0kKENPTkZJR19BUkNIX01YQykgKz0g aW14OG1xLW5pdHJvZ2VuLmR0YgogZHRiLSQoQ09ORklHX0FSQ0hfTVhDKSArPSBpbXg4bXEtcGhh bmJlbGwuZHRiCiBkdGItJChDT05GSUdfQVJDSF9NWEMpICs9IGlteDhtcS1waWNvLXBpLmR0Ygpk aWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1xLWxpYnJlbTUt cjIuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1xLWxpYnJlbTUtcjIu ZHRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDc3ZmM1ZGYzZjA2 Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1x LWxpYnJlbTUtcjIuZHRzCkBAIC0wLDAgKzEsMjkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiAoR1BMLTIuMCsgT1IgTUlUKQorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFB1cmlzbSBTUEMg PGtlcm5lbEBwdXJpLnNtPgorLy8KKy8vIExpYnJlbSA1IENoZXN0bnV0CisKKy9kdHMtdjEvOwor CisjaW5jbHVkZSAiaW14OG1xLWxpYnJlbTUuZHRzaSIKKworLyB7CisJbW9kZWwgPSAiUHVyaXNt IExpYnJlbSA1cjIiOworCWNvbXBhdGlibGUgPSAicHVyaXNtLGxpYnJlbTVyMiIsICJwdXJpc20s bGlicmVtNSIsICJmc2wsaW14OG1xIjsKK307CisKKyZicTI1ODk1IHsKKwl0aSxiYXR0ZXJ5LXJl Z3VsYXRpb24tdm9sdGFnZSA9IDw0MTkyMDAwPjsgLyogdVYgKi8KKwl0aSxjaGFyZ2UtY3VycmVu dCA9IDwxNjAwMDAwPjsgLyogdUEgKi8KKwl0aSx0ZXJtaW5hdGlvbi1jdXJyZW50ID0gPDY2MDAw PjsgIC8qIHVBICovCit9OworCismYWNjZWxfZ3lybyB7CisJbW91bnQtbWF0cml4ID0gICIxIiwg ICIwIiwgICIwIiwKKwkJCSIwIiwgIi0xIiwgICIwIiwKKwkJCSIwIiwgICIwIiwgICIxIjsKK307 CisKKyZwcm94aW1pdHkgeworCXByb3hpbWl0eS1uZWFyLWxldmVsID0gPDIyMD47Cit9OwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1xLWxpYnJlbTUtcjMu ZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1xLWxpYnJlbTUtcjMuZHRz Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjcwNGVhMmM3MmEzCi0t LSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1xLWxp YnJlbTUtcjMuZHRzCkBAIC0wLDAgKzEsMjcgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiAoR1BMLTIuMCsgT1IgTUlUKQorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFB1cmlzbSBTUEMgPGtl cm5lbEBwdXJpLnNtPgorCisvZHRzLXYxLzsKKworI2luY2x1ZGUgImlteDhtcS1saWJyZW01LmR0 c2kiCisKKy8geworCW1vZGVsID0gIlB1cmlzbSBMaWJyZW0gNXIzIjsKKwljb21wYXRpYmxlID0g InB1cmlzbSxsaWJyZW01cjMiLCAicHVyaXNtLGxpYnJlbTUiLCAiZnNsLGlteDhtcSI7Cit9Owor CismYWNjZWxfZ3lybyB7CisJbW91bnQtbWF0cml4ID0gICIxIiwgICIwIiwgICIwIiwKKwkJCSIw IiwgICIxIiwgICIwIiwKKwkJCSIwIiwgICIwIiwgIi0xIjsKK307CisKKyZicTI1ODk1IHsKKwl0 aSxiYXR0ZXJ5LXJlZ3VsYXRpb24tdm9sdGFnZSA9IDw0MjAwMDAwPjsgLyogdVYgKi8KKwl0aSxj aGFyZ2UtY3VycmVudCA9IDwxNTAwMDAwPjsgLyogdUEgKi8KKwl0aSx0ZXJtaW5hdGlvbi1jdXJy ZW50ID0gPDE0NDAwMD47ICAvKiB1QSAqLworfTsKKworJnByb3hpbWl0eSB7CisJcHJveGltaXR5 LW5lYXItbGV2ZWwgPSA8MjU+OworfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMv ZnJlZXNjYWxlL2lteDhtcS1saWJyZW01LmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVz Y2FsZS9pbXg4bXEtbGlicmVtNS5kdHNpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uYzNlMjkwNzAzZmU4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm02NC9ib290 L2R0cy9mcmVlc2NhbGUvaW14OG1xLWxpYnJlbTUuZHRzaQpAQCAtMCwwICsxLDExMDUgQEAKKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIENvcHlyaWdodCAyMDE4 LTIwMjAgUHVyaXNtIFNQQworICovCisKKy9kdHMtdjEvOworCisjaW5jbHVkZSAiZHQtYmluZGlu Z3MvaW5wdXQvaW5wdXQuaCIKKyNpbmNsdWRlICJkdC1iaW5kaW5ncy9wd20vcHdtLmgiCisjaW5j bHVkZSAiZHQtYmluZGluZ3MvdXNiL3BkLmgiCisjaW5jbHVkZSAiaW14OG1xLmR0c2kiCisKKy8g eworCW1vZGVsID0gIlB1cmlzbSBMaWJyZW0gNSI7CisJY29tcGF0aWJsZSA9ICJwdXJpc20sbGli cmVtNSIsICJmc2wsaW14OG1xIjsKKworCWJhY2tsaWdodF9kc2k6IGJhY2tsaWdodC1kc2kgewor CQljb21wYXRpYmxlID0gImxlZC1iYWNrbGlnaHQiOworCQlsZWRzID0gPCZsZWRfYmFja2xpZ2h0 PjsKKwl9OworCisJcG1pY19vc2M6IGNsb2NrLXBtaWMgeworCQljb21wYXRpYmxlID0gImZpeGVk LWNsb2NrIjsKKwkJI2Nsb2NrLWNlbGxzID0gPDA+OworCQljbG9jay1mcmVxdWVuY3kgPSA8MzI3 Njg+OworCQljbG9jay1vdXRwdXQtbmFtZXMgPSAicG1pY19vc2MiOworCX07CisKKwljaG9zZW4g eworCQlzdGRvdXQtcGF0aCA9ICZ1YXJ0MTsKKwl9OworCisJZ3Bpby1rZXlzIHsKKwkJY29tcGF0 aWJsZSA9ICJncGlvLWtleXMiOworCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCQlwaW5j dHJsLTAgPSA8JnBpbmN0cmxfa2V5cz47CisKKwkJdm9sLWRvd24geworCQkJbGFiZWwgPSAiVk9M X0RPV04iOworCQkJZ3Bpb3MgPSA8JmdwaW8xIDE3IEdQSU9fQUNUSVZFX0xPVz47CisJCQlsaW51 eCxjb2RlID0gPEtFWV9WT0xVTUVET1dOPjsKKwkJfTsKKworCQl2b2wtdXAgeworCQkJbGFiZWwg PSAiVk9MX1VQIjsKKwkJCWdwaW9zID0gPCZncGlvMSAxNiBHUElPX0FDVElWRV9MT1c+OworCQkJ bGludXgsY29kZSA9IDxLRVlfVk9MVU1FVVA+OworCQl9OworCX07CisKKwlyZWdfYXVkXzF2ODog cmVndWxhdG9yLWF1ZGlvLTF2OCB7CisJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsK KwkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwkJcGluY3RybC0wID0gPCZwaW5jdHJsX2F1 ZGlvcHdyPjsKKwkJcmVndWxhdG9yLW5hbWUgPSAiQVVESU9fUFdSX0VOIjsKKwkJcmVndWxhdG9y LW1pbi1taWNyb3ZvbHQgPSA8MTgwMDAwMD47CisJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0g PDE4MDAwMDA+OworCQlncGlvID0gPCZncGlvMSA0IEdQSU9fQUNUSVZFX0hJR0g+OworCQllbmFi bGUtYWN0aXZlLWhpZ2g7CisJfTsKKworCXJlZ19nbnNzOiByZWd1bGF0b3ItZ25zcyB7CisJCWNv bXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsKKwkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0 IjsKKwkJcGluY3RybC0wID0gPCZwaW5jdHJsX2duc3Nwd3I+OworCQlyZWd1bGF0b3ItbmFtZSA9 ICJHTlNTIjsKKwkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisJCXJlZ3Vs YXRvci1tYXgtbWljcm92b2x0ID0gPDMzMDAwMDA+OworCQlncGlvID0gPCZncGlvMyAxMiBHUElP X0FDVElWRV9ISUdIPjsKKwkJZW5hYmxlLWFjdGl2ZS1oaWdoOworCX07CisKKwlyZWdfaHViOiBy ZWd1bGF0b3ItaHViIHsKKwkJY29tcGF0aWJsZSA9ICJyZWd1bGF0b3ItZml4ZWQiOworCQlwaW5j dHJsLW5hbWVzID0gImRlZmF1bHQiOworCQlwaW5jdHJsLTAgPSA8JnBpbmN0cmxfaHViX3B3cj47 CisJCXJlZ3VsYXRvci1uYW1lID0gIkhVQiI7CisJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0g PDMzMDAwMDA+OworCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKwkJZ3Bp byA9IDwmZ3BpbzEgMTQgR1BJT19BQ1RJVkVfSElHSD47CisJCWVuYWJsZS1hY3RpdmUtaGlnaDsK Kwl9OworCisJcmVnX2xjZF8zdjQ6IHJlZ3VsYXRvci1sY2QtM3Y0IHsKKwkJY29tcGF0aWJsZSA9 ICJyZWd1bGF0b3ItZml4ZWQiOworCQlyZWd1bGF0b3ItbmFtZSA9ICJMQ0RfM1Y0IjsKKwkJcGlu Y3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwkJcGluY3RybC0wID0gPCZwaW5jdHJsX2RzaWJpYXNl bj47CisJCXZpbi1zdXBwbHkgPSA8JnJlZ192c3lzXzN2ND47CisJCWdwaW8gPSA8JmdwaW8xIDIw IEdQSU9fQUNUSVZFX0hJR0g+OworCQllbmFibGUtYWN0aXZlLWhpZ2g7CisJfTsKKworCXJlZ192 ZGRfc2VuOiByZWd1bGF0b3ItdmRkLXNlbiB7CisJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZp eGVkIjsKKwkJcmVndWxhdG9yLW5hbWUgPSAiVkREX1NFTiI7CisJCXJlZ3VsYXRvci1taW4tbWlj cm92b2x0ID0gPDMzMDAwMDA+OworCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAwMDAw PjsKKwl9OworCisJcmVnX3ZkZF8zdjM6IHJlZ3VsYXRvci12ZGQtM3YzIHsKKwkJY29tcGF0aWJs ZSA9ICJyZWd1bGF0b3ItZml4ZWQiOworCQlyZWd1bGF0b3ItbmFtZSA9ICJWRERfM1YzIjsKKwkJ cmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisJCXJlZ3VsYXRvci1tYXgtbWlj cm92b2x0ID0gPDMzMDAwMDA+OworCX07CisKKwlyZWdfdmRkXzF2ODogcmVndWxhdG9yLXZkZC0x djggeworCQljb21wYXRpYmxlID0gInJlZ3VsYXRvci1maXhlZCI7CisJCXJlZ3VsYXRvci1uYW1l ID0gIlZDQ18xVjgiOworCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKKwkJ cmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTgwMDAwMD47CisJfTsKKworCXJlZ192c3lzXzN2 NDogcmVndWxhdG9yLXZzeXMtM3Y0IHsKKwkJY29tcGF0aWJsZSA9ICJyZWd1bGF0b3ItZml4ZWQi OworCQlyZWd1bGF0b3ItbmFtZSA9ICJWU1lTXzNWNCI7CisJCXJlZ3VsYXRvci1taW4tbWljcm92 b2x0ID0gPDM0MDAwMDA+OworCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzNDAwMDAwPjsK KwkJcmVndWxhdG9yLWFsd2F5cy1vbjsKKwl9OworCisJcmVnX3dpZmlfM3YzOiByZWd1bGF0b3It d2lmaS0zdjMgeworCQljb21wYXRpYmxlID0gInJlZ3VsYXRvci1maXhlZCI7CisJCXJlZ3VsYXRv ci1uYW1lID0gIjNWM19XSUZJIjsKKwkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MzMwMDAw MD47CisJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDMzMDAwMDA+OworCX07CisKKwlzb3Vu ZCB7CisJCWNvbXBhdGlibGUgPSAic2ltcGxlLWF1ZGlvLWNhcmQiOworCQlwaW5jdHJsLW5hbWVz ID0gImRlZmF1bHQiOworCQlwaW5jdHJsLTAgPSA8JnBpbmN0cmxfaHA+OworCQlzaW1wbGUtYXVk aW8tY2FyZCxuYW1lID0gIkxpYnJlbSA1IjsKKwkJc2ltcGxlLWF1ZGlvLWNhcmQsZm9ybWF0ID0g ImkycyI7CisJCXNpbXBsZS1hdWRpby1jYXJkLHdpZGdldHMgPQorCQkJIkhlYWRwaG9uZSIsICJI ZWFkcGhvbmVzIiwKKwkJCSJNaWNyb3Bob25lIiwgIkhlYWRzZXQgTWljIiwKKwkJCSJNaWNyb3Bo b25lIiwgIkRpZ2l0YWwgTWljIiwKKwkJCSJTcGVha2VyIiwgIlNwZWFrZXIiOworCQlzaW1wbGUt YXVkaW8tY2FyZCxyb3V0aW5nID0KKwkJCSJIZWFkcGhvbmVzIiwgIkhQT1VUTCIsCisJCQkiSGVh ZHBob25lcyIsICJIUE9VVFIiLAorCQkJIlNwZWFrZXIiLCAiU1BLT1VUTCIsCisJCQkiU3BlYWtl ciIsICJTUEtPVVRSIiwKKwkJCSJIZWFkc2V0IE1pYyIsICJNSUNCSUFTIiwKKwkJCSJJTjNSIiwg IkhlYWRzZXQgTWljIiwKKwkJCSJETUlDREFUIiwgIkRpZ2l0YWwgTWljIjsKKwkJc2ltcGxlLWF1 ZGlvLWNhcmQsaHAtZGV0LWdwaW8gPSA8JmdwaW8zIDkgR1BJT19BQ1RJVkVfSElHSD47CisKKwkJ c2ltcGxlLWF1ZGlvLWNhcmQsY3B1IHsKKwkJCXNvdW5kLWRhaSA9IDwmc2FpMj47CisJCX07CisK KwkJc2ltcGxlLWF1ZGlvLWNhcmQsY29kZWMgeworCQkJc291bmQtZGFpID0gPCZjb2RlYz47CisJ CQljbG9ja3MgPSA8JmNsayBJTVg4TVFfQ0xLX1NBSTJfUk9PVD47CisJCQlmcmFtZS1tYXN0ZXI7 CisJCQliaXRjbG9jay1tYXN0ZXI7CisJCX07CisJfTsKKworCXNvdW5kLXd3YW4geworCQljb21w YXRpYmxlID0gInNpbXBsZS1hdWRpby1jYXJkIjsKKwkJc2ltcGxlLWF1ZGlvLWNhcmQsbmFtZSA9 ICJNb2RlbSI7CisJCXNpbXBsZS1hdWRpby1jYXJkLGZvcm1hdCA9ICJpMnMiOworCisJCXNpbXBs ZS1hdWRpby1jYXJkLGNwdSB7CisJCQlzb3VuZC1kYWkgPSA8JnNhaTY+OworCQkJZnJhbWUtaW52 ZXJzaW9uOworCQl9OworCisJCXNpbXBsZS1hdWRpby1jYXJkLGNvZGVjIHsKKwkJCXNvdW5kLWRh aSA9IDwmYm04MThfY29kZWM+OworCQkJZnJhbWUtbWFzdGVyOworCQkJYml0Y2xvY2stbWFzdGVy OworCQl9OworCX07CisKKwlibTgxOF9jb2RlYzogc291bmQtd3dhbi1jb2RlYyB7CisJCWNvbXBh dGlibGUgPSAiYnJvYWRtb2JpLGJtODE4IiwgIm9wdGlvbixndG02MDEiOworCQkjc291bmQtZGFp LWNlbGxzID0gPDA+OworCX07CisKKwl2aWJyYXRvciB7CisJCWNvbXBhdGlibGUgPSAicHdtLXZp YnJhdG9yIjsKKwkJcHdtcyA9IDwmcHdtMSAwIDEwMDAwMDAwMDAgMD47CisJCXB3bS1uYW1lcyA9 ICJlbmFibGUiOworCQl2Y2Mtc3VwcGx5ID0gPCZyZWdfdmRkXzN2Mz47CisJfTsKK307CisKKyZB NTNfMCB7CisJY3B1LXN1cHBseSA9IDwmYnVjazJfcmVnPjsKK307CisKKyZBNTNfMSB7CisJY3B1 LXN1cHBseSA9IDwmYnVjazJfcmVnPjsKK307CisKKyZBNTNfMiB7CisJY3B1LXN1cHBseSA9IDwm YnVjazJfcmVnPjsKK307CisKKyZBNTNfMyB7CisJY3B1LXN1cHBseSA9IDwmYnVjazJfcmVnPjsK K307CisKKyZkZHJjIHsKKwlvcGVyYXRpbmctcG9pbnRzLXYyID0gPCZkZHJjX29wcF90YWJsZT47 CisKKwlkZHJjX29wcF90YWJsZTogZGRyYy1vcHAtdGFibGUgeworCQljb21wYXRpYmxlID0gIm9w ZXJhdGluZy1wb2ludHMtdjIiOworCisJCW9wcC0yNU0geworCQkJb3BwLWh6ID0gL2JpdHMvIDY0 IDwyNTAwMDAwMD47CisJCX07CisKKwkJb3BwLTEwME0geworCQkJb3BwLWh6ID0gL2JpdHMvIDY0 IDwxMDAwMDAwMDA+OworCQl9OworCisJCW9wcC04MDBNIHsKKwkJCW9wcC1oeiA9IC9iaXRzLyA2 NCA8ODAwMDAwMDAwPjsKKwkJfTsKKwl9OworfTsKKworJmRwaHkgeworCXN0YXR1cyA9ICJva2F5 IjsKK307CisKKyZlY3NwaTEgeworCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJcGluY3Ry bC0wID0gPCZwaW5jdHJsX2Vjc3BpMT47CisJY3MtZ3Bpb3MgPSA8JmdwaW81IDkgR1BJT19BQ1RJ VkVfTE9XPjsKKwkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkjc2l6ZS1jZWxscyA9IDwwPjsKKwlz dGF0dXMgPSAib2theSI7CisKKwlub3JfZmxhc2g6IGZsYXNoQDAgeworCQljb21wYXRpYmxlID0g ImplZGVjLHNwaS1ub3IiOworCQlyZWcgPSA8MD47CisJCXNwaS1tYXgtZnJlcXVlbmN5ID0gPDEw MDAwMDA+OworCX07Cit9OworCismZ3BpbzEgeworCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7 CisJcGluY3RybC0wID0gPCZwaW5jdHJsX3BtaWNfNXY+OworCisJcG1pYy01diB7CisJCWdwaW8t aG9nOworCQlncGlvID0gPCZncGlvMSAxIEdQSU9fQUNUSVZFX0hJR0g+OworCQlpbnB1dDsKKwl9 OworfTsKKworJmlvbXV4YyB7CisJcGluY3RybF9hdWRpb3B3cjogYXVkaW9wd3JncnAgeworCQlm c2wscGlucyA9IDwKKwkJCS8qIEFVRElPX1BPV0VSX0VOXzNWMyAqLworCQkJTVg4TVFfSU9NVVhD X0dQSU8xX0lPMDRfR1BJTzFfSU80CTB4ODMKKwkJPjsKKwl9OworCisJcGluY3RybF9ibDogYmxn cnAgeworCQlmc2wscGlucyA9IDwKKwkJCS8qIEJBQ0tMSU5HRV9FTiAqLworCQkJTVg4TVFfSU9N VVhDX05BTkRfRFFTX0dQSU8zX0lPMTQJMHg4MworCQk+OworCX07CisKKwlwaW5jdHJsX2NoYXJn ZXJfaW46IGNoYXJnZXJpbmdycCB7CisJCWZzbCxwaW5zID0gPAorCQkJLyogQ0hSR19JTlQgKi8K KwkJCU1YOE1RX0lPTVVYQ19OQU5EX0NFMl9CX0dQSU8zX0lPMwkweDAwCisJCQkvKiBDSEdfU1RB VFVTX0IgKi8KKwkJCU1YOE1RX0lPTVVYQ19OQU5EX0FMRV9HUElPM19JTzAJCTB4ODAKKwkJPjsK Kwl9OworCisJcGluY3RybF9kc2liaWFzZW46IGRzaWJpYXNlbmdycCB7CisJCWZzbCxwaW5zID0g PAorCQkJLyogRFNJX0JJQVNfRU4gKi8KKwkJCU1YOE1RX0lPTVVYQ19FTkVUX1REMV9HUElPMV9J TzIwCTB4ODMKKwkJPjsKKwl9OworCisJcGluY3RybF9kc2llbjogZHNpZW5ncnAgeworCQlmc2ws cGlucyA9IDwKKwkJCS8qIERTSV9FTl8zVjMgKi8KKwkJCU1YOE1RX0lPTVVYQ19HUElPMV9JTzA1 X0dQSU8xX0lPNQkweDgzCisJCT47CisJfTsKKworCXBpbmN0cmxfZWNzcGkxOiBlY3NwaWdycCB7 CisJCWZzbCxwaW5zID0gPAorCQkJTVg4TVFfSU9NVVhDX0VDU1BJMV9NT1NJX0VDU1BJMV9NT1NJ CTB4ODMKKwkJCU1YOE1RX0lPTVVYQ19FQ1NQSTFfTUlTT19FQ1NQSTFfTUlTTwkweDgzCisJCQlN WDhNUV9JT01VWENfRUNTUEkxX1NTMF9HUElPNV9JTzkJMHgxOQorCQkJTVg4TVFfSU9NVVhDX0VD U1BJMV9TQ0xLX0VDU1BJMV9TQ0xLCTB4ODMKKwkJPjsKKwl9OworCisJcGluY3RybF9nYXVnZTog Z2F1Z2VncnAgeworCQlmc2wscGlucyA9IDwKKwkJCS8qIEJBVF9MT1cgKi8KKwkJCU1YOE1RX0lP TVVYQ19TQUk1X1JYQ19HUElPM19JTzIwCTB4ODAKKwkJPjsKKwl9OworCisJcGluY3RybF9nbnNz cHdyOiBnbnNzcHdyZ3JwIHsKKwkJZnNsLHBpbnMgPSA8CisJCQkvKiBHUFMzVjNfRU4gKi8KKwkJ CU1YOE1RX0lPTVVYQ19OQU5EX0RBVEEwNl9HUElPM19JTzEyCTB4ODMKKwkJPjsKKwl9OworCisJ cGluY3RybF9oYXB0aWM6IGhhcHRpY2dycCB7CisJCWZzbCxwaW5zID0gPAorCQkJLyogTU9UTyAq LworCQkJTVg4TVFfSU9NVVhDX1NQRElGX0VYVF9DTEtfUFdNMV9PVVQJMHg4MworCQk+OworCX07 CisKKwlwaW5jdHJsX2hwOiBocGdycCB7CisJCWZzbCxwaW5zID0gPAorCQkJLyogSEVBRFBIT05F X0RFVF8xVjggKi8KKwkJCU1YOE1RX0lPTVVYQ19OQU5EX0RBVEEwM19HUElPM19JTzkJMHgxODAK KwkJPjsKKwl9OworCisJcGluY3RybF9odWJfcHdyOiBodWJwd3JncnAgeworCQlmc2wscGlucyA9 IDwKKwkJCS8qIEhVQl9QV1JfM1YzX0VOICovCisJCQlNWDhNUV9JT01VWENfR1BJTzFfSU8xNF9H UElPMV9JTzE0CTB4ODMKKwkJPjsKKwl9OworCisJcGluY3RybF9pMmMxOiBpMmMxZ3JwIHsKKwkJ ZnNsLHBpbnMgPSA8CisJCQlNWDhNUV9JT01VWENfSTJDMV9TQ0xfSTJDMV9TQ0wJCTB4NDAwMDAw MjYKKwkJCU1YOE1RX0lPTVVYQ19JMkMxX1NEQV9JMkMxX1NEQQkJMHg0MDAwMDAyNgorCQk+Owor CX07CisKKwlwaW5jdHJsX2kyYzI6IGkyYzJncnAgeworCQlmc2wscGlucyA9IDwKKwkJCU1YOE1R X0lPTVVYQ19JMkMyX1NDTF9JMkMyX1NDTAkJMHg0MDAwMDAyNgorCQkJTVg4TVFfSU9NVVhDX0ky QzJfU0RBX0kyQzJfU0RBCQkweDQwMDAwMDI2CisJCT47CisJfTsKKworCXBpbmN0cmxfaTJjMzog aTJjM2dycCB7CisJCWZzbCxwaW5zID0gPAorCQkJTVg4TVFfSU9NVVhDX0kyQzNfU0NMX0kyQzNf U0NMCQkweDQwMDAwMDI2CisJCQlNWDhNUV9JT01VWENfSTJDM19TREFfSTJDM19TREEJCTB4NDAw MDAwMjYKKwkJPjsKKwl9OworCisJcGluY3RybF9pMmM0OiBpMmM0Z3JwIHsKKwkJZnNsLHBpbnMg PSA8CisJCQlNWDhNUV9JT01VWENfSTJDNF9TQ0xfSTJDNF9TQ0wJCTB4NDAwMDAwMjYKKwkJCU1Y OE1RX0lPTVVYQ19JMkM0X1NEQV9JMkM0X1NEQQkJMHg0MDAwMDAyNgorCQk+OworCX07CisKKwlw aW5jdHJsX2tleXM6IGtleXNncnAgeworCQlmc2wscGlucyA9IDwKKwkJCS8qIFZPTC0gKi8KKwkJ CU1YOE1RX0lPTVVYQ19FTkVUX01ESU9fR1BJTzFfSU8xNwkweDAxQzAKKwkJCS8qIFZPTCsgKi8K KwkJCU1YOE1RX0lPTVVYQ19FTkVUX01EQ19HUElPMV9JTzE2CTB4MDFDMAorCQk+OworCX07CisK KwlwaW5jdHJsX2xlZF9iOiBsZWRiZ3JwIHsKKwkJZnNsLHBpbnMgPSA8CisJCQkvKiBMRURfQiAq LworCQkJTVg4TVFfSU9NVVhDX0dQSU8xX0lPMTNfUFdNMl9PVVQJMHgwNgorCQk+OworCX07CisK KwlwaW5jdHJsX2xlZF9nOiBsZWRnZ3JwIHsKKwkJZnNsLHBpbnMgPSA8CisJCQkvKiBMRURfRyAq LworCQkJTVg4TVFfSU9NVVhDX1NBSTNfTUNMS19QV000X09VVAkJMHgwNgorCQk+OworCX07CisK KwlwaW5jdHJsX2xlZF9yOiBsZWRyZ3JwIHsKKwkJZnNsLHBpbnMgPSA8CisJCQkvKiBMRURfUiAq LworCQkJTVg4TVFfSU9NVVhDX1NQRElGX1RYX1BXTTNfT1VUCQkweDA2CisJCT47CisJfTsKKwor CXBpbmN0cmxfbWFnOiBtYWdncnAgeworCQlmc2wscGlucyA9IDwKKwkJCS8qIElOVF9NQUcgKi8K KwkJCU1YOE1RX0lPTVVYQ19TQUk1X1JYRDFfR1BJTzNfSU8yMgkweDgwCisJCT47CisJfTsKKwor CXBpbmN0cmxfcG1pYzogcG1pY2dycCB7CisJCWZzbCxwaW5zID0gPAorCQkJLyogUE1JQ19OSU5U ICovCisJCQlNWDhNUV9JT01VWENfR1BJTzFfSU8wN19HUElPMV9JTzcJMHg4MAorCQk+OworCX07 CisKKwlwaW5jdHJsX3BtaWNfNXY6IHBtaWM1dmdycCB7CisJCWZzbCxwaW5zID0gPAorCQkJLyog UE1JQ181ViAqLworCQkJTVg4TVFfSU9NVVhDX0dQSU8xX0lPMDFfR1BJTzFfSU8xCTB4ODAKKwkJ PjsKKwl9OworCisJcGluY3RybF9wcm94OiBwcm94Z3JwIHsKKwkJZnNsLHBpbnMgPSA8CisJCQkv KiBJTlRfTElHSFQgKi8KKwkJCU1YOE1RX0lPTVVYQ19OQU5EX0RBVEEwMV9HUElPM19JTzcJMHg4 MAorCQk+OworCX07CisKKwlwaW5jdHJsX3J0YzogcnRjZ3JwIHsKKwkJZnNsLHBpbnMgPSA8CisJ CQkvKiBSVENfSU5UICovCisJCQlNWDhNUV9JT01VWENfR1BJTzFfSU8wOV9HUElPMV9JTzkJMHg4 MAorCQk+OworCX07CisKKwlwaW5jdHJsX3NhaTI6IHNhaTJncnAgeworCQlmc2wscGlucyA9IDwK KwkJCU1YOE1RX0lPTVVYQ19TQUkyX1RYRDBfU0FJMl9UWF9EQVRBMAkweGQ2CisJCQlNWDhNUV9J T01VWENfU0FJMl9UWEZTX1NBSTJfVFhfU1lOQwkweGQ2CisJCQlNWDhNUV9JT01VWENfU0FJMl9N Q0xLX1NBSTJfTUNMSwkweGQ2CisJCQlNWDhNUV9JT01VWENfU0FJMl9SWEQwX1NBSTJfUlhfREFU QTAJMHhkNgorCQkJTVg4TVFfSU9NVVhDX1NBSTJfVFhDX1NBSTJfVFhfQkNMSwkweGQ2CisJCT47 CisJfTsKKworCXBpbmN0cmxfc2FpNjogc2FpNmdycCB7CisJCWZzbCxwaW5zID0gPAorCQkJTVg4 TVFfSU9NVVhDX1NBSTFfUlhENV9TQUk2X1JYX0RBVEEwCTB4ZDYKKwkJCU1YOE1RX0lPTVVYQ19T QUkxX1JYRDZfU0FJNl9SWF9TWU5DCTB4ZDYKKwkJCU1YOE1RX0lPTVVYQ19TQUkxX1RYRDRfU0FJ Nl9SWF9CQ0xLCTB4ZDYKKwkJCU1YOE1RX0lPTVVYQ19TQUkxX1RYRDVfU0FJNl9UWF9EQVRBMAkw eGQ2CisJCT47CisJfTsKKworCXBpbmN0cmxfdGNwYzogdGNwY2dycCB7CisJCWZzbCxwaW5zID0g PAorCQkJLyogVENQQ19JTlQgKi8KKwkJCU1YOE1RX0lPTVVYQ19HUElPMV9JTzEwX0dQSU8xX0lP MTAJMHgwMUMwCisJCT47CisJfTsKKworCXBpbmN0cmxfdHlwZWM6IHR5cGVjZ3JwIHsKKwkJZnNs LHBpbnMgPSA8CisJCQkvKiBUWVBFQ19NVVhfRU4gKi8KKwkJCU1YOE1RX0lPTVVYQ19HUElPMV9J TzExX0dQSU8xX0lPMTEJMHg4MworCQk+OworCX07CisKKwlwaW5jdHJsX3VhcnQxOiB1YXJ0MWdy cCB7CisJCWZzbCxwaW5zID0gPAorCQkJTVg4TVFfSU9NVVhDX1VBUlQxX1JYRF9VQVJUMV9EQ0Vf UlgJMHg0OQorCQkJTVg4TVFfSU9NVVhDX1VBUlQxX1RYRF9VQVJUMV9EQ0VfVFgJMHg0OQorCQk+ OworCX07CisKKwlwaW5jdHJsX3VhcnQyOiB1YXJ0MmdycCB7CisJCWZzbCxwaW5zID0gPAorCQkJ TVg4TVFfSU9NVVhDX1VBUlQyX1RYRF9VQVJUMl9EQ0VfVFgJMHg0OQorCQkJTVg4TVFfSU9NVVhD X1VBUlQyX1JYRF9VQVJUMl9EQ0VfUlgJMHg0OQorCQk+OworCX07CisKKwlwaW5jdHJsX3VhcnQz OiB1YXJ0M2dycCB7CisJCWZzbCxwaW5zID0gPAorCQkJTVg4TVFfSU9NVVhDX1VBUlQzX1JYRF9V QVJUM19EQ0VfUlgJMHg0OQorCQkJTVg4TVFfSU9NVVhDX1VBUlQzX1RYRF9VQVJUM19EQ0VfVFgJ MHg0OQorCQk+OworCX07CisKKwlwaW5jdHJsX3VhcnQ0OiB1YXJ0NGdycCB7CisJCWZzbCxwaW5z ID0gPAorCQkJTVg4TVFfSU9NVVhDX0VDU1BJMl9TQ0xLX1VBUlQ0X0RDRV9SWAkJMHg0OQorCQkJ TVg4TVFfSU9NVVhDX0VDU1BJMl9NT1NJX1VBUlQ0X0RDRV9UWAkJMHg0OQorCQkJTVg4TVFfSU9N VVhDX0VDU1BJMl9NSVNPX1VBUlQ0X0RDRV9DVFNfQgkweDQ5CisJCQlNWDhNUV9JT01VWENfRUNT UEkyX1NTMF9VQVJUNF9EQ0VfUlRTX0IJCTB4NDkKKwkJPjsKKwl9OworCisJcGluY3RybF91c2Ro YzE6IHVzZGhjMWdycCB7CisJCWZzbCxwaW5zID0gPAorCQkJTVg4TVFfSU9NVVhDX1NEMV9DTEtf VVNESEMxX0NMSwkJCTB4ODMKKwkJCU1YOE1RX0lPTVVYQ19TRDFfQ01EX1VTREhDMV9DTUQJCQkw eGMzCisJCQlNWDhNUV9JT01VWENfU0QxX0RBVEEwX1VTREhDMV9EQVRBMAkJMHhjMworCQkJTVg4 TVFfSU9NVVhDX1NEMV9EQVRBMV9VU0RIQzFfREFUQTEJCTB4YzMKKwkJCU1YOE1RX0lPTVVYQ19T RDFfREFUQTJfVVNESEMxX0RBVEEyCQkweGMzCisJCQlNWDhNUV9JT01VWENfU0QxX0RBVEEzX1VT REhDMV9EQVRBMwkJMHhjMworCQkJTVg4TVFfSU9NVVhDX1NEMV9EQVRBNF9VU0RIQzFfREFUQTQJ CTB4YzMKKwkJCU1YOE1RX0lPTVVYQ19TRDFfREFUQTVfVVNESEMxX0RBVEE1CQkweGMzCisJCQlN WDhNUV9JT01VWENfU0QxX0RBVEE2X1VTREhDMV9EQVRBNgkJMHhjMworCQkJTVg4TVFfSU9NVVhD X1NEMV9EQVRBN19VU0RIQzFfREFUQTcJCTB4YzMKKwkJCU1YOE1RX0lPTVVYQ19TRDFfU1RST0JF X1VTREhDMV9TVFJPQkUJCTB4ODMKKwkJCU1YOE1RX0lPTVVYQ19TRDFfUkVTRVRfQl9VU0RIQzFf UkVTRVRfQgkJMHhjMQorCQk+OworCX07CisKKwlwaW5jdHJsX3VzZGhjMV8xMDBtaHo6IHVzZGhj MWdycDEwMG1oeiB7CisJCWZzbCxwaW5zID0gPAorCQkJTVg4TVFfSU9NVVhDX1NEMV9DTEtfVVNE SEMxX0NMSwkJCTB4OGQKKwkJCU1YOE1RX0lPTVVYQ19TRDFfQ01EX1VTREhDMV9DTUQJCQkweGNk CisJCQlNWDhNUV9JT01VWENfU0QxX0RBVEEwX1VTREhDMV9EQVRBMAkJMHhjZAorCQkJTVg4TVFf SU9NVVhDX1NEMV9EQVRBMV9VU0RIQzFfREFUQTEJCTB4Y2QKKwkJCU1YOE1RX0lPTVVYQ19TRDFf REFUQTJfVVNESEMxX0RBVEEyCQkweGNkCisJCQlNWDhNUV9JT01VWENfU0QxX0RBVEEzX1VTREhD MV9EQVRBMwkJMHhjZAorCQkJTVg4TVFfSU9NVVhDX1NEMV9EQVRBNF9VU0RIQzFfREFUQTQJCTB4 Y2QKKwkJCU1YOE1RX0lPTVVYQ19TRDFfREFUQTVfVVNESEMxX0RBVEE1CQkweGNkCisJCQlNWDhN UV9JT01VWENfU0QxX0RBVEE2X1VTREhDMV9EQVRBNgkJMHhjZAorCQkJTVg4TVFfSU9NVVhDX1NE MV9EQVRBN19VU0RIQzFfREFUQTcJCTB4Y2QKKwkJCU1YOE1RX0lPTVVYQ19TRDFfU1RST0JFX1VT REhDMV9TVFJPQkUJCTB4OGQKKwkJCU1YOE1RX0lPTVVYQ19TRDFfUkVTRVRfQl9VU0RIQzFfUkVT RVRfQgkJMHhjMQorCQk+OworCX07CisKKwlwaW5jdHJsX3VzZGhjMV8yMDBtaHo6IHVzZGhjMWdy cDIwMG1oeiB7CisJCWZzbCxwaW5zID0gPAorCQkJTVg4TVFfSU9NVVhDX1NEMV9DTEtfVVNESEMx X0NMSwkJCTB4OWYKKwkJCU1YOE1RX0lPTVVYQ19TRDFfQ01EX1VTREhDMV9DTUQJCQkweGRmCisJ CQlNWDhNUV9JT01VWENfU0QxX0RBVEEwX1VTREhDMV9EQVRBMAkJMHhkZgorCQkJTVg4TVFfSU9N VVhDX1NEMV9EQVRBMV9VU0RIQzFfREFUQTEJCTB4ZGYKKwkJCU1YOE1RX0lPTVVYQ19TRDFfREFU QTJfVVNESEMxX0RBVEEyCQkweGRmCisJCQlNWDhNUV9JT01VWENfU0QxX0RBVEEzX1VTREhDMV9E QVRBMwkJMHhkZgorCQkJTVg4TVFfSU9NVVhDX1NEMV9EQVRBNF9VU0RIQzFfREFUQTQJCTB4ZGYK KwkJCU1YOE1RX0lPTVVYQ19TRDFfREFUQTVfVVNESEMxX0RBVEE1CQkweGRmCisJCQlNWDhNUV9J T01VWENfU0QxX0RBVEE2X1VTREhDMV9EQVRBNgkJMHhkZgorCQkJTVg4TVFfSU9NVVhDX1NEMV9E QVRBN19VU0RIQzFfREFUQTcJCTB4ZGYKKwkJCU1YOE1RX0lPTVVYQ19TRDFfU1RST0JFX1VTREhD MV9TVFJPQkUJCTB4OWYKKwkJCU1YOE1RX0lPTVVYQ19TRDFfUkVTRVRfQl9VU0RIQzFfUkVTRVRf QgkJMHhjMQorCQk+OworCX07CisKKwlwaW5jdHJsX3VzZGhjMjogdXNkaGMyZ3JwIHsKKwkJZnNs LHBpbnMgPSA8CisJCQlNWDhNUV9JT01VWENfU0QyX0NEX0JfR1BJTzJfSU8xMgkweDgwCisJCQlN WDhNUV9JT01VWENfU0QyX0NMS19VU0RIQzJfQ0xLCQkweDgzCisJCQlNWDhNUV9JT01VWENfU0Qy X0NNRF9VU0RIQzJfQ01ECQkweGMzCisJCQlNWDhNUV9JT01VWENfU0QyX0RBVEEwX1VTREhDMl9E QVRBMAkweGMzCisJCQlNWDhNUV9JT01VWENfU0QyX0RBVEExX1VTREhDMl9EQVRBMQkweGMzCisJ CQlNWDhNUV9JT01VWENfU0QyX0RBVEEyX1VTREhDMl9EQVRBMgkweGMzCisJCQlNWDhNUV9JT01V WENfU0QyX0RBVEEzX1VTREhDMl9EQVRBMwkweGMzCisJCQlNWDhNUV9JT01VWENfU0QyX1JFU0VU X0JfVVNESEMyX1JFU0VUX0IgMHhjMQorCQk+OworCX07CisKKwlwaW5jdHJsX3VzZGhjMl8xMDBt aHo6IHVzZGhjMmdycDEwMG1oeiB7CisJCWZzbCxwaW5zID0gPAorCQkJTVg4TVFfSU9NVVhDX1NE Ml9DRF9CX0dQSU8yX0lPMTIJMHg4MAorCQkJTVg4TVFfSU9NVVhDX1NEMl9DTEtfVVNESEMyX0NM SwkJMHg4ZAorCQkJTVg4TVFfSU9NVVhDX1NEMl9DTURfVVNESEMyX0NNRAkJMHhjZAorCQkJTVg4 TVFfSU9NVVhDX1NEMl9EQVRBMF9VU0RIQzJfREFUQTAJMHhjZAorCQkJTVg4TVFfSU9NVVhDX1NE Ml9EQVRBMV9VU0RIQzJfREFUQTEJMHhjZAorCQkJTVg4TVFfSU9NVVhDX1NEMl9EQVRBMl9VU0RI QzJfREFUQTIJMHhjZAorCQkJTVg4TVFfSU9NVVhDX1NEMl9EQVRBM19VU0RIQzJfREFUQTMJMHhj ZAorCQkJTVg4TVFfSU9NVVhDX1NEMl9SRVNFVF9CX1VTREhDMl9SRVNFVF9CIDB4YzEKKwkJPjsK Kwl9OworCisJcGluY3RybF91c2RoYzJfMjAwbWh6OiB1c2RoYzJncnAyMDBtaHogeworCQlmc2ws cGlucyA9IDwKKwkJCU1YOE1RX0lPTVVYQ19TRDJfQ0RfQl9HUElPMl9JTzEyCTB4ODAKKwkJCU1Y OE1RX0lPTVVYQ19TRDJfQ0xLX1VTREhDMl9DTEsJCTB4OWYKKwkJCU1YOE1RX0lPTVVYQ19TRDJf Q01EX1VTREhDMl9DTUQJCTB4Y2YKKwkJCU1YOE1RX0lPTVVYQ19TRDJfREFUQTBfVVNESEMyX0RB VEEwCTB4Y2YKKwkJCU1YOE1RX0lPTVVYQ19TRDJfREFUQTFfVVNESEMyX0RBVEExCTB4Y2YKKwkJ CU1YOE1RX0lPTVVYQ19TRDJfREFUQTJfVVNESEMyX0RBVEEyCTB4Y2YKKwkJCU1YOE1RX0lPTVVY Q19TRDJfREFUQTNfVVNESEMyX0RBVEEzCTB4Y2YKKwkJCU1YOE1RX0lPTVVYQ19TRDJfUkVTRVRf Ql9VU0RIQzJfUkVTRVRfQiAweGMxCisJCT47CisJfTsKKworCXBpbmN0cmxfd2RvZzogd2RvZ2dy cCB7CisJCWZzbCxwaW5zID0gPAorCQkJLyogbldET0cgKi8KKwkJCU1YOE1RX0lPTVVYQ19HUElP MV9JTzAyX1dET0cxX1dET0dfQgkweDFmCisJCT47CisJfTsKK307CisKKyZpMmMxIHsKKwljbG9j ay1mcmVxdWVuY3kgPSA8Mzg3MDAwPjsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBp bmN0cmwtMCA9IDwmcGluY3RybF9pMmMxPjsKKwlzdGF0dXMgPSAib2theSI7CisKKwl0eXBlY19w ZDogdXNiLXBkQDNmIHsKKwkJY29tcGF0aWJsZSA9ICJ0aSx0cHM2NTk4eCI7CisJCXJlZyA9IDww eDNmPjsKKwkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwkJcGluY3RybC0wID0gPCZwaW5j dHJsX3R5cGVjPiwgPCZwaW5jdHJsX3RjcGM+OworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZncGlv MT47CisJCWludGVycnVwdHMgPSA8MTAgSVJRX1RZUEVfTEVWRUxfTE9XPjsKKworCQljb25uZWN0 b3IgeworCQkJcG9ydHMgeworCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJCSNzaXplLWNl bGxzID0gPDA+OworCisJCQkJcG9ydEAwIHsKKwkJCQkJcmVnID0gPDA+OworCisJCQkJCXVzYl9j b25faHM6IGVuZHBvaW50IHsKKwkJCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmdHlwZWNfaHM+Owor CQkJCQl9OworCQkJCX07CisKKwkJCQlwb3J0QDEgeworCQkJCQlyZWcgPSA8MT47CisKKwkJCQkJ dXNiX2Nvbl9zczogZW5kcG9pbnQgeworCQkJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZ0eXBlY19z cz47CisJCQkJCX07CisJCQkJfTsKKwkJCX07CisJCX07CisJfTsKKworCXBtaWM6IHBtaWNANGIg eworCQljb21wYXRpYmxlID0gInJvaG0sYmQ3MTgzNyI7CisJCXJlZyA9IDwweDRiPjsKKwkJcGlu Y3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwkJcGluY3RybC0wID0gPCZwaW5jdHJsX3BtaWM+Owor CQljbG9ja3MgPSA8JnBtaWNfb3NjPjsKKwkJY2xvY2stbmFtZXMgPSAib3NjIjsKKwkJY2xvY2st b3V0cHV0LW5hbWVzID0gInBtaWNfY2xrIjsKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmZ3BpbzE+ OworCQlpbnRlcnJ1cHRzID0gPDcgR1BJT19BQ1RJVkVfTE9XPjsKKwkJaW50ZXJydXB0LW5hbWVz ID0gImlycSI7CisJCXJvaG0scmVzZXQtc252cy1wb3dlcmVkOworCisJCXJlZ3VsYXRvcnMgewor CQkJYnVjazFfcmVnOiBCVUNLMSB7CisJCQkJcmVndWxhdG9yLW5hbWUgPSAiQlVDSzEiOworCQkJ CXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDcwMDAwMD47CisJCQkJcmVndWxhdG9yLW1heC1t aWNyb3ZvbHQgPSA8MTMwMDAwMD47CisJCQkJcmVndWxhdG9yLXJhbXAtZGVsYXkgPSA8MTI1MD47 CisJCQkJcm9obSxkdnMtcnVuLXZvbHRhZ2UgPSA8OTAwMDAwPjsKKwkJCQlyb2htLGR2cy1pZGxl LXZvbHRhZ2UgPSA8ODUwMDAwPjsKKwkJCQlyb2htLGR2cy1zdXNwZW5kLXZvbHRhZ2UgPSA8ODAw MDAwPjsKKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQkJfTsKKworCQkJYnVjazJfcmVnOiBC VUNLMiB7CisJCQkJcmVndWxhdG9yLW5hbWUgPSAiQlVDSzIiOworCQkJCXJlZ3VsYXRvci1taW4t bWljcm92b2x0ID0gPDcwMDAwMD47CisJCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTMw MDAwMD47CisJCQkJcmVndWxhdG9yLXJhbXAtZGVsYXkgPSA8MTI1MD47CisJCQkJcm9obSxkdnMt cnVuLXZvbHRhZ2UgPSA8MTAwMDAwMD47CisJCQkJcm9obSxkdnMtaWRsZS12b2x0YWdlID0gPDkw MDAwMD47CisJCQkJcmVndWxhdG9yLWFsd2F5cy1vbjsKKwkJCX07CisKKwkJCWJ1Y2szX3JlZzog QlVDSzMgeworCQkJCXJlZ3VsYXRvci1uYW1lID0gIkJVQ0szIjsKKwkJCQlyZWd1bGF0b3ItbWlu LW1pY3Jvdm9sdCA9IDw3MDAwMDA+OworCQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEz MDAwMDA+OworCQkJCXJvaG0sZHZzLXJ1bi12b2x0YWdlID0gPDkwMDAwMD47CisJCQkJcmVndWxh dG9yLWFsd2F5cy1vbjsKKwkJCX07CisKKwkJCWJ1Y2s0X3JlZzogQlVDSzQgeworCQkJCXJlZ3Vs YXRvci1uYW1lID0gIkJVQ0s0IjsKKwkJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDw3MDAw MDA+OworCQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEzMDAwMDA+OworCQkJCXJvaG0s ZHZzLXJ1bi12b2x0YWdlID0gPDEwMDAwMDA+OworCQkJfTsKKworCQkJYnVjazVfcmVnOiBCVUNL NSB7CisJCQkJcmVndWxhdG9yLW5hbWUgPSAiQlVDSzUiOworCQkJCXJlZ3VsYXRvci1taW4tbWlj cm92b2x0ID0gPDcwMDAwMD47CisJCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTM1MDAw MD47CisJCQkJcmVndWxhdG9yLWFsd2F5cy1vbjsKKwkJCX07CisKKwkJCWJ1Y2s2X3JlZzogQlVD SzYgeworCQkJCXJlZ3VsYXRvci1uYW1lID0gIkJVQ0s2IjsKKwkJCQlyZWd1bGF0b3ItbWluLW1p Y3Jvdm9sdCA9IDwzMDAwMDAwPjsKKwkJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAw MDAwPjsKKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQkJfTsKKworCQkJYnVjazdfcmVnOiBC VUNLNyB7CisJCQkJcmVndWxhdG9yLW5hbWUgPSAiQlVDSzciOworCQkJCXJlZ3VsYXRvci1taW4t bWljcm92b2x0ID0gPDE2MDUwMDA+OworCQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDE5 OTUwMDA+OworCQkJCXJlZ3VsYXRvci1hbHdheXMtb247CisJCQl9OworCisJCQlidWNrOF9yZWc6 IEJVQ0s4IHsKKwkJCQlyZWd1bGF0b3ItbmFtZSA9ICJCVUNLOCI7CisJCQkJcmVndWxhdG9yLW1p bi1taWNyb3ZvbHQgPSA8ODAwMDAwPjsKKwkJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwx NDAwMDAwPjsKKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQkJfTsKKworCQkJbGRvMV9yZWc6 IExETzEgeworCQkJCXJlZ3VsYXRvci1uYW1lID0gIkxETzEiOworCQkJCXJlZ3VsYXRvci1taW4t bWljcm92b2x0ID0gPDMwMDAwMDA+OworCQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDMz MDAwMDA+OworCQkJCS8qIGxlYXZlIG9uIGZvciBzbnZzIHBvd2VyIGJ1dHRvbiAqLworCQkJCXJl Z3VsYXRvci1hbHdheXMtb247CisJCQl9OworCisJCQlsZG8yX3JlZzogTERPMiB7CisJCQkJcmVn dWxhdG9yLW5hbWUgPSAiTERPMiI7CisJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8OTAw MDAwPjsKKwkJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDw5MDAwMDA+OworCQkJCS8qIGxl YXZlIG9uIGZvciBzbnZzIHBvd2VyIGJ1dHRvbiAqLworCQkJCXJlZ3VsYXRvci1hbHdheXMtb247 CisJCQl9OworCisJCQlsZG8zX3JlZzogTERPMyB7CisJCQkJcmVndWxhdG9yLW5hbWUgPSAiTERP MyI7CisJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTgwMDAwMD47CisJCQkJcmVndWxh dG9yLW1heC1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisJCQkJcmVndWxhdG9yLWFsd2F5cy1vbjsK KwkJCX07CisKKwkJCWxkbzRfcmVnOiBMRE80IHsKKwkJCQlyZWd1bGF0b3ItbmFtZSA9ICJMRE80 IjsKKwkJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDw5MDAwMDA+OworCQkJCXJlZ3VsYXRv ci1tYXgtbWljcm92b2x0ID0gPDE4MDAwMDA+OworCQkJCXJlZ3VsYXRvci1hbHdheXMtb247CisJ CQl9OworCisJCQlsZG81X3JlZzogTERPNSB7CisJCQkJLyogVkREX1BIWV8wVjkgLSBNSVBJIGFu ZCBIRE1JIGRvbWFpbnMgKi8KKwkJCQlyZWd1bGF0b3ItbmFtZSA9ICJMRE81IjsKKwkJCQlyZWd1 bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKKwkJCQlyZWd1bGF0b3ItbWF4LW1pY3Jv dm9sdCA9IDwzMzAwMDAwPjsKKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQkJfTsKKworCQkJ bGRvNl9yZWc6IExETzYgeworCQkJCS8qIFZERF9QSFlfMFY5IC0gTUlQSSwgSERNSSBhbmQgVVNC IGRvbWFpbnMgKi8KKwkJCQlyZWd1bGF0b3ItbmFtZSA9ICJMRE82IjsKKwkJCQlyZWd1bGF0b3It bWluLW1pY3Jvdm9sdCA9IDw5MDAwMDA+OworCQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0g PDE4MDAwMDA+OworCQkJCXJlZ3VsYXRvci1hbHdheXMtb247CisJCQl9OworCisJCQlsZG83X3Jl ZzogTERPNyB7CisJCQkJLyogVkREX1BIWV8zVjMgLSBVU0IgZG9tYWluICovCisJCQkJcmVndWxh dG9yLW5hbWUgPSAiTERPNyI7CisJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTgwMDAw MD47CisJCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisJCQkJcmVndWxh dG9yLWFsd2F5cy1vbjsKKwkJCX07CisJCX07CisJfTsKKworCXJ0Y0A2OCB7CisJCWNvbXBhdGli bGUgPSAibWljcm9jcnlzdGFsLHJ2NDE2MiI7CisJCXJlZyA9IDwweDY4PjsKKwkJcGluY3RybC1u YW1lcyA9ICJkZWZhdWx0IjsKKwkJcGluY3RybC0wID0gPCZwaW5jdHJsX3J0Yz47CisJCWludGVy cnVwdC1wYXJlbnQgPSA8JmdwaW8xPjsKKwkJaW50ZXJydXB0cyA9IDw5IElSUV9UWVBFX0xFVkVM X0xPVz47CisJfTsKK307CisKKyZpMmMyIHsKKwljbG9jay1mcmVxdWVuY3kgPSA8Mzg3MDAwPjsK KwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmcGluY3RybF9pMmMy PjsKKwlzdGF0dXMgPSAib2theSI7CisKKwltYWduZXRvbWV0ZXJAMWUJeworCQljb21wYXRpYmxl ID0gInN0LGxzbTlkczEtbWFnbiI7CisJCXJlZyA9IDwweDFlPjsKKwkJcGluY3RybC1uYW1lcyA9 ICJkZWZhdWx0IjsKKwkJcGluY3RybC0wID0gPCZwaW5jdHJsX21hZz47CisJCWludGVycnVwdC1w YXJlbnQgPSA8JmdwaW8zPjsKKwkJaW50ZXJydXB0cyA9IDwyMiBJUlFfVFlQRV9MRVZFTF9ISUdI PjsKKwkJdmRkLXN1cHBseSA9IDwmcmVnX3ZkZF9zZW4+OworCQl2ZGRpby1zdXBwbHkgPSA8JnJl Z192ZGRfMXY4PjsKKwl9OworCisJcmVndWxhdG9yQDNlIHsKKwkJY29tcGF0aWJsZSA9ICJ0cHM2 NTEzMiI7CisJCXJlZyA9IDwweDNlPjsKKworCQlvdXRwIHsKKwkJCXJlZ3VsYXRvci1uYW1lID0g IkxDRF9BVkREIjsKKwkJCXZpbi1zdXBwbHkgPSA8JnJlZ19sY2RfM3Y0PjsKKwkJfTsKKworCQlv dXRuIHsKKwkJCXJlZ3VsYXRvci1uYW1lID0gIkxDRF9BVkVFIjsKKwkJCXZpbi1zdXBwbHkgPSA8 JnJlZ19sY2RfM3Y0PjsKKwkJfTsKKwl9OworCisJcHJveGltaXR5OiBwcm94QDYwIHsKKwkJY29t cGF0aWJsZSA9ICJ2aXNoYXksdmNubDQwNDAiOworCQlyZWcgPSA8MHg2MD47CisJCXBpbmN0cmwt bmFtZXMgPSAiZGVmYXVsdCI7CisJCXBpbmN0cmwtMCA9IDwmcGluY3RybF9wcm94PjsKKwkJaW50 ZXJydXB0LXBhcmVudCA9IDwmZ3BpbzM+OworCQlpbnRlcnJ1cHRzID0gPDcgSVJRX1RZUEVfTEVW RUxfTE9XPjsKKwl9OworCisJYWNjZWxfZ3lybzogYWNjZWwtZ3lyb0A2YQl7CisJCWNvbXBhdGli bGUgPSAic3QsbHNtOWRzMS1pbXUiOworCQlyZWcgPSA8MHg2YT47CisJCXZkZC1zdXBwbHkgPSA8 JnJlZ192ZGRfc2VuPjsKKwkJdmRkaW8tc3VwcGx5ID0gPCZyZWdfdmRkXzF2OD47CisJfTsKK307 CisKKyZpMmMzIHsKKwljbG9jay1mcmVxdWVuY3kgPSA8Mzg3MDAwPjsKKwlwaW5jdHJsLW5hbWVz ID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmcGluY3RybF9pMmMzPjsKKwlzdGF0dXMgPSAi b2theSI7CisKKwljb2RlYzogYXVkaW8tY29kZWNAMWEgeworCQljb21wYXRpYmxlID0gIndsZix3 bTg5NjIiOworCQlyZWcgPSA8MHgxYT47CisJCWNsb2NrcyA9IDwmY2xrIElNWDhNUV9DTEtfU0FJ Ml9ST09UPjsKKwkJYXNzaWduZWQtY2xvY2tzID0gPCZjbGsgSU1YOE1RX0NMS19TQUkyPjsKKwkJ YXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwmY2xrIElNWDhNUV9BVURJT19QTEwxX09VVD47CisJ CWFzc2lnbmVkLWNsb2NrLXJhdGVzID0gPDI0NTc2MDAwPjsKKwkJI3NvdW5kLWRhaS1jZWxscyA9 IDwwPjsKKwkJbWljLWNmZyA9IDwweDIwMD47CisJCURDVkRELXN1cHBseSA9IDwmcmVnX2F1ZF8x djg+OworCQlEQlZERC1zdXBwbHkgPSA8JnJlZ19hdWRfMXY4PjsKKwkJQVZERC1zdXBwbHkgPSA8 JnJlZ19hdWRfMXY4PjsKKwkJQ1BWREQtc3VwcGx5ID0gPCZyZWdfYXVkXzF2OD47CisJCU1JQ1ZE RC1zdXBwbHkgPSA8JnJlZ19hdWRfMXY4PjsKKwkJUExMVkRELXN1cHBseSA9IDwmcmVnX2F1ZF8x djg+OworCQlTUEtWREQxLXN1cHBseSA9IDwmcmVnX3ZzeXNfM3Y0PjsKKwkJU1BLVkREMi1zdXBw bHkgPSA8JnJlZ192c3lzXzN2ND47CisJCWdwaW8tY2ZnID0gPAorCQkJMHgwMDAwIC8qIG4vYyAq LworCQkJMHgwMDAxIC8qIGdwaW8yLCAxOiBkZWZhdWx0ICovCisJCQkweDAwMTMgLyogZ3BpbzMs IDI6IGRtaWNjbGsgKi8KKwkJCTB4MDAwMCAvKiBuL2MsIDM6IGRlZmF1bHQgKi8KKwkJCTB4ODAx NCAvKiBncGlvNSwgNDogZG1pY19kYXQgKi8KKwkJCTB4MDAwMCAvKiBncGlvNiwgNTogZGVmYXVs dCAqLworCQk+OworCX07CisKKwliYWNrbGlnaHRAMzYgeworCQljb21wYXRpYmxlID0gInRpLGxt MzY5MjIiOworCQlyZWcgPSA8MHgzNj47CisJCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJ CXBpbmN0cmwtMCA9IDwmcGluY3RybF9ibD47CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkj c2l6ZS1jZWxscyA9IDwwPjsKKwkJZW5hYmxlLWdwaW9zID0gPCZncGlvMyAxNCBHUElPX0FDVElW RV9ISUdIPjsKKwkJdmxlZC1zdXBwbHkgPSA8JnJlZ192c3lzXzN2ND47CisJCXRpLG92cC1taWNy b3ZvbHQgPSA8MjUwMDAwMDA+OworCisJCWxlZF9iYWNrbGlnaHQ6IGxlZEAwIHsKKwkJCXJlZyA9 IDwwPjsKKwkJCWxhYmVsID0gIjpiYWNrbGlnaHQiOworCQkJbGludXgsZGVmYXVsdC10cmlnZ2Vy ID0gImJhY2tsaWdodCI7CisJCQlsZWQtbWF4LW1pY3JvYW1wID0gPDIwMDAwPjsKKwkJfTsKKwl9 OworCisJdG91Y2hzY3JlZW5AMzggeworCQljb21wYXRpYmxlID0gImVkdCxlZHQtZnQ1NTA2IjsK KwkJcmVnID0gPDB4Mzg+OworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZncGlvMT47CisJCWludGVy cnVwdHMgPSA8MjcgSVJRX1RZUEVfRURHRV9GQUxMSU5HPjsKKwkJdG91Y2hzY3JlZW4tc2l6ZS14 ID0gPDcyMD47CisJCXRvdWNoc2NyZWVuLXNpemUteSA9IDwxNDQwPjsKKwl9OworfTsKKworJmky YzQgeworCWNsb2NrLWZyZXF1ZW5jeSA9IDwzODcwMDA+OworCXBpbmN0cmwtbmFtZXMgPSAiZGVm YXVsdCI7CisJcGluY3RybC0wID0gPCZwaW5jdHJsX2kyYzQ+OworCXN0YXR1cyA9ICJva2F5IjsK KworCWJhdDogZnVlbC1nYXVnZUAzNiB7CisJCWNvbXBhdGlibGUgPSAibWF4aW0sbWF4MTcwNTUi OworCQlyZWcgPSA8MHgzNj47CisJCWludGVycnVwdC1wYXJlbnQgPSA8JmdwaW8zPjsKKwkJaW50 ZXJydXB0cyA9IDwyMCBJUlFfVFlQRV9MRVZFTF9MT1c+OworCQlwaW5jdHJsLW5hbWVzID0gImRl ZmF1bHQiOworCQlwaW5jdHJsLTAgPSA8JnBpbmN0cmxfZ2F1Z2U+OworCQltYXhpbSxvdmVyLWhl YXQtdGVtcCA9IDw3MDA+OworCQltYXhpbSxvdmVyLXZvbHQgPSA8NDUwMD47CisJCW1heGltLHJz bnMtbWljcm9vaG0gPSA8NTAwMD47CisJfTsKKworCWJxMjU4OTU6IGNoYXJnZXJANmEgeworCQlj b21wYXRpYmxlID0gInRpLGJxMjU4OTUiLCAidGksYnEyNTg5MCI7CisJCXJlZyA9IDwweDZhPjsK KwkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwkJcGluY3RybC0wID0gPCZwaW5jdHJsX2No YXJnZXJfaW4+OworCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZncGlvMz47CisJCWludGVycnVwdHMg PSA8MyBJUlFfVFlQRV9FREdFX0ZBTExJTkc+OworCQlwaHlzID0gPCZ1c2IzX3BoeTA+OworCQl0 aSxwcmVjaGFyZ2UtY3VycmVudCA9IDwxMzAwMDA+OyAvKiB1QSAqLworCQl0aSxtaW5pbXVtLXN5 cy12b2x0YWdlID0gPDM3MDAwMDA+OyAvKiB1ViAqLworCQl0aSxib29zdC12b2x0YWdlID0gPDUw MDAwMDA+OyAvKiB1ViAqLworCQl0aSxib29zdC1tYXgtY3VycmVudCA9IDw1MDAwMDA+OyAvKiB1 QSAqLworCQl0aSx1c2UtdmlubWluLXRocmVzaG9sZCA9IDwxPjsgLyogZW5hYmxlIFZJTkRQTSAq LworCQl0aSx2aW5taW4tdGhyZXNob2xkID0gPDM5MDAwMDA+OyAvKiB1ViAqLworCQltb25pdG9y ZWQtYmF0dGVyeSA9IDwmYmF0PjsKKwl9OworfTsKKworJnBnY19ncHUgeworCXBvd2VyLXN1cHBs eSA9IDwmYnVjazNfcmVnPjsKK307CisKKyZwZ2NfbWlwaSB7CisJcG93ZXItc3VwcGx5ID0gPCZs ZG81X3JlZz47Cit9OworCismcGdjX3ZwdSB7CisJcG93ZXItc3VwcGx5ID0gPCZidWNrNF9yZWc+ OworfTsKKworJnB3bTEgeworCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJcGluY3RybC0w ID0gPCZwaW5jdHJsX2hhcHRpYz47CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJnB3bTIgewor CXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJcGluY3RybC0wID0gPCZwaW5jdHJsX2xlZF9i PjsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismcHdtMyB7CisJcGluY3RybC1uYW1lcyA9ICJk ZWZhdWx0IjsKKwlwaW5jdHJsLTAgPSA8JnBpbmN0cmxfbGVkX2c+OworCXN0YXR1cyA9ICJva2F5 IjsKK307CisKKyZwd200IHsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwt MCA9IDwmcGluY3RybF9sZWRfcj47CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJnNhaTIgewor CXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJcGluY3RybC0wID0gPCZwaW5jdHJsX3NhaTI+ OworCWFzc2lnbmVkLWNsb2NrcyA9IDwmY2xrIElNWDhNUV9DTEtfU0FJMj47CisJYXNzaWduZWQt Y2xvY2stcGFyZW50cyA9IDwmY2xrIElNWDhNUV9BVURJT19QTEwxX09VVD47CisJYXNzaWduZWQt Y2xvY2stcmF0ZXMgPSA8MjQ1NzYwMDA+OworCWFzc2lnbmVkLWNsb2NrcyA9IDwmY2xrIElNWDhN UV9BVURJT19QTEwxPiwgPCZjbGsgSU1YOE1RX0FVRElPX1BMTDI+OworCWFzc2lnbmVkLWNsb2Nr LXJhdGVzID0gPDc4NjQzMjAwMD4sIDw3MjI1MzQ0MDA+OworCXN0YXR1cyA9ICJva2F5IjsKK307 CisKKyZzYWk2IHsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwm cGluY3RybF9zYWk2PjsKKwlhc3NpZ25lZC1jbG9ja3MgPSA8JmNsayBJTVg4TVFfQ0xLX1NBSTY+ OworCWFzc2lnbmVkLWNsb2NrLXBhcmVudHMgPSA8JmNsayBJTVg4TVFfQVVESU9fUExMMV9PVVQ+ OworCWFzc2lnbmVkLWNsb2NrLXJhdGVzID0gPDI0NTc2MDAwPjsKKwlmc2wsc2FpLXN5bmNocm9u b3VzLXJ4OworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZzbnZzX3B3cmtleSB7CisJc3RhdHVz ID0gIm9rYXkiOworfTsKKworJnNudnNfcnRjIHsKKwlzdGF0dXMgPSAiZGlzYWJsZWQiOworfTsK KworJnVhcnQxIHsgLyogY29uc29sZSAqLworCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJ cGluY3RybC0wID0gPCZwaW5jdHJsX3VhcnQxPjsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCism dWFydDIgeyAvKiBUUFMgLSBHUFMgLSBERUJVRyAqLworCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVs dCI7CisJcGluY3RybC0wID0gPCZwaW5jdHJsX3VhcnQyPjsKKwlzdGF0dXMgPSAib2theSI7CisK KwlnbnNzIHsKKwkJY29tcGF0aWJsZSA9ICJnbG9iYWx0b3AscGE2aCI7CisJCXZjYy1zdXBwbHkg PSA8JnJlZ19nbnNzPjsKKwkJY3VycmVudC1zcGVlZCA9IDw5NjAwPjsKKwl9OworfTsKKworJnVh cnQzIHsgLyogU01DICovCisJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwlwaW5jdHJsLTAg PSA8JnBpbmN0cmxfdWFydDM+OworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ1YXJ0NCB7IC8q IEJUICovCisJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwlwaW5jdHJsLTAgPSA8JnBpbmN0 cmxfdWFydDQ+OworCXVhcnQtaGFzLXJ0c2N0czsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCism dXNiM19waHkwIHsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismdXNiM19waHkxIHsKKwl2YnVz LXN1cHBseSA9IDwmcmVnX2h1Yj47CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJnVzYl9kd2Mz XzAgeworCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCSNzaXplLWNlbGxzID0gPDA+OworCWRyX21v ZGUgPSAib3RnIjsKKwlzbnBzLGRpc191M19zdXNwaHlfcXVpcms7CisJc3RhdHVzID0gIm9rYXki OworCisJcG9ydEAwIHsKKwkJcmVnID0gPDA+OworCisJCXR5cGVjX2hzOiBlbmRwb2ludCB7CisJ CQlyZW1vdGUtZW5kcG9pbnQgPSA8JnVzYl9jb25faHM+OworCQl9OworCX07CisKKwlwb3J0QDEg eworCQlyZWcgPSA8MT47CisKKwkJdHlwZWNfc3M6IGVuZHBvaW50IHsKKwkJCXJlbW90ZS1lbmRw b2ludCA9IDwmdXNiX2Nvbl9zcz47CisJCX07CisJfTsKK307CisKKyZ1c2JfZHdjM18xIHsKKwlk cl9tb2RlID0gImhvc3QiOworCXN0YXR1cyA9ICJva2F5IjsKKwkjYWRkcmVzcy1jZWxscyA9IDwx PjsKKwkjc2l6ZS1jZWxscyA9IDwwPjsKKworCS8qIE1pY3JvY2hpcCBVU0IyNjQyICovCisJaHVi QDEgeworCQljb21wYXRpYmxlID0gInVzYjQyNCwyNjQwIjsKKwkJcmVnID0gPDE+OworCQkjYWRk cmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisKKwkJbWFzcy1zdG9yYWdl QDEgeworCQkJY29tcGF0aWJsZSA9ICJ1c2I0MjQsNDA0MSI7CisJCQlyZWcgPSA8MT47CisJCX07 CisJfTsKK307CisKKyZ1c2RoYzEgeworCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCIsICJzdGF0 ZV8xMDBtaHoiLCAic3RhdGVfMjAwbWh6IjsKKwlwaW5jdHJsLTAgPSA8JnBpbmN0cmxfdXNkaGMx PjsKKwlwaW5jdHJsLTEgPSA8JnBpbmN0cmxfdXNkaGMxXzEwMG1oej47CisJcGluY3RybC0yID0g PCZwaW5jdHJsX3VzZGhjMV8yMDBtaHo+OworCWJ1cy13aWR0aCA9IDw4PjsKKwl2bW1jLXN1cHBs eSA9IDwmcmVnX3ZkZF8zdjM+OworCXBvd2VyLXN1cHBseSA9IDwmcmVnX3ZkZF8xdjg+OworCW5v bi1yZW1vdmFibGU7CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJnVzZGhjMiB7CisJcGluY3Ry bC1uYW1lcyA9ICJkZWZhdWx0IiwgInN0YXRlXzEwMG1oeiIsICJzdGF0ZV8yMDBtaHoiOworCXBp bmN0cmwtMCA9IDwmcGluY3RybF91c2RoYzI+OworCXBpbmN0cmwtMSA9IDwmcGluY3RybF91c2Ro YzJfMTAwbWh6PjsKKwlwaW5jdHJsLTIgPSA8JnBpbmN0cmxfdXNkaGMyXzIwMG1oej47CisJYnVz LXdpZHRoID0gPDQ+OworCXZtbWMtc3VwcGx5ID0gPCZyZWdfd2lmaV8zdjM+OworCWNkLWdwaW9z ID0gPCZncGlvMiAxMiBHUElPX0FDVElWRV9MT1c+OworCWRpc2FibGUtd3A7CisJY2FwLXNkaW8t aXJxOworCWtlZXAtcG93ZXItaW4tc3VzcGVuZDsKKwl3YWtldXAtc291cmNlOworCXN0YXR1cyA9 ICJva2F5IjsKK307CisKKyZ3ZG9nMSB7CisJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwlw aW5jdHJsLTAgPSA8JnBpbmN0cmxfd2RvZz47CisJZnNsLGV4dC1yZXNldC1vdXRwdXQ7CisJc3Rh dHVzID0gIm9rYXkiOworfTsKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK