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=-13.2 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_IN_DEF_DKIM_WL 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 24FCDC433FE for ; Thu, 9 Sep 2021 03:31:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0302061139 for ; Thu, 9 Sep 2021 03:31:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349513AbhIIDcO (ORCPT ); Wed, 8 Sep 2021 23:32:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38394 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244126AbhIIDcK (ORCPT ); Wed, 8 Sep 2021 23:32:10 -0400 Received: from mail-yb1-xb29.google.com (mail-yb1-xb29.google.com [IPv6:2607:f8b0:4864:20::b29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C63A3C061757 for ; Wed, 8 Sep 2021 20:31:01 -0700 (PDT) Received: by mail-yb1-xb29.google.com with SMTP id z5so1092030ybj.2 for ; Wed, 08 Sep 2021 20:31:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=SKuiG7fSaLUtvrOY7AskCWh9YOWHRbtwHIiErMRt3Fo=; b=q+i5ei6FXsm719Iu9GiQExVUePgwzXZb8Omuxge6SPboGL3SJUUyvX+hWHEHM55VxW 0ODi5fHeNhvwUnWHR1OfsWeuyKKBSt5PBZOsVYBKyDVtugD/lfnNrINchGccOGl+dk5r ItHQuRTiEhofv3WtTa6MfLN+zhuRvLVHf2Mh5PutIS8kdunXD3w3yG+L2kFdZyblFuZR sIdrQflGLYYTzYdRd0G/+9O4G1CGDGORrtEb8N2Md0RJy4a5qsx2vrw4MRGbt3hMsqn6 znvqu8KGkQKpJHs79XM9BXzUX2uudbKhdbcnvoTelIPDfVuplwwqFvD2oG0GVA6cBeUf 9ZIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=SKuiG7fSaLUtvrOY7AskCWh9YOWHRbtwHIiErMRt3Fo=; b=OzyK0MEpe4gHWJN5RVCKzC1187X6rG0u0inFZZiByvBvtL4Ca0o2HMh2LT4qdzUCDw Kh0Z96F47wVzDPlDxRRfQHn49Hu4VOZmro/0CkUTUqqFYAkunIUUlPHtKIX1W+34A2bL /G+Z3xrzux4ceD/CykTdSVq1gUfHcsnkVrlCEDRwpCzkfObV3aHuoZN5RK+bEffsXMx2 PZI7usla1ntJJrsM/XRDSLjA/VjgpOFj/qhS4oiGa5CTnqk0LfMus/PZXDbzEf1oPkFe 21DSIMtnE61/ZzAd4HzpBE1knqMyXtB2MbIREgOiKopG0Bk7jsmwE7qh5UNKKqVqQyOt 06lg== X-Gm-Message-State: AOAM531vQ8kQ/k0bKj8iXWwAU1WPFOif1b6AMnOia0mHIiTcrD0AwYcd /Fg9KPn5JMXRWX/smZ7dHF/v0Monilye+cIq5rZnUw== X-Google-Smtp-Source: ABdhPJwhXa9uKVvpkTonPsJSkl25kEg1AeeAQozeAA4vApKSgEke+CqyqNJnFYaPY3f4KhX9hHc42qL1B4az4TeZF7c= X-Received: by 2002:a25:21c5:: with SMTP id h188mr930531ybh.23.1631158260632; Wed, 08 Sep 2021 20:31:00 -0700 (PDT) MIME-Version: 1.0 References: <20210816074619.177383-1-wangkefeng.wang@huawei.com> <20210816074619.177383-4-wangkefeng.wang@huawei.com> <85b28900-5f42-b997-2ded-0b952bc2a03e@huawei.com> <265bb783-10da-a7c1-2625-055dec5643a3@huawei.com> In-Reply-To: <265bb783-10da-a7c1-2625-055dec5643a3@huawei.com> From: Saravana Kannan Date: Wed, 8 Sep 2021 20:30:24 -0700 Message-ID: Subject: Re: [BUG] amba: Remove deferred device addition To: Kefeng Wang Cc: Rob Herring , "linux-kernel@vger.kernel.org" , Frank Rowand , devicetree@vger.kernel.org, Russell King , Linus Walleij , linux-arm-kernel , Dmitry Torokhov , linux-input@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Aug 27, 2021 at 6:09 PM Kefeng Wang wr= ote: > > > On 2021/8/28 3:09, Saravana Kannan wrote: > > On Fri, Aug 27, 2021 at 7:38 AM Kefeng Wang wrote: > >> > >> On 2021/8/27 8:04, Saravana Kannan wrote: > >>> On Thu, Aug 26, 2021 at 1:22 AM Kefeng Wang wrote: > >>>>>>> Btw, I've been working on [1] cleaning up the one-off deferred pr= obe > >>>>>>> solution that we have for amba devices. That causes a bunch of ot= her > >>>>>>> headaches. Your patch 3/3 takes us further in the wrong direction= by > >>>>>>> adding more reasons for delaying the addition of the device. > >>>> Hi Saravana, I try the link[1], but with it, there is a crash when b= oot > >>>> (qemu-system-arm -M vexpress-a15), > > I'm assuming it's this one? > > arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts > > I use arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts. > > qemu-system-arm -M vexpress-a15 -dtb vexpress-v2p-ca15-tc1.dtb -cpu > cortex-a15 -smp 2 -m size=3D3G -kernel zImage -rtc base=3Dlocaltime -init= rd > initrd-arm32 -append 'console=3DttyAMA0 cma=3D0 kfence.sample_interval=3D= 0 > earlyprintk debug ' -device virtio-net-device,netdev=3Dnet8 -netdev > type=3Dtap,id=3Dnet8,script=3D/etc/qemu-ifup,downscript=3D/etc/qemu-ifdow= n > -nographic > > > > >>> Hi, > >>> > >>> It's hard to make sense of the logs. Looks like two different threads > >>> might be printing to the log at the same time? Can you please enable > >>> the config that prints the thread ID (forgot what it's called) and > >>> collect this again? With what I could tell the crash seems to be > >>> happening somewhere in platform_match(), but that's not related to > >>> this patch at all? > >> Can you reproduce it? it is very likely related(without your patch, th= e > >> boot is fine), > > Sorry, I haven't ever setup qemu and booted vexpress. Thanks for your h= elp. > > > >> the NULL ptr is about serio, it is registed from amba driver. > >> > >> ambakmi_driver_init > >> > >> -- amba_kmi_probe > >> > >> -- __serio_register_port > > Thanks for the pointer. I took a look at the logs and the code. It's > > very strange. As you can see from the backtrace, platform_match() is > > being called for the device_add() from serio_handle_event(). But the > > device that gets added there is on the serio_bus which obviously > > should be using the serio_bus_match. > Yes, I am confused too. > > > >> +Dmitry and input maillist, is there some known issue about serio ? > >> > >> I add some debug, the full log is attached. > >> > >> [ 2.958355][ T41] input: AT Raw Set 2 keyboard as > >> /devices/platform/bus@8000000/bus@8000000:motherboard-bus/bus@8000000:= motherboard-bus:iofpga-bus@300000000/1c060000.kmi/serio0/input/input0 > >> [ 2.977441][ T41] serio serio1: pdev c1e05508, pdev->name (null), > >> drv c1090fc0, drv->name vexpress-reset > > Based on the logs you added, it's pretty clear we are getting to > > platform_match(). It's also strange that the drv->name is > > vexpress-reset > ... > > > >> [ 3.003113][ T41] Backtrace: > >> [ 3.003451][ T41] [] (strcmp) from [] (platfo= rm_match+0xdc/0xf0) > >> [ 3.003963][ T41] [] (platform_match) from []= (__device_attach_driver+0x3c/0xf4) > >> [ 3.004769][ T41] [] (__device_attach_driver) from [] (bus_for_each_drv+0x68/0xc8) > >> [ 3.005481][ T41] [] (bus_for_each_drv) from [] (__device_attach+0xf0/0x16c) > >> [ 3.006152][ T41] [] (__device_attach) from [= ] (device_initial_probe+0x1c/0x20) > >> [ 3.006853][ T41] [] (device_initial_probe) from [] (bus_probe_device+0x94/0x9c) > >> [ 3.007259][ T41] [] (bus_probe_device) from [] (device_add+0x408/0x8b8) > >> [ 3.007900][ T41] [] (device_add) from [] (se= rio_handle_event+0x1b8/0x234) > >> [ 3.008824][ T41] [] (serio_handle_event) from [] (process_one_work+0x238/0x594) > >> [ 3.009737][ T41] [] (process_one_work) from [] (worker_thread+0x5c/0x5f4) > >> [ 3.010638][ T41] [] (worker_thread) from [] = (kthread+0x178/0x194) > >> [ 3.011496][ T41] [] (kthread) from [] (ret_f= rom_fork+0x14/0x24) > >> [ 3.011860][ T41] Exception stack(0xc1675fb0 to 0xc1675ff8) > > But the platform_match() is happening for the device_add() from > > serio_event_handle() that's adding a device to the serio_bus and it > > should be using serio_bus_match(). > > > > I haven't reached any conclusion yet, but my current thought process > > is that it's either: > > 1. My patch is somehow causing list corruption. But I don't directly > > touch any list in my change (other than deleting a list entirely), so > > it's not clear how that would be happening. > > Maybe some concurrent driver load=EF=BC=9F > > > 2. Without my patch, these AMBA device's probe would be delayed at > > least until 5 seconds or possibly later. I'm wondering if my patch is > > catching some bad timing assumptions in other code. > > After Rob's patch, It will retry soon. > > commit 039599c92d3b2e73689e8b6e519d653fd4770abb > Author: Rob Herring > Date: Wed Apr 29 15:58:12 2020 -0500 > > amba: Retry adding deferred devices at late_initcall > > If amba bus devices defer when adding, the amba bus code simply retr= ies > adding the devices every 5 seconds. This doesn't work well as it > completely unsynchronized with starting the init process which can > happen in less than 5 secs. Add a retry during late_initcall. If the > amba devices are added, then deferred probe takes over. If the > dependencies have not probed at this point, then there's no improvem= ent > over previous behavior. To completely solve this, we'd need to retry > after every successful probe as deferred probe does. > > The list_empty() check now happens outside the mutex, but the mutex > wasn't necessary in the first place. > > This needed to use deferred probe instead of fragile initcall orderi= ng > on 32-bit VExpress systems where the apb_pclk has a number of probe > dependencies (vexpress-sysregs, vexpress-config). > > > > > > You might be able to test out theory (2) by DEFERRED_DEVICE_TIMEOUT to > > a much smaller number. Say 500ms or 100ms. If it doesn't crash, it > > doesn't mean it's not (2), but if it does, then we know for sure it's > > (2). > ok, I will try this one, but due to above patch, it may not work. Were you able to find anything more? -Saravana 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=-4.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 C1502C433F5 for ; Thu, 9 Sep 2021 03:32:56 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 7D8B361139 for ; Thu, 9 Sep 2021 03:32:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 7D8B361139 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=F0B1JhMzl+wwk3flvMyrJfA15HN0d2ZfEzR8c2qtZDU=; b=vsW8RREzF9xkIZ 1iTUSenrVL//jrB/v0+kx0gHiY9xaf90y0VB40qg6FBUYowBQsS1b3dGCZ2zsWPVNp3ibai99GSFC uLtysEckdjpwONSj6CoveiXuucJUp6x/BTWnrNszCuXZYFHqyRoKbhWPsgXp2NdpdnA6CUysZ0SP1 0uaErIRgjmqXoc2+LfjVoK7s1Opm9a39EFQOy4cf4i1cHFy2u6xlCpURRi/8myZcqGXjFkgjgeD2o Xd8ljlkFPfdYNoQPXx4leMlCeJwSJ4FRTwXCKQ+MSyzF22xbMAvgvTjenAH12Iv8PUe0x1/5yZtrl QHS6WjOw6TaKPTVsRC3w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mOAmH-0088vJ-U0; Thu, 09 Sep 2021 03:31:06 +0000 Received: from mail-yb1-xb2b.google.com ([2607:f8b0:4864:20::b2b]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mOAmD-0088uu-TG for linux-arm-kernel@lists.infradead.org; Thu, 09 Sep 2021 03:31:03 +0000 Received: by mail-yb1-xb2b.google.com with SMTP id a93so1096556ybi.1 for ; Wed, 08 Sep 2021 20:31:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=SKuiG7fSaLUtvrOY7AskCWh9YOWHRbtwHIiErMRt3Fo=; b=q+i5ei6FXsm719Iu9GiQExVUePgwzXZb8Omuxge6SPboGL3SJUUyvX+hWHEHM55VxW 0ODi5fHeNhvwUnWHR1OfsWeuyKKBSt5PBZOsVYBKyDVtugD/lfnNrINchGccOGl+dk5r ItHQuRTiEhofv3WtTa6MfLN+zhuRvLVHf2Mh5PutIS8kdunXD3w3yG+L2kFdZyblFuZR sIdrQflGLYYTzYdRd0G/+9O4G1CGDGORrtEb8N2Md0RJy4a5qsx2vrw4MRGbt3hMsqn6 znvqu8KGkQKpJHs79XM9BXzUX2uudbKhdbcnvoTelIPDfVuplwwqFvD2oG0GVA6cBeUf 9ZIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=SKuiG7fSaLUtvrOY7AskCWh9YOWHRbtwHIiErMRt3Fo=; b=wUEXZqpTq+b07ulumX2WkgT41onuiGrAo0gHFIgc63zgtuZ5ssPWGt5n+8sPe2zpop eyHOtOE9m9wCJOYxzC0Fa2oa0olY2tTB3AU6EzbuIpk1W4wYaAppZ7v5wpYngZcfcPRa ES+mntxyvL1MWFDhAHx94WqsofqpkNeE2kcwar0IQ16TFzh7qRk0y9Nba8kiYbhHDey3 oU1sMT+tNxPoW5Pb/KSV9VWtdjrm+TgmUx8iq1RgjZ7NNn/1KnFbt6gZz/MGsEGhTLeV nMwpwLUXnIC7I3jwxSjaDTSShlXYFH3oaGEfYlbf7d+mVE+9uZCz9z68LP17nT0TO9mI tFuA== X-Gm-Message-State: AOAM5324k9tA+rc5rWYWsvRHHumPO/je/tJU9rDU+F5BR2SXrq9wbR6n kDEFoWtucCvrbhJWYTWIqtjxOgy3+dERNvLOZToBIg== X-Google-Smtp-Source: ABdhPJwhXa9uKVvpkTonPsJSkl25kEg1AeeAQozeAA4vApKSgEke+CqyqNJnFYaPY3f4KhX9hHc42qL1B4az4TeZF7c= X-Received: by 2002:a25:21c5:: with SMTP id h188mr930531ybh.23.1631158260632; Wed, 08 Sep 2021 20:31:00 -0700 (PDT) MIME-Version: 1.0 References: <20210816074619.177383-1-wangkefeng.wang@huawei.com> <20210816074619.177383-4-wangkefeng.wang@huawei.com> <85b28900-5f42-b997-2ded-0b952bc2a03e@huawei.com> <265bb783-10da-a7c1-2625-055dec5643a3@huawei.com> In-Reply-To: <265bb783-10da-a7c1-2625-055dec5643a3@huawei.com> From: Saravana Kannan Date: Wed, 8 Sep 2021 20:30:24 -0700 Message-ID: Subject: Re: [BUG] amba: Remove deferred device addition To: Kefeng Wang Cc: Rob Herring , "linux-kernel@vger.kernel.org" , Frank Rowand , devicetree@vger.kernel.org, Russell King , Linus Walleij , linux-arm-kernel , Dmitry Torokhov , linux-input@vger.kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210908_203102_011296_830C8AA3 X-CRM114-Status: GOOD ( 54.22 ) 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBBdWcgMjcsIDIwMjEgYXQgNjowOSBQTSBLZWZlbmcgV2FuZyA8d2FuZ2tlZmVuZy53 YW5nQGh1YXdlaS5jb20+IHdyb3RlOgo+Cj4KPiBPbiAyMDIxLzgvMjggMzowOSwgU2FyYXZhbmEg S2FubmFuIHdyb3RlOgo+ID4gT24gRnJpLCBBdWcgMjcsIDIwMjEgYXQgNzozOCBBTSBLZWZlbmcg V2FuZyA8d2FuZ2tlZmVuZy53YW5nQGh1YXdlaS5jb20+IHdyb3RlOgo+ID4+Cj4gPj4gT24gMjAy MS84LzI3IDg6MDQsIFNhcmF2YW5hIEthbm5hbiB3cm90ZToKPiA+Pj4gT24gVGh1LCBBdWcgMjYs IDIwMjEgYXQgMToyMiBBTSBLZWZlbmcgV2FuZyA8d2FuZ2tlZmVuZy53YW5nQGh1YXdlaS5jb20+ IHdyb3RlOgo+ID4+Pj4+Pj4gQnR3LCBJJ3ZlIGJlZW4gd29ya2luZyBvbiBbMV0gY2xlYW5pbmcg dXAgdGhlIG9uZS1vZmYgZGVmZXJyZWQgcHJvYmUKPiA+Pj4+Pj4+IHNvbHV0aW9uIHRoYXQgd2Ug aGF2ZSBmb3IgYW1iYSBkZXZpY2VzLiBUaGF0IGNhdXNlcyBhIGJ1bmNoIG9mIG90aGVyCj4gPj4+ Pj4+PiBoZWFkYWNoZXMuIFlvdXIgcGF0Y2ggMy8zIHRha2VzIHVzIGZ1cnRoZXIgaW4gdGhlIHdy b25nIGRpcmVjdGlvbiBieQo+ID4+Pj4+Pj4gYWRkaW5nIG1vcmUgcmVhc29ucyBmb3IgZGVsYXlp bmcgdGhlIGFkZGl0aW9uIG9mIHRoZSBkZXZpY2UuCj4gPj4+PiBIaSBTYXJhdmFuYSwgSSB0cnkg dGhlIGxpbmtbMV0sIGJ1dCB3aXRoIGl0LCB0aGVyZSBpcyBhIGNyYXNoIHdoZW4gYm9vdAo+ID4+ Pj4gKHFlbXUtc3lzdGVtLWFybSAtTSB2ZXhwcmVzcy1hMTUpLAo+ID4gSSdtIGFzc3VtaW5nIGl0 J3MgdGhpcyBvbmU/Cj4gPiBhcmNoL2FybS9ib290L2R0cy92ZXhwcmVzcy12MnAtY2ExNV9hNy5k dHMKPgo+IEkgdXNlIGFyY2gvYXJtL2Jvb3QvZHRzL3ZleHByZXNzLXYycC1jYTE1LXRjMS5kdHMu Cj4KPiBxZW11LXN5c3RlbS1hcm0gLU0gdmV4cHJlc3MtYTE1IC1kdGIgdmV4cHJlc3MtdjJwLWNh MTUtdGMxLmR0YiAtY3B1Cj4gY29ydGV4LWExNSAtc21wIDIgLW0gc2l6ZT0zRyAta2VybmVsIHpJ bWFnZSAtcnRjIGJhc2U9bG9jYWx0aW1lIC1pbml0cmQKPiBpbml0cmQtYXJtMzIgLWFwcGVuZCAn Y29uc29sZT10dHlBTUEwIGNtYT0wIGtmZW5jZS5zYW1wbGVfaW50ZXJ2YWw9MAo+IGVhcmx5cHJp bnRrIGRlYnVnICcgLWRldmljZSB2aXJ0aW8tbmV0LWRldmljZSxuZXRkZXY9bmV0OCAtbmV0ZGV2 Cj4gdHlwZT10YXAsaWQ9bmV0OCxzY3JpcHQ9L2V0Yy9xZW11LWlmdXAsZG93bnNjcmlwdD0vZXRj L3FlbXUtaWZkb3duCj4gLW5vZ3JhcGhpYwo+Cj4gPgo+ID4+PiBIaSwKPiA+Pj4KPiA+Pj4gSXQn cyBoYXJkIHRvIG1ha2Ugc2Vuc2Ugb2YgdGhlIGxvZ3MuIExvb2tzIGxpa2UgdHdvIGRpZmZlcmVu dCB0aHJlYWRzCj4gPj4+IG1pZ2h0IGJlIHByaW50aW5nIHRvIHRoZSBsb2cgYXQgdGhlIHNhbWUg dGltZT8gQ2FuIHlvdSBwbGVhc2UgZW5hYmxlCj4gPj4+IHRoZSBjb25maWcgdGhhdCBwcmludHMg dGhlIHRocmVhZCBJRCAoZm9yZ290IHdoYXQgaXQncyBjYWxsZWQpIGFuZAo+ID4+PiBjb2xsZWN0 IHRoaXMgYWdhaW4/IFdpdGggd2hhdCBJIGNvdWxkIHRlbGwgdGhlIGNyYXNoIHNlZW1zIHRvIGJl Cj4gPj4+IGhhcHBlbmluZyBzb21ld2hlcmUgaW4gcGxhdGZvcm1fbWF0Y2goKSwgYnV0IHRoYXQn cyBub3QgcmVsYXRlZCB0bwo+ID4+PiB0aGlzIHBhdGNoIGF0IGFsbD8KPiA+PiBDYW4geW91IHJl cHJvZHVjZSBpdD8gaXQgaXMgdmVyeSBsaWtlbHkgcmVsYXRlZCh3aXRob3V0IHlvdXIgcGF0Y2gs IHRoZQo+ID4+IGJvb3QgaXMgZmluZSksCj4gPiBTb3JyeSwgSSBoYXZlbid0IGV2ZXIgc2V0dXAg cWVtdSBhbmQgYm9vdGVkIHZleHByZXNzLiBUaGFua3MgZm9yIHlvdXIgaGVscC4KPiA+Cj4gPj4g dGhlIE5VTEwgcHRyIGlzIGFib3V0IHNlcmlvLCBpdCBpcyByZWdpc3RlZCBmcm9tIGFtYmEgZHJp dmVyLgo+ID4+Cj4gPj4gYW1iYWttaV9kcml2ZXJfaW5pdAo+ID4+Cj4gPj4gICAgLS0gYW1iYV9r bWlfcHJvYmUKPiA+Pgo+ID4+ICAgICAgLS0gX19zZXJpb19yZWdpc3Rlcl9wb3J0Cj4gPiBUaGFu a3MgZm9yIHRoZSBwb2ludGVyLiBJIHRvb2sgYSBsb29rIGF0IHRoZSBsb2dzIGFuZCB0aGUgY29k ZS4gSXQncwo+ID4gdmVyeSBzdHJhbmdlLiBBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBiYWNrdHJh Y2UsIHBsYXRmb3JtX21hdGNoKCkgaXMKPiA+IGJlaW5nIGNhbGxlZCBmb3IgdGhlIGRldmljZV9h ZGQoKSBmcm9tIHNlcmlvX2hhbmRsZV9ldmVudCgpLiBCdXQgdGhlCj4gPiBkZXZpY2UgdGhhdCBn ZXRzIGFkZGVkIHRoZXJlIGlzIG9uIHRoZSBzZXJpb19idXMgd2hpY2ggb2J2aW91c2x5Cj4gPiBz aG91bGQgYmUgdXNpbmcgdGhlIHNlcmlvX2J1c19tYXRjaC4KPiBZZXMsIEkgYW0gY29uZnVzZWQg dG9vLgo+ID4KPiA+PiArRG1pdHJ5IGFuZCBpbnB1dCBtYWlsbGlzdCwgaXMgdGhlcmUgc29tZSBr bm93biBpc3N1ZSBhYm91dCBzZXJpbyA/Cj4gPj4KPiA+PiBJIGFkZCBzb21lIGRlYnVnLCB0aGUg ZnVsbCBsb2cgaXMgYXR0YWNoZWQuCj4gPj4KPiA+PiBbICAgIDIuOTU4MzU1XVsgICBUNDFdIGlu cHV0OiBBVCBSYXcgU2V0IDIga2V5Ym9hcmQgYXMKPiA+PiAvZGV2aWNlcy9wbGF0Zm9ybS9idXNA ODAwMDAwMC9idXNAODAwMDAwMDptb3RoZXJib2FyZC1idXMvYnVzQDgwMDAwMDA6bW90aGVyYm9h cmQtYnVzOmlvZnBnYS1idXNAMzAwMDAwMDAwLzFjMDYwMDAwLmttaS9zZXJpbzAvaW5wdXQvaW5w dXQwCj4gPj4gWyAgICAyLjk3NzQ0MV1bICAgVDQxXSBzZXJpbyBzZXJpbzE6IHBkZXYgYzFlMDU1 MDgsIHBkZXYtPm5hbWUgKG51bGwpLAo+ID4+IGRydiBjMTA5MGZjMCwgZHJ2LT5uYW1lIHZleHBy ZXNzLXJlc2V0Cj4gPiBCYXNlZCBvbiB0aGUgbG9ncyB5b3UgYWRkZWQsIGl0J3MgcHJldHR5IGNs ZWFyIHdlIGFyZSBnZXR0aW5nIHRvCj4gPiBwbGF0Zm9ybV9tYXRjaCgpLiBJdCdzIGFsc28gc3Ry YW5nZSB0aGF0IHRoZSBkcnYtPm5hbWUgaXMKPiA+IHZleHByZXNzLXJlc2V0Cj4gLi4uCj4gPgo+ ID4+IFsgICAgMy4wMDMxMTNdWyAgIFQ0MV0gQmFja3RyYWNlOgo+ID4+IFsgICAgMy4wMDM0NTFd WyAgIFQ0MV0gWzxjMDU2MGJiND5dIChzdHJjbXApIGZyb20gWzxjMDY0NjM1OD5dIChwbGF0Zm9y bV9tYXRjaCsweGRjLzB4ZjApCj4gPj4gWyAgICAzLjAwMzk2M11bICAgVDQxXSBbPGMwNjQ2Mjdj Pl0gKHBsYXRmb3JtX21hdGNoKSBmcm9tIFs8YzA2NDM3ZDQ+XSAoX19kZXZpY2VfYXR0YWNoX2Ry aXZlcisweDNjLzB4ZjQpCj4gPj4gWyAgICAzLjAwNDc2OV1bICAgVDQxXSBbPGMwNjQzNzk4Pl0g KF9fZGV2aWNlX2F0dGFjaF9kcml2ZXIpIGZyb20gWzxjMDY0MTE4MD5dIChidXNfZm9yX2VhY2hf ZHJ2KzB4NjgvMHhjOCkKPiA+PiBbICAgIDMuMDA1NDgxXVsgICBUNDFdIFs8YzA2NDExMTg+XSAo YnVzX2Zvcl9lYWNoX2RydikgZnJvbSBbPGMwNjQyZjQwPl0gKF9fZGV2aWNlX2F0dGFjaCsweGYw LzB4MTZjKQo+ID4+IFsgICAgMy4wMDYxNTJdWyAgIFQ0MV0gWzxjMDY0MmU1MD5dIChfX2Rldmlj ZV9hdHRhY2gpIGZyb20gWzxjMDY0MzlkND5dIChkZXZpY2VfaW5pdGlhbF9wcm9iZSsweDFjLzB4 MjApCj4gPj4gWyAgICAzLjAwNjg1M11bICAgVDQxXSBbPGMwNjQzOWI4Pl0gKGRldmljZV9pbml0 aWFsX3Byb2JlKSBmcm9tIFs8YzA2NDIwMzA+XSAoYnVzX3Byb2JlX2RldmljZSsweDk0LzB4OWMp Cj4gPj4gWyAgICAzLjAwNzI1OV1bICAgVDQxXSBbPGMwNjQxZjljPl0gKGJ1c19wcm9iZV9kZXZp Y2UpIGZyb20gWzxjMDYzZjljYz5dIChkZXZpY2VfYWRkKzB4NDA4LzB4OGI4KQo+ID4+IFsgICAg My4wMDc5MDBdWyAgIFQ0MV0gWzxjMDYzZjVjND5dIChkZXZpY2VfYWRkKSBmcm9tIFs8YzA3MWMx Y2M+XSAoc2VyaW9faGFuZGxlX2V2ZW50KzB4MWI4LzB4MjM0KQo+ID4+IFsgICAgMy4wMDg4MjRd WyAgIFQ0MV0gWzxjMDcxYzAxND5dIChzZXJpb19oYW5kbGVfZXZlbnQpIGZyb20gWzxjMDE0NzVh ND5dIChwcm9jZXNzX29uZV93b3JrKzB4MjM4LzB4NTk0KQo+ID4+IFsgICAgMy4wMDk3MzddWyAg IFQ0MV0gWzxjMDE0NzM2Yz5dIChwcm9jZXNzX29uZV93b3JrKSBmcm9tIFs8YzAxNDc5NWM+XSAo d29ya2VyX3RocmVhZCsweDVjLzB4NWY0KQo+ID4+IFsgICAgMy4wMTA2MzhdWyAgIFQ0MV0gWzxj MDE0NzkwMD5dICh3b3JrZXJfdGhyZWFkKSBmcm9tIFs8YzAxNGZlYjQ+XSAoa3RocmVhZCsweDE3 OC8weDE5NCkKPiA+PiBbICAgIDMuMDExNDk2XVsgICBUNDFdIFs8YzAxNGZkM2M+XSAoa3RocmVh ZCkgZnJvbSBbPGMwMTAwMTUwPl0gKHJldF9mcm9tX2ZvcmsrMHgxNC8weDI0KQo+ID4+IFsgICAg My4wMTE4NjBdWyAgIFQ0MV0gRXhjZXB0aW9uIHN0YWNrKDB4YzE2NzVmYjAgdG8gMHhjMTY3NWZm OCkKPiA+IEJ1dCB0aGUgcGxhdGZvcm1fbWF0Y2goKSBpcyBoYXBwZW5pbmcgZm9yIHRoZSBkZXZp Y2VfYWRkKCkgZnJvbQo+ID4gc2VyaW9fZXZlbnRfaGFuZGxlKCkgdGhhdCdzIGFkZGluZyBhIGRl dmljZSB0byB0aGUgc2VyaW9fYnVzIGFuZCBpdAo+ID4gc2hvdWxkIGJlIHVzaW5nIHNlcmlvX2J1 c19tYXRjaCgpLgo+ID4KPiA+IEkgaGF2ZW4ndCByZWFjaGVkIGFueSBjb25jbHVzaW9uIHlldCwg YnV0IG15IGN1cnJlbnQgdGhvdWdodCBwcm9jZXNzCj4gPiBpcyB0aGF0IGl0J3MgZWl0aGVyOgo+ ID4gMS4gTXkgcGF0Y2ggaXMgc29tZWhvdyBjYXVzaW5nIGxpc3QgY29ycnVwdGlvbi4gQnV0IEkg ZG9uJ3QgZGlyZWN0bHkKPiA+IHRvdWNoIGFueSBsaXN0IGluIG15IGNoYW5nZSAob3RoZXIgdGhh biBkZWxldGluZyBhIGxpc3QgZW50aXJlbHkpLCBzbwo+ID4gaXQncyBub3QgY2xlYXIgaG93IHRo YXQgd291bGQgYmUgaGFwcGVuaW5nLgo+Cj4gTWF5YmUgc29tZSBjb25jdXJyZW50IGRyaXZlciBs b2Fk77yfCj4KPiA+IDIuIFdpdGhvdXQgbXkgcGF0Y2gsIHRoZXNlIEFNQkEgZGV2aWNlJ3MgcHJv YmUgd291bGQgYmUgZGVsYXllZCBhdAo+ID4gbGVhc3QgdW50aWwgNSBzZWNvbmRzIG9yIHBvc3Np Ymx5IGxhdGVyLiBJJ20gd29uZGVyaW5nIGlmIG15IHBhdGNoIGlzCj4gPiBjYXRjaGluZyBzb21l IGJhZCB0aW1pbmcgYXNzdW1wdGlvbnMgaW4gb3RoZXIgY29kZS4KPgo+IEFmdGVyIFJvYidzIHBh dGNoLCBJdCB3aWxsIHJldHJ5IHNvb24uCj4KPiBjb21taXQgMDM5NTk5YzkyZDNiMmU3MzY4OWU4 YjZlNTE5ZDY1M2ZkNDc3MGFiYgo+IEF1dGhvcjogUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9y Zz4KPiBEYXRlOiAgIFdlZCBBcHIgMjkgMTU6NTg6MTIgMjAyMCAtMDUwMAo+Cj4gICAgICBhbWJh OiBSZXRyeSBhZGRpbmcgZGVmZXJyZWQgZGV2aWNlcyBhdCBsYXRlX2luaXRjYWxsCj4KPiAgICAg IElmIGFtYmEgYnVzIGRldmljZXMgZGVmZXIgd2hlbiBhZGRpbmcsIHRoZSBhbWJhIGJ1cyBjb2Rl IHNpbXBseSByZXRyaWVzCj4gICAgICBhZGRpbmcgdGhlIGRldmljZXMgZXZlcnkgNSBzZWNvbmRz LiBUaGlzIGRvZXNuJ3Qgd29yayB3ZWxsIGFzIGl0Cj4gICAgICBjb21wbGV0ZWx5IHVuc3luY2hy b25pemVkIHdpdGggc3RhcnRpbmcgdGhlIGluaXQgcHJvY2VzcyB3aGljaCBjYW4KPiAgICAgIGhh cHBlbiBpbiBsZXNzIHRoYW4gNSBzZWNzLiBBZGQgYSByZXRyeSBkdXJpbmcgbGF0ZV9pbml0Y2Fs bC4gSWYgdGhlCj4gICAgICBhbWJhIGRldmljZXMgYXJlIGFkZGVkLCB0aGVuIGRlZmVycmVkIHBy b2JlIHRha2VzIG92ZXIuIElmIHRoZQo+ICAgICAgZGVwZW5kZW5jaWVzIGhhdmUgbm90IHByb2Jl ZCBhdCB0aGlzIHBvaW50LCB0aGVuIHRoZXJlJ3Mgbm8gaW1wcm92ZW1lbnQKPiAgICAgIG92ZXIg cHJldmlvdXMgYmVoYXZpb3IuIFRvIGNvbXBsZXRlbHkgc29sdmUgdGhpcywgd2UnZCBuZWVkIHRv IHJldHJ5Cj4gICAgICBhZnRlciBldmVyeSBzdWNjZXNzZnVsIHByb2JlIGFzIGRlZmVycmVkIHBy b2JlIGRvZXMuCj4KPiAgICAgIFRoZSBsaXN0X2VtcHR5KCkgY2hlY2sgbm93IGhhcHBlbnMgb3V0 c2lkZSB0aGUgbXV0ZXgsIGJ1dCB0aGUgbXV0ZXgKPiAgICAgIHdhc24ndCBuZWNlc3NhcnkgaW4g dGhlIGZpcnN0IHBsYWNlLgo+Cj4gICAgICBUaGlzIG5lZWRlZCB0byB1c2UgZGVmZXJyZWQgcHJv YmUgaW5zdGVhZCBvZiBmcmFnaWxlIGluaXRjYWxsIG9yZGVyaW5nCj4gICAgICBvbiAzMi1iaXQg VkV4cHJlc3Mgc3lzdGVtcyB3aGVyZSB0aGUgYXBiX3BjbGsgaGFzIGEgbnVtYmVyIG9mIHByb2Jl Cj4gICAgICBkZXBlbmRlbmNpZXMgKHZleHByZXNzLXN5c3JlZ3MsIHZleHByZXNzLWNvbmZpZyku Cj4KPgo+ID4KPiA+IFlvdSBtaWdodCBiZSBhYmxlIHRvIHRlc3Qgb3V0IHRoZW9yeSAoMikgYnkg REVGRVJSRURfREVWSUNFX1RJTUVPVVQgdG8KPiA+IGEgbXVjaCBzbWFsbGVyIG51bWJlci4gU2F5 IDUwMG1zIG9yIDEwMG1zLiBJZiBpdCBkb2Vzbid0IGNyYXNoLCBpdAo+ID4gZG9lc24ndCBtZWFu IGl0J3Mgbm90ICgyKSwgYnV0IGlmIGl0IGRvZXMsIHRoZW4gd2Uga25vdyBmb3Igc3VyZSBpdCdz Cj4gPiAoMikuCj4gb2ssIEkgd2lsbCB0cnkgdGhpcyBvbmUsIGJ1dCBkdWUgdG8gYWJvdmUgcGF0 Y2gsIGl0IG1heSBub3Qgd29yay4KCldlcmUgeW91IGFibGUgdG8gZmluZCBhbnl0aGluZyBtb3Jl PwoKLVNhcmF2YW5hCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==