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.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT 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 68502C5B57D for ; Wed, 3 Jul 2019 01:50:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3B29D20673 for ; Wed, 3 Jul 2019 01:50:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Y0c3Zbx/" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727100AbfGCBuV (ORCPT ); Tue, 2 Jul 2019 21:50:21 -0400 Received: from mail-qt1-f193.google.com ([209.85.160.193]:38685 "EHLO mail-qt1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726329AbfGCBuV (ORCPT ); Tue, 2 Jul 2019 21:50:21 -0400 Received: by mail-qt1-f193.google.com with SMTP id n11so826062qtl.5; Tue, 02 Jul 2019 18:50:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=aM7TEuKumvUMe3SbB3+XmY4I8aQKFrST7xx8ZApBOcM=; b=Y0c3Zbx/HklkB3ZQUMPUnd3cuD2+CXBd/qv6pY0OkEJTg/+z03wi0oF1CvFJYsaUkZ 4zHdADC6xI/bjao5kJDJAheklnpxnkP641vjkWWAD6dXp83EK+bgIBqRrhp5R+e9GhCz zCGy7sAlE3XsPTlqcBMQPxFhUYqm5Yg2JhxtQejc7AlhxkxL1xSYYXRVk6l4V/OzXbVr F2N4nVUleb2SyZc8sgC2poSaaQ+CgHZiuCRWIi+78YgA4bpPN5KzS8h7SHnC0qrpdgs/ YZxrEttZo98QKBCnwb20wNLc3UgkTsaMpeRea2ivIhOm1ixPyotAxAUbQecsF1pxUnqv E1Mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=aM7TEuKumvUMe3SbB3+XmY4I8aQKFrST7xx8ZApBOcM=; b=WdoTkpU5Tgrc0jYoCvIk/+u664gzb+skwTTi/c56O9eaQZ0+T85W5dskBAOmrnrhNW mfQgDIJHVUpe9uobnMnLfhnocWJMfeaF9CnBnxQQprsFc5NO7wHbKsozH8+KI2Q+etoN /PfKntP/PDmi5mk57UKO+ZZs0BRYCMyfHnVWzYr6u+4JV2oLGt66joD57jBgumVQZm1z rY7J6bHPya7aWFwA548AtRHPMosjHGu7RzguMatpBziJqUT7QK8aZ4kH/dek1Jk6w4wh mpabUIkYEDyzOmsxSHArDDQGuq1/hY6YrvF9IyW6zEVt50vHOceoti00QMIZwzZDR5od TbdQ== X-Gm-Message-State: APjAAAXNigybF3xK/JP6c8AdRgkeUEIyJJ0xaWRlauTIljPm6KEN4wFw oCt+VpSIpm+GXzoMEknZrVTKiod2xDnNDg== X-Google-Smtp-Source: APXvYqxHJBmk2g0xpgV4VUHGsLMtAzHIfVL3nv7QBsGBAXs8stUf9sYJU+dbtd2Yxf85Z4tgzUX1Cw== X-Received: by 2002:a0c:b755:: with SMTP id q21mr27605171qve.92.1562099204529; Tue, 02 Jul 2019 13:26:44 -0700 (PDT) Received: from localhost ([2601:184:4780:7861:5010:5849:d76d:b714]) by smtp.gmail.com with ESMTPSA id f6sm6267017qkk.79.2019.07.02.13.26.43 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 02 Jul 2019 13:26:44 -0700 (PDT) From: Rob Clark To: iommu@lists.linux-foundation.org, dri-devel@lists.freedesktop.org Cc: aarch64-laptops@lists.linaro.org, Jordan Crouse , Rob Clark , Abhinav Kumar , Andy Shevchenko , Bartosz Golaszewski , Boris Brezillon , Bruce Wang , Daniel Mack , Daniel Vetter , freedreno@lists.freedesktop.org (open list:DRM DRIVER FOR MSM ADRENO GPU), Greg Kroah-Hartman , Heikki Krogerus , Jeykumar Sankaran , Joe Perches , Joerg Roedel , Jonathan Marek , linux-arm-msm@vger.kernel.org (open list:DRM DRIVER FOR MSM ADRENO GPU), linux-kernel@vger.kernel.org (open list), Mamta Shukla , "Rafael J. Wysocki" , Rasmus Villemoes , Sean Paul , Sudeep Holla , Ulf Hansson , Vivek Gautam Subject: [PATCH 0/2] iommu: handle drivers that manage iommu directly Date: Tue, 2 Jul 2019 13:26:17 -0700 Message-Id: <20190702202631.32148-1-robdclark@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org From: Rob Clark One of the challenges we need to handle to enable the aarch64 laptops upstream is dealing with the fact that the bootloader enables the display and takes the corresponding SMMU context-bank out of BYPASS. Unfortunately, currently, the IOMMU framework attaches a DMA (or potentially an IDENTITY) domain before the driver is probed and has a chance to intervene and shutdown[1] scanout. Which makes things go horribly wrong. This also happens to solve a problem that is blocking us from supporting per-context pagetables on the GPU, due to domain that is attached before driver has a chance to attach it's own domain for the GPU. But since the driver is managing it's own iommu domains directly, and does not use dev->iommu_group->default_domain at all, the simple solution to both problems is to just avoid attaching that domain in the first place. [1] Eventually we want to be able to do a seemless transition from efifb to drm/msm... but first step is to get the core (iommu, clk, genpd) pieces in place, so a first step of disabling the display before first modeset enables us to get all of the dependencies outside of drm/msm in place. And this at least gets us parity with windows (which also appears to do a modeset between bootloader and HLSO). After that there is a bunch of drm/msm work that is probably not interesting to folks outside of dri-devel. Rob Clark (2): iommu: add support for drivers that manage iommu explicitly drm/msm: mark devices where iommu is managed by driver drivers/gpu/drm/msm/adreno/adreno_device.c | 1 + drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 1 + drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 1 + drivers/gpu/drm/msm/msm_drv.c | 1 + drivers/iommu/iommu.c | 11 +++++++++++ include/linux/device.h | 3 ++- 6 files changed, 17 insertions(+), 1 deletion(-) -- 2.20.1 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=-3.7 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT 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 406DEC06510 for ; Tue, 2 Jul 2019 20:31:11 +0000 (UTC) Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (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 0A4A121897 for ; Tue, 2 Jul 2019 20:31:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Y0c3Zbx/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0A4A121897 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id B0A862155; Tue, 2 Jul 2019 20:31:10 +0000 (UTC) Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id DEA61212A for ; Tue, 2 Jul 2019 20:26:46 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id B431F782 for ; Tue, 2 Jul 2019 20:26:45 +0000 (UTC) Received: by mail-qt1-f193.google.com with SMTP id h24so50069qto.0 for ; Tue, 02 Jul 2019 13:26:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=aM7TEuKumvUMe3SbB3+XmY4I8aQKFrST7xx8ZApBOcM=; b=Y0c3Zbx/HklkB3ZQUMPUnd3cuD2+CXBd/qv6pY0OkEJTg/+z03wi0oF1CvFJYsaUkZ 4zHdADC6xI/bjao5kJDJAheklnpxnkP641vjkWWAD6dXp83EK+bgIBqRrhp5R+e9GhCz zCGy7sAlE3XsPTlqcBMQPxFhUYqm5Yg2JhxtQejc7AlhxkxL1xSYYXRVk6l4V/OzXbVr F2N4nVUleb2SyZc8sgC2poSaaQ+CgHZiuCRWIi+78YgA4bpPN5KzS8h7SHnC0qrpdgs/ YZxrEttZo98QKBCnwb20wNLc3UgkTsaMpeRea2ivIhOm1ixPyotAxAUbQecsF1pxUnqv E1Mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=aM7TEuKumvUMe3SbB3+XmY4I8aQKFrST7xx8ZApBOcM=; b=UUS+ATgIAbqALb3rU3/SH56jyQLxl9y55vitTpy8jlaOgpOlvKTFQYZHjXpGwdR42W 9nxgP0wpecKt1Qujg+69gAaal40ks8W7DJRR4md51RD2DxTzJQ15fgrzJvdwROH/f5HX pdYlXsayuE+bD8dxHXpTpX0ma6AkFZ8gG4Qc092kbCSVow8inEw/x4twSpHf8Flpfqhe V8V/Q6gBTexA9tWzg1REdIMurZNwQR1t++0YH9I8SnCoYcLJJ5YFdkUXbweGAqEQqK0o E/hzrGhsMGS8+ueo3YpdLvxWyXoA4IGYJFnhzpwFiAKuu/d+uuYKASpefh9QEP+UOP9X llsA== X-Gm-Message-State: APjAAAWbP4GPaXcpOf52qoeryL2eSV5dFvm4cIxcWZUreizbjL9cuVbU WlOQ3WQWNEw+jvWITJWOZhQku9XuTQMUSg== X-Google-Smtp-Source: APXvYqxHJBmk2g0xpgV4VUHGsLMtAzHIfVL3nv7QBsGBAXs8stUf9sYJU+dbtd2Yxf85Z4tgzUX1Cw== X-Received: by 2002:a0c:b755:: with SMTP id q21mr27605171qve.92.1562099204529; Tue, 02 Jul 2019 13:26:44 -0700 (PDT) Received: from localhost ([2601:184:4780:7861:5010:5849:d76d:b714]) by smtp.gmail.com with ESMTPSA id f6sm6267017qkk.79.2019.07.02.13.26.43 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 02 Jul 2019 13:26:44 -0700 (PDT) From: Rob Clark To: iommu@lists.linux-foundation.org, dri-devel@lists.freedesktop.org Subject: [PATCH 0/2] iommu: handle drivers that manage iommu directly Date: Tue, 2 Jul 2019 13:26:17 -0700 Message-Id: <20190702202631.32148-1-robdclark@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Cc: Ulf Hansson , Heikki Krogerus , Daniel Vetter , Rasmus Villemoes , Rob Clark , Jonathan Marek , Bartosz Golaszewski , "Rafael J. Wysocki" , Mamta Shukla , Andy Shevchenko , Joerg Roedel , "open list:DRM DRIVER FOR MSM ADRENO GPU" , Abhinav Kumar , Bruce Wang , Sean Paul , Jeykumar Sankaran , aarch64-laptops@lists.linaro.org, Boris Brezillon , Greg Kroah-Hartman , open list , Sudeep Holla , Joe Perches , "open list:DRM DRIVER FOR MSM ADRENO GPU" , Daniel Mack X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: iommu-bounces@lists.linux-foundation.org Errors-To: iommu-bounces@lists.linux-foundation.org From: Rob Clark One of the challenges we need to handle to enable the aarch64 laptops upstream is dealing with the fact that the bootloader enables the display and takes the corresponding SMMU context-bank out of BYPASS. Unfortunately, currently, the IOMMU framework attaches a DMA (or potentially an IDENTITY) domain before the driver is probed and has a chance to intervene and shutdown[1] scanout. Which makes things go horribly wrong. This also happens to solve a problem that is blocking us from supporting per-context pagetables on the GPU, due to domain that is attached before driver has a chance to attach it's own domain for the GPU. But since the driver is managing it's own iommu domains directly, and does not use dev->iommu_group->default_domain at all, the simple solution to both problems is to just avoid attaching that domain in the first place. [1] Eventually we want to be able to do a seemless transition from efifb to drm/msm... but first step is to get the core (iommu, clk, genpd) pieces in place, so a first step of disabling the display before first modeset enables us to get all of the dependencies outside of drm/msm in place. And this at least gets us parity with windows (which also appears to do a modeset between bootloader and HLSO). After that there is a bunch of drm/msm work that is probably not interesting to folks outside of dri-devel. Rob Clark (2): iommu: add support for drivers that manage iommu explicitly drm/msm: mark devices where iommu is managed by driver drivers/gpu/drm/msm/adreno/adreno_device.c | 1 + drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 1 + drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 1 + drivers/gpu/drm/msm/msm_drv.c | 1 + drivers/iommu/iommu.c | 11 +++++++++++ include/linux/device.h | 3 ++- 6 files changed, 17 insertions(+), 1 deletion(-) -- 2.20.1 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 0/2] iommu: handle drivers that manage iommu directly Date: Tue, 2 Jul 2019 13:26:17 -0700 Message-ID: <20190702202631.32148-1-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Ulf Hansson , Heikki Krogerus , Daniel Vetter , Rasmus Villemoes , Vivek Gautam , Rob Clark , Jonathan Marek , Bartosz Golaszewski , "Rafael J. Wysocki" , Mamta Shukla , Andy Shevchenko , Joerg Roedel , "open list:DRM DRIVER FOR MSM ADRENO GPU" , Abhinav Kumar , Bruce Wang , Jordan Crouse , Sean Paul , Jeykumar Sankaran , aarch64-laptops-cunTk1MwBs8s++Sfvej+rw@public.gmane.org, Boris Brezillon , Greg Kroah-Hartman List-Id: dri-devel@lists.freedesktop.org RnJvbTogUm9iIENsYXJrIDxyb2JkY2xhcmtAY2hyb21pdW0ub3JnPgoKT25lIG9mIHRoZSBjaGFs bGVuZ2VzIHdlIG5lZWQgdG8gaGFuZGxlIHRvIGVuYWJsZSB0aGUgYWFyY2g2NCBsYXB0b3BzCnVw c3RyZWFtIGlzIGRlYWxpbmcgd2l0aCB0aGUgZmFjdCB0aGF0IHRoZSBib290bG9hZGVyIGVuYWJs ZXMgdGhlCmRpc3BsYXkgYW5kIHRha2VzIHRoZSBjb3JyZXNwb25kaW5nIFNNTVUgY29udGV4dC1i YW5rIG91dCBvZiBCWVBBU1MuClVuZm9ydHVuYXRlbHksIGN1cnJlbnRseSwgdGhlIElPTU1VIGZy YW1ld29yayBhdHRhY2hlcyBhIERNQSAob3IKcG90ZW50aWFsbHkgYW4gSURFTlRJVFkpIGRvbWFp biBiZWZvcmUgdGhlIGRyaXZlciBpcyBwcm9iZWQgYW5kIGhhcwphIGNoYW5jZSB0byBpbnRlcnZl bmUgYW5kIHNodXRkb3duWzFdIHNjYW5vdXQuICBXaGljaCBtYWtlcyB0aGluZ3MgZ28KaG9ycmli bHkgd3JvbmcuCgpUaGlzIGFsc28gaGFwcGVucyB0byBzb2x2ZSBhIHByb2JsZW0gdGhhdCBpcyBi bG9ja2luZyB1cyBmcm9tIHN1cHBvcnRpbmcKcGVyLWNvbnRleHQgcGFnZXRhYmxlcyBvbiB0aGUg R1BVLCBkdWUgdG8gZG9tYWluIHRoYXQgaXMgYXR0YWNoZWQgYmVmb3JlCmRyaXZlciBoYXMgYSBj aGFuY2UgdG8gYXR0YWNoIGl0J3Mgb3duIGRvbWFpbiBmb3IgdGhlIEdQVS4KCkJ1dCBzaW5jZSB0 aGUgZHJpdmVyIGlzIG1hbmFnaW5nIGl0J3Mgb3duIGlvbW11IGRvbWFpbnMgZGlyZWN0bHksIGFu ZApkb2VzIG5vdCB1c2UgZGV2LT5pb21tdV9ncm91cC0+ZGVmYXVsdF9kb21haW4gYXQgYWxsLCB0 aGUgc2ltcGxlCnNvbHV0aW9uIHRvIGJvdGggcHJvYmxlbXMgaXMgdG8ganVzdCBhdm9pZCBhdHRh Y2hpbmcgdGhhdCBkb21haW4gaW4gdGhlCmZpcnN0IHBsYWNlLgoKWzFdIEV2ZW50dWFsbHkgd2Ug d2FudCB0byBiZSBhYmxlIHRvIGRvIGEgc2VlbWxlc3MgdHJhbnNpdGlvbiBmcm9tCiAgICBlZmlm YiB0byBkcm0vbXNtLi4uIGJ1dCBmaXJzdCBzdGVwIGlzIHRvIGdldCB0aGUgY29yZSAoaW9tbXUs CiAgICBjbGssIGdlbnBkKSBwaWVjZXMgaW4gcGxhY2UsIHNvIGEgZmlyc3Qgc3RlcCBvZiBkaXNh YmxpbmcgdGhlCiAgICBkaXNwbGF5IGJlZm9yZSBmaXJzdCBtb2Rlc2V0IGVuYWJsZXMgdXMgdG8g Z2V0IGFsbCBvZiB0aGUKICAgIGRlcGVuZGVuY2llcyBvdXRzaWRlIG9mIGRybS9tc20gaW4gcGxh Y2UuICBBbmQgdGhpcyBhdCBsZWFzdAogICAgZ2V0cyB1cyBwYXJpdHkgd2l0aCB3aW5kb3dzICh3 aGljaCBhbHNvIGFwcGVhcnMgdG8gZG8gYSBtb2Rlc2V0CiAgICBiZXR3ZWVuIGJvb3Rsb2FkZXIg YW5kIEhMU08pLiAgQWZ0ZXIgdGhhdCB0aGVyZSBpcyBhIGJ1bmNoIG9mCiAgICBkcm0vbXNtIHdv cmsgdGhhdCBpcyBwcm9iYWJseSBub3QgaW50ZXJlc3RpbmcgdG8gZm9sa3Mgb3V0c2lkZQogICAg b2YgZHJpLWRldmVsLgoKUm9iIENsYXJrICgyKToKICBpb21tdTogYWRkIHN1cHBvcnQgZm9yIGRy aXZlcnMgdGhhdCBtYW5hZ2UgaW9tbXUgZXhwbGljaXRseQogIGRybS9tc206IG1hcmsgZGV2aWNl cyB3aGVyZSBpb21tdSBpcyBtYW5hZ2VkIGJ5IGRyaXZlcgoKIGRyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2FkcmVub19kZXZpY2UuYyB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9rbXMuYyAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21k cDVfa21zLmMgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jICAgICAgICAg ICAgICB8ICAxICsKIGRyaXZlcnMvaW9tbXUvaW9tbXUuYyAgICAgICAgICAgICAgICAgICAgICB8 IDExICsrKysrKysrKysrCiBpbmNsdWRlL2xpbnV4L2RldmljZS5oICAgICAgICAgICAgICAgICAg ICAgfCAgMyArKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJl ZWRyZW5v