From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 50E44C02194 for ; Tue, 4 Feb 2025 13:37:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:Message-ID:References:In-Reply-To:Subject:Cc: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=kvBsIYlSRDocRThQe1QajLzrfnVwDIRPt2pu5vzVeio=; b=KieJddcD17fjBNL1L+TQ3VxIjZ 6TgNQT1kWfxVftCyufqpPKbX559C24fpzZ4u2P2NvCJLBYTmHz3MAjNVdPBVNX0BLCEJTlc3+W/ul 3NcmBTXp0ZpmLJ3KMOY00vkG29O1Ih9BXAuLc6luRocUOvjKHq1q9mBoXsp+K/1tIUJY3Pu/PQPXj olnE0kjxWcVaNzBxacOJTjjZQcnYd6tsWlnbmtZBcCz2YRoG2ffuLX6d3KGyKUI/rgMlogt154L5z GXGRtH+8bidaZu+ipzQ3JJHnAioMk09sPklxqdNm9PiQd8BGXUF0eG07Y9ATIK9mmEue8dsW+AZJ0 ixOX3iyg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tfJ6x-00000000YHQ-1dzA; Tue, 04 Feb 2025 13:37:07 +0000 Received: from mail.manjaro.org ([116.203.91.91]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tfJ5b-00000000YD3-3mtI; Tue, 04 Feb 2025 13:35:45 +0000 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=manjaro.org; s=2021; t=1738676141; 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=kvBsIYlSRDocRThQe1QajLzrfnVwDIRPt2pu5vzVeio=; b=w/OCtv96wqXzkV27OwKQajxsEG25scNCh4fWGsSiqz5jhj+QGewziS/h86EkJjztDYv4R2 RfGhv+VKM4YPjARKu9HpgRIg3AgwHbcyvMCGPFkbAJRA22P0aIhuA6J3Tx0wRVfs9eJdMr BgSyTyZuas03ZEfKbtnwf2CSXjKz0OnkgRDk/zzadjNJDkGRkHbutPgQ+v8nvpil68ZrJK 8wa3f/t3HnF89CJ/8zvAuagK6MEk7HX9bvnLwnhqpbGXDezQznEXDKYd1/TkUzIg35gLFE Eo63EE2hr1hIFOwy8PgeOEfGVVTgLSwbovyFajM9eSlK39WwAahWcaDtzjz7qQ== Date: Tue, 04 Feb 2025 14:35:40 +0100 From: Dragan Simic To: Quentin Schulz Cc: Quentin Schulz , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Jagan Teki , Niklas Cassel , Michael Riesch , Jonas Karlman , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski Subject: Re: [PATCH v4 3/4] arm64: dts: rockchip: add overlay tests for Rock 5B PCIe overlays In-Reply-To: <3de1cc52-5579-41b1-a333-0c4e81f96fbd@cherry.de> References: <20250131-pre-ict-jaguar-v4-0-c971e2852e8d@cherry.de> <20250131-pre-ict-jaguar-v4-3-c971e2852e8d@cherry.de> <77b5d0efa6e56bb391575aeeb4d1be80@manjaro.org> <3de1cc52-5579-41b1-a333-0c4e81f96fbd@cherry.de> Message-ID: X-Sender: dsimic@manjaro.org Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Authentication-Results: ORIGINATING; auth=pass smtp.auth=dsimic@manjaro.org smtp.mailfrom=dsimic@manjaro.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250204_053544_308205_CD83A48F X-CRM114-Status: GOOD ( 56.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hello Quentin, On 2025-02-04 13:20, Quentin Schulz wrote: > On 2/4/25 12:22 PM, Dragan Simic wrote: >> > On 2025-01-31 11:40, Quentin Schulz wrote: >>> From: Quentin Schulz >>> >>> According to commit 40658534756f ("arm64: dts: rockchip: Add rock5b >>> overlays for PCIe endpoint mode"), Rock 5B can operate in PCIe >>> endpoint >>> mode. For that to work, the rk3588-rock-5b-pcie-ep.dtbo overlay needs >>> to >>> be applied on Rock 5B base Device Tree. If that Rock 5B is connected >>> to >>> another Rock 5B, the latter needs to apply the >>> rk3588-rock-5b-pcie-srns.dtbo overlay. >>> >>> In order to make sure the overlays are still valid in the future, >>> let's >>> add a validation test by applying the overlays on top of the main >>> base >>> at build time. >>> >>> Reviewed-by: Krzysztof Kozlowski >>> Reviewed-by: Niklas Cassel >>> Signed-off-by: Quentin Schulz >>> --- >>>  arch/arm64/boot/dts/rockchip/Makefile | 10 ++++++++-- >>>  1 file changed, 8 insertions(+), 2 deletions(-) >>> >>> diff --git a/arch/arm64/boot/dts/rockchip/Makefile >>> b/arch/arm64/boot/dts/rockchip/Makefile >>> index >>> 267966ea69b194887d59e38a4220239a90a91306..ebcd16ce976ebe56a98d9685228980cd1f2f180a >>> 100644 >>> --- a/arch/arm64/boot/dts/rockchip/Makefile >>> +++ b/arch/arm64/boot/dts/rockchip/Makefile >>> @@ -150,8 +150,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5- >>> plus.dtb >>>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-quartzpro64.dtb >>>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5-itx.dtb >>>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b.dtb >>> -dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-ep.dtbo >>> -dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-srns.dtbo >>>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-tiger-haikou.dtb >>>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-toybrick-x0.dtb >>>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-turing-rk1.dtb >>> @@ -186,3 +184,11 @@ rk3568-wolfvision-pf5-vz-2-uhd-dtbs := >>> rk3568-wolfvision-pf5.dtb \ >>>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6a-wifi.dtb >>>  rk3588-edgeble-neu6a-wifi-dtbs := rk3588-edgeble-neu6a-io.dtb \ >>>      rk3588-edgeble-neu6a-wifi.dtbo >>> + >>> +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-ep.dtb >>> +rk3588-rock-5b-pcie-ep-dtbs := rk3588-rock-5b.dtb \ >>> +    rk3588-rock-5b-pcie-ep.dtbo >>> + >>> +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-srns.dtb >>> +rk3588-rock-5b-pcie-srns-dtbs := rk3588-rock-5b.dtb \ >>> +    rk3588-rock-5b-pcie-srns.dtbo >> >> After a quite lengthy excursion into the scripts/Makefile.dtbs and >> scripts/Makefile.lib files, I'm afraid that the approach taken in >> this patch isn't right.  Please allow me to explain. >> >> Let's have a look at arch/arm64/boot/dts/ti/Makefile first, as an >> example that provides already existing DT overlay checks.  Here's >> an excerpt from that Makefile, which also provides an important cue >> by mentioning CONFIG_OF_ALL_DTBS: >> >>   12 dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay.dtb >>   13 dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-ov5640.dtbo >>   14 dtb-$(CONFIG_ARCH_K3) += >> k3-am625-beagleplay-csi2-tevi-ov5640.dtbo >> >>  135 # Build time test only, enabled by CONFIG_OF_ALL_DTBS >>  136 k3-am625-beagleplay-csi2-ov5640-dtbs := k3-am625-beagleplay.dtb >> \ >>  137         k3-am625-beagleplay-csi2-ov5640.dtbo >>  138 k3-am625-beagleplay-csi2-tevi-ov5640-dtbs := k3-am625- >> beagleplay.dtb \ >>  139         k3-am625-beagleplay-csi2-tevi-ov5640.dtbo >> >>  213 dtb- += k3-am625-beagleplay-csi2-ov5640.dtb \ >>  214         k3-am625-beagleplay-csi2-tevi-ov5640.dtb \ >> >> As visible above, the DT overlays get added to dtb-$(CONFIG_ARCH_K3) >> as .dtbo files (not as .dtb files), while the build-time DT overlay >> tests specify the dependency chains for the overlays. >> >> Even more importantly, the build-time overlay tests aren't supposed >> to be executed until CONFIG_OF_ALL_DTBS is selected, which actually >> gets handled at the very start of scripts/Makefile.dtbs: >> >>    3 # If CONFIG_OF_ALL_DTBS is enabled, all DT blobs are built >>    4 dtb-$(CONFIG_OF_ALL_DTBS) += $(dtb-) > > Do you have something to back your argument that build time tests > should only be done when CONFIG_OF_ALL_DTBS is enabled? For now this > seems like it's your interpretation of the use for the symbol. Though > I agree that if you had any test you absolutely didn't want to run in > normal times, hiding them behind CONFIG_OF_ALL_DTBS would be the thing > to do. Well, it isn't my interpretation of CONFIG_OF_ALL_DTBS, it's actually how arch/arm64/boot/dts/ti/Makefile uses it already for the DT overlay tests, which I already explained above. Also, I already wrote that I'm not very happy with the way the config option CONFIG_OF_ALL_DTBS is tied to the DT overlay tests. I'll get back to that below. >> The way this patch modifies arch/arm64/boot/dts/rockchip/Makefile >> actually isn't correct, despite apparently producing the desired >> outcome, because the way it adds rk3588-rock-5b-pcie-ep.dtb and >> rk3588-rock-5b-pcie-srns.dtb (instead of adding proper .dtbo names) >> to dtb-$(CONFIG_ARCH_ROCKCHIP) effectively creates some kind of >> "phony targets" that indeed "get the job done", but unfortunately >> in a wrong way.  The "phony targets" are handled by the following >> "magic" in scripts/Makefile.dtbs: >> >>    6 # Composite DTB (i.e. DTB constructed by overlay) >>    7 multi-dtb-y := $(call multi-search, $(dtb-y), .dtb, -dtbs) >>    8 # Primitive DTB compiled from *.dts >>    9 real-dtb-y := $(call real-search, $(dtb-y), .dtb, -dtbs) >>   10 # Base DTB that overlay is applied onto >>   11 base-dtb-y := $(filter %.dtb, $(call real-search, $(multi-dtb- >> y), .dtb, -dtbs)) >> >>   18 targets         += $(real-dtb-y) >> >> Let's have a look at the relevant part of the output produced when >> "make dtbs" is executed with this patch applied: >> >>   DTC     arch/arm64/boot/dts/rockchip/rk3588-rock-5b-pcie-ep.dtbo >>   OVL     arch/arm64/boot/dts/rockchip/rk3588-rock-5b-pcie-ep.dtb >>   DTC     arch/arm64/boot/dts/rockchip/rk3588-rock-5b-pcie-srns.dtbo >>   OVL     arch/arm64/boot/dts/rockchip/rk3588-rock-5b-pcie-srns.dtb >> >> Note the "OVL .*dtb" lines above, in which the ".*dtb" parts are >> the above-mentioned "phony targets".  The above-quoted "magic" in >> scripts/Makefile.dtbs is what "unfolds" those "phony targets" to make >> them apparently produce the desired outcome, by populating >> the $(real-dtb-y) variable with "rk3588-rock-5b-pcie-ep.dtbo >> rk3588-rock-5b.dtb rk3588-rock-5b-pcie-srns.dtbo", as the proper >> .dtbo names that get passed to the dtc utility. >> >> Even more "magic" in scripts/Makefile.dtbs "unfolds" the "phony >> targets" to have the build-time DT overlay tests performed in the >> apparently proper way, while they actually shouldn't be performed >> unless CONFIG_OF_ALL_DTBS is also selected. > > I understand the symbol CONFIG_OF_ALL_DTBS as "should build all DTBs > for all architectures and do tests" and not "tests must only be run > when CONFIG_OF_ALL_DTBS is selected". I find it so useful to test the > application of overlays to the base DTB that I don't think it's > necessarily a good idea to hide those behind CONFIG_OF_ALL_DTBS. As I wrote above, I'm not very happy with it either. I'll explain that further below. >> With all this is mind, this patch should be reworked to follow >> the right approach for defining build-time DT overlay tests, which >> is illustrated in arch/arm64/boot/dts/ti/Makefile.  In particular, >> we should just add the following DT overlay test definitions to >> arch/arm64/boot/dts/rockchip/Makefile: >> >> 174 # Build-time tests only, enabled by CONFIG_OF_ALL_DTBS >> 175 rk3588-rock-5b-pcie-ep-dtbs := rk3588-rock-5b.dtb \ >> 176         rk3588-rock-5b-pcie-ep.dtbo >> 177 rk3588-rock-5b-pcie-srns-dtbs := rk3588-rock-5b.dtb \ >> 178         rk3588-rock-5b-pcie-srns.dtbo >> 179 dtb- += rk3588-rock-5b-pcie-ep.dtb \ >> 180         rk3588-rock-5b-pcie-srns.dtb >> >> You'll notice that the $(dtb-) variable pretty much again contains >> the same "phony targets", but that's the way they should actually >> be used.  I'm not very happy with the way they're specified, but >> we should follow the approach from arch/arm64/boot/dts/ti/Makefile >> anyway, and possibly improve the whole thing later. > > What I don't like about this is that it allows to build the DTBO > without providing a build time application test which means > maintainer(s) and reviewer(s) need to pay even more attention to the > patch than simply looking at it matching the patterns of how other > DTBOs are built. Also, you now need to enable CONFIG_OF_ALL_DTBS to > run the tests, which isn't enabled in the default defconfig for arm64. > I would assume we have some bots building patches/master with those > options enabled but it might be a bit too late already. I already agreed above about CONFIG_OF_ALL_DTBS being suboptimal, but I don't think that the need for making sure the tests are present would be an issue. Making sure that the tests are defined should be simply part of the reviewing, and running those tests is actually a good way to make revieving a bit easier. Thus, reviewers should actually be motivated to make sure the tests are present. >> I'd actually prefer to just have these test definitions added to the >> end of arch/arm64/boot/dts/ti/Makefile, without moving the .dtbo lines >> around.  That would keep the tests separate, which should be more >> readable when we get more of them defined. > > And more likely to forget about adding either the tests or the DTBO > explicit rule. Well, if someone can't remember either of those, then I don't see how they can remember many other rules required to write DT code. :) FWIW, both TI and Qualcomm place the test definitions separately from the additions to dtb-$(CONFIG_ARCH_XYZ). >> With the above-proposed changes in place, and with CONFIG_OF_ALL_DTBS >> selected, the relevant part of the "make dtbs" output looks like this: >> >>   DTC     arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtb >>   DTC     arch/arm64/boot/dts/rockchip/rk3588-rock-5b-pcie-ep.dtbo >>   DTC     arch/arm64/boot/dts/rockchip/rk3588-rock-5b-pcie-srns.dtbo >>   OVL     arch/arm64/boot/dts/rockchip/rk3588-rock-5b-pcie-ep.dtb >>   OVL     arch/arm64/boot/dts/rockchip/rk3588-rock-5b-pcie-srns.dtb >> >> No more "phony targets" in the produced output. :) > > Funnily enough, I would prefer to see OVL for overlays rather than > DTC, but I guess it's just one more occurrence of developers > disagreeing on how to name things :) I actually agree with that, just like I prefer to see .dtbo files as additions to dtb-$(CONFIG_ARCH_XYZ). It's all about the overlays, so they should be both specified and echoed back. Moreover, we currently also have additional .dtb files with applied overlays left after the build and installed afterwards, which doesn't make much sense to me. To me, those additional .dtb files should be deleted as build artefacts and not installed. > I kind of disagree with the feedback here as this only takes > ti/Makefile as example while **all** other aarch64 Makefile have > different logic, the one I'm using here for amlogic (meson), NXP > (freescale), qcom (Qualcomm), Renesas, Xilinx and even Aarch32 NXP, > and the one we currently use (no build tests) for Mediatek. Hmm, I see. To me, the approach taken by TI is more clear, simply because having .dtb filenames, instead of .dtbo filenames, as part of dtb-$(CONFIG_ARCH_XYZ) is much less readable. When you see a .dtbo there, it's clear that it's an overlay, and as I wrote above, it's all about the overlays, so they should be both specified in Makefiles and echoed back by the build system. > If we agree to what you suggest here we cancel the side-effect of > having the symbols in the base DTB that this patch series introduces. > This can go both ways, either good (DT symbols in = nothing to do for > the user, get the base DTB and your DTBO, put in /boot and tada) or > bad (DT symbols in = big size increase for base DTB). Moreover, > enabling CONFIG_OF_ALL_DTBS would now generate a different DTB than > when it's not (keeping the symbols in). If we wanted to keep the > symbols in, we would need to modify DTC_FLAGS as well. > This could help make the decision(s) as well. > > So I would say without much more context on the actual expected use > for CONFIG_OF_ALL_DTBS that it's up to one's taste, and considering > the precedent here, likely up to each architecture maintainers' taste. Good point. This just shows how suboptimal is tying CONFIG_OF_ALL_DTBS with the DT overlay tests. Perhaps it would be best to remove that association, while keeping the ability to specify .dtbo filenames in dtb-$(CONFIG_ARCH_XYZ). Specifying .dtb files there simply looks wrong to me, as I already explained above. > I won't be too difficult to convince here, just want some "authority" > or a piece of history about CONFIG_OF_ALL_DTBS that would go your > direction, before doing the change. I believe automated build tests > without needing to enable a symbol, and that taking DTB and DTBO from > the build output and apply DTBO on top of DTB works without having to > go through some length to get the symbols, are good reasons to keep it > the way it is in this patch series. I'd like the most to perform the above-proposed "divorcing" of the DT overlay tests from CONFIG_OF_ALL_DTBS, so we don't have to enable any additional options to have the overlay tests run automatically, but to keep .dtbo filenames in dtb-$(CONFIG_ARCH_XYZ). I think that would bring the best of both worlds, so to speak. > Additionally, depending on the feedback, I assume we want to migrate > all current architectures building DTBO to be consistent and use the > same logic (perhaps not for Mediatek because doing so would keep the > DT symbols in the DTB, which drastically increases the size of the > DT). > > Does anyone from DT maintainership have feedback to provide on what is > expected here generally wrt building and testing DTBOs? > > Does Heiko have an opinion on what he would prefer to see happening > for Rockchip? From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 53A8BC02194 for ; Tue, 4 Feb 2025 13:37:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-ID:References:In-Reply-To:Subject:Cc: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=mlemdeBrE1BmwqDOBrCQ5xIHvdHSGDb5fqXI7afCaO8=; b=KWOY2AEmP7VI8JOV5udrPwlPA5 ZV0ilWaejWBF6OPHnOFu8VxUMMovD8+VZrBuC1iaYwmgYK0IjbFMX/mCseJ6mDkYlYI74qHCBzAXG d4gL460MVroTJDRqS0sO3qGz851Bhsy0ja5Kng0Epg8XPc7NC2bpYH0x41DyC0RRYBhdhoFSVjuwn 9mGJS+0/mJp7kRhJSIWHcYuQyhE/wKhRv7ua1uG00VUENsi9hw6njXziP63YZGpXmXgEKTbCHXm4n hAeEzDQRlykoW76wg5t3WGscDUtRQNAjQuWvNpGuVjSuUH21bL/ZHs38RuIeRpCisN00tsy74MNfA QQsK11BQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tfJ6x-00000000YHU-3lE1; Tue, 04 Feb 2025 13:37:07 +0000 Received: from mail.manjaro.org ([116.203.91.91]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tfJ5b-00000000YD3-3mtI; Tue, 04 Feb 2025 13:35:45 +0000 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=manjaro.org; s=2021; t=1738676141; 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=kvBsIYlSRDocRThQe1QajLzrfnVwDIRPt2pu5vzVeio=; b=w/OCtv96wqXzkV27OwKQajxsEG25scNCh4fWGsSiqz5jhj+QGewziS/h86EkJjztDYv4R2 RfGhv+VKM4YPjARKu9HpgRIg3AgwHbcyvMCGPFkbAJRA22P0aIhuA6J3Tx0wRVfs9eJdMr BgSyTyZuas03ZEfKbtnwf2CSXjKz0OnkgRDk/zzadjNJDkGRkHbutPgQ+v8nvpil68ZrJK 8wa3f/t3HnF89CJ/8zvAuagK6MEk7HX9bvnLwnhqpbGXDezQznEXDKYd1/TkUzIg35gLFE Eo63EE2hr1hIFOwy8PgeOEfGVVTgLSwbovyFajM9eSlK39WwAahWcaDtzjz7qQ== Date: Tue, 04 Feb 2025 14:35:40 +0100 From: Dragan Simic To: Quentin Schulz Cc: Quentin Schulz , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Jagan Teki , Niklas Cassel , Michael Riesch , Jonas Karlman , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski Subject: Re: [PATCH v4 3/4] arm64: dts: rockchip: add overlay tests for Rock 5B PCIe overlays In-Reply-To: <3de1cc52-5579-41b1-a333-0c4e81f96fbd@cherry.de> References: <20250131-pre-ict-jaguar-v4-0-c971e2852e8d@cherry.de> <20250131-pre-ict-jaguar-v4-3-c971e2852e8d@cherry.de> <77b5d0efa6e56bb391575aeeb4d1be80@manjaro.org> <3de1cc52-5579-41b1-a333-0c4e81f96fbd@cherry.de> Message-ID: X-Sender: dsimic@manjaro.org Authentication-Results: ORIGINATING; auth=pass smtp.auth=dsimic@manjaro.org smtp.mailfrom=dsimic@manjaro.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250204_053544_308205_CD83A48F X-CRM114-Status: GOOD ( 56.72 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 SGVsbG8gUXVlbnRpbiwKCk9uIDIwMjUtMDItMDQgMTM6MjAsIFF1ZW50aW4gU2NodWx6IHdyb3Rl Ogo+IE9uIDIvNC8yNSAxMjoyMiBQTSwgRHJhZ2FuIFNpbWljIHdyb3RlOgo+PiA+IE9uIDIwMjUt MDEtMzEgMTE6NDAsIFF1ZW50aW4gU2NodWx6IHdyb3RlOgo+Pj4gRnJvbTogUXVlbnRpbiBTY2h1 bHogPHF1ZW50aW4uc2NodWx6QGNoZXJyeS5kZT4KPj4+IAo+Pj4gQWNjb3JkaW5nIHRvIGNvbW1p dCA0MDY1ODUzNDc1NmYgKCJhcm02NDogZHRzOiByb2NrY2hpcDogQWRkIHJvY2s1Ygo+Pj4gb3Zl cmxheXMgZm9yIFBDSWUgZW5kcG9pbnQgbW9kZSIpLCBSb2NrIDVCIGNhbiBvcGVyYXRlIGluIFBD SWUgCj4+PiBlbmRwb2ludAo+Pj4gbW9kZS4gRm9yIHRoYXQgdG8gd29yaywgdGhlIHJrMzU4OC1y b2NrLTViLXBjaWUtZXAuZHRibyBvdmVybGF5IG5lZWRzIAo+Pj4gdG8KPj4+IGJlIGFwcGxpZWQg b24gUm9jayA1QiBiYXNlIERldmljZSBUcmVlLiBJZiB0aGF0IFJvY2sgNUIgaXMgY29ubmVjdGVk IAo+Pj4gdG8KPj4+IGFub3RoZXIgUm9jayA1QiwgdGhlIGxhdHRlciBuZWVkcyB0byBhcHBseSB0 aGUKPj4+IHJrMzU4OC1yb2NrLTViLXBjaWUtc3Jucy5kdGJvIG92ZXJsYXkuCj4+PiAKPj4+IElu IG9yZGVyIHRvIG1ha2Ugc3VyZSB0aGUgb3ZlcmxheXMgYXJlIHN0aWxsIHZhbGlkIGluIHRoZSBm dXR1cmUsIAo+Pj4gbGV0J3MKPj4+IGFkZCBhIHZhbGlkYXRpb24gdGVzdCBieSBhcHBseWluZyB0 aGUgb3ZlcmxheXMgb24gdG9wIG9mIHRoZSBtYWluIAo+Pj4gYmFzZQo+Pj4gYXQgYnVpbGQgdGlt ZS4KPj4+IAo+Pj4gUmV2aWV3ZWQtYnk6IEtyenlzenRvZiBLb3psb3dza2kgPGtyenlzenRvZi5r b3psb3dza2lAbGluYXJvLm9yZz4KPj4+IFJldmlld2VkLWJ5OiBOaWtsYXMgQ2Fzc2VsIDxjYXNz ZWxAa2VybmVsLm9yZz4KPj4+IFNpZ25lZC1vZmYtYnk6IFF1ZW50aW4gU2NodWx6IDxxdWVudGlu LnNjaHVsekBjaGVycnkuZGU+Cj4+PiAtLS0KPj4+IMKgYXJjaC9hcm02NC9ib290L2R0cy9yb2Nr Y2hpcC9NYWtlZmlsZSB8IDEwICsrKysrKysrLS0KPj4+IMKgMSBmaWxlIGNoYW5nZWQsIDggaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPj4+IAo+Pj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJt NjQvYm9vdC9kdHMvcm9ja2NoaXAvTWFrZWZpbGUKPj4+IGIvYXJjaC9hcm02NC9ib290L2R0cy9y b2NrY2hpcC9NYWtlZmlsZQo+Pj4gaW5kZXgKPj4+IDI2Nzk2NmVhNjliMTk0ODg3ZDU5ZTM4YTQy MjAyMzlhOTBhOTEzMDYuLmViY2QxNmNlOTc2ZWJlNTZhOThkOTY4NTIyODk4MGNkMWYyZjE4MGEK Pj4+IDEwMDY0NAo+Pj4gLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9NYWtlZmls ZQo+Pj4gKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9NYWtlZmlsZQo+Pj4gQEAg LTE1MCw4ICsxNTAsNiBAQCBkdGItJChDT05GSUdfQVJDSF9ST0NLQ0hJUCkgKz0gcmszNTg4LW9y YW5nZXBpLTUtIAo+Pj4gcGx1cy5kdGIKPj4+IMKgZHRiLSQoQ09ORklHX0FSQ0hfUk9DS0NISVAp ICs9IHJrMzU4OC1xdWFydHpwcm82NC5kdGIKPj4+IMKgZHRiLSQoQ09ORklHX0FSQ0hfUk9DS0NI SVApICs9IHJrMzU4OC1yb2NrLTUtaXR4LmR0Ygo+Pj4gwqBkdGItJChDT05GSUdfQVJDSF9ST0NL Q0hJUCkgKz0gcmszNTg4LXJvY2stNWIuZHRiCj4+PiAtZHRiLSQoQ09ORklHX0FSQ0hfUk9DS0NI SVApICs9IHJrMzU4OC1yb2NrLTViLXBjaWUtZXAuZHRibwo+Pj4gLWR0Yi0kKENPTkZJR19BUkNI X1JPQ0tDSElQKSArPSByazM1ODgtcm9jay01Yi1wY2llLXNybnMuZHRibwo+Pj4gwqBkdGItJChD T05GSUdfQVJDSF9ST0NLQ0hJUCkgKz0gcmszNTg4LXRpZ2VyLWhhaWtvdS5kdGIKPj4+IMKgZHRi LSQoQ09ORklHX0FSQ0hfUk9DS0NISVApICs9IHJrMzU4OC10b3licmljay14MC5kdGIKPj4+IMKg ZHRiLSQoQ09ORklHX0FSQ0hfUk9DS0NISVApICs9IHJrMzU4OC10dXJpbmctcmsxLmR0Ygo+Pj4g QEAgLTE4NiwzICsxODQsMTEgQEAgcmszNTY4LXdvbGZ2aXNpb24tcGY1LXZ6LTItdWhkLWR0YnMg Oj0KPj4+IHJrMzU2OC13b2xmdmlzaW9uLXBmNS5kdGIgXAo+Pj4gwqBkdGItJChDT05GSUdfQVJD SF9ST0NLQ0hJUCkgKz0gcmszNTg4LWVkZ2VibGUtbmV1NmEtd2lmaS5kdGIKPj4+IMKgcmszNTg4 LWVkZ2VibGUtbmV1NmEtd2lmaS1kdGJzIDo9IHJrMzU4OC1lZGdlYmxlLW5ldTZhLWlvLmR0YiBc Cj4+PiDCoMKgwqDCoCByazM1ODgtZWRnZWJsZS1uZXU2YS13aWZpLmR0Ym8KPj4+ICsKPj4+ICtk dGItJChDT05GSUdfQVJDSF9ST0NLQ0hJUCkgKz0gcmszNTg4LXJvY2stNWItcGNpZS1lcC5kdGIK Pj4+ICtyazM1ODgtcm9jay01Yi1wY2llLWVwLWR0YnMgOj0gcmszNTg4LXJvY2stNWIuZHRiIFwK Pj4+ICvCoMKgwqAgcmszNTg4LXJvY2stNWItcGNpZS1lcC5kdGJvCj4+PiArCj4+PiArZHRiLSQo Q09ORklHX0FSQ0hfUk9DS0NISVApICs9IHJrMzU4OC1yb2NrLTViLXBjaWUtc3Jucy5kdGIKPj4+ ICtyazM1ODgtcm9jay01Yi1wY2llLXNybnMtZHRicyA6PSByazM1ODgtcm9jay01Yi5kdGIgXAo+ Pj4gK8KgwqDCoCByazM1ODgtcm9jay01Yi1wY2llLXNybnMuZHRibwo+PiAKPj4gQWZ0ZXIgYSBx dWl0ZSBsZW5ndGh5IGV4Y3Vyc2lvbiBpbnRvIHRoZSBzY3JpcHRzL01ha2VmaWxlLmR0YnMgYW5k Cj4+IHNjcmlwdHMvTWFrZWZpbGUubGliIGZpbGVzLCBJJ20gYWZyYWlkIHRoYXQgdGhlIGFwcHJv YWNoIHRha2VuIGluCj4+IHRoaXMgcGF0Y2ggaXNuJ3QgcmlnaHQuwqAgUGxlYXNlIGFsbG93IG1l IHRvIGV4cGxhaW4uCj4+IAo+PiBMZXQncyBoYXZlIGEgbG9vayBhdCBhcmNoL2FybTY0L2Jvb3Qv ZHRzL3RpL01ha2VmaWxlIGZpcnN0LCBhcyBhbgo+PiBleGFtcGxlIHRoYXQgcHJvdmlkZXMgYWxy ZWFkeSBleGlzdGluZyBEVCBvdmVybGF5IGNoZWNrcy7CoCBIZXJlJ3MKPj4gYW4gZXhjZXJwdCBm cm9tIHRoYXQgTWFrZWZpbGUsIHdoaWNoIGFsc28gcHJvdmlkZXMgYW4gaW1wb3J0YW50IGN1ZQo+ PiBieSBtZW50aW9uaW5nIENPTkZJR19PRl9BTExfRFRCUzoKPj4gCj4+ICDCoCAxMiBkdGItJChD T05GSUdfQVJDSF9LMykgKz0gazMtYW02MjUtYmVhZ2xlcGxheS5kdGIKPj4gIMKgIDEzIGR0Yi0k KENPTkZJR19BUkNIX0szKSArPSBrMy1hbTYyNS1iZWFnbGVwbGF5LWNzaTItb3Y1NjQwLmR0Ym8K Pj4gIMKgIDE0IGR0Yi0kKENPTkZJR19BUkNIX0szKSArPSAKPj4gazMtYW02MjUtYmVhZ2xlcGxh eS1jc2kyLXRldmktb3Y1NjQwLmR0Ym8KPj4gCj4+ICDCoDEzNSAjIEJ1aWxkIHRpbWUgdGVzdCBv bmx5LCBlbmFibGVkIGJ5IENPTkZJR19PRl9BTExfRFRCUwo+PiAgwqAxMzYgazMtYW02MjUtYmVh Z2xlcGxheS1jc2kyLW92NTY0MC1kdGJzIDo9IGszLWFtNjI1LWJlYWdsZXBsYXkuZHRiIAo+PiBc Cj4+ICDCoDEzN8KgwqDCoMKgwqDCoMKgwqAgazMtYW02MjUtYmVhZ2xlcGxheS1jc2kyLW92NTY0 MC5kdGJvCj4+ICDCoDEzOCBrMy1hbTYyNS1iZWFnbGVwbGF5LWNzaTItdGV2aS1vdjU2NDAtZHRi cyA6PSBrMy1hbTYyNS0gCj4+IGJlYWdsZXBsYXkuZHRiIFwKPj4gIMKgMTM5wqDCoMKgwqDCoMKg wqDCoCBrMy1hbTYyNS1iZWFnbGVwbGF5LWNzaTItdGV2aS1vdjU2NDAuZHRibwo+PiAKPj4gIMKg MjEzIGR0Yi0gKz0gazMtYW02MjUtYmVhZ2xlcGxheS1jc2kyLW92NTY0MC5kdGIgXAo+PiAgwqAy MTTCoMKgwqDCoMKgwqDCoMKgIGszLWFtNjI1LWJlYWdsZXBsYXktY3NpMi10ZXZpLW92NTY0MC5k dGIgXAo+PiAKPj4gQXMgdmlzaWJsZSBhYm92ZSwgdGhlIERUIG92ZXJsYXlzIGdldCBhZGRlZCB0 byBkdGItJChDT05GSUdfQVJDSF9LMykKPj4gYXMgLmR0Ym8gZmlsZXMgKG5vdCBhcyAuZHRiIGZp bGVzKSwgd2hpbGUgdGhlIGJ1aWxkLXRpbWUgRFQgb3ZlcmxheQo+PiB0ZXN0cyBzcGVjaWZ5IHRo ZSBkZXBlbmRlbmN5IGNoYWlucyBmb3IgdGhlIG92ZXJsYXlzLgo+PiAKPj4gRXZlbiBtb3JlIGlt cG9ydGFudGx5LCB0aGUgYnVpbGQtdGltZSBvdmVybGF5IHRlc3RzIGFyZW4ndCBzdXBwb3NlZAo+ PiB0byBiZSBleGVjdXRlZCB1bnRpbCBDT05GSUdfT0ZfQUxMX0RUQlMgaXMgc2VsZWN0ZWQsIHdo aWNoIGFjdHVhbGx5Cj4+IGdldHMgaGFuZGxlZCBhdCB0aGUgdmVyeSBzdGFydCBvZiBzY3JpcHRz L01ha2VmaWxlLmR0YnM6Cj4+IAo+PiAgwqDCoCAzICMgSWYgQ09ORklHX09GX0FMTF9EVEJTIGlz IGVuYWJsZWQsIGFsbCBEVCBibG9icyBhcmUgYnVpbHQKPj4gIMKgwqAgNCBkdGItJChDT05GSUdf T0ZfQUxMX0RUQlMpICs9ICQoZHRiLSkKPiAKPiBEbyB5b3UgaGF2ZSBzb21ldGhpbmcgdG8gYmFj ayB5b3VyIGFyZ3VtZW50IHRoYXQgYnVpbGQgdGltZSB0ZXN0cwo+IHNob3VsZCBvbmx5IGJlIGRv bmUgd2hlbiBDT05GSUdfT0ZfQUxMX0RUQlMgaXMgZW5hYmxlZD8gRm9yIG5vdyB0aGlzCj4gc2Vl bXMgbGlrZSBpdCdzIHlvdXIgaW50ZXJwcmV0YXRpb24gb2YgdGhlIHVzZSBmb3IgdGhlIHN5bWJv bC4gVGhvdWdoCj4gSSBhZ3JlZSB0aGF0IGlmIHlvdSBoYWQgYW55IHRlc3QgeW91IGFic29sdXRl bHkgZGlkbid0IHdhbnQgdG8gcnVuIGluCj4gbm9ybWFsIHRpbWVzLCBoaWRpbmcgdGhlbSBiZWhp bmQgQ09ORklHX09GX0FMTF9EVEJTIHdvdWxkIGJlIHRoZSB0aGluZwo+IHRvIGRvLgoKV2VsbCwg aXQgaXNuJ3QgbXkgaW50ZXJwcmV0YXRpb24gb2YgQ09ORklHX09GX0FMTF9EVEJTLCBpdCdzIGFj dHVhbGx5CmhvdyBhcmNoL2FybTY0L2Jvb3QvZHRzL3RpL01ha2VmaWxlIHVzZXMgaXQgYWxyZWFk eSBmb3IgdGhlIERUIG92ZXJsYXkKdGVzdHMsIHdoaWNoIEkgYWxyZWFkeSBleHBsYWluZWQgYWJv dmUuCgpBbHNvLCBJIGFscmVhZHkgd3JvdGUgdGhhdCBJJ20gbm90IHZlcnkgaGFwcHkgd2l0aCB0 aGUgd2F5IHRoZSBjb25maWcKb3B0aW9uIENPTkZJR19PRl9BTExfRFRCUyBpcyB0aWVkIHRvIHRo ZSBEVCBvdmVybGF5IHRlc3RzLiAgSSdsbCBnZXQKYmFjayB0byB0aGF0IGJlbG93LgoKPj4gVGhl IHdheSB0aGlzIHBhdGNoIG1vZGlmaWVzIGFyY2gvYXJtNjQvYm9vdC9kdHMvcm9ja2NoaXAvTWFr ZWZpbGUKPj4gYWN0dWFsbHkgaXNuJ3QgY29ycmVjdCwgZGVzcGl0ZSBhcHBhcmVudGx5IHByb2R1 Y2luZyB0aGUgZGVzaXJlZAo+PiBvdXRjb21lLCBiZWNhdXNlIHRoZSB3YXkgaXQgYWRkcyByazM1 ODgtcm9jay01Yi1wY2llLWVwLmR0YiBhbmQKPj4gcmszNTg4LXJvY2stNWItcGNpZS1zcm5zLmR0 YiAoaW5zdGVhZCBvZiBhZGRpbmcgcHJvcGVyIC5kdGJvIG5hbWVzKQo+PiB0byBkdGItJChDT05G SUdfQVJDSF9ST0NLQ0hJUCkgZWZmZWN0aXZlbHkgY3JlYXRlcyBzb21lIGtpbmQgb2YKPj4gInBo b255IHRhcmdldHMiIHRoYXQgaW5kZWVkICJnZXQgdGhlIGpvYiBkb25lIiwgYnV0IHVuZm9ydHVu YXRlbHkKPj4gaW4gYSB3cm9uZyB3YXkuwqAgVGhlICJwaG9ueSB0YXJnZXRzIiBhcmUgaGFuZGxl ZCBieSB0aGUgZm9sbG93aW5nCj4+ICJtYWdpYyIgaW4gc2NyaXB0cy9NYWtlZmlsZS5kdGJzOgo+ PiAKPj4gIMKgwqAgNiAjIENvbXBvc2l0ZSBEVEIgKGkuZS4gRFRCIGNvbnN0cnVjdGVkIGJ5IG92 ZXJsYXkpCj4+ICDCoMKgIDcgbXVsdGktZHRiLXkgOj0gJChjYWxsIG11bHRpLXNlYXJjaCwgJChk dGIteSksIC5kdGIsIC1kdGJzKQo+PiAgwqDCoCA4ICMgUHJpbWl0aXZlIERUQiBjb21waWxlZCBm cm9tICouZHRzCj4+ICDCoMKgIDkgcmVhbC1kdGIteSA6PSAkKGNhbGwgcmVhbC1zZWFyY2gsICQo ZHRiLXkpLCAuZHRiLCAtZHRicykKPj4gIMKgIDEwICMgQmFzZSBEVEIgdGhhdCBvdmVybGF5IGlz IGFwcGxpZWQgb250bwo+PiAgwqAgMTEgYmFzZS1kdGIteSA6PSAkKGZpbHRlciAlLmR0YiwgJChj YWxsIHJlYWwtc2VhcmNoLCAkKG11bHRpLWR0Yi0gCj4+IHkpLCAuZHRiLCAtZHRicykpCj4+IAo+ PiAgwqAgMTggdGFyZ2V0c8KgwqDCoMKgwqDCoMKgwqAgKz0gJChyZWFsLWR0Yi15KQo+PiAKPj4g TGV0J3MgaGF2ZSBhIGxvb2sgYXQgdGhlIHJlbGV2YW50IHBhcnQgb2YgdGhlIG91dHB1dCBwcm9k dWNlZCB3aGVuCj4+ICJtYWtlIGR0YnMiIGlzIGV4ZWN1dGVkIHdpdGggdGhpcyBwYXRjaCBhcHBs aWVkOgo+PiAKPj4gIMKgIERUQ8KgwqDCoMKgIGFyY2gvYXJtNjQvYm9vdC9kdHMvcm9ja2NoaXAv cmszNTg4LXJvY2stNWItcGNpZS1lcC5kdGJvCj4+ICDCoCBPVkzCoMKgwqDCoCBhcmNoL2FybTY0 L2Jvb3QvZHRzL3JvY2tjaGlwL3JrMzU4OC1yb2NrLTViLXBjaWUtZXAuZHRiCj4+ICDCoCBEVEPC oMKgwqDCoCBhcmNoL2FybTY0L2Jvb3QvZHRzL3JvY2tjaGlwL3JrMzU4OC1yb2NrLTViLXBjaWUt c3Jucy5kdGJvCj4+ICDCoCBPVkzCoMKgwqDCoCBhcmNoL2FybTY0L2Jvb3QvZHRzL3JvY2tjaGlw L3JrMzU4OC1yb2NrLTViLXBjaWUtc3Jucy5kdGIKPj4gCj4+IE5vdGUgdGhlICJPVkwgLipkdGIi IGxpbmVzIGFib3ZlLCBpbiB3aGljaCB0aGUgIi4qZHRiIiBwYXJ0cyBhcmUKPj4gdGhlIGFib3Zl LW1lbnRpb25lZCAicGhvbnkgdGFyZ2V0cyIuwqAgVGhlIGFib3ZlLXF1b3RlZCAibWFnaWMiIGlu Cj4+IHNjcmlwdHMvTWFrZWZpbGUuZHRicyBpcyB3aGF0ICJ1bmZvbGRzIiB0aG9zZSAicGhvbnkg dGFyZ2V0cyIgdG8gbWFrZSAKPj4gdGhlbSBhcHBhcmVudGx5IHByb2R1Y2UgdGhlIGRlc2lyZWQg b3V0Y29tZSwgYnkgcG9wdWxhdGluZwo+PiB0aGUgJChyZWFsLWR0Yi15KSB2YXJpYWJsZSB3aXRo ICJyazM1ODgtcm9jay01Yi1wY2llLWVwLmR0Ym8KPj4gcmszNTg4LXJvY2stNWIuZHRiIHJrMzU4 OC1yb2NrLTViLXBjaWUtc3Jucy5kdGJvIiwgYXMgdGhlIHByb3Blcgo+PiAuZHRibyBuYW1lcyB0 aGF0IGdldCBwYXNzZWQgdG8gdGhlIGR0YyB1dGlsaXR5Lgo+PiAKPj4gRXZlbiBtb3JlICJtYWdp YyIgaW4gc2NyaXB0cy9NYWtlZmlsZS5kdGJzICJ1bmZvbGRzIiB0aGUgInBob255Cj4+IHRhcmdl dHMiIHRvIGhhdmUgdGhlIGJ1aWxkLXRpbWUgRFQgb3ZlcmxheSB0ZXN0cyBwZXJmb3JtZWQgaW4g dGhlCj4+IGFwcGFyZW50bHkgcHJvcGVyIHdheSwgd2hpbGUgdGhleSBhY3R1YWxseSBzaG91bGRu J3QgYmUgcGVyZm9ybWVkCj4+IHVubGVzcyBDT05GSUdfT0ZfQUxMX0RUQlMgaXMgYWxzbyBzZWxl Y3RlZC4KPiAKPiBJIHVuZGVyc3RhbmQgdGhlIHN5bWJvbCBDT05GSUdfT0ZfQUxMX0RUQlMgYXMg InNob3VsZCBidWlsZCBhbGwgRFRCcwo+IGZvciBhbGwgYXJjaGl0ZWN0dXJlcyBhbmQgZG8gdGVz dHMiIGFuZCBub3QgInRlc3RzIG11c3Qgb25seSBiZSBydW4KPiB3aGVuIENPTkZJR19PRl9BTExf RFRCUyBpcyBzZWxlY3RlZCIuIEkgZmluZCBpdCBzbyB1c2VmdWwgdG8gdGVzdCB0aGUKPiBhcHBs aWNhdGlvbiBvZiBvdmVybGF5cyB0byB0aGUgYmFzZSBEVEIgdGhhdCBJIGRvbid0IHRoaW5rIGl0 J3MKPiBuZWNlc3NhcmlseSBhIGdvb2QgaWRlYSB0byBoaWRlIHRob3NlIGJlaGluZCBDT05GSUdf T0ZfQUxMX0RUQlMuCgpBcyBJIHdyb3RlIGFib3ZlLCBJJ20gbm90IHZlcnkgaGFwcHkgd2l0aCBp dCBlaXRoZXIuICBJJ2xsIGV4cGxhaW4KdGhhdCBmdXJ0aGVyIGJlbG93LgoKPj4gV2l0aCBhbGwg dGhpcyBpcyBtaW5kLCB0aGlzIHBhdGNoIHNob3VsZCBiZSByZXdvcmtlZCB0byBmb2xsb3cKPj4g dGhlIHJpZ2h0IGFwcHJvYWNoIGZvciBkZWZpbmluZyBidWlsZC10aW1lIERUIG92ZXJsYXkgdGVz dHMsIHdoaWNoCj4+IGlzIGlsbHVzdHJhdGVkIGluIGFyY2gvYXJtNjQvYm9vdC9kdHMvdGkvTWFr ZWZpbGUuwqAgSW4gcGFydGljdWxhciwKPj4gd2Ugc2hvdWxkIGp1c3QgYWRkIHRoZSBmb2xsb3dp bmcgRFQgb3ZlcmxheSB0ZXN0IGRlZmluaXRpb25zIHRvCj4+IGFyY2gvYXJtNjQvYm9vdC9kdHMv cm9ja2NoaXAvTWFrZWZpbGU6Cj4+IAo+PiAxNzQgIyBCdWlsZC10aW1lIHRlc3RzIG9ubHksIGVu YWJsZWQgYnkgQ09ORklHX09GX0FMTF9EVEJTCj4+IDE3NSByazM1ODgtcm9jay01Yi1wY2llLWVw LWR0YnMgOj0gcmszNTg4LXJvY2stNWIuZHRiIFwKPj4gMTc2wqDCoMKgwqDCoMKgwqDCoCByazM1 ODgtcm9jay01Yi1wY2llLWVwLmR0Ym8KPj4gMTc3IHJrMzU4OC1yb2NrLTViLXBjaWUtc3Jucy1k dGJzIDo9IHJrMzU4OC1yb2NrLTViLmR0YiBcCj4+IDE3OMKgwqDCoMKgwqDCoMKgwqAgcmszNTg4 LXJvY2stNWItcGNpZS1zcm5zLmR0Ym8KPj4gMTc5IGR0Yi0gKz0gcmszNTg4LXJvY2stNWItcGNp ZS1lcC5kdGIgXAo+PiAxODDCoMKgwqDCoMKgwqDCoMKgIHJrMzU4OC1yb2NrLTViLXBjaWUtc3Ju cy5kdGIKPj4gCj4+IFlvdSdsbCBub3RpY2UgdGhhdCB0aGUgJChkdGItKSB2YXJpYWJsZSBwcmV0 dHkgbXVjaCBhZ2FpbiBjb250YWlucwo+PiB0aGUgc2FtZSAicGhvbnkgdGFyZ2V0cyIsIGJ1dCB0 aGF0J3MgdGhlIHdheSB0aGV5IHNob3VsZCBhY3R1YWxseQo+PiBiZSB1c2VkLsKgIEknbSBub3Qg dmVyeSBoYXBweSB3aXRoIHRoZSB3YXkgdGhleSdyZSBzcGVjaWZpZWQsIGJ1dAo+PiB3ZSBzaG91 bGQgZm9sbG93IHRoZSBhcHByb2FjaCBmcm9tIGFyY2gvYXJtNjQvYm9vdC9kdHMvdGkvTWFrZWZp bGUKPj4gYW55d2F5LCBhbmQgcG9zc2libHkgaW1wcm92ZSB0aGUgd2hvbGUgdGhpbmcgbGF0ZXIu Cj4gCj4gV2hhdCBJIGRvbid0IGxpa2UgYWJvdXQgdGhpcyBpcyB0aGF0IGl0IGFsbG93cyB0byBi dWlsZCB0aGUgRFRCTwo+IHdpdGhvdXQgcHJvdmlkaW5nIGEgYnVpbGQgdGltZSBhcHBsaWNhdGlv biB0ZXN0IHdoaWNoIG1lYW5zCj4gbWFpbnRhaW5lcihzKSBhbmQgcmV2aWV3ZXIocykgbmVlZCB0 byBwYXkgZXZlbiBtb3JlIGF0dGVudGlvbiB0byB0aGUKPiBwYXRjaCB0aGFuIHNpbXBseSBsb29r aW5nIGF0IGl0IG1hdGNoaW5nIHRoZSBwYXR0ZXJucyBvZiBob3cgb3RoZXIKPiBEVEJPcyBhcmUg YnVpbHQuIEFsc28sIHlvdSBub3cgbmVlZCB0byBlbmFibGUgQ09ORklHX09GX0FMTF9EVEJTIHRv Cj4gcnVuIHRoZSB0ZXN0cywgd2hpY2ggaXNuJ3QgZW5hYmxlZCBpbiB0aGUgZGVmYXVsdCBkZWZj b25maWcgZm9yIGFybTY0Lgo+IEkgd291bGQgYXNzdW1lIHdlIGhhdmUgc29tZSBib3RzIGJ1aWxk aW5nIHBhdGNoZXMvbWFzdGVyIHdpdGggdGhvc2UKPiBvcHRpb25zIGVuYWJsZWQgYnV0IGl0IG1p Z2h0IGJlIGEgYml0IHRvbyBsYXRlIGFscmVhZHkuCgpJIGFscmVhZHkgYWdyZWVkIGFib3ZlIGFi b3V0IENPTkZJR19PRl9BTExfRFRCUyBiZWluZyBzdWJvcHRpbWFsLApidXQgSSBkb24ndCB0aGlu ayB0aGF0IHRoZSBuZWVkIGZvciBtYWtpbmcgc3VyZSB0aGUgdGVzdHMgYXJlIHByZXNlbnQKd291 bGQgYmUgYW4gaXNzdWUuICBNYWtpbmcgc3VyZSB0aGF0IHRoZSB0ZXN0cyBhcmUgZGVmaW5lZCBz aG91bGQgYmUKc2ltcGx5IHBhcnQgb2YgdGhlIHJldmlld2luZywgYW5kIHJ1bm5pbmcgdGhvc2Ug dGVzdHMgaXMgYWN0dWFsbHkKYSBnb29kIHdheSB0byBtYWtlIHJldmlldmluZyBhIGJpdCBlYXNp ZXIuICBUaHVzLCByZXZpZXdlcnMgc2hvdWxkCmFjdHVhbGx5IGJlIG1vdGl2YXRlZCB0byBtYWtl IHN1cmUgdGhlIHRlc3RzIGFyZSBwcmVzZW50LgoKPj4gSSdkIGFjdHVhbGx5IHByZWZlciB0byBq dXN0IGhhdmUgdGhlc2UgdGVzdCBkZWZpbml0aW9ucyBhZGRlZCB0byB0aGUKPj4gZW5kIG9mIGFy Y2gvYXJtNjQvYm9vdC9kdHMvdGkvTWFrZWZpbGUsIHdpdGhvdXQgbW92aW5nIHRoZSAuZHRibyBs aW5lcwo+PiBhcm91bmQuwqAgVGhhdCB3b3VsZCBrZWVwIHRoZSB0ZXN0cyBzZXBhcmF0ZSwgd2hp Y2ggc2hvdWxkIGJlIG1vcmUKPj4gcmVhZGFibGUgd2hlbiB3ZSBnZXQgbW9yZSBvZiB0aGVtIGRl ZmluZWQuCj4gCj4gQW5kIG1vcmUgbGlrZWx5IHRvIGZvcmdldCBhYm91dCBhZGRpbmcgZWl0aGVy IHRoZSB0ZXN0cyBvciB0aGUgRFRCTwo+IGV4cGxpY2l0IHJ1bGUuCgpXZWxsLCBpZiBzb21lb25l IGNhbid0IHJlbWVtYmVyIGVpdGhlciBvZiB0aG9zZSwgdGhlbiBJIGRvbid0IHNlZSBob3cKdGhl eSBjYW4gcmVtZW1iZXIgbWFueSBvdGhlciBydWxlcyByZXF1aXJlZCB0byB3cml0ZSBEVCBjb2Rl LiA6KQoKRldJVywgYm90aCBUSSBhbmQgUXVhbGNvbW0gcGxhY2UgdGhlIHRlc3QgZGVmaW5pdGlv bnMgc2VwYXJhdGVseSBmcm9tCnRoZSBhZGRpdGlvbnMgdG8gZHRiLSQoQ09ORklHX0FSQ0hfWFla KS4KCj4+IFdpdGggdGhlIGFib3ZlLXByb3Bvc2VkIGNoYW5nZXMgaW4gcGxhY2UsIGFuZCB3aXRo IENPTkZJR19PRl9BTExfRFRCUwo+PiBzZWxlY3RlZCwgdGhlIHJlbGV2YW50IHBhcnQgb2YgdGhl ICJtYWtlIGR0YnMiIG91dHB1dCBsb29rcyBsaWtlIHRoaXM6Cj4+IAo+PiAgwqAgRFRDwqDCoMKg wqAgYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9yazM1ODgtcm9jay01Yi5kdGIKPj4gIMKg IERUQ8KgwqDCoMKgIGFyY2gvYXJtNjQvYm9vdC9kdHMvcm9ja2NoaXAvcmszNTg4LXJvY2stNWIt cGNpZS1lcC5kdGJvCj4+ICDCoCBEVEPCoMKgwqDCoCBhcmNoL2FybTY0L2Jvb3QvZHRzL3JvY2tj aGlwL3JrMzU4OC1yb2NrLTViLXBjaWUtc3Jucy5kdGJvCj4+ICDCoCBPVkzCoMKgwqDCoCBhcmNo L2FybTY0L2Jvb3QvZHRzL3JvY2tjaGlwL3JrMzU4OC1yb2NrLTViLXBjaWUtZXAuZHRiCj4+ICDC oCBPVkzCoMKgwqDCoCBhcmNoL2FybTY0L2Jvb3QvZHRzL3JvY2tjaGlwL3JrMzU4OC1yb2NrLTVi LXBjaWUtc3Jucy5kdGIKPj4gCj4+IE5vIG1vcmUgInBob255IHRhcmdldHMiIGluIHRoZSBwcm9k dWNlZCBvdXRwdXQuIDopCj4gCj4gRnVubmlseSBlbm91Z2gsIEkgd291bGQgcHJlZmVyIHRvIHNl ZSBPVkwgZm9yIG92ZXJsYXlzIHJhdGhlciB0aGFuCj4gRFRDLCBidXQgSSBndWVzcyBpdCdzIGp1 c3Qgb25lIG1vcmUgb2NjdXJyZW5jZSBvZiBkZXZlbG9wZXJzCj4gZGlzYWdyZWVpbmcgb24gaG93 IHRvIG5hbWUgdGhpbmdzIDopCgpJIGFjdHVhbGx5IGFncmVlIHdpdGggdGhhdCwganVzdCBsaWtl IEkgcHJlZmVyIHRvIHNlZSAuZHRibyBmaWxlcwphcyBhZGRpdGlvbnMgdG8gZHRiLSQoQ09ORklH X0FSQ0hfWFlaKS4gIEl0J3MgYWxsIGFib3V0IHRoZSBvdmVybGF5cywKc28gdGhleSBzaG91bGQg YmUgYm90aCBzcGVjaWZpZWQgYW5kIGVjaG9lZCBiYWNrLgoKTW9yZW92ZXIsIHdlIGN1cnJlbnRs eSBhbHNvIGhhdmUgYWRkaXRpb25hbCAuZHRiIGZpbGVzIHdpdGggYXBwbGllZApvdmVybGF5cyBs ZWZ0IGFmdGVyIHRoZSBidWlsZCBhbmQgaW5zdGFsbGVkIGFmdGVyd2FyZHMsIHdoaWNoIGRvZXNu J3QKbWFrZSBtdWNoIHNlbnNlIHRvIG1lLiAgVG8gbWUsIHRob3NlIGFkZGl0aW9uYWwgLmR0YiBm aWxlcyBzaG91bGQgYmUKZGVsZXRlZCBhcyBidWlsZCBhcnRlZmFjdHMgYW5kIG5vdCBpbnN0YWxs ZWQuCgo+IEkga2luZCBvZiBkaXNhZ3JlZSB3aXRoIHRoZSBmZWVkYmFjayBoZXJlIGFzIHRoaXMg b25seSB0YWtlcwo+IHRpL01ha2VmaWxlIGFzIGV4YW1wbGUgd2hpbGUgKiphbGwqKiBvdGhlciBh YXJjaDY0IE1ha2VmaWxlIGhhdmUKPiBkaWZmZXJlbnQgbG9naWMsIHRoZSBvbmUgSSdtIHVzaW5n IGhlcmUgZm9yIGFtbG9naWMgKG1lc29uKSwgTlhQCj4gKGZyZWVzY2FsZSksIHFjb20gKFF1YWxj b21tKSwgUmVuZXNhcywgWGlsaW54IGFuZCBldmVuIEFhcmNoMzIgTlhQLAo+IGFuZCB0aGUgb25l IHdlIGN1cnJlbnRseSB1c2UgKG5vIGJ1aWxkIHRlc3RzKSBmb3IgTWVkaWF0ZWsuCgpIbW0sIEkg c2VlLiAgVG8gbWUsIHRoZSBhcHByb2FjaCB0YWtlbiBieSBUSSBpcyBtb3JlIGNsZWFyLCBzaW1w bHkKYmVjYXVzZSBoYXZpbmcgLmR0YiBmaWxlbmFtZXMsIGluc3RlYWQgb2YgLmR0Ym8gZmlsZW5h bWVzLCBhcyBwYXJ0IG9mCmR0Yi0kKENPTkZJR19BUkNIX1hZWikgaXMgbXVjaCBsZXNzIHJlYWRh YmxlLiAgV2hlbiB5b3Ugc2VlIGEgLmR0Ym8KdGhlcmUsIGl0J3MgY2xlYXIgdGhhdCBpdCdzIGFu IG92ZXJsYXksIGFuZCBhcyBJIHdyb3RlIGFib3ZlLCBpdCdzCmFsbCBhYm91dCB0aGUgb3Zlcmxh eXMsIHNvIHRoZXkgc2hvdWxkIGJlIGJvdGggc3BlY2lmaWVkIGluIE1ha2VmaWxlcwphbmQgZWNo b2VkIGJhY2sgYnkgdGhlIGJ1aWxkIHN5c3RlbS4KCj4gSWYgd2UgYWdyZWUgdG8gd2hhdCB5b3Ug c3VnZ2VzdCBoZXJlIHdlIGNhbmNlbCB0aGUgc2lkZS1lZmZlY3Qgb2YKPiBoYXZpbmcgdGhlIHN5 bWJvbHMgaW4gdGhlIGJhc2UgRFRCIHRoYXQgdGhpcyBwYXRjaCBzZXJpZXMgaW50cm9kdWNlcy4K PiBUaGlzIGNhbiBnbyBib3RoIHdheXMsIGVpdGhlciBnb29kIChEVCBzeW1ib2xzIGluID0gbm90 aGluZyB0byBkbyBmb3IKPiB0aGUgdXNlciwgZ2V0IHRoZSBiYXNlIERUQiBhbmQgeW91ciBEVEJP LCBwdXQgaW4gL2Jvb3QgYW5kIHRhZGEpIG9yCj4gYmFkIChEVCBzeW1ib2xzIGluID0gYmlnIHNp emUgaW5jcmVhc2UgZm9yIGJhc2UgRFRCKS4gTW9yZW92ZXIsCj4gZW5hYmxpbmcgQ09ORklHX09G X0FMTF9EVEJTIHdvdWxkIG5vdyBnZW5lcmF0ZSBhIGRpZmZlcmVudCBEVEIgdGhhbgo+IHdoZW4g aXQncyBub3QgKGtlZXBpbmcgdGhlIHN5bWJvbHMgaW4pLiBJZiB3ZSB3YW50ZWQgdG8ga2VlcCB0 aGUKPiBzeW1ib2xzIGluLCB3ZSB3b3VsZCBuZWVkIHRvIG1vZGlmeSBEVENfRkxBR1MgYXMgd2Vs bC4KPiBUaGlzIGNvdWxkIGhlbHAgbWFrZSB0aGUgZGVjaXNpb24ocykgYXMgd2VsbC4KPiAKPiBT byBJIHdvdWxkIHNheSB3aXRob3V0IG11Y2ggbW9yZSBjb250ZXh0IG9uIHRoZSBhY3R1YWwgZXhw ZWN0ZWQgdXNlCj4gZm9yIENPTkZJR19PRl9BTExfRFRCUyB0aGF0IGl0J3MgdXAgdG8gb25lJ3Mg dGFzdGUsIGFuZCBjb25zaWRlcmluZwo+IHRoZSBwcmVjZWRlbnQgaGVyZSwgbGlrZWx5IHVwIHRv IGVhY2ggYXJjaGl0ZWN0dXJlIG1haW50YWluZXJzJyB0YXN0ZS4KCkdvb2QgcG9pbnQuICBUaGlz IGp1c3Qgc2hvd3MgaG93IHN1Ym9wdGltYWwgaXMgdHlpbmcgQ09ORklHX09GX0FMTF9EVEJTCndp dGggdGhlIERUIG92ZXJsYXkgdGVzdHMuICBQZXJoYXBzIGl0IHdvdWxkIGJlIGJlc3QgdG8gcmVt b3ZlIHRoYXQKYXNzb2NpYXRpb24sIHdoaWxlIGtlZXBpbmcgdGhlIGFiaWxpdHkgdG8gc3BlY2lm eSAuZHRibyBmaWxlbmFtZXMgaW4KZHRiLSQoQ09ORklHX0FSQ0hfWFlaKS4gIFNwZWNpZnlpbmcg LmR0YiBmaWxlcyB0aGVyZSBzaW1wbHkgbG9va3Mgd3JvbmcKdG8gbWUsIGFzIEkgYWxyZWFkeSBl eHBsYWluZWQgYWJvdmUuCgo+IEkgd29uJ3QgYmUgdG9vIGRpZmZpY3VsdCB0byBjb252aW5jZSBo ZXJlLCBqdXN0IHdhbnQgc29tZSAiYXV0aG9yaXR5Igo+IG9yIGEgcGllY2Ugb2YgaGlzdG9yeSBh Ym91dCBDT05GSUdfT0ZfQUxMX0RUQlMgdGhhdCB3b3VsZCBnbyB5b3VyCj4gZGlyZWN0aW9uLCBi ZWZvcmUgZG9pbmcgdGhlIGNoYW5nZS4gSSBiZWxpZXZlIGF1dG9tYXRlZCBidWlsZCB0ZXN0cwo+ IHdpdGhvdXQgbmVlZGluZyB0byBlbmFibGUgYSBzeW1ib2wsIGFuZCB0aGF0IHRha2luZyBEVEIg YW5kIERUQk8gZnJvbQo+IHRoZSBidWlsZCBvdXRwdXQgYW5kIGFwcGx5IERUQk8gb24gdG9wIG9m IERUQiB3b3JrcyB3aXRob3V0IGhhdmluZyB0bwo+IGdvIHRocm91Z2ggc29tZSBsZW5ndGggdG8g Z2V0IHRoZSBzeW1ib2xzLCBhcmUgZ29vZCByZWFzb25zIHRvIGtlZXAgaXQKPiB0aGUgd2F5IGl0 IGlzIGluIHRoaXMgcGF0Y2ggc2VyaWVzLgoKSSdkIGxpa2UgdGhlIG1vc3QgdG8gcGVyZm9ybSB0 aGUgYWJvdmUtcHJvcG9zZWQgImRpdm9yY2luZyIgb2YgdGhlIERUCm92ZXJsYXkgdGVzdHMgZnJv bSBDT05GSUdfT0ZfQUxMX0RUQlMsIHNvIHdlIGRvbid0IGhhdmUgdG8gZW5hYmxlIGFueQphZGRp dGlvbmFsIG9wdGlvbnMgdG8gaGF2ZSB0aGUgb3ZlcmxheSB0ZXN0cyBydW4gYXV0b21hdGljYWxs eSwgYnV0CnRvIGtlZXAgLmR0Ym8gZmlsZW5hbWVzIGluIGR0Yi0kKENPTkZJR19BUkNIX1hZWiku ICBJIHRoaW5rIHRoYXQgd291bGQKYnJpbmcgdGhlIGJlc3Qgb2YgYm90aCB3b3JsZHMsIHNvIHRv IHNwZWFrLgoKPiBBZGRpdGlvbmFsbHksIGRlcGVuZGluZyBvbiB0aGUgZmVlZGJhY2ssIEkgYXNz dW1lIHdlIHdhbnQgdG8gbWlncmF0ZQo+IGFsbCBjdXJyZW50IGFyY2hpdGVjdHVyZXMgYnVpbGRp bmcgRFRCTyB0byBiZSBjb25zaXN0ZW50IGFuZCB1c2UgdGhlCj4gc2FtZSBsb2dpYyAocGVyaGFw cyBub3QgZm9yIE1lZGlhdGVrIGJlY2F1c2UgZG9pbmcgc28gd291bGQga2VlcCB0aGUKPiBEVCBz eW1ib2xzIGluIHRoZSBEVEIsIHdoaWNoIGRyYXN0aWNhbGx5IGluY3JlYXNlcyB0aGUgc2l6ZSBv ZiB0aGUKPiBEVCkuCj4gCj4gRG9lcyBhbnlvbmUgZnJvbSBEVCBtYWludGFpbmVyc2hpcCBoYXZl IGZlZWRiYWNrIHRvIHByb3ZpZGUgb24gd2hhdCBpcwo+IGV4cGVjdGVkIGhlcmUgZ2VuZXJhbGx5 IHdydCBidWlsZGluZyBhbmQgdGVzdGluZyBEVEJPcz8KPiAKPiBEb2VzIEhlaWtvIGhhdmUgYW4g b3BpbmlvbiBvbiB3aGF0IGhlIHdvdWxkIHByZWZlciB0byBzZWUgaGFwcGVuaW5nCj4gZm9yIFJv Y2tjaGlwPwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K TGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1y b2NrY2hpcAo=