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=-5.5 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 59054C433E2 for ; Fri, 4 Sep 2020 12:20:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 29B7420791 for ; Fri, 4 Sep 2020 12:20:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729941AbgIDMUi (ORCPT ); Fri, 4 Sep 2020 08:20:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40338 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729932AbgIDMUf (ORCPT ); Fri, 4 Sep 2020 08:20:35 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 61A49C061244 for ; Fri, 4 Sep 2020 05:20:33 -0700 (PDT) Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kEAhU-0007Vg-I5; Fri, 04 Sep 2020 14:20:16 +0200 Received: from mtr by ptx.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1kEAhS-0007Fc-P3; Fri, 04 Sep 2020 14:20:14 +0200 Date: Fri, 4 Sep 2020 14:20:14 +0200 From: Michael Tretter To: Marek Szyprowski Cc: Krzysztof Kozlowski , =?utf-8?Q?Bart=C5=82omiej_=C5=BBo=C5=82nierkiewicz?= , Sylwester Nawrocki , Andrzej Hajda , Inki Dae , Joonyoung Shim , Seung-Woo Kim , dri-devel@lists.freedesktop.org, "linux-samsung-soc@vger.kernel.org" , kernel@pengutronix.de, Laurent.pinchart@ideasonboard.com, narmstrong@baylibre.com Subject: Re: [PATCH 00/16] drm/exynos: Convert driver to drm bridge Message-ID: <20200904122014.GA7459@pengutronix.de> References: <20200903165717.1272492-1-m.tretter@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-IRC: #ptxdist @freenode X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-Uptime: 14:06:05 up 197 days, 19:36, 134 users, load average: 0.48, 0.62, 0.37 User-Agent: Mutt/1.10.1 (2018-07-13) X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c0 X-SA-Exim-Mail-From: mtr@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-samsung-soc@vger.kernel.org Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org Hi Marek, On Fri, 04 Sep 2020 10:31:12 +0200, Marek Szyprowski wrote: > Hi Krzysztof, > > On 03.09.2020 22:08, Krzysztof Kozlowski wrote: > > On Thu, 3 Sep 2020 at 18:57, Michael Tretter wrote: > >> the Exynos MIPI DSI Phy is also found on the i.MX8M Mini. However, on the > >> i.MX8M Mini, the bridge is driven by an LCDIF display controller instead of > >> the Exynos Decon. The driver for the LCDIF does not use the component > >> framework, but uses drm bridges. > >> > >> This series converts the Exynos MIPI DSI into a drm bridge and makes it usable > >> with such drivers. Although the driver is converted, it still supports the > >> component framework API to stay compliant with the Exynos DRM driver. > >> > >> Unfortunately, I don't have any Exynos SoC to actually test the series. I > >> tested the driver with a few additional unfinished patches on the i.MX8M Mini > >> EVK, but somebody should definitely verify that the driver is still working on > >> Exynos hardware. > > Hi Michael, > > > > +Cc maintainers and folks in Samsung. > > > > Please follow the script/get_maintainers.pl to get the list of > > maintainers of the Exynos DRM drivers. First they could provide you > > with testing, second they might be the people merging the driver. > > > > Unfortunately I cannot provide proper testing as none of my boards > > have a display attached. :) > > Thanks for adding cc to me. Sadly this patchset crashed badly on Samsung > Exnyos based boards. Here is the log from Exynos3250-based Rinato: Thanks for testing. > > exynos4-fb 11c00000.fimd: Adding to iommu group 0 > OF: graph: no port node found in /soc/fimd@11c00000 > [drm] Exynos DRM: using 11c00000.fimd device for DMA mapping operations > exynos-drm exynos-drm: bound 11c00000.fimd (ops fimd_component_ops) > OF: graph: no port node found in /soc/dsi@11c80000 > 8<--- cut here --- > Unable to handle kernel NULL pointer dereference at virtual address 00000650 > pgd = (ptrval) > [00000650] *pgd=00000000 > Internal error: Oops: 5 [#1] PREEMPT SMP ARM > Modules linked in: > CPU: 1 PID: 1 Comm: swapper/0 Not tainted > 5.9.0-rc2-next-20200824-00017-g3e9b20f7eb0d #1576 > Hardware name: Samsung Exynos (Flattened Device Tree) > PC is at samsung_dsim_resume+0x18/0x120 > LR is at genpd_runtime_resume+0x160/0x278 > ... > [] (samsung_dsim_resume) from [] > (genpd_runtime_resume+0x160/0x278) > [] (genpd_runtime_resume) from [] > (__rpm_callback+0xbc/0x124) > [] (__rpm_callback) from [] (rpm_callback+0x20/0x80) > [] (rpm_callback) from [] (rpm_resume+0x388/0x714) > [] (rpm_resume) from [] (__pm_runtime_resume+0x64/0x9c) > [] (__pm_runtime_resume) from [] > (__device_attach+0xcc/0x17c) > [] (__device_attach) from [] > (bus_probe_device+0x88/0x90) > [] (bus_probe_device) from [] (device_add+0x4e8/0x79c) > [] (device_add) from [] > (mipi_dsi_device_register_full+0xc8/0x148) > [] (mipi_dsi_device_register_full) from [] > (mipi_dsi_host_register+0x50/0x168) > [] (mipi_dsi_host_register) from [] > (samsung_dsim_bind+0x368/0x40c) > [] (samsung_dsim_bind) from [] > (exynos_dsi_bind+0x78/0x88) > [] (exynos_dsi_bind) from [] > (component_bind_all+0xfc/0x290) > [] (component_bind_all) from [] > (exynos_drm_bind+0xe4/0x19c) > [] (exynos_drm_bind) from [] > (try_to_bring_up_master+0x1e4/0x2c4) > [] (try_to_bring_up_master) from [] > (component_master_add_with_match+0xd4/0x108) > [] (component_master_add_with_match) from [] > (exynos_drm_platform_probe+0xe4/0x110) > [] (exynos_drm_platform_probe) from [] > (platform_drv_probe+0x6c/0xa4) > [] (platform_drv_probe) from [] > (really_probe+0x200/0x4fc) > [] (really_probe) from [] > (driver_probe_device+0x78/0x1fc) > [] (driver_probe_device) from [] > (device_driver_attach+0x58/0x60) > [] (device_driver_attach) from [] > (__driver_attach+0xdc/0x174) > [] (__driver_attach) from [] > (bus_for_each_dev+0x68/0xb4) > [] (bus_for_each_dev) from [] > (bus_add_driver+0x158/0x214) > [] (bus_add_driver) from [] (driver_register+0x78/0x110) > [] (driver_register) from [] > (exynos_drm_init+0xe4/0x118) > [] (exynos_drm_init) from [] > (do_one_initcall+0x8c/0x424) > [] (do_one_initcall) from [] > (kernel_init_freeable+0x190/0x1dc) > [] (kernel_init_freeable) from [] > (kernel_init+0x8/0x118) > [] (kernel_init) from [] (ret_from_fork+0x14/0x20) > Exception stack(0xd94a5fb0 to 0xd94a5ff8) > ... > ---[ end trace 1a053145d15f23dc ]--- > Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b > CPU0: stopping > CPU: 0 PID: 0 Comm: swapper/0 Tainted: G      D > 5.9.0-rc2-next-20200824-00017-g3e9b20f7eb0d #1576 > Hardware name: Samsung Exynos (Flattened Device Tree) > [] (unwind_backtrace) from [] (show_stack+0x10/0x14) > [] (show_stack) from [] (dump_stack+0xbc/0xe8) > [] (dump_stack) from [] (handle_IPI+0x3e0/0x428) > [] (handle_IPI) from [] (gic_handle_irq+0x98/0x9c) > [] (gic_handle_irq) from [] (__irq_svc+0x70/0xb0) > Exception stack(0xc1101f08 to 0xc1101f50) > ... > [] (__irq_svc) from [] (arch_cpu_idle+0x24/0x44) > [] (arch_cpu_idle) from [] (do_idle+0x1bc/0x2bc) > [] (do_idle) from [] (cpu_startup_entry+0x18/0x1c) > [] (cpu_startup_entry) from [] > (start_kernel+0x628/0x664) > [] (start_kernel) from [<00000000>] (0x0) > ---[ end Kernel panic - not syncing: Attempted to kill init! > exitcode=0x0000000b ]--- This and the other null pointer dereference look like two different problems. I will look into both of them and send an update. I will also try to come up with something to at least test the bind/unbind interface and reduce the code that I cannot test. > > I've didn't check the code yet, but the conversion also lacks "select > DRM_SAMSUNG_DSIM" in the Exynos DSI driver's Kconfig, as I wasn't even > able to compile it with the current exynos_defconfig. Dang, of course. I will fix it. 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=-5.5 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 691FEC43461 for ; Fri, 4 Sep 2020 12:20:30 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 3B6F22087C for ; Fri, 4 Sep 2020 12:20:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3B6F22087C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 931166E29A; Fri, 4 Sep 2020 12:20:29 +0000 (UTC) Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by gabe.freedesktop.org (Postfix) with ESMTPS id 144686E29A for ; Fri, 4 Sep 2020 12:20:28 +0000 (UTC) Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kEAhU-0007Vg-I5; Fri, 04 Sep 2020 14:20:16 +0200 Received: from mtr by ptx.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1kEAhS-0007Fc-P3; Fri, 04 Sep 2020 14:20:14 +0200 Date: Fri, 4 Sep 2020 14:20:14 +0200 From: Michael Tretter To: Marek Szyprowski Subject: Re: [PATCH 00/16] drm/exynos: Convert driver to drm bridge Message-ID: <20200904122014.GA7459@pengutronix.de> References: <20200903165717.1272492-1-m.tretter@pengutronix.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-IRC: #ptxdist @freenode X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-Uptime: 14:06:05 up 197 days, 19:36, 134 users, load average: 0.48, 0.62, 0.37 User-Agent: Mutt/1.10.1 (2018-07-13) X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c0 X-SA-Exim-Mail-From: mtr@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: dri-devel@lists.freedesktop.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linux-samsung-soc@vger.kernel.org" , Joonyoung Shim , =?utf-8?Q?Bart=C5=82omiej_=C5=BBo=C5=82nierkiewicz?= , narmstrong@baylibre.com, Seung-Woo Kim , Krzysztof Kozlowski , Andrzej Hajda , dri-devel@lists.freedesktop.org, kernel@pengutronix.de, Sylwester Nawrocki , Laurent.pinchart@ideasonboard.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgTWFyZWssCgpPbiBGcmksIDA0IFNlcCAyMDIwIDEwOjMxOjEyICswMjAwLCBNYXJlayBTenlw cm93c2tpIHdyb3RlOgo+IEhpIEtyenlzenRvZiwKPiAKPiBPbiAwMy4wOS4yMDIwIDIyOjA4LCBL cnp5c3p0b2YgS296bG93c2tpIHdyb3RlOgo+ID4gT24gVGh1LCAzIFNlcCAyMDIwIGF0IDE4OjU3 LCBNaWNoYWVsIFRyZXR0ZXIgPG0udHJldHRlckBwZW5ndXRyb25peC5kZT4gd3JvdGU6Cj4gPj4g dGhlIEV4eW5vcyBNSVBJIERTSSBQaHkgaXMgYWxzbyBmb3VuZCBvbiB0aGUgaS5NWDhNIE1pbmku IEhvd2V2ZXIsIG9uIHRoZQo+ID4+IGkuTVg4TSBNaW5pLCB0aGUgYnJpZGdlIGlzIGRyaXZlbiBi eSBhbiBMQ0RJRiBkaXNwbGF5IGNvbnRyb2xsZXIgaW5zdGVhZCBvZgo+ID4+IHRoZSBFeHlub3Mg RGVjb24uIFRoZSBkcml2ZXIgZm9yIHRoZSBMQ0RJRiBkb2VzIG5vdCB1c2UgdGhlIGNvbXBvbmVu dAo+ID4+IGZyYW1ld29yaywgYnV0IHVzZXMgZHJtIGJyaWRnZXMuCj4gPj4KPiA+PiBUaGlzIHNl cmllcyBjb252ZXJ0cyB0aGUgRXh5bm9zIE1JUEkgRFNJIGludG8gYSBkcm0gYnJpZGdlIGFuZCBt YWtlcyBpdCB1c2FibGUKPiA+PiB3aXRoIHN1Y2ggZHJpdmVycy4gQWx0aG91Z2ggdGhlIGRyaXZl ciBpcyBjb252ZXJ0ZWQsIGl0IHN0aWxsIHN1cHBvcnRzIHRoZQo+ID4+IGNvbXBvbmVudCBmcmFt ZXdvcmsgQVBJIHRvIHN0YXkgY29tcGxpYW50IHdpdGggdGhlIEV4eW5vcyBEUk0gZHJpdmVyLgo+ ID4+Cj4gPj4gVW5mb3J0dW5hdGVseSwgSSBkb24ndCBoYXZlIGFueSBFeHlub3MgU29DIHRvIGFj dHVhbGx5IHRlc3QgdGhlIHNlcmllcy4gIEkKPiA+PiB0ZXN0ZWQgdGhlIGRyaXZlciB3aXRoIGEg ZmV3IGFkZGl0aW9uYWwgdW5maW5pc2hlZCBwYXRjaGVzIG9uIHRoZSBpLk1YOE0gTWluaQo+ID4+ IEVWSywgYnV0IHNvbWVib2R5IHNob3VsZCBkZWZpbml0ZWx5IHZlcmlmeSB0aGF0IHRoZSBkcml2 ZXIgaXMgc3RpbGwgd29ya2luZyBvbgo+ID4+IEV4eW5vcyBoYXJkd2FyZS4KPiA+IEhpIE1pY2hh ZWwsCj4gPgo+ID4gK0NjIG1haW50YWluZXJzIGFuZCBmb2xrcyBpbiBTYW1zdW5nLgo+ID4KPiA+ IFBsZWFzZSBmb2xsb3cgdGhlIHNjcmlwdC9nZXRfbWFpbnRhaW5lcnMucGwgdG8gZ2V0IHRoZSBs aXN0IG9mCj4gPiBtYWludGFpbmVycyBvZiB0aGUgRXh5bm9zIERSTSBkcml2ZXJzLiBGaXJzdCB0 aGV5IGNvdWxkIHByb3ZpZGUgeW91Cj4gPiB3aXRoIHRlc3RpbmcsIHNlY29uZCB0aGV5IG1pZ2h0 IGJlIHRoZSBwZW9wbGUgbWVyZ2luZyB0aGUgZHJpdmVyLgo+ID4KPiA+IFVuZm9ydHVuYXRlbHkg SSBjYW5ub3QgcHJvdmlkZSBwcm9wZXIgdGVzdGluZyBhcyBub25lIG9mIG15IGJvYXJkcwo+ID4g aGF2ZSBhIGRpc3BsYXkgYXR0YWNoZWQuIDopCj4gCj4gVGhhbmtzIGZvciBhZGRpbmcgY2MgdG8g bWUuIFNhZGx5IHRoaXMgcGF0Y2hzZXQgY3Jhc2hlZCBiYWRseSBvbiBTYW1zdW5nIAo+IEV4bnlv cyBiYXNlZCBib2FyZHMuIEhlcmUgaXMgdGhlIGxvZyBmcm9tIEV4eW5vczMyNTAtYmFzZWQgUmlu YXRvOgoKVGhhbmtzIGZvciB0ZXN0aW5nLgoKPiAKPiBleHlub3M0LWZiIDExYzAwMDAwLmZpbWQ6 IEFkZGluZyB0byBpb21tdSBncm91cCAwCj4gT0Y6IGdyYXBoOiBubyBwb3J0IG5vZGUgZm91bmQg aW4gL3NvYy9maW1kQDExYzAwMDAwCj4gW2RybV0gRXh5bm9zIERSTTogdXNpbmcgMTFjMDAwMDAu ZmltZCBkZXZpY2UgZm9yIERNQSBtYXBwaW5nIG9wZXJhdGlvbnMKPiBleHlub3MtZHJtIGV4eW5v cy1kcm06IGJvdW5kIDExYzAwMDAwLmZpbWQgKG9wcyBmaW1kX2NvbXBvbmVudF9vcHMpCj4gT0Y6 IGdyYXBoOiBubyBwb3J0IG5vZGUgZm91bmQgaW4gL3NvYy9kc2lAMTFjODAwMDAKPiA4PC0tLSBj dXQgaGVyZSAtLS0KPiBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZl cmVuY2UgYXQgdmlydHVhbCBhZGRyZXNzIDAwMDAwNjUwCj4gcGdkID0gKHB0cnZhbCkKPiBbMDAw MDA2NTBdICpwZ2Q9MDAwMDAwMDAKPiBJbnRlcm5hbCBlcnJvcjogT29wczogNSBbIzFdIFBSRUVN UFQgU01QIEFSTQo+IE1vZHVsZXMgbGlua2VkIGluOgo+IENQVTogMSBQSUQ6IDEgQ29tbTogc3dh cHBlci8wIE5vdCB0YWludGVkIAo+IDUuOS4wLXJjMi1uZXh0LTIwMjAwODI0LTAwMDE3LWczZTli MjBmN2ViMGQgIzE1NzYKPiBIYXJkd2FyZSBuYW1lOiBTYW1zdW5nIEV4eW5vcyAoRmxhdHRlbmVk IERldmljZSBUcmVlKQo+IFBDIGlzIGF0IHNhbXN1bmdfZHNpbV9yZXN1bWUrMHgxOC8weDEyMAo+ IExSIGlzIGF0IGdlbnBkX3J1bnRpbWVfcmVzdW1lKzB4MTYwLzB4Mjc4Cj4gLi4uCj4gWzxjMDY0 ZjU5MD5dIChzYW1zdW5nX2RzaW1fcmVzdW1lKSBmcm9tIFs8YzA2ODUwMjA+XSAKPiAoZ2VucGRf cnVudGltZV9yZXN1bWUrMHgxNjAvMHgyNzgpCj4gWzxjMDY4NTAyMD5dIChnZW5wZF9ydW50aW1l X3Jlc3VtZSkgZnJvbSBbPGMwNjc3ZTg0Pl0gCj4gKF9fcnBtX2NhbGxiYWNrKzB4YmMvMHgxMjQp Cj4gWzxjMDY3N2U4ND5dIChfX3JwbV9jYWxsYmFjaykgZnJvbSBbPGMwNjc3ZjBjPl0gKHJwbV9j YWxsYmFjaysweDIwLzB4ODApCj4gWzxjMDY3N2YwYz5dIChycG1fY2FsbGJhY2spIGZyb20gWzxj MDY3NmFlYz5dIChycG1fcmVzdW1lKzB4Mzg4LzB4NzE0KQo+IFs8YzA2NzZhZWM+XSAocnBtX3Jl c3VtZSkgZnJvbSBbPGMwNjc2ZWRjPl0gKF9fcG1fcnVudGltZV9yZXN1bWUrMHg2NC8weDljKQo+ IFs8YzA2NzZlZGM+XSAoX19wbV9ydW50aW1lX3Jlc3VtZSkgZnJvbSBbPGMwNjY5ZTEwPl0gCj4g KF9fZGV2aWNlX2F0dGFjaCsweGNjLzB4MTdjKQo+IFs8YzA2NjllMTA+XSAoX19kZXZpY2VfYXR0 YWNoKSBmcm9tIFs8YzA2NjhlZTg+XSAKPiAoYnVzX3Byb2JlX2RldmljZSsweDg4LzB4OTApCj4g WzxjMDY2OGVlOD5dIChidXNfcHJvYmVfZGV2aWNlKSBmcm9tIFs8YzA2NjYwYTA+XSAoZGV2aWNl X2FkZCsweDRlOC8weDc5YykKPiBbPGMwNjY2MGEwPl0gKGRldmljZV9hZGQpIGZyb20gWzxjMDYz ZGMxYz5dIAo+IChtaXBpX2RzaV9kZXZpY2VfcmVnaXN0ZXJfZnVsbCsweGM4LzB4MTQ4KQo+IFs8 YzA2M2RjMWM+XSAobWlwaV9kc2lfZGV2aWNlX3JlZ2lzdGVyX2Z1bGwpIGZyb20gWzxjMDYzZGNl Yz5dIAo+IChtaXBpX2RzaV9ob3N0X3JlZ2lzdGVyKzB4NTAvMHgxNjgpCj4gWzxjMDYzZGNlYz5d IChtaXBpX2RzaV9ob3N0X3JlZ2lzdGVyKSBmcm9tIFs8YzA2NGQ5MGM+XSAKPiAoc2Ftc3VuZ19k c2ltX2JpbmQrMHgzNjgvMHg0MGMpCj4gWzxjMDY0ZDkwYz5dIChzYW1zdW5nX2RzaW1fYmluZCkg ZnJvbSBbPGMwNjQ0OWY4Pl0gCj4gKGV4eW5vc19kc2lfYmluZCsweDc4LzB4ODgpCj4gWzxjMDY0 NDlmOD5dIChleHlub3NfZHNpX2JpbmQpIGZyb20gWzxjMDY2MWVmMD5dIAo+IChjb21wb25lbnRf YmluZF9hbGwrMHhmYy8weDI5MCkKPiBbPGMwNjYxZWYwPl0gKGNvbXBvbmVudF9iaW5kX2FsbCkg ZnJvbSBbPGMwNjQxM2QwPl0gCj4gKGV4eW5vc19kcm1fYmluZCsweGU0LzB4MTljKQo+IFs8YzA2 NDEzZDA+XSAoZXh5bm9zX2RybV9iaW5kKSBmcm9tIFs8YzA2NjI0NjQ+XSAKPiAodHJ5X3RvX2Jy aW5nX3VwX21hc3RlcisweDFlNC8weDJjNCkKPiBbPGMwNjYyNDY0Pl0gKHRyeV90b19icmluZ191 cF9tYXN0ZXIpIGZyb20gWzxjMDY2MjlhND5dIAo+IChjb21wb25lbnRfbWFzdGVyX2FkZF93aXRo X21hdGNoKzB4ZDQvMHgxMDgpCj4gWzxjMDY2MjlhND5dIChjb21wb25lbnRfbWFzdGVyX2FkZF93 aXRoX21hdGNoKSBmcm9tIFs8YzA2NDEwZjg+XSAKPiAoZXh5bm9zX2RybV9wbGF0Zm9ybV9wcm9i ZSsweGU0LzB4MTEwKQo+IFs8YzA2NDEwZjg+XSAoZXh5bm9zX2RybV9wbGF0Zm9ybV9wcm9iZSkg ZnJvbSBbPGMwNjZjYjhjPl0gCj4gKHBsYXRmb3JtX2Rydl9wcm9iZSsweDZjLzB4YTQpCj4gWzxj MDY2Y2I4Yz5dIChwbGF0Zm9ybV9kcnZfcHJvYmUpIGZyb20gWzxjMDY2YTBjOD5dIAo+IChyZWFs bHlfcHJvYmUrMHgyMDAvMHg0ZmMpCj4gWzxjMDY2YTBjOD5dIChyZWFsbHlfcHJvYmUpIGZyb20g WzxjMDY2YTU4Yz5dIAo+IChkcml2ZXJfcHJvYmVfZGV2aWNlKzB4NzgvMHgxZmMpCj4gWzxjMDY2 YTU4Yz5dIChkcml2ZXJfcHJvYmVfZGV2aWNlKSBmcm9tIFs8YzA2NmE5NzQ+XSAKPiAoZGV2aWNl X2RyaXZlcl9hdHRhY2grMHg1OC8weDYwKQo+IFs8YzA2NmE5NzQ+XSAoZGV2aWNlX2RyaXZlcl9h dHRhY2gpIGZyb20gWzxjMDY2YWE1OD5dIAo+IChfX2RyaXZlcl9hdHRhY2grMHhkYy8weDE3NCkK PiBbPGMwNjZhYTU4Pl0gKF9fZHJpdmVyX2F0dGFjaCkgZnJvbSBbPGMwNjY3ZTUwPl0gCj4gKGJ1 c19mb3JfZWFjaF9kZXYrMHg2OC8weGI0KQo+IFs8YzA2NjdlNTA+XSAoYnVzX2Zvcl9lYWNoX2Rl dikgZnJvbSBbPGMwNjY5MTg0Pl0gCj4gKGJ1c19hZGRfZHJpdmVyKzB4MTU4LzB4MjE0KQo+IFs8 YzA2NjkxODQ+XSAoYnVzX2FkZF9kcml2ZXIpIGZyb20gWzxjMDY2YjkzYz5dIChkcml2ZXJfcmVn aXN0ZXIrMHg3OC8weDExMCkKPiBbPGMwNjZiOTNjPl0gKGRyaXZlcl9yZWdpc3RlcikgZnJvbSBb PGMwNjQxMmI4Pl0gCj4gKGV4eW5vc19kcm1faW5pdCsweGU0LzB4MTE4KQo+IFs8YzA2NDEyYjg+ XSAoZXh5bm9zX2RybV9pbml0KSBmcm9tIFs8YzAxMDIzZjQ+XSAKPiAoZG9fb25lX2luaXRjYWxs KzB4OGMvMHg0MjQpCj4gWzxjMDEwMjNmND5dIChkb19vbmVfaW5pdGNhbGwpIGZyb20gWzxjMTAw MTFhOD5dIAo+IChrZXJuZWxfaW5pdF9mcmVlYWJsZSsweDE5MC8weDFkYykKPiBbPGMxMDAxMWE4 Pl0gKGtlcm5lbF9pbml0X2ZyZWVhYmxlKSBmcm9tIFs8YzBhZThlNWM+XSAKPiAoa2VybmVsX2lu aXQrMHg4LzB4MTE4KQo+IFs8YzBhZThlNWM+XSAoa2VybmVsX2luaXQpIGZyb20gWzxjMDEwMDEx ND5dIChyZXRfZnJvbV9mb3JrKzB4MTQvMHgyMCkKPiBFeGNlcHRpb24gc3RhY2soMHhkOTRhNWZi MCB0byAweGQ5NGE1ZmY4KQo+IC4uLgo+IC0tLVsgZW5kIHRyYWNlIDFhMDUzMTQ1ZDE1ZjIzZGMg XS0tLQo+IEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBBdHRlbXB0ZWQgdG8ga2lsbCBpbml0 ISBleGl0Y29kZT0weDAwMDAwMDBiCj4gQ1BVMDogc3RvcHBpbmcKPiBDUFU6IDAgUElEOiAwIENv bW06IHN3YXBwZXIvMCBUYWludGVkOiBHwqDCoMKgwqDCoCBEIAo+IDUuOS4wLXJjMi1uZXh0LTIw MjAwODI0LTAwMDE3LWczZTliMjBmN2ViMGQgIzE1NzYKPiBIYXJkd2FyZSBuYW1lOiBTYW1zdW5n IEV4eW5vcyAoRmxhdHRlbmVkIERldmljZSBUcmVlKQo+IFs8YzAxMTE2MGM+XSAodW53aW5kX2Jh Y2t0cmFjZSkgZnJvbSBbPGMwMTBjZmMwPl0gKHNob3dfc3RhY2srMHgxMC8weDE0KQo+IFs8YzAx MGNmYzA+XSAoc2hvd19zdGFjaykgZnJvbSBbPGMwNTMzYzNjPl0gKGR1bXBfc3RhY2srMHhiYy8w eGU4KQo+IFs8YzA1MzNjM2M+XSAoZHVtcF9zdGFjaykgZnJvbSBbPGMwMTEwNGUwPl0gKGhhbmRs ZV9JUEkrMHgzZTAvMHg0MjgpCj4gWzxjMDExMDRlMD5dIChoYW5kbGVfSVBJKSBmcm9tIFs8YzA1 NTExZGM+XSAoZ2ljX2hhbmRsZV9pcnErMHg5OC8weDljKQo+IFs8YzA1NTExZGM+XSAoZ2ljX2hh bmRsZV9pcnEpIGZyb20gWzxjMDEwMGFmMD5dIChfX2lycV9zdmMrMHg3MC8weGIwKQo+IEV4Y2Vw dGlvbiBzdGFjaygweGMxMTAxZjA4IHRvIDB4YzExMDFmNTApCj4gLi4uCj4gWzxjMDEwMGFmMD5d IChfX2lycV9zdmMpIGZyb20gWzxjMDEwOTVkYz5dIChhcmNoX2NwdV9pZGxlKzB4MjQvMHg0NCkK PiBbPGMwMTA5NWRjPl0gKGFyY2hfY3B1X2lkbGUpIGZyb20gWzxjMDE2MzVkYz5dIChkb19pZGxl KzB4MWJjLzB4MmJjKQo+IFs8YzAxNjM1ZGM+XSAoZG9faWRsZSkgZnJvbSBbPGMwMTYzYTkwPl0g KGNwdV9zdGFydHVwX2VudHJ5KzB4MTgvMHgxYykKPiBbPGMwMTYzYTkwPl0gKGNwdV9zdGFydHVw X2VudHJ5KSBmcm9tIFs8YzEwMDBmODg+XSAKPiAoc3RhcnRfa2VybmVsKzB4NjI4LzB4NjY0KQo+ IFs8YzEwMDBmODg+XSAoc3RhcnRfa2VybmVsKSBmcm9tIFs8MDAwMDAwMDA+XSAoMHgwKQo+IC0t LVsgZW5kIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBBdHRlbXB0ZWQgdG8ga2lsbCBpbml0 ISAKPiBleGl0Y29kZT0weDAwMDAwMDBiIF0tLS0KClRoaXMgYW5kIHRoZSBvdGhlciBudWxsIHBv aW50ZXIgZGVyZWZlcmVuY2UgbG9vayBsaWtlIHR3byBkaWZmZXJlbnQgcHJvYmxlbXMuCkkgd2ls bCBsb29rIGludG8gYm90aCBvZiB0aGVtIGFuZCBzZW5kIGFuIHVwZGF0ZS4KCkkgd2lsbCBhbHNv IHRyeSB0byBjb21lIHVwIHdpdGggc29tZXRoaW5nIHRvIGF0IGxlYXN0IHRlc3QgdGhlIGJpbmQv dW5iaW5kCmludGVyZmFjZSBhbmQgcmVkdWNlIHRoZSBjb2RlIHRoYXQgSSBjYW5ub3QgdGVzdC4K Cj4gCj4gSSd2ZSBkaWRuJ3QgY2hlY2sgdGhlIGNvZGUgeWV0LCBidXQgdGhlIGNvbnZlcnNpb24g YWxzbyBsYWNrcyAic2VsZWN0IAo+IERSTV9TQU1TVU5HX0RTSU0iIGluIHRoZSBFeHlub3MgRFNJ IGRyaXZlcidzIEtjb25maWcsIGFzIEkgd2Fzbid0IGV2ZW4gCj4gYWJsZSB0byBjb21waWxlIGl0 IHdpdGggdGhlIGN1cnJlbnQgZXh5bm9zX2RlZmNvbmZpZy4KCkRhbmcsIG9mIGNvdXJzZS4gSSB3 aWxsIGZpeCBpdC4KCk1pY2hhZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==