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 0A4D0C369D9 for ; Wed, 30 Apr 2025 10:18:43 +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-Type: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date :Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=WPJRIRjIVSNpyQoQChOyubUqA46qURdU/3MhDLyhuMA=; b=fVAhchq8wL1jJ6sRe6OCgNNUEX w99UZDMMP7AInAW6+2dCBiMp2JvvhNy5nI25yF0uQI70E+r8J4Cl63wxUqagI+9ufqbNiCKnqjm0e q5GMmXze/UuB0gOaxD4Vo/5HpTqJf3z/WqwTCTw5izBNWLPDJd/uRz/eTrWbTZ9u4xz+nDWBO+jQC FeRUwH3h3Ra8eRnQsdAun9Vj/gxCWvTJHxxfMOLURbjbmtZqDCOPc3Q9ykHPq1REo0EdBd//2MOql WCtrL6wihr31mROtchubhzPjwgs9LDteQsjxu4Kozze9qsPcRd5gxZtQ0GVxS+v3HsKmt8XUzx7wV kIqAySzQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uA4WP-0000000CVKJ-0bjg; Wed, 30 Apr 2025 10:18:33 +0000 Received: from gloria.sntech.de ([185.11.138.130]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uA3yB-0000000CPjn-463r; Wed, 30 Apr 2025 09:43:13 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Type:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=WPJRIRjIVSNpyQoQChOyubUqA46qURdU/3MhDLyhuMA=; b=iH2jCh3nF+5D+w/4JTWbSM4goC lDV6IqfGiig3EW29GLuNMI/wtYevpDoGkmc7pXJAqXOnViyXgnfPvxfXtgHxJ1zl3ToRmZNI4KJAU 9YyDvRoFtfrcsmp3oq45MS1YWgbbDFkD/in20lJijdwbny+0LQUbYG+4DIb2rd4CL1QLuEkmZ5Efz 8mRi0pY6pHLbfU8GqGt/41ijHDGtSgAw6ll6+ejoJSsOWWFeg3gxoW1YLz1dMFWIJSfUYQovTu62X HxZaVwvNP6dLxhcEzFqccpEHKHWK5N6N87OjzRSO6LMWeVM0CyQiLYOW0XNWCpzU6YXz0JISLmY4H ZgCPZIhw==; Received: from i53875ba4.versanet.de ([83.135.91.164] helo=diego.localnet) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uA3xi-0004AU-M6; Wed, 30 Apr 2025 11:42:42 +0200 From: Heiko =?UTF-8?B?U3TDvGJuZXI=?= To: Mehdi Djait , Maxime Chevallier , =?UTF-8?B?VGjDqW8=?= Lebrun , Gerald Loacker , Thomas Petazzoni , Laurent Pinchart , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Kever Yang , Nicolas Dufresne , Sebastian Reichel , Collabora Kernel Team , Paul Kocialkowski , Alexander Shiyan , Val Packett , Rob Herring , Philipp Zabel , Sakari Ailus , michael.riesch@collabora.com Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, Michael Riesch , Michael Riesch Subject: Re: [PATCH v6 01/13] Documentation: admin-guide: media: add rockchip camera interface Date: Wed, 30 Apr 2025 11:42:41 +0200 Message-ID: <1833589.VLH7GnMWUR@diego> In-Reply-To: <20240220-rk3568-vicap-v6-1-d2f5fbee1551@collabora.com> References: <20240220-rk3568-vicap-v6-0-d2f5fbee1551@collabora.com> <20240220-rk3568-vicap-v6-1-d2f5fbee1551@collabora.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250430_024312_009141_8FCEFBAF X-CRM114-Status: GOOD ( 28.19 ) 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 Hey Michael, Am Mittwoch, 30. April 2025, 11:15:50 Mitteleurop=C3=A4ische Sommerzeit sch= rieb Michael Riesch via B4 Relay: > From: Michael Riesch >=20 > Add a document that describes the different variants of the Rockchip > Camera Interface (CIF), their hardware layout, as well as their > representation in the media controller centric rkcif device driver, > which is located under drivers/media/platform/rockchip/rkcif. >=20 > Signed-off-by: Michael Riesch > diff --git a/Documentation/admin-guide/media/rkcif.rst b/Documentation/ad= min-guide/media/rkcif.rst > new file mode 100644 > index 000000000000..f35f644a54a0 > --- /dev/null > +++ b/Documentation/admin-guide/media/rkcif.rst > @@ -0,0 +1,83 @@ > +.. SPDX-License-Identifier: GPL-2.0 > + > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +Rockchip Camera Interface (CIF) > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +Introduction > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +The Rockchip Camera Interface (CIF) is featured in many Rockchip SoCs in > +different variants. > +The different variants are combinations of common building blocks, such = as > + > +* INTERFACE blocks of different types, namely > + > + * the Digital Video Port (DVP, a parallel data interface) > + * the interface block for the MIPI CSI-2 receiver > + > +* CROP units > + > +* MIPI CSI-2 receiver (not available on all variants): This unit is refe= rred > + to as MIPI CSI HOST in the Rockchip documentation. > + Technically, it is a separate hardware block, but it is strongly coupl= ed to > + the CIF and therefore included here. > + > +* MUX units (not available on all variants) that pass the video data to = an > + image signal processor (ISP) > + > +* SCALE units (not available on all variants) > + > +* DMA engines that transfer video data into system memory using a > + double-buffering mechanism called ping-pong mode > + > +* Support for four streams per INTERFACE block (not available on all > + variants), e.g., for MIPI CSI-2 Virtual Channels (VCs) > + > +This document describes the different variants of the CIF, their hardware > +layout, as well as their representation in the media controller centric = rkcif > +device driver, which is located under drivers/media/platform/rockchip/rk= cif. > + > +Variants > +=3D=3D=3D=3D=3D=3D=3D=3D > + > +Rockchip PX30 Video Input Processor (VIP) > +----------------------------------------- > + > +The PX30 Video Input Processor (VIP) features a digital video port that = accepts > +parallel video data or BT.656. > +Since these protocols do not feature multiple streams, the VIP has one D= MA > +engine that transfers the input video data into system memory. > + > +The rkcif driver represents this hardware variant by exposing one V4L2 s= ubdevice > +(the DVP INTERFACE/CROP block) and one V4L2 device (the DVP DMA engine). > + > +Rockchip RK3568 Video Capture (VICAP) > +------------------------------------- > + > +The RK3568 Video Capture (VICAP) unit features a digital video port and = a MIPI > +CSI-2 receiver that can receive video data independently. > +The DVP accepts parallel video data, BT.656 and BT.1120. > +Since the BT.1120 protocol may feature more than one stream, the RK3568 = VICAP > +DVP features four DMA engines that can capture different streams. > +Similarly, the RK3568 VICAP MIPI CSI-2 receiver features four DMA engine= s to > +handle different Virtual Channels (VCs). > + > +The rkcif driver represents this hardware variant by exposing up to thre= e V4L2 > +subdevices: > + > +* rkcif-dvp0: INTERFACE/CROP block for the DVP > +* rockchip-mipi-csi fdfb0000.csi: MIPI CSI-2 receiver > +* rkcif-mipi0: INTERFACE/CROP block for the MIPI CSI-2 receiver > + > +and up to five V4L2 devices: > + > +* rkcif-dvp0-id0: The support for multiple streams on the DVP is not yet > + implemented, as it is hard to find test hardware. Thus, this video dev= ice > + represents the first DMA engine of the RK3568 DVP. > +* rkcif-mipi0-id[0...3]: The four DMA engines of the RK3568 MIPI CSI-2 > + receiver. Each DMA engine can capture a certain MIPI CSI-2 Virtual Cha= nnel. > + > +.. kernel-figure:: rkcif-rk3568-vicap.dot > + :alt: Topology of the RK3568 Video Capture (VICAP) unit > + :align: center in patch 6 you already have a block stating Finally, the RK3588 VICAP unit constitutes an essential piece of the camera interface with one DVP, six MIPI CSI-2 receivers, scale/crop units, and a data path multiplexer (to scaler units, to ISP, ...). so the rk3588 seems to be on the table "soonish" ;-) . So maybe also already include it here in the description already, if there is a next version, and your investigation is already that far along? Otherwise a really nice (and concise) read, and made me understand the setup somewhat nicely. Reviewed-by: Heiko Stuebner 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 F0612C3ABA9 for ; Wed, 30 Apr 2025 10:18:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=fMdjGTkUr5KUfDjKlVrWUEXowJbbFatsnXDQP9T/HBA=; b=mpPGxw1i8JcmaU kpBz4xSR0nL6Y/NG+ds8Ro57aZ6AbNEQzBY9ltF+yQ3Kct42qtARnrgzmSqP8iSohgd/Tl2fzQ10M IkFntCiYxSRXNMBmT/xqgTcdeFAsBvuFFiG8gr4C8sOti+ppM1RVDiNb3ZfN+xY16iNFlJ6hpLm8x HywTLGNVcyQUDFqTIwYC8ji7aX3g6aXkPQS2bA9XLsO0IpwmFUKOCNxpQIJl/SLut/bgKlIJx134/ IjnzAb4eAtR3iGkcuRKSIPtEXbXZBSocnfHcrm+R88ReBBX/Aqf24u8FB02q+KiRwchWtuZcKIw2Y yXB5/84wt96paJoMY0Ng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uA4WP-0000000CVKa-2jyn; Wed, 30 Apr 2025 10:18:33 +0000 Received: from gloria.sntech.de ([185.11.138.130]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uA3yB-0000000CPjn-463r; Wed, 30 Apr 2025 09:43:13 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Type:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=WPJRIRjIVSNpyQoQChOyubUqA46qURdU/3MhDLyhuMA=; b=iH2jCh3nF+5D+w/4JTWbSM4goC lDV6IqfGiig3EW29GLuNMI/wtYevpDoGkmc7pXJAqXOnViyXgnfPvxfXtgHxJ1zl3ToRmZNI4KJAU 9YyDvRoFtfrcsmp3oq45MS1YWgbbDFkD/in20lJijdwbny+0LQUbYG+4DIb2rd4CL1QLuEkmZ5Efz 8mRi0pY6pHLbfU8GqGt/41ijHDGtSgAw6ll6+ejoJSsOWWFeg3gxoW1YLz1dMFWIJSfUYQovTu62X HxZaVwvNP6dLxhcEzFqccpEHKHWK5N6N87OjzRSO6LMWeVM0CyQiLYOW0XNWCpzU6YXz0JISLmY4H ZgCPZIhw==; Received: from i53875ba4.versanet.de ([83.135.91.164] helo=diego.localnet) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uA3xi-0004AU-M6; Wed, 30 Apr 2025 11:42:42 +0200 From: Heiko =?UTF-8?B?U3TDvGJuZXI=?= To: Mehdi Djait , Maxime Chevallier , =?UTF-8?B?VGjDqW8=?= Lebrun , Gerald Loacker , Thomas Petazzoni , Laurent Pinchart , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Kever Yang , Nicolas Dufresne , Sebastian Reichel , Collabora Kernel Team , Paul Kocialkowski , Alexander Shiyan , Val Packett , Rob Herring , Philipp Zabel , Sakari Ailus , michael.riesch@collabora.com Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, Michael Riesch , Michael Riesch Subject: Re: [PATCH v6 01/13] Documentation: admin-guide: media: add rockchip camera interface Date: Wed, 30 Apr 2025 11:42:41 +0200 Message-ID: <1833589.VLH7GnMWUR@diego> In-Reply-To: <20240220-rk3568-vicap-v6-1-d2f5fbee1551@collabora.com> References: <20240220-rk3568-vicap-v6-0-d2f5fbee1551@collabora.com> <20240220-rk3568-vicap-v6-1-d2f5fbee1551@collabora.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250430_024312_009141_8FCEFBAF X-CRM114-Status: GOOD ( 28.19 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org SGV5IE1pY2hhZWwsCgpBbSBNaXR0d29jaCwgMzAuIEFwcmlsIDIwMjUsIDExOjE1OjUwIE1pdHRl bGV1cm9ww6Rpc2NoZSBTb21tZXJ6ZWl0IHNjaHJpZWIgTWljaGFlbCBSaWVzY2ggdmlhIEI0IFJl bGF5Ogo+IEZyb206IE1pY2hhZWwgUmllc2NoIDxtaWNoYWVsLnJpZXNjaEBjb2xsYWJvcmEuY29t Pgo+IAo+IEFkZCBhIGRvY3VtZW50IHRoYXQgZGVzY3JpYmVzIHRoZSBkaWZmZXJlbnQgdmFyaWFu dHMgb2YgdGhlIFJvY2tjaGlwCj4gQ2FtZXJhIEludGVyZmFjZSAoQ0lGKSwgdGhlaXIgaGFyZHdh cmUgbGF5b3V0LCBhcyB3ZWxsIGFzIHRoZWlyCj4gcmVwcmVzZW50YXRpb24gaW4gdGhlIG1lZGlh IGNvbnRyb2xsZXIgY2VudHJpYyBya2NpZiBkZXZpY2UgZHJpdmVyLAo+IHdoaWNoIGlzIGxvY2F0 ZWQgdW5kZXIgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yb2NrY2hpcC9ya2NpZi4KPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBNaWNoYWVsIFJpZXNjaCA8bWljaGFlbC5yaWVzY2hAY29sbGFib3JhLmNvbT4K Cj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbWVkaWEvcmtjaWYucnN0 IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tZWRpYS9ya2NpZi5yc3QKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZjM1ZjY0NGE1NGEwCj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbWVkaWEvcmtjaWYucnN0Cj4g QEAgLTAsMCArMSw4MyBAQAo+ICsuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ ICsKPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiArUm9ja2No aXAgQ2FtZXJhIEludGVyZmFjZSAoQ0lGKQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQo+ICsKPiArSW50cm9kdWN0aW9uCj4gKz09PT09PT09PT09PQo+ICsKPiAr VGhlIFJvY2tjaGlwIENhbWVyYSBJbnRlcmZhY2UgKENJRikgaXMgZmVhdHVyZWQgaW4gbWFueSBS b2NrY2hpcCBTb0NzIGluCj4gK2RpZmZlcmVudCB2YXJpYW50cy4KPiArVGhlIGRpZmZlcmVudCB2 YXJpYW50cyBhcmUgY29tYmluYXRpb25zIG9mIGNvbW1vbiBidWlsZGluZyBibG9ja3MsIHN1Y2gg YXMKPiArCj4gKyogSU5URVJGQUNFIGJsb2NrcyBvZiBkaWZmZXJlbnQgdHlwZXMsIG5hbWVseQo+ ICsKPiArICAqIHRoZSBEaWdpdGFsIFZpZGVvIFBvcnQgKERWUCwgYSBwYXJhbGxlbCBkYXRhIGlu dGVyZmFjZSkKPiArICAqIHRoZSBpbnRlcmZhY2UgYmxvY2sgZm9yIHRoZSBNSVBJIENTSS0yIHJl Y2VpdmVyCj4gKwo+ICsqIENST1AgdW5pdHMKPiArCj4gKyogTUlQSSBDU0ktMiByZWNlaXZlciAo bm90IGF2YWlsYWJsZSBvbiBhbGwgdmFyaWFudHMpOiBUaGlzIHVuaXQgaXMgcmVmZXJyZWQKPiAr ICB0byBhcyBNSVBJIENTSSBIT1NUIGluIHRoZSBSb2NrY2hpcCBkb2N1bWVudGF0aW9uLgo+ICsg IFRlY2huaWNhbGx5LCBpdCBpcyBhIHNlcGFyYXRlIGhhcmR3YXJlIGJsb2NrLCBidXQgaXQgaXMg c3Ryb25nbHkgY291cGxlZCB0bwo+ICsgIHRoZSBDSUYgYW5kIHRoZXJlZm9yZSBpbmNsdWRlZCBo ZXJlLgo+ICsKPiArKiBNVVggdW5pdHMgKG5vdCBhdmFpbGFibGUgb24gYWxsIHZhcmlhbnRzKSB0 aGF0IHBhc3MgdGhlIHZpZGVvIGRhdGEgdG8gYW4KPiArICBpbWFnZSBzaWduYWwgcHJvY2Vzc29y IChJU1ApCj4gKwo+ICsqIFNDQUxFIHVuaXRzIChub3QgYXZhaWxhYmxlIG9uIGFsbCB2YXJpYW50 cykKPiArCj4gKyogRE1BIGVuZ2luZXMgdGhhdCB0cmFuc2ZlciB2aWRlbyBkYXRhIGludG8gc3lz dGVtIG1lbW9yeSB1c2luZyBhCj4gKyAgZG91YmxlLWJ1ZmZlcmluZyBtZWNoYW5pc20gY2FsbGVk IHBpbmctcG9uZyBtb2RlCj4gKwo+ICsqIFN1cHBvcnQgZm9yIGZvdXIgc3RyZWFtcyBwZXIgSU5U RVJGQUNFIGJsb2NrIChub3QgYXZhaWxhYmxlIG9uIGFsbAo+ICsgIHZhcmlhbnRzKSwgZS5nLiwg Zm9yIE1JUEkgQ1NJLTIgVmlydHVhbCBDaGFubmVscyAoVkNzKQo+ICsKPiArVGhpcyBkb2N1bWVu dCBkZXNjcmliZXMgdGhlIGRpZmZlcmVudCB2YXJpYW50cyBvZiB0aGUgQ0lGLCB0aGVpciBoYXJk d2FyZQo+ICtsYXlvdXQsIGFzIHdlbGwgYXMgdGhlaXIgcmVwcmVzZW50YXRpb24gaW4gdGhlIG1l ZGlhIGNvbnRyb2xsZXIgY2VudHJpYyBya2NpZgo+ICtkZXZpY2UgZHJpdmVyLCB3aGljaCBpcyBs b2NhdGVkIHVuZGVyIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcm9ja2NoaXAvcmtjaWYuCj4gKwo+ ICtWYXJpYW50cwo+ICs9PT09PT09PQo+ICsKPiArUm9ja2NoaXAgUFgzMCBWaWRlbyBJbnB1dCBQ cm9jZXNzb3IgKFZJUCkKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPiArCj4gK1RoZSBQWDMwIFZpZGVvIElucHV0IFByb2Nlc3NvciAoVklQKSBmZWF0dXJlcyBh IGRpZ2l0YWwgdmlkZW8gcG9ydCB0aGF0IGFjY2VwdHMKPiArcGFyYWxsZWwgdmlkZW8gZGF0YSBv ciBCVC42NTYuCj4gK1NpbmNlIHRoZXNlIHByb3RvY29scyBkbyBub3QgZmVhdHVyZSBtdWx0aXBs ZSBzdHJlYW1zLCB0aGUgVklQIGhhcyBvbmUgRE1BCj4gK2VuZ2luZSB0aGF0IHRyYW5zZmVycyB0 aGUgaW5wdXQgdmlkZW8gZGF0YSBpbnRvIHN5c3RlbSBtZW1vcnkuCj4gKwo+ICtUaGUgcmtjaWYg ZHJpdmVyIHJlcHJlc2VudHMgdGhpcyBoYXJkd2FyZSB2YXJpYW50IGJ5IGV4cG9zaW5nIG9uZSBW NEwyIHN1YmRldmljZQo+ICsodGhlIERWUCBJTlRFUkZBQ0UvQ1JPUCBibG9jaykgYW5kIG9uZSBW NEwyIGRldmljZSAodGhlIERWUCBETUEgZW5naW5lKS4KPiArCj4gK1JvY2tjaGlwIFJLMzU2OCBW aWRlbyBDYXB0dXJlIChWSUNBUCkKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICsKPiArVGhlIFJLMzU2OCBWaWRlbyBDYXB0dXJlIChWSUNBUCkgdW5pdCBmZWF0dXJl cyBhIGRpZ2l0YWwgdmlkZW8gcG9ydCBhbmQgYSBNSVBJCj4gK0NTSS0yIHJlY2VpdmVyIHRoYXQg Y2FuIHJlY2VpdmUgdmlkZW8gZGF0YSBpbmRlcGVuZGVudGx5Lgo+ICtUaGUgRFZQIGFjY2VwdHMg cGFyYWxsZWwgdmlkZW8gZGF0YSwgQlQuNjU2IGFuZCBCVC4xMTIwLgo+ICtTaW5jZSB0aGUgQlQu MTEyMCBwcm90b2NvbCBtYXkgZmVhdHVyZSBtb3JlIHRoYW4gb25lIHN0cmVhbSwgdGhlIFJLMzU2 OCBWSUNBUAo+ICtEVlAgZmVhdHVyZXMgZm91ciBETUEgZW5naW5lcyB0aGF0IGNhbiBjYXB0dXJl IGRpZmZlcmVudCBzdHJlYW1zLgo+ICtTaW1pbGFybHksIHRoZSBSSzM1NjggVklDQVAgTUlQSSBD U0ktMiByZWNlaXZlciBmZWF0dXJlcyBmb3VyIERNQSBlbmdpbmVzIHRvCj4gK2hhbmRsZSBkaWZm ZXJlbnQgVmlydHVhbCBDaGFubmVscyAoVkNzKS4KPiArCj4gK1RoZSBya2NpZiBkcml2ZXIgcmVw cmVzZW50cyB0aGlzIGhhcmR3YXJlIHZhcmlhbnQgYnkgZXhwb3NpbmcgdXAgdG8gdGhyZWUgVjRM Mgo+ICtzdWJkZXZpY2VzOgo+ICsKPiArKiBya2NpZi1kdnAwOiBJTlRFUkZBQ0UvQ1JPUCBibG9j ayBmb3IgdGhlIERWUAo+ICsqIHJvY2tjaGlwLW1pcGktY3NpIGZkZmIwMDAwLmNzaTogTUlQSSBD U0ktMiByZWNlaXZlcgo+ICsqIHJrY2lmLW1pcGkwOiBJTlRFUkZBQ0UvQ1JPUCBibG9jayBmb3Ig dGhlIE1JUEkgQ1NJLTIgcmVjZWl2ZXIKPiArCj4gK2FuZCB1cCB0byBmaXZlIFY0TDIgZGV2aWNl czoKPiArCj4gKyogcmtjaWYtZHZwMC1pZDA6IFRoZSBzdXBwb3J0IGZvciBtdWx0aXBsZSBzdHJl YW1zIG9uIHRoZSBEVlAgaXMgbm90IHlldAo+ICsgIGltcGxlbWVudGVkLCBhcyBpdCBpcyBoYXJk IHRvIGZpbmQgdGVzdCBoYXJkd2FyZS4gVGh1cywgdGhpcyB2aWRlbyBkZXZpY2UKPiArICByZXBy ZXNlbnRzIHRoZSBmaXJzdCBETUEgZW5naW5lIG9mIHRoZSBSSzM1NjggRFZQLgo+ICsqIHJrY2lm LW1pcGkwLWlkWzAuLi4zXTogVGhlIGZvdXIgRE1BIGVuZ2luZXMgb2YgdGhlIFJLMzU2OCBNSVBJ IENTSS0yCj4gKyAgcmVjZWl2ZXIuIEVhY2ggRE1BIGVuZ2luZSBjYW4gY2FwdHVyZSBhIGNlcnRh aW4gTUlQSSBDU0ktMiBWaXJ0dWFsIENoYW5uZWwuCj4gKwo+ICsuLiBrZXJuZWwtZmlndXJlOjog cmtjaWYtcmszNTY4LXZpY2FwLmRvdAo+ICsgICAgOmFsdDogICBUb3BvbG9neSBvZiB0aGUgUksz NTY4IFZpZGVvIENhcHR1cmUgKFZJQ0FQKSB1bml0Cj4gKyAgICA6YWxpZ246IGNlbnRlcgoKaW4g cGF0Y2ggNiB5b3UgYWxyZWFkeSBoYXZlIGEgYmxvY2sgc3RhdGluZwoKCUZpbmFsbHksIHRoZSBS SzM1ODggVklDQVAgdW5pdCBjb25zdGl0dXRlcyBhbiBlc3NlbnRpYWwgcGllY2Ugb2YgdGhlCglj YW1lcmEgaW50ZXJmYWNlIHdpdGggb25lIERWUCwgc2l4IE1JUEkgQ1NJLTIgcmVjZWl2ZXJzLCBz Y2FsZS9jcm9wCgl1bml0cywgYW5kIGEgZGF0YSBwYXRoIG11bHRpcGxleGVyICh0byBzY2FsZXIg dW5pdHMsIHRvIElTUCwgLi4uKS4KCnNvIHRoZSByazM1ODggc2VlbXMgdG8gYmUgb24gdGhlIHRh YmxlICJzb29uaXNoIiA7LSkgLgpTbyBtYXliZSBhbHNvIGFscmVhZHkgaW5jbHVkZSBpdCBoZXJl IGluIHRoZSBkZXNjcmlwdGlvbiBhbHJlYWR5LCBpZiB0aGVyZQppcyBhIG5leHQgdmVyc2lvbiwg YW5kIHlvdXIgaW52ZXN0aWdhdGlvbiBpcyBhbHJlYWR5IHRoYXQgZmFyIGFsb25nPwoKT3RoZXJ3 aXNlIGEgcmVhbGx5IG5pY2UgKGFuZCBjb25jaXNlKSByZWFkLCBhbmQgbWFkZSBtZSB1bmRlcnN0 YW5kIHRoZQpzZXR1cCBzb21ld2hhdCBuaWNlbHkuCgpSZXZpZXdlZC1ieTogSGVpa28gU3R1ZWJu ZXIgPGhlaWtvQHNudGVjaC5kZT4KCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlw QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1yb2NrY2hpcAo=