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=-10.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,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 6BA1FC12002 for ; Wed, 21 Jul 2021 17:46:15 +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 290B66120E for ; Wed, 21 Jul 2021 17:46:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 290B66120E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org 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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=xaru2S0mTp7r5qAxWmHlpW34TDZ4WK37lu5xhm4Hcbg=; b=XqtlbpGoZae4/+ G1ypQ3MJEXfK/aYKnb0imCywR4MRkubHdrxbGioXmeFpua9W6IAn30FCme16MyZl5qf/rY9GcsRCi KMQiyaF8jtgJTs1fWNnjurAtRSDCPMcRH05eQ6WNPJtNEmm+6r9tI7viarIv3RxoWd/mTql/1eX6P GOipA+NNz8sNE/poPTs+xuBFM3aLLixUeXqPAHiqfdXAo6exv+VkaH/o4W89XdoYzCzbBU/wQDokE 7pxnVpySQ7Ge/KEkpQ5u7NJMfsTBlhTjdtT6v5FuN3GFxhgsQOyYes/8nel2+qh6JcF1qo4hYZfkm nsn4AFn9UYV++QJ7zLvA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m6GGu-00GkqV-Eb; Wed, 21 Jul 2021 17:44:40 +0000 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m6GGo-00Gkox-Rj for linux-arm-kernel@lists.infradead.org; Wed, 21 Jul 2021 17:44:37 +0000 Received: by mail-pf1-x433.google.com with SMTP id 21so2786511pfp.3 for ; Wed, 21 Jul 2021 10:44:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=7g04vBKtF0ZEElYFfHTxoyICeD5Xbte2szynNTtKTgU=; b=KMqxCPJK9BUAR4yIp3GNnad/u9nrO2pFwCRlcbuPIDMnz3qJveugb8M6SYvFz0iww4 QDNPZbNvaGiWM5T3O99Nrmbh38asRORFQehJDhXKmAOGx9gINpTu7deme+hZDTQCWwbp k2SH1D3QNtGg8E8Z16mvHEJReUXeVEQ8wcV9OfhorSYJD/Vr/2EcKUlJ458t56sG64ri GPTfOwXbzRH1VLyfY13kcC+MkFEyUCsQiBkXN8gl74qMxXCAPnG81f9EofRS8Y8jr3AW cs4K9z6DLl2dQYNyFJ+yYFjH5vykaBOs/D6/kw5Q1JW1wWk6MecVVElEsHC6/OVHN/QK 3jEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=7g04vBKtF0ZEElYFfHTxoyICeD5Xbte2szynNTtKTgU=; b=ZjbaGDTaCQ4vdMW3lTDYmpbbAeq1rJHk+YGn+VyYDqMVJqLi79AtUOtqHrz8sPKCA2 D95cELP33FZu79XHJAlpIiym5HGisSw6MfPp1qwUf3E78h1yTA8/0P7QVFvmLVit9b5U WVQMJ0x/jxiqUZvRvY6jB6pwW1TjyB6b/uFqQF2qCcA+25U6j5DVSVS8Z8r9nBlz9TnF JRHoBEPcpNuqQiNBk8taagLBak0tw6jtRAEuYAAMePF+PIfzKRTNDRr/PnV5po75Vkg8 QCZpZM4pOnp78A2xDPQmRvw63N8/eYFsLwZ+TZ11iXlDlbq9wXVlp63SvWgXHdVKE8/y zLXQ== X-Gm-Message-State: AOAM530K/43bbss4/Dsk/UNsBwvElcgLcLwLDtlZj6BqWxGF0NQfLoU/ lhE47D7Mavk1yoMZuhvymv2Vjg== X-Google-Smtp-Source: ABdhPJxz2cPOQ/4/hN3ve/rcMePrZuyJgMWDJTMmkUwlsfLtFBF2K68WPa46bBAriZKDyErPQf2x8g== X-Received: by 2002:a05:6a00:b83:b029:352:9507:f3b9 with SMTP id g3-20020a056a000b83b02903529507f3b9mr8638760pfj.13.1626889473023; Wed, 21 Jul 2021 10:44:33 -0700 (PDT) Received: from p14s (S0106889e681aac74.cg.shawcable.net. [68.147.0.187]) by smtp.gmail.com with ESMTPSA id b1sm501569pjn.11.2021.07.21.10.44.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jul 2021 10:44:19 -0700 (PDT) Date: Wed, 21 Jul 2021 11:44:17 -0600 From: Mathieu Poirier To: Mike Leach Cc: Branislav Rankov , Alexander Shishkin , Greg Kroah-Hartman , Coresight ML , Linux Kernel Mailing List , linux-arm-kernel Subject: Re: [PATCH v8 00/10] CoreSight configuration management; ETM strobing Message-ID: <20210721174417.GB2377909@p14s> References: <20210707133003.5414-1-mike.leach@linaro.org> <20210712164413.GA1777012@p14s> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210721_104435_012783_488966A4 X-CRM114-Status: GOOD ( 64.22 ) 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 T24gRnJpLCBKdWwgMTYsIDIwMjEgYXQgMTE6MjU6NDdBTSArMDEwMCwgTWlrZSBMZWFjaCB3cm90 ZToKPiBISSBNYXRoaWV1LAo+IAo+IEJlbG93IG15IGNoYW5nZSBub3RlcyBmb3IgdGhlIHBhdGNo ZXMgY2hhbmdlZCBiZXR3ZWVuIHY3IGFuZCB2OCBpbiB0aGlzIHNldC4KPiAKPiBSZWdhcmRzCj4g Cj4gTWlrZQo+IAo+IDAwMDEsIDAwMDMsIDAwMDQsIDAwMDYsIDAwMDcsIDAwMDgsIDAwMTAgLSBu byBjaGFuZ2UKPiAKPiAwMDAyIC0KPiBjb3Jlc2lnaHQtc3lzY2ZnLmMKPiAgICAgdG9wIG9mIGZp bGUgLSBtdXRleCBkZWNsYXJhdGlvbiByZW1vdmVkLgo+ICAgICBjc2NmZ19hZGRfY3NkZXZfY2Zn KCkKPiAgICAgICAgIFNwaW5sb2NrIHJlcGxhY2VzIG11dGV4Cj4gICAgIGNzY2ZnX2xvYWRfZmVh dF9jc2RldigpCj4gICAgICAgICBTcGlubG9jayByZXBsYWNlcyBtdXRleAo+ICAgICBjc2NzZ19s aXN0X2FkZF9jc2RldigpCj4gICAgICAgICBJbml0IHNwaW5sb2NrCj4gY29yZXNpZ2h0LmgKPiAg ICAgc3RydWN0IGNvcmVzaWdodF9kZXZpY2Uge30KPiAgICAgICAgIEFkZCBzcGlubG9jayBjc2Nm Z19jc2Rldl9sb2NrIGFsb25nc2lkZSB0aGUgY3NkZXYgZmVhdHVyZSBhbmQKPiBjb25maWcgbGlz dHMgdGhhdCBpdCBwcm90ZWN0cy4KPiAKPiAwMDA1IC0KPiBjb3Jlc2lnaHQtc3lzY2ZnLmMKPiAg ICAgY3NjZmdfY3NkZXZfcmVzZXRfZmVhdHMoKQo+ICAgICAgICAgICAgIFNwaW5sb2NrIHJlcGxh Y2VzIG11dGV4Lgo+IAo+ICAgICBjc2NmZ19jc2Rldl9lbmFibGVfYWN0aXZlX2NvbmZpZygpCj4g ICAgICAgICAgICAgU3BpbmxvY2sgcmVwbGFjZXMgbXV0ZXguIEluIGVuYWJsZSBmbGFnIHRvIGF2 b2lkIHJhY2Ugd2l0aCBkaXNhYmxlLgo+ICAgICBjc2NmZ19jc2Rldl9kaXNhYmxlX2FjdGl2ZV9j b25maWcoKQo+ICAgICAgICAgICAgIFNwaW5sb2NrIHJlcGxhY2VzIG11dGV4LiBJbiBlbmFibGUg ZmxhZyB0byBhdm9pZCByYWNlIHdpdGggZW5hYmxlLgo+CgpJJ20gZ29vZCB3aXRoIHRoZSBjaGFu Z2VzIG1hZGUgdG8gdGhlIGFib3ZlIHR3byBwYXRjaGVzLgoKPiAKPiBjb3Jlc2lnaHQuaAo+ICAg ICBzdHJ1Y3QgY29yZXNpZ2h0X2RldmljZSB7fQo+ICAgICAgICAgSW4gZW5hYmxlIGZsYWcgaW50 cm9kdWNlZCB0byBjb250cm9sIHBvc3NpYmxlIHJhY2UgYmV0d2Vlbgo+IGVuYWJsZSBhbmQgZGlz YWJsZS4gRS5nLiBpZiB3ZSBhcmUgZW5hYmxpbmcgYSBjb25maWcsIGJ1dCBhIHBvd2VyCj4gZXZl bnQgdHJpZXMgdG8gc2h1dCBkb3duIHRoZSBDUFUvRVRNIGNhdXNpbmcgYSBkaXNhYmxlIGNhbGwu IFdlIGRvbuKAmXQKPiB3YW50IHRvIGhvbGQgdGhlIGNzY2ZnX2NzZGV2X2xvY2sgc3BpbmxvY2sg dGhyb3VnaG91dCB0aGUgZW50aXJlCj4gZW5hYmxlIHByb2Nlc3MgLSBlc3BlY2lhbGx5IGFzIHRo ZSBwcm9ncmFtbWluZyBjYWxsIHdpbGwgY2xhaW0gdGhlCj4gaW50ZXJuYWwgZHJpdmVyIHNwaW5s b2NrIHdoZW4gd3JpdGluZyBpbnRlcm5hbCBkcml2ZXIgZGF0YSwgYnV0IHdlCj4gbmVlZCB0byBl bnN1cmUgdGhhdCBpZiB0aGVyZSBpcyBhIGNvbmRpdGlvbiB0aGF0IHBlcm1pdHMgYSBkaXNhYmxl Cj4gY2FsbCBvdXQgb2Ygbm9ybWFsIHNlcXVlbmNlIHRoZW4gd2UgYXJlIGFibGUgdG8gc2VlIGl0 IGFuZCBoYW5kbGUgaXQuCj4gCgpIZXJlIEknbSBhc3N1bWluZyB0aGUgZW5hYmxlIGFuZCBkaXNh YmxlIGNhbGxzIHlvdSBhcmUgcmVmZXJyaW5nIHRvIGFyZQpjc2NmZ19jc2Rldl9lbmFibGVfYWN0 aXZlX2NvbmZpZygpIGFuZCBjc2NmZ19jc2Rldl9kaXNhYmxlX2FjdGl2ZV9jb25maWcoKS4KCkZy b20gdGhlIGFib3ZlIHBhcmFncmFwaCBJIHVuZGVyc3RhbmQgdGhhdCBhIGNhbGwgdG8gY3NjZmdf Y3NkZXZfZW5hYmxlX2NvbmZpZygpCmNhbiBiZSBpbnRlcnJ1cHRlZCBhdCBhbnkgdGltZSB3aGVu IHRoZSBDUFUgaXMgc2h1dHRpbmcgZG93biwgd2hpY2ggY2FuIG9ubHkKaGFwcGVuIHdoZW4gb3Bl cmF0aW5nIGZyb20gc3lzZnMuCgpXaXRoIHRoZSBhYm92ZSBpbiBtaW5kIGFuZCBsb29raW5nIGF0 IHRoZSBpbXBsZW1lbnRhdGlvbiBpbiBwYXRjaCAwNSwgaWYgdGhlCmNvZGUgZ2V0cyBpbnRlcnJ1 cHRlZCByaWdodCBhZnRlciBjc2NmZ19jc2Rldl9lbmFibGVfY29uZmlnKCksIGZ1bmN0aW9uCmNz Y2ZnX2NzZGV2X2Rpc2FibGVfY29uZmlnKCkgaW4gY3NjZmdfY3NkZXZfZGlzYWJsZV9hY3RpdmVf Y29uZmlnKCkgd29uJ3QgYmUKY2FsbGVkLgoKSW4gZnVuY3Rpb24gY3NjZmdfY3NkZXZfZW5hYmxl X2FjdGl2ZV9jb25maWcoKSwgY291bGQgaXQgYmUgcG9zc2libGUgdG8gc2V0CmNzZGV2LT5hY3Rp dmVfY3NjZmdfY3R4dCBpbnN0ZWFkIG9mIGNzZGV2LT5jc2NmZ19pbl9lbmFibGU/ICBJZgpjc2Nm Z19jc2Rldl9lbmFibGVfY29uZmlnKCkgZ2V0cyBpbnRlcnJ1cHRlZCB0aGVuIGZ1bmN0aW9uCmNz Y2ZnX2NzZGV2X2Rpc2FibGVfY29uZmlnKCkgY2FuIGJlIGNhbGxlZC4gIEF0IHRoYXQgcG9pbnQg ZGlzYWJsaW5nIGEgZmVhdHVyZQp0aGF0IGhhc24ndCBiZWVuIGVuYWJsZWQgc2hvdWxkbid0IGRv IGFueXRoaW5nLiAKClRoYW5rcywKTWF0aGlldQoKPiAwMDA5IC0KPiAgICAgS0NvbmZpZwo+ICAg ICBhZGQgaW4gZGVwZW5kZW5jeSBvbiBDT05GSUdGU19GUyB0byBlbGltaW5hdGUgcHJvYmxlbSBo aWdobGlnaHRlZAo+IGJ5IHRoZSBrZXJuZWwgYm90IHRlc3RzLiBUaGlzIGhhZCBjb25maWd1cmVk IGNvcmVzaWdodCBhcyBZLCBidXQKPiBjb25maWdmcyBhcyBNIC0gbWVhbmluZyBsaW5rIGlzc3Vl cyBmb3IgY29uZmlnZnMgY29kZSBpbnRyb2R1Y2VkIGluCj4gdGhpcyBzZXQuCj4gCj4gT24gVHVl LCAxMyBKdWwgMjAyMSBhdCAxMDo0MywgQnJhbmlzbGF2IFJhbmtvdiA8YnJhbmlzbGF2LnJhbmtv dkBhcm0uY29tPiB3cm90ZToKPiA+Cj4gPiBIaSBNYXRoaWV1LAo+ID4KPiA+IE9uIDcvMTIvMjEg NTo0NCBQTSwgTWF0aGlldSBQb2lyaWVyIHdyb3RlOgo+ID4gPiBHb29kIG1vcm5pbmcgTWlrZSwK PiA+ID4KPiA+ID4gT24gV2VkLCBKdWwgMDcsIDIwMjEgYXQgMDI6Mjk6NTNQTSArMDEwMCwgTWlr ZSBMZWFjaCB3cm90ZToKPiA+ID4+IFRoaXMgcGF0Y2hzZXQgaW50cm9kdWNlcyBpbml0aWFsIGNv bmNlcHRzIGluIENvcmVTaWdodCBzeXN0ZW0KPiA+ID4+IGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVu dCBzdXBwb3J0LiB0byBhbGxvdyBtb3JlIGRldGFpbGVkIGFuZCBjb21wbGV4Cj4gPiA+PiBwcm9n cmFtbWluZyB0byBiZSBhcHBsaWVkIHRvIENvcmVTaWdodCBzeXN0ZW1zIGR1cmluZyB0cmFjZSBj YXB0dXJlLgo+ID4gPj4KPiA+ID4+IENvbmZpZ3VyYXRpb25zIGNvbnNpc3Qgb2YgMiBlbGVtZW50 czotCj4gPiA+PiAxKSBGZWF0dXJlcyAtIHByb2dyYW1taW5nIGNvbWJpbmF0aW9ucyBmb3IgZGV2 aWNlcywgYXBwbGllZCB0byBhIGNsYXNzIG9mCj4gPiA+PiBkZXZpY2Ugb24gdGhlIHN5c3RlbSAo YWxsIEVUTXY0KSwgb3IgaW5kaXZpZHVhbCBkZXZpY2VzLgo+ID4gPj4gMikgQ29uZmlndXJhdGlv bnMgLSBhIHNldCBvZiBwcm9ncmFtbWVkIGZlYXR1cmVzIHVzZWQgd2hlbiB0aGUgbmFtZWQKPiA+ ID4+IGNvbmZpZ3VyYXRpb24gaXMgc2VsZWN0ZWQuCj4gPiA+Pgo+ID4gPj4gRmVhdHVyZXMgYW5k IGNvbmZpZ3VyYXRpb25zIGFyZSBkZWNsYXJlZCBhcyBhIGRhdGEgdGFibGUsIGEgc2V0IG9mIHJl Z2lzdGVyLAo+ID4gPj4gcmVzb3VyY2UgYW5kIHBhcmFtZXRlciByZXF1aXJlbWVudHMuIEZlYXR1 cmVzIGFuZCBjb25maWd1cmF0aW9ucyBhcmUgbG9hZGVkCj4gPiA+PiBpbnRvIHRoZSBzeXN0ZW0g YnkgdGhlIHZpcnR1YWwgY3Nfc3lzY2ZnIGRldmljZS4gVGhpcyB0aGVuIG1hdGNoZXMgZmVhdHVy ZXMKPiA+ID4+IHRvIGFueSByZWdpc3RlcmVkIGRldmljZXMgYW5kIGxvYWRzIHRoZSBmZWF0dXJl IGludG8gdGhlbS4KPiA+ID4+Cj4gPiA+PiBJbmRpdmlkdWFsIGRldmljZSBjbGFzc2VzIHRoYXQg c3VwcG9ydCBmZWF0dXJlIGFuZCBjb25maWd1cmF0aW9uIHJlZ2lzdGVyCj4gPiA+PiB3aXRoIGNz X3N5c2NmZy4KPiA+ID4+Cj4gPiA+PiBPbmNlIGxvYWRlZCBhIGNvbmZpZ3VyYXRpb24gY2FuIGJl IGVuYWJsZWQgZm9yIGEgc3BlY2lmaWMgdHJhY2UgcnVuLgo+ID4gPj4gQ29uZmlndXJhdGlvbnMg YXJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgcGVyZiBjc19ldG0gZXZlbnQgYXMgZW50cmllcyBpbgo+ ID4gPj4gY3NfZXRtL2V2ZW50cy4gVGhlc2UgY2FuIGJlIHNlbGVjdGVkIG9uIHRoZSBwZXJmIGNv bW1hbmQgbGluZSBhcyBmb2xsb3dzOi0KPiA+ID4+Cj4gPiA+PiBwZXJmIHJlY29yZCAtZSBjc19l dG0vPGNvbmZpZ19uYW1lPi8gLi4uCj4gPiA+Pgo+ID4gPj4gVGhpcyBwYXRjaCBzZXQgaGFzIG9u ZSBwcmUtbG9hZGVkIGNvbmZpZ3VyYXRpb24gYW5kIGZlYXR1cmUuCj4gPiA+PiBBIG5hbWVkICJz dHJvYmluZyIgZmVhdHVyZSBpcyBwcm92aWRlZCBmb3IgRVRNdjQuCj4gPiA+PiBBIG5hbWVkICJh dXRvZmRvIiBjb25maWd1cmF0aW9uIGlzIHByb3ZpZGVkLiBUaGlzIGNvbmZpZ3VyYXRpb24gZW5h Ymxlcwo+ID4gPj4gc3Ryb2Jpbmcgb24gYW55IEVUTSBpbiB1c2VkLgo+ID4gPj4KPiA+ID4+IFRo dXMgdGhlIGNvbW1hbmQ6Cj4gPiA+PiBwZXJmIHJlY29yZCAtZSBjc19ldG0vYXV0b2Zkby8gLi4u Cj4gPiA+Pgo+ID4gPj4gd2lsbCB0cmFjZSB0aGUgc3VwcGxpZWQgYXBwbGljYXRpb24gd2hpbGUg ZW5hYmxpbmcgdGhlICJhdXRvZmRvIiBjb25maWd1YXRpb24KPiA+ID4+IG9uIGVhY2ggRVRNIGFz IGl0IGlzIGVuYWJsZWQgYnkgcGVyZi4gVGhpcyBpbiB0dXJuIHdpbGwgZW5hYmxlIHN0cm9iaW5n IGZvcgo+ID4gPj4gdGhlIEVUTSAtIHdpdGggZGVmYXVsdCBwYXJhbWV0ZXJzLiBQYXJhbWV0ZXJz IGNhbiBiZSBhZGp1c3RlZCB1c2luZyBjb25maWdmcy4KPiA+ID4+Cj4gPiA+PiBUaGUgc2luayB1 c2VkIGluIHRoZSB0cmFjZSBydW4gd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkLgo+ID4g Pj4KPiA+ID4+IEEgY29uZmlndXJhdGlvbiBjYW4gc3VwcGx5IHVwIHRvIDE1IG9mIHByZXNldCBw YXJhbWV0ZXIgdmFsdWVzLCB3aGljaCB3aWxsCj4gPiA+PiBzdWJzaXR1dGUgaW4gcGFyYW1ldGVy IHZhbHVlcyBmb3IgYW55IGZlYXR1cmUgdXNlZCBpbiB0aGUgY29uZmlndXJhdGlvbi4KPiA+ID4+ Cj4gPiA+PiBTZWxlY3Rpb24gb2YgcHJlc2V0IHZhbHVlcyBhcyBmb2xsb3dzCj4gPiA+PiBwZXJm IHJlY29yZCAtZSBjc19ldG0vYXV0b2ZkbyxwcmVzZXQ9MS8gLi4uCj4gPiA+Pgo+ID4gPj4gKHZh bGlkIHByZXNldHMgMS1OLCB3aGVyZSBOIGlzIHRoZSBudW1iZXIgc3VwcGxpZWQgaW4gdGhlIGNv bmZpZ3VyYXRpb24sIG5vdAo+ID4gPj4gZXhjZWVkaW5nIDE1LiBwcmVzZXQ9MCBpcyB0aGUgc2Ft ZSBhcyBub3Qgc2VsZWN0aW5nIGEgcHJlc2V0LikKPiA+ID4+Cj4gPiA+PiBBcHBsaWVzIHRvICYg dGVzdGVkIGFnYWluc3QgY29yZXNpZ2h0L25leHQgKDUuMTMtcmM2IGJhc2UpCj4gPiA+Pgo+ID4g Pj4gQ2hhbmdlcyBzaW5jZSB2NzoKPiA+ID4+Cj4gPiA+PiBGaXhlZCBrZXJuZWwgdGVzdCByb2Jv dCBpc3N1ZSAtIGNvbmZpZyB3aXRoIENPUkVTSUdIVD15ICYgQ09ORklHRlNfRlM9bSBjYXVzZXMK PiA+ID4+IGJ1aWxkIGVycm9yLiBBbHRlcmVkIENPUkVTSUdIVCBjb25maWcgdG8gc2VsZWN0IENP TkZJR0ZTX0ZTLgo+ID4gPj4gUmVwb3J0ZWQtYnk6IGtlcm5lbCB0ZXN0IHJvYm90IDxsa3BAaW50 ZWwuY29tPgo+ID4gPj4KPiA+ID4+IFJlcGxhY2VkIG11dGV4IHVzZSB0byBwcm90ZWN0IGxvYWRl ZCBjb25maWcgbGlzdHMgaW4gY29yZXNpZ2h0IGRldmljZXMgd2l0aCBwZXIKPiA+ID4+IGRldmlj ZSBzcGlubG9jayB0byByZW1vdmUgaXNzdWUgd2hlbiBkaXNhYmxlIGNhbGxlZCBpbiBpbnRlcnJ1 cHQgY29udGV4dC4KPiA+ID4+IFJlcG9ydGVkLWJ5OiBCcmFuaXNsYXYgUmFua292IDxicmFuaXNs YXYucmFua292QGFybS5jb20+Cj4gPiA+Pgo+ID4gPgo+ID4gPiBDYW4geW91IGluZGljYXRlIHdo aWNoIHBhdGNoZXMgaGF2ZSBjaGFuZ2VkIHNvIEkgZG9uJ3QgaGF2ZSB0byByZXZpZXcgdGhlIHdo b2xlCj4gPiA+IHRoaW5nIGFnYWluPyAgIEl0IGlzIGFsc28gY29tbW9uIHByYWN0aWNlIHRvIHJl bW92ZSB0aGUgUkIgdGFnIHdoZW4gcGF0Y2hlcwo+ID4gPiBoYXZlIGNoYW5nZWQgZW5vdWdoIHRv IG1hbmRhdGUgYW5vdGhlciByZXZpZXcuICBJbiB0aGlzIGNhc2UgYWxsIHBhdGNoZXMgc3RpbGwK PiA+ID4gYmFyZSBteSBSQiB0YWdzLgo+ID4gPgo+ID4gPiBCcmFuaXNsYXYgcmVwb3J0ZWQgdGhl IHByb2JsZW0gYnV0IGhlIGlzIG5vdCBhIHJlY2lwaWVudC4gIEkgd291bGQgbGlrZSB0byBoYXZl Cj4gPiA+IGEgY29uZmlybWF0aW9uIGZyb20gaGltIHRoYXQgdGhpcyBzZXQgZml4ZXMgdGhlIHBy b2JsZW0gaGUgb2JzZXJ2ZWQgYmVmb3JlIEkKPiA+ID4gc3RhcnQgbG9va2luZyBhdCBpdC4KPiA+ Cj4gPiBJIGhhdmUgdGVzdGVkIHRoaXMgc2VyaWVzIGFuZCB0aGUgaXNzdWUgSSByZXBvcnRlZCBp cyBmaXhlZC4KPiA+ID4KPiA+ID4gVGhhbmtzLAo+ID4gPiBNYXRoaWV1Cj4gPiA+Cj4gPiA+Pgo+ ID4gPj4gQ2hhbmdlcyBzaW5jZSB2NjoKPiA+ID4+IEZpeGVkIGtlcm5lbCB0ZXN0IHJvYm90IGlz c3Vlcy0KPiA+ID4+IFJlcG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCByb2JvdCA8bGtwQGludGVsLmNv bT4KPiA+ID4+Cj4gPiA+PiBDaGFuZ2VzIHNpbmNlIHY1Ogo+ID4gPj4KPiA+ID4+IDEpIEZpeCBj b2RlIHN0eWxlIGlzc3VlcyBmcm9tIGF1dG8tYnVpbGQgcmVwb3J0cywgYXMKPiA+ID4+IFJlcG9y dGVkLWJ5OiBrZXJuZWwgdGVzdCByb2JvdCA8bGtwQGludGVsLmNvbT4KPiA+ID4+IDIpIFVwZGF0 ZSBjb21tZW50cyB0byBnZXQgY29uc2lzdGVudCBkb2NzIGZvciBBUEkgZnVuY3Rpb25zLgo+ID4g Pj4gMykgcmVtb3ZlIHVudXNlZCAjZGVmaW5lIGZyb20gYXV0b2ZkbyBleGFtcGxlLgo+ID4gPj4g NCkgZml4IHBlcmYgY29kZSBzdHlsZSBpc3N1ZXMgZnJvbSBwYXRjaCA0IChNYXRoaWV1KQo+ID4g Pj4gNSkgZml4IGNvbmZpZ2ZzIGNvZGUgc3R5bGUgaXNzdWVzIGZyb20gcGF0Y2ggOS4gKE1hdGhp ZXUpCj4gPiA+Pgo+ID4gPj4gQ2hhbmdlcyBzaW5jZSB2NDogKGJhc2VkIG9uIGNvbW1lbnRzIGZy b20gTWF0dGhpZXUgYW5kIFN1enVraSkuCj4gPiA+PiBObyBsYXJnZSBmdW5jdGlvbmFsIGNoYW5n ZXMgLSBwcmltYXJpbHkgY29kZSBpbXByb3ZlbWVudHMgYW5kIG5hbWluZyBzY2hlbWEuCj4gPiA+ PiAxKSBVcGRhdGVkIGVudGlyZSBzZXQgdG8gZW5zdXJlIGEgY29uc2lzdGVudCBuYW1pbmcgc2No ZW1lIHdhcyB1c2VkIGZvcgo+ID4gPj4gdmFyaWFibGVzIGFuZCBzdHJ1Y3QgbWVtYmVycyB0aGF0 IHJlZmVyIHRvIHRoZSBrZXkgb2JqZWN0cyBpbiB0aGUgc3lzdGVtLgo+ID4gPj4gU3VmZml4ZXMg X2Rlc2MgdXNlZCBmb3IgYWxsIHJlZmVyZW5jZXMgdG8gZmVhdHVyZSBhbmQgY29uZmlndXJhaW9u IGRlc2NyaXB0b3JzLAo+ID4gPj4gc3VmZml4IF9jc2RldiB1c2VkIGZvciBhbGwgcmVmZXJlbmNl cyB0byBsb2FkIGZlYXR1cmUgYW5kIGNvbmZpZ3MgaW4gdGhlIGNzZGV2Cj4gPiA+PiBpbnN0YW5j ZXMuIChNYXRoaWV1ICYgU3V6dWtpKS4KPiA+ID4+IDIpIERyb3BwZWQgdGhlICdjb25maWd1cmF0 aW9ucycgc3ViIGRpciBpbiBjc19ldG0gcGVyZiBkaXJlY3RvcmllcyBhcyBzdXBlcmZsdW91cwo+ ID4gPj4gd2l0aCB0aGUgY29uZmlnZnMgY29udGFpbmluZyB0aGUgc2FtZSBpbmZvcm1hdGlvbi4g KE1hdGhpZXUpLgo+ID4gPj4gMykgU2ltcGxpZmllZCBwZXJmIGhhbmRsaW5nIGNvZGUgKHN1enVr aSkKPiA+ID4+IDQpIE11bHRpcGxlIHNpbXBsaWZpY2F0aW9ucyBhbmQgaW1wcm92ZW1lbnRzIGZv ciBjb2RlIHJlYWRhYmlsaXR5IChNYXR0aGlldQo+ID4gPj4gYW5kIFN1enVraSkKPiA+ID4+Cj4g PiA+PiBDaGFuZ2VzIHNpbmNlIHYzOiAoUHJpbWFyaWx5IGJhc2VkIG9uIGNvbW1lbnRzIGZyb20g TWF0dGhpZXUpCj4gPiA+PiAxKSBMb2NraW5nIG1lY2hhbmlzbXMgc2ltcGxpZmllZC4KPiA+ID4+ IDIpIFJlbW92ZWQgdGhlIHBvc3NpYmlsaXR5IHRvIGVuYWJsZSBmZWF0dXJlcyBpbmRlcGVuZGVu dGx5IGZyb20KPiA+ID4+IGNvbmZpZ3VyYXRpb25zLk9ubHkgY29uZmlndXJhdGlvbnMgY2FuIGJl IGVuYWJsZWQgbm93LiBTaW1wbGlmaWVzIHByb2dyYW1taW5nCj4gPiA+PiBsb2dpYy4KPiA+ID4+ IDMpIENvbmZpZ3VyYXRpb24gbm93IHVzZXMgYW4gYWN0aXZhdGUtPmVuYWJsZSBtZWNoYW5pc20u IFRoaXMgbWVhbnMgdGhhdCBwZXJmCj4gPiA+PiB3aWxsIGFjdGl2YXRlIGEgc2VsZWN0ZWQgY29u ZmlndXJhdGlvbiBhdCB0aGUgc3RhcnQgb2YgYSBzZXNzaW9uIChkdXJpbmcKPiA+ID4+IHNldHVw X2F1eCksIGFuZCBkaXNhYmxlIGF0IHRoZSBlbmQgb2YgYSBzZXNzaW9uIChhcm91bmQgZnJlZV9h dXgpCj4gPiA+PiBUaGUgYWN0aXZlIGNvbmZpZ3VyYXRpb24gYW5kIGFzc29jaWF0ZWQgZmVhdHVy ZXMgd2lsbCBiZSBwcm9ncmFtbWVkIGludG8gdGhlCj4gPiA+PiBDb3JlU2lnaHQgZGV2aWNlIGlu c3RhbmNlcyB3aGVuIHRoZXkgYXJlIGVuYWJsZWQuIFRoaXMgbG9ja3MgdGhlIGNvbmZpZ3VyYXRp b24KPiA+ID4+IGludG8gdGhlIHN5c3RlbSB3aGlsZSBpbiB1c2UuIFBhcmFtZXRlcnMgY2Fubm90 IGJlIGFsdGVyZWQgd2hpbGUgdGhpcyBpcwo+ID4gPj4gaW4gcGxhY2UuIFRoaXMgbWVjaGFuaXNt IHdpbGwgYmUgZXh0ZW5kZWQgaW4gZnV0dXJlIGZvciBkeW5hbWljIGxvYWQgLyB1bmxvYWQKPiA+ ID4+IG9mIGNvbmZpZ3VyYXRpb25zIHRvIHByZXZlbnQgcmVtb3ZhbCB3aGlsZSBpbiB1c2UuCj4g PiA+PiA0KSBSZW1vdmVkIHRoZSBjdXN0b20gYnVzIC8gZHJpdmVyIGFzIHVuLW5lY2Vzc2FyeS4g QSBzaW5nbGUgZGV2aWNlIGlzCj4gPiA+PiByZWdpc3RlcmVkIHRvIG93biBwZXJmIGZzIGVsZW1l bnRzIGFuZCBjb25maWdmcy4KPiA+ID4+IDUpIFZhcmlvdXMgb3RoZXIgbWlub3IgaXNzdWVzIGFk ZHJlc3NlZC4KPiA+ID4+Cj4gPiA+PiBDaGFuZ2VzIHNpbmNlIHYyOgo+ID4gPj4gMSkgQWRkZWQg ZG9jdW1lbnRhdGlvbiBmaWxlLgo+ID4gPj4gMikgQWx0ZXJlZCBjc19zeXNjZmcgZHJpdmVyIHRv IG5vIGxvbmdlciBiZSBjb3Jlc2lnaHRfZGV2aWNlIGJhc2VkLCBhbmQgbW92ZWQKPiA+ID4+IHRv IGl0cyBvd24gY3VzdG9tIGJ1cyB0byByZW1vdmUgaXQgZnJvbSB0aGUgbWFpbiBjb3Jlc2lnaHQg YnVzLiAoTWF0aGlldSkKPiA+ID4+IDMpIEFkZGVkIGNvbmZpZ2ZzIHN1cHBvcnQgdG8gaW5zcGVj dCBhbmQgY29udHJvbCBsb2FkZWQgY29uZmlndXJhdGlvbnMgYW5kCj4gPiA+PiBmZWF0dXJlcy4g QWxsb3dzIGxpc3Rpbmcgb2YgcHJlc2V0IHZhbHVlcyAoWWFiaW4gQ3VpKQo+ID4gPj4gNCkgRHJv cHBlZCBzeXNmcyBzdXBwb3J0IGZvciBhZGp1c3RpbmcgZmVhdHVyZSBwYXJhbWV0ZXJzIG9uIHRo ZSBwZXIgZGV2aWNlCj4gPiA+PiBiYXNpcywgaW4gZmF2b3VyIG9mIGEgc2luZ2xlIHBvaW50IGFk anVzdG1lbnQgaW4gY29uZmlnZnMgdGhhdCBpcyBwdXNoZWQgdG8gYWxsCj4gPiA+PiBkZXZpY2Ug aW5zdGFuY2VzLgo+ID4gPj4gNSkgQWx0ZXJlZCBob3cgdGhlIGNvbmZpZyBhbmQgcHJlc2V0IGNv bW1hbmQgbGluZSBvcHRpb25zIGFyZSBoYW5kbGVkIGluIHBlcmYKPiA+ID4+IGFuZCB0aGUgZHJp dmVycy4gKE1hdGhpZXUgYW5kIFN1enVraSkuCj4gPiA+PiA2KSBGaXhlcyBmb3IgdmFyaW91cyBp c3N1ZXMgYW5kIHRlY2huaWNhbCBwb2ludHMgKE1hdGhpZXUsIFlhYmluKQo+ID4gPj4KPiA+ID4+ IENoYW5nZXMgc2luY2UgdjE6Cj4gPiA+PiAxKSBNb3ZlZCBwcmVsb2FkZWQgY29uZmlndXJhdGlv bnMgYW5kIGZlYXR1cmVzIG91dCBvZiBpbmRpdmlkdWFsIGRyaXZlcnMuCj4gPiA+PiAyKSBBZGRl ZCBjc19zeXNjZmcgZHJpdmVyIHRvIG1hbmFnZSBjb25maWd1cmF0aW9ucyBhbmQgZmVhdHVyZXMu IEluZGl2aWR1YWwKPiA+ID4+IGRyaXZlcnMgcmVnaXN0ZXIgd2l0aCBjc19zeXNjZmcgaW5kaWNh dGluZyBzdXBwb3J0IGZvciBjb25maWcsIGFuZCBwcm92aWRlCj4gPiA+PiBtYXRjaGluZyBpbmZv cm1hdGlvbiB0aGF0IHRoZSBzeXN0ZW0gdXNlcyB0byBsb2FkIGZlYXR1cmVzIGludG8gdGhlIGRy aXZlcnMuCj4gPiA+PiBUaGlzIGFsbG93cyBpbmRpdmlkdWFsIGRyaXZlcnMgdG8gYmUgdXBkYXRl ZCBvbiBhbiBhcyBuZWVkZWQgYmFzaXMgLSBhbmQKPiA+ID4+IHJlbW92ZXMgdGhlIG5lZWQgdG8g Y29uc2lkZXIgZGV2aWNlcyB0aGF0IGNhbm5vdCBiZW5lZml0IGZyb20gY29uZmlndXJhdGlvbiAt Cj4gPiA+PiBzdGF0aWMgcmVwbGljYXRvcnMsIGZ1bm5lbHMsIHRwaXUuCj4gPiA+PiAzKSBBZGRl ZCBwZXJmIHNlbGVjdGlvbiBvZiBjb25maWd1YXJhdGlvbnMuCj4gPiA+PiA0KSBSZWJhc2VkIG9u dG8gdGhlIGNvcmVzaWdodCBtb2R1bGUgbG9hZGluZyBzZXQuCj4gPiA+Pgo+ID4gPj4gVG8gZm9s bG93IGluIGZ1dHVyZSByZXZpc2lvbnMgLyBzZXRzOi0KPiA+ID4+IGEpIGxvYWQgb2YgYWRkaXRp b25hbCBjb25maWcgYW5kIGZlYXR1cmVzIGJ5IGxvYWRhYmxlIG1vZHVsZS4KPiA+ID4+IGIpIGxv YWQgb2YgYWRkaXRpb25hbCBjb25maWcgYW5kIGZlYXR1cmVzIGJ5IGNvbmZpZ2ZzCj4gPiA+PiBj KSBlbmhhbmNlZCByZXNvdXJjZSBtYW5hZ2VtZW50IGZvciBFVE12NCBhbmQgY2hlY2tpbmcgZmVh dHVyZXMgaGF2ZSBzdWZmaWNpZW50Cj4gPiA+PiByZXNvdXJjZXMgdG8gYmUgZW5hYmxlZC4KPiA+ ID4+IGQpIEVDVCBhbmQgQ1RJIHN1cHBvcnQgZm9yIGNvbmZpZ3VyYXRpb24gYW5kIGZlYXR1cmVz Lgo+ID4gPj4KPiA+ID4+IE1pa2UgTGVhY2ggKDEwKToKPiA+ID4+ICAgY29yZXNpZ2h0OiBzeXNj Zmc6IEluaXRpYWwgY29yZXNpZ2h0IHN5c3RlbSBjb25maWd1cmF0aW9uCj4gPiA+PiAgIGNvcmVz aWdodDogc3lzY2ZnOiBBZGQgcmVnaXN0cmF0aW9uIGFuZCBmZWF0dXJlIGxvYWRpbmcgZm9yIGNz IGRldmljZXMKPiA+ID4+ICAgY29yZXNpZ2h0OiBjb25maWc6IEFkZCBjb25maWd1cmF0aW9uIGFu ZCBmZWF0dXJlIGdlbmVyaWMgZnVuY3Rpb25zCj4gPiA+PiAgIGNvcmVzaWdodDogZXRtLXBlcmY6 IHVwZGF0ZSB0byBoYW5kbGUgY29uZmlndXJhdGlvbiBzZWxlY3Rpb24KPiA+ID4+ICAgY29yZXNp Z2h0OiBzeXNjZmc6IEFkZCBBUEkgdG8gYWN0aXZhdGUgYW5kIGVuYWJsZSBjb25maWd1cmF0aW9u cwo+ID4gPj4gICBjb3Jlc2lnaHQ6IGV0bS1wZXJmOiBVcGRhdGUgdG8gYWN0aXZhdGUgc2VsZWN0 ZWQgY29uZmlndXJhdGlvbgo+ID4gPj4gICBjb3Jlc2lnaHQ6IGV0bTR4OiBBZGQgY29tcGxleCBj b25maWd1cmF0aW9uIGhhbmRsZXJzIHRvIGV0bXY0Cj4gPiA+PiAgIGNvcmVzaWdodDogY29uZmln OiBBZGQgcHJlbG9hZGVkIGNvbmZpZ3VyYXRpb25zCj4gPiA+PiAgIGNvcmVzaWdodDogc3lzY2Zn OiBBZGQgaW5pdGlhbCBjb25maWdmcyBzdXBwb3J0Cj4gPiA+PiAgIERvY3VtZW50YXRpb246IGNv cmVzaWdodDogQWRkIGRvY3VtZW50YXRpb24gZm9yIENvcmVTaWdodCBjb25maWcKPiA+ID4+Cj4g PiA+PiAgLi4uL3RyYWNlL2NvcmVzaWdodC9jb3Jlc2lnaHQtY29uZmlnLnJzdCAgICAgIHwgMjQ0 ICsrKysrKwo+ID4gPj4gIERvY3VtZW50YXRpb24vdHJhY2UvY29yZXNpZ2h0L2NvcmVzaWdodC5y c3QgICB8ICAxNiArCj4gPiA+PiAgZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L0tjb25maWcg ICAgICAgICAgIHwgICAxICsKPiA+ID4+ICBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvTWFr ZWZpbGUgICAgICAgICAgfCAgIDcgKy0KPiA+ID4+ICAuLi4vaHd0cmFjaW5nL2NvcmVzaWdodC9j b3Jlc2lnaHQtY2ZnLWFmZG8uYyAgfCAxNTMgKysrKwo+ID4gPj4gIC4uLi9jb3Jlc2lnaHQvY29y ZXNpZ2h0LWNmZy1wcmVsb2FkLmMgICAgICAgICB8ICAzMSArCj4gPiA+PiAgLi4uL2NvcmVzaWdo dC9jb3Jlc2lnaHQtY2ZnLXByZWxvYWQuaCAgICAgICAgIHwgIDEzICsKPiA+ID4+ICAuLi4vaHd0 cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtY29uZmlnLmMgICAgfCAyNzUgKysrKysrCj4gPiA+ PiAgLi4uL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWNvbmZpZy5oICAgIHwgMjUzICsr KysrKwo+ID4gPj4gIGRyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtY29yZS5j ICB8ICAxMiArLQo+ID4gPj4gIC4uLi9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1ldG0t cGVyZi5jICB8IDE1MCArKystCj4gPiA+PiAgLi4uL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNp Z2h0LWV0bS1wZXJmLmggIHwgIDEyICstCj4gPiA+PiAgLi4uL2h3dHJhY2luZy9jb3Jlc2lnaHQv Y29yZXNpZ2h0LWV0bTR4LWNmZy5jIHwgMTgyICsrKysKPiA+ID4+ICAuLi4vaHd0cmFjaW5nL2Nv cmVzaWdodC9jb3Jlc2lnaHQtZXRtNHgtY2ZnLmggfCAgMzAgKwo+ID4gPj4gIC4uLi9jb3Jlc2ln aHQvY29yZXNpZ2h0LWV0bTR4LWNvcmUuYyAgICAgICAgICB8ICAzOCArLQo+ID4gPj4gIC4uLi9j b3Jlc2lnaHQvY29yZXNpZ2h0LWV0bTR4LXN5c2ZzLmMgICAgICAgICB8ICAgMyArCj4gPiA+PiAg Li4uL2NvcmVzaWdodC9jb3Jlc2lnaHQtc3lzY2ZnLWNvbmZpZ2ZzLmMgICAgIHwgMzk2ICsrKysr KysrKwo+ID4gPj4gIC4uLi9jb3Jlc2lnaHQvY29yZXNpZ2h0LXN5c2NmZy1jb25maWdmcy5oICAg ICB8ICA0NSArCj4gPiA+PiAgLi4uL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXN5c2Nm Zy5jICAgIHwgODI5ICsrKysrKysrKysrKysrKysrKwo+ID4gPj4gIC4uLi9od3RyYWNpbmcvY29y ZXNpZ2h0L2NvcmVzaWdodC1zeXNjZmcuaCAgICB8ICA4MSArKwo+ID4gPj4gIGluY2x1ZGUvbGlu dXgvY29yZXNpZ2h0LmggICAgICAgICAgICAgICAgICAgICB8ICAxMSArCj4gPiA+PiAgMjEgZmls ZXMgY2hhbmdlZCwgMjc0NiBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKPiA+ID4+ICBj cmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi90cmFjZS9jb3Jlc2lnaHQvY29yZXNpZ2h0 LWNvbmZpZy5yc3QKPiA+ID4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9od3RyYWNpbmcv Y29yZXNpZ2h0L2NvcmVzaWdodC1jZmctYWZkby5jCj4gPiA+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtY2ZnLXByZWxvYWQuYwo+ID4g Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNp Z2h0LWNmZy1wcmVsb2FkLmgKPiA+ID4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9od3Ry YWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1jb25maWcuYwo+ID4gPj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWNvbmZpZy5oCj4gPiA+ PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2ln aHQtZXRtNHgtY2ZnLmMKPiA+ID4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9od3RyYWNp bmcvY29yZXNpZ2h0L2NvcmVzaWdodC1ldG00eC1jZmcuaAo+ID4gPj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXN5c2NmZy1jb25maWdm cy5jCj4gPiA+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdo dC9jb3Jlc2lnaHQtc3lzY2ZnLWNvbmZpZ2ZzLmgKPiA+ID4+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1zeXNjZmcuYwo+ID4gPj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXN5 c2NmZy5oCj4gPiA+Pgo+ID4gPj4gLS0KPiA+ID4+IDIuMTcuMQo+ID4gPj4KPiA+ID4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gQ29yZVNpZ2h0 IG1haWxpbmcgbGlzdAo+ID4gPiBDb3JlU2lnaHRAbGlzdHMubGluYXJvLm9yZwo+ID4gPiBodHRw czovL2xpc3RzLmxpbmFyby5vcmcvbWFpbG1hbi9saXN0aW5mby9jb3Jlc2lnaHQKPiA+ID4KPiAK PiAKPiAKPiAtLSAKPiBNaWtlIExlYWNoCj4gUHJpbmNpcGFsIEVuZ2luZWVyLCBBUk0gTHRkLgo+ IE1hbmNoZXN0ZXIgRGVzaWduIENlbnRyZS4gVUsKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK 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=-10.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,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 07CCFC636C9 for ; Wed, 21 Jul 2021 17:44:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E4F4161246 for ; Wed, 21 Jul 2021 17:44:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235874AbhGUREA (ORCPT ); Wed, 21 Jul 2021 13:04:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45034 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229943AbhGURD7 (ORCPT ); Wed, 21 Jul 2021 13:03:59 -0400 Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F780C061575 for ; Wed, 21 Jul 2021 10:44:33 -0700 (PDT) Received: by mail-pf1-x434.google.com with SMTP id b12so2768039pfv.6 for ; Wed, 21 Jul 2021 10:44:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=7g04vBKtF0ZEElYFfHTxoyICeD5Xbte2szynNTtKTgU=; b=KMqxCPJK9BUAR4yIp3GNnad/u9nrO2pFwCRlcbuPIDMnz3qJveugb8M6SYvFz0iww4 QDNPZbNvaGiWM5T3O99Nrmbh38asRORFQehJDhXKmAOGx9gINpTu7deme+hZDTQCWwbp k2SH1D3QNtGg8E8Z16mvHEJReUXeVEQ8wcV9OfhorSYJD/Vr/2EcKUlJ458t56sG64ri GPTfOwXbzRH1VLyfY13kcC+MkFEyUCsQiBkXN8gl74qMxXCAPnG81f9EofRS8Y8jr3AW cs4K9z6DLl2dQYNyFJ+yYFjH5vykaBOs/D6/kw5Q1JW1wWk6MecVVElEsHC6/OVHN/QK 3jEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=7g04vBKtF0ZEElYFfHTxoyICeD5Xbte2szynNTtKTgU=; b=l/zEOvTC7FOd1xHe0fddgGAf+yhYEbDfSmjAUV9arxodM7X8nxYJYQZreeS/ComYa9 XLLWbRVaz28Bj7Z0bI2+EjL6mA585aOJhrvK+t6B+wlOW3u6P1Dw334p8wCB7+TlvarW mJSzMRRb5Umsf3uqjJ3ibWoEhlgQmeQsVpOgo+64A7Z/BLcPt109s92DkY3G9RyBSu+b xOCEHAnXv5dsKAwKo/E0nIDAyoqr9L1/36EHlapTv53YsOW2QGalmA6k48KDsqFbOSDK QnEmpCts/+b7chF9gJZzIMClBbI6F8n2YesKMzmYeoi1+5fpLq9OTzYku8Tr3hnRT2tr HZiA== X-Gm-Message-State: AOAM530VMmoZcuUz0B6MOOyjNVQUOhjkkhK3iF7XVyddv3rNg2V+GnHQ AcseSiN2BVP8J2C0uHV7NyCLWQ== X-Google-Smtp-Source: ABdhPJxz2cPOQ/4/hN3ve/rcMePrZuyJgMWDJTMmkUwlsfLtFBF2K68WPa46bBAriZKDyErPQf2x8g== X-Received: by 2002:a05:6a00:b83:b029:352:9507:f3b9 with SMTP id g3-20020a056a000b83b02903529507f3b9mr8638760pfj.13.1626889473023; Wed, 21 Jul 2021 10:44:33 -0700 (PDT) Received: from p14s (S0106889e681aac74.cg.shawcable.net. [68.147.0.187]) by smtp.gmail.com with ESMTPSA id b1sm501569pjn.11.2021.07.21.10.44.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jul 2021 10:44:19 -0700 (PDT) Date: Wed, 21 Jul 2021 11:44:17 -0600 From: Mathieu Poirier To: Mike Leach Cc: Branislav Rankov , Alexander Shishkin , Greg Kroah-Hartman , Coresight ML , Linux Kernel Mailing List , linux-arm-kernel Subject: Re: [PATCH v8 00/10] CoreSight configuration management; ETM strobing Message-ID: <20210721174417.GB2377909@p14s> References: <20210707133003.5414-1-mike.leach@linaro.org> <20210712164413.GA1777012@p14s> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 16, 2021 at 11:25:47AM +0100, Mike Leach wrote: > HI Mathieu, > > Below my change notes for the patches changed between v7 and v8 in this set. > > Regards > > Mike > > 0001, 0003, 0004, 0006, 0007, 0008, 0010 - no change > > 0002 - > coresight-syscfg.c > top of file - mutex declaration removed. > cscfg_add_csdev_cfg() > Spinlock replaces mutex > cscfg_load_feat_csdev() > Spinlock replaces mutex > cscsg_list_add_csdev() > Init spinlock > coresight.h > struct coresight_device {} > Add spinlock cscfg_csdev_lock alongside the csdev feature and > config lists that it protects. > > 0005 - > coresight-syscfg.c > cscfg_csdev_reset_feats() > Spinlock replaces mutex. > > cscfg_csdev_enable_active_config() > Spinlock replaces mutex. In enable flag to avoid race with disable. > cscfg_csdev_disable_active_config() > Spinlock replaces mutex. In enable flag to avoid race with enable. > I'm good with the changes made to the above two patches. > > coresight.h > struct coresight_device {} > In enable flag introduced to control possible race between > enable and disable. E.g. if we are enabling a config, but a power > event tries to shut down the CPU/ETM causing a disable call. We don’t > want to hold the cscfg_csdev_lock spinlock throughout the entire > enable process - especially as the programming call will claim the > internal driver spinlock when writing internal driver data, but we > need to ensure that if there is a condition that permits a disable > call out of normal sequence then we are able to see it and handle it. > Here I'm assuming the enable and disable calls you are referring to are cscfg_csdev_enable_active_config() and cscfg_csdev_disable_active_config(). >From the above paragraph I understand that a call to cscfg_csdev_enable_config() can be interrupted at any time when the CPU is shutting down, which can only happen when operating from sysfs. With the above in mind and looking at the implementation in patch 05, if the code gets interrupted right after cscfg_csdev_enable_config(), function cscfg_csdev_disable_config() in cscfg_csdev_disable_active_config() won't be called. In function cscfg_csdev_enable_active_config(), could it be possible to set csdev->active_cscfg_ctxt instead of csdev->cscfg_in_enable? If cscfg_csdev_enable_config() gets interrupted then function cscfg_csdev_disable_config() can be called. At that point disabling a feature that hasn't been enabled shouldn't do anything. Thanks, Mathieu > 0009 - > KConfig > add in dependency on CONFIGFS_FS to eliminate problem highlighted > by the kernel bot tests. This had configured coresight as Y, but > configfs as M - meaning link issues for configfs code introduced in > this set. > > On Tue, 13 Jul 2021 at 10:43, Branislav Rankov wrote: > > > > Hi Mathieu, > > > > On 7/12/21 5:44 PM, Mathieu Poirier wrote: > > > Good morning Mike, > > > > > > On Wed, Jul 07, 2021 at 02:29:53PM +0100, Mike Leach wrote: > > >> This patchset introduces initial concepts in CoreSight system > > >> configuration management support. to allow more detailed and complex > > >> programming to be applied to CoreSight systems during trace capture. > > >> > > >> Configurations consist of 2 elements:- > > >> 1) Features - programming combinations for devices, applied to a class of > > >> device on the system (all ETMv4), or individual devices. > > >> 2) Configurations - a set of programmed features used when the named > > >> configuration is selected. > > >> > > >> Features and configurations are declared as a data table, a set of register, > > >> resource and parameter requirements. Features and configurations are loaded > > >> into the system by the virtual cs_syscfg device. This then matches features > > >> to any registered devices and loads the feature into them. > > >> > > >> Individual device classes that support feature and configuration register > > >> with cs_syscfg. > > >> > > >> Once loaded a configuration can be enabled for a specific trace run. > > >> Configurations are registered with the perf cs_etm event as entries in > > >> cs_etm/events. These can be selected on the perf command line as follows:- > > >> > > >> perf record -e cs_etm// ... > > >> > > >> This patch set has one pre-loaded configuration and feature. > > >> A named "strobing" feature is provided for ETMv4. > > >> A named "autofdo" configuration is provided. This configuration enables > > >> strobing on any ETM in used. > > >> > > >> Thus the command: > > >> perf record -e cs_etm/autofdo/ ... > > >> > > >> will trace the supplied application while enabling the "autofdo" configuation > > >> on each ETM as it is enabled by perf. This in turn will enable strobing for > > >> the ETM - with default parameters. Parameters can be adjusted using configfs. > > >> > > >> The sink used in the trace run will be automatically selected. > > >> > > >> A configuration can supply up to 15 of preset parameter values, which will > > >> subsitute in parameter values for any feature used in the configuration. > > >> > > >> Selection of preset values as follows > > >> perf record -e cs_etm/autofdo,preset=1/ ... > > >> > > >> (valid presets 1-N, where N is the number supplied in the configuration, not > > >> exceeding 15. preset=0 is the same as not selecting a preset.) > > >> > > >> Applies to & tested against coresight/next (5.13-rc6 base) > > >> > > >> Changes since v7: > > >> > > >> Fixed kernel test robot issue - config with CORESIGHT=y & CONFIGFS_FS=m causes > > >> build error. Altered CORESIGHT config to select CONFIGFS_FS. > > >> Reported-by: kernel test robot > > >> > > >> Replaced mutex use to protect loaded config lists in coresight devices with per > > >> device spinlock to remove issue when disable called in interrupt context. > > >> Reported-by: Branislav Rankov > > >> > > > > > > Can you indicate which patches have changed so I don't have to review the whole > > > thing again? It is also common practice to remove the RB tag when patches > > > have changed enough to mandate another review. In this case all patches still > > > bare my RB tags. > > > > > > Branislav reported the problem but he is not a recipient. I would like to have > > > a confirmation from him that this set fixes the problem he observed before I > > > start looking at it. > > > > I have tested this series and the issue I reported is fixed. > > > > > > Thanks, > > > Mathieu > > > > > >> > > >> Changes since v6: > > >> Fixed kernel test robot issues- > > >> Reported-by: kernel test robot > > >> > > >> Changes since v5: > > >> > > >> 1) Fix code style issues from auto-build reports, as > > >> Reported-by: kernel test robot > > >> 2) Update comments to get consistent docs for API functions. > > >> 3) remove unused #define from autofdo example. > > >> 4) fix perf code style issues from patch 4 (Mathieu) > > >> 5) fix configfs code style issues from patch 9. (Mathieu) > > >> > > >> Changes since v4: (based on comments from Matthieu and Suzuki). > > >> No large functional changes - primarily code improvements and naming schema. > > >> 1) Updated entire set to ensure a consistent naming scheme was used for > > >> variables and struct members that refer to the key objects in the system. > > >> Suffixes _desc used for all references to feature and configuraion descriptors, > > >> suffix _csdev used for all references to load feature and configs in the csdev > > >> instances. (Mathieu & Suzuki). > > >> 2) Dropped the 'configurations' sub dir in cs_etm perf directories as superfluous > > >> with the configfs containing the same information. (Mathieu). > > >> 3) Simplified perf handling code (suzuki) > > >> 4) Multiple simplifications and improvements for code readability (Matthieu > > >> and Suzuki) > > >> > > >> Changes since v3: (Primarily based on comments from Matthieu) > > >> 1) Locking mechanisms simplified. > > >> 2) Removed the possibility to enable features independently from > > >> configurations.Only configurations can be enabled now. Simplifies programming > > >> logic. > > >> 3) Configuration now uses an activate->enable mechanism. This means that perf > > >> will activate a selected configuration at the start of a session (during > > >> setup_aux), and disable at the end of a session (around free_aux) > > >> The active configuration and associated features will be programmed into the > > >> CoreSight device instances when they are enabled. This locks the configuration > > >> into the system while in use. Parameters cannot be altered while this is > > >> in place. This mechanism will be extended in future for dynamic load / unload > > >> of configurations to prevent removal while in use. > > >> 4) Removed the custom bus / driver as un-necessary. A single device is > > >> registered to own perf fs elements and configfs. > > >> 5) Various other minor issues addressed. > > >> > > >> Changes since v2: > > >> 1) Added documentation file. > > >> 2) Altered cs_syscfg driver to no longer be coresight_device based, and moved > > >> to its own custom bus to remove it from the main coresight bus. (Mathieu) > > >> 3) Added configfs support to inspect and control loaded configurations and > > >> features. Allows listing of preset values (Yabin Cui) > > >> 4) Dropped sysfs support for adjusting feature parameters on the per device > > >> basis, in favour of a single point adjustment in configfs that is pushed to all > > >> device instances. > > >> 5) Altered how the config and preset command line options are handled in perf > > >> and the drivers. (Mathieu and Suzuki). > > >> 6) Fixes for various issues and technical points (Mathieu, Yabin) > > >> > > >> Changes since v1: > > >> 1) Moved preloaded configurations and features out of individual drivers. > > >> 2) Added cs_syscfg driver to manage configurations and features. Individual > > >> drivers register with cs_syscfg indicating support for config, and provide > > >> matching information that the system uses to load features into the drivers. > > >> This allows individual drivers to be updated on an as needed basis - and > > >> removes the need to consider devices that cannot benefit from configuration - > > >> static replicators, funnels, tpiu. > > >> 3) Added perf selection of configuarations. > > >> 4) Rebased onto the coresight module loading set. > > >> > > >> To follow in future revisions / sets:- > > >> a) load of additional config and features by loadable module. > > >> b) load of additional config and features by configfs > > >> c) enhanced resource management for ETMv4 and checking features have sufficient > > >> resources to be enabled. > > >> d) ECT and CTI support for configuration and features. > > >> > > >> Mike Leach (10): > > >> coresight: syscfg: Initial coresight system configuration > > >> coresight: syscfg: Add registration and feature loading for cs devices > > >> coresight: config: Add configuration and feature generic functions > > >> coresight: etm-perf: update to handle configuration selection > > >> coresight: syscfg: Add API to activate and enable configurations > > >> coresight: etm-perf: Update to activate selected configuration > > >> coresight: etm4x: Add complex configuration handlers to etmv4 > > >> coresight: config: Add preloaded configurations > > >> coresight: syscfg: Add initial configfs support > > >> Documentation: coresight: Add documentation for CoreSight config > > >> > > >> .../trace/coresight/coresight-config.rst | 244 ++++++ > > >> Documentation/trace/coresight/coresight.rst | 16 + > > >> drivers/hwtracing/coresight/Kconfig | 1 + > > >> drivers/hwtracing/coresight/Makefile | 7 +- > > >> .../hwtracing/coresight/coresight-cfg-afdo.c | 153 ++++ > > >> .../coresight/coresight-cfg-preload.c | 31 + > > >> .../coresight/coresight-cfg-preload.h | 13 + > > >> .../hwtracing/coresight/coresight-config.c | 275 ++++++ > > >> .../hwtracing/coresight/coresight-config.h | 253 ++++++ > > >> drivers/hwtracing/coresight/coresight-core.c | 12 +- > > >> .../hwtracing/coresight/coresight-etm-perf.c | 150 +++- > > >> .../hwtracing/coresight/coresight-etm-perf.h | 12 +- > > >> .../hwtracing/coresight/coresight-etm4x-cfg.c | 182 ++++ > > >> .../hwtracing/coresight/coresight-etm4x-cfg.h | 30 + > > >> .../coresight/coresight-etm4x-core.c | 38 +- > > >> .../coresight/coresight-etm4x-sysfs.c | 3 + > > >> .../coresight/coresight-syscfg-configfs.c | 396 +++++++++ > > >> .../coresight/coresight-syscfg-configfs.h | 45 + > > >> .../hwtracing/coresight/coresight-syscfg.c | 829 ++++++++++++++++++ > > >> .../hwtracing/coresight/coresight-syscfg.h | 81 ++ > > >> include/linux/coresight.h | 11 + > > >> 21 files changed, 2746 insertions(+), 36 deletions(-) > > >> create mode 100644 Documentation/trace/coresight/coresight-config.rst > > >> create mode 100644 drivers/hwtracing/coresight/coresight-cfg-afdo.c > > >> create mode 100644 drivers/hwtracing/coresight/coresight-cfg-preload.c > > >> create mode 100644 drivers/hwtracing/coresight/coresight-cfg-preload.h > > >> create mode 100644 drivers/hwtracing/coresight/coresight-config.c > > >> create mode 100644 drivers/hwtracing/coresight/coresight-config.h > > >> create mode 100644 drivers/hwtracing/coresight/coresight-etm4x-cfg.c > > >> create mode 100644 drivers/hwtracing/coresight/coresight-etm4x-cfg.h > > >> create mode 100644 drivers/hwtracing/coresight/coresight-syscfg-configfs.c > > >> create mode 100644 drivers/hwtracing/coresight/coresight-syscfg-configfs.h > > >> create mode 100644 drivers/hwtracing/coresight/coresight-syscfg.c > > >> create mode 100644 drivers/hwtracing/coresight/coresight-syscfg.h > > >> > > >> -- > > >> 2.17.1 > > >> > > > _______________________________________________ > > > CoreSight mailing list > > > CoreSight@lists.linaro.org > > > https://lists.linaro.org/mailman/listinfo/coresight > > > > > > > -- > Mike Leach > Principal Engineer, ARM Ltd. > Manchester Design Centre. UK