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=-8.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,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 B73F5C4363A for ; Fri, 30 Oct 2020 13:02:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 463632075E for ; Fri, 30 Oct 2020 13:02:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="RoVoT3nH" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726355AbgJ3NCc (ORCPT ); Fri, 30 Oct 2020 09:02:32 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:54143 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726078AbgJ3NCc (ORCPT ); Fri, 30 Oct 2020 09:02:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604062949; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=a35osqcmt16DlkbdzUp+yTNCp5vAOujazLMaPfmO2RU=; b=RoVoT3nHMwObt9mEqw9xXm2KluY7gbcrgGsEBRcZH3VUejIcg8beEcCdkZr+dsoKe8eu4d pPmMNticW+YvYLG1pzABlWHCZOl51tdZFejD0sQOwDOZ3CPpkV94f3I4bcaPR2egDDF58E OR9F1/lPquKNDqT/iTPawrm6i8raS54= Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-160-22Bvnod8PQmGbZE0y2ZnfA-1; Fri, 30 Oct 2020 09:02:27 -0400 X-MC-Unique: 22Bvnod8PQmGbZE0y2ZnfA-1 Received: by mail-qv1-f71.google.com with SMTP id s8so3651476qvv.18 for ; Fri, 30 Oct 2020 06:02:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version:content-transfer-encoding; bh=a35osqcmt16DlkbdzUp+yTNCp5vAOujazLMaPfmO2RU=; b=Hxol92vBwzpYrVqlG6kWk3ad1t+5wad3gUQvYSby9fnjaVHYlIMjbMY0bzTfgoBbFP Get7XS10xncpY+FdTuZcmq5dzMnyOLfdKlGiHWPQgjxw07NALAac8Qz96z1jaA7y0Kcm iYjLcl+VAYfID00vyDxxI7YnLUVHpjP03os0HW6t9RYd/sR9kf5X2NcOfS2ADyAnIp6O aIxg/cpU5cPW68przSaNeSusLSFR7dNvSyG7e+HRG5jce6yDVtmsmDOk0O9nNj/bD8LP tcT+NR0HJ+mtzPdytUrdoYXwDNYNsYouo1sHyF6gxLmLyvLlrBBcKJgzr1NsMFLomRbZ BDew== X-Gm-Message-State: AOAM533rFlBhTHqE6AIlvL4M47KKacBL/uGOcyFxaQJBNuQqdYjn9htt QE6Pj+ErPCD6fjOqGrmccpt2I13rDuSm0AlTkgaDvx9JYg3nKVldLm0sbThMJaxD/SW77IXNPkU i1JyvJPS8kjpTlN1nvOw3 X-Received: by 2002:ac8:67d9:: with SMTP id r25mr1922772qtp.21.1604062946562; Fri, 30 Oct 2020 06:02:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwjFuj8EeWUTb2eFPQYPiLRR/1y98F5g3eC4tiN6OWB1ze2rkMBzyygDyBBc8LFR3x/W7yc6A== X-Received: by 2002:ac8:67d9:: with SMTP id r25mr1922729qtp.21.1604062946147; Fri, 30 Oct 2020 06:02:26 -0700 (PDT) Received: from alrua-x1.borgediget.toke.dk ([45.145.92.2]) by smtp.gmail.com with ESMTPSA id h4sm2500985qkl.82.2020.10.30.06.02.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 06:02:24 -0700 (PDT) Received: by alrua-x1.borgediget.toke.dk (Postfix, from userid 1000) id C5658181AD1; Fri, 30 Oct 2020 14:02:22 +0100 (CET) From: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= To: Pali =?utf-8?Q?Roh=C3=A1r?= , Bjorn Helgaas Cc: vtolkm@gmail.com, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Rob Herring , Ilias Apalodimas , Marek =?utf-8?Q?Beh=C3=BAn?= , Thomas Petazzoni , Jason Cooper Subject: Re: PCI trouble on mvebu (Turris Omnia) In-Reply-To: <20201030112331.meqg6lvultyn6v54@pali> References: <2fb69e2a-4423-2b04-cd0f-ca819092bc5f@gmail.com> <20201028231626.GA344207@bjorn-Precision-5520> <20201030112331.meqg6lvultyn6v54@pali> X-Clacks-Overhead: GNU Terry Pratchett Date: Fri, 30 Oct 2020 14:02:22 +0100 Message-ID: <87k0v7n9y9.fsf@toke.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Pali Roh=C3=A1r writes: > On Wednesday 28 October 2020 18:16:26 Bjorn Helgaas wrote: >> [+cc Pali, Marek, Thomas, Jason] >>=20 >> On Wed, Oct 28, 2020 at 04:40:00PM +0000, =E2=84=A2=D6=9F=E2=98=BB=D2=87= =CC=AD =D1=BC =D2=89 =C2=AE wrote: >> > On 28/10/2020 16:08, Toke H=C3=B8iland-J=C3=B8rgensen wrote: >> > > Bjorn Helgaas writes: >> > > > On Wed, Oct 28, 2020 at 02:36:13PM +0100, Toke H=C3=B8iland-J=C3= =B8rgensen wrote: >> > > > > Toke H=C3=B8iland-J=C3=B8rgensen writes: >> > > > > > Bjorn Helgaas writes: >> > > > > >=20 >> > > > > > > [+cc vtolkm] >> > > > > > >=20 >> > > > > > > On Tue, Oct 27, 2020 at 04:43:20PM +0100, Toke H=C3=B8iland-= J=C3=B8rgensen wrote: >> > > > > > > > Hi everyone >> > > > > > > >=20 >> > > > > > > > I'm trying to get a mainline kernel to run on my Turris Om= nia, and am >> > > > > > > > having some trouble getting the PCI bus to work correctly.= Specifically, >> > > > > > > > I'm running a 5.10-rc1 kernel (torvalds/master as of this = moment), with >> > > > > > > > the resource request fix[0] applied on top. >> > > > > > > >=20 >> > > > > > > > The kernel boots fine, and the patch in [0] makes the PCI = devices show >> > > > > > > > up. But I'm still getting initialisation errors like these: >> > > > > > > >=20 >> > > > > > > > [ 1.632709] pci 0000:01:00.0: BAR 0: error updating (0x= e0000004 !=3D 0xffffffff) >> > > > > > > > [ 1.632714] pci 0000:01:00.0: BAR 0: error updating (hi= gh 0x000000 !=3D 0xffffffff) >> > > > > > > > [ 1.632745] pci 0000:02:00.0: BAR 0: error updating (0x= e0200004 !=3D 0xffffffff) >> > > > > > > > [ 1.632750] pci 0000:02:00.0: BAR 0: error updating (hi= gh 0x000000 !=3D 0xffffffff) >> > > > > > > >=20 >> > > > > > > > and the WiFi drivers fail to initialise with what appears = to me to be >> > > > > > > > errors related to the bus rather than to the drivers thems= elves: >> > > > > > > >=20 >> > > > > > > > [ 3.509878] ath: phy0: Mac Chip Rev 0xfffc0.f is not su= pported by this driver >> > > > > > > > [ 3.517049] ath: phy0: Unable to initialize hardware; i= nitialization status: -95 >> > > > > > > > [ 3.524473] ath9k 0000:01:00.0: Failed to initialize de= vice >> > > > > > > > [ 3.530081] ath9k: probe of 0000:01:00.0 failed with er= ror -95 >> > > > > > > > [ 3.536012] ath10k_pci 0000:02:00.0: of_irq_parse_pci: = failed with rc=3D134 >> > > > > > > > [ 3.543049] pci 0000:00:02.0: enabling device (0140 -> = 0142) >> > > > > > > > [ 3.548735] ath10k_pci 0000:02:00.0: can't change power= state from D3hot to D0 (config space inaccessible) >> > > > > > > > [ 3.588592] ath10k_pci 0000:02:00.0: failed to wake up = device : -110 >> > > > > > > > [ 3.595098] ath10k_pci: probe of 0000:02:00.0 failed wi= th error -110 >> > > > > > > >=20 >> > > > > > > > lspci looks OK, though: >> > > > > > > >=20 >> > > > > > > > # lspci >> > > > > > > > 00:01.0 PCI bridge: Marvell Technology Group Ltd. Device 6= 820 (rev 04) >> > > > > > > > 00:02.0 PCI bridge: Marvell Technology Group Ltd. Device 6= 820 (rev 04) >> > > > > > > > 00:03.0 PCI bridge: Marvell Technology Group Ltd. Device 6= 820 (rev 04) >> > > > > > > > 01:00.0 Network controller: Qualcomm Atheros AR9287 Wirele= ss Network Adapter (PCI-Express) (rev 01) >> > > > > > > > 02:00.0 Network controller: Qualcomm Atheros QCA986x/988x = 802.11ac Wireless Network Adapter (rev ff) >> > > > > > > >=20 >> > > > > > > > Does anyone have any clue what could be going on here? Is = this a bug, or >> > > > > > > > did I miss something in my config or other initialisation?= I've tried >> > > > > > > > with both the stock u-boot distributed with the board, and= with an >> > > > > > > > upstream u-boot from latest master; doesn't seem to make a= ny different. >> > > > > > > Can you try turning off CONFIG_PCIEASPM? We had a similar r= ecent >> > > > > > > report at https://bugzilla.kernel.org/show_bug.cgi?id=3D2098= 33 but I >> > > > > > > don't think we have a fix yet. >> > > > > > Yes! Turning that off does indeed help! Thanks a bunch :) >> > > > > >=20 >> > > > > > You mention that bisecting this would be helpful - I can try t= hat >> > > > > > tomorrow; any idea when this was last working? >> > > > > OK, so I tried to bisect this, but, erm, I couldn't find a worki= ng >> > > > > revision to start from? I went all the way back to 4.10 (which i= s the >> > > > > first version to include the device tree file for the Omnia), an= d even >> > > > > on that, the wireless cards were failing to initialise with ASPM >> > > > > enabled... >> > > > I have no personal experience with this device; all I know is that= the >> > > > bugzilla suggests that it worked in v5.4, which isn't much help. >> > > >=20 >> > > > Possibly the apparent regression was really a .config change, i.e., >> > > > CONFIG_PCIEASPM was disabled in the v5.4 kernel vtolkm@ tested and= it >> > > > "worked" but got enabled later and it started failing? >> > > Yeah, I suspect so. The OpenWrt config disables CONFIG_PCIEASPM by >> > > default and only turns it on for specific targets. So I guess that i= t's >> > > most likely that this has never worked... >> > >=20 >> > > > Maybe the debug patch below would be worth trying to see if it mak= es >> > > > any difference? If it *does* help, try omitting the first hunk to= see >> > > > if we just need to apply the quirk_enable_clear_retrain_link() qui= rk. >> > > Tried, doesn't help... >> > >=20 >> > > -Toke >> >=20 >> > Found this patch >> >=20 >> > https://github.com/openwrt/openwrt/blob/7c0496f29bed87326f1bf591ca25ac= e82373cfc7/target/linux/mvebu/patches-5.4/405-PCI-aardvark-Improve-link-tra= ining.patch >> >=20 >> > that mentions the Compex WLE900VX card, which reading the lspci verbose >> > output from the bugtracker seems to the device being troubled. >>=20 >> Interesting. Indeed, the Compex WLE900VX card seems to have the >> Qualcomm Atheros QCA9880 on it, and it looks like Toke's system has >> the same device in it. >>=20 >> The patch you mention (https://git.kernel.org/linus/43fc679ced18) is >> for aardvark, so of course doesn't help mvebu. >>=20 >> PCIe hardware is supposed to automatically negotiate the highest link >> speed supported by both ends. But software *is* allowed to set an >> upper limit (the Target Link Speed in Link Control 2). If we initiate >> a retrain and the link doesn't come back up, I wonder if we should try >> to help the hardware out by using Target Link Speed to limit to a >> lower speed and attempting another retrain, something like this hacky >> patch: (please collect the dmesg log if you try this) > > My experience with that WLE900VX card, aardvark driver and aspm code: > > Link training in GEN2 mode for this card succeed only once after reset. > Repeated link retraining fails and it fails even when aardvark is > reconfigured to GEN1 mode. Reset via PERST# signal is required to have > working link training. > > What I did in aardvark driver: Set mode to GEN2, do link training. If > success read "negotiated link speed" from "Link Control Status Register" > (for WLE900VX it is 0x1 - GEN1) and set it into aardvark. And then > retrain link again (for WLE900VX now it would be at GEN1). After that > card is stable and all future retraining (e.g. from aspm.c) also passes. > > If I do not change aardvark mode from GEN2 to GEN1 the second link > training fails. And if I change mode to GEN1 after this failed link > training then nothing happen, link training do not success. > > So just speculation now... In current setup initialization of card does > one link training at GEN2. Then aspm.c is called which is doing second > link retraining at GEN2. And if it fails then below patch issue third > link retraining at GEN1. If A38x/pci-mvebu has same problem as aardvark > then second link retraining must be at GEN1 (not GEN2) to workaround > this issue. > > Bjorn, Toke: what about trying to hack aspm.c code to never do link > retraining at GEN2 speed? And always force GEN1 speed prior link > training? Sounds like a plan. I poked around in aspm.c and must confess to being a bit lost in the soup of registers ;) So if one of you can cook up a patch, that would be most helpful! -Toke 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=-8.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 4C6FCC4363A for ; Fri, 30 Oct 2020 13:03:04 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 A53EF206FA for ; Fri, 30 Oct 2020 13:03:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="tmJHJHAA"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="cW8QqAJc" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A53EF206FA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References:In-Reply-To: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=bXfoF0p3vXhh5IRbqo3gXBg5UWRctg3/79hi0QbGCRM=; b=tmJHJHAAqwKC/NntUp+IMTbcu So6z+kMxVAKtSgtCf29r1uqyoxiUkvBKsSnviybVtkx2Uc1c+b3bXw38kZAZzR7CzxuR/hkYK1xBh LFH3nSGmpwnwCK5svB8S9MG2rdUUvAKL4XuNacuP4a2WdzSigN1cfSCX+boOHaJzvlyfzggJhFjsP AZCNv2lkHzeAtyUuR4ijPTg+uBEKaixdZ9JiAqtc6uDedCnezS7EV0ypElaT3Tr2dWeosxv+nkBXq iIoi2oV7pegRJww8sJFrfOvBFmVfrFXxfC8zTthCZdZjjZHepQtxZX7Dd31cMRZOfpMmMBQ4/k2QL FA+Ww5jQA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYU38-0006RC-LI; Fri, 30 Oct 2020 13:02:34 +0000 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYU36-0006Qd-8e for linux-arm-kernel@lists.infradead.org; Fri, 30 Oct 2020 13:02:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604062951; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RcYBUwhPF7q92iNUc0I3n31S6PEZJT12MfHElNeD+ds=; b=cW8QqAJcmQX7RK8BtD8KQhvB1ezfGqu9OXQ2N19GLBKHLtDlIi6aPiHqRSCpUuo5jgh1yH Oj65O6+LVffMLLQjDLoJqinLQFSWD6qwgb+3n8NURzjuqRkkOKRopWPvIaUkCs3aSPaGOF OgnZAfcu5kDBVEjxzRve+QjDGrI3au0= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-52-VOPBwiATNVyNJiopkVRttw-1; Fri, 30 Oct 2020 09:02:27 -0400 X-MC-Unique: VOPBwiATNVyNJiopkVRttw-1 Received: by mail-qt1-f197.google.com with SMTP id i15so3901522qti.7 for ; Fri, 30 Oct 2020 06:02:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version:content-transfer-encoding; bh=a35osqcmt16DlkbdzUp+yTNCp5vAOujazLMaPfmO2RU=; b=crWV6jMJdpsAnJnA6O+1tV6OTx8GhzOU/c+BYQQEln+7He77fJMuZTDf06sweSsARM jGkbWhSNNbD1Xs8k73B12qKV3/HKqX3AIH5ZFs7MRc0Vdfj8deVGXzI+nZjh7exIOA4p ZlLcnviZunTRk5QIdZqquEDr1sLU3gTP0voRiQKP97983CQEbZWoe/Y956c5x51fhO6f R+uL/82UlHsrqZCep2pyDmk/UrrXMQ+QyeYR752P00HISG+Qh8nlto/+y9Ndk2SbtpLd 8vi+7tJyrRFWGtxAV/bB5jAX/JrnkOMdG2Qmdpw0VAlnbOia1UHKcIaWhUMxTImGLVSL CpAg== X-Gm-Message-State: AOAM533sdoy2keRjKBrWN+pN1K/2FabzDGfEh7ClviYpH/m00DOckJdJ SBcLcBEHzlF74z7JK2IFUWX0XvD9xNM3geYN/ObzMmzvcOYtiYFJoy1aqewVGhFVOpVr1FOExMy +NA93M3cimqbi68YZ/cWxOOUcCkxNS0p19gc= X-Received: by 2002:ac8:67d9:: with SMTP id r25mr1922768qtp.21.1604062946534; Fri, 30 Oct 2020 06:02:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwjFuj8EeWUTb2eFPQYPiLRR/1y98F5g3eC4tiN6OWB1ze2rkMBzyygDyBBc8LFR3x/W7yc6A== X-Received: by 2002:ac8:67d9:: with SMTP id r25mr1922729qtp.21.1604062946147; Fri, 30 Oct 2020 06:02:26 -0700 (PDT) Received: from alrua-x1.borgediget.toke.dk ([45.145.92.2]) by smtp.gmail.com with ESMTPSA id h4sm2500985qkl.82.2020.10.30.06.02.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 06:02:24 -0700 (PDT) Received: by alrua-x1.borgediget.toke.dk (Postfix, from userid 1000) id C5658181AD1; Fri, 30 Oct 2020 14:02:22 +0100 (CET) From: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= To: Pali =?utf-8?Q?Roh=C3=A1r?= , Bjorn Helgaas Subject: Re: PCI trouble on mvebu (Turris Omnia) In-Reply-To: <20201030112331.meqg6lvultyn6v54@pali> References: <2fb69e2a-4423-2b04-cd0f-ca819092bc5f@gmail.com> <20201028231626.GA344207@bjorn-Precision-5520> <20201030112331.meqg6lvultyn6v54@pali> X-Clacks-Overhead: GNU Terry Pratchett Date: Fri, 30 Oct 2020 14:02:22 +0100 Message-ID: <87k0v7n9y9.fsf@toke.dk> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=toke@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201030_090232_344188_8F12CC5B X-CRM114-Status: GOOD ( 50.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Herring , Jason Cooper , linux-pci@vger.kernel.org, Ilias Apalodimas , Marek =?utf-8?Q?Beh=C3=BAn?= , Thomas Petazzoni , vtolkm@gmail.com, linux-arm-kernel@lists.infradead.org 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 UGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4gd3JpdGVzOgoKPiBPbiBXZWRuZXNkYXkgMjgg T2N0b2JlciAyMDIwIDE4OjE2OjI2IEJqb3JuIEhlbGdhYXMgd3JvdGU6Cj4+IFsrY2MgUGFsaSwg TWFyZWssIFRob21hcywgSmFzb25dCj4+IAo+PiBPbiBXZWQsIE9jdCAyOCwgMjAyMCBhdCAwNDo0 MDowMFBNICswMDAwLCDihKLWn+KYu9KHzK0g0bwg0okgwq4gd3JvdGU6Cj4+ID4gT24gMjgvMTAv MjAyMCAxNjowOCwgVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIHdyb3RlOgo+PiA+ID4gQmpvcm4g SGVsZ2FhcyA8aGVsZ2Fhc0BrZXJuZWwub3JnPiB3cml0ZXM6Cj4+ID4gPiA+IE9uIFdlZCwgT2N0 IDI4LCAyMDIwIGF0IDAyOjM2OjEzUE0gKzAxMDAsIFRva2UgSMO4aWxhbmQtSsO4cmdlbnNlbiB3 cm90ZToKPj4gPiA+ID4gPiBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNv bT4gd3JpdGVzOgo+PiA+ID4gPiA+ID4gQmpvcm4gSGVsZ2FhcyA8aGVsZ2Fhc0BrZXJuZWwub3Jn PiB3cml0ZXM6Cj4+ID4gPiA+ID4gPiAKPj4gPiA+ID4gPiA+ID4gWytjYyB2dG9sa21dCj4+ID4g PiA+ID4gPiA+IAo+PiA+ID4gPiA+ID4gPiBPbiBUdWUsIE9jdCAyNywgMjAyMCBhdCAwNDo0Mzoy MFBNICswMTAwLCBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gd3JvdGU6Cj4+ID4gPiA+ID4gPiA+ ID4gSGkgZXZlcnlvbmUKPj4gPiA+ID4gPiA+ID4gPiAKPj4gPiA+ID4gPiA+ID4gPiBJJ20gdHJ5 aW5nIHRvIGdldCBhIG1haW5saW5lIGtlcm5lbCB0byBydW4gb24gbXkgVHVycmlzIE9tbmlhLCBh bmQgYW0KPj4gPiA+ID4gPiA+ID4gPiBoYXZpbmcgc29tZSB0cm91YmxlIGdldHRpbmcgdGhlIFBD SSBidXMgdG8gd29yayBjb3JyZWN0bHkuIFNwZWNpZmljYWxseSwKPj4gPiA+ID4gPiA+ID4gPiBJ J20gcnVubmluZyBhIDUuMTAtcmMxIGtlcm5lbCAodG9ydmFsZHMvbWFzdGVyIGFzIG9mIHRoaXMg bW9tZW50KSwgd2l0aAo+PiA+ID4gPiA+ID4gPiA+IHRoZSByZXNvdXJjZSByZXF1ZXN0IGZpeFsw XSBhcHBsaWVkIG9uIHRvcC4KPj4gPiA+ID4gPiA+ID4gPiAKPj4gPiA+ID4gPiA+ID4gPiBUaGUg a2VybmVsIGJvb3RzIGZpbmUsIGFuZCB0aGUgcGF0Y2ggaW4gWzBdIG1ha2VzIHRoZSBQQ0kgZGV2 aWNlcyBzaG93Cj4+ID4gPiA+ID4gPiA+ID4gdXAuIEJ1dCBJJ20gc3RpbGwgZ2V0dGluZyBpbml0 aWFsaXNhdGlvbiBlcnJvcnMgbGlrZSB0aGVzZToKPj4gPiA+ID4gPiA+ID4gPiAKPj4gPiA+ID4g PiA+ID4gPiBbICAgIDEuNjMyNzA5XSBwY2kgMDAwMDowMTowMC4wOiBCQVIgMDogZXJyb3IgdXBk YXRpbmcgKDB4ZTAwMDAwMDQgIT0gMHhmZmZmZmZmZikKPj4gPiA+ID4gPiA+ID4gPiBbICAgIDEu NjMyNzE0XSBwY2kgMDAwMDowMTowMC4wOiBCQVIgMDogZXJyb3IgdXBkYXRpbmcgKGhpZ2ggMHgw MDAwMDAgIT0gMHhmZmZmZmZmZikKPj4gPiA+ID4gPiA+ID4gPiBbICAgIDEuNjMyNzQ1XSBwY2kg MDAwMDowMjowMC4wOiBCQVIgMDogZXJyb3IgdXBkYXRpbmcgKDB4ZTAyMDAwMDQgIT0gMHhmZmZm ZmZmZikKPj4gPiA+ID4gPiA+ID4gPiBbICAgIDEuNjMyNzUwXSBwY2kgMDAwMDowMjowMC4wOiBC QVIgMDogZXJyb3IgdXBkYXRpbmcgKGhpZ2ggMHgwMDAwMDAgIT0gMHhmZmZmZmZmZikKPj4gPiA+ ID4gPiA+ID4gPiAKPj4gPiA+ID4gPiA+ID4gPiBhbmQgdGhlIFdpRmkgZHJpdmVycyBmYWlsIHRv IGluaXRpYWxpc2Ugd2l0aCB3aGF0IGFwcGVhcnMgdG8gbWUgdG8gYmUKPj4gPiA+ID4gPiA+ID4g PiBlcnJvcnMgcmVsYXRlZCB0byB0aGUgYnVzIHJhdGhlciB0aGFuIHRvIHRoZSBkcml2ZXJzIHRo ZW1zZWx2ZXM6Cj4+ID4gPiA+ID4gPiA+ID4gCj4+ID4gPiA+ID4gPiA+ID4gWyAgICAzLjUwOTg3 OF0gYXRoOiBwaHkwOiBNYWMgQ2hpcCBSZXYgMHhmZmZjMC5mIGlzIG5vdCBzdXBwb3J0ZWQgYnkg dGhpcyBkcml2ZXIKPj4gPiA+ID4gPiA+ID4gPiBbICAgIDMuNTE3MDQ5XSBhdGg6IHBoeTA6IFVu YWJsZSB0byBpbml0aWFsaXplIGhhcmR3YXJlOyBpbml0aWFsaXphdGlvbiBzdGF0dXM6IC05NQo+ PiA+ID4gPiA+ID4gPiA+IFsgICAgMy41MjQ0NzNdIGF0aDlrIDAwMDA6MDE6MDAuMDogRmFpbGVk IHRvIGluaXRpYWxpemUgZGV2aWNlCj4+ID4gPiA+ID4gPiA+ID4gWyAgICAzLjUzMDA4MV0gYXRo OWs6IHByb2JlIG9mIDAwMDA6MDE6MDAuMCBmYWlsZWQgd2l0aCBlcnJvciAtOTUKPj4gPiA+ID4g PiA+ID4gPiBbICAgIDMuNTM2MDEyXSBhdGgxMGtfcGNpIDAwMDA6MDI6MDAuMDogb2ZfaXJxX3Bh cnNlX3BjaTogZmFpbGVkIHdpdGggcmM9MTM0Cj4+ID4gPiA+ID4gPiA+ID4gWyAgICAzLjU0MzA0 OV0gcGNpIDAwMDA6MDA6MDIuMDogZW5hYmxpbmcgZGV2aWNlICgwMTQwIC0+IDAxNDIpCj4+ID4g PiA+ID4gPiA+ID4gWyAgICAzLjU0ODczNV0gYXRoMTBrX3BjaSAwMDAwOjAyOjAwLjA6IGNhbid0 IGNoYW5nZSBwb3dlciBzdGF0ZSBmcm9tIEQzaG90IHRvIEQwIChjb25maWcgc3BhY2UgaW5hY2Nl c3NpYmxlKQo+PiA+ID4gPiA+ID4gPiA+IFsgICAgMy41ODg1OTJdIGF0aDEwa19wY2kgMDAwMDow MjowMC4wOiBmYWlsZWQgdG8gd2FrZSB1cCBkZXZpY2UgOiAtMTEwCj4+ID4gPiA+ID4gPiA+ID4g WyAgICAzLjU5NTA5OF0gYXRoMTBrX3BjaTogcHJvYmUgb2YgMDAwMDowMjowMC4wIGZhaWxlZCB3 aXRoIGVycm9yIC0xMTAKPj4gPiA+ID4gPiA+ID4gPiAKPj4gPiA+ID4gPiA+ID4gPiBsc3BjaSBs b29rcyBPSywgdGhvdWdoOgo+PiA+ID4gPiA+ID4gPiA+IAo+PiA+ID4gPiA+ID4gPiA+ICMgbHNw Y2kKPj4gPiA+ID4gPiA+ID4gPiAwMDowMS4wIFBDSSBicmlkZ2U6IE1hcnZlbGwgVGVjaG5vbG9n eSBHcm91cCBMdGQuIERldmljZSA2ODIwIChyZXYgMDQpCj4+ID4gPiA+ID4gPiA+ID4gMDA6MDIu MCBQQ0kgYnJpZGdlOiBNYXJ2ZWxsIFRlY2hub2xvZ3kgR3JvdXAgTHRkLiBEZXZpY2UgNjgyMCAo cmV2IDA0KQo+PiA+ID4gPiA+ID4gPiA+IDAwOjAzLjAgUENJIGJyaWRnZTogTWFydmVsbCBUZWNo bm9sb2d5IEdyb3VwIEx0ZC4gRGV2aWNlIDY4MjAgKHJldiAwNCkKPj4gPiA+ID4gPiA+ID4gPiAw MTowMC4wIE5ldHdvcmsgY29udHJvbGxlcjogUXVhbGNvbW0gQXRoZXJvcyBBUjkyODcgV2lyZWxl c3MgTmV0d29yayBBZGFwdGVyIChQQ0ktRXhwcmVzcykgKHJldiAwMSkKPj4gPiA+ID4gPiA+ID4g PiAwMjowMC4wIE5ldHdvcmsgY29udHJvbGxlcjogUXVhbGNvbW0gQXRoZXJvcyBRQ0E5ODZ4Lzk4 OHggODAyLjExYWMgV2lyZWxlc3MgTmV0d29yayBBZGFwdGVyIChyZXYgZmYpCj4+ID4gPiA+ID4g PiA+ID4gCj4+ID4gPiA+ID4gPiA+ID4gRG9lcyBhbnlvbmUgaGF2ZSBhbnkgY2x1ZSB3aGF0IGNv dWxkIGJlIGdvaW5nIG9uIGhlcmU/IElzIHRoaXMgYSBidWcsIG9yCj4+ID4gPiA+ID4gPiA+ID4g ZGlkIEkgbWlzcyBzb21ldGhpbmcgaW4gbXkgY29uZmlnIG9yIG90aGVyIGluaXRpYWxpc2F0aW9u PyBJJ3ZlIHRyaWVkCj4+ID4gPiA+ID4gPiA+ID4gd2l0aCBib3RoIHRoZSBzdG9jayB1LWJvb3Qg ZGlzdHJpYnV0ZWQgd2l0aCB0aGUgYm9hcmQsIGFuZCB3aXRoIGFuCj4+ID4gPiA+ID4gPiA+ID4g dXBzdHJlYW0gdS1ib290IGZyb20gbGF0ZXN0IG1hc3RlcjsgZG9lc24ndCBzZWVtIHRvIG1ha2Ug YW55IGRpZmZlcmVudC4KPj4gPiA+ID4gPiA+ID4gQ2FuIHlvdSB0cnkgdHVybmluZyBvZmYgQ09O RklHX1BDSUVBU1BNPyAgV2UgaGFkIGEgc2ltaWxhciByZWNlbnQKPj4gPiA+ID4gPiA+ID4gcmVw b3J0IGF0IGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5ODMz IGJ1dCBJCj4+ID4gPiA+ID4gPiA+IGRvbid0IHRoaW5rIHdlIGhhdmUgYSBmaXggeWV0Lgo+PiA+ ID4gPiA+ID4gWWVzISBUdXJuaW5nIHRoYXQgb2ZmIGRvZXMgaW5kZWVkIGhlbHAhIFRoYW5rcyBh IGJ1bmNoIDopCj4+ID4gPiA+ID4gPiAKPj4gPiA+ID4gPiA+IFlvdSBtZW50aW9uIHRoYXQgYmlz ZWN0aW5nIHRoaXMgd291bGQgYmUgaGVscGZ1bCAtIEkgY2FuIHRyeSB0aGF0Cj4+ID4gPiA+ID4g PiB0b21vcnJvdzsgYW55IGlkZWEgd2hlbiB0aGlzIHdhcyBsYXN0IHdvcmtpbmc/Cj4+ID4gPiA+ ID4gT0ssIHNvIEkgdHJpZWQgdG8gYmlzZWN0IHRoaXMsIGJ1dCwgZXJtLCBJIGNvdWxkbid0IGZp bmQgYSB3b3JraW5nCj4+ID4gPiA+ID4gcmV2aXNpb24gdG8gc3RhcnQgZnJvbT8gSSB3ZW50IGFs bCB0aGUgd2F5IGJhY2sgdG8gNC4xMCAod2hpY2ggaXMgdGhlCj4+ID4gPiA+ID4gZmlyc3QgdmVy c2lvbiB0byBpbmNsdWRlIHRoZSBkZXZpY2UgdHJlZSBmaWxlIGZvciB0aGUgT21uaWEpLCBhbmQg ZXZlbgo+PiA+ID4gPiA+IG9uIHRoYXQsIHRoZSB3aXJlbGVzcyBjYXJkcyB3ZXJlIGZhaWxpbmcg dG8gaW5pdGlhbGlzZSB3aXRoIEFTUE0KPj4gPiA+ID4gPiBlbmFibGVkLi4uCj4+ID4gPiA+IEkg aGF2ZSBubyBwZXJzb25hbCBleHBlcmllbmNlIHdpdGggdGhpcyBkZXZpY2U7IGFsbCBJIGtub3cg aXMgdGhhdCB0aGUKPj4gPiA+ID4gYnVnemlsbGEgc3VnZ2VzdHMgdGhhdCBpdCB3b3JrZWQgaW4g djUuNCwgd2hpY2ggaXNuJ3QgbXVjaCBoZWxwLgo+PiA+ID4gPiAKPj4gPiA+ID4gUG9zc2libHkg dGhlIGFwcGFyZW50IHJlZ3Jlc3Npb24gd2FzIHJlYWxseSBhIC5jb25maWcgY2hhbmdlLCBpLmUu LAo+PiA+ID4gPiBDT05GSUdfUENJRUFTUE0gd2FzIGRpc2FibGVkIGluIHRoZSB2NS40IGtlcm5l bCB2dG9sa21AIHRlc3RlZCBhbmQgaXQKPj4gPiA+ID4gIndvcmtlZCIgYnV0IGdvdCBlbmFibGVk IGxhdGVyIGFuZCBpdCBzdGFydGVkIGZhaWxpbmc/Cj4+ID4gPiBZZWFoLCBJIHN1c3BlY3Qgc28u IFRoZSBPcGVuV3J0IGNvbmZpZyBkaXNhYmxlcyBDT05GSUdfUENJRUFTUE0gYnkKPj4gPiA+IGRl ZmF1bHQgYW5kIG9ubHkgdHVybnMgaXQgb24gZm9yIHNwZWNpZmljIHRhcmdldHMuIFNvIEkgZ3Vl c3MgdGhhdCBpdCdzCj4+ID4gPiBtb3N0IGxpa2VseSB0aGF0IHRoaXMgaGFzIG5ldmVyIHdvcmtl ZC4uLgo+PiA+ID4gCj4+ID4gPiA+IE1heWJlIHRoZSBkZWJ1ZyBwYXRjaCBiZWxvdyB3b3VsZCBi ZSB3b3J0aCB0cnlpbmcgdG8gc2VlIGlmIGl0IG1ha2VzCj4+ID4gPiA+IGFueSBkaWZmZXJlbmNl PyAgSWYgaXQgKmRvZXMqIGhlbHAsIHRyeSBvbWl0dGluZyB0aGUgZmlyc3QgaHVuayB0byBzZWUK Pj4gPiA+ID4gaWYgd2UganVzdCBuZWVkIHRvIGFwcGx5IHRoZSBxdWlya19lbmFibGVfY2xlYXJf cmV0cmFpbl9saW5rKCkgcXVpcmsuCj4+ID4gPiBUcmllZCwgZG9lc24ndCBoZWxwLi4uCj4+ID4g PiAKPj4gPiA+IC1Ub2tlCj4+ID4gCj4+ID4gRm91bmQgdGhpcyBwYXRjaAo+PiA+IAo+PiA+IGh0 dHBzOi8vZ2l0aHViLmNvbS9vcGVud3J0L29wZW53cnQvYmxvYi83YzA0OTZmMjliZWQ4NzMyNmYx YmY1OTFjYTI1YWNlODIzNzNjZmM3L3RhcmdldC9saW51eC9tdmVidS9wYXRjaGVzLTUuNC80MDUt UENJLWFhcmR2YXJrLUltcHJvdmUtbGluay10cmFpbmluZy5wYXRjaAo+PiA+IAo+PiA+IHRoYXQg bWVudGlvbnMgdGhlIENvbXBleCBXTEU5MDBWWCBjYXJkLCB3aGljaCByZWFkaW5nIHRoZSBsc3Bj aSB2ZXJib3NlCj4+ID4gb3V0cHV0IGZyb20gdGhlIGJ1Z3RyYWNrZXIgc2VlbXMgdG8gdGhlIGRl dmljZSBiZWluZyB0cm91YmxlZC4KPj4gCj4+IEludGVyZXN0aW5nLiAgSW5kZWVkLCB0aGUgQ29t cGV4IFdMRTkwMFZYIGNhcmQgc2VlbXMgdG8gaGF2ZSB0aGUKPj4gUXVhbGNvbW0gQXRoZXJvcyBR Q0E5ODgwIG9uIGl0LCBhbmQgaXQgbG9va3MgbGlrZSBUb2tlJ3Mgc3lzdGVtIGhhcwo+PiB0aGUg c2FtZSBkZXZpY2UgaW4gaXQuCj4+IAo+PiBUaGUgcGF0Y2ggeW91IG1lbnRpb24gKGh0dHBzOi8v Z2l0Lmtlcm5lbC5vcmcvbGludXMvNDNmYzY3OWNlZDE4KSBpcwo+PiBmb3IgYWFyZHZhcmssIHNv IG9mIGNvdXJzZSBkb2Vzbid0IGhlbHAgbXZlYnUuCj4+IAo+PiBQQ0llIGhhcmR3YXJlIGlzIHN1 cHBvc2VkIHRvIGF1dG9tYXRpY2FsbHkgbmVnb3RpYXRlIHRoZSBoaWdoZXN0IGxpbmsKPj4gc3Bl ZWQgc3VwcG9ydGVkIGJ5IGJvdGggZW5kcy4gIEJ1dCBzb2Z0d2FyZSAqaXMqIGFsbG93ZWQgdG8g c2V0IGFuCj4+IHVwcGVyIGxpbWl0ICh0aGUgVGFyZ2V0IExpbmsgU3BlZWQgaW4gTGluayBDb250 cm9sIDIpLiAgSWYgd2UgaW5pdGlhdGUKPj4gYSByZXRyYWluIGFuZCB0aGUgbGluayBkb2Vzbid0 IGNvbWUgYmFjayB1cCwgSSB3b25kZXIgaWYgd2Ugc2hvdWxkIHRyeQo+PiB0byBoZWxwIHRoZSBo YXJkd2FyZSBvdXQgYnkgdXNpbmcgVGFyZ2V0IExpbmsgU3BlZWQgdG8gbGltaXQgdG8gYQo+PiBs b3dlciBzcGVlZCBhbmQgYXR0ZW1wdGluZyBhbm90aGVyIHJldHJhaW4sIHNvbWV0aGluZyBsaWtl IHRoaXMgaGFja3kKPj4gcGF0Y2g6IChwbGVhc2UgY29sbGVjdCB0aGUgZG1lc2cgbG9nIGlmIHlv dSB0cnkgdGhpcykKPgo+IE15IGV4cGVyaWVuY2Ugd2l0aCB0aGF0IFdMRTkwMFZYIGNhcmQsIGFh cmR2YXJrIGRyaXZlciBhbmQgYXNwbSBjb2RlOgo+Cj4gTGluayB0cmFpbmluZyBpbiBHRU4yIG1v ZGUgZm9yIHRoaXMgY2FyZCBzdWNjZWVkIG9ubHkgb25jZSBhZnRlciByZXNldC4KPiBSZXBlYXRl ZCBsaW5rIHJldHJhaW5pbmcgZmFpbHMgYW5kIGl0IGZhaWxzIGV2ZW4gd2hlbiBhYXJkdmFyayBp cwo+IHJlY29uZmlndXJlZCB0byBHRU4xIG1vZGUuIFJlc2V0IHZpYSBQRVJTVCMgc2lnbmFsIGlz IHJlcXVpcmVkIHRvIGhhdmUKPiB3b3JraW5nIGxpbmsgdHJhaW5pbmcuCj4KPiBXaGF0IEkgZGlk IGluIGFhcmR2YXJrIGRyaXZlcjogU2V0IG1vZGUgdG8gR0VOMiwgZG8gbGluayB0cmFpbmluZy4g SWYKPiBzdWNjZXNzIHJlYWQgIm5lZ290aWF0ZWQgbGluayBzcGVlZCIgZnJvbSAiTGluayBDb250 cm9sIFN0YXR1cyBSZWdpc3RlciIKPiAoZm9yIFdMRTkwMFZYIGl0IGlzIDB4MSAtIEdFTjEpIGFu ZCBzZXQgaXQgaW50byBhYXJkdmFyay4gQW5kIHRoZW4KPiByZXRyYWluIGxpbmsgYWdhaW4gKGZv ciBXTEU5MDBWWCBub3cgaXQgd291bGQgYmUgYXQgR0VOMSkuIEFmdGVyIHRoYXQKPiBjYXJkIGlz IHN0YWJsZSBhbmQgYWxsIGZ1dHVyZSByZXRyYWluaW5nIChlLmcuIGZyb20gYXNwbS5jKSBhbHNv IHBhc3Nlcy4KPgo+IElmIEkgZG8gbm90IGNoYW5nZSBhYXJkdmFyayBtb2RlIGZyb20gR0VOMiB0 byBHRU4xIHRoZSBzZWNvbmQgbGluawo+IHRyYWluaW5nIGZhaWxzLiBBbmQgaWYgSSBjaGFuZ2Ug bW9kZSB0byBHRU4xIGFmdGVyIHRoaXMgZmFpbGVkIGxpbmsKPiB0cmFpbmluZyB0aGVuIG5vdGhp bmcgaGFwcGVuLCBsaW5rIHRyYWluaW5nIGRvIG5vdCBzdWNjZXNzLgo+Cj4gU28ganVzdCBzcGVj dWxhdGlvbiBub3cuLi4gSW4gY3VycmVudCBzZXR1cCBpbml0aWFsaXphdGlvbiBvZiBjYXJkIGRv ZXMKPiBvbmUgbGluayB0cmFpbmluZyBhdCBHRU4yLiBUaGVuIGFzcG0uYyBpcyBjYWxsZWQgd2hp Y2ggaXMgZG9pbmcgc2Vjb25kCj4gbGluayByZXRyYWluaW5nIGF0IEdFTjIuIEFuZCBpZiBpdCBm YWlscyB0aGVuIGJlbG93IHBhdGNoIGlzc3VlIHRoaXJkCj4gbGluayByZXRyYWluaW5nIGF0IEdF TjEuIElmIEEzOHgvcGNpLW12ZWJ1IGhhcyBzYW1lIHByb2JsZW0gYXMgYWFyZHZhcmsKPiB0aGVu IHNlY29uZCBsaW5rIHJldHJhaW5pbmcgbXVzdCBiZSBhdCBHRU4xIChub3QgR0VOMikgdG8gd29y a2Fyb3VuZAo+IHRoaXMgaXNzdWUuCj4KPiBCam9ybiwgVG9rZTogd2hhdCBhYm91dCB0cnlpbmcg dG8gaGFjayBhc3BtLmMgY29kZSB0byBuZXZlciBkbyBsaW5rCj4gcmV0cmFpbmluZyBhdCBHRU4y IHNwZWVkPyBBbmQgYWx3YXlzIGZvcmNlIEdFTjEgc3BlZWQgcHJpb3IgbGluawo+IHRyYWluaW5n PwoKU291bmRzIGxpa2UgYSBwbGFuLiBJIHBva2VkIGFyb3VuZCBpbiBhc3BtLmMgYW5kIG11c3Qg Y29uZmVzcyB0byBiZWluZyBhCmJpdCBsb3N0IGluIHRoZSBzb3VwIG9mIHJlZ2lzdGVycyA7KQoK U28gaWYgb25lIG9mIHlvdSBjYW4gY29vayB1cCBhIHBhdGNoLCB0aGF0IHdvdWxkIGJlIG1vc3Qg aGVscGZ1bCEKCi1Ub2tlCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=