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=-15.4 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 582F0C48BE5 for ; Wed, 16 Jun 2021 11:17:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3A8EA60FD9 for ; Wed, 16 Jun 2021 11:17:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231373AbhFPLT3 (ORCPT ); Wed, 16 Jun 2021 07:19:29 -0400 Received: from mx0a-0064b401.pphosted.com ([205.220.166.238]:34510 "EHLO mx0a-0064b401.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229546AbhFPLT1 (ORCPT ); Wed, 16 Jun 2021 07:19:27 -0400 Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 15GBBPku031781; Wed, 16 Jun 2021 04:17:11 -0700 Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by mx0a-0064b401.pphosted.com with ESMTP id 39728b0gtx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 16 Jun 2021 04:17:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CYP6/wr9kMgXmtr8AU+vNyuOjAkkwc34CKL4M+DArqNc6BblvXGLESXTHVF3i3RtXdyq0iuPx5kWJ7i8ds7Jegn64ms870bwuDFyVedEu35O7tVxFR5PG/slsnd1oEGcIy9pCpcbUo/Kdp5dtnDN3lsTuC0sN7lZof2AC7XCM5AlAgOEH3zlCShSi9VQXn8vrtB9TL1FfnftwoU4kU71cOCizmjymkiugIVzV3bOI5UsU/7WmcZ/Z+PFmef4343Fj2hHIh66l0tNIwJob1Jwqn6Ow/GAfNY6kfssfYD/fG/dKIL8I/jA0TDfbWfIEIIsZknB0+YqzJij7RiOYK3s8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=48FB+4WB3l2NCxT7WgV1TUlrwvbP4e1wq/RG3WHaCws=; b=awLY7sv7h3BDzR6lQ235TBskqSspowvnFUnWl8AyvgHitbjgj9FwfLJxTrQmcbJpvRmc73jZ9rJpZiCXcOjfvNFTOYI9OiIDgx5z6Qn2aE+ekB9gHggTKOYCDSLMN4UDEY6nqGHZQdDNLLGwXCSzE0thVZlWx3/dei04GvRujYwaO6mgGm0mDiz95/NdHf22O5Uu9rX0S2ceySmtIOzoeTVP0pTlhGtkBC8/q8gdI7PfhXjP4VhUYZGuW7Z/LOqnnaNuEbXWZEv12PTlXsRrki8wqx26V4BIQfgSszOZp5W+gGdvAWdpWO+rhlgMEuQ3K2KkhRV5VXOnj1XrGDVcpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriversystems.onmicrosoft.com; s=selector2-windriversystems-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=48FB+4WB3l2NCxT7WgV1TUlrwvbP4e1wq/RG3WHaCws=; b=bXnHCtomtH5TDnpMb4II6S7Zsu9ZrCg/n9ze7g45Phv76DzcJiIqkQlNhmqBTJaRnc2t0JVhbiil1tukQXCLEVAp+f1j3hYh+Zo72dPPPLWtr1K3Ve3MMGbfjQoFGbRaXPS6TwszH13L5/ayDSrbPI1fTi7ROVyck+7TBGoQn3U= Authentication-Results: lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=none action=none header.from=windriver.com; Received: from CY4PR11MB0071.namprd11.prod.outlook.com (2603:10b6:910:7a::30) by CY4PR11MB0005.namprd11.prod.outlook.com (2603:10b6:910:7a::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.27; Wed, 16 Jun 2021 11:17:08 +0000 Received: from CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::40e4:b9:53a1:de74]) by CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::40e4:b9:53a1:de74%6]) with mapi id 15.20.4219.026; Wed, 16 Jun 2021 11:17:08 +0000 Subject: Re: [PATCH 25/31] arm64: zynqmp: Wire qspi on multiple boards To: Michal Simek , linux-kernel@vger.kernel.org, monstr@monstr.eu, git@xilinx.com, Viresh Kumar Cc: Krzysztof Kozlowski , Laurent Pinchart , Rob Herring , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <80671218c97ad2188df476cf1b49bcf6f64785df.1623239033.git.michal.simek@xilinx.com> <71b6423c-ab14-424f-0018-fafece13150a@windriver.com> From: "quanyang.wang" Message-ID: Date: Wed, 16 Jun 2021 19:15:12 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [60.247.85.82] X-ClientProxiedBy: BYAPR05CA0091.namprd05.prod.outlook.com (2603:10b6:a03:e0::32) To CY4PR11MB0071.namprd11.prod.outlook.com (2603:10b6:910:7a::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [128.224.162.199] (60.247.85.82) by BYAPR05CA0091.namprd05.prod.outlook.com (2603:10b6:a03:e0::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.9 via Frontend Transport; Wed, 16 Jun 2021 11:17:05 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3002ee73-2442-4b54-369b-08d930b84760 X-MS-TrafficTypeDiagnostic: CY4PR11MB0005: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lMHvUQ0zGo9IdOV8r1Lz3kSWP/lg5A4OwMX3jJrlVIyzZ6N19eJICp9ggqNz/klky2cjzVKB2DdJ/nNeBRYT/ewWfNIxXh8wfu+vDu2OxJpgNR4HxYt4nJNgqs73+AJIicd8VEvS0Tm82nDtpb1jDPTqwche85j1ztuVuYuUah3Ykzl8ecQhgCUOjPi27ZTK9sYDGeu1oUW6Ce9PMtteiE47ohqhA8jOTmD5bKBgR0IBPg0t7s+i6n0eQ3St67FwCWHO5UTzOI0TnEF2BWXIPA7SavHoQrTVy/N7eLXfbXFOdPZlMgNVX8sY/chTzBiPH0dDSn3f7Cf114pzB7crAxVFHj0BnAUaGUScVxqdOX1f1plJGPpBToCKkLxhcEWI2uaerTthOgaezDjQ6Q58eUjC8128enQw++9lyOudQiFf/f0wu/Am8NvWOA+7SdTSTJE+YYd34ZzgR3We5HwM5GlZQo5wCtsc6E9/z990sjfLS7g5hGlE80dKQnoEW2JO+FlkakzSpjIoeebwGLYn0TfUBOfFTSfZ91yac90IRHxMfXJ4RCuqEysYADI+YLSeyNr5hsH3CpFYMuF9Ns5EtQCDeBxH+rM7eHHyvRWVdo4d5SDIOqlfL1kFGEzBJyU3wuahUzJjGexMZC28rPtX4maZVFQthZZLkeskLpLvKLxzwOPWn7QuPFTk3Qea4N+EFmTx1S3RNrrP+NDY8XmSYOg/RzIFUIVJdwLSWPIO63Y= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB0071.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(396003)(346002)(39850400004)(366004)(136003)(52116002)(31696002)(8676002)(16526019)(4326008)(478600001)(86362001)(53546011)(26005)(110136005)(83380400001)(316002)(2906002)(6486002)(16576012)(54906003)(31686004)(186003)(956004)(6706004)(36756003)(38100700002)(66556008)(66476007)(2616005)(7416002)(38350700002)(6666004)(8936002)(5660300002)(66946007)(78286007)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WnRRNWhzbEhQSlhMcitTSEtsYmxkbElQdjl6eVp1RnJpd1Y1ZEpLZnJ1Qmhm?= =?utf-8?B?aitsWU1ydlpYQW1mMitIT1ZjYUlZYW5hbzJkcG1nTGtPZFd4dXVFWXlQVitw?= =?utf-8?B?SGtYM29DMWs3bFJQQW9YZS9ISFhKeThBbXNQaXdYMnZRb1V2VHZsT1NMdEpK?= =?utf-8?B?MTZOSlUvcmlnd0Z1alZUMk04RFUxOEdocUpkK2JsREZBcGY4UWd4QUpOZ2lT?= =?utf-8?B?czBRNnEwZUlQQ1JTa0dqZVBwSnpaRzdTcHR2MnUzd1h0QmRpdHRPNzhvSXdV?= =?utf-8?B?Y0tQVitwR1ZwMmp3YlVuOVUxTzBYYlRQOFFRZU55Y0R1blM5ZktobmFjN01Q?= =?utf-8?B?L3RlS09DTWw3ZXl4MkFzSDY0bENiMWtpanlsZjZtVkdma0ZlWC9rV1N2ck5Z?= =?utf-8?B?cTdSUjVHQ2hQczNtckplYlIycmZTQVNOdDBRM0NYejBRRnI2MnpzcWlWQjZL?= =?utf-8?B?TWcvN1d5R1NDbGdRMDc0WXhCaWhQTkkzMkRWNXEwemtWTlZOZWNvVEw4OUsw?= =?utf-8?B?aTlUVGV6WjVZWXR5VVpITU5jL3NVT1hxbnBJK0h6MGFlYWtNUEpNMDA5WEZw?= =?utf-8?B?a213Qkd4QXJ2dW9ycXJZbXR3RCs0Tkk0dXVSdU44MXdwQ1k5MmNPa3VrSThP?= =?utf-8?B?WXpJNXFUai9oRFBGc0k0cWdkL3hhcG9sWDdTdjh3YkFYeUI2eHAwN216NFky?= =?utf-8?B?VU9VYy9LcnRHU2s0OU1FVjhDMlZFalFyTU5WeUtaZGtxMys3ZEYxNFFCYTB4?= =?utf-8?B?eG5nSk16by9XRW8yYnA2UmNkak0zWTBFSlBHbGdVYjViVm1vZWZBcWNGalgx?= =?utf-8?B?empNZittZ0VUd3pUeXIxTWNvTXV5Vlp3M2ZWR1BOZUhJRm9LUHJzWlJxUm9D?= =?utf-8?B?cDdBQ0t4TFVUVkhUYmkzbS9KR0VhTWtxekxHc01lSUo0ejUyRTA4YjZmKzdL?= =?utf-8?B?SjY2Zlh4bFRDRU94eUlxZXgzNitxajEvUmVJYkxHRG50OW13Rk43K05tNk9r?= =?utf-8?B?M2x1dWJOUldSelhFL1gwK3UwdU9Ja2V3NDR5TllTU01lRWtTWmRBbzlLQ0g3?= =?utf-8?B?cTZGV21sMis1bW9kV1d6NkREbXlHUXhVSHBYV0l6THlRbFk4Ymc4UUpWbTdq?= =?utf-8?B?NFN1RlZHdFFWa3lJSHhFQktEaW43Mzg4NW5QMVlJQTd5M1ozaW1rYjhDQitL?= =?utf-8?B?VEdoVlBRdER4MmZzbzVDMHcwZ3RpREY1cU94NFl5MVk4emJZbWRGeUdha0RP?= =?utf-8?B?QTdmeE1WVTMyUFF0bUhxSjZCVG5jVlFzMExxY29jNkxJR3BXOXRON0xOUDZR?= =?utf-8?B?ZGlTZHFzcGYwbmJXdTFCSmNlalhBSXJXaDZYeXh0R1RpQ2ZpekM3UWlCb1lB?= =?utf-8?B?ajdCZWdrTnJqUzFUOWRjK0Fyd0Z6aEQrU1hlUmlUaWoxYmZzbjNuOU5Tc21B?= =?utf-8?B?MTQwR2FzYWlSYXlyRTlpU3J1OU0vQzB0ajVoeDZLTUdhcHlKbUl1UFZaWm02?= =?utf-8?B?TUZ5VlQwbWswSjk5R25mbU9RYVloWkJrbmtyWmx5MW9KY29mdnFnZEo1dW1L?= =?utf-8?B?NVZ3bCtraklBTkNROElZazdKOE5WcS9XenBXNnkyNTBqYlRvejFwaVVGTi83?= =?utf-8?B?d1JTelphTzNhN3pYTXh6cHlvNThOaEhHQVQxa0Y3WlRiWFdlV2c0QXFLbFVy?= =?utf-8?B?VEliRGhBV1d6MzhPTDJsVU93emZSNzlKc011dXVOclJzSms1YS8vZ3RKdTlj?= =?utf-8?Q?Y0+iWO5j396cL3Rc1KGbJzctjEGA5Bem/JEhE3W?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3002ee73-2442-4b54-369b-08d930b84760 X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB0071.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2021 11:17:08.2087 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: AP2ZPZwiA5ZDtRrotA0PmYeiBGAQIOK+s5HmiYmWVC2JPFv3fdlWygWciIF37UF0sC1+r3PGVVlbuKCo5sKc29OdmDDQoQ5FGGM4AOFWg7c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB0005 X-Proofpoint-ORIG-GUID: TmYJJrA-6fPcF9CYb65-XVMHIsxoMcRc X-Proofpoint-GUID: TmYJJrA-6fPcF9CYb65-XVMHIsxoMcRc X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.761 definitions=2021-06-16_07:2021-06-15,2021-06-16 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 phishscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 adultscore=0 impostorscore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2106160064 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Michal, On 6/16/21 6:52 PM, Michal Simek wrote: > Hi Quanyang, > > On 6/10/21 6:08 AM, quanyang.wang wrote: >> Hi Michal, >> >> On 6/9/21 7:45 PM, Michal Simek wrote: >>> Couple of boards have qspi on the board that's why enable controller and >>> describe them. >>> >>> Signed-off-by: Michal Simek >>> --- >>> >>>   .../arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts | 16 +++++++++++++++- >>>   .../arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts | 16 +++++++++++++++- >>>   .../boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts  | 14 ++++++++++++++ >>>   .../boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts  | 14 ++++++++++++++ >>>   .../arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts | 15 +++++++++++++++ >>>   .../arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts | 14 ++++++++++++++ >>>   .../arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts |  4 ++++ >>>   .../arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts | 15 +++++++++++++++ >>>   .../arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts | 15 +++++++++++++++ >>>   9 files changed, 121 insertions(+), 2 deletions(-) >>> >>> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts >>> b/arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts >>> index 2e05fa416955..f1598527e5ec 100644 >>> --- a/arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts >>> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts >>> @@ -2,7 +2,7 @@ >>>   /* >>>    * dts file for Xilinx ZynqMP ZC1232 >>>    * >>> - * (C) Copyright 2017 - 2019, Xilinx, Inc. >>> + * (C) Copyright 2017 - 2021, Xilinx, Inc. >>>    * >>>    * Michal Simek >>>    */ >>> @@ -19,6 +19,7 @@ / { >>>       aliases { >>>           serial0 = &uart0; >>>           serial1 = &dcc; >>> +        spi0 = &qspi; >>>       }; >>>         chosen { >>> @@ -36,6 +37,19 @@ &dcc { >>>       status = "okay"; >>>   }; >>>   +&qspi { >>> +    status = "okay"; >>> +    flash@0 { >>> +        compatible = "m25p80", "jedec,spi-nor"; /* 32MB */ >>> +        #address-cells = <1>; >>> +        #size-cells = <1>; >>> +        reg = <0x0>; >>> +        spi-tx-bus-width = <1>; >>> +        spi-rx-bus-width = <4>; >>> +        spi-max-frequency = <108000000>; /* Based on DC1 spec */ >>> +    }; >>> +}; >>> + >>>   &sata { >>>       status = "okay"; >>>       /* SATA OOB timing settings */ >>> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts >>> b/arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts >>> index 3d0aaa02f184..04efa1683eaa 100644 >>> --- a/arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts >>> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts >>> @@ -2,7 +2,7 @@ >>>   /* >>>    * dts file for Xilinx ZynqMP ZC1254 >>>    * >>> - * (C) Copyright 2015 - 2019, Xilinx, Inc. >>> + * (C) Copyright 2015 - 2021, Xilinx, Inc. >>>    * >>>    * Michal Simek >>>    * Siva Durga Prasad Paladugu >>> @@ -20,6 +20,7 @@ / { >>>       aliases { >>>           serial0 = &uart0; >>>           serial1 = &dcc; >>> +        spi0 = &qspi; >>>       }; >>>         chosen { >>> @@ -37,6 +38,19 @@ &dcc { >>>       status = "okay"; >>>   }; >>>   +&qspi { >>> +    status = "okay"; >>> +    flash@0 { >>> +        compatible = "m25p80", "jedec,spi-nor"; /* 32MB */ >>> +        #address-cells = <1>; >>> +        #size-cells = <1>; >>> +        reg = <0x0>; >>> +        spi-tx-bus-width = <1>; >>> +        spi-rx-bus-width = <4>; /* FIXME also DUAL configuration >>> possible */ >>> +        spi-max-frequency = <108000000>; /* Based on DC1 spec */ >>> +    }; >>> +}; >>> + >>>   &uart0 { >>>       status = "okay"; >>>   }; >>> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts >>> b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts >>> index cd406947ec34..9f176307b62a 100644 >>> --- a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts >>> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts >>> @@ -26,6 +26,7 @@ aliases { >>>           mmc1 = &sdhci1; >>>           rtc0 = &rtc; >>>           serial0 = &uart0; >>> +        spi0 = &qspi; >>>       }; >>>         chosen { >>> @@ -339,6 +340,19 @@ conf { >>>       }; >>>   }; >>>   +&qspi { >>> +    status = "okay"; >>> +    flash@0 { >>> +        compatible = "m25p80", "jedec,spi-nor"; /* Micron >>> MT25QU512ABB8ESF */ >>> +        #address-cells = <1>; >>> +        #size-cells = <1>; >>> +        reg = <0x0>; >>> +        spi-tx-bus-width = <1>; >>> +        spi-rx-bus-width = <4>; >>> +        spi-max-frequency = <108000000>; /* Based on DC1 spec */ >>> +    }; >>> +}; >>> + >>>   &rtc { >>>       status = "okay"; >>>   }; >>> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts >>> b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts >>> index 8046f0df0f35..05a2b79738af 100644 >>> --- a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts >>> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts >>> @@ -26,6 +26,7 @@ aliases { >>>           rtc0 = &rtc; >>>           serial0 = &uart0; >>>           serial1 = &uart1; >>> +        spi0 = &qspi; >>>       }; >>>         chosen { >>> @@ -161,6 +162,19 @@ &i2c1 { >>>       status = "okay"; >>>   }; >>>   +&qspi { >>> +    status = "okay"; >>> +    flash@0 { >>> +        compatible = "m25p80", "jedec,spi-nor"; /* 32MB */ >>> +        #address-cells = <1>; >>> +        #size-cells = <1>; >>> +        reg = <0x0>; >>> +        spi-tx-bus-width = <1>; >>> +        spi-rx-bus-width = <4>; /* also DUAL configuration possible */ >>> +        spi-max-frequency = <108000000>; /* Based on DC1 spec */ >>> +    }; >>> +}; >>> + >>>   &rtc { >>>       status = "okay"; >>>   }; >>> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts >>> b/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts >>> index 3cbc51b4587d..becfc23a5610 100644 >>> --- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts >>> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts >>> @@ -30,6 +30,7 @@ aliases { >>>           serial0 = &uart0; >>>           serial1 = &uart1; >>>           serial2 = &dcc; >>> +        spi0 = &qspi; >>>       }; >>>         chosen { >>> @@ -934,6 +935,20 @@ &psgtr { >>>       clock-names = "ref0", "ref1", "ref2", "ref3"; >>>   }; >>>   +&qspi { >>> +    status = "okay"; >>> +    is-dual = <1>; >>> +    flash@0 { >>> +        compatible = "m25p80", "jedec,spi-nor"; /* 32MB */ >> Maybe here should be "64MB" not "32MB". >> There are 2 mt25qu512a flashes at zcu102 board, and each of them is >> 64MB. Since "is-dual" mode is not enabled, so we can only observe 64MB >> size from boot log: >> >> spi-nor spi0.0: found mt25qu512a, expected m25p80 >> spi-nor spi0.0: mt25qu512a (65536 Kbytes) >> >> And I only verify the flash size in zcu102 board and not sure if the >> flash size comments are correct for other boards in this patch. > > I have double checked revA and it really has 16MB+16MB configuration > where only one is visible. Sorry for the noise. I made a mistake checking it at the board zcu102 Rev1.1 not RevA. Best Regards, Quanyang > I will use only half of that listed size which is corresponding with > single configuration and also remove is-dual from 102/106/111. > > This change will be in v3 version because forget to include it in v2. > > Thanks, > Michal > 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=-15.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 2D48AC48BE5 for ; Wed, 16 Jun 2021 11:19:09 +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 E67FF61351 for ; Wed, 16 Jun 2021 11:19:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E67FF61351 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=windriver.com 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=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=pfFQmk+J4azyq1F7UhX89E0eb0XGEa8JyK20IcZSa2Y=; b=ncf1iEazeKfl/00xkU+vV1MZmX w5LSIRWG1hK5dpmtKaWULDq6k/+UvosUS0ZurLAKv1RNw/wZ/xlP9Io8Gj6dPyBx7TyOQ/qO6FEpc WDxcQvMo8/QBUQQq+GtCC2xKWoA/1rxUu9XtbT5GSNIntZqeKyH8hNwyCa27VKuTFCjNu9YOgnQfV 89HtAbKr0ZY+dYYNYCOB12gf/sPPS2BBAA9UOY85au0TleqsfWwP6uc8BgoP6AxjRoXStCHaGWJh7 WXGdZDeq52HQXPzH39ogWcUgQlfU2CULLwBPLX1Kf3YF5bmB1Vx3MOKiCpZ0sJKY9yM7x2yskZrML bLuDkpvQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ltTXu-006068-St; Wed, 16 Jun 2021 11:17:23 +0000 Received: from mx0a-0064b401.pphosted.com ([205.220.166.238]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ltTXq-00605b-L3 for linux-arm-kernel@lists.infradead.org; Wed, 16 Jun 2021 11:17:20 +0000 Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 15GBBPku031781; Wed, 16 Jun 2021 04:17:11 -0700 Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by mx0a-0064b401.pphosted.com with ESMTP id 39728b0gtx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 16 Jun 2021 04:17:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CYP6/wr9kMgXmtr8AU+vNyuOjAkkwc34CKL4M+DArqNc6BblvXGLESXTHVF3i3RtXdyq0iuPx5kWJ7i8ds7Jegn64ms870bwuDFyVedEu35O7tVxFR5PG/slsnd1oEGcIy9pCpcbUo/Kdp5dtnDN3lsTuC0sN7lZof2AC7XCM5AlAgOEH3zlCShSi9VQXn8vrtB9TL1FfnftwoU4kU71cOCizmjymkiugIVzV3bOI5UsU/7WmcZ/Z+PFmef4343Fj2hHIh66l0tNIwJob1Jwqn6Ow/GAfNY6kfssfYD/fG/dKIL8I/jA0TDfbWfIEIIsZknB0+YqzJij7RiOYK3s8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=48FB+4WB3l2NCxT7WgV1TUlrwvbP4e1wq/RG3WHaCws=; b=awLY7sv7h3BDzR6lQ235TBskqSspowvnFUnWl8AyvgHitbjgj9FwfLJxTrQmcbJpvRmc73jZ9rJpZiCXcOjfvNFTOYI9OiIDgx5z6Qn2aE+ekB9gHggTKOYCDSLMN4UDEY6nqGHZQdDNLLGwXCSzE0thVZlWx3/dei04GvRujYwaO6mgGm0mDiz95/NdHf22O5Uu9rX0S2ceySmtIOzoeTVP0pTlhGtkBC8/q8gdI7PfhXjP4VhUYZGuW7Z/LOqnnaNuEbXWZEv12PTlXsRrki8wqx26V4BIQfgSszOZp5W+gGdvAWdpWO+rhlgMEuQ3K2KkhRV5VXOnj1XrGDVcpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriversystems.onmicrosoft.com; s=selector2-windriversystems-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=48FB+4WB3l2NCxT7WgV1TUlrwvbP4e1wq/RG3WHaCws=; b=bXnHCtomtH5TDnpMb4II6S7Zsu9ZrCg/n9ze7g45Phv76DzcJiIqkQlNhmqBTJaRnc2t0JVhbiil1tukQXCLEVAp+f1j3hYh+Zo72dPPPLWtr1K3Ve3MMGbfjQoFGbRaXPS6TwszH13L5/ayDSrbPI1fTi7ROVyck+7TBGoQn3U= Authentication-Results: lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=none action=none header.from=windriver.com; Received: from CY4PR11MB0071.namprd11.prod.outlook.com (2603:10b6:910:7a::30) by CY4PR11MB0005.namprd11.prod.outlook.com (2603:10b6:910:7a::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.27; Wed, 16 Jun 2021 11:17:08 +0000 Received: from CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::40e4:b9:53a1:de74]) by CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::40e4:b9:53a1:de74%6]) with mapi id 15.20.4219.026; Wed, 16 Jun 2021 11:17:08 +0000 Subject: Re: [PATCH 25/31] arm64: zynqmp: Wire qspi on multiple boards To: Michal Simek , linux-kernel@vger.kernel.org, monstr@monstr.eu, git@xilinx.com, Viresh Kumar Cc: Krzysztof Kozlowski , Laurent Pinchart , Rob Herring , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <80671218c97ad2188df476cf1b49bcf6f64785df.1623239033.git.michal.simek@xilinx.com> <71b6423c-ab14-424f-0018-fafece13150a@windriver.com> From: "quanyang.wang" Message-ID: Date: Wed, 16 Jun 2021 19:15:12 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 In-Reply-To: Content-Language: en-US X-Originating-IP: [60.247.85.82] X-ClientProxiedBy: BYAPR05CA0091.namprd05.prod.outlook.com (2603:10b6:a03:e0::32) To CY4PR11MB0071.namprd11.prod.outlook.com (2603:10b6:910:7a::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [128.224.162.199] (60.247.85.82) by BYAPR05CA0091.namprd05.prod.outlook.com (2603:10b6:a03:e0::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.9 via Frontend Transport; Wed, 16 Jun 2021 11:17:05 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3002ee73-2442-4b54-369b-08d930b84760 X-MS-TrafficTypeDiagnostic: CY4PR11MB0005: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lMHvUQ0zGo9IdOV8r1Lz3kSWP/lg5A4OwMX3jJrlVIyzZ6N19eJICp9ggqNz/klky2cjzVKB2DdJ/nNeBRYT/ewWfNIxXh8wfu+vDu2OxJpgNR4HxYt4nJNgqs73+AJIicd8VEvS0Tm82nDtpb1jDPTqwche85j1ztuVuYuUah3Ykzl8ecQhgCUOjPi27ZTK9sYDGeu1oUW6Ce9PMtteiE47ohqhA8jOTmD5bKBgR0IBPg0t7s+i6n0eQ3St67FwCWHO5UTzOI0TnEF2BWXIPA7SavHoQrTVy/N7eLXfbXFOdPZlMgNVX8sY/chTzBiPH0dDSn3f7Cf114pzB7crAxVFHj0BnAUaGUScVxqdOX1f1plJGPpBToCKkLxhcEWI2uaerTthOgaezDjQ6Q58eUjC8128enQw++9lyOudQiFf/f0wu/Am8NvWOA+7SdTSTJE+YYd34ZzgR3We5HwM5GlZQo5wCtsc6E9/z990sjfLS7g5hGlE80dKQnoEW2JO+FlkakzSpjIoeebwGLYn0TfUBOfFTSfZ91yac90IRHxMfXJ4RCuqEysYADI+YLSeyNr5hsH3CpFYMuF9Ns5EtQCDeBxH+rM7eHHyvRWVdo4d5SDIOqlfL1kFGEzBJyU3wuahUzJjGexMZC28rPtX4maZVFQthZZLkeskLpLvKLxzwOPWn7QuPFTk3Qea4N+EFmTx1S3RNrrP+NDY8XmSYOg/RzIFUIVJdwLSWPIO63Y= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY4PR11MB0071.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39850400004)(366004)(136003)(52116002)(31696002)(8676002)(16526019)(4326008)(478600001)(86362001)(53546011)(26005)(110136005)(83380400001)(316002)(2906002)(6486002)(16576012)(54906003)(31686004)(186003)(956004)(6706004)(36756003)(38100700002)(66556008)(66476007)(2616005)(7416002)(38350700002)(6666004)(8936002)(5660300002)(66946007)(78286007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WnRRNWhzbEhQSlhMcitTSEtsYmxkbElQdjl6eVp1RnJpd1Y1ZEpLZnJ1Qmhm?= =?utf-8?B?aitsWU1ydlpYQW1mMitIT1ZjYUlZYW5hbzJkcG1nTGtPZFd4dXVFWXlQVitw?= =?utf-8?B?SGtYM29DMWs3bFJQQW9YZS9ISFhKeThBbXNQaXdYMnZRb1V2VHZsT1NMdEpK?= =?utf-8?B?MTZOSlUvcmlnd0Z1alZUMk04RFUxOEdocUpkK2JsREZBcGY4UWd4QUpOZ2lT?= =?utf-8?B?czBRNnEwZUlQQ1JTa0dqZVBwSnpaRzdTcHR2MnUzd1h0QmRpdHRPNzhvSXdV?= =?utf-8?B?Y0tQVitwR1ZwMmp3YlVuOVUxTzBYYlRQOFFRZU55Y0R1blM5ZktobmFjN01Q?= =?utf-8?B?L3RlS09DTWw3ZXl4MkFzSDY0bENiMWtpanlsZjZtVkdma0ZlWC9rV1N2ck5Z?= =?utf-8?B?cTdSUjVHQ2hQczNtckplYlIycmZTQVNOdDBRM0NYejBRRnI2MnpzcWlWQjZL?= =?utf-8?B?TWcvN1d5R1NDbGdRMDc0WXhCaWhQTkkzMkRWNXEwemtWTlZOZWNvVEw4OUsw?= =?utf-8?B?aTlUVGV6WjVZWXR5VVpITU5jL3NVT1hxbnBJK0h6MGFlYWtNUEpNMDA5WEZw?= =?utf-8?B?a213Qkd4QXJ2dW9ycXJZbXR3RCs0Tkk0dXVSdU44MXdwQ1k5MmNPa3VrSThP?= =?utf-8?B?WXpJNXFUai9oRFBGc0k0cWdkL3hhcG9sWDdTdjh3YkFYeUI2eHAwN216NFky?= =?utf-8?B?VU9VYy9LcnRHU2s0OU1FVjhDMlZFalFyTU5WeUtaZGtxMys3ZEYxNFFCYTB4?= =?utf-8?B?eG5nSk16by9XRW8yYnA2UmNkak0zWTBFSlBHbGdVYjViVm1vZWZBcWNGalgx?= =?utf-8?B?empNZittZ0VUd3pUeXIxTWNvTXV5Vlp3M2ZWR1BOZUhJRm9LUHJzWlJxUm9D?= =?utf-8?B?cDdBQ0t4TFVUVkhUYmkzbS9KR0VhTWtxekxHc01lSUo0ejUyRTA4YjZmKzdL?= =?utf-8?B?SjY2Zlh4bFRDRU94eUlxZXgzNitxajEvUmVJYkxHRG50OW13Rk43K05tNk9r?= =?utf-8?B?M2x1dWJOUldSelhFL1gwK3UwdU9Ja2V3NDR5TllTU01lRWtTWmRBbzlLQ0g3?= =?utf-8?B?cTZGV21sMis1bW9kV1d6NkREbXlHUXhVSHBYV0l6THlRbFk4Ymc4UUpWbTdq?= =?utf-8?B?NFN1RlZHdFFWa3lJSHhFQktEaW43Mzg4NW5QMVlJQTd5M1ozaW1rYjhDQitL?= =?utf-8?B?VEdoVlBRdER4MmZzbzVDMHcwZ3RpREY1cU94NFl5MVk4emJZbWRGeUdha0RP?= =?utf-8?B?QTdmeE1WVTMyUFF0bUhxSjZCVG5jVlFzMExxY29jNkxJR3BXOXRON0xOUDZR?= =?utf-8?B?ZGlTZHFzcGYwbmJXdTFCSmNlalhBSXJXaDZYeXh0R1RpQ2ZpekM3UWlCb1lB?= =?utf-8?B?ajdCZWdrTnJqUzFUOWRjK0Fyd0Z6aEQrU1hlUmlUaWoxYmZzbjNuOU5Tc21B?= =?utf-8?B?MTQwR2FzYWlSYXlyRTlpU3J1OU0vQzB0ajVoeDZLTUdhcHlKbUl1UFZaWm02?= =?utf-8?B?TUZ5VlQwbWswSjk5R25mbU9RYVloWkJrbmtyWmx5MW9KY29mdnFnZEo1dW1L?= =?utf-8?B?NVZ3bCtraklBTkNROElZazdKOE5WcS9XenBXNnkyNTBqYlRvejFwaVVGTi83?= =?utf-8?B?d1JTelphTzNhN3pYTXh6cHlvNThOaEhHQVQxa0Y3WlRiWFdlV2c0QXFLbFVy?= =?utf-8?B?VEliRGhBV1d6MzhPTDJsVU93emZSNzlKc011dXVOclJzSms1YS8vZ3RKdTlj?= =?utf-8?Q?Y0+iWO5j396cL3Rc1KGbJzctjEGA5Bem/JEhE3W?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3002ee73-2442-4b54-369b-08d930b84760 X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB0071.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2021 11:17:08.2087 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: AP2ZPZwiA5ZDtRrotA0PmYeiBGAQIOK+s5HmiYmWVC2JPFv3fdlWygWciIF37UF0sC1+r3PGVVlbuKCo5sKc29OdmDDQoQ5FGGM4AOFWg7c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB0005 X-Proofpoint-ORIG-GUID: TmYJJrA-6fPcF9CYb65-XVMHIsxoMcRc X-Proofpoint-GUID: TmYJJrA-6fPcF9CYb65-XVMHIsxoMcRc X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.761 definitions=2021-06-16_07:2021-06-15, 2021-06-16 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 phishscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 adultscore=0 impostorscore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2106160064 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210616_041718_814699_C9052CBC X-CRM114-Status: GOOD ( 16.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTWljaGFsLAoKT24gNi8xNi8yMSA2OjUyIFBNLCBNaWNoYWwgU2ltZWsgd3JvdGU6Cj4gSGkg UXVhbnlhbmcsCj4gCj4gT24gNi8xMC8yMSA2OjA4IEFNLCBxdWFueWFuZy53YW5nIHdyb3RlOgo+ PiBIaSBNaWNoYWwsCj4+Cj4+IE9uIDYvOS8yMSA3OjQ1IFBNLCBNaWNoYWwgU2ltZWsgd3JvdGU6 Cj4+PiBDb3VwbGUgb2YgYm9hcmRzIGhhdmUgcXNwaSBvbiB0aGUgYm9hcmQgdGhhdCdzIHdoeSBl bmFibGUgY29udHJvbGxlciBhbmQKPj4+IGRlc2NyaWJlIHRoZW0uCj4+Pgo+Pj4gU2lnbmVkLW9m Zi1ieTogTWljaGFsIFNpbWVrIDxtaWNoYWwuc2ltZWtAeGlsaW54LmNvbT4KPj4+IC0tLQo+Pj4K Pj4+ICDCoCAuLi4vYXJtNjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC16YzEyMzItcmV2QS5kdHMg fCAxNiArKysrKysrKysrKysrKystCj4+PiAgwqAgLi4uL2FybTY0L2Jvb3QvZHRzL3hpbGlueC96 eW5xbXAtemMxMjU0LXJldkEuZHRzIHwgMTYgKysrKysrKysrKysrKysrLQo+Pj4gIMKgIC4uLi9i b290L2R0cy94aWxpbngvenlucW1wLXpjMTc1MS14bTAxNS1kYzEuZHRzwqAgfCAxNCArKysrKysr KysrKysrKwo+Pj4gIMKgIC4uLi9ib290L2R0cy94aWxpbngvenlucW1wLXpjMTc1MS14bTAxOC1k YzQuZHRzwqAgfCAxNCArKysrKysrKysrKysrKwo+Pj4gIMKgIC4uLi9hcm02NC9ib290L2R0cy94 aWxpbngvenlucW1wLXpjdTEwMi1yZXZBLmR0cyB8IDE1ICsrKysrKysrKysrKysrKwo+Pj4gIMKg IC4uLi9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXpjdTEwNC1yZXZBLmR0cyB8IDE0ICsr KysrKysrKysrKysrCj4+PiAgwqAgLi4uL2FybTY0L2Jvb3QvZHRzL3hpbGlueC96eW5xbXAtemN1 MTA0LXJldkMuZHRzIHzCoCA0ICsrKysKPj4+ICDCoCAuLi4vYXJtNjQvYm9vdC9kdHMveGlsaW54 L3p5bnFtcC16Y3UxMDYtcmV2QS5kdHMgfCAxNSArKysrKysrKysrKysrKysKPj4+ICDCoCAuLi4v YXJtNjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC16Y3UxMTEtcmV2QS5kdHMgfCAxNSArKysrKysr KysrKysrKysKPj4+ICDCoCA5IGZpbGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3hpbGlu eC96eW5xbXAtemMxMjMyLXJldkEuZHRzCj4+PiBiL2FyY2gvYXJtNjQvYm9vdC9kdHMveGlsaW54 L3p5bnFtcC16YzEyMzItcmV2QS5kdHMKPj4+IGluZGV4IDJlMDVmYTQxNjk1NS4uZjE1OTg1Mjdl NWVjIDEwMDY0NAo+Pj4gLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXpj MTIzMi1yZXZBLmR0cwo+Pj4gKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1w LXpjMTIzMi1yZXZBLmR0cwo+Pj4gQEAgLTIsNyArMiw3IEBACj4+PiAgwqAgLyoKPj4+ICDCoMKg ICogZHRzIGZpbGUgZm9yIFhpbGlueCBaeW5xTVAgWkMxMjMyCj4+PiAgwqDCoCAqCj4+PiAtICog KEMpIENvcHlyaWdodCAyMDE3IC0gMjAxOSwgWGlsaW54LCBJbmMuCj4+PiArICogKEMpIENvcHly aWdodCAyMDE3IC0gMjAyMSwgWGlsaW54LCBJbmMuCj4+PiAgwqDCoCAqCj4+PiAgwqDCoCAqIE1p Y2hhbCBTaW1layA8bWljaGFsLnNpbWVrQHhpbGlueC5jb20+Cj4+PiAgwqDCoCAqLwo+Pj4gQEAg LTE5LDYgKzE5LDcgQEAgLyB7Cj4+PiAgwqDCoMKgwqDCoCBhbGlhc2VzIHsKPj4+ICDCoMKgwqDC oMKgwqDCoMKgwqAgc2VyaWFsMCA9ICZ1YXJ0MDsKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgc2Vy aWFsMSA9ICZkY2M7Cj4+PiArwqDCoMKgwqDCoMKgwqAgc3BpMCA9ICZxc3BpOwo+Pj4gIMKgwqDC oMKgwqAgfTsKPj4+ICDCoCDCoMKgwqDCoMKgIGNob3NlbiB7Cj4+PiBAQCAtMzYsNiArMzcsMTkg QEAgJmRjYyB7Cj4+PiAgwqDCoMKgwqDCoCBzdGF0dXMgPSAib2theSI7Cj4+PiAgwqAgfTsKPj4+ ICDCoCArJnFzcGkgewo+Pj4gK8KgwqDCoCBzdGF0dXMgPSAib2theSI7Cj4+PiArwqDCoMKgIGZs YXNoQDAgewo+Pj4gK8KgwqDCoMKgwqDCoMKgIGNvbXBhdGlibGUgPSAibTI1cDgwIiwgImplZGVj LHNwaS1ub3IiOyAvKiAzMk1CICovCj4+PiArwqDCoMKgwqDCoMKgwqAgI2FkZHJlc3MtY2VsbHMg PSA8MT47Cj4+PiArwqDCoMKgwqDCoMKgwqAgI3NpemUtY2VsbHMgPSA8MT47Cj4+PiArwqDCoMKg wqDCoMKgwqAgcmVnID0gPDB4MD47Cj4+PiArwqDCoMKgwqDCoMKgwqAgc3BpLXR4LWJ1cy13aWR0 aCA9IDwxPjsKPj4+ICvCoMKgwqDCoMKgwqDCoCBzcGktcngtYnVzLXdpZHRoID0gPDQ+Owo+Pj4g K8KgwqDCoMKgwqDCoMKgIHNwaS1tYXgtZnJlcXVlbmN5ID0gPDEwODAwMDAwMD47IC8qIEJhc2Vk IG9uIERDMSBzcGVjICovCj4+PiArwqDCoMKgIH07Cj4+PiArfTsKPj4+ICsKPj4+ICDCoCAmc2F0 YSB7Cj4+PiAgwqDCoMKgwqDCoCBzdGF0dXMgPSAib2theSI7Cj4+PiAgwqDCoMKgwqDCoCAvKiBT QVRBIE9PQiB0aW1pbmcgc2V0dGluZ3MgKi8KPj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jv b3QvZHRzL3hpbGlueC96eW5xbXAtemMxMjU0LXJldkEuZHRzCj4+PiBiL2FyY2gvYXJtNjQvYm9v dC9kdHMveGlsaW54L3p5bnFtcC16YzEyNTQtcmV2QS5kdHMKPj4+IGluZGV4IDNkMGFhYTAyZjE4 NC4uMDRlZmExNjgzZWFhIDEwMDY0NAo+Pj4gLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy94aWxp bngvenlucW1wLXpjMTI1NC1yZXZBLmR0cwo+Pj4gKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy94 aWxpbngvenlucW1wLXpjMTI1NC1yZXZBLmR0cwo+Pj4gQEAgLTIsNyArMiw3IEBACj4+PiAgwqAg LyoKPj4+ICDCoMKgICogZHRzIGZpbGUgZm9yIFhpbGlueCBaeW5xTVAgWkMxMjU0Cj4+PiAgwqDC oCAqCj4+PiAtICogKEMpIENvcHlyaWdodCAyMDE1IC0gMjAxOSwgWGlsaW54LCBJbmMuCj4+PiAr ICogKEMpIENvcHlyaWdodCAyMDE1IC0gMjAyMSwgWGlsaW54LCBJbmMuCj4+PiAgwqDCoCAqCj4+ PiAgwqDCoCAqIE1pY2hhbCBTaW1layA8bWljaGFsLnNpbWVrQHhpbGlueC5jb20+Cj4+PiAgwqDC oCAqIFNpdmEgRHVyZ2EgUHJhc2FkIFBhbGFkdWd1IDxzaXZhZHVyQHhpbGlueC5jb20+Cj4+PiBA QCAtMjAsNiArMjAsNyBAQCAvIHsKPj4+ICDCoMKgwqDCoMKgIGFsaWFzZXMgewo+Pj4gIMKgwqDC oMKgwqDCoMKgwqDCoCBzZXJpYWwwID0gJnVhcnQwOwo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCBz ZXJpYWwxID0gJmRjYzsKPj4+ICvCoMKgwqDCoMKgwqDCoCBzcGkwID0gJnFzcGk7Cj4+PiAgwqDC oMKgwqDCoCB9Owo+Pj4gIMKgIMKgwqDCoMKgwqAgY2hvc2VuIHsKPj4+IEBAIC0zNyw2ICszOCwx OSBAQCAmZGNjIHsKPj4+ICDCoMKgwqDCoMKgIHN0YXR1cyA9ICJva2F5IjsKPj4+ICDCoCB9Owo+ Pj4gIMKgICsmcXNwaSB7Cj4+PiArwqDCoMKgIHN0YXR1cyA9ICJva2F5IjsKPj4+ICvCoMKgwqAg Zmxhc2hAMCB7Cj4+PiArwqDCoMKgwqDCoMKgwqAgY29tcGF0aWJsZSA9ICJtMjVwODAiLCAiamVk ZWMsc3BpLW5vciI7IC8qIDMyTUIgKi8KPj4+ICvCoMKgwqDCoMKgwqDCoCAjYWRkcmVzcy1jZWxs cyA9IDwxPjsKPj4+ICvCoMKgwqDCoMKgwqDCoCAjc2l6ZS1jZWxscyA9IDwxPjsKPj4+ICvCoMKg wqDCoMKgwqDCoCByZWcgPSA8MHgwPjsKPj4+ICvCoMKgwqDCoMKgwqDCoCBzcGktdHgtYnVzLXdp ZHRoID0gPDE+Owo+Pj4gK8KgwqDCoMKgwqDCoMKgIHNwaS1yeC1idXMtd2lkdGggPSA8ND47IC8q IEZJWE1FIGFsc28gRFVBTCBjb25maWd1cmF0aW9uCj4+PiBwb3NzaWJsZSAqLwo+Pj4gK8KgwqDC oMKgwqDCoMKgIHNwaS1tYXgtZnJlcXVlbmN5ID0gPDEwODAwMDAwMD47IC8qIEJhc2VkIG9uIERD MSBzcGVjICovCj4+PiArwqDCoMKgIH07Cj4+PiArfTsKPj4+ICsKPj4+ICDCoCAmdWFydDAgewo+ Pj4gIMKgwqDCoMKgwqAgc3RhdHVzID0gIm9rYXkiOwo+Pj4gIMKgIH07Cj4+PiBkaWZmIC0tZ2l0 IGEvYXJjaC9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXpjMTc1MS14bTAxNS1kYzEuZHRz Cj4+PiBiL2FyY2gvYXJtNjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC16YzE3NTEteG0wMTUtZGMx LmR0cwo+Pj4gaW5kZXggY2Q0MDY5NDdlYzM0Li45ZjE3NjMwN2I2MmEgMTAwNjQ0Cj4+PiAtLS0g YS9hcmNoL2FybTY0L2Jvb3QvZHRzL3hpbGlueC96eW5xbXAtemMxNzUxLXhtMDE1LWRjMS5kdHMK Pj4+ICsrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC16YzE3NTEteG0wMTUt ZGMxLmR0cwo+Pj4gQEAgLTI2LDYgKzI2LDcgQEAgYWxpYXNlcyB7Cj4+PiAgwqDCoMKgwqDCoMKg wqDCoMKgIG1tYzEgPSAmc2RoY2kxOwo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCBydGMwID0gJnJ0 YzsKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgc2VyaWFsMCA9ICZ1YXJ0MDsKPj4+ICvCoMKgwqDC oMKgwqDCoCBzcGkwID0gJnFzcGk7Cj4+PiAgwqDCoMKgwqDCoCB9Owo+Pj4gIMKgIMKgwqDCoMKg wqAgY2hvc2VuIHsKPj4+IEBAIC0zMzksNiArMzQwLDE5IEBAIGNvbmYgewo+Pj4gIMKgwqDCoMKg wqAgfTsKPj4+ICDCoCB9Owo+Pj4gIMKgICsmcXNwaSB7Cj4+PiArwqDCoMKgIHN0YXR1cyA9ICJv a2F5IjsKPj4+ICvCoMKgwqAgZmxhc2hAMCB7Cj4+PiArwqDCoMKgwqDCoMKgwqAgY29tcGF0aWJs ZSA9ICJtMjVwODAiLCAiamVkZWMsc3BpLW5vciI7IC8qIE1pY3Jvbgo+Pj4gTVQyNVFVNTEyQUJC OEVTRiAqLwo+Pj4gK8KgwqDCoMKgwqDCoMKgICNhZGRyZXNzLWNlbGxzID0gPDE+Owo+Pj4gK8Kg wqDCoMKgwqDCoMKgICNzaXplLWNlbGxzID0gPDE+Owo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJlZyA9 IDwweDA+Owo+Pj4gK8KgwqDCoMKgwqDCoMKgIHNwaS10eC1idXMtd2lkdGggPSA8MT47Cj4+PiAr wqDCoMKgwqDCoMKgwqAgc3BpLXJ4LWJ1cy13aWR0aCA9IDw0PjsKPj4+ICvCoMKgwqDCoMKgwqDC oCBzcGktbWF4LWZyZXF1ZW5jeSA9IDwxMDgwMDAwMDA+OyAvKiBCYXNlZCBvbiBEQzEgc3BlYyAq Lwo+Pj4gK8KgwqDCoCB9Owo+Pj4gK307Cj4+PiArCj4+PiAgwqAgJnJ0YyB7Cj4+PiAgwqDCoMKg wqDCoCBzdGF0dXMgPSAib2theSI7Cj4+PiAgwqAgfTsKPj4+IGRpZmYgLS1naXQgYS9hcmNoL2Fy bTY0L2Jvb3QvZHRzL3hpbGlueC96eW5xbXAtemMxNzUxLXhtMDE4LWRjNC5kdHMKPj4+IGIvYXJj aC9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXpjMTc1MS14bTAxOC1kYzQuZHRzCj4+PiBp bmRleCA4MDQ2ZjBkZjBmMzUuLjA1YTJiNzk3MzhhZiAxMDA2NDQKPj4+IC0tLSBhL2FyY2gvYXJt NjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC16YzE3NTEteG0wMTgtZGM0LmR0cwo+Pj4gKysrIGIv YXJjaC9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXpjMTc1MS14bTAxOC1kYzQuZHRzCj4+ PiBAQCAtMjYsNiArMjYsNyBAQCBhbGlhc2VzIHsKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgcnRj MCA9ICZydGM7Cj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgIHNlcmlhbDAgPSAmdWFydDA7Cj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgIHNlcmlhbDEgPSAmdWFydDE7Cj4+PiArwqDCoMKgwqDCoMKgwqAg c3BpMCA9ICZxc3BpOwo+Pj4gIMKgwqDCoMKgwqAgfTsKPj4+ICDCoCDCoMKgwqDCoMKgIGNob3Nl biB7Cj4+PiBAQCAtMTYxLDYgKzE2MiwxOSBAQCAmaTJjMSB7Cj4+PiAgwqDCoMKgwqDCoCBzdGF0 dXMgPSAib2theSI7Cj4+PiAgwqAgfTsKPj4+ICDCoCArJnFzcGkgewo+Pj4gK8KgwqDCoCBzdGF0 dXMgPSAib2theSI7Cj4+PiArwqDCoMKgIGZsYXNoQDAgewo+Pj4gK8KgwqDCoMKgwqDCoMKgIGNv bXBhdGlibGUgPSAibTI1cDgwIiwgImplZGVjLHNwaS1ub3IiOyAvKiAzMk1CICovCj4+PiArwqDC oMKgwqDCoMKgwqAgI2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4+PiArwqDCoMKgwqDCoMKgwqAgI3Np emUtY2VsbHMgPSA8MT47Cj4+PiArwqDCoMKgwqDCoMKgwqAgcmVnID0gPDB4MD47Cj4+PiArwqDC oMKgwqDCoMKgwqAgc3BpLXR4LWJ1cy13aWR0aCA9IDwxPjsKPj4+ICvCoMKgwqDCoMKgwqDCoCBz cGktcngtYnVzLXdpZHRoID0gPDQ+OyAvKiBhbHNvIERVQUwgY29uZmlndXJhdGlvbiBwb3NzaWJs ZSAqLwo+Pj4gK8KgwqDCoMKgwqDCoMKgIHNwaS1tYXgtZnJlcXVlbmN5ID0gPDEwODAwMDAwMD47 IC8qIEJhc2VkIG9uIERDMSBzcGVjICovCj4+PiArwqDCoMKgIH07Cj4+PiArfTsKPj4+ICsKPj4+ ICDCoCAmcnRjIHsKPj4+ICDCoMKgwqDCoMKgIHN0YXR1cyA9ICJva2F5IjsKPj4+ICDCoCB9Owo+ Pj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMveGlsaW54L3p5bnFtcC16Y3UxMDIt cmV2QS5kdHMKPj4+IGIvYXJjaC9hcm02NC9ib290L2R0cy94aWxpbngvenlucW1wLXpjdTEwMi1y ZXZBLmR0cwo+Pj4gaW5kZXggM2NiYzUxYjQ1ODdkLi5iZWNmYzIzYTU2MTAgMTAwNjQ0Cj4+PiAt LS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3hpbGlueC96eW5xbXAtemN1MTAyLXJldkEuZHRzCj4+ PiArKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3hpbGlueC96eW5xbXAtemN1MTAyLXJldkEuZHRz Cj4+PiBAQCAtMzAsNiArMzAsNyBAQCBhbGlhc2VzIHsKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAg c2VyaWFsMCA9ICZ1YXJ0MDsKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgc2VyaWFsMSA9ICZ1YXJ0 MTsKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgc2VyaWFsMiA9ICZkY2M7Cj4+PiArwqDCoMKgwqDC oMKgwqAgc3BpMCA9ICZxc3BpOwo+Pj4gIMKgwqDCoMKgwqAgfTsKPj4+ICDCoCDCoMKgwqDCoMKg IGNob3NlbiB7Cj4+PiBAQCAtOTM0LDYgKzkzNSwyMCBAQCAmcHNndHIgewo+Pj4gIMKgwqDCoMKg wqAgY2xvY2stbmFtZXMgPSAicmVmMCIsICJyZWYxIiwgInJlZjIiLCAicmVmMyI7Cj4+PiAgwqAg fTsKPj4+ICDCoCArJnFzcGkgewo+Pj4gK8KgwqDCoCBzdGF0dXMgPSAib2theSI7Cj4+PiArwqDC oMKgIGlzLWR1YWwgPSA8MT47Cj4+PiArwqDCoMKgIGZsYXNoQDAgewo+Pj4gK8KgwqDCoMKgwqDC oMKgIGNvbXBhdGlibGUgPSAibTI1cDgwIiwgImplZGVjLHNwaS1ub3IiOyAvKiAzMk1CICovCj4+ IE1heWJlIGhlcmUgc2hvdWxkIGJlICI2NE1CIiBub3QgIjMyTUIiLgo+PiBUaGVyZSBhcmUgMiBt dDI1cXU1MTJhIGZsYXNoZXMgYXQgemN1MTAyIGJvYXJkLCBhbmQgZWFjaCBvZiB0aGVtIGlzCj4+ IDY0TUIuIFNpbmNlICJpcy1kdWFsIiBtb2RlIGlzIG5vdCBlbmFibGVkLCBzbyB3ZSBjYW4gb25s eSBvYnNlcnZlIDY0TUIKPj4gc2l6ZSBmcm9tIGJvb3QgbG9nOgo+Pgo+PiBzcGktbm9yIHNwaTAu MDogZm91bmQgbXQyNXF1NTEyYSwgZXhwZWN0ZWQgbTI1cDgwCj4+IHNwaS1ub3Igc3BpMC4wOiBt dDI1cXU1MTJhICg2NTUzNiBLYnl0ZXMpCj4+Cj4+IEFuZCBJIG9ubHkgdmVyaWZ5IHRoZSBmbGFz aCBzaXplIGluIHpjdTEwMiBib2FyZCBhbmQgbm90IHN1cmUgaWYgdGhlCj4+IGZsYXNoIHNpemUg Y29tbWVudHMgYXJlIGNvcnJlY3QgZm9yIG90aGVyIGJvYXJkcyBpbiB0aGlzIHBhdGNoLgo+IAo+ IEkgaGF2ZSBkb3VibGUgY2hlY2tlZCByZXZBIGFuZCBpdCByZWFsbHkgaGFzIDE2TUIrMTZNQiBj b25maWd1cmF0aW9uCj4gd2hlcmUgb25seSBvbmUgaXMgdmlzaWJsZS4KU29ycnkgZm9yIHRoZSBu b2lzZS4gSSBtYWRlIGEgbWlzdGFrZSBjaGVja2luZyBpdCBhdCB0aGUgYm9hcmQgemN1MTAyIApS ZXYxLjEgbm90IFJldkEuCgpCZXN0IFJlZ2FyZHMsClF1YW55YW5nCj4gSSB3aWxsIHVzZSBvbmx5 IGhhbGYgb2YgdGhhdCBsaXN0ZWQgc2l6ZSB3aGljaCBpcyBjb3JyZXNwb25kaW5nIHdpdGgKPiBz aW5nbGUgY29uZmlndXJhdGlvbiBhbmQgYWxzbyByZW1vdmUgaXMtZHVhbCBmcm9tIDEwMi8xMDYv MTExLgo+IAo+IFRoaXMgY2hhbmdlIHdpbGwgYmUgaW4gdjMgdmVyc2lvbiBiZWNhdXNlIGZvcmdl dCB0byBpbmNsdWRlIGl0IGluIHYyLgo+IAo+IFRoYW5rcywKPiBNaWNoYWwKPiAKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwg bWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK