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 ED16BC6FD18 for ; Wed, 19 Apr 2023 14:24:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232909AbjDSOY5 (ORCPT ); Wed, 19 Apr 2023 10:24:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232606AbjDSOYm (ORCPT ); Wed, 19 Apr 2023 10:24:42 -0400 Received: from mail-ua1-x92e.google.com (mail-ua1-x92e.google.com [IPv6:2607:f8b0:4864:20::92e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1205976A5; Wed, 19 Apr 2023 07:24:06 -0700 (PDT) Received: by mail-ua1-x92e.google.com with SMTP id v18so11658030uak.8; Wed, 19 Apr 2023 07:24:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681914239; x=1684506239; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+1WTh5tAbWrd9+DY82MbH//HicCuqopdYUorpC0WJeI=; b=aL0NggV3xngUc/myEWqZ8Lqe3xTihoNP1mh0oyQmYj5CTAM9w6utd8P6PKieuJ15UQ nEYBRykLlkr4OSG9xMZB9Tbi1Hs4osdnoMicliQMd5cB0tw54A3R7bgmM4mYMuTuSiT+ 8aHHChZEbWsmjXPkGqH0XV9z2atkh1YayZag87tLWMk15NeSJmPk7AJkmBE6TiJUKR+f BOzi9gNI7f293MQNHVcuJbihPbwtBYDXbRga/CEv4/YgkQzU3GskB10/dzPzTmqxwftQ czlzSUlTKpaRiGjlMVQvBP5WqJgJk5ipNUcF78Ft1cwfTwrlTEDU52h764TbuuHFAYnj Oc6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681914239; x=1684506239; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+1WTh5tAbWrd9+DY82MbH//HicCuqopdYUorpC0WJeI=; b=PVxpD7joEyjejw2T/ZT9ND5gPOFNW+6LTxDfIMK3a2Syp1AD0Dr1Y7izAPddnI71UI VfnMR1fUFQK0ND5Y7zuU1H6BV97Q5fSGYB2+eSCsDhvDJ999ovsvoMpnYxpoOgA9mpTA v75MsknEGO5CUr0at8eiJbIfnowj5uJVlvFloN5xMWlpYe9p+eLwW8fblkXkraN2y0mD 6x9AoHPp8Vno2uiwXWEgvpJT738hVhQ9oQITSz/YYg1VZ2nTbW1sFIElHAmKjRqm646w wUp5EFD63BWg6kpl3TkWgQNFnZUCi1EQlFKIC5ffmkTe4slojlXLVxpC7dbEqieh1tgM Otmg== X-Gm-Message-State: AAQBX9dSsgBSNbjQbPtafKdiyL2VIBXShx9WT0QIpBhJ9sR48qFA+rCu XgbkRSBVp+XWTpW3uy7pgt4NOHmm8fSzlfNemmE= X-Google-Smtp-Source: AKy350ZFyn5W2/GGnxLxLBg+Iw3saMmI1Tp1Q2pTC75/oCOfXytsakfO7PSjFu6Sg9RCdp3xARNoSLTReRizaWX05mk= X-Received: by 2002:a1f:4305:0:b0:43b:eed8:98a4 with SMTP id q5-20020a1f4305000000b0043beed898a4mr99817vka.7.1681914239159; Wed, 19 Apr 2023 07:23:59 -0700 (PDT) MIME-Version: 1.0 References: <20230411165919.23955-1-jim2101024@gmail.com> <20230411165919.23955-3-jim2101024@gmail.com> <20230413143935.pmbyjk2boxl3rwne@mraw.org> <20230413200646.ddgsoqgmaae343nl@mraw.org> <85a1cca1-f59b-6a0c-dee3-9d9ed5d6b6d1@gmail.com> <20230414161907.zfd2ibshfx4rz56j@mraw.org> In-Reply-To: <20230414161907.zfd2ibshfx4rz56j@mraw.org> From: Jim Quinlan Date: Wed, 19 Apr 2023 10:23:47 -0400 Message-ID: Subject: Re: [PATCH v2 2/3] PCI: brcmstb: CLKREQ# accomodations of downstream device To: Cyril Brulebois Cc: Florian Fainelli , linux-pci@vger.kernel.org, Nicolas Saenz Julienne , Bjorn Helgaas , Lorenzo Pieralisi , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, james.quinlan@broadcom.com, Lorenzo Pieralisi , =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= , Rob Herring , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , open list Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 14, 2023 at 12:19=E2=80=AFPM Cyril Brulebois = wrote: > > Florian Fainelli (2023-04-14): > > Cyril, based upon the table and logs you provided whereby you have used= the > > following: > > > > - Raspberry Pi Compute Module 4 (Rev 1.0, 8G RAM, 32G storage) > > - Raspberry Pi Compute Module 4 IO Board > > - SupaHub PCIe-to-multiple-USB adapter, reference PCE6U1C-R02, VER 006S > > > > in the before/unpatched case we have a PCIe link down and in the > > after/patched we have a PCIe link up but a kernel panic. Neither are gr= eat > > nor resulting in a fully functional PCIe device. > > Based on Jim's feedback, I'm attaching a new dmesg for the aforementioned > setup, with an unpatched kernel (dmesg-unpatched-pcie-link-up.txt). Hello Cyril, I'm still seeing things in the logs that do not make sense to me. First, the "unpatched" version logs -- including the Raspian case -- all have the following lines: [ 0.000000] Movable zone start for each node /* ... */ [ 0.000000] pcpu-alloc: s88232 r8192 d30552 u126976 alloc=3D31*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 The above lines are also in my logs. But they are missing from your "after patch" logs -- what did you change to have these lines disappear on the patched logs? Second, you say that you used a different "CM4" from the one used in the Bugzilla report -- what do you mean by that? Are you referring to the CM4 module proper, whose only change was going from 4GB to 8GB, or the IO board being used? My testing is done with a standard RPi CM4 and standard RPi IO board. Before this patch series, the only way this standard configuration can work for most hobbyist PCI cards (i.e. floating CLKREQ# pin) is by using Raspian AND adding "brcm,enable-l1ss" to the DT node. I'm guessing that you are using the configuration that you described to me in a personal email: "[the] chip is embedded directly on the modified PCB, as opposed to plugged into the PCIe slot on the official CM4 IO Board". If true, you are testing on a configuration that (a) is unique to you and your group and (b) must be doing something with the CLKREQ# signal so that your "before" case does not panic. Is this the case? Finally, and this is a big one, is the fact that in both of the "before" and "after" cases the value written to the internal Brcm CLKREQ# register is the same. This is evident by this line in the "after" patch: "brcm-pcie fd500000.pcie: uni-dir CLKREQ# for ASPM". This mode is the only mode supported by the "before" case. Now there are some other things going on in the patch series -- reading two registers and extending the timeout value of a completion abort, but I'm having a hard time imagining how they could cause a panic. Regards, Jim PS Can you please include in your logs the output of "sudo lspci -vvv" for those cases that boot to prompt? > > I fear that initially I might have not waited enough before power off and > power on when replugging the SupaHub adapter, and I've only seen the PCIe > link down a few times (now that I'm actively paying attention to that > part). I'm indeed seeing PCIe link up consistently (100%) when using the > following method: > > for i in $(seq 1 20); do > # power on, let the system boot up and settle: > sispmctl -t 4; sleep 2m > ssh cm4 sh -c "dmesg > dmesg-$i.txt; poweroff" > # let the system power down, and power off: > sleep 30; sispmctl -t 4 > # wait before power cycling: > sleep 10 > done > > > Looking at: > > https://www.amazon.co.uk/SupaHub-Express-BandWidth-Capable-Expanding/dp= /B092ZQWG5B > > > > it would appear that it can accept an external power supply, do you hav= e one > > connected to that USB expansion card by any chance? > > With the patched kernel, I have tried several things (leaving the regular > 12V adapter plugged in all the time): > - No external power supply (that's what I've been using in all previous > attempts). > - Using a 5V PSU with 2 pins (ground and 5V) plugged on the Ext PSU > 4-pin header on the IO Board. > - Using a 5V PSU with a SATA connector plugged directly onto the SupaHub > adapter. > > I'm getting the same trace in all cases. > > > Are you able to boot the kernel before/after if you disconnect any USB > > peripheral? > > The trace is obtained without any USB peripheral (on the extension card o= r > on the onboard USB slots). Besides the SupaHub adapter on the PCIe slot, = I > only have Ethernet and HDMI plugged in (I'm getting traces via serial > console, and operating the system over SSH when it boots fine). > > As soon as I unplug the SupaHub board itself, the system boots fine. > > > Does that SupaHub board plugged to the CM4 1.0 system work fine in the > > Raspberry Pi kernel tree? > > With the Raspberry Pi OS (64-bit) > Raspberry Pi OS Lite image > (2023-02-21-raspios-bullseye-arm64-lite.img.xz), the system at least > boots fine; I haven't tried adding devices to the mix just yet, trying > to stick with that particular setup. > > A full dmesg is attached (dmesg-raspios.txt). > > > Cheers, > -- > Cyril Brulebois (kibi@debian.org) > D-I release manager -- Release team member -- Freelance Consultant 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 21E46C6FD18 for ; Wed, 19 Apr 2023 14:25:02 +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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ieoqzXVNfwPLHJTuCJtauVbgD3YNYFYnREM+lvB7Aek=; b=upB+dlAOlcn22I WAgq0xAndqrSpGQ8ING1Z80zvKU7G98/6sRZDL0Panx8D7DwxbXAm5WWm9yU8vbKzDV0OnrO0oLgU HtBht/Fn84Ob7fh55c64wLOgPD1Cok1NamO1oTAcRXblNfkeLofDx+Rx9l5tjArjp8uvr29DZeDvC 6x2kgXP31AZFjBmfVkfqSs4/yZN2oAMr1MRabdf5QPHZxu5HI1DAS4QLQBf8C16QWDW6ceU0IZYt5 oqkCfEW2cikWATPZH33oFIuS3x+j041cY7sXC72Rlh+aAQJ2OUSwU46w3zEOY3q5944GsuK3ad+B3 x/U6Aq3+t924vhWiuGlw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pp8j8-005ed8-38; Wed, 19 Apr 2023 14:24:06 +0000 Received: from mail-ua1-x92e.google.com ([2607:f8b0:4864:20::92e]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pp8j5-005ea8-0C; Wed, 19 Apr 2023 14:24:04 +0000 Received: by mail-ua1-x92e.google.com with SMTP id q10so8630299uas.2; Wed, 19 Apr 2023 07:24:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681914239; x=1684506239; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+1WTh5tAbWrd9+DY82MbH//HicCuqopdYUorpC0WJeI=; b=aL0NggV3xngUc/myEWqZ8Lqe3xTihoNP1mh0oyQmYj5CTAM9w6utd8P6PKieuJ15UQ nEYBRykLlkr4OSG9xMZB9Tbi1Hs4osdnoMicliQMd5cB0tw54A3R7bgmM4mYMuTuSiT+ 8aHHChZEbWsmjXPkGqH0XV9z2atkh1YayZag87tLWMk15NeSJmPk7AJkmBE6TiJUKR+f BOzi9gNI7f293MQNHVcuJbihPbwtBYDXbRga/CEv4/YgkQzU3GskB10/dzPzTmqxwftQ czlzSUlTKpaRiGjlMVQvBP5WqJgJk5ipNUcF78Ft1cwfTwrlTEDU52h764TbuuHFAYnj Oc6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681914239; x=1684506239; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+1WTh5tAbWrd9+DY82MbH//HicCuqopdYUorpC0WJeI=; b=WEICL77RKpGCbEbwfvzGUQn84XzkuyRj26iYrPOuzAKDNuuMh3ySfzu234VgY33WS7 MUAZyE413uXacJcwkLgGPXlnFQFUK2K69nu+VllOcEmTcCkihhaiAc3HK6iT/IqKdgfo zBeONT/oGTWW3uH78FP2K/DnTDmzu5trUKt7lKCbEGxmTTSIMAFewVE21xyTYYR3KmRG br7Y5SKbQSPECrFXG7aE5CVK6aT+8tUhQb2UwTaoBCQlsciYOR+dv6v8aMp3gjVB0/ut +C833X9Ax5jZZfbPYVUfke59M3Olv/yChLGUYoZEQVQyNJuYHWS8YrIJmSjnigARZipG yTwg== X-Gm-Message-State: AAQBX9c4aUJEic310vUoNMrnJ9N0SzTUbMw83jmBSBXwCM1emQhQu/yu vRQyNMWuH+no9NZuIgTO4wNcjIhwslgzYdSK3Rw= X-Google-Smtp-Source: AKy350ZFyn5W2/GGnxLxLBg+Iw3saMmI1Tp1Q2pTC75/oCOfXytsakfO7PSjFu6Sg9RCdp3xARNoSLTReRizaWX05mk= X-Received: by 2002:a1f:4305:0:b0:43b:eed8:98a4 with SMTP id q5-20020a1f4305000000b0043beed898a4mr99817vka.7.1681914239159; Wed, 19 Apr 2023 07:23:59 -0700 (PDT) MIME-Version: 1.0 References: <20230411165919.23955-1-jim2101024@gmail.com> <20230411165919.23955-3-jim2101024@gmail.com> <20230413143935.pmbyjk2boxl3rwne@mraw.org> <20230413200646.ddgsoqgmaae343nl@mraw.org> <85a1cca1-f59b-6a0c-dee3-9d9ed5d6b6d1@gmail.com> <20230414161907.zfd2ibshfx4rz56j@mraw.org> In-Reply-To: <20230414161907.zfd2ibshfx4rz56j@mraw.org> From: Jim Quinlan Date: Wed, 19 Apr 2023 10:23:47 -0400 Message-ID: Subject: Re: [PATCH v2 2/3] PCI: brcmstb: CLKREQ# accomodations of downstream device To: Cyril Brulebois Cc: Florian Fainelli , linux-pci@vger.kernel.org, Nicolas Saenz Julienne , Bjorn Helgaas , Lorenzo Pieralisi , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, james.quinlan@broadcom.com, Lorenzo Pieralisi , =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= , Rob Herring , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , open list X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230419_072403_103153_CFE5CD5D X-CRM114-Status: GOOD ( 38.61 ) 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 T24gRnJpLCBBcHIgMTQsIDIwMjMgYXQgMTI6MTnigK9QTSBDeXJpbCBCcnVsZWJvaXMgPGtpYmlA ZGViaWFuLm9yZz4gd3JvdGU6Cj4KPiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWls LmNvbT4gKDIwMjMtMDQtMTQpOgo+ID4gQ3lyaWwsIGJhc2VkIHVwb24gdGhlIHRhYmxlIGFuZCBs b2dzIHlvdSBwcm92aWRlZCB3aGVyZWJ5IHlvdSBoYXZlIHVzZWQgdGhlCj4gPiBmb2xsb3dpbmc6 Cj4gPgo+ID4gLSBSYXNwYmVycnkgUGkgQ29tcHV0ZSBNb2R1bGUgNCAoUmV2IDEuMCwgOEcgUkFN LCAzMkcgc3RvcmFnZSkKPiA+IC0gUmFzcGJlcnJ5IFBpIENvbXB1dGUgTW9kdWxlIDQgSU8gQm9h cmQKPiA+IC0gU3VwYUh1YiBQQ0llLXRvLW11bHRpcGxlLVVTQiBhZGFwdGVyLCByZWZlcmVuY2Ug UENFNlUxQy1SMDIsIFZFUiAwMDZTCj4gPgo+ID4gaW4gdGhlIGJlZm9yZS91bnBhdGNoZWQgY2Fz ZSB3ZSBoYXZlIGEgUENJZSBsaW5rIGRvd24gYW5kIGluIHRoZQo+ID4gYWZ0ZXIvcGF0Y2hlZCB3 ZSBoYXZlIGEgUENJZSBsaW5rIHVwIGJ1dCBhIGtlcm5lbCBwYW5pYy4gTmVpdGhlciBhcmUgZ3Jl YXQKPiA+IG5vciByZXN1bHRpbmcgaW4gYSBmdWxseSBmdW5jdGlvbmFsIFBDSWUgZGV2aWNlLgo+ Cj4gQmFzZWQgb24gSmltJ3MgZmVlZGJhY2ssIEknbSBhdHRhY2hpbmcgYSBuZXcgZG1lc2cgZm9y IHRoZSBhZm9yZW1lbnRpb25lZAo+IHNldHVwLCB3aXRoIGFuIHVucGF0Y2hlZCBrZXJuZWwgKGRt ZXNnLXVucGF0Y2hlZC1wY2llLWxpbmstdXAudHh0KS4KCkhlbGxvIEN5cmlsLAoKSSdtIHN0aWxs IHNlZWluZyB0aGluZ3MgaW4gdGhlIGxvZ3MgdGhhdCBkbyBub3QgbWFrZSBzZW5zZSB0byBtZS4K CkZpcnN0LCB0aGUgInVucGF0Y2hlZCIgdmVyc2lvbiBsb2dzIC0tIGluY2x1ZGluZyB0aGUgUmFz cGlhbiBjYXNlIC0tCmFsbCBoYXZlIHRoZSBmb2xsb3dpbmcgbGluZXM6CgogICAgWyAgICAwLjAw MDAwMF0gTW92YWJsZSB6b25lIHN0YXJ0IGZvciBlYWNoIG5vZGUKICAgIC8qIC4uLiAqLwogICAg WyAgICAwLjAwMDAwMF0gcGNwdS1hbGxvYzogczg4MjMyIHI4MTkyIGQzMDU1MiB1MTI2OTc2IGFs bG9jPTMxKjQwOTYKICAgIFsgICAgMC4wMDAwMDBdIHBjcHUtYWxsb2M6IFswXSAwIFswXSAxIFsw XSAyIFswXSAzCgpUaGUgYWJvdmUgbGluZXMgYXJlIGFsc28gaW4gbXkgbG9ncy4gIEJ1dCB0aGV5 IGFyZSBtaXNzaW5nIGZyb20geW91cgoiYWZ0ZXIgcGF0Y2giIGxvZ3MgLS0gd2hhdCBkaWQgeW91 ICBjaGFuZ2UgdG8gaGF2ZSB0aGVzZSBsaW5lcwpkaXNhcHBlYXIgb24gdGhlIHBhdGNoZWQgbG9n cz8KClNlY29uZCwgeW91IHNheSB0aGF0IHlvdSB1c2VkIGEgZGlmZmVyZW50ICJDTTQiIGZyb20g dGhlIG9uZSB1c2VkIGluCnRoZSBCdWd6aWxsYSAgcmVwb3J0IC0tIHdoYXQgZG8geW91IG1lYW4g YnkgdGhhdD8gICBBcmUgeW91IHJlZmVycmluZwp0byB0aGUgQ000IG1vZHVsZSBwcm9wZXIsIHdo b3NlIG9ubHkgY2hhbmdlIHdhcyBnb2luZyBmcm9tIDRHQiB0byA4R0IsCm9yIHRoZSBJTyBib2Fy ZCBiZWluZyB1c2VkPyAgTXkgIHRlc3RpbmcgaXMgZG9uZSB3aXRoIGEgc3RhbmRhcmQgUlBpCkNN NCBhbmQgc3RhbmRhcmQgUlBpIElPIGJvYXJkLiAgQmVmb3JlIHRoaXMgcGF0Y2ggc2VyaWVzLCB0 aGUgb25seSB3YXkKdGhpcyBzdGFuZGFyZCBjb25maWd1cmF0aW9uIGNhbiB3b3JrIGZvciBtb3N0 IGhvYmJ5aXN0IFBDSSBjYXJkcyAoaS5lLgpmbG9hdGluZyBDTEtSRVEjIHBpbikgaXMgYnkgdXNp bmcgUmFzcGlhbiBBTkQgYWRkaW5nCiJicmNtLGVuYWJsZS1sMXNzIiB0byB0aGUgRFQgbm9kZS4K CkknbSBndWVzc2luZyB0aGF0IHlvdSBhcmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gdGhhdCB5 b3UgZGVzY3JpYmVkCnRvIG1lIGluICBhIHBlcnNvbmFsIGVtYWlsOiAiW3RoZV0gY2hpcCBpcyBl bWJlZGRlZCBkaXJlY3RseSBvbiB0aGUKbW9kaWZpZWQgUENCLCBhcyBvcHBvc2VkIHRvIHBsdWdn ZWQgaW50byB0aGUgUENJZSBzbG90IG9uIHRoZSBvZmZpY2lhbApDTTQgSU8gQm9hcmQiLiAgSWYg dHJ1ZSwgeW91IGFyZSB0ZXN0aW5nIG9uIGEgY29uZmlndXJhdGlvbiB0aGF0IChhKQppcyB1bmlx dWUgdG8geW91IGFuZCB5b3VyIGdyb3VwIGFuZCAoYikgbXVzdCBiZSBkb2luZyBzb21ldGhpbmcg d2l0aAp0aGUgQ0xLUkVRIyBzaWduYWwgc28gdGhhdCB5b3VyICJiZWZvcmUiIGNhc2UgZG9lcyBu b3QgcGFuaWMuICBJcyB0aGlzCnRoZSBjYXNlPwoKRmluYWxseSwgYW5kIHRoaXMgaXMgYSBiaWcg b25lLCBpcyB0aGUgZmFjdCB0aGF0IGluIGJvdGggb2YgdGhlCiJiZWZvcmUiIGFuZCAiYWZ0ZXIi IGNhc2VzIHRoZSB2YWx1ZSB3cml0dGVuIHRvIHRoZSBpbnRlcm5hbCBCcmNtCkNMS1JFUSMgcmVn aXN0ZXIgaXMgdGhlIHNhbWUuClRoaXMgaXMgZXZpZGVudCBieSB0aGlzIGxpbmUgaW4gdGhlICJh ZnRlciIgcGF0Y2g6ICAiYnJjbS1wY2llCmZkNTAwMDAwLnBjaWU6IHVuaS1kaXIgQ0xLUkVRIyBm b3IgQVNQTSIuICBUaGlzIG1vZGUgaXMgdGhlIG9ubHkgbW9kZQpzdXBwb3J0ZWQgYnkgdGhlICJi ZWZvcmUiCmNhc2UuICBOb3cgdGhlcmUgYXJlICBzb21lIG90aGVyIHRoaW5ncyBnb2luZyBvbiBp biB0aGUgcGF0Y2ggc2VyaWVzCi0tIHJlYWRpbmcgdHdvIHJlZ2lzdGVycyBhbmQgZXh0ZW5kaW5n IHRoZSB0aW1lb3V0IHZhbHVlIG9mIGEKY29tcGxldGlvbiBhYm9ydCwgYnV0IEknbSBoYXZpbmcK YSBoYXJkIHRpbWUgaW1hZ2luaW5nIGhvdyB0aGV5IGNvdWxkIGNhdXNlIGEgcGFuaWMuCgpSZWdh cmRzLApKaW0KClBTICBDYW4geW91IHBsZWFzZSBpbmNsdWRlIGluIHlvdXIgbG9ncyB0aGUgb3V0 cHV0IG9mICAic3VkbyBsc3BjaQotdnZ2IiBmb3IgdGhvc2UgY2FzZXMgdGhhdCBib290IHRvIHBy b21wdD8KPgo+IEkgZmVhciB0aGF0IGluaXRpYWxseSBJIG1pZ2h0IGhhdmUgbm90IHdhaXRlZCBl bm91Z2ggYmVmb3JlIHBvd2VyIG9mZiBhbmQKPiBwb3dlciBvbiB3aGVuIHJlcGx1Z2dpbmcgdGhl IFN1cGFIdWIgYWRhcHRlciwgYW5kIEkndmUgb25seSBzZWVuIHRoZSBQQ0llCj4gbGluayBkb3du IGEgZmV3IHRpbWVzIChub3cgdGhhdCBJJ20gYWN0aXZlbHkgcGF5aW5nIGF0dGVudGlvbiB0byB0 aGF0Cj4gcGFydCkuIEknbSBpbmRlZWQgc2VlaW5nIFBDSWUgbGluayB1cCBjb25zaXN0ZW50bHkg KDEwMCUpIHdoZW4gdXNpbmcgdGhlCj4gZm9sbG93aW5nIG1ldGhvZDoKPgo+ICAgICBmb3IgaSBp biAkKHNlcSAxIDIwKTsgZG8KPiAgICAgICAjIHBvd2VyIG9uLCBsZXQgdGhlIHN5c3RlbSBib290 IHVwIGFuZCBzZXR0bGU6Cj4gICAgICAgc2lzcG1jdGwgLXQgNDsgc2xlZXAgMm0KPiAgICAgICBz c2ggY200IHNoIC1jICJkbWVzZyA+IGRtZXNnLSRpLnR4dDsgcG93ZXJvZmYiCj4gICAgICAgIyBs ZXQgdGhlIHN5c3RlbSBwb3dlciBkb3duLCBhbmQgcG93ZXIgb2ZmOgo+ICAgICAgIHNsZWVwIDMw OyBzaXNwbWN0bCAtdCA0Cj4gICAgICAgIyB3YWl0IGJlZm9yZSBwb3dlciBjeWNsaW5nOgo+ICAg ICAgIHNsZWVwIDEwCj4gICAgIGRvbmUKPgo+ID4gTG9va2luZyBhdDoKPiA+IGh0dHBzOi8vd3d3 LmFtYXpvbi5jby51ay9TdXBhSHViLUV4cHJlc3MtQmFuZFdpZHRoLUNhcGFibGUtRXhwYW5kaW5n L2RwL0IwOTJaUVdHNUIKPiA+Cj4gPiBpdCB3b3VsZCBhcHBlYXIgdGhhdCBpdCBjYW4gYWNjZXB0 IGFuIGV4dGVybmFsIHBvd2VyIHN1cHBseSwgZG8geW91IGhhdmUgb25lCj4gPiBjb25uZWN0ZWQg dG8gdGhhdCBVU0IgZXhwYW5zaW9uIGNhcmQgYnkgYW55IGNoYW5jZT8KPgo+IFdpdGggdGhlIHBh dGNoZWQga2VybmVsLCBJIGhhdmUgdHJpZWQgc2V2ZXJhbCB0aGluZ3MgKGxlYXZpbmcgdGhlIHJl Z3VsYXIKPiAxMlYgYWRhcHRlciBwbHVnZ2VkIGluIGFsbCB0aGUgdGltZSk6Cj4gIC0gTm8gZXh0 ZXJuYWwgcG93ZXIgc3VwcGx5ICh0aGF0J3Mgd2hhdCBJJ3ZlIGJlZW4gdXNpbmcgaW4gYWxsIHBy ZXZpb3VzCj4gICAgYXR0ZW1wdHMpLgo+ICAtIFVzaW5nIGEgNVYgUFNVIHdpdGggMiBwaW5zIChn cm91bmQgYW5kIDVWKSBwbHVnZ2VkIG9uIHRoZSBFeHQgUFNVCj4gICAgNC1waW4gaGVhZGVyIG9u IHRoZSBJTyBCb2FyZC4KPiAgLSBVc2luZyBhIDVWIFBTVSB3aXRoIGEgU0FUQSBjb25uZWN0b3Ig cGx1Z2dlZCBkaXJlY3RseSBvbnRvIHRoZSBTdXBhSHViCj4gICAgYWRhcHRlci4KPgo+IEknbSBn ZXR0aW5nIHRoZSBzYW1lIHRyYWNlIGluIGFsbCBjYXNlcy4KPgo+ID4gQXJlIHlvdSBhYmxlIHRv IGJvb3QgdGhlIGtlcm5lbCBiZWZvcmUvYWZ0ZXIgaWYgeW91IGRpc2Nvbm5lY3QgYW55IFVTQgo+ ID4gcGVyaXBoZXJhbD8KPgo+IFRoZSB0cmFjZSBpcyBvYnRhaW5lZCB3aXRob3V0IGFueSBVU0Ig cGVyaXBoZXJhbCAob24gdGhlIGV4dGVuc2lvbiBjYXJkIG9yCj4gb24gdGhlIG9uYm9hcmQgVVNC IHNsb3RzKS4gQmVzaWRlcyB0aGUgU3VwYUh1YiBhZGFwdGVyIG9uIHRoZSBQQ0llIHNsb3QsIEkK PiBvbmx5IGhhdmUgRXRoZXJuZXQgYW5kIEhETUkgcGx1Z2dlZCBpbiAoSSdtIGdldHRpbmcgdHJh Y2VzIHZpYSBzZXJpYWwKPiBjb25zb2xlLCBhbmQgb3BlcmF0aW5nIHRoZSBzeXN0ZW0gb3ZlciBT U0ggd2hlbiBpdCBib290cyBmaW5lKS4KPgo+IEFzIHNvb24gYXMgSSB1bnBsdWcgdGhlIFN1cGFI dWIgYm9hcmQgaXRzZWxmLCB0aGUgc3lzdGVtIGJvb3RzIGZpbmUuCj4KPiA+IERvZXMgdGhhdCBT dXBhSHViIGJvYXJkIHBsdWdnZWQgdG8gdGhlIENNNCAxLjAgc3lzdGVtIHdvcmsgZmluZSBpbiB0 aGUKPiA+IFJhc3BiZXJyeSBQaSBrZXJuZWwgdHJlZT8KPgo+IFdpdGggdGhlIFJhc3BiZXJyeSBQ aSBPUyAoNjQtYml0KSA+IFJhc3BiZXJyeSBQaSBPUyBMaXRlIGltYWdlCj4gKDIwMjMtMDItMjEt cmFzcGlvcy1idWxsc2V5ZS1hcm02NC1saXRlLmltZy54eiksIHRoZSBzeXN0ZW0gYXQgbGVhc3QK PiBib290cyBmaW5lOyBJIGhhdmVuJ3QgdHJpZWQgYWRkaW5nIGRldmljZXMgdG8gdGhlIG1peCBq dXN0IHlldCwgdHJ5aW5nCj4gdG8gc3RpY2sgd2l0aCB0aGF0IHBhcnRpY3VsYXIgc2V0dXAuCj4K PiBBIGZ1bGwgZG1lc2cgaXMgYXR0YWNoZWQgKGRtZXNnLXJhc3Bpb3MudHh0KS4KPgo+Cj4gQ2hl ZXJzLAo+IC0tCj4gQ3lyaWwgQnJ1bGVib2lzIChraWJpQGRlYmlhbi5vcmcpICAgICAgICAgICAg PGh0dHBzOi8vZGViYW1heC5jb20vPgo+IEQtSSByZWxlYXNlIG1hbmFnZXIgLS0gUmVsZWFzZSB0 ZWFtIG1lbWJlciAtLSBGcmVlbGFuY2UgQ29uc3VsdGFudAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=