From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87A28C678D5 for ; Tue, 7 Mar 2023 08:12:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229757AbjCGIMN (ORCPT ); Tue, 7 Mar 2023 03:12:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45128 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229834AbjCGIMH (ORCPT ); Tue, 7 Mar 2023 03:12:07 -0500 Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E10212CFEA for ; Tue, 7 Mar 2023 00:11:39 -0800 (PST) Received: by mail-ed1-x52f.google.com with SMTP id x3so48836333edb.10 for ; Tue, 07 Mar 2023 00:11:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678176698; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=+gmLTaMxh+UgKG/kflrxb/f3sNJaZcDEgaX2MESY0eU=; b=q3PBcvB1zvsXE87gITbF/SzJQLo4Xx88B32/Tmw3dv2IrNfQYd8YbzJyVUtxwcFMDx rDtF1kRD/J5rUZPOvdQrEAbExMBQTrNf0mRJwrTD4e0RYlDjbmuEVLPhc59kpXOuBguq NyTY2kmk766MwbnpQMj2RcnYDPRvYilXFFVXrGGXa6GA9A20SUrpFbYn5+sC/xnzSEjE FKhWGUqha329de9TWzywrqVay3P5xsD6TFOP7FdCGyCFWBqV4svNe0CvcyDUW8zR9Ieu GkyggizmmZfQzDjfqt/w1nTLu3jfwmjXH29xP1JazPuuDhlWLd974oZW9quGhCvR2Jt1 hokg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678176698; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+gmLTaMxh+UgKG/kflrxb/f3sNJaZcDEgaX2MESY0eU=; b=gejW7WrbAXazJYA3iVjMogQAkziyDOH0kTdR8J7o8YFjuXvrJnfeBHrUowuMDAtABC 9s0j2BvOe1LRX9wrkjiRwXWuZ6aLlYkSqzAH2B8azVOtBfd9BPPT5ih342h9oGLuU2kY 5VTwVteWosjEt56AcYVcM97k57MvVQCrM9bJro5h9gN5lKl6sqFYxBtb0PLMe/v4h0OD us2JMWM3oJdNyQ5VhaqEjJ3RM+4670aZUKsiXlfRf32jgua2PtSSpP2nh6JcIMgawEub wMwyzDXW2eZ8Z3WVI+Q97w4PCJ4QmMLBT/lmNwGs3pSJ8RfMzqKGK+iQGu71E1GYoi+3 b4zA== X-Gm-Message-State: AO0yUKWZDll3EJPs0/YfSvEZMGh2mFq14PsiUu7CgsKBJzux7Qi8ih+x 9k/r9U71XLF085P+NL8FG3eQ7w== X-Google-Smtp-Source: AK7set8K0X83pfhJzpDlAHKtkhFREUYDfeXRLHVhI+OBX7UgwhDddxevyD4fRlkYHGhDqm65b0Wfbw== X-Received: by 2002:a50:ed18:0:b0:4af:7bdc:1891 with SMTP id j24-20020a50ed18000000b004af7bdc1891mr12995254eds.11.1678176698410; Tue, 07 Mar 2023 00:11:38 -0800 (PST) Received: from ?IPV6:2a02:810d:15c0:828:5310:35c7:6f9e:2cd3? ([2a02:810d:15c0:828:5310:35c7:6f9e:2cd3]) by smtp.gmail.com with ESMTPSA id u2-20020a50d502000000b004c0057b478bsm6341543edi.34.2023.03.07.00.11.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Mar 2023 00:11:38 -0800 (PST) Message-ID: Date: Tue, 7 Mar 2023 09:11:36 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v6 1/2] dt-bindings: i2c: aspeed: support for AST2600-i2cv2 Content-Language: en-US To: Ryan Chen , Wolfram Sang Cc: Joel Stanley , Brendan Higgins , Krzysztof Kozlowski , Andrew Jeffery , "devicetree@vger.kernel.org" , Philipp Zabel , Rob Herring , Benjamin Herrenschmidt , "linux-aspeed@lists.ozlabs.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "openbmc@lists.ozlabs.org" , "linux-i2c@vger.kernel.org" References: <20230226031321.3126756-1-ryan_chen@aspeedtech.com> <20230226031321.3126756-2-ryan_chen@aspeedtech.com> <53090449-58c9-bc03-56df-aa8ae93c0c26@linaro.org> From: Krzysztof Kozlowski In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/03/2023 01:48, Ryan Chen wrote: > Hello Krzysztof, > >> -----Original Message----- >> From: Krzysztof Kozlowski >> Sent: Sunday, March 5, 2023 5:49 PM >> To: Ryan Chen ; Wolfram Sang >> >> Cc: Joel Stanley ; Brendan Higgins >> ; Krzysztof Kozlowski >> ; Andrew Jeffery ; >> devicetree@vger.kernel.org; Philipp Zabel ; Rob >> Herring ; Benjamin Herrenschmidt >> ; linux-aspeed@lists.ozlabs.org; >> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; >> openbmc@lists.ozlabs.org; linux-i2c@vger.kernel.org >> Subject: Re: [PATCH v6 1/2] dt-bindings: i2c: aspeed: support for AST2600-i2cv2 >> >> On 04/03/2023 02:33, Ryan Chen wrote: >>> Hello Krzysztof, >>> >>>> -----Original Message----- >>>> From: Krzysztof Kozlowski >>>> Sent: Friday, March 3, 2023 6:41 PM >>>> To: Ryan Chen ; Wolfram Sang >>>> >>>> Cc: Joel Stanley ; Brendan Higgins >>>> ; Krzysztof Kozlowski >>>> ; Andrew Jeffery >>>> ; devicetree@vger.kernel.org; Philipp Zabel >>>> ; Rob Herring ; Benjamin >>>> Herrenschmidt ; >>>> linux-aspeed@lists.ozlabs.org; linux-arm-kernel@lists.infradead.org; >>>> linux-kernel@vger.kernel.org; openbmc@lists.ozlabs.org; >>>> linux-i2c@vger.kernel.org >>>> Subject: Re: [PATCH v6 1/2] dt-bindings: i2c: aspeed: support for >>>> AST2600-i2cv2 >>>> >>>> On 03/03/2023 11:16, Ryan Chen wrote: >>>>>>>>>>> aspeed,timout properites: >>>>>>>>>>> For example I2C controller as slave mode, and suddenly >>>>>> disconnected. >>>>>>>>>>> Slave state machine will keep waiting for master clock in for >>>>>>>>>>> rx/tx >>>>>>>> transmit. >>>>>>>>>>> So it need timeout setting to enable timeout unlock controller >> state. >>>>>>>>>>> And in another side. In Master side also need avoid suddenly >>>>>>>>>>> slave >>>>>>>>>> miss(un-plug), Master will timeout and release the SDA/SCL. >>>>>>>>>>> >>>>>>>>>>> Do you mean add those description into ore aspeed,timout >>>>>>>>>>> properites >>>>>>>>>> description? >>>>>>>>>> >>>>>>>>>> You are describing here one particular feature you want to >>>>>>>>>> enable in the driver which looks non-scalable and more >>>>>>>>>> difficult to >>>>>> configure/use. >>>>>>>>>> What I was looking for is to describe the actual configuration >>>>>>>>>> you have >>>>>> (e.g. >>>>>>>>>> multi-master) which leads to enable or disable such feature in >>>>>>>>>> your >>>>>>>> hardware. >>>>>>>>>> Especially that bool value does not scale later to actual >>>>>>>>>> timeout values in time (ms)... >>>>>>>>>> >>>>>>>>>> I don't know I2C that much, but I wonder - why this should be >>>>>>>>>> specific to Aspeed I2C and no other I2C controllers implement it? >>>>>>>>>> IOW, this looks quite generic and every I2C controller should >>>>>>>>>> have it. Adding it specific to Aspeed suggests that either we >>>>>>>>>> miss a generic property or this should not be in DT at all >>>>>>>>>> (because no one else has >>>>>>>> it...). >>>>>>>>>> >>>>>>>>>> Also I wonder, why you wouldn't enable timeout always... >>>>>>>>>> >>>>>>>>>> +Cc Wolfram, >>>>>>>>>> Maybe you know whether bool "timeout" property for one >>>>>>>>>> controller makes sense? Why we do not have it for all controllers? >>>>>>>>>> >>>>>>>>> Because, i2c bus didn’t specific timeout. >>>>>>>>> But SMBus defines a clock low time-out, TIMEOUT of 35 ms. >>>>>>>>> >>>>>>>>> It have definition in SMBus specification. >>>>>>>>> http://smbus.org/specs/SMBus_3_1_20180319.pdf >>>>>>>>> You can check Page 18, Note3 that have timeout description. >>>>>>>> >>>>>>>> Then you have already property for this - "smbus"? >>>>>>> To be a property "smbus", that would be a big topic, I saw fsl i2c >>>>>>> also have this. >>>>>>> https://github.com/torvalds/linux/blob/master/Documentation/device >>>>>>> tr >>>>>>> ee >>>>>>> /bindings/i2c/i2c-mpc.yaml#L43-L47 >>>>>>> So, I just think the "timeout" property. >>>>>> >>>>>> Yeah and this is the only place. It also differs because it allows >>>>>> actual timeout values. >>>>> Thanks, So can I still keep the property "aspeed,timeout" here? >>>>> It is the only place. >>>> >>>> No, because none of my concerns above are addressed. >>>> >>> Thanks, I realize your concerns. >>> >>> So, I modify it like i2c-mpc.yaml >>> https://github.com/torvalds/linux/blob/master/Documentation/devicetree >>> /bindings/i2c/i2c-mpc.yaml#L43-L47 >>> >>> aspeed,timeout: >>> $ref: /schemas/types.yaml#/definitions/uint32 >>> description: | >>> I2C bus timeout in microseconds >>> Is this way acceptable? >> >> So, let's repeat my last questions: >> >> 1. Why you wouldn't enable timeout always... >> >> You wrote: >>> http://smbus.org/specs/SMBus_3_1_20180319.pdf >>> You can check Page 18, Note3 that have timeout description. >> >> which indicates you should always use timeout, doesn't it? > > Yes, if board design the bus is connected with SMBUS device, it should enable. > But in my previous statement, the board design is two multi-master devices connected each other. For which you have the property, thus case is solved, isn't it? You want timeout always except for multi-master? > And both device is transfer with MCTP protocol. > That will not SMBUS protocol. > They need have timeout that prevent unexpected un-plug. > I do the study with smbus in Linux, that will different slave call back. Compare with smbus slave and mctp slave. > So in this scenario, that is only enable for timeout. And the driver knows which protocol it is going to talk and such choice should not be in DT. > >> 2. Why we do not have it for all controllers with SMBus v3? Why this one is >> special? > > Not all bus is connected with smbus. Most are i2c device connected in board. > That will be specific statement for each bus. That's not the answer to my question. Why other controllers which can be connected to I2C or SMBus devices do not need this property? Best regards, Krzysztof From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 17E3FC678D4 for ; Tue, 7 Mar 2023 08:13:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=O0nkr5yjyoPfIJwdUNppNMl9mO8uh54WaG9OwXVdJkQ=; b=bJmm0rWtyhNkl9 LlH5bGwU5PQOxJFBCX/0lkRgfO40sLGIp3L9MEzLsLKoK6jxbkCiXudeBaC2CvxNSTlBEVB3FvvpF CWcerT4cx1ZYsJBzj6PCvChuWC7JNdgq8hb/NmriUuuVcDb8bv4RS830MCsNiBthuZQk2KnzDny5j oxzRUxaL8espNzFvIko39bH/zXCrkb1L7pg55ttADyJFEH57ZxDmxluUlmAnSThEYs9c/USW0L8qI mpiyGkG7oQJKQZrLJBAnJOkQoD81Ax6DHxbX0C52RrthY7KyKoxl0w+2XcCOQ4//Jtz5i7uX9axHS 8t8IxiUPbGBMYvQwupHg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pZSQN-00GdU7-Tf; Tue, 07 Mar 2023 08:11:57 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pZSQB-00GdQ2-HZ for linux-arm-kernel@lists.infradead.org; Tue, 07 Mar 2023 08:11:50 +0000 Received: by mail-ed1-x52f.google.com with SMTP id da10so49012785edb.3 for ; Tue, 07 Mar 2023 00:11:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678176698; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=+gmLTaMxh+UgKG/kflrxb/f3sNJaZcDEgaX2MESY0eU=; b=q3PBcvB1zvsXE87gITbF/SzJQLo4Xx88B32/Tmw3dv2IrNfQYd8YbzJyVUtxwcFMDx rDtF1kRD/J5rUZPOvdQrEAbExMBQTrNf0mRJwrTD4e0RYlDjbmuEVLPhc59kpXOuBguq NyTY2kmk766MwbnpQMj2RcnYDPRvYilXFFVXrGGXa6GA9A20SUrpFbYn5+sC/xnzSEjE FKhWGUqha329de9TWzywrqVay3P5xsD6TFOP7FdCGyCFWBqV4svNe0CvcyDUW8zR9Ieu GkyggizmmZfQzDjfqt/w1nTLu3jfwmjXH29xP1JazPuuDhlWLd974oZW9quGhCvR2Jt1 hokg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678176698; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+gmLTaMxh+UgKG/kflrxb/f3sNJaZcDEgaX2MESY0eU=; b=xV2KRKqL1fpPDAuLB1inYSkZYNpsKg061n9r0jOP9vn+2OehXDZ8jfPGPue9Nafwp1 884XOv19iOMYdj0BMOROMglot/Ymafcbh/69OnZ4/qQ37woJ8wK29ofAPvateFyhZlSg QyKZGwANMhBlxMxJyLZMlXq4kqSKoeBytG9xkO/dg4UbnFCj7OS/NP8p5YCjpNms4cVB BLWQnMGzDm5FStC6+XPof91AYhSss+yNAi1o9i1oqQ12cfUn86NSI4N/ueJzCJvNM9dS gM0BRJMdO9fqKr1fgi6OUFvt+yZcS/5IS7XRmFtRGqr+oAdhpb/Trv+j7eUguZyT6/zz 5WFA== X-Gm-Message-State: AO0yUKVSAr0mRYwXH3MAAT6x/0pbMarymOQ8annmsL0Ro+CVB4mYFuID pYVRydjHPdxqmFRgqHhwsLCsEw== X-Google-Smtp-Source: AK7set8K0X83pfhJzpDlAHKtkhFREUYDfeXRLHVhI+OBX7UgwhDddxevyD4fRlkYHGhDqm65b0Wfbw== X-Received: by 2002:a50:ed18:0:b0:4af:7bdc:1891 with SMTP id j24-20020a50ed18000000b004af7bdc1891mr12995254eds.11.1678176698410; Tue, 07 Mar 2023 00:11:38 -0800 (PST) Received: from ?IPV6:2a02:810d:15c0:828:5310:35c7:6f9e:2cd3? ([2a02:810d:15c0:828:5310:35c7:6f9e:2cd3]) by smtp.gmail.com with ESMTPSA id u2-20020a50d502000000b004c0057b478bsm6341543edi.34.2023.03.07.00.11.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Mar 2023 00:11:38 -0800 (PST) Message-ID: Date: Tue, 7 Mar 2023 09:11:36 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v6 1/2] dt-bindings: i2c: aspeed: support for AST2600-i2cv2 Content-Language: en-US To: Ryan Chen , Wolfram Sang Cc: Joel Stanley , Brendan Higgins , Krzysztof Kozlowski , Andrew Jeffery , "devicetree@vger.kernel.org" , Philipp Zabel , Rob Herring , Benjamin Herrenschmidt , "linux-aspeed@lists.ozlabs.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "openbmc@lists.ozlabs.org" , "linux-i2c@vger.kernel.org" References: <20230226031321.3126756-1-ryan_chen@aspeedtech.com> <20230226031321.3126756-2-ryan_chen@aspeedtech.com> <53090449-58c9-bc03-56df-aa8ae93c0c26@linaro.org> From: Krzysztof Kozlowski In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230307_001143_641074_5B4DE461 X-CRM114-Status: GOOD ( 24.53 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMDYvMDMvMjAyMyAwMTo0OCwgUnlhbiBDaGVuIHdyb3RlOgo+IEhlbGxvIEtyenlzenRvZiwK PiAKPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4gRnJvbTogS3J6eXN6dG9mIEtvemxv d3NraSA8a3J6eXN6dG9mLmtvemxvd3NraUBsaW5hcm8ub3JnPgo+PiBTZW50OiBTdW5kYXksIE1h cmNoIDUsIDIwMjMgNTo0OSBQTQo+PiBUbzogUnlhbiBDaGVuIDxyeWFuX2NoZW5AYXNwZWVkdGVj aC5jb20+OyBXb2xmcmFtIFNhbmcKPj4gPHdzYUBrZXJuZWwub3JnPgo+PiBDYzogSm9lbCBTdGFu bGV5IDxqb2VsQGptcy5pZC5hdT47IEJyZW5kYW4gSGlnZ2lucwo+PiA8YnJlbmRhbi5oaWdnaW5z QGxpbnV4LmRldj47IEtyenlzenRvZiBLb3psb3dza2kKPj4gPGtyenlzenRvZi5rb3psb3dza2kr ZHRAbGluYXJvLm9yZz47IEFuZHJldyBKZWZmZXJ5IDxhbmRyZXdAYWouaWQuYXU+Owo+PiBkZXZp Y2V0cmVlQHZnZXIua2VybmVsLm9yZzsgUGhpbGlwcCBaYWJlbCA8cC56YWJlbEBwZW5ndXRyb25p eC5kZT47IFJvYgo+PiBIZXJyaW5nIDxyb2JoK2R0QGtlcm5lbC5vcmc+OyBCZW5qYW1pbiBIZXJy ZW5zY2htaWR0Cj4+IDxiZW5oQGtlcm5lbC5jcmFzaGluZy5vcmc+OyBsaW51eC1hc3BlZWRAbGlz dHMub3psYWJzLm9yZzsKPj4gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBs aW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOwo+PiBvcGVuYm1jQGxpc3RzLm96bGFicy5vcmc7 IGxpbnV4LWkyY0B2Z2VyLmtlcm5lbC5vcmcKPj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NiAxLzJd IGR0LWJpbmRpbmdzOiBpMmM6IGFzcGVlZDogc3VwcG9ydCBmb3IgQVNUMjYwMC1pMmN2Mgo+Pgo+ PiBPbiAwNC8wMy8yMDIzIDAyOjMzLCBSeWFuIENoZW4gd3JvdGU6Cj4+PiBIZWxsbyBLcnp5c3p0 b2YsCj4+Pgo+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4gRnJvbTogS3J6eXN6 dG9mIEtvemxvd3NraSA8a3J6eXN6dG9mLmtvemxvd3NraUBsaW5hcm8ub3JnPgo+Pj4+IFNlbnQ6 IEZyaWRheSwgTWFyY2ggMywgMjAyMyA2OjQxIFBNCj4+Pj4gVG86IFJ5YW4gQ2hlbiA8cnlhbl9j aGVuQGFzcGVlZHRlY2guY29tPjsgV29sZnJhbSBTYW5nCj4+Pj4gPHdzYUBrZXJuZWwub3JnPgo+ Pj4+IENjOiBKb2VsIFN0YW5sZXkgPGpvZWxAam1zLmlkLmF1PjsgQnJlbmRhbiBIaWdnaW5zCj4+ Pj4gPGJyZW5kYW4uaGlnZ2luc0BsaW51eC5kZXY+OyBLcnp5c3p0b2YgS296bG93c2tpCj4+Pj4g PGtyenlzenRvZi5rb3psb3dza2krZHRAbGluYXJvLm9yZz47IEFuZHJldyBKZWZmZXJ5Cj4+Pj4g PGFuZHJld0Bhai5pZC5hdT47IGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnOyBQaGlsaXBwIFph YmVsCj4+Pj4gPHAuemFiZWxAcGVuZ3V0cm9uaXguZGU+OyBSb2IgSGVycmluZyA8cm9iaCtkdEBr ZXJuZWwub3JnPjsgQmVuamFtaW4KPj4+PiBIZXJyZW5zY2htaWR0IDxiZW5oQGtlcm5lbC5jcmFz aGluZy5vcmc+Owo+Pj4+IGxpbnV4LWFzcGVlZEBsaXN0cy5vemxhYnMub3JnOyBsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7Cj4+Pj4gbGludXgta2VybmVsQHZnZXIua2VybmVs Lm9yZzsgb3BlbmJtY0BsaXN0cy5vemxhYnMub3JnOwo+Pj4+IGxpbnV4LWkyY0B2Z2VyLmtlcm5l bC5vcmcKPj4+PiBTdWJqZWN0OiBSZTogW1BBVENIIHY2IDEvMl0gZHQtYmluZGluZ3M6IGkyYzog YXNwZWVkOiBzdXBwb3J0IGZvcgo+Pj4+IEFTVDI2MDAtaTJjdjIKPj4+Pgo+Pj4+IE9uIDAzLzAz LzIwMjMgMTE6MTYsIFJ5YW4gQ2hlbiB3cm90ZToKPj4+Pj4+Pj4+Pj4gYXNwZWVkLHRpbW91dCBw cm9wZXJpdGVzOgo+Pj4+Pj4+Pj4+PiBGb3IgZXhhbXBsZSBJMkMgY29udHJvbGxlciBhcyBzbGF2 ZSBtb2RlLCBhbmQgc3VkZGVubHkKPj4+Pj4+IGRpc2Nvbm5lY3RlZC4KPj4+Pj4+Pj4+Pj4gU2xh dmUgc3RhdGUgbWFjaGluZSB3aWxsIGtlZXAgd2FpdGluZyBmb3IgbWFzdGVyIGNsb2NrIGluIGZv cgo+Pj4+Pj4+Pj4+PiByeC90eAo+Pj4+Pj4+PiB0cmFuc21pdC4KPj4+Pj4+Pj4+Pj4gU28gaXQg bmVlZCB0aW1lb3V0IHNldHRpbmcgdG8gZW5hYmxlIHRpbWVvdXQgdW5sb2NrIGNvbnRyb2xsZXIK Pj4gc3RhdGUuCj4+Pj4+Pj4+Pj4+IEFuZCBpbiBhbm90aGVyIHNpZGUuIEluIE1hc3RlciBzaWRl IGFsc28gbmVlZCBhdm9pZCBzdWRkZW5seQo+Pj4+Pj4+Pj4+PiBzbGF2ZQo+Pj4+Pj4+Pj4+IG1p c3ModW4tcGx1ZyksIE1hc3RlciB3aWxsIHRpbWVvdXQgYW5kIHJlbGVhc2UgdGhlIFNEQS9TQ0wu Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IERvIHlvdSBtZWFuIGFkZCB0aG9zZSBkZXNjcmlwdGlv biBpbnRvIG9yZSBhc3BlZWQsdGltb3V0Cj4+Pj4+Pj4+Pj4+IHByb3Blcml0ZXMKPj4+Pj4+Pj4+ PiBkZXNjcmlwdGlvbj8KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IFlvdSBhcmUgZGVzY3JpYmluZyBo ZXJlIG9uZSBwYXJ0aWN1bGFyIGZlYXR1cmUgeW91IHdhbnQgdG8KPj4+Pj4+Pj4+PiBlbmFibGUg aW4gdGhlIGRyaXZlciB3aGljaCBsb29rcyBub24tc2NhbGFibGUgYW5kIG1vcmUKPj4+Pj4+Pj4+ PiBkaWZmaWN1bHQgdG8KPj4+Pj4+IGNvbmZpZ3VyZS91c2UuCj4+Pj4+Pj4+Pj4gV2hhdCBJIHdh cyBsb29raW5nIGZvciBpcyB0byBkZXNjcmliZSB0aGUgYWN0dWFsIGNvbmZpZ3VyYXRpb24KPj4+ Pj4+Pj4+PiB5b3UgaGF2ZQo+Pj4+Pj4gKGUuZy4KPj4+Pj4+Pj4+PiBtdWx0aS1tYXN0ZXIpIHdo aWNoIGxlYWRzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHN1Y2ggZmVhdHVyZSBpbgo+Pj4+Pj4+Pj4+ IHlvdXIKPj4+Pj4+Pj4gaGFyZHdhcmUuCj4+Pj4+Pj4+Pj4gRXNwZWNpYWxseSB0aGF0IGJvb2wg dmFsdWUgZG9lcyBub3Qgc2NhbGUgbGF0ZXIgdG8gYWN0dWFsCj4+Pj4+Pj4+Pj4gdGltZW91dCB2 YWx1ZXMgaW4gdGltZSAobXMpLi4uCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBJIGRvbid0IGtub3cg STJDIHRoYXQgbXVjaCwgYnV0IEkgd29uZGVyIC0gd2h5IHRoaXMgc2hvdWxkIGJlCj4+Pj4+Pj4+ Pj4gc3BlY2lmaWMgdG8gQXNwZWVkIEkyQyBhbmQgbm8gb3RoZXIgSTJDIGNvbnRyb2xsZXJzIGlt cGxlbWVudCBpdD8KPj4+Pj4+Pj4+PiBJT1csIHRoaXMgbG9va3MgcXVpdGUgZ2VuZXJpYyBhbmQg ZXZlcnkgSTJDIGNvbnRyb2xsZXIgc2hvdWxkCj4+Pj4+Pj4+Pj4gaGF2ZSBpdC4gQWRkaW5nIGl0 IHNwZWNpZmljIHRvIEFzcGVlZCBzdWdnZXN0cyB0aGF0IGVpdGhlciB3ZQo+Pj4+Pj4+Pj4+IG1p c3MgYSBnZW5lcmljIHByb3BlcnR5IG9yIHRoaXMgc2hvdWxkIG5vdCBiZSBpbiBEVCBhdCBhbGwK Pj4+Pj4+Pj4+PiAoYmVjYXVzZSBubyBvbmUgZWxzZSBoYXMKPj4+Pj4+Pj4gaXQuLi4pLgo+Pj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gQWxzbyBJIHdvbmRlciwgd2h5IHlvdSB3b3VsZG4ndCBlbmFibGUg dGltZW91dCBhbHdheXMuLi4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ICtDYyBXb2xmcmFtLAo+Pj4+ Pj4+Pj4+IE1heWJlIHlvdSBrbm93IHdoZXRoZXIgYm9vbCAidGltZW91dCIgcHJvcGVydHkgZm9y IG9uZQo+Pj4+Pj4+Pj4+IGNvbnRyb2xsZXIgbWFrZXMgc2Vuc2U/IFdoeSB3ZSBkbyBub3QgaGF2 ZSBpdCBmb3IgYWxsIGNvbnRyb2xsZXJzPwo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBCZWNhdXNlLCBp MmMgYnVzIGRpZG7igJl0IHNwZWNpZmljIHRpbWVvdXQuCj4+Pj4+Pj4+PiBCdXQgU01CdXMgZGVm aW5lcyBhIGNsb2NrIGxvdyB0aW1lLW91dCwgVElNRU9VVCBvZiAzNSBtcy4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+PiBJdCBoYXZlIGRlZmluaXRpb24gaW4gU01CdXMgc3BlY2lmaWNhdGlvbi4KPj4+Pj4+ Pj4+IGh0dHA6Ly9zbWJ1cy5vcmcvc3BlY3MvU01CdXNfM18xXzIwMTgwMzE5LnBkZgo+Pj4+Pj4+ Pj4gWW91IGNhbiBjaGVjayBQYWdlIDE4LCBOb3RlMyB0aGF0IGhhdmUgdGltZW91dCBkZXNjcmlw dGlvbi4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gVGhlbiB5b3UgaGF2ZSBhbHJlYWR5IHByb3BlcnR5IGZv ciB0aGlzIC0gInNtYnVzIj8KPj4+Pj4+PiBUbyBiZSBhIHByb3BlcnR5ICJzbWJ1cyIsIHRoYXQg d291bGQgYmUgYSBiaWcgdG9waWMsIEkgc2F3IGZzbCBpMmMKPj4+Pj4+PiBhbHNvIGhhdmUgdGhp cy4KPj4+Pj4+PiBodHRwczovL2dpdGh1Yi5jb20vdG9ydmFsZHMvbGludXgvYmxvYi9tYXN0ZXIv RG9jdW1lbnRhdGlvbi9kZXZpY2UKPj4+Pj4+PiB0cgo+Pj4+Pj4+IGVlCj4+Pj4+Pj4gL2JpbmRp bmdzL2kyYy9pMmMtbXBjLnlhbWwjTDQzLUw0Nwo+Pj4+Pj4+IFNvLCBJIGp1c3QgdGhpbmsgdGhl ICJ0aW1lb3V0IiBwcm9wZXJ0eS4KPj4+Pj4+Cj4+Pj4+PiBZZWFoIGFuZCB0aGlzIGlzIHRoZSBv bmx5IHBsYWNlLiBJdCBhbHNvIGRpZmZlcnMgYmVjYXVzZSBpdCBhbGxvd3MKPj4+Pj4+IGFjdHVh bCB0aW1lb3V0IHZhbHVlcy4KPj4+Pj4gVGhhbmtzLCBTbyBjYW4gSSBzdGlsbCBrZWVwIHRoZSBw cm9wZXJ0eSAiYXNwZWVkLHRpbWVvdXQiIGhlcmU/Cj4+Pj4+IEl0IGlzIHRoZSBvbmx5IHBsYWNl Lgo+Pj4+Cj4+Pj4gTm8sIGJlY2F1c2Ugbm9uZSBvZiBteSBjb25jZXJucyBhYm92ZSBhcmUgYWRk cmVzc2VkLgo+Pj4+Cj4+PiBUaGFua3MsIEkgcmVhbGl6ZSB5b3VyIGNvbmNlcm5zLgo+Pj4KPj4+ IFNvLCBJIG1vZGlmeSBpdCBsaWtlIGkyYy1tcGMueWFtbAo+Pj4gaHR0cHM6Ly9naXRodWIuY29t L3RvcnZhbGRzL2xpbnV4L2Jsb2IvbWFzdGVyL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZQo+Pj4g L2JpbmRpbmdzL2kyYy9pMmMtbXBjLnlhbWwjTDQzLUw0Nwo+Pj4KPj4+ICAgYXNwZWVkLHRpbWVv dXQ6Cj4+PiAgICAgJHJlZjogL3NjaGVtYXMvdHlwZXMueWFtbCMvZGVmaW5pdGlvbnMvdWludDMy Cj4+PiAgICAgZGVzY3JpcHRpb246IHwKPj4+ICAgICAgIEkyQyBidXMgdGltZW91dCBpbiBtaWNy b3NlY29uZHMKPj4+IElzIHRoaXMgd2F5IGFjY2VwdGFibGU/Cj4+Cj4+IFNvLCBsZXQncyByZXBl YXQgbXkgbGFzdCBxdWVzdGlvbnM6Cj4+Cj4+IDEuIFdoeSB5b3Ugd291bGRuJ3QgZW5hYmxlIHRp bWVvdXQgYWx3YXlzLi4uCj4+Cj4+IFlvdSB3cm90ZToKPj4+IGh0dHA6Ly9zbWJ1cy5vcmcvc3Bl Y3MvU01CdXNfM18xXzIwMTgwMzE5LnBkZgo+Pj4gWW91IGNhbiBjaGVjayBQYWdlIDE4LCBOb3Rl MyB0aGF0IGhhdmUgdGltZW91dCBkZXNjcmlwdGlvbi4KPj4KPj4gd2hpY2ggaW5kaWNhdGVzIHlv dSBzaG91bGQgYWx3YXlzIHVzZSB0aW1lb3V0LCBkb2Vzbid0IGl0Pwo+IAo+IFllcywgaWYgYm9h cmQgZGVzaWduIHRoZSBidXMgaXMgY29ubmVjdGVkIHdpdGggU01CVVMgZGV2aWNlLCBpdCBzaG91 bGQgZW5hYmxlLgo+IEJ1dCBpbiBteSBwcmV2aW91cyBzdGF0ZW1lbnQsIHRoZSBib2FyZCBkZXNp Z24gaXMgdHdvIG11bHRpLW1hc3RlciBkZXZpY2VzIGNvbm5lY3RlZCBlYWNoIG90aGVyLiAKCkZv ciB3aGljaCB5b3UgaGF2ZSB0aGUgcHJvcGVydHksIHRodXMgY2FzZSBpcyBzb2x2ZWQsIGlzbid0 IGl0PyBZb3Ugd2FudAp0aW1lb3V0IGFsd2F5cyBleGNlcHQgZm9yIG11bHRpLW1hc3Rlcj8KCj4g QW5kIGJvdGggZGV2aWNlIGlzIHRyYW5zZmVyIHdpdGggTUNUUCBwcm90b2NvbC4gCj4gVGhhdCB3 aWxsIG5vdCBTTUJVUyBwcm90b2NvbC4gCj4gVGhleSBuZWVkIGhhdmUgdGltZW91dCB0aGF0IHBy ZXZlbnQgdW5leHBlY3RlZCB1bi1wbHVnLgo+IEkgZG8gdGhlIHN0dWR5IHdpdGggc21idXMgaW4g TGludXgsIHRoYXQgd2lsbCBkaWZmZXJlbnQgc2xhdmUgY2FsbCBiYWNrLiBDb21wYXJlIHdpdGgg c21idXMgc2xhdmUgYW5kIG1jdHAgc2xhdmUuCj4gU28gaW4gdGhpcyBzY2VuYXJpbywgdGhhdCBp cyBvbmx5IGVuYWJsZSBmb3IgdGltZW91dC4gCgpBbmQgdGhlIGRyaXZlciBrbm93cyB3aGljaCBw cm90b2NvbCBpdCBpcyBnb2luZyB0byB0YWxrIGFuZCBzdWNoIGNob2ljZQpzaG91bGQgbm90IGJl IGluIERULgoKPiAgCj4+IDIuIFdoeSB3ZSBkbyBub3QgaGF2ZSBpdCBmb3IgYWxsIGNvbnRyb2xs ZXJzIHdpdGggU01CdXMgdjM/IFdoeSB0aGlzIG9uZSBpcwo+PiBzcGVjaWFsPwo+IAo+IE5vdCBh bGwgYnVzIGlzIGNvbm5lY3RlZCB3aXRoIHNtYnVzLiBNb3N0IGFyZSBpMmMgZGV2aWNlIGNvbm5l Y3RlZCBpbiBib2FyZC4KPiBUaGF0IHdpbGwgYmUgc3BlY2lmaWMgc3RhdGVtZW50IGZvciBlYWNo IGJ1cy4KClRoYXQncyBub3QgdGhlIGFuc3dlciB0byBteSBxdWVzdGlvbi4gV2h5IG90aGVyIGNv bnRyb2xsZXJzIHdoaWNoIGNhbiBiZQpjb25uZWN0ZWQgdG8gSTJDIG9yIFNNQnVzIGRldmljZXMg ZG8gbm90IG5lZWQgdGhpcyBwcm9wZXJ0eT8KCkJlc3QgcmVnYXJkcywKS3J6eXN6dG9mCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=