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.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,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 B31CDC1B0D8 for ; Wed, 9 Dec 2020 13:09:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 81E6023444 for ; Wed, 9 Dec 2020 13:09:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731913AbgLINI4 (ORCPT ); Wed, 9 Dec 2020 08:08:56 -0500 Received: from ssl.serverraum.org ([176.9.125.105]:44381 "EHLO ssl.serverraum.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729012AbgLINIs (ORCPT ); Wed, 9 Dec 2020 08:08:48 -0500 Received: from ssl.serverraum.org (web.serverraum.org [172.16.0.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.serverraum.org (Postfix) with ESMTPSA id BE76F22F9C; Wed, 9 Dec 2020 14:08:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walle.cc; s=mail2016061301; t=1607519283; 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=8C9tDdYTNoyJympH+rs/jhco5iFhg1hGy9hBi61it4E=; b=GjAaU9darDCAuq8kixcG2UQMveso5X5FejCBvdxp8xRdQDJ6sRe+weMgZak2IjsDb6nMUN 21TOnWI8qOeVoZnz7GgKsSqR6rmSCcuKiG8gChLY05zPLi3dfRcmeE3bz7iO90HpJjAK8P 1D7hrQFsyFZhiStqf5p3Hwo6eib8dEA= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Wed, 09 Dec 2020 14:08:00 +0100 From: Michael Walle To: Bjorn Helgaas Cc: lorenzo.pieralisi@arm.com, kw@linux.com, heiko@sntech.de, benh@kernel.crashing.org, shawn.lin@rock-chips.com, paulus@samba.org, thomas.petazzoni@bootlin.com, jonnyc@amazon.com, toan@os.amperecomputing.com, will@kernel.org, robh@kernel.org, f.fainelli@gmail.com, mpe@ellerman.id.au, michal.simek@xilinx.com, linux-rockchip@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, jonathan.derrick@intel.com, linux-pci@vger.kernel.org, rjui@broadcom.com, linux-rpi-kernel@lists.infradead.org, Jonathan.Cameron@huawei.com, bhelgaas@google.com, linux-arm-kernel@lists.infradead.org, sbranden@broadcom.com, wangzhou1@hisilicon.com, rrichter@marvell.com, linuxppc-dev@lists.ozlabs.org, nsaenzjulienne@suse.de, Vladimir Oltean , Alexandru Marginean Subject: Re: [PATCH v6 0/5] PCI: Unify ECAM constants in native PCI Express drivers In-Reply-To: <20201209123654.GA2403346@bjorn-Precision-5520> References: <20201209123654.GA2403346@bjorn-Precision-5520> User-Agent: Roundcube Webmail/1.4.9 Message-ID: <595028ce6b04ea589f802ff61d8710f0@walle.cc> X-Sender: michael@walle.cc Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org [+ Vladimir and Alex] Am 2020-12-09 13:36, schrieb Bjorn Helgaas: > On Tue, Dec 08, 2020 at 04:41:50PM +0100, Michael Walle wrote: >> >On Sun, 29 Nov 2020 23:07:38 +0000, Krzysztof Wilczyński wrote: >> >> Unify ECAM-related constants into a single set of standard constants >> >> defining memory address shift values for the byte-level address that can >> >> be used when accessing the PCI Express Configuration Space, and then >> >> move native PCI Express controller drivers to use newly introduced >> >> definitions retiring any driver-specific ones. >> >> >> >> The ECAM ("Enhanced Configuration Access Mechanism") is defined by the >> >> PCI Express specification (see PCI Express Base Specification, Revision >> >> 5.0, Version 1.0, Section 7.2.2, p. 676), thus most hardware should >> >> implement it the same way. >> >> >> >> [...] >> > >> >Applied to pci/ecam, thanks! >> > >> >[1/5] PCI: Unify ECAM constants in native PCI Express drivers >> > https://git.kernel.org/lpieralisi/pci/c/f3c07cf692 > >> Patch 1/5 breaks LS1028A boards: >> >> [..] >> [ 1.144426] pci-host-generic 1f0000000.pcie: host bridge >> /soc/pcie@1f0000000 ranges: >> [ 1.152276] pci-host-generic 1f0000000.pcie: MEM >> 0x01f8000000..0x01f815ffff -> 0x0000000000 >> [ 1.161161] pci-host-generic 1f0000000.pcie: MEM >> 0x01f8160000..0x01f81cffff -> 0x0000000000 >> [ 1.170043] pci-host-generic 1f0000000.pcie: MEM >> 0x01f81d0000..0x01f81effff -> 0x0000000000 >> [ 1.178924] pci-host-generic 1f0000000.pcie: MEM >> 0x01f81f0000..0x01f820ffff -> 0x0000000000 >> [ 1.187805] pci-host-generic 1f0000000.pcie: MEM >> 0x01f8210000..0x01f822ffff -> 0x0000000000 >> [ 1.196686] pci-host-generic 1f0000000.pcie: MEM >> 0x01f8230000..0x01f824ffff -> 0x0000000000 >> [ 1.205562] pci-host-generic 1f0000000.pcie: MEM >> 0x01fc000000..0x01fc3fffff -> 0x0000000000 > > Can you attach your DT? That would be the following: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts You'll find the PCI devices/bridge in: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi > The fact that all these windows map to PCI > bus address 0 looks broken. Prior to patch 1/5, do the devices below > this bridge actually work? Yes, these should be the onboard network controller and ethernet switch. > Looks like you're using the pci-host-generic driver; which of the > .compatible strings (pci-host-cam-generic, pci-host-ecam-generic, > marvell,armada8k-pcie-ecam, etc) are you using? (I think that's in > the DT as well.) compatible = "pci-host-ecam-generic"; >> [ 1.214465] pci-host-generic 1f0000000.pcie: ECAM at [mem >> 0x1f0000000-0x1f00fffff] for [bus 00] > > >> [ 1.223318] pci-host-generic 1f0000000.pcie: PCI host bridge to bus >> 0000:00 >> [ 1.230350] pci_bus 0000:00: root bus resource [bus 00] >> [ 1.235625] pci_bus 0000:00: root bus resource [mem >> 0x1f8000000-0x1f815ffff] (bus address [0x00000000-0x0015ffff]) >> [ 1.246077] pci_bus 0000:00: root bus resource [mem >> 0x1f8160000-0x1f81cffff pref] (bus address [0x00000000-0x0006ffff]) >> [ 1.256969] pci_bus 0000:00: root bus resource [mem >> 0x1f81d0000-0x1f81effff] (bus address [0x00000000-0x0001ffff]) >> [ 1.267427] pci_bus 0000:00: root bus resource [mem >> 0x1f81f0000-0x1f820ffff pref] (bus address [0x00000000-0x0001ffff]) >> [ 1.278326] pci_bus 0000:00: root bus resource [mem >> 0x1f8210000-0x1f822ffff] (bus address [0x00000000-0x0001ffff]) >> [ 1.288779] pci_bus 0000:00: root bus resource [mem >> 0x1f8230000-0x1f824ffff pref] (bus address [0x00000000-0x0001ffff]) >> [ 1.299669] pci_bus 0000:00: root bus resource [mem >> 0x1fc000000-0x1fc3fffff] (bus address [0x00000000-0x003fffff]) >> [ 1.310138] pci 0000:00:00.0: [1957:e100] type 00 class 0x020001 >> [ 1.316234] pci 0000:00:00.0: BAR 0: [mem 0x1f8000000-0x1f803ffff >> 64bit] (from Enhanced Allocation, properties 0x0) >> [ 1.326776] pci 0000:00:00.0: BAR 2: [mem 0x1f8160000-0x1f816ffff >> 64bit pref] (from Enhanced Allocation, properties 0x1) >> [ 1.337759] pci 0000:00:00.0: VF BAR 0: [mem >> 0x1f81d0000-0x1f81dffff 64bit] (from Enhanced Allocation, properties >> 0x4) >> [ 1.348563] pci 0000:00:00.0: VF BAR 2: [mem >> 0x1f81f0000-0x1f81fffff 64bit pref] (from Enhanced Allocation, >> properties 0x3) >> [ 1.359821] pci 0000:00:00.0: PME# supported from D0 D3hot >> [ 1.365368] pci 0000:00:00.0: VF(n) BAR0 space: [mem >> 0x1f81d0000-0x1f81effff 64bit] (contains BAR0 for 2 VFs) >> [ 1.375381] pci 0000:00:00.0: VF(n) BAR2 space: [mem >> 0x1f81f0000-0x1f820ffff 64bit pref] (contains BAR2 for 2 VFs) >> [ 1.385983] Unable to handle kernel paging request at virtual >> address ffff800012132000 > > If ffff800012132000 were an actual ECAM address, we would expect the > low 20 bits to contain the device number, function number, and > config register offset, i.e., > > dev (0xffff800012132000 >> 15) & 0x01f = 0x6 > fn (0xffff800012132000 >> 12) & 0x007 = 0x2 > reg (0xffff800012132000) & 0xfff = 0 > > but that's non-sensical since we probe for devices in order. So maybe > this is a bad pointer somewhere else. I looked at pci_ecam_map_bus() > but didn't see an obvious problem. Maybe we could brute-force debug > this by adding some printks there. I'm not that deep into PCI, but if you could tell me what to add where, I'm happy to help ;) >> [ 1.393972] Mem abort info: >> [ 1.396783] ESR = 0x96000007 >> [ 1.399859] EC = 0x25: DABT (current EL), IL = 32 bits >> [ 1.405215] SET = 0, FnV = 0 >> [ 1.408290] EA = 0, S1PTW = 0 >> [ 1.411453] Data abort info: >> [ 1.414352] ISV = 0, ISS = 0x00000007 >> [ 1.418216] CM = 0, WnR = 0 >> [ 1.421205] swapper pgtable: 4k pages, 48-bit VAs, >> pgdp=000000008369c000 >> [ 1.427966] [ffff800012132000] pgd=00000020fffff003, >> p4d=00000020fffff003, pud=00000020ffffe003, pmd=00000020ffffa003, >> pte=0000000000000000 >> [ 1.440618] Internal error: Oops: 96000007 [#1] PREEMPT SMP >> [ 1.446239] Modules linked in: >> [ 1.449320] CPU: 1 PID: 1 Comm: swapper/0 Not tainted >> 5.10.0-rc3-00101-g2f378db5c89 #191 >> [ 1.457484] Hardware name: Kontron SMARC-sAL28 (Single PHY) on >> SMARC Eval 2.0 carrier (DT) >> [ 1.465827] pstate: 20000085 (nzCv daIf -PAN -UAO -TCO BTYPE=--) >> [ 1.471892] pc : pci_generic_config_read+0x38/0xe0 >> [ 1.476723] lr : pci_generic_config_read+0x24/0xe0 >> [ 1.481553] sp : ffff80001211b920 >> [ 1.484891] x29: ffff80001211b920 x28: 0000000000000000 >> [ 1.490252] x27: ffff8000116a04bc x26: 0000000000000000 >> [ 1.495612] x25: 0000000000000001 x24: ffff80001211ba54 >> [ 1.500972] x23: ffff0020009c3800 x22: 0000000000000000 >> [ 1.506332] x21: 0000000000000087 x20: ffff80001211b994 >> [ 1.511692] x19: 0000000000000004 x18: 0000000000000000 >> [ 1.517052] x17: 0000000000000000 x16: 00000000d5edfbc1 >> [ 1.522412] x15: ffffffffffffffff x14: ffff800011cf9948 >> [ 1.527772] x13: ffff002000305a1c x12: 0000000000000030 >> [ 1.533132] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f >> [ 1.538491] x9 : 2c6b7173626d686f x8 : 000000000000ea60 >> [ 1.543851] x7 : ffff80001211ba54 x6 : 0000000000000000 >> [ 1.549211] x5 : 0000000000000000 x4 : ffff800012131000 >> [ 1.554570] x3 : 0000000000000000 x2 : 0000000000000000 >> [ 1.559930] x1 : 0000000000001000 x0 : ffff800012132000 >> [ 1.565290] Call trace: >> [ 1.567752] pci_generic_config_read+0x38/0xe0 >> [ 1.572233] pci_bus_read_config_dword+0x84/0xd8 >> [ 1.576890] pci_bus_generic_read_dev_vendor_id+0x34/0x1b0 >> [ 1.582423] pci_bus_read_dev_vendor_id+0x4c/0x70 >> [ 1.587167] pci_scan_single_device+0x84/0xe0 >> [ 1.591559] pci_scan_slot+0x6c/0x120 >> [ 1.595250] pci_scan_child_bus_extend+0x54/0x298 >> [ 1.599994] pci_scan_root_bus_bridge+0xd4/0xf0 >> [ 1.604562] pci_host_probe+0x18/0xb0 >> [ 1.608254] pci_host_common_probe+0x13c/0x1a0 >> [ 1.612735] platform_drv_probe+0x54/0xa8 >> [ 1.616777] really_probe+0xe4/0x3b8 >> [ 1.620380] driver_probe_device+0x58/0xb8 >> [ 1.624509] device_driver_attach+0x74/0x80 >> [ 1.628725] __driver_attach+0x58/0xe0 >> [ 1.632503] bus_for_each_dev+0x74/0xc8 >> [ 1.636369] driver_attach+0x24/0x30 >> [ 1.639972] bus_add_driver+0x18c/0x1f0 >> [ 1.643838] driver_register+0x64/0x120 >> [ 1.647704] __platform_driver_register+0x48/0x58 >> [ 1.652449] gen_pci_driver_init+0x1c/0x28 >> [ 1.656580] do_one_initcall+0x4c/0x2c0 >> [ 1.660447] kernel_init_freeable+0x1e4/0x250 >> [ 1.664840] kernel_init+0x14/0x118 >> [ 1.668355] ret_from_fork+0x10/0x34 >> [ 1.671961] Code: 7100067f 540001c0 71000a7f 54000300 (b9400001) >> [ 1.678114] ---[ end trace 0aca1b048661e8b3 ]--- >> [ 1.682770] note: swapper/0[1] exited with preempt_count 1 >> [ 1.688305] Kernel panic - not syncing: Attempted to kill init! >> exitcode=0x0000000b >> [ 1.696031] SMP: stopping secondary CPUs >> [ 1.699989] Kernel Offset: disabled >> [ 1.703503] CPU features: 0x0240022,61006008 >> [ 1.707806] Memory Limit: none >> [ 1.710884] ---[ end Kernel panic - not syncing: Attempted to kill >> init! exitcode=0x0000000b ]--- >> >> There is a LS1028A eval board in kernelci here: >> https://lavalab.nxp.com/scheduler/job/170566 >> >> I actually have this board which also have a LS1028A SoC: >> https://lavalab.kontron.com/scheduler/job/1771 >> >> But in the latter you won't see much because earlycon isn't active. >> [I'm >> about to fix that.] >> >> By reverting patch 1/5, the board will work again. >> >> -michael >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- -michael 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.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0FC21C433FE for ; Wed, 9 Dec 2020 13:34:52 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (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 0CA9F23A6C for ; Wed, 9 Dec 2020 13:34:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0CA9F23A6C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=walle.cc Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Received: from bilbo.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 4CrdMC6zQjzDqW2 for ; Thu, 10 Dec 2020 00:34:47 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=walle.cc (client-ip=2a01:4f8:151:8464::1:2; helo=ssl.serverraum.org; envelope-from=michael@walle.cc; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=walle.cc Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=walle.cc header.i=@walle.cc header.a=rsa-sha256 header.s=mail2016061301 header.b=GjAaU9da; dkim-atps=neutral Received: from ssl.serverraum.org (ssl.serverraum.org [IPv6:2a01:4f8:151:8464::1:2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Crcmf2tZdzDqnB for ; Thu, 10 Dec 2020 00:08:13 +1100 (AEDT) Received: from ssl.serverraum.org (web.serverraum.org [172.16.0.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.serverraum.org (Postfix) with ESMTPSA id BE76F22F9C; Wed, 9 Dec 2020 14:08:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walle.cc; s=mail2016061301; t=1607519283; 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=8C9tDdYTNoyJympH+rs/jhco5iFhg1hGy9hBi61it4E=; b=GjAaU9darDCAuq8kixcG2UQMveso5X5FejCBvdxp8xRdQDJ6sRe+weMgZak2IjsDb6nMUN 21TOnWI8qOeVoZnz7GgKsSqR6rmSCcuKiG8gChLY05zPLi3dfRcmeE3bz7iO90HpJjAK8P 1D7hrQFsyFZhiStqf5p3Hwo6eib8dEA= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Wed, 09 Dec 2020 14:08:00 +0100 From: Michael Walle To: Bjorn Helgaas Subject: Re: [PATCH v6 0/5] PCI: Unify ECAM constants in native PCI Express drivers In-Reply-To: <20201209123654.GA2403346@bjorn-Precision-5520> References: <20201209123654.GA2403346@bjorn-Precision-5520> User-Agent: Roundcube Webmail/1.4.9 Message-ID: <595028ce6b04ea589f802ff61d8710f0@walle.cc> X-Sender: michael@walle.cc X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kw@linux.com, heiko@sntech.de, shawn.lin@rock-chips.com, Alexandru Marginean , paulus@samba.org, thomas.petazzoni@bootlin.com, jonnyc@amazon.com, toan@os.amperecomputing.com, will@kernel.org, robh@kernel.org, lorenzo.pieralisi@arm.com, michal.simek@xilinx.com, linux-rockchip@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, rjui@broadcom.com, f.fainelli@gmail.com, linux-rpi-kernel@lists.infradead.org, Jonathan.Cameron@huawei.com, bhelgaas@google.com, jonathan.derrick@intel.com, sbranden@broadcom.com, wangzhou1@hisilicon.com, rrichter@marvell.com, Vladimir Oltean , linuxppc-dev@lists.ozlabs.org, nsaenzjulienne@suse.de Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" [+ Vladimir and Alex] Am 2020-12-09 13:36, schrieb Bjorn Helgaas: > On Tue, Dec 08, 2020 at 04:41:50PM +0100, Michael Walle wrote: >> >On Sun, 29 Nov 2020 23:07:38 +0000, Krzysztof Wilczyński wrote: >> >> Unify ECAM-related constants into a single set of standard constants >> >> defining memory address shift values for the byte-level address that can >> >> be used when accessing the PCI Express Configuration Space, and then >> >> move native PCI Express controller drivers to use newly introduced >> >> definitions retiring any driver-specific ones. >> >> >> >> The ECAM ("Enhanced Configuration Access Mechanism") is defined by the >> >> PCI Express specification (see PCI Express Base Specification, Revision >> >> 5.0, Version 1.0, Section 7.2.2, p. 676), thus most hardware should >> >> implement it the same way. >> >> >> >> [...] >> > >> >Applied to pci/ecam, thanks! >> > >> >[1/5] PCI: Unify ECAM constants in native PCI Express drivers >> > https://git.kernel.org/lpieralisi/pci/c/f3c07cf692 > >> Patch 1/5 breaks LS1028A boards: >> >> [..] >> [ 1.144426] pci-host-generic 1f0000000.pcie: host bridge >> /soc/pcie@1f0000000 ranges: >> [ 1.152276] pci-host-generic 1f0000000.pcie: MEM >> 0x01f8000000..0x01f815ffff -> 0x0000000000 >> [ 1.161161] pci-host-generic 1f0000000.pcie: MEM >> 0x01f8160000..0x01f81cffff -> 0x0000000000 >> [ 1.170043] pci-host-generic 1f0000000.pcie: MEM >> 0x01f81d0000..0x01f81effff -> 0x0000000000 >> [ 1.178924] pci-host-generic 1f0000000.pcie: MEM >> 0x01f81f0000..0x01f820ffff -> 0x0000000000 >> [ 1.187805] pci-host-generic 1f0000000.pcie: MEM >> 0x01f8210000..0x01f822ffff -> 0x0000000000 >> [ 1.196686] pci-host-generic 1f0000000.pcie: MEM >> 0x01f8230000..0x01f824ffff -> 0x0000000000 >> [ 1.205562] pci-host-generic 1f0000000.pcie: MEM >> 0x01fc000000..0x01fc3fffff -> 0x0000000000 > > Can you attach your DT? That would be the following: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts You'll find the PCI devices/bridge in: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi > The fact that all these windows map to PCI > bus address 0 looks broken. Prior to patch 1/5, do the devices below > this bridge actually work? Yes, these should be the onboard network controller and ethernet switch. > Looks like you're using the pci-host-generic driver; which of the > .compatible strings (pci-host-cam-generic, pci-host-ecam-generic, > marvell,armada8k-pcie-ecam, etc) are you using? (I think that's in > the DT as well.) compatible = "pci-host-ecam-generic"; >> [ 1.214465] pci-host-generic 1f0000000.pcie: ECAM at [mem >> 0x1f0000000-0x1f00fffff] for [bus 00] > > >> [ 1.223318] pci-host-generic 1f0000000.pcie: PCI host bridge to bus >> 0000:00 >> [ 1.230350] pci_bus 0000:00: root bus resource [bus 00] >> [ 1.235625] pci_bus 0000:00: root bus resource [mem >> 0x1f8000000-0x1f815ffff] (bus address [0x00000000-0x0015ffff]) >> [ 1.246077] pci_bus 0000:00: root bus resource [mem >> 0x1f8160000-0x1f81cffff pref] (bus address [0x00000000-0x0006ffff]) >> [ 1.256969] pci_bus 0000:00: root bus resource [mem >> 0x1f81d0000-0x1f81effff] (bus address [0x00000000-0x0001ffff]) >> [ 1.267427] pci_bus 0000:00: root bus resource [mem >> 0x1f81f0000-0x1f820ffff pref] (bus address [0x00000000-0x0001ffff]) >> [ 1.278326] pci_bus 0000:00: root bus resource [mem >> 0x1f8210000-0x1f822ffff] (bus address [0x00000000-0x0001ffff]) >> [ 1.288779] pci_bus 0000:00: root bus resource [mem >> 0x1f8230000-0x1f824ffff pref] (bus address [0x00000000-0x0001ffff]) >> [ 1.299669] pci_bus 0000:00: root bus resource [mem >> 0x1fc000000-0x1fc3fffff] (bus address [0x00000000-0x003fffff]) >> [ 1.310138] pci 0000:00:00.0: [1957:e100] type 00 class 0x020001 >> [ 1.316234] pci 0000:00:00.0: BAR 0: [mem 0x1f8000000-0x1f803ffff >> 64bit] (from Enhanced Allocation, properties 0x0) >> [ 1.326776] pci 0000:00:00.0: BAR 2: [mem 0x1f8160000-0x1f816ffff >> 64bit pref] (from Enhanced Allocation, properties 0x1) >> [ 1.337759] pci 0000:00:00.0: VF BAR 0: [mem >> 0x1f81d0000-0x1f81dffff 64bit] (from Enhanced Allocation, properties >> 0x4) >> [ 1.348563] pci 0000:00:00.0: VF BAR 2: [mem >> 0x1f81f0000-0x1f81fffff 64bit pref] (from Enhanced Allocation, >> properties 0x3) >> [ 1.359821] pci 0000:00:00.0: PME# supported from D0 D3hot >> [ 1.365368] pci 0000:00:00.0: VF(n) BAR0 space: [mem >> 0x1f81d0000-0x1f81effff 64bit] (contains BAR0 for 2 VFs) >> [ 1.375381] pci 0000:00:00.0: VF(n) BAR2 space: [mem >> 0x1f81f0000-0x1f820ffff 64bit pref] (contains BAR2 for 2 VFs) >> [ 1.385983] Unable to handle kernel paging request at virtual >> address ffff800012132000 > > If ffff800012132000 were an actual ECAM address, we would expect the > low 20 bits to contain the device number, function number, and > config register offset, i.e., > > dev (0xffff800012132000 >> 15) & 0x01f = 0x6 > fn (0xffff800012132000 >> 12) & 0x007 = 0x2 > reg (0xffff800012132000) & 0xfff = 0 > > but that's non-sensical since we probe for devices in order. So maybe > this is a bad pointer somewhere else. I looked at pci_ecam_map_bus() > but didn't see an obvious problem. Maybe we could brute-force debug > this by adding some printks there. I'm not that deep into PCI, but if you could tell me what to add where, I'm happy to help ;) >> [ 1.393972] Mem abort info: >> [ 1.396783] ESR = 0x96000007 >> [ 1.399859] EC = 0x25: DABT (current EL), IL = 32 bits >> [ 1.405215] SET = 0, FnV = 0 >> [ 1.408290] EA = 0, S1PTW = 0 >> [ 1.411453] Data abort info: >> [ 1.414352] ISV = 0, ISS = 0x00000007 >> [ 1.418216] CM = 0, WnR = 0 >> [ 1.421205] swapper pgtable: 4k pages, 48-bit VAs, >> pgdp=000000008369c000 >> [ 1.427966] [ffff800012132000] pgd=00000020fffff003, >> p4d=00000020fffff003, pud=00000020ffffe003, pmd=00000020ffffa003, >> pte=0000000000000000 >> [ 1.440618] Internal error: Oops: 96000007 [#1] PREEMPT SMP >> [ 1.446239] Modules linked in: >> [ 1.449320] CPU: 1 PID: 1 Comm: swapper/0 Not tainted >> 5.10.0-rc3-00101-g2f378db5c89 #191 >> [ 1.457484] Hardware name: Kontron SMARC-sAL28 (Single PHY) on >> SMARC Eval 2.0 carrier (DT) >> [ 1.465827] pstate: 20000085 (nzCv daIf -PAN -UAO -TCO BTYPE=--) >> [ 1.471892] pc : pci_generic_config_read+0x38/0xe0 >> [ 1.476723] lr : pci_generic_config_read+0x24/0xe0 >> [ 1.481553] sp : ffff80001211b920 >> [ 1.484891] x29: ffff80001211b920 x28: 0000000000000000 >> [ 1.490252] x27: ffff8000116a04bc x26: 0000000000000000 >> [ 1.495612] x25: 0000000000000001 x24: ffff80001211ba54 >> [ 1.500972] x23: ffff0020009c3800 x22: 0000000000000000 >> [ 1.506332] x21: 0000000000000087 x20: ffff80001211b994 >> [ 1.511692] x19: 0000000000000004 x18: 0000000000000000 >> [ 1.517052] x17: 0000000000000000 x16: 00000000d5edfbc1 >> [ 1.522412] x15: ffffffffffffffff x14: ffff800011cf9948 >> [ 1.527772] x13: ffff002000305a1c x12: 0000000000000030 >> [ 1.533132] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f >> [ 1.538491] x9 : 2c6b7173626d686f x8 : 000000000000ea60 >> [ 1.543851] x7 : ffff80001211ba54 x6 : 0000000000000000 >> [ 1.549211] x5 : 0000000000000000 x4 : ffff800012131000 >> [ 1.554570] x3 : 0000000000000000 x2 : 0000000000000000 >> [ 1.559930] x1 : 0000000000001000 x0 : ffff800012132000 >> [ 1.565290] Call trace: >> [ 1.567752] pci_generic_config_read+0x38/0xe0 >> [ 1.572233] pci_bus_read_config_dword+0x84/0xd8 >> [ 1.576890] pci_bus_generic_read_dev_vendor_id+0x34/0x1b0 >> [ 1.582423] pci_bus_read_dev_vendor_id+0x4c/0x70 >> [ 1.587167] pci_scan_single_device+0x84/0xe0 >> [ 1.591559] pci_scan_slot+0x6c/0x120 >> [ 1.595250] pci_scan_child_bus_extend+0x54/0x298 >> [ 1.599994] pci_scan_root_bus_bridge+0xd4/0xf0 >> [ 1.604562] pci_host_probe+0x18/0xb0 >> [ 1.608254] pci_host_common_probe+0x13c/0x1a0 >> [ 1.612735] platform_drv_probe+0x54/0xa8 >> [ 1.616777] really_probe+0xe4/0x3b8 >> [ 1.620380] driver_probe_device+0x58/0xb8 >> [ 1.624509] device_driver_attach+0x74/0x80 >> [ 1.628725] __driver_attach+0x58/0xe0 >> [ 1.632503] bus_for_each_dev+0x74/0xc8 >> [ 1.636369] driver_attach+0x24/0x30 >> [ 1.639972] bus_add_driver+0x18c/0x1f0 >> [ 1.643838] driver_register+0x64/0x120 >> [ 1.647704] __platform_driver_register+0x48/0x58 >> [ 1.652449] gen_pci_driver_init+0x1c/0x28 >> [ 1.656580] do_one_initcall+0x4c/0x2c0 >> [ 1.660447] kernel_init_freeable+0x1e4/0x250 >> [ 1.664840] kernel_init+0x14/0x118 >> [ 1.668355] ret_from_fork+0x10/0x34 >> [ 1.671961] Code: 7100067f 540001c0 71000a7f 54000300 (b9400001) >> [ 1.678114] ---[ end trace 0aca1b048661e8b3 ]--- >> [ 1.682770] note: swapper/0[1] exited with preempt_count 1 >> [ 1.688305] Kernel panic - not syncing: Attempted to kill init! >> exitcode=0x0000000b >> [ 1.696031] SMP: stopping secondary CPUs >> [ 1.699989] Kernel Offset: disabled >> [ 1.703503] CPU features: 0x0240022,61006008 >> [ 1.707806] Memory Limit: none >> [ 1.710884] ---[ end Kernel panic - not syncing: Attempted to kill >> init! exitcode=0x0000000b ]--- >> >> There is a LS1028A eval board in kernelci here: >> https://lavalab.nxp.com/scheduler/job/170566 >> >> I actually have this board which also have a LS1028A SoC: >> https://lavalab.kontron.com/scheduler/job/1771 >> >> But in the latter you won't see much because earlycon isn't active. >> [I'm >> about to fix that.] >> >> By reverting patch 1/5, the board will work again. >> >> -michael >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- -michael 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 B70C0C433FE for ; Wed, 9 Dec 2020 13:08:22 +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 5E6AC23B45 for ; Wed, 9 Dec 2020 13:08:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5E6AC23B45 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=walle.cc Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-rockchip-bounces+linux-rockchip=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-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-ID:References:In-Reply-To:Subject:To:From: Date:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=o+IQ45qTXqba/lzUPIufwsexEUZqeiIUfwv0XCC8NLk=; b=jiTI/lsY9FuBwL0pw7oCpnN6f EOXkNHGVvUSKm7XiW8dRD0yfGUkDWK4veMsEJvEG9NhRzvJ9pURLQtDuRibpXpmjujOSKscib44Ss QWs0HdLWP1bc5oJlf2K8kBRLsXDQO4lEsHaJAhTcshaVUTiESsa4UTEe1hoGyqkyNa3yNiPi6rKmI pA95BUAKvTArbEUlohWPtjxmJKNAvxc9pmpq3qGzpdRe6oQLdoU5spAi7JYbVJz2hktX+0V5ILFmn VB6DTXy6kcIMNCbX9QdA7RQcXxlGj473XIlo4xxzwCfEdu7h/o2pXpNLqQXnWCpvqmfBI098iZk1C x+AH2iNGA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kmzCa-0002Jg-Og; Wed, 09 Dec 2020 13:08:16 +0000 Received: from ssl.serverraum.org ([2a01:4f8:151:8464::1:2]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kmzCU-0002Ij-4f; Wed, 09 Dec 2020 13:08:12 +0000 Received: from ssl.serverraum.org (web.serverraum.org [172.16.0.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.serverraum.org (Postfix) with ESMTPSA id BE76F22F9C; Wed, 9 Dec 2020 14:08:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walle.cc; s=mail2016061301; t=1607519283; 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=8C9tDdYTNoyJympH+rs/jhco5iFhg1hGy9hBi61it4E=; b=GjAaU9darDCAuq8kixcG2UQMveso5X5FejCBvdxp8xRdQDJ6sRe+weMgZak2IjsDb6nMUN 21TOnWI8qOeVoZnz7GgKsSqR6rmSCcuKiG8gChLY05zPLi3dfRcmeE3bz7iO90HpJjAK8P 1D7hrQFsyFZhiStqf5p3Hwo6eib8dEA= MIME-Version: 1.0 Date: Wed, 09 Dec 2020 14:08:00 +0100 From: Michael Walle To: Bjorn Helgaas Subject: Re: [PATCH v6 0/5] PCI: Unify ECAM constants in native PCI Express drivers In-Reply-To: <20201209123654.GA2403346@bjorn-Precision-5520> References: <20201209123654.GA2403346@bjorn-Precision-5520> User-Agent: Roundcube Webmail/1.4.9 Message-ID: <595028ce6b04ea589f802ff61d8710f0@walle.cc> X-Sender: michael@walle.cc X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201209_080810_457289_33B8AE8A X-CRM114-Status: GOOD ( 25.24 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kw@linux.com, heiko@sntech.de, benh@kernel.crashing.org, shawn.lin@rock-chips.com, Alexandru Marginean , paulus@samba.org, thomas.petazzoni@bootlin.com, jonnyc@amazon.com, toan@os.amperecomputing.com, will@kernel.org, robh@kernel.org, lorenzo.pieralisi@arm.com, mpe@ellerman.id.au, michal.simek@xilinx.com, linux-rockchip@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, rjui@broadcom.com, f.fainelli@gmail.com, linux-rpi-kernel@lists.infradead.org, Jonathan.Cameron@huawei.com, bhelgaas@google.com, jonathan.derrick@intel.com, sbranden@broadcom.com, wangzhou1@hisilicon.com, rrichter@marvell.com, Vladimir Oltean , linuxppc-dev@lists.ozlabs.org, nsaenzjulienne@suse.de Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org WysgVmxhZGltaXIgYW5kIEFsZXhdCgpBbSAyMDIwLTEyLTA5IDEzOjM2LCBzY2hyaWViIEJqb3Ju IEhlbGdhYXM6Cj4gT24gVHVlLCBEZWMgMDgsIDIwMjAgYXQgMDQ6NDE6NTBQTSArMDEwMCwgTWlj aGFlbCBXYWxsZSB3cm90ZToKPj4gPk9uIFN1biwgMjkgTm92IDIwMjAgMjM6MDc6MzggKzAwMDAs IEtyenlzenRvZiBXaWxjennFhHNraSB3cm90ZToKPj4gPj4gVW5pZnkgRUNBTS1yZWxhdGVkIGNv bnN0YW50cyBpbnRvIGEgc2luZ2xlIHNldCBvZiBzdGFuZGFyZCBjb25zdGFudHMKPj4gPj4gZGVm aW5pbmcgbWVtb3J5IGFkZHJlc3Mgc2hpZnQgdmFsdWVzIGZvciB0aGUgYnl0ZS1sZXZlbCBhZGRy ZXNzIHRoYXQgY2FuCj4+ID4+IGJlIHVzZWQgd2hlbiBhY2Nlc3NpbmcgdGhlIFBDSSBFeHByZXNz IENvbmZpZ3VyYXRpb24gU3BhY2UsIGFuZCB0aGVuCj4+ID4+IG1vdmUgbmF0aXZlIFBDSSBFeHBy ZXNzIGNvbnRyb2xsZXIgZHJpdmVycyB0byB1c2UgbmV3bHkgaW50cm9kdWNlZAo+PiA+PiBkZWZp bml0aW9ucyByZXRpcmluZyBhbnkgZHJpdmVyLXNwZWNpZmljIG9uZXMuCj4+ID4+Cj4+ID4+IFRo ZSBFQ0FNICgiRW5oYW5jZWQgQ29uZmlndXJhdGlvbiBBY2Nlc3MgTWVjaGFuaXNtIikgaXMgZGVm aW5lZCBieSB0aGUKPj4gPj4gUENJIEV4cHJlc3Mgc3BlY2lmaWNhdGlvbiAoc2VlIFBDSSBFeHBy ZXNzIEJhc2UgU3BlY2lmaWNhdGlvbiwgUmV2aXNpb24KPj4gPj4gNS4wLCBWZXJzaW9uIDEuMCwg U2VjdGlvbiA3LjIuMiwgcC4gNjc2KSwgdGh1cyBtb3N0IGhhcmR3YXJlIHNob3VsZAo+PiA+PiBp bXBsZW1lbnQgaXQgdGhlIHNhbWUgd2F5Lgo+PiA+Pgo+PiA+PiBbLi4uXQo+PiA+Cj4+ID5BcHBs aWVkIHRvIHBjaS9lY2FtLCB0aGFua3MhCj4+ID4KPj4gPlsxLzVdIFBDSTogVW5pZnkgRUNBTSBj b25zdGFudHMgaW4gbmF0aXZlIFBDSSBFeHByZXNzIGRyaXZlcnMKPj4gPiAgICAgIGh0dHBzOi8v Z2l0Lmtlcm5lbC5vcmcvbHBpZXJhbGlzaS9wY2kvYy9mM2MwN2NmNjkyCj4gCj4+IFBhdGNoIDEv NSBicmVha3MgTFMxMDI4QSBib2FyZHM6Cj4+IAo+PiBbLi5dCj4+IFsgICAgMS4xNDQ0MjZdIHBj aS1ob3N0LWdlbmVyaWMgMWYwMDAwMDAwLnBjaWU6IGhvc3QgYnJpZGdlIAo+PiAvc29jL3BjaWVA MWYwMDAwMDAwIHJhbmdlczoKPj4gWyAgICAxLjE1MjI3Nl0gcGNpLWhvc3QtZ2VuZXJpYyAxZjAw MDAwMDAucGNpZTogICAgICBNRU0gCj4+IDB4MDFmODAwMDAwMC4uMHgwMWY4MTVmZmZmIC0+IDB4 MDAwMDAwMDAwMAo+PiBbICAgIDEuMTYxMTYxXSBwY2ktaG9zdC1nZW5lcmljIDFmMDAwMDAwMC5w Y2llOiAgICAgIE1FTSAKPj4gMHgwMWY4MTYwMDAwLi4weDAxZjgxY2ZmZmYgLT4gMHgwMDAwMDAw MDAwCj4+IFsgICAgMS4xNzAwNDNdIHBjaS1ob3N0LWdlbmVyaWMgMWYwMDAwMDAwLnBjaWU6ICAg ICAgTUVNIAo+PiAweDAxZjgxZDAwMDAuLjB4MDFmODFlZmZmZiAtPiAweDAwMDAwMDAwMDAKPj4g WyAgICAxLjE3ODkyNF0gcGNpLWhvc3QtZ2VuZXJpYyAxZjAwMDAwMDAucGNpZTogICAgICBNRU0g Cj4+IDB4MDFmODFmMDAwMC4uMHgwMWY4MjBmZmZmIC0+IDB4MDAwMDAwMDAwMAo+PiBbICAgIDEu MTg3ODA1XSBwY2ktaG9zdC1nZW5lcmljIDFmMDAwMDAwMC5wY2llOiAgICAgIE1FTSAKPj4gMHgw MWY4MjEwMDAwLi4weDAxZjgyMmZmZmYgLT4gMHgwMDAwMDAwMDAwCj4+IFsgICAgMS4xOTY2ODZd IHBjaS1ob3N0LWdlbmVyaWMgMWYwMDAwMDAwLnBjaWU6ICAgICAgTUVNIAo+PiAweDAxZjgyMzAw MDAuLjB4MDFmODI0ZmZmZiAtPiAweDAwMDAwMDAwMDAKPj4gWyAgICAxLjIwNTU2Ml0gcGNpLWhv c3QtZ2VuZXJpYyAxZjAwMDAwMDAucGNpZTogICAgICBNRU0gCj4+IDB4MDFmYzAwMDAwMC4uMHgw MWZjM2ZmZmZmIC0+IDB4MDAwMDAwMDAwMAo+IAo+IENhbiB5b3UgYXR0YWNoIHlvdXIgRFQ/ClRo YXQgd291bGQgYmUgdGhlIGZvbGxvd2luZzoKaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2Nt L2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0L3RyZWUvYXJjaC9hcm02NC9ib290 L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTAyOGEta29udHJvbi1zbDI4LXZhcjMtYWRzMi5kdHMKCllv dSdsbCBmaW5kIHRoZSBQQ0kgZGV2aWNlcy9icmlkZ2UgaW46Cmh0dHBzOi8vZ2l0Lmtlcm5lbC5v cmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdC90cmVlL2FyY2gv YXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwMjhhLmR0c2kKCj4gVGhlIGZhY3QgdGhh dCBhbGwgdGhlc2Ugd2luZG93cyBtYXAgdG8gUENJCj4gYnVzIGFkZHJlc3MgMCBsb29rcyBicm9r ZW4uICBQcmlvciB0byBwYXRjaCAxLzUsIGRvIHRoZSBkZXZpY2VzIGJlbG93Cj4gdGhpcyBicmlk Z2UgYWN0dWFsbHkgd29yaz8KClllcywgdGhlc2Ugc2hvdWxkIGJlIHRoZSBvbmJvYXJkIG5ldHdv cmsgY29udHJvbGxlciBhbmQgZXRoZXJuZXQKc3dpdGNoLgoKPiBMb29rcyBsaWtlIHlvdSdyZSB1 c2luZyB0aGUgcGNpLWhvc3QtZ2VuZXJpYyBkcml2ZXI7IHdoaWNoIG9mIHRoZQo+IC5jb21wYXRp YmxlIHN0cmluZ3MgKHBjaS1ob3N0LWNhbS1nZW5lcmljLCBwY2ktaG9zdC1lY2FtLWdlbmVyaWMs Cj4gbWFydmVsbCxhcm1hZGE4ay1wY2llLWVjYW0sIGV0YykgYXJlIHlvdSB1c2luZz8gIChJIHRo aW5rIHRoYXQncyBpbgo+IHRoZSBEVCBhcyB3ZWxsLikKCmNvbXBhdGlibGUgPSAicGNpLWhvc3Qt ZWNhbS1nZW5lcmljIjsKCj4+IFsgICAgMS4yMTQ0NjVdIHBjaS1ob3N0LWdlbmVyaWMgMWYwMDAw MDAwLnBjaWU6IEVDQU0gYXQgW21lbSAKPj4gMHgxZjAwMDAwMDAtMHgxZjAwZmZmZmZdIGZvciBb YnVzIDAwXQo+IAo+IAo+PiBbICAgIDEuMjIzMzE4XSBwY2ktaG9zdC1nZW5lcmljIDFmMDAwMDAw MC5wY2llOiBQQ0kgaG9zdCBicmlkZ2UgdG8gYnVzIAo+PiAwMDAwOjAwCj4+IFsgICAgMS4yMzAz NTBdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2J1cyAwMF0KPj4gWyAgICAx LjIzNTYyNV0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIAo+PiAweDFm ODAwMDAwMC0weDFmODE1ZmZmZl0gKGJ1cyBhZGRyZXNzIFsweDAwMDAwMDAwLTB4MDAxNWZmZmZd KQo+PiBbICAgIDEuMjQ2MDc3XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtt ZW0gCj4+IDB4MWY4MTYwMDAwLTB4MWY4MWNmZmZmIHByZWZdIChidXMgYWRkcmVzcyBbMHgwMDAw MDAwMC0weDAwMDZmZmZmXSkKPj4gWyAgICAxLjI1Njk2OV0gcGNpX2J1cyAwMDAwOjAwOiByb290 IGJ1cyByZXNvdXJjZSBbbWVtIAo+PiAweDFmODFkMDAwMC0weDFmODFlZmZmZl0gKGJ1cyBhZGRy ZXNzIFsweDAwMDAwMDAwLTB4MDAwMWZmZmZdKQo+PiBbICAgIDEuMjY3NDI3XSBwY2lfYnVzIDAw MDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gCj4+IDB4MWY4MWYwMDAwLTB4MWY4MjBmZmZm IHByZWZdIChidXMgYWRkcmVzcyBbMHgwMDAwMDAwMC0weDAwMDFmZmZmXSkKPj4gWyAgICAxLjI3 ODMyNl0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIAo+PiAweDFmODIx MDAwMC0weDFmODIyZmZmZl0gKGJ1cyBhZGRyZXNzIFsweDAwMDAwMDAwLTB4MDAwMWZmZmZdKQo+ PiBbICAgIDEuMjg4Nzc5XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0g Cj4+IDB4MWY4MjMwMDAwLTB4MWY4MjRmZmZmIHByZWZdIChidXMgYWRkcmVzcyBbMHgwMDAwMDAw MC0weDAwMDFmZmZmXSkKPj4gWyAgICAxLjI5OTY2OV0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1 cyByZXNvdXJjZSBbbWVtIAo+PiAweDFmYzAwMDAwMC0weDFmYzNmZmZmZl0gKGJ1cyBhZGRyZXNz IFsweDAwMDAwMDAwLTB4MDAzZmZmZmZdKQo+PiBbICAgIDEuMzEwMTM4XSBwY2kgMDAwMDowMDow MC4wOiBbMTk1NzplMTAwXSB0eXBlIDAwIGNsYXNzIDB4MDIwMDAxCj4+IFsgICAgMS4zMTYyMzRd IHBjaSAwMDAwOjAwOjAwLjA6IEJBUiAwOiBbbWVtIDB4MWY4MDAwMDAwLTB4MWY4MDNmZmZmIAo+ PiA2NGJpdF0gKGZyb20gRW5oYW5jZWQgQWxsb2NhdGlvbiwgcHJvcGVydGllcyAweDApCj4+IFsg ICAgMS4zMjY3NzZdIHBjaSAwMDAwOjAwOjAwLjA6IEJBUiAyOiBbbWVtIDB4MWY4MTYwMDAwLTB4 MWY4MTZmZmZmIAo+PiA2NGJpdCBwcmVmXSAoZnJvbSBFbmhhbmNlZCBBbGxvY2F0aW9uLCBwcm9w ZXJ0aWVzIDB4MSkKPj4gWyAgICAxLjMzNzc1OV0gcGNpIDAwMDA6MDA6MDAuMDogVkYgQkFSIDA6 IFttZW0gCj4+IDB4MWY4MWQwMDAwLTB4MWY4MWRmZmZmIDY0Yml0XSAoZnJvbSBFbmhhbmNlZCBB bGxvY2F0aW9uLCBwcm9wZXJ0aWVzIAo+PiAweDQpCj4+IFsgICAgMS4zNDg1NjNdIHBjaSAwMDAw OjAwOjAwLjA6IFZGIEJBUiAyOiBbbWVtIAo+PiAweDFmODFmMDAwMC0weDFmODFmZmZmZiA2NGJp dCBwcmVmXSAoZnJvbSBFbmhhbmNlZCBBbGxvY2F0aW9uLCAKPj4gcHJvcGVydGllcyAweDMpCj4+ IFsgICAgMS4zNTk4MjFdIHBjaSAwMDAwOjAwOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAg RDNob3QKPj4gWyAgICAxLjM2NTM2OF0gcGNpIDAwMDA6MDA6MDAuMDogVkYobikgQkFSMCBzcGFj ZTogW21lbSAKPj4gMHgxZjgxZDAwMDAtMHgxZjgxZWZmZmYgNjRiaXRdIChjb250YWlucyBCQVIw IGZvciAyIFZGcykKPj4gWyAgICAxLjM3NTM4MV0gcGNpIDAwMDA6MDA6MDAuMDogVkYobikgQkFS MiBzcGFjZTogW21lbSAKPj4gMHgxZjgxZjAwMDAtMHgxZjgyMGZmZmYgNjRiaXQgcHJlZl0gKGNv bnRhaW5zIEJBUjIgZm9yIDIgVkZzKQo+PiBbICAgIDEuMzg1OTgzXSBVbmFibGUgdG8gaGFuZGxl IGtlcm5lbCBwYWdpbmcgcmVxdWVzdCBhdCB2aXJ0dWFsIAo+PiBhZGRyZXNzIGZmZmY4MDAwMTIx MzIwMDAKPiAKPiBJZiBmZmZmODAwMDEyMTMyMDAwIHdlcmUgYW4gYWN0dWFsIEVDQU0gYWRkcmVz cywgd2Ugd291bGQgZXhwZWN0IHRoZQo+IGxvdyAyMCBiaXRzIHRvIGNvbnRhaW4gdGhlIGRldmlj ZSBudW1iZXIsIGZ1bmN0aW9uIG51bWJlciwgYW5kCj4gY29uZmlnIHJlZ2lzdGVyIG9mZnNldCwg aS5lLiwKPiAKPiAgIGRldiAgICgweGZmZmY4MDAwMTIxMzIwMDAgPj4gMTUpICYgMHgwMWYgPSAw eDYKPiAgIGZuICAgICgweGZmZmY4MDAwMTIxMzIwMDAgPj4gMTIpICYgMHgwMDcgPSAweDIKPiAg IHJlZyAgICgweGZmZmY4MDAwMTIxMzIwMDApICAgICAgICYgMHhmZmYgPSAwCj4gCj4gYnV0IHRo YXQncyBub24tc2Vuc2ljYWwgc2luY2Ugd2UgcHJvYmUgZm9yIGRldmljZXMgaW4gb3JkZXIuICBT byBtYXliZQo+IHRoaXMgaXMgYSBiYWQgcG9pbnRlciBzb21ld2hlcmUgZWxzZS4gIEkgbG9va2Vk IGF0IHBjaV9lY2FtX21hcF9idXMoKQo+IGJ1dCBkaWRuJ3Qgc2VlIGFuIG9idmlvdXMgcHJvYmxl bS4gIE1heWJlIHdlIGNvdWxkIGJydXRlLWZvcmNlIGRlYnVnCj4gdGhpcyBieSBhZGRpbmcgc29t ZSBwcmludGtzIHRoZXJlLgoKSSdtIG5vdCB0aGF0IGRlZXAgaW50byBQQ0ksIGJ1dCBpZiB5b3Ug Y291bGQgdGVsbCBtZSB3aGF0IHRvIGFkZCB3aGVyZSwKSSdtIGhhcHB5IHRvIGhlbHAgOykKCj4+ IFsgICAgMS4zOTM5NzJdIE1lbSBhYm9ydCBpbmZvOgo+PiBbICAgIDEuMzk2NzgzXSAgIEVTUiA9 IDB4OTYwMDAwMDcKPj4gWyAgICAxLjM5OTg1OV0gICBFQyA9IDB4MjU6IERBQlQgKGN1cnJlbnQg RUwpLCBJTCA9IDMyIGJpdHMKPj4gWyAgICAxLjQwNTIxNV0gICBTRVQgPSAwLCBGblYgPSAwCj4+ IFsgICAgMS40MDgyOTBdICAgRUEgPSAwLCBTMVBUVyA9IDAKPj4gWyAgICAxLjQxMTQ1M10gRGF0 YSBhYm9ydCBpbmZvOgo+PiBbICAgIDEuNDE0MzUyXSAgIElTViA9IDAsIElTUyA9IDB4MDAwMDAw MDcKPj4gWyAgICAxLjQxODIxNl0gICBDTSA9IDAsIFduUiA9IDAKPj4gWyAgICAxLjQyMTIwNV0g c3dhcHBlciBwZ3RhYmxlOiA0ayBwYWdlcywgNDgtYml0IFZBcywgCj4+IHBnZHA9MDAwMDAwMDA4 MzY5YzAwMAo+PiBbICAgIDEuNDI3OTY2XSBbZmZmZjgwMDAxMjEzMjAwMF0gcGdkPTAwMDAwMDIw ZmZmZmYwMDMsIAo+PiBwNGQ9MDAwMDAwMjBmZmZmZjAwMywgcHVkPTAwMDAwMDIwZmZmZmUwMDMs IHBtZD0wMDAwMDAyMGZmZmZhMDAzLCAKPj4gcHRlPTAwMDAwMDAwMDAwMDAwMDAKPj4gWyAgICAx LjQ0MDYxOF0gSW50ZXJuYWwgZXJyb3I6IE9vcHM6IDk2MDAwMDA3IFsjMV0gUFJFRU1QVCBTTVAK Pj4gWyAgICAxLjQ0NjIzOV0gTW9kdWxlcyBsaW5rZWQgaW46Cj4+IFsgICAgMS40NDkzMjBdIENQ VTogMSBQSUQ6IDEgQ29tbTogc3dhcHBlci8wIE5vdCB0YWludGVkIAo+PiA1LjEwLjAtcmMzLTAw MTAxLWcyZjM3OGRiNWM4OSAjMTkxCj4+IFsgICAgMS40NTc0ODRdIEhhcmR3YXJlIG5hbWU6IEtv bnRyb24gU01BUkMtc0FMMjggKFNpbmdsZSBQSFkpIG9uIAo+PiBTTUFSQyBFdmFsIDIuMCBjYXJy aWVyIChEVCkKPj4gWyAgICAxLjQ2NTgyN10gcHN0YXRlOiAyMDAwMDA4NSAobnpDdiBkYUlmIC1Q QU4gLVVBTyAtVENPIEJUWVBFPS0tKQo+PiBbICAgIDEuNDcxODkyXSBwYyA6IHBjaV9nZW5lcmlj X2NvbmZpZ19yZWFkKzB4MzgvMHhlMAo+PiBbICAgIDEuNDc2NzIzXSBsciA6IHBjaV9nZW5lcmlj X2NvbmZpZ19yZWFkKzB4MjQvMHhlMAo+PiBbICAgIDEuNDgxNTUzXSBzcCA6IGZmZmY4MDAwMTIx MWI5MjAKPj4gWyAgICAxLjQ4NDg5MV0geDI5OiBmZmZmODAwMDEyMTFiOTIwIHgyODogMDAwMDAw MDAwMDAwMDAwMAo+PiBbICAgIDEuNDkwMjUyXSB4Mjc6IGZmZmY4MDAwMTE2YTA0YmMgeDI2OiAw MDAwMDAwMDAwMDAwMDAwCj4+IFsgICAgMS40OTU2MTJdIHgyNTogMDAwMDAwMDAwMDAwMDAwMSB4 MjQ6IGZmZmY4MDAwMTIxMWJhNTQKPj4gWyAgICAxLjUwMDk3Ml0geDIzOiBmZmZmMDAyMDAwOWMz ODAwIHgyMjogMDAwMDAwMDAwMDAwMDAwMAo+PiBbICAgIDEuNTA2MzMyXSB4MjE6IDAwMDAwMDAw MDAwMDAwODcgeDIwOiBmZmZmODAwMDEyMTFiOTk0Cj4+IFsgICAgMS41MTE2OTJdIHgxOTogMDAw MDAwMDAwMDAwMDAwNCB4MTg6IDAwMDAwMDAwMDAwMDAwMDAKPj4gWyAgICAxLjUxNzA1Ml0geDE3 OiAwMDAwMDAwMDAwMDAwMDAwIHgxNjogMDAwMDAwMDBkNWVkZmJjMQo+PiBbICAgIDEuNTIyNDEy XSB4MTU6IGZmZmZmZmZmZmZmZmZmZmYgeDE0OiBmZmZmODAwMDExY2Y5OTQ4Cj4+IFsgICAgMS41 Mjc3NzJdIHgxMzogZmZmZjAwMjAwMDMwNWExYyB4MTI6IDAwMDAwMDAwMDAwMDAwMzAKPj4gWyAg ICAxLjUzMzEzMl0geDExOiAwMTAxMDEwMTAxMDEwMTAxIHgxMDogN2Y3ZjdmN2Y3ZjdmN2Y3Zgo+ PiBbICAgIDEuNTM4NDkxXSB4OSA6IDJjNmI3MTczNjI2ZDY4NmYgeDggOiAwMDAwMDAwMDAwMDBl YTYwCj4+IFsgICAgMS41NDM4NTFdIHg3IDogZmZmZjgwMDAxMjExYmE1NCB4NiA6IDAwMDAwMDAw MDAwMDAwMDAKPj4gWyAgICAxLjU0OTIxMV0geDUgOiAwMDAwMDAwMDAwMDAwMDAwIHg0IDogZmZm ZjgwMDAxMjEzMTAwMAo+PiBbICAgIDEuNTU0NTcwXSB4MyA6IDAwMDAwMDAwMDAwMDAwMDAgeDIg OiAwMDAwMDAwMDAwMDAwMDAwCj4+IFsgICAgMS41NTk5MzBdIHgxIDogMDAwMDAwMDAwMDAwMTAw MCB4MCA6IGZmZmY4MDAwMTIxMzIwMDAKPj4gWyAgICAxLjU2NTI5MF0gQ2FsbCB0cmFjZToKPj4g WyAgICAxLjU2Nzc1Ml0gIHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkKzB4MzgvMHhlMAo+PiBbICAg IDEuNTcyMjMzXSAgcGNpX2J1c19yZWFkX2NvbmZpZ19kd29yZCsweDg0LzB4ZDgKPj4gWyAgICAx LjU3Njg5MF0gIHBjaV9idXNfZ2VuZXJpY19yZWFkX2Rldl92ZW5kb3JfaWQrMHgzNC8weDFiMAo+ PiBbICAgIDEuNTgyNDIzXSAgcGNpX2J1c19yZWFkX2Rldl92ZW5kb3JfaWQrMHg0Yy8weDcwCj4+ IFsgICAgMS41ODcxNjddICBwY2lfc2Nhbl9zaW5nbGVfZGV2aWNlKzB4ODQvMHhlMAo+PiBbICAg IDEuNTkxNTU5XSAgcGNpX3NjYW5fc2xvdCsweDZjLzB4MTIwCj4+IFsgICAgMS41OTUyNTBdICBw Y2lfc2Nhbl9jaGlsZF9idXNfZXh0ZW5kKzB4NTQvMHgyOTgKPj4gWyAgICAxLjU5OTk5NF0gIHBj aV9zY2FuX3Jvb3RfYnVzX2JyaWRnZSsweGQ0LzB4ZjAKPj4gWyAgICAxLjYwNDU2Ml0gIHBjaV9o b3N0X3Byb2JlKzB4MTgvMHhiMAo+PiBbICAgIDEuNjA4MjU0XSAgcGNpX2hvc3RfY29tbW9uX3By b2JlKzB4MTNjLzB4MWEwCj4+IFsgICAgMS42MTI3MzVdICBwbGF0Zm9ybV9kcnZfcHJvYmUrMHg1 NC8weGE4Cj4+IFsgICAgMS42MTY3NzddICByZWFsbHlfcHJvYmUrMHhlNC8weDNiOAo+PiBbICAg IDEuNjIwMzgwXSAgZHJpdmVyX3Byb2JlX2RldmljZSsweDU4LzB4YjgKPj4gWyAgICAxLjYyNDUw OV0gIGRldmljZV9kcml2ZXJfYXR0YWNoKzB4NzQvMHg4MAo+PiBbICAgIDEuNjI4NzI1XSAgX19k cml2ZXJfYXR0YWNoKzB4NTgvMHhlMAo+PiBbICAgIDEuNjMyNTAzXSAgYnVzX2Zvcl9lYWNoX2Rl disweDc0LzB4YzgKPj4gWyAgICAxLjYzNjM2OV0gIGRyaXZlcl9hdHRhY2grMHgyNC8weDMwCj4+ IFsgICAgMS42Mzk5NzJdICBidXNfYWRkX2RyaXZlcisweDE4Yy8weDFmMAo+PiBbICAgIDEuNjQz ODM4XSAgZHJpdmVyX3JlZ2lzdGVyKzB4NjQvMHgxMjAKPj4gWyAgICAxLjY0NzcwNF0gIF9fcGxh dGZvcm1fZHJpdmVyX3JlZ2lzdGVyKzB4NDgvMHg1OAo+PiBbICAgIDEuNjUyNDQ5XSAgZ2VuX3Bj aV9kcml2ZXJfaW5pdCsweDFjLzB4MjgKPj4gWyAgICAxLjY1NjU4MF0gIGRvX29uZV9pbml0Y2Fs bCsweDRjLzB4MmMwCj4+IFsgICAgMS42NjA0NDddICBrZXJuZWxfaW5pdF9mcmVlYWJsZSsweDFl NC8weDI1MAo+PiBbICAgIDEuNjY0ODQwXSAga2VybmVsX2luaXQrMHgxNC8weDExOAo+PiBbICAg IDEuNjY4MzU1XSAgcmV0X2Zyb21fZm9yaysweDEwLzB4MzQKPj4gWyAgICAxLjY3MTk2MV0gQ29k ZTogNzEwMDA2N2YgNTQwMDAxYzAgNzEwMDBhN2YgNTQwMDAzMDAgKGI5NDAwMDAxKQo+PiBbICAg IDEuNjc4MTE0XSAtLS1bIGVuZCB0cmFjZSAwYWNhMWIwNDg2NjFlOGIzIF0tLS0KPj4gWyAgICAx LjY4Mjc3MF0gbm90ZTogc3dhcHBlci8wWzFdIGV4aXRlZCB3aXRoIHByZWVtcHRfY291bnQgMQo+ PiBbICAgIDEuNjg4MzA1XSBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogQXR0ZW1wdGVkIHRv IGtpbGwgaW5pdCEgCj4+IGV4aXRjb2RlPTB4MDAwMDAwMGIKPj4gWyAgICAxLjY5NjAzMV0gU01Q OiBzdG9wcGluZyBzZWNvbmRhcnkgQ1BVcwo+PiBbICAgIDEuNjk5OTg5XSBLZXJuZWwgT2Zmc2V0 OiBkaXNhYmxlZAo+PiBbICAgIDEuNzAzNTAzXSBDUFUgZmVhdHVyZXM6IDB4MDI0MDAyMiw2MTAw NjAwOAo+PiBbICAgIDEuNzA3ODA2XSBNZW1vcnkgTGltaXQ6IG5vbmUKPj4gWyAgICAxLjcxMDg4 NF0gLS0tWyBlbmQgS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEF0dGVtcHRlZCB0byBraWxs IAo+PiBpbml0ISBleGl0Y29kZT0weDAwMDAwMDBiIF0tLS0KPj4gCj4+IFRoZXJlIGlzIGEgTFMx MDI4QSBldmFsIGJvYXJkIGluIGtlcm5lbGNpIGhlcmU6Cj4+IGh0dHBzOi8vbGF2YWxhYi5ueHAu Y29tL3NjaGVkdWxlci9qb2IvMTcwNTY2Cj4+IAo+PiBJIGFjdHVhbGx5IGhhdmUgdGhpcyBib2Fy ZCB3aGljaCBhbHNvIGhhdmUgYSBMUzEwMjhBIFNvQzoKPj4gaHR0cHM6Ly9sYXZhbGFiLmtvbnRy b24uY29tL3NjaGVkdWxlci9qb2IvMTc3MQo+PiAKPj4gQnV0IGluIHRoZSBsYXR0ZXIgeW91IHdv bid0IHNlZSBtdWNoIGJlY2F1c2UgZWFybHljb24gaXNuJ3QgYWN0aXZlLiAKPj4gW0knbQo+PiBh Ym91dCB0byBmaXggdGhhdC5dCj4+IAo+PiBCeSByZXZlcnRpbmcgcGF0Y2ggMS81LCB0aGUgYm9h cmQgd2lsbCB3b3JrIGFnYWluLgo+PiAKPj4gLW1pY2hhZWwKPj4gCj4+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0Cj4+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+PiBodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK Ci0tIAotbWljaGFlbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1yb2NrY2hpcAo= 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=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4CD79C4361B for ; Wed, 9 Dec 2020 13:09:43 +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 056DF23B45 for ; Wed, 9 Dec 2020 13:09:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 056DF23B45 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=walle.cc 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-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-ID:References:In-Reply-To:Subject:To:From: Date:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=da/hfRYgrKg/RtRGa6C8Yel3M65v8mp3jaGdO4ydHyc=; b=VZy9cZ2oEpjzTugIfwzU8pdGk IowMUL37+42P/armumebEIqf2SQKWQv+YQ8Jik+5AcDrd0uEyNboWPQtfxbwL4z9AUqv3czPHJgGZ n/3mikOwkzEkzgpROq5U9LjYt348tCG5D++Uu5JG5X1Wb7eU1fY5fHxTvrgRJRC5aqDNgT4ju4OeV OWwXOT3D9AK3evRHMy6Wez2rU42tZonKWArKntlIsosmEi5uUNozNUjk3bMTo/ifw/IBJR9LHXL5X 3sTGrTtrJAw8nqwErvMXKYSbNwJVwMU/fPpq4ZjYkgIXTs1Q7ojFXyW81BT1jUnpraWmCFJgHene5 56ZDlyI7A==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kmzCZ-0002JT-3A; Wed, 09 Dec 2020 13:08:15 +0000 Received: from ssl.serverraum.org ([2a01:4f8:151:8464::1:2]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kmzCU-0002Ij-4f; Wed, 09 Dec 2020 13:08:12 +0000 Received: from ssl.serverraum.org (web.serverraum.org [172.16.0.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.serverraum.org (Postfix) with ESMTPSA id BE76F22F9C; Wed, 9 Dec 2020 14:08:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walle.cc; s=mail2016061301; t=1607519283; 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=8C9tDdYTNoyJympH+rs/jhco5iFhg1hGy9hBi61it4E=; b=GjAaU9darDCAuq8kixcG2UQMveso5X5FejCBvdxp8xRdQDJ6sRe+weMgZak2IjsDb6nMUN 21TOnWI8qOeVoZnz7GgKsSqR6rmSCcuKiG8gChLY05zPLi3dfRcmeE3bz7iO90HpJjAK8P 1D7hrQFsyFZhiStqf5p3Hwo6eib8dEA= MIME-Version: 1.0 Date: Wed, 09 Dec 2020 14:08:00 +0100 From: Michael Walle To: Bjorn Helgaas Subject: Re: [PATCH v6 0/5] PCI: Unify ECAM constants in native PCI Express drivers In-Reply-To: <20201209123654.GA2403346@bjorn-Precision-5520> References: <20201209123654.GA2403346@bjorn-Precision-5520> User-Agent: Roundcube Webmail/1.4.9 Message-ID: <595028ce6b04ea589f802ff61d8710f0@walle.cc> X-Sender: michael@walle.cc X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201209_080810_457289_33B8AE8A X-CRM114-Status: GOOD ( 25.24 ) 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: kw@linux.com, heiko@sntech.de, benh@kernel.crashing.org, shawn.lin@rock-chips.com, Alexandru Marginean , paulus@samba.org, thomas.petazzoni@bootlin.com, jonnyc@amazon.com, toan@os.amperecomputing.com, will@kernel.org, robh@kernel.org, lorenzo.pieralisi@arm.com, mpe@ellerman.id.au, michal.simek@xilinx.com, linux-rockchip@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, rjui@broadcom.com, f.fainelli@gmail.com, linux-rpi-kernel@lists.infradead.org, Jonathan.Cameron@huawei.com, bhelgaas@google.com, jonathan.derrick@intel.com, sbranden@broadcom.com, wangzhou1@hisilicon.com, rrichter@marvell.com, Vladimir Oltean , linuxppc-dev@lists.ozlabs.org, nsaenzjulienne@suse.de Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org WysgVmxhZGltaXIgYW5kIEFsZXhdCgpBbSAyMDIwLTEyLTA5IDEzOjM2LCBzY2hyaWViIEJqb3Ju IEhlbGdhYXM6Cj4gT24gVHVlLCBEZWMgMDgsIDIwMjAgYXQgMDQ6NDE6NTBQTSArMDEwMCwgTWlj aGFlbCBXYWxsZSB3cm90ZToKPj4gPk9uIFN1biwgMjkgTm92IDIwMjAgMjM6MDc6MzggKzAwMDAs IEtyenlzenRvZiBXaWxjennFhHNraSB3cm90ZToKPj4gPj4gVW5pZnkgRUNBTS1yZWxhdGVkIGNv bnN0YW50cyBpbnRvIGEgc2luZ2xlIHNldCBvZiBzdGFuZGFyZCBjb25zdGFudHMKPj4gPj4gZGVm aW5pbmcgbWVtb3J5IGFkZHJlc3Mgc2hpZnQgdmFsdWVzIGZvciB0aGUgYnl0ZS1sZXZlbCBhZGRy ZXNzIHRoYXQgY2FuCj4+ID4+IGJlIHVzZWQgd2hlbiBhY2Nlc3NpbmcgdGhlIFBDSSBFeHByZXNz IENvbmZpZ3VyYXRpb24gU3BhY2UsIGFuZCB0aGVuCj4+ID4+IG1vdmUgbmF0aXZlIFBDSSBFeHBy ZXNzIGNvbnRyb2xsZXIgZHJpdmVycyB0byB1c2UgbmV3bHkgaW50cm9kdWNlZAo+PiA+PiBkZWZp bml0aW9ucyByZXRpcmluZyBhbnkgZHJpdmVyLXNwZWNpZmljIG9uZXMuCj4+ID4+Cj4+ID4+IFRo ZSBFQ0FNICgiRW5oYW5jZWQgQ29uZmlndXJhdGlvbiBBY2Nlc3MgTWVjaGFuaXNtIikgaXMgZGVm aW5lZCBieSB0aGUKPj4gPj4gUENJIEV4cHJlc3Mgc3BlY2lmaWNhdGlvbiAoc2VlIFBDSSBFeHBy ZXNzIEJhc2UgU3BlY2lmaWNhdGlvbiwgUmV2aXNpb24KPj4gPj4gNS4wLCBWZXJzaW9uIDEuMCwg U2VjdGlvbiA3LjIuMiwgcC4gNjc2KSwgdGh1cyBtb3N0IGhhcmR3YXJlIHNob3VsZAo+PiA+PiBp bXBsZW1lbnQgaXQgdGhlIHNhbWUgd2F5Lgo+PiA+Pgo+PiA+PiBbLi4uXQo+PiA+Cj4+ID5BcHBs aWVkIHRvIHBjaS9lY2FtLCB0aGFua3MhCj4+ID4KPj4gPlsxLzVdIFBDSTogVW5pZnkgRUNBTSBj b25zdGFudHMgaW4gbmF0aXZlIFBDSSBFeHByZXNzIGRyaXZlcnMKPj4gPiAgICAgIGh0dHBzOi8v Z2l0Lmtlcm5lbC5vcmcvbHBpZXJhbGlzaS9wY2kvYy9mM2MwN2NmNjkyCj4gCj4+IFBhdGNoIDEv NSBicmVha3MgTFMxMDI4QSBib2FyZHM6Cj4+IAo+PiBbLi5dCj4+IFsgICAgMS4xNDQ0MjZdIHBj aS1ob3N0LWdlbmVyaWMgMWYwMDAwMDAwLnBjaWU6IGhvc3QgYnJpZGdlIAo+PiAvc29jL3BjaWVA MWYwMDAwMDAwIHJhbmdlczoKPj4gWyAgICAxLjE1MjI3Nl0gcGNpLWhvc3QtZ2VuZXJpYyAxZjAw MDAwMDAucGNpZTogICAgICBNRU0gCj4+IDB4MDFmODAwMDAwMC4uMHgwMWY4MTVmZmZmIC0+IDB4 MDAwMDAwMDAwMAo+PiBbICAgIDEuMTYxMTYxXSBwY2ktaG9zdC1nZW5lcmljIDFmMDAwMDAwMC5w Y2llOiAgICAgIE1FTSAKPj4gMHgwMWY4MTYwMDAwLi4weDAxZjgxY2ZmZmYgLT4gMHgwMDAwMDAw MDAwCj4+IFsgICAgMS4xNzAwNDNdIHBjaS1ob3N0LWdlbmVyaWMgMWYwMDAwMDAwLnBjaWU6ICAg ICAgTUVNIAo+PiAweDAxZjgxZDAwMDAuLjB4MDFmODFlZmZmZiAtPiAweDAwMDAwMDAwMDAKPj4g WyAgICAxLjE3ODkyNF0gcGNpLWhvc3QtZ2VuZXJpYyAxZjAwMDAwMDAucGNpZTogICAgICBNRU0g Cj4+IDB4MDFmODFmMDAwMC4uMHgwMWY4MjBmZmZmIC0+IDB4MDAwMDAwMDAwMAo+PiBbICAgIDEu MTg3ODA1XSBwY2ktaG9zdC1nZW5lcmljIDFmMDAwMDAwMC5wY2llOiAgICAgIE1FTSAKPj4gMHgw MWY4MjEwMDAwLi4weDAxZjgyMmZmZmYgLT4gMHgwMDAwMDAwMDAwCj4+IFsgICAgMS4xOTY2ODZd IHBjaS1ob3N0LWdlbmVyaWMgMWYwMDAwMDAwLnBjaWU6ICAgICAgTUVNIAo+PiAweDAxZjgyMzAw MDAuLjB4MDFmODI0ZmZmZiAtPiAweDAwMDAwMDAwMDAKPj4gWyAgICAxLjIwNTU2Ml0gcGNpLWhv c3QtZ2VuZXJpYyAxZjAwMDAwMDAucGNpZTogICAgICBNRU0gCj4+IDB4MDFmYzAwMDAwMC4uMHgw MWZjM2ZmZmZmIC0+IDB4MDAwMDAwMDAwMAo+IAo+IENhbiB5b3UgYXR0YWNoIHlvdXIgRFQ/ClRo YXQgd291bGQgYmUgdGhlIGZvbGxvd2luZzoKaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2Nt L2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0L3RyZWUvYXJjaC9hcm02NC9ib290 L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTAyOGEta29udHJvbi1zbDI4LXZhcjMtYWRzMi5kdHMKCllv dSdsbCBmaW5kIHRoZSBQQ0kgZGV2aWNlcy9icmlkZ2UgaW46Cmh0dHBzOi8vZ2l0Lmtlcm5lbC5v cmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdC90cmVlL2FyY2gv YXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwMjhhLmR0c2kKCj4gVGhlIGZhY3QgdGhh dCBhbGwgdGhlc2Ugd2luZG93cyBtYXAgdG8gUENJCj4gYnVzIGFkZHJlc3MgMCBsb29rcyBicm9r ZW4uICBQcmlvciB0byBwYXRjaCAxLzUsIGRvIHRoZSBkZXZpY2VzIGJlbG93Cj4gdGhpcyBicmlk Z2UgYWN0dWFsbHkgd29yaz8KClllcywgdGhlc2Ugc2hvdWxkIGJlIHRoZSBvbmJvYXJkIG5ldHdv cmsgY29udHJvbGxlciBhbmQgZXRoZXJuZXQKc3dpdGNoLgoKPiBMb29rcyBsaWtlIHlvdSdyZSB1 c2luZyB0aGUgcGNpLWhvc3QtZ2VuZXJpYyBkcml2ZXI7IHdoaWNoIG9mIHRoZQo+IC5jb21wYXRp YmxlIHN0cmluZ3MgKHBjaS1ob3N0LWNhbS1nZW5lcmljLCBwY2ktaG9zdC1lY2FtLWdlbmVyaWMs Cj4gbWFydmVsbCxhcm1hZGE4ay1wY2llLWVjYW0sIGV0YykgYXJlIHlvdSB1c2luZz8gIChJIHRo aW5rIHRoYXQncyBpbgo+IHRoZSBEVCBhcyB3ZWxsLikKCmNvbXBhdGlibGUgPSAicGNpLWhvc3Qt ZWNhbS1nZW5lcmljIjsKCj4+IFsgICAgMS4yMTQ0NjVdIHBjaS1ob3N0LWdlbmVyaWMgMWYwMDAw MDAwLnBjaWU6IEVDQU0gYXQgW21lbSAKPj4gMHgxZjAwMDAwMDAtMHgxZjAwZmZmZmZdIGZvciBb YnVzIDAwXQo+IAo+IAo+PiBbICAgIDEuMjIzMzE4XSBwY2ktaG9zdC1nZW5lcmljIDFmMDAwMDAw MC5wY2llOiBQQ0kgaG9zdCBicmlkZ2UgdG8gYnVzIAo+PiAwMDAwOjAwCj4+IFsgICAgMS4yMzAz NTBdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2J1cyAwMF0KPj4gWyAgICAx LjIzNTYyNV0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIAo+PiAweDFm ODAwMDAwMC0weDFmODE1ZmZmZl0gKGJ1cyBhZGRyZXNzIFsweDAwMDAwMDAwLTB4MDAxNWZmZmZd KQo+PiBbICAgIDEuMjQ2MDc3XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtt ZW0gCj4+IDB4MWY4MTYwMDAwLTB4MWY4MWNmZmZmIHByZWZdIChidXMgYWRkcmVzcyBbMHgwMDAw MDAwMC0weDAwMDZmZmZmXSkKPj4gWyAgICAxLjI1Njk2OV0gcGNpX2J1cyAwMDAwOjAwOiByb290 IGJ1cyByZXNvdXJjZSBbbWVtIAo+PiAweDFmODFkMDAwMC0weDFmODFlZmZmZl0gKGJ1cyBhZGRy ZXNzIFsweDAwMDAwMDAwLTB4MDAwMWZmZmZdKQo+PiBbICAgIDEuMjY3NDI3XSBwY2lfYnVzIDAw MDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gCj4+IDB4MWY4MWYwMDAwLTB4MWY4MjBmZmZm IHByZWZdIChidXMgYWRkcmVzcyBbMHgwMDAwMDAwMC0weDAwMDFmZmZmXSkKPj4gWyAgICAxLjI3 ODMyNl0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIAo+PiAweDFmODIx MDAwMC0weDFmODIyZmZmZl0gKGJ1cyBhZGRyZXNzIFsweDAwMDAwMDAwLTB4MDAwMWZmZmZdKQo+ PiBbICAgIDEuMjg4Nzc5XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0g Cj4+IDB4MWY4MjMwMDAwLTB4MWY4MjRmZmZmIHByZWZdIChidXMgYWRkcmVzcyBbMHgwMDAwMDAw MC0weDAwMDFmZmZmXSkKPj4gWyAgICAxLjI5OTY2OV0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1 cyByZXNvdXJjZSBbbWVtIAo+PiAweDFmYzAwMDAwMC0weDFmYzNmZmZmZl0gKGJ1cyBhZGRyZXNz IFsweDAwMDAwMDAwLTB4MDAzZmZmZmZdKQo+PiBbICAgIDEuMzEwMTM4XSBwY2kgMDAwMDowMDow MC4wOiBbMTk1NzplMTAwXSB0eXBlIDAwIGNsYXNzIDB4MDIwMDAxCj4+IFsgICAgMS4zMTYyMzRd IHBjaSAwMDAwOjAwOjAwLjA6IEJBUiAwOiBbbWVtIDB4MWY4MDAwMDAwLTB4MWY4MDNmZmZmIAo+ PiA2NGJpdF0gKGZyb20gRW5oYW5jZWQgQWxsb2NhdGlvbiwgcHJvcGVydGllcyAweDApCj4+IFsg ICAgMS4zMjY3NzZdIHBjaSAwMDAwOjAwOjAwLjA6IEJBUiAyOiBbbWVtIDB4MWY4MTYwMDAwLTB4 MWY4MTZmZmZmIAo+PiA2NGJpdCBwcmVmXSAoZnJvbSBFbmhhbmNlZCBBbGxvY2F0aW9uLCBwcm9w ZXJ0aWVzIDB4MSkKPj4gWyAgICAxLjMzNzc1OV0gcGNpIDAwMDA6MDA6MDAuMDogVkYgQkFSIDA6 IFttZW0gCj4+IDB4MWY4MWQwMDAwLTB4MWY4MWRmZmZmIDY0Yml0XSAoZnJvbSBFbmhhbmNlZCBB bGxvY2F0aW9uLCBwcm9wZXJ0aWVzIAo+PiAweDQpCj4+IFsgICAgMS4zNDg1NjNdIHBjaSAwMDAw OjAwOjAwLjA6IFZGIEJBUiAyOiBbbWVtIAo+PiAweDFmODFmMDAwMC0weDFmODFmZmZmZiA2NGJp dCBwcmVmXSAoZnJvbSBFbmhhbmNlZCBBbGxvY2F0aW9uLCAKPj4gcHJvcGVydGllcyAweDMpCj4+ IFsgICAgMS4zNTk4MjFdIHBjaSAwMDAwOjAwOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAg RDNob3QKPj4gWyAgICAxLjM2NTM2OF0gcGNpIDAwMDA6MDA6MDAuMDogVkYobikgQkFSMCBzcGFj ZTogW21lbSAKPj4gMHgxZjgxZDAwMDAtMHgxZjgxZWZmZmYgNjRiaXRdIChjb250YWlucyBCQVIw IGZvciAyIFZGcykKPj4gWyAgICAxLjM3NTM4MV0gcGNpIDAwMDA6MDA6MDAuMDogVkYobikgQkFS MiBzcGFjZTogW21lbSAKPj4gMHgxZjgxZjAwMDAtMHgxZjgyMGZmZmYgNjRiaXQgcHJlZl0gKGNv bnRhaW5zIEJBUjIgZm9yIDIgVkZzKQo+PiBbICAgIDEuMzg1OTgzXSBVbmFibGUgdG8gaGFuZGxl IGtlcm5lbCBwYWdpbmcgcmVxdWVzdCBhdCB2aXJ0dWFsIAo+PiBhZGRyZXNzIGZmZmY4MDAwMTIx MzIwMDAKPiAKPiBJZiBmZmZmODAwMDEyMTMyMDAwIHdlcmUgYW4gYWN0dWFsIEVDQU0gYWRkcmVz cywgd2Ugd291bGQgZXhwZWN0IHRoZQo+IGxvdyAyMCBiaXRzIHRvIGNvbnRhaW4gdGhlIGRldmlj ZSBudW1iZXIsIGZ1bmN0aW9uIG51bWJlciwgYW5kCj4gY29uZmlnIHJlZ2lzdGVyIG9mZnNldCwg aS5lLiwKPiAKPiAgIGRldiAgICgweGZmZmY4MDAwMTIxMzIwMDAgPj4gMTUpICYgMHgwMWYgPSAw eDYKPiAgIGZuICAgICgweGZmZmY4MDAwMTIxMzIwMDAgPj4gMTIpICYgMHgwMDcgPSAweDIKPiAg IHJlZyAgICgweGZmZmY4MDAwMTIxMzIwMDApICAgICAgICYgMHhmZmYgPSAwCj4gCj4gYnV0IHRo YXQncyBub24tc2Vuc2ljYWwgc2luY2Ugd2UgcHJvYmUgZm9yIGRldmljZXMgaW4gb3JkZXIuICBT byBtYXliZQo+IHRoaXMgaXMgYSBiYWQgcG9pbnRlciBzb21ld2hlcmUgZWxzZS4gIEkgbG9va2Vk IGF0IHBjaV9lY2FtX21hcF9idXMoKQo+IGJ1dCBkaWRuJ3Qgc2VlIGFuIG9idmlvdXMgcHJvYmxl bS4gIE1heWJlIHdlIGNvdWxkIGJydXRlLWZvcmNlIGRlYnVnCj4gdGhpcyBieSBhZGRpbmcgc29t ZSBwcmludGtzIHRoZXJlLgoKSSdtIG5vdCB0aGF0IGRlZXAgaW50byBQQ0ksIGJ1dCBpZiB5b3Ug Y291bGQgdGVsbCBtZSB3aGF0IHRvIGFkZCB3aGVyZSwKSSdtIGhhcHB5IHRvIGhlbHAgOykKCj4+ IFsgICAgMS4zOTM5NzJdIE1lbSBhYm9ydCBpbmZvOgo+PiBbICAgIDEuMzk2NzgzXSAgIEVTUiA9 IDB4OTYwMDAwMDcKPj4gWyAgICAxLjM5OTg1OV0gICBFQyA9IDB4MjU6IERBQlQgKGN1cnJlbnQg RUwpLCBJTCA9IDMyIGJpdHMKPj4gWyAgICAxLjQwNTIxNV0gICBTRVQgPSAwLCBGblYgPSAwCj4+ IFsgICAgMS40MDgyOTBdICAgRUEgPSAwLCBTMVBUVyA9IDAKPj4gWyAgICAxLjQxMTQ1M10gRGF0 YSBhYm9ydCBpbmZvOgo+PiBbICAgIDEuNDE0MzUyXSAgIElTViA9IDAsIElTUyA9IDB4MDAwMDAw MDcKPj4gWyAgICAxLjQxODIxNl0gICBDTSA9IDAsIFduUiA9IDAKPj4gWyAgICAxLjQyMTIwNV0g c3dhcHBlciBwZ3RhYmxlOiA0ayBwYWdlcywgNDgtYml0IFZBcywgCj4+IHBnZHA9MDAwMDAwMDA4 MzY5YzAwMAo+PiBbICAgIDEuNDI3OTY2XSBbZmZmZjgwMDAxMjEzMjAwMF0gcGdkPTAwMDAwMDIw ZmZmZmYwMDMsIAo+PiBwNGQ9MDAwMDAwMjBmZmZmZjAwMywgcHVkPTAwMDAwMDIwZmZmZmUwMDMs IHBtZD0wMDAwMDAyMGZmZmZhMDAzLCAKPj4gcHRlPTAwMDAwMDAwMDAwMDAwMDAKPj4gWyAgICAx LjQ0MDYxOF0gSW50ZXJuYWwgZXJyb3I6IE9vcHM6IDk2MDAwMDA3IFsjMV0gUFJFRU1QVCBTTVAK Pj4gWyAgICAxLjQ0NjIzOV0gTW9kdWxlcyBsaW5rZWQgaW46Cj4+IFsgICAgMS40NDkzMjBdIENQ VTogMSBQSUQ6IDEgQ29tbTogc3dhcHBlci8wIE5vdCB0YWludGVkIAo+PiA1LjEwLjAtcmMzLTAw MTAxLWcyZjM3OGRiNWM4OSAjMTkxCj4+IFsgICAgMS40NTc0ODRdIEhhcmR3YXJlIG5hbWU6IEtv bnRyb24gU01BUkMtc0FMMjggKFNpbmdsZSBQSFkpIG9uIAo+PiBTTUFSQyBFdmFsIDIuMCBjYXJy aWVyIChEVCkKPj4gWyAgICAxLjQ2NTgyN10gcHN0YXRlOiAyMDAwMDA4NSAobnpDdiBkYUlmIC1Q QU4gLVVBTyAtVENPIEJUWVBFPS0tKQo+PiBbICAgIDEuNDcxODkyXSBwYyA6IHBjaV9nZW5lcmlj X2NvbmZpZ19yZWFkKzB4MzgvMHhlMAo+PiBbICAgIDEuNDc2NzIzXSBsciA6IHBjaV9nZW5lcmlj X2NvbmZpZ19yZWFkKzB4MjQvMHhlMAo+PiBbICAgIDEuNDgxNTUzXSBzcCA6IGZmZmY4MDAwMTIx MWI5MjAKPj4gWyAgICAxLjQ4NDg5MV0geDI5OiBmZmZmODAwMDEyMTFiOTIwIHgyODogMDAwMDAw MDAwMDAwMDAwMAo+PiBbICAgIDEuNDkwMjUyXSB4Mjc6IGZmZmY4MDAwMTE2YTA0YmMgeDI2OiAw MDAwMDAwMDAwMDAwMDAwCj4+IFsgICAgMS40OTU2MTJdIHgyNTogMDAwMDAwMDAwMDAwMDAwMSB4 MjQ6IGZmZmY4MDAwMTIxMWJhNTQKPj4gWyAgICAxLjUwMDk3Ml0geDIzOiBmZmZmMDAyMDAwOWMz ODAwIHgyMjogMDAwMDAwMDAwMDAwMDAwMAo+PiBbICAgIDEuNTA2MzMyXSB4MjE6IDAwMDAwMDAw MDAwMDAwODcgeDIwOiBmZmZmODAwMDEyMTFiOTk0Cj4+IFsgICAgMS41MTE2OTJdIHgxOTogMDAw MDAwMDAwMDAwMDAwNCB4MTg6IDAwMDAwMDAwMDAwMDAwMDAKPj4gWyAgICAxLjUxNzA1Ml0geDE3 OiAwMDAwMDAwMDAwMDAwMDAwIHgxNjogMDAwMDAwMDBkNWVkZmJjMQo+PiBbICAgIDEuNTIyNDEy XSB4MTU6IGZmZmZmZmZmZmZmZmZmZmYgeDE0OiBmZmZmODAwMDExY2Y5OTQ4Cj4+IFsgICAgMS41 Mjc3NzJdIHgxMzogZmZmZjAwMjAwMDMwNWExYyB4MTI6IDAwMDAwMDAwMDAwMDAwMzAKPj4gWyAg ICAxLjUzMzEzMl0geDExOiAwMTAxMDEwMTAxMDEwMTAxIHgxMDogN2Y3ZjdmN2Y3ZjdmN2Y3Zgo+ PiBbICAgIDEuNTM4NDkxXSB4OSA6IDJjNmI3MTczNjI2ZDY4NmYgeDggOiAwMDAwMDAwMDAwMDBl YTYwCj4+IFsgICAgMS41NDM4NTFdIHg3IDogZmZmZjgwMDAxMjExYmE1NCB4NiA6IDAwMDAwMDAw MDAwMDAwMDAKPj4gWyAgICAxLjU0OTIxMV0geDUgOiAwMDAwMDAwMDAwMDAwMDAwIHg0IDogZmZm ZjgwMDAxMjEzMTAwMAo+PiBbICAgIDEuNTU0NTcwXSB4MyA6IDAwMDAwMDAwMDAwMDAwMDAgeDIg OiAwMDAwMDAwMDAwMDAwMDAwCj4+IFsgICAgMS41NTk5MzBdIHgxIDogMDAwMDAwMDAwMDAwMTAw MCB4MCA6IGZmZmY4MDAwMTIxMzIwMDAKPj4gWyAgICAxLjU2NTI5MF0gQ2FsbCB0cmFjZToKPj4g WyAgICAxLjU2Nzc1Ml0gIHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkKzB4MzgvMHhlMAo+PiBbICAg IDEuNTcyMjMzXSAgcGNpX2J1c19yZWFkX2NvbmZpZ19kd29yZCsweDg0LzB4ZDgKPj4gWyAgICAx LjU3Njg5MF0gIHBjaV9idXNfZ2VuZXJpY19yZWFkX2Rldl92ZW5kb3JfaWQrMHgzNC8weDFiMAo+ PiBbICAgIDEuNTgyNDIzXSAgcGNpX2J1c19yZWFkX2Rldl92ZW5kb3JfaWQrMHg0Yy8weDcwCj4+ IFsgICAgMS41ODcxNjddICBwY2lfc2Nhbl9zaW5nbGVfZGV2aWNlKzB4ODQvMHhlMAo+PiBbICAg IDEuNTkxNTU5XSAgcGNpX3NjYW5fc2xvdCsweDZjLzB4MTIwCj4+IFsgICAgMS41OTUyNTBdICBw Y2lfc2Nhbl9jaGlsZF9idXNfZXh0ZW5kKzB4NTQvMHgyOTgKPj4gWyAgICAxLjU5OTk5NF0gIHBj aV9zY2FuX3Jvb3RfYnVzX2JyaWRnZSsweGQ0LzB4ZjAKPj4gWyAgICAxLjYwNDU2Ml0gIHBjaV9o b3N0X3Byb2JlKzB4MTgvMHhiMAo+PiBbICAgIDEuNjA4MjU0XSAgcGNpX2hvc3RfY29tbW9uX3By b2JlKzB4MTNjLzB4MWEwCj4+IFsgICAgMS42MTI3MzVdICBwbGF0Zm9ybV9kcnZfcHJvYmUrMHg1 NC8weGE4Cj4+IFsgICAgMS42MTY3NzddICByZWFsbHlfcHJvYmUrMHhlNC8weDNiOAo+PiBbICAg IDEuNjIwMzgwXSAgZHJpdmVyX3Byb2JlX2RldmljZSsweDU4LzB4YjgKPj4gWyAgICAxLjYyNDUw OV0gIGRldmljZV9kcml2ZXJfYXR0YWNoKzB4NzQvMHg4MAo+PiBbICAgIDEuNjI4NzI1XSAgX19k cml2ZXJfYXR0YWNoKzB4NTgvMHhlMAo+PiBbICAgIDEuNjMyNTAzXSAgYnVzX2Zvcl9lYWNoX2Rl disweDc0LzB4YzgKPj4gWyAgICAxLjYzNjM2OV0gIGRyaXZlcl9hdHRhY2grMHgyNC8weDMwCj4+ IFsgICAgMS42Mzk5NzJdICBidXNfYWRkX2RyaXZlcisweDE4Yy8weDFmMAo+PiBbICAgIDEuNjQz ODM4XSAgZHJpdmVyX3JlZ2lzdGVyKzB4NjQvMHgxMjAKPj4gWyAgICAxLjY0NzcwNF0gIF9fcGxh dGZvcm1fZHJpdmVyX3JlZ2lzdGVyKzB4NDgvMHg1OAo+PiBbICAgIDEuNjUyNDQ5XSAgZ2VuX3Bj aV9kcml2ZXJfaW5pdCsweDFjLzB4MjgKPj4gWyAgICAxLjY1NjU4MF0gIGRvX29uZV9pbml0Y2Fs bCsweDRjLzB4MmMwCj4+IFsgICAgMS42NjA0NDddICBrZXJuZWxfaW5pdF9mcmVlYWJsZSsweDFl NC8weDI1MAo+PiBbICAgIDEuNjY0ODQwXSAga2VybmVsX2luaXQrMHgxNC8weDExOAo+PiBbICAg IDEuNjY4MzU1XSAgcmV0X2Zyb21fZm9yaysweDEwLzB4MzQKPj4gWyAgICAxLjY3MTk2MV0gQ29k ZTogNzEwMDA2N2YgNTQwMDAxYzAgNzEwMDBhN2YgNTQwMDAzMDAgKGI5NDAwMDAxKQo+PiBbICAg IDEuNjc4MTE0XSAtLS1bIGVuZCB0cmFjZSAwYWNhMWIwNDg2NjFlOGIzIF0tLS0KPj4gWyAgICAx LjY4Mjc3MF0gbm90ZTogc3dhcHBlci8wWzFdIGV4aXRlZCB3aXRoIHByZWVtcHRfY291bnQgMQo+ PiBbICAgIDEuNjg4MzA1XSBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogQXR0ZW1wdGVkIHRv IGtpbGwgaW5pdCEgCj4+IGV4aXRjb2RlPTB4MDAwMDAwMGIKPj4gWyAgICAxLjY5NjAzMV0gU01Q OiBzdG9wcGluZyBzZWNvbmRhcnkgQ1BVcwo+PiBbICAgIDEuNjk5OTg5XSBLZXJuZWwgT2Zmc2V0 OiBkaXNhYmxlZAo+PiBbICAgIDEuNzAzNTAzXSBDUFUgZmVhdHVyZXM6IDB4MDI0MDAyMiw2MTAw NjAwOAo+PiBbICAgIDEuNzA3ODA2XSBNZW1vcnkgTGltaXQ6IG5vbmUKPj4gWyAgICAxLjcxMDg4 NF0gLS0tWyBlbmQgS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEF0dGVtcHRlZCB0byBraWxs IAo+PiBpbml0ISBleGl0Y29kZT0weDAwMDAwMDBiIF0tLS0KPj4gCj4+IFRoZXJlIGlzIGEgTFMx MDI4QSBldmFsIGJvYXJkIGluIGtlcm5lbGNpIGhlcmU6Cj4+IGh0dHBzOi8vbGF2YWxhYi5ueHAu Y29tL3NjaGVkdWxlci9qb2IvMTcwNTY2Cj4+IAo+PiBJIGFjdHVhbGx5IGhhdmUgdGhpcyBib2Fy ZCB3aGljaCBhbHNvIGhhdmUgYSBMUzEwMjhBIFNvQzoKPj4gaHR0cHM6Ly9sYXZhbGFiLmtvbnRy b24uY29tL3NjaGVkdWxlci9qb2IvMTc3MQo+PiAKPj4gQnV0IGluIHRoZSBsYXR0ZXIgeW91IHdv bid0IHNlZSBtdWNoIGJlY2F1c2UgZWFybHljb24gaXNuJ3QgYWN0aXZlLiAKPj4gW0knbQo+PiBh Ym91dCB0byBmaXggdGhhdC5dCj4+IAo+PiBCeSByZXZlcnRpbmcgcGF0Y2ggMS81LCB0aGUgYm9h cmQgd2lsbCB3b3JrIGFnYWluLgo+PiAKPj4gLW1pY2hhZWwKPj4gCj4+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0Cj4+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+PiBodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK Ci0tIAotbWljaGFlbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=