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=-3.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=no 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 CBDE7C433DF for ; Tue, 16 Jun 2020 12:17:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8B09D20C56 for ; Tue, 16 Jun 2020 12:17:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=0x0f.com header.i=@0x0f.com header.b="o7eLERaO" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728624AbgFPMRM (ORCPT ); Tue, 16 Jun 2020 08:17:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725843AbgFPMRL (ORCPT ); Tue, 16 Jun 2020 08:17:11 -0400 Received: from mail-pg1-x543.google.com (mail-pg1-x543.google.com [IPv6:2607:f8b0:4864:20::543]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3A180C08C5C2 for ; Tue, 16 Jun 2020 05:17:11 -0700 (PDT) Received: by mail-pg1-x543.google.com with SMTP id s135so8475486pgs.2 for ; Tue, 16 Jun 2020 05:17:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=0x0f.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ec3juquI4rhFjGOCuOnFrl/SFwl2x3S0xqJKp1FvXHk=; b=o7eLERaO4Xamk0yOYrHaIOKvh1GxeOEGq6pNfS5NuJi0zP7sd3jEg2x/kjZAURz1d9 wd5Zht/OFOaJ/Ojts7vPstoMQNdmXmsFpixpiCke87sjkGTh9JlNv7Jqc3SBVgu4ClwR 0g0ZI2I2TAplj4UsBHeoOBF7uRJCPj3pxCXU4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ec3juquI4rhFjGOCuOnFrl/SFwl2x3S0xqJKp1FvXHk=; b=Dezr7K+CB/5j8b2h0iRn8ma6eAsPlLRI9UEn+ilI3LFqJqGrtob1t6BQaV4qOD8TpR YbxH25QD82bqWPSbMD00yL8xNCWTTDOoa33DR1MRFyQ4vRV2E8yfkBCc3/keAKiSI3eD cV46t4kmvfoiWh2Qy24Yhxr5zAvc/GBhS3/s2AA9bYAhiKD2/KtB/ZBIh//fpE/h+ux7 T/BiAufhPUW00hzfyX7p27SJaBFOYWd/c6p4GRA+BHzgjGxGDzX4F/6A9EDqw2W6HMNQ Zs11B//MRCTqnWw+6URAH7qc3rfMSlBIKG4lnRI+Gvmm20wcV6DJ8mJvv5xg0Ng9GxMp +PoQ== X-Gm-Message-State: AOAM530TdaZzkTzDF2I2+Zbdjh29Uj37sRz8rMwrjwce4OPiM4b1Efmj wsHnCsvecsCu2dS0UysY958W1A== X-Google-Smtp-Source: ABdhPJw8jh3rGs+/j9cYByNMvBMKt3opLtcC8xfvAJvhW7BOCCL3NjEHklOfgERVUqetNVNk1VCYug== X-Received: by 2002:a62:fc52:: with SMTP id e79mr1861952pfh.5.1592309830081; Tue, 16 Jun 2020 05:17:10 -0700 (PDT) Received: from shiro.work (p1285116-ipngn200805sizuokaden.shizuoka.ocn.ne.jp. [114.171.61.116]) by smtp.googlemail.com with ESMTPSA id f23sm2360703pja.8.2020.06.16.05.17.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2020 05:17:09 -0700 (PDT) From: Daniel Palmer To: linux-arm-kernel@lists.infradead.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Daniel Palmer Subject: [PATCH v4 00/12] Initial MStar/Sigmastar ARMv7 SoC support Date: Tue, 16 Jun 2020 21:15:13 +0900 Message-Id: <20200616121525.1409790-1-daniel@0x0f.com> X-Mailer: git-send-email 2.27.0.rc0 In-Reply-To: <20200612130032.3905240-2-daniel@0x0f.com> References: <20200612130032.3905240-2-daniel@0x0f.com> MIME-Version: 1.0 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 This patch set adds initial support for MStar/Sigmastar's Armv7 based SoCs. There is just enough here to get to a shell with an initramfs but support for a lot of the hardware is in progress and will follow. MStar also shipped chips with MIPS cores and ARM9 etc which are incompatible so I've tried to make the distinction in the code that this is strictly for the Armv7 based chips. Sorry for the spamming this. I just really want to make some progress on this because I'm worried the other bits that are needed for these SoCs (Really old AT91 support in macb and the fotg210 usb host) will be lost or stop working in the meantime. This already happened in u-boot. Differences from v3: 1. Fixed the issue with the mstar binding that Rob Herring's bot found. 2. Fixed the filename for the midrived08 dts. Differences from v2: 1. With Marc Zyngier's help the GIC node has been filled out properly. 2. A comment was added to the arch timer node to explain why the clock-frequency is specified. Basically the vendor u-boot is old and broken. 3. Based on Arnd Bergmann's feedback the heavy memory barrier is now implemented using a DT node to specify where the registers are instead of hardcoding their location. A binding description has been added for the new node. 4. Expanded comments around the heavy memory barrier code so it's more obvious why it looks like it does. 5. The heavy memory barrier init code was folded into the machine init function. 6. Updated the device tree bindings and prefixes based on Andreas Färber's feedback. They have also been split out into a number of commits 7. Based on Andreas Färber's feedback I've added the "riu" (register interface unit) internal bus that contains all of the peripheral registers and the proper ranges for the soc node. This bus has clocks, interrupts and some configuration register so it might get it's own driver in the future. 8. I've dropped the pmu node for now as it's not needed to boot and I'm not sure of the relationship between the single core in most of the chips and the 4 documented interrupts. 9. Numerous cosmetic changes based on Andreas Färber's feedback. Differences from v1: 1. v1 only really supported two specific chips that were known at the time of submitting that patch series. Since then it's become apparent that there are a few families of SoCs based on the same ARMv7 core, clk blocks, interrupt controllers etc and this v2 attempts to make support more generic so in the future more SoCs from this lineage can be added. Support for some other chips is already in progress and will follow. 2. v1 only added support for the BreadBee boards that I have been working on. v2 also adds support for a readily available car dash camera. 3. Support for the BreadBee board has been split into two top level dts to cleanly support if either the msc313 or msc313e is mounted on the board. The chips are pin compatible but some of the internal hardware is different. The u-boot port for these SoCs can detect which chip it is running on and select the right dts so the user doesn't have to care which chip is mounted on their board. Daniel Palmer (12): dt-bindings: vendor-prefixes: Add mstar vendor prefix dt-bindings: vendor-prefixes: Add sstar vendor prefix dt-bindings: vendor-prefixes: Add 70mai vendor prefix dt-bindings: vendor-prefixes: Add thingy.jp prefix dt-bindings: arm: Add mstar YAML schema ARM: mstar: Add machine for MStar/Sigmastar Armv7 SoCs ARM: mstar: Add binding details for mstar,l3bridge ARM: mstar: Add Armv7 base dtsi ARM: mstar: Add infinity/infinity3 family dtsis ARM: mstar: Add mercury5 series dtsis ARM: mstar: Add dts for msc313(e) based BreadBee boards ARM: mstar: Add dts for 70mai midrive d08 .../devicetree/bindings/arm/mstar.yaml | 34 ++++++++ .../bindings/misc/mstar,l3bridge.yaml | 44 ++++++++++ .../devicetree/bindings/vendor-prefixes.yaml | 8 ++ MAINTAINERS | 11 +++ arch/arm/Kconfig | 2 + arch/arm/Makefile | 1 + arch/arm/boot/dts/Makefile | 4 + .../dts/infinity-msc313-breadbee_crust.dts | 25 ++++++ arch/arm/boot/dts/infinity-msc313.dtsi | 14 ++++ arch/arm/boot/dts/infinity.dtsi | 7 ++ .../boot/dts/infinity3-msc313e-breadbee.dts | 25 ++++++ arch/arm/boot/dts/infinity3-msc313e.dtsi | 14 ++++ arch/arm/boot/dts/infinity3.dtsi | 7 ++ .../boot/dts/mercury5-ssc8336n-midrived08.dts | 25 ++++++ arch/arm/boot/dts/mercury5-ssc8336n.dtsi | 14 ++++ arch/arm/boot/dts/mercury5.dtsi | 7 ++ arch/arm/boot/dts/mstar-v7.dtsi | 83 +++++++++++++++++++ arch/arm/mach-mstar/Kconfig | 26 ++++++ arch/arm/mach-mstar/Makefile | 1 + arch/arm/mach-mstar/mstarv7.c | 80 ++++++++++++++++++ 20 files changed, 432 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/mstar.yaml create mode 100644 Documentation/devicetree/bindings/misc/mstar,l3bridge.yaml create mode 100644 arch/arm/boot/dts/infinity-msc313-breadbee_crust.dts create mode 100644 arch/arm/boot/dts/infinity-msc313.dtsi create mode 100644 arch/arm/boot/dts/infinity.dtsi create mode 100644 arch/arm/boot/dts/infinity3-msc313e-breadbee.dts create mode 100644 arch/arm/boot/dts/infinity3-msc313e.dtsi create mode 100644 arch/arm/boot/dts/infinity3.dtsi create mode 100644 arch/arm/boot/dts/mercury5-ssc8336n-midrived08.dts create mode 100644 arch/arm/boot/dts/mercury5-ssc8336n.dtsi create mode 100644 arch/arm/boot/dts/mercury5.dtsi create mode 100644 arch/arm/boot/dts/mstar-v7.dtsi create mode 100644 arch/arm/mach-mstar/Kconfig create mode 100644 arch/arm/mach-mstar/Makefile create mode 100644 arch/arm/mach-mstar/mstarv7.c -- 2.27.0.rc0 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=-3.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=no 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 1057CC433E0 for ; Tue, 16 Jun 2020 12:17:16 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 9DB7120DD4 for ; Tue, 16 Jun 2020 12:17:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="eNQ6d5h5"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=0x0f.com header.i=@0x0f.com header.b="o7eLERaO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9DB7120DD4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=0x0f.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: 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: List-Owner; bh=fIkqJuWFr6BC0JRFqLGX77xpD/fmSjw+bzewMqs4Pkw=; b=eNQ6d5h5b9Shg0 kVBsqk9OQ39OJSjXcAgMJtXafjs0EJJDxJB0wVsCvov18pUxNf6NxeIU6zFQWzeZC7Zj4fof7VPlF XCFjg7OfZGtErzzota0Lf8OA9XXnJKFhZUZKeTaMwb+ieyLpNrIFXeqNztBDL0+seWvEjtN+GkYFQ XHnt9unuldmed9vctmCRfW0DH0PQBZStQAUoNRJkHgWMcbS924nieii0DYxYdKNLwmQllAu3/xYs1 oXMNV0kLo6cJaGwb/1ZZzICQim5KNrsBmXcQUGsy8omlurlZncw9sYP1e3yu82c94Nv7LAAF82JwC w5c2/rUE/wof8DtaGXZQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jlAWh-0000BX-4S; Tue, 16 Jun 2020 12:17:15 +0000 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jlAWd-0000Aj-RZ for linux-arm-kernel@lists.infradead.org; Tue, 16 Jun 2020 12:17:13 +0000 Received: by mail-pg1-x542.google.com with SMTP id u128so2257890pgu.13 for ; Tue, 16 Jun 2020 05:17:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=0x0f.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ec3juquI4rhFjGOCuOnFrl/SFwl2x3S0xqJKp1FvXHk=; b=o7eLERaO4Xamk0yOYrHaIOKvh1GxeOEGq6pNfS5NuJi0zP7sd3jEg2x/kjZAURz1d9 wd5Zht/OFOaJ/Ojts7vPstoMQNdmXmsFpixpiCke87sjkGTh9JlNv7Jqc3SBVgu4ClwR 0g0ZI2I2TAplj4UsBHeoOBF7uRJCPj3pxCXU4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ec3juquI4rhFjGOCuOnFrl/SFwl2x3S0xqJKp1FvXHk=; b=Lfgl/USfMjggMQdqsTzKuX4ZMavBVhicPQncxEry7QLyjMNpPQ0r/AF141Wd191Fic s8k3EPENOmQCc7ct55Q5If4z2PQJPtMKdcH6dkxntR56LivcWSuLuG6ZNISPdxdTc6Js 5DoBL7TleKFyA0a2vi1kJmYl7LyTHvubRnVsbC56VRQb02s7EHLQ9zz1HiywkrJAnv5T dUGnT0U61GOgCEMtJMfN1xEIWtePFIB66FdMwP/16btzzJWHVR2F8BMeoytJiLxOL16J 7LTZtynktwlnMVZlynEaiIJ0NsboVqbMxohOjEDv2Jzyc7SzU0SGBVNJI9nehY28AEHa 2WAw== X-Gm-Message-State: AOAM531OloFdNOcbIucSRaCKCGtH22kgIA7bgXINr/oriS0oEWyLtDaL qPbGYWvTkCTJyViB7lB49cq/VJ92XQA= X-Google-Smtp-Source: ABdhPJw8jh3rGs+/j9cYByNMvBMKt3opLtcC8xfvAJvhW7BOCCL3NjEHklOfgERVUqetNVNk1VCYug== X-Received: by 2002:a62:fc52:: with SMTP id e79mr1861952pfh.5.1592309830081; Tue, 16 Jun 2020 05:17:10 -0700 (PDT) Received: from shiro.work (p1285116-ipngn200805sizuokaden.shizuoka.ocn.ne.jp. [114.171.61.116]) by smtp.googlemail.com with ESMTPSA id f23sm2360703pja.8.2020.06.16.05.17.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2020 05:17:09 -0700 (PDT) From: Daniel Palmer To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 00/12] Initial MStar/Sigmastar ARMv7 SoC support Date: Tue, 16 Jun 2020 21:15:13 +0900 Message-Id: <20200616121525.1409790-1-daniel@0x0f.com> X-Mailer: git-send-email 2.27.0.rc0 In-Reply-To: <20200612130032.3905240-2-daniel@0x0f.com> References: <20200612130032.3905240-2-daniel@0x0f.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200616_051712_004305_AC9CBF73 X-CRM114-Status: GOOD ( 23.37 ) 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 Palmer , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhpcyBwYXRjaCBzZXQgYWRkcyBpbml0aWFsIHN1cHBvcnQgZm9yIE1TdGFyL1NpZ21hc3Rhcidz CkFybXY3IGJhc2VkIFNvQ3MuIFRoZXJlIGlzIGp1c3QgZW5vdWdoIGhlcmUgdG8gZ2V0IHRvIGEg c2hlbGwKd2l0aCBhbiBpbml0cmFtZnMgYnV0IHN1cHBvcnQgZm9yIGEgbG90IG9mIHRoZSBoYXJk d2FyZSBpcwppbiBwcm9ncmVzcyBhbmQgd2lsbCBmb2xsb3cuCgpNU3RhciBhbHNvIHNoaXBwZWQg Y2hpcHMgd2l0aCBNSVBTIGNvcmVzIGFuZCBBUk05IGV0YyB3aGljaAphcmUgaW5jb21wYXRpYmxl IHNvIEkndmUgdHJpZWQgdG8gbWFrZSB0aGUgZGlzdGluY3Rpb24gaW4gdGhlCmNvZGUgdGhhdCB0 aGlzIGlzIHN0cmljdGx5IGZvciB0aGUgQXJtdjcgYmFzZWQgY2hpcHMuCgpTb3JyeSBmb3IgdGhl IHNwYW1taW5nIHRoaXMuIEkganVzdCByZWFsbHkgd2FudCB0byBtYWtlIHNvbWUKcHJvZ3Jlc3Mg b24gdGhpcyBiZWNhdXNlIEknbSB3b3JyaWVkIHRoZSBvdGhlciBiaXRzIHRoYXQgYXJlCm5lZWRl ZCBmb3IgdGhlc2UgU29DcyAoUmVhbGx5IG9sZCBBVDkxIHN1cHBvcnQgaW4gbWFjYiBhbmQKdGhl IGZvdGcyMTAgdXNiIGhvc3QpIHdpbGwgYmUgbG9zdCBvciBzdG9wIHdvcmtpbmcgaW4gdGhlIG1l YW50aW1lLgpUaGlzIGFscmVhZHkgaGFwcGVuZWQgaW4gdS1ib290LgoKRGlmZmVyZW5jZXMgZnJv bSB2MzoKMS4gRml4ZWQgdGhlIGlzc3VlIHdpdGggdGhlIG1zdGFyIGJpbmRpbmcgdGhhdCBSb2Ig SGVycmluZydzIGJvdApmb3VuZC4KMi4gRml4ZWQgdGhlIGZpbGVuYW1lIGZvciB0aGUgbWlkcml2 ZWQwOCBkdHMuCgpEaWZmZXJlbmNlcyBmcm9tIHYyOgoKMS4gV2l0aCBNYXJjIFp5bmdpZXIncyBo ZWxwIHRoZSBHSUMgbm9kZSBoYXMgYmVlbiBmaWxsZWQgb3V0IHByb3Blcmx5LgoKMi4gQSBjb21t ZW50IHdhcyBhZGRlZCB0byB0aGUgYXJjaCB0aW1lciBub2RlIHRvIGV4cGxhaW4gd2h5IHRoZQpj bG9jay1mcmVxdWVuY3kgaXMgc3BlY2lmaWVkLiBCYXNpY2FsbHkgdGhlIHZlbmRvciB1LWJvb3Qg aXMgb2xkIGFuZApicm9rZW4uCgozLiBCYXNlZCBvbiBBcm5kIEJlcmdtYW5uJ3MgZmVlZGJhY2sg dGhlIGhlYXZ5IG1lbW9yeSBiYXJyaWVyIGlzIG5vdwppbXBsZW1lbnRlZCB1c2luZyBhIERUIG5v ZGUgdG8gc3BlY2lmeSB3aGVyZSB0aGUgcmVnaXN0ZXJzIGFyZSBpbnN0ZWFkCm9mIGhhcmRjb2Rp bmcgdGhlaXIgbG9jYXRpb24uIEEgYmluZGluZyBkZXNjcmlwdGlvbiBoYXMgYmVlbiBhZGRlZCBm b3IKdGhlIG5ldyBub2RlLgoKNC4gRXhwYW5kZWQgY29tbWVudHMgYXJvdW5kIHRoZSBoZWF2eSBt ZW1vcnkgYmFycmllciBjb2RlIHNvIGl0J3MgbW9yZQpvYnZpb3VzIHdoeSBpdCBsb29rcyBsaWtl IGl0IGRvZXMuCgo1LiBUaGUgaGVhdnkgbWVtb3J5IGJhcnJpZXIgaW5pdCBjb2RlIHdhcyBmb2xk ZWQgaW50byB0aGUgbWFjaGluZSBpbml0CmZ1bmN0aW9uLgoKNi4gVXBkYXRlZCB0aGUgZGV2aWNl IHRyZWUgYmluZGluZ3MgYW5kIHByZWZpeGVzIGJhc2VkIG9uIEFuZHJlYXMgRsOkcmJlcidzCmZl ZWRiYWNrLiBUaGV5IGhhdmUgYWxzbyBiZWVuIHNwbGl0IG91dCBpbnRvIGEgbnVtYmVyIG9mIGNv bW1pdHMKCjcuIEJhc2VkIG9uIEFuZHJlYXMgRsOkcmJlcidzIGZlZWRiYWNrIEkndmUgYWRkZWQg dGhlICJyaXUiIChyZWdpc3RlciBpbnRlcmZhY2UKdW5pdCkgaW50ZXJuYWwgYnVzIHRoYXQgY29u dGFpbnMgYWxsIG9mIHRoZSBwZXJpcGhlcmFsIHJlZ2lzdGVycyBhbmQgdGhlIHByb3BlcgpyYW5n ZXMgZm9yIHRoZSBzb2Mgbm9kZS4gVGhpcyBidXMgaGFzIGNsb2NrcywgaW50ZXJydXB0cyBhbmQg c29tZSBjb25maWd1cmF0aW9uCnJlZ2lzdGVyIHNvIGl0IG1pZ2h0IGdldCBpdCdzIG93biBkcml2 ZXIgaW4gdGhlIGZ1dHVyZS4KCjguIEkndmUgZHJvcHBlZCB0aGUgcG11IG5vZGUgZm9yIG5vdyBh cyBpdCdzIG5vdCBuZWVkZWQgdG8gYm9vdCBhbmQgSSdtIG5vdApzdXJlIG9mIHRoZSByZWxhdGlv bnNoaXAgYmV0d2VlbiB0aGUgc2luZ2xlIGNvcmUgaW4gbW9zdCBvZiB0aGUgY2hpcHMgYW5kCnRo ZSA0IGRvY3VtZW50ZWQgaW50ZXJydXB0cy4KCjkuIE51bWVyb3VzIGNvc21ldGljIGNoYW5nZXMg YmFzZWQgb24gQW5kcmVhcyBGw6RyYmVyJ3MgZmVlZGJhY2suCgpEaWZmZXJlbmNlcyBmcm9tIHYx OgoKMS4gdjEgb25seSByZWFsbHkgc3VwcG9ydGVkIHR3byBzcGVjaWZpYyBjaGlwcyB0aGF0IHdl cmUga25vd24KYXQgdGhlIHRpbWUgb2Ygc3VibWl0dGluZyB0aGF0IHBhdGNoIHNlcmllcy4gU2lu Y2UgdGhlbiBpdCdzCmJlY29tZSBhcHBhcmVudCB0aGF0IHRoZXJlIGFyZSBhIGZldyBmYW1pbGll cyBvZiBTb0NzIGJhc2VkCm9uIHRoZSBzYW1lIEFSTXY3IGNvcmUsIGNsayBibG9ja3MsIGludGVy cnVwdCBjb250cm9sbGVycyBldGMKYW5kIHRoaXMgdjIgYXR0ZW1wdHMgdG8gbWFrZSBzdXBwb3J0 IG1vcmUgZ2VuZXJpYyBzbyBpbiB0aGUgZnV0dXJlCm1vcmUgU29DcyBmcm9tIHRoaXMgbGluZWFn ZSBjYW4gYmUgYWRkZWQuIFN1cHBvcnQgZm9yIHNvbWUgb3RoZXIKY2hpcHMgaXMgYWxyZWFkeSBp biBwcm9ncmVzcyBhbmQgd2lsbCBmb2xsb3cuCgoyLiB2MSBvbmx5IGFkZGVkIHN1cHBvcnQgZm9y IHRoZSBCcmVhZEJlZSBib2FyZHMgdGhhdCBJIGhhdmUgYmVlbgp3b3JraW5nIG9uLiB2MiBhbHNv IGFkZHMgc3VwcG9ydCBmb3IgYSByZWFkaWx5IGF2YWlsYWJsZSBjYXIgZGFzaApjYW1lcmEuCgoz LiBTdXBwb3J0IGZvciB0aGUgQnJlYWRCZWUgYm9hcmQgaGFzIGJlZW4gc3BsaXQgaW50byB0d28g dG9wIGxldmVsCmR0cyB0byBjbGVhbmx5IHN1cHBvcnQgaWYgZWl0aGVyIHRoZSBtc2MzMTMgb3Ig bXNjMzEzZSBpcyBtb3VudGVkIG9uCnRoZSBib2FyZC4gVGhlIGNoaXBzIGFyZSBwaW4gY29tcGF0 aWJsZSBidXQgc29tZSBvZiB0aGUgaW50ZXJuYWwKaGFyZHdhcmUgaXMgZGlmZmVyZW50LiBUaGUg dS1ib290IHBvcnQgZm9yIHRoZXNlIFNvQ3MgY2FuIGRldGVjdAp3aGljaCBjaGlwIGl0IGlzIHJ1 bm5pbmcgb24gYW5kIHNlbGVjdCB0aGUgcmlnaHQgZHRzIHNvIHRoZSB1c2VyCmRvZXNuJ3QgaGF2 ZSB0byBjYXJlIHdoaWNoIGNoaXAgaXMgbW91bnRlZCBvbiB0aGVpciBib2FyZC4KCgpEYW5pZWwg UGFsbWVyICgxMik6CiAgZHQtYmluZGluZ3M6IHZlbmRvci1wcmVmaXhlczogQWRkIG1zdGFyIHZl bmRvciBwcmVmaXgKICBkdC1iaW5kaW5nczogdmVuZG9yLXByZWZpeGVzOiBBZGQgc3N0YXIgdmVu ZG9yIHByZWZpeAogIGR0LWJpbmRpbmdzOiB2ZW5kb3ItcHJlZml4ZXM6IEFkZCA3MG1haSB2ZW5k b3IgcHJlZml4CiAgZHQtYmluZGluZ3M6IHZlbmRvci1wcmVmaXhlczogQWRkIHRoaW5neS5qcCBw cmVmaXgKICBkdC1iaW5kaW5nczogYXJtOiBBZGQgbXN0YXIgWUFNTCBzY2hlbWEKICBBUk06IG1z dGFyOiBBZGQgbWFjaGluZSBmb3IgTVN0YXIvU2lnbWFzdGFyIEFybXY3IFNvQ3MKICBBUk06IG1z dGFyOiBBZGQgYmluZGluZyBkZXRhaWxzIGZvciBtc3RhcixsM2JyaWRnZQogIEFSTTogbXN0YXI6 IEFkZCBBcm12NyBiYXNlIGR0c2kKICBBUk06IG1zdGFyOiBBZGQgaW5maW5pdHkvaW5maW5pdHkz IGZhbWlseSBkdHNpcwogIEFSTTogbXN0YXI6IEFkZCBtZXJjdXJ5NSBzZXJpZXMgZHRzaXMKICBB Uk06IG1zdGFyOiBBZGQgZHRzIGZvciBtc2MzMTMoZSkgYmFzZWQgQnJlYWRCZWUgYm9hcmRzCiAg QVJNOiBtc3RhcjogQWRkIGR0cyBmb3IgNzBtYWkgbWlkcml2ZSBkMDgKCiAuLi4vZGV2aWNldHJl ZS9iaW5kaW5ncy9hcm0vbXN0YXIueWFtbCAgICAgICAgfCAzNCArKysrKysrKwogLi4uL2JpbmRp bmdzL21pc2MvbXN0YXIsbDNicmlkZ2UueWFtbCAgICAgICAgIHwgNDQgKysrKysrKysrKwogLi4u L2RldmljZXRyZWUvYmluZGluZ3MvdmVuZG9yLXByZWZpeGVzLnlhbWwgIHwgIDggKysKIE1BSU5U QUlORVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrKwogYXJjaC9h cm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKwogYXJjaC9hcm0v TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogYXJjaC9hcm0vYm9v dC9kdHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgIHwgIDQgKwogLi4uL2R0cy9pbmZpbml0 eS1tc2MzMTMtYnJlYWRiZWVfY3J1c3QuZHRzICAgIHwgMjUgKysrKysrCiBhcmNoL2FybS9ib290 L2R0cy9pbmZpbml0eS1tc2MzMTMuZHRzaSAgICAgICAgfCAxNCArKysrCiBhcmNoL2FybS9ib290 L2R0cy9pbmZpbml0eS5kdHNpICAgICAgICAgICAgICAgfCAgNyArKwogLi4uL2Jvb3QvZHRzL2lu ZmluaXR5My1tc2MzMTNlLWJyZWFkYmVlLmR0cyAgIHwgMjUgKysrKysrCiBhcmNoL2FybS9ib290 L2R0cy9pbmZpbml0eTMtbXNjMzEzZS5kdHNpICAgICAgfCAxNCArKysrCiBhcmNoL2FybS9ib290 L2R0cy9pbmZpbml0eTMuZHRzaSAgICAgICAgICAgICAgfCAgNyArKwogLi4uL2Jvb3QvZHRzL21l cmN1cnk1LXNzYzgzMzZuLW1pZHJpdmVkMDguZHRzIHwgMjUgKysrKysrCiBhcmNoL2FybS9ib290 L2R0cy9tZXJjdXJ5NS1zc2M4MzM2bi5kdHNpICAgICAgfCAxNCArKysrCiBhcmNoL2FybS9ib290 L2R0cy9tZXJjdXJ5NS5kdHNpICAgICAgICAgICAgICAgfCAgNyArKwogYXJjaC9hcm0vYm9vdC9k dHMvbXN0YXItdjcuZHRzaSAgICAgICAgICAgICAgIHwgODMgKysrKysrKysrKysrKysrKysrKwog YXJjaC9hcm0vbWFjaC1tc3Rhci9LY29uZmlnICAgICAgICAgICAgICAgICAgIHwgMjYgKysrKysr CiBhcmNoL2FybS9tYWNoLW1zdGFyL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgMSArCiBh cmNoL2FybS9tYWNoLW1zdGFyL21zdGFydjcuYyAgICAgICAgICAgICAgICAgfCA4MCArKysrKysr KysrKysrKysrKysKIDIwIGZpbGVzIGNoYW5nZWQsIDQzMiBpbnNlcnRpb25zKCspCiBjcmVhdGUg bW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9tc3Rhci55 YW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L21pc2MvbXN0YXIsbDNicmlkZ2UueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2Jv b3QvZHRzL2luZmluaXR5LW1zYzMxMy1icmVhZGJlZV9jcnVzdC5kdHMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBhcmNoL2FybS9ib290L2R0cy9pbmZpbml0eS1tc2MzMTMuZHRzaQogY3JlYXRlIG1vZGUg MTAwNjQ0IGFyY2gvYXJtL2Jvb3QvZHRzL2luZmluaXR5LmR0c2kKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBhcmNoL2FybS9ib290L2R0cy9pbmZpbml0eTMtbXNjMzEzZS1icmVhZGJlZS5kdHMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib290L2R0cy9pbmZpbml0eTMtbXNjMzEzZS5kdHNpCiBj cmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9vdC9kdHMvaW5maW5pdHkzLmR0c2kKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib290L2R0cy9tZXJjdXJ5NS1zc2M4MzM2bi1taWRyaXZl ZDA4LmR0cwogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2Jvb3QvZHRzL21lcmN1cnk1LXNz YzgzMzZuLmR0c2kKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib290L2R0cy9tZXJjdXJ5 NS5kdHNpCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9vdC9kdHMvbXN0YXItdjcuZHRz aQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtbXN0YXIvS2NvbmZpZwogY3JlYXRl IG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtbXN0YXIvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEw MDY0NCBhcmNoL2FybS9tYWNoLW1zdGFyL21zdGFydjcuYwoKLS0gCjIuMjcuMC5yYzAKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs Cg==