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=-6.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 D5DE3C2D0B1 for ; Fri, 7 Feb 2020 07:33:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7CE0A2082E for ; Fri, 7 Feb 2020 07:33:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=endlessm-com.20150623.gappssmtp.com header.i=@endlessm-com.20150623.gappssmtp.com header.b="tDIE+9KE" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726894AbgBGHdc (ORCPT ); Fri, 7 Feb 2020 02:33:32 -0500 Received: from mail-vs1-f66.google.com ([209.85.217.66]:45579 "EHLO mail-vs1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726136AbgBGHdc (ORCPT ); Fri, 7 Feb 2020 02:33:32 -0500 Received: by mail-vs1-f66.google.com with SMTP id v141so603676vsv.12 for ; Thu, 06 Feb 2020 23:33:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=endlessm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=GMFyNSZrLGOSGOiW387mNilRAxEOlA7T3UqXZxjTZXQ=; b=tDIE+9KEqQ7H6fy9XIFA5/HUFvvUrAQotEIg6QNL+7TG6RHAs67BTsLcIFUmFeFnrA ibEDci6Sycnz6/vrvMg3slqLQNtdcmbfR+ylZ9s1q2y8hlxX3UdCJ5ITKBGMKrB9nyNl 6r2qLp2hheOfasUA5EltRfoMPk6hVKVHJhXDghxMqhAjNQoQQwFaxyeddD2fh+MfGlHe ss9SWgHoFsVOBzW/X6DisB+wpzGSyPtawUqJMmsPvlHqBysHGLdRBRFeh9KB8zdEE+Ki dkFIJkmS0lM+oHSDOaUWvjgGMmZTsLo/dXpyNw9tePNR9AfsCkxR47xvA4kgDqutcm95 lvMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=GMFyNSZrLGOSGOiW387mNilRAxEOlA7T3UqXZxjTZXQ=; b=TyLkDYLMGUX0BR0DO7pksjrCnS3tbobAH4TMIY8r42blAGQnV+KMN+thYQ3UKz1u5V y6qeqG+xnY1LxAKsHux9xLLPkZneWZkWtVJK8rcUrS3v78iA34ikOdpWS2Tqgff6aENu EJZuPOxR3EmxiNktu/Rs1fwDReJ/OJsh+OgMTCETkJK3mFEdfQLwKDsf/nC+aYXT3mkX pJIs8XAOY18eE66rY6YweFb196AzrOZOj+cSPm06ruFrex+Jrrdrd9ZXizz+OSDPDBeD 3rUWNdUDsf/Fd1aFv1Se+jVL9gSTHlr4RjbBL4Ig+9VeeeI9bhNoPm0PQxpqQjes7iF5 n0Ig== X-Gm-Message-State: APjAAAVg/CrTQkvji5YWK1DKvA02uqLiQ5QO4C6jHKb/0GG+pHED+pXI 9aTntH813yuK6Uignq9c5VhOg5MIv+FefTnBsZt5Fw== X-Google-Smtp-Source: APXvYqxu1vtGHZ2FVZfabmM1lhOF0H5O1WZzBxhVsqlo1F1wJbnshw2I3KV5zkve1VfX2wYsd9jO/NAh0Y/wdn05AKk= X-Received: by 2002:a05:6102:18f:: with SMTP id r15mr3856562vsq.206.1581060811000; Thu, 06 Feb 2020 23:33:31 -0800 (PST) MIME-Version: 1.0 References: <20200203091009.196658-1-jian-hong@endlessm.com> <948da337-128f-22ae-7b2e-730b4b8da446@linux.intel.com> In-Reply-To: From: Jian-Hong Pan Date: Fri, 7 Feb 2020 15:32:48 +0800 Message-ID: Subject: Re: [PATCH] iommu/intel-iommu: set as DUMMY_DEVICE_DOMAIN_INFO if no IOMMU To: Lu Baolu Cc: David Woodhouse , Joerg Roedel , iommu@lists.linux-foundation.org, Linux Kernel , Linux Upstreaming Team , "Raj, Ashok" , "jacob.jun.pan@linux.intel.com" , "Tian, Kevin" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Lu Baolu =E6=96=BC 2020=E5=B9=B42=E6=9C=886=E6= =97=A5 =E9=80=B1=E5=9B=9B =E4=B8=8B=E5=8D=886:49=E5=AF=AB=E9=81=93=EF=BC=9A > > Hi, > > On 2020/2/5 18:06, Jian-Hong Pan wrote: > > Lu Baolu =E6=96=BC 2020=E5=B9=B42=E6=9C=885= =E6=97=A5 =E9=80=B1=E4=B8=89 =E4=B8=8A=E5=8D=889:28=E5=AF=AB=E9=81=93=EF=BC= =9A > >> > >> Hi, > >> > >> On 2020/2/4 17:25, Jian-Hong Pan wrote: > >>> Lu Baolu =E6=96=BC 2020=E5=B9=B42=E6=9C=88= 4=E6=97=A5 =E9=80=B1=E4=BA=8C =E4=B8=8B=E5=8D=882:11=E5=AF=AB=E9=81=93=EF= =BC=9A > >>>> > >>>> Hi, > >>>> > >>>> On 2020/2/3 17:10, Jian-Hong Pan wrote: > >>>>> If the device has no IOMMU, it still invokes iommu_need_mapping dur= ing > >>>>> intel_alloc_coherent. However, iommu_need_mapping can only check th= e > >>>>> device is DUMMY_DEVICE_DOMAIN_INFO or not. This patch marks the dev= ice > >>>>> is a DUMMY_DEVICE_DOMAIN_INFO if the device has no IOMMU. > >>>>> > >>>>> Signed-off-by: Jian-Hong Pan > >>>>> --- > >>>>> drivers/iommu/intel-iommu.c | 4 +++- > >>>>> 1 file changed, 3 insertions(+), 1 deletion(-) > >>>>> > >>>>> diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iomm= u.c > >>>>> index 35a4a3abedc6..878bc986a015 100644 > >>>>> --- a/drivers/iommu/intel-iommu.c > >>>>> +++ b/drivers/iommu/intel-iommu.c > >>>>> @@ -5612,8 +5612,10 @@ static int intel_iommu_add_device(struct dev= ice *dev) > >>>>> int ret; > >>>>> > >>>>> iommu =3D device_to_iommu(dev, &bus, &devfn); > >>>>> - if (!iommu) > >>>>> + if (!iommu) { > >>>>> + dev->archdata.iommu =3D DUMMY_DEVICE_DOMAIN_INFO; > >>>> > >>>> Is this a DMA capable device? > >>> > >>> Do you mean is the device in DMA Remapping table? > >>> Dump DMAR from ACPI table. The device is not in the table. > >>> So, it does not support DMAR, Intel IOMMU. > >>> > >>> Or, should device_to_iommu be invoked in iommu_need_mapping to check > >>> IOMMU feature again? > >>> > >> > >> Normally intel_iommu_add_device() should only be called for PCI device= s > >> and APCI name space devices (reported in ACPI/DMAR table). In both > >> cases, device_to_iommu() should always return a corresponding iommu. I > >> just tried to understand why it failed for your case. > > > > We found all of the DMAR featured devices's PCI Segment Number is *0000= *. > > But the devices locating under segment/domain *0001* hit the issue, > > until the patch is applied. > > > > Because of different segment numbers, none of iommu will be matched by > > for_each_active_iommu(iommu, drhd) loop in function device_to_iommu() > > and it will return NULL. So, intel_iommu_add_device() returns no > > device. > > > > I can share the DMAR: > > /* > > * Intel ACPI Component Architecture > > * AML/ASL+ Disassembler version 20200110 (64-bit version) > > * Copyright (c) 2000 - 2020 Intel Corporation > > * > > * Disassembly of dmar.dat, Wed Jan 22 11:41:50 2020 > > * > > * ACPI Data Table [DMAR] > > * > > * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValu= e > > */ > > > > [000h 0000 4] Signature : "DMAR" [DMA Remapping= table] > > [004h 0004 4] Table Length : 000000A8 > > [008h 0008 1] Revision : 01 > > [009h 0009 1] Checksum : 5E > > [00Ah 0010 6] Oem ID : "INTEL " > > [010h 0016 8] Oem Table ID : "EDK2 " > > [018h 0024 4] Oem Revision : 00000002 > > [01Ch 0028 4] Asl Compiler ID : " " > > [020h 0032 4] Asl Compiler Revision : 01000013 > > > > [024h 0036 1] Host Address Width : 26 > > [025h 0037 1] Flags : 05 > > [026h 0038 10] Reserved : 00 00 00 00 00 00 00 00 = 00 00 > > > > [030h 0048 2] Subtable Type : 0000 [Hardware Unit Defi= nition] > > [032h 0050 2] Length : 0018 > > > > [034h 0052 1] Flags : 00 > > [035h 0053 1] Reserved : 00 > > [036h 0054 2] PCI Segment Number : 0000 > > [038h 0056 8] Register Base Address : 00000000FED90000 > > > > [040h 0064 1] Device Scope Type : 01 [PCI Endpoint Device] > > [041h 0065 1] Entry Length : 08 > > [042h 0066 2] Reserved : 0000 > > [044h 0068 1] Enumeration ID : 00 > > [045h 0069 1] PCI Bus Number : 00 > > > > [046h 0070 2] PCI Path : 02,00 > > > > > > [048h 0072 2] Subtable Type : 0000 [Hardware Unit Defi= nition] > > [04Ah 0074 2] Length : 0020 > > > > [04Ch 0076 1] Flags : 01 > > [04Dh 0077 1] Reserved : 00 > > [04Eh 0078 2] PCI Segment Number : 0000 > > [050h 0080 8] Register Base Address : 00000000FED91000 > > > > [058h 0088 1] Device Scope Type : 03 [IOAPIC Device] > > [059h 0089 1] Entry Length : 08 > > [05Ah 0090 2] Reserved : 0000 > > [05Ch 0092 1] Enumeration ID : 02 > > [05Dh 0093 1] PCI Bus Number : 00 > > > > [05Eh 0094 2] PCI Path : 1E,07 > > > > > > [060h 0096 1] Device Scope Type : 04 [Message-capable HPET= Device] > > [061h 0097 1] Entry Length : 08 > > [062h 0098 2] Reserved : 0000 > > [064h 0100 1] Enumeration ID : 00 > > [065h 0101 1] PCI Bus Number : 00 > > > > [066h 0102 2] PCI Path : 1E,06 > > > > > > [068h 0104 2] Subtable Type : 0001 [Reserved Memory Re= gion] > > [06Ah 0106 2] Length : 0020 > > > > [06Ch 0108 2] Reserved : 0000 > > [06Eh 0110 2] PCI Segment Number : 0000 > > [070h 0112 8] Base Address : 000000006F58B000 > > [078h 0120 8] End Address (limit) : 000000006F7D4FFF > > > > [080h 0128 1] Device Scope Type : 01 [PCI Endpoint Device] > > [081h 0129 1] Entry Length : 08 > > [082h 0130 2] Reserved : 0000 > > [084h 0132 1] Enumeration ID : 00 > > [085h 0133 1] PCI Bus Number : 00 > > > > [086h 0134 2] PCI Path : 14,00 > > > > > > [088h 0136 2] Subtable Type : 0001 [Reserved Memory Re= gion] > > [08Ah 0138 2] Length : 0020 > > > > [08Ch 0140 2] Reserved : 0000 > > [08Eh 0142 2] PCI Segment Number : 0000 > > [090h 0144 8] Base Address : 0000000079800000 > > [098h 0152 8] End Address (limit) : 000000007DFFFFFF > > > > [0A0h 0160 1] Device Scope Type : 01 [PCI Endpoint Device] > > [0A1h 0161 1] Entry Length : 08 > > [0A2h 0162 2] Reserved : 0000 > > [0A4h 0164 1] Enumeration ID : 00 > > [0A5h 0165 1] PCI Bus Number : 00 > > > > [0A6h 0166 2] PCI Path : 02,00 > > > > > > Raw Table Data: Length 168 (0xA8) > > > > 0000: 44 4D 41 52 A8 00 00 00 01 5E 49 4E 54 45 4C 20 // DMAR....= .^INTEL > > 0010: 45 44 4B 32 20 20 20 20 02 00 00 00 20 20 20 20 // EDK2 = .... > > 0020: 13 00 00 01 26 05 00 00 00 00 00 00 00 00 00 00 // ....&...= ........ > > 0030: 00 00 18 00 00 00 00 00 00 00 D9 FE 00 00 00 00 // ........= ........ > > 0040: 01 08 00 00 00 00 02 00 00 00 20 00 01 00 00 00 // ........= .. ..... > > 0050: 00 10 D9 FE 00 00 00 00 03 08 00 00 02 00 1E 07 // ........= ........ > > 0060: 04 08 00 00 00 00 1E 06 01 00 20 00 00 00 00 00 // ........= .. ..... > > 0070: 00 B0 58 6F 00 00 00 00 FF 4F 7D 6F 00 00 00 00 // ..Xo....= .O}o.... > > 0080: 01 08 00 00 00 00 14 00 01 00 20 00 00 00 00 00 // ........= .. ..... > > 0090: 00 00 80 79 00 00 00 00 FF FF FF 7D 00 00 00 00 // ...y....= ...}.... > > 00A0: 01 08 00 00 00 00 02 00 // ........ > > > > Here is the lspci: > > 0000:00:00.0 Host bridge: Intel Corporation Device 9b61 (rev 0c) > > 0000:00:02.0 VGA compatible controller: Intel Corporation Device 9b41 (= rev 02) > > 0000:00:04.0 Signal processing controller: Intel Corporation Skylake > > Processor Thermal Subsystem (rev 0c) > > 0000:00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixt= ure Model > > 0000:00:12.0 Signal processing controller: Intel Corporation Device 02f= 9 > > 0000:00:13.0 Serial controller: Intel Corporation Device 02fc > > 0000:00:14.0 USB controller: Intel Corporation Device 02ed > > 0000:00:14.2 RAM memory: Intel Corporation Device 02ef > > 0000:00:14.3 Network controller: Intel Corporation Device 02f0 > > 0000:00:15.0 Serial bus controller [0c80]: Intel Corporation Device 02e= 8 > > 0000:00:15.1 Serial bus controller [0c80]: Intel Corporation Device 02e= 9 > > 0000:00:15.2 Serial bus controller [0c80]: Intel Corporation Device 02e= a > > 0000:00:16.0 Communication controller: Intel Corporation Device 02e0 > > 0000:00:17.0 RAID bus controller: Intel Corporation Device 02d7 > > 0000:00:1c.0 PCI bridge: Intel Corporation Device 02b8 (rev f0) > > 0000:00:1e.0 Communication controller: Intel Corporation Device 02a8 > > 0000:00:1e.2 Serial bus controller [0c80]: Intel Corporation Device 02a= a > > 0000:00:1f.0 ISA bridge: Intel Corporation Device 0284 > > 0000:00:1f.3 Audio device: Intel Corporation Device 02c8 > > 0000:00:1f.4 SMBus: Intel Corporation Device 02a3 > > 0000:00:1f.5 Serial bus controller [0c80]: Intel Corporation Device 02a= 4 > > 0000:00:1f.6 Ethernet controller: Intel Corporation Device 0d4f > > 0000:01:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 > > Bridge [Titan Ridge 4C 2018] (rev 06) > > 0000:02:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 > > Bridge [Titan Ridge 4C 2018] (rev 06) > > 0000:02:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 > > Bridge [Titan Ridge 4C 2018] (rev 06) > > 0000:02:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 > > Bridge [Titan Ridge 4C 2018] (rev 06) > > 0000:02:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 > > Bridge [Titan Ridge 4C 2018] (rev 06) > > 0000:03:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt > > 3 NHI [Titan Ridge 4C 2018] (rev 06) > > 0000:37:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 > > USB Controller [Titan Ridge 4C 2018] (rev 06) > > 0001:00:00.0 SATA controller: Intel Corporation Device 02d7 > > 0001:00:01.0 Non-Volatile memory controller: Intel Corporation Device 0= 000 > > 0001:00:02.0 Non-Volatile memory controller: Intel Corporation Device 0= 000 > > > > So devices are sitting in PCI segment 1, while ACPI/DMAR only reports > IOMMU units for PCI segment 0. Do I understand it right? Yes. > Is it possible that hardware supports DMAR for both PCI segment 0 and 1, > but the firmware doesn't reports those for PCI segement 1? Good question! I have not think the change of DMAR for segment 0 and 1. But, I guess the answer is not. The hardware vendor will say Windows works fine ... The devices under segment 1 are fake devices produced by intel-nvme-remap mentioned here https://lkml.org/lkml/2020/2/5/139 We are also curios about why VMD (drivers/pci/controller/vmd.c) works fine here. It also produces fake devices, but can use iommu correctly. Due to no VMD related machines on hand, it is hard to trace the flow. Could you please give us some clues? Thank you, Jian-Hong Pan 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=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 962DBC2D0B1 for ; Fri, 7 Feb 2020 07:33:37 +0000 (UTC) Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (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 5F5452082E for ; Fri, 7 Feb 2020 07:33:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=endlessm-com.20150623.gappssmtp.com header.i=@endlessm-com.20150623.gappssmtp.com header.b="tDIE+9KE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5F5452082E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=endlessm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 1852120462; Fri, 7 Feb 2020 07:33:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SdEHgcRNoT8k; Fri, 7 Feb 2020 07:33:35 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by silver.osuosl.org (Postfix) with ESMTP id 5A02D20421; Fri, 7 Feb 2020 07:33:35 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 4D3DAC1796; Fri, 7 Feb 2020 07:33:35 +0000 (UTC) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id E6576C013E for ; Fri, 7 Feb 2020 07:33:33 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id D708A86398 for ; Fri, 7 Feb 2020 07:33:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wSeLPoYkL2Ih for ; Fri, 7 Feb 2020 07:33:32 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-vs1-f65.google.com (mail-vs1-f65.google.com [209.85.217.65]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 5CB1A86388 for ; Fri, 7 Feb 2020 07:33:32 +0000 (UTC) Received: by mail-vs1-f65.google.com with SMTP id b79so612555vsd.9 for ; Thu, 06 Feb 2020 23:33:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=endlessm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=GMFyNSZrLGOSGOiW387mNilRAxEOlA7T3UqXZxjTZXQ=; b=tDIE+9KEqQ7H6fy9XIFA5/HUFvvUrAQotEIg6QNL+7TG6RHAs67BTsLcIFUmFeFnrA ibEDci6Sycnz6/vrvMg3slqLQNtdcmbfR+ylZ9s1q2y8hlxX3UdCJ5ITKBGMKrB9nyNl 6r2qLp2hheOfasUA5EltRfoMPk6hVKVHJhXDghxMqhAjNQoQQwFaxyeddD2fh+MfGlHe ss9SWgHoFsVOBzW/X6DisB+wpzGSyPtawUqJMmsPvlHqBysHGLdRBRFeh9KB8zdEE+Ki dkFIJkmS0lM+oHSDOaUWvjgGMmZTsLo/dXpyNw9tePNR9AfsCkxR47xvA4kgDqutcm95 lvMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=GMFyNSZrLGOSGOiW387mNilRAxEOlA7T3UqXZxjTZXQ=; b=I+d0hO4nOKvq0toXfZjGVdbH7ohj22fSEl9xDKl/k/R1P9MU4/haH1QWLJ6Qtgu60U BX2VvOlN1CXZo2X1u4Mc3/2HjTjO5jiOShRrAp3CplK22FBQ+iHOo3TQQzMnslIivdZC 72CdwJT8kUx12b9ea86fF/WqUO0kkHIKyuWOj+bHcQbaEo6ewzHSdxwXgKVcgCk12ydr ch942mcMnWf0/3Uz2RnPK0GtOQ3bipPDGyowNjj8nnB7H/D2CxVrNqEa+Z47e3HLqFbi kjW7BBCGvLDTFIh/yViHE7D3MXGSkrayrdYWf9RDN74c+KwbH1nIopkoNdP90SWv0C1w k1Cw== X-Gm-Message-State: APjAAAUgZTllmdGUq8u83yjWlj3XCLB8DxjUEW7+WIOyjvNFkDrnKobK CYSIblbhrwJhjtgIUciuN4dIXrd301m554yi4mb84w== X-Google-Smtp-Source: APXvYqxu1vtGHZ2FVZfabmM1lhOF0H5O1WZzBxhVsqlo1F1wJbnshw2I3KV5zkve1VfX2wYsd9jO/NAh0Y/wdn05AKk= X-Received: by 2002:a05:6102:18f:: with SMTP id r15mr3856562vsq.206.1581060811000; Thu, 06 Feb 2020 23:33:31 -0800 (PST) MIME-Version: 1.0 References: <20200203091009.196658-1-jian-hong@endlessm.com> <948da337-128f-22ae-7b2e-730b4b8da446@linux.intel.com> In-Reply-To: From: Jian-Hong Pan Date: Fri, 7 Feb 2020 15:32:48 +0800 Message-ID: Subject: Re: [PATCH] iommu/intel-iommu: set as DUMMY_DEVICE_DOMAIN_INFO if no IOMMU To: Lu Baolu Cc: "Tian, Kevin" , "Raj, Ashok" , David Woodhouse , Linux Kernel , iommu@lists.linux-foundation.org, Linux Upstreaming Team X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 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="utf-8" Content-Transfer-Encoding: base64 Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" THUgQmFvbHUgPGJhb2x1Lmx1QGxpbnV4LmludGVsLmNvbT4g5pa8IDIwMjDlubQy5pyINuaXpSDp gLHlm5sg5LiL5Y2INjo0OeWvq+mBk++8mgo+Cj4gSGksCj4KPiBPbiAyMDIwLzIvNSAxODowNiwg Smlhbi1Ib25nIFBhbiB3cm90ZToKPiA+IEx1IEJhb2x1IDxiYW9sdS5sdUBsaW51eC5pbnRlbC5j b20+IOaWvCAyMDIw5bm0MuaciDXml6Ug6YCx5LiJIOS4iuWNiDk6Mjjlr6vpgZPvvJoKPiA+Pgo+ ID4+IEhpLAo+ID4+Cj4gPj4gT24gMjAyMC8yLzQgMTc6MjUsIEppYW4tSG9uZyBQYW4gd3JvdGU6 Cj4gPj4+IEx1IEJhb2x1IDxiYW9sdS5sdUBsaW51eC5pbnRlbC5jb20+IOaWvCAyMDIw5bm0Muac iDTml6Ug6YCx5LqMIOS4i+WNiDI6MTHlr6vpgZPvvJoKPiA+Pj4+Cj4gPj4+PiBIaSwKPiA+Pj4+ Cj4gPj4+PiBPbiAyMDIwLzIvMyAxNzoxMCwgSmlhbi1Ib25nIFBhbiB3cm90ZToKPiA+Pj4+PiBJ ZiB0aGUgZGV2aWNlIGhhcyBubyBJT01NVSwgaXQgc3RpbGwgaW52b2tlcyBpb21tdV9uZWVkX21h cHBpbmcgZHVyaW5nCj4gPj4+Pj4gaW50ZWxfYWxsb2NfY29oZXJlbnQuIEhvd2V2ZXIsIGlvbW11 X25lZWRfbWFwcGluZyBjYW4gb25seSBjaGVjayB0aGUKPiA+Pj4+PiBkZXZpY2UgaXMgRFVNTVlf REVWSUNFX0RPTUFJTl9JTkZPIG9yIG5vdC4gVGhpcyBwYXRjaCBtYXJrcyB0aGUgZGV2aWNlCj4g Pj4+Pj4gaXMgYSBEVU1NWV9ERVZJQ0VfRE9NQUlOX0lORk8gaWYgdGhlIGRldmljZSBoYXMgbm8g SU9NTVUuCj4gPj4+Pj4KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKaWFuLUhvbmcgUGFuIDxqaWFu LWhvbmdAZW5kbGVzc20uY29tPgo+ID4+Pj4+IC0tLQo+ID4+Pj4+ICAgICBkcml2ZXJzL2lvbW11 L2ludGVsLWlvbW11LmMgfCA0ICsrKy0KPiA+Pj4+PiAgICAgMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4+Pj4+Cj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYwo+ ID4+Pj4+IGluZGV4IDM1YTRhM2FiZWRjNi4uODc4YmM5ODZhMDE1IDEwMDY0NAo+ID4+Pj4+IC0t LSBhL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYwo+ID4+Pj4+ICsrKyBiL2RyaXZlcnMvaW9t bXUvaW50ZWwtaW9tbXUuYwo+ID4+Pj4+IEBAIC01NjEyLDggKzU2MTIsMTAgQEAgc3RhdGljIGlu dCBpbnRlbF9pb21tdV9hZGRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKPiA+Pj4+PiAgICAg ICAgIGludCByZXQ7Cj4gPj4+Pj4KPiA+Pj4+PiAgICAgICAgIGlvbW11ID0gZGV2aWNlX3RvX2lv bW11KGRldiwgJmJ1cywgJmRldmZuKTsKPiA+Pj4+PiAtICAgICBpZiAoIWlvbW11KQo+ID4+Pj4+ ICsgICAgIGlmICghaW9tbXUpIHsKPiA+Pj4+PiArICAgICAgICAgICAgIGRldi0+YXJjaGRhdGEu aW9tbXUgPSBEVU1NWV9ERVZJQ0VfRE9NQUlOX0lORk87Cj4gPj4+Pgo+ID4+Pj4gSXMgdGhpcyBh IERNQSBjYXBhYmxlIGRldmljZT8KPiA+Pj4KPiA+Pj4gRG8geW91IG1lYW4gaXMgdGhlIGRldmlj ZSBpbiBETUEgUmVtYXBwaW5nIHRhYmxlPwo+ID4+PiBEdW1wIERNQVIgZnJvbSBBQ1BJIHRhYmxl LiAgVGhlIGRldmljZSBpcyBub3QgaW4gdGhlIHRhYmxlLgo+ID4+PiBTbywgaXQgZG9lcyBub3Qg c3VwcG9ydCBETUFSLCBJbnRlbCBJT01NVS4KPiA+Pj4KPiA+Pj4gT3IsIHNob3VsZCBkZXZpY2Vf dG9faW9tbXUgYmUgaW52b2tlZCBpbiBpb21tdV9uZWVkX21hcHBpbmcgdG8gY2hlY2sKPiA+Pj4g SU9NTVUgZmVhdHVyZSBhZ2Fpbj8KPiA+Pj4KPiA+Pgo+ID4+IE5vcm1hbGx5IGludGVsX2lvbW11 X2FkZF9kZXZpY2UoKSBzaG91bGQgb25seSBiZSBjYWxsZWQgZm9yIFBDSSBkZXZpY2VzCj4gPj4g YW5kIEFQQ0kgbmFtZSBzcGFjZSBkZXZpY2VzIChyZXBvcnRlZCBpbiBBQ1BJL0RNQVIgdGFibGUp LiBJbiBib3RoCj4gPj4gY2FzZXMsIGRldmljZV90b19pb21tdSgpIHNob3VsZCBhbHdheXMgcmV0 dXJuIGEgY29ycmVzcG9uZGluZyBpb21tdS4gSQo+ID4+IGp1c3QgdHJpZWQgdG8gdW5kZXJzdGFu ZCB3aHkgaXQgZmFpbGVkIGZvciB5b3VyIGNhc2UuCj4gPgo+ID4gV2UgZm91bmQgYWxsIG9mIHRo ZSBETUFSIGZlYXR1cmVkIGRldmljZXMncyBQQ0kgU2VnbWVudCBOdW1iZXIgaXMgKjAwMDAqLgo+ ID4gQnV0IHRoZSBkZXZpY2VzIGxvY2F0aW5nIHVuZGVyIHNlZ21lbnQvZG9tYWluICowMDAxKiBo aXQgdGhlIGlzc3VlLAo+ID4gdW50aWwgdGhlIHBhdGNoIGlzIGFwcGxpZWQuCj4gPgo+ID4gQmVj YXVzZSBvZiBkaWZmZXJlbnQgc2VnbWVudCBudW1iZXJzLCBub25lIG9mIGlvbW11IHdpbGwgYmUg bWF0Y2hlZCBieQo+ID4gZm9yX2VhY2hfYWN0aXZlX2lvbW11KGlvbW11LCBkcmhkKSBsb29wIGlu IGZ1bmN0aW9uIGRldmljZV90b19pb21tdSgpCj4gPiBhbmQgaXQgd2lsbCByZXR1cm4gTlVMTC4g IFNvLCBpbnRlbF9pb21tdV9hZGRfZGV2aWNlKCkgcmV0dXJucyBubwo+ID4gZGV2aWNlLgo+ID4K PiA+IEkgY2FuIHNoYXJlIHRoZSBETUFSOgo+ID4gLyoKPiA+ICAgKiBJbnRlbCBBQ1BJIENvbXBv bmVudCBBcmNoaXRlY3R1cmUKPiA+ICAgKiBBTUwvQVNMKyBEaXNhc3NlbWJsZXIgdmVyc2lvbiAy MDIwMDExMCAoNjQtYml0IHZlcnNpb24pCj4gPiAgICogQ29weXJpZ2h0IChjKSAyMDAwIC0gMjAy MCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gICAqCj4gPiAgICogRGlzYXNzZW1ibHkgb2YgZG1hci5k YXQsIFdlZCBKYW4gMjIgMTE6NDE6NTAgMjAyMAo+ID4gICAqCj4gPiAgICogQUNQSSBEYXRhIFRh YmxlIFtETUFSXQo+ID4gICAqCj4gPiAgICogRm9ybWF0OiBbSGV4T2Zmc2V0IERlY2ltYWxPZmZz ZXQgQnl0ZUxlbmd0aF0gIEZpZWxkTmFtZSA6IEZpZWxkVmFsdWUKPiA+ICAgKi8KPiA+Cj4gPiBb MDAwaCAwMDAwICAgNF0gICAgICAgICAgICAgICAgICAgIFNpZ25hdHVyZSA6ICJETUFSIiAgICBb RE1BIFJlbWFwcGluZyB0YWJsZV0KPiA+IFswMDRoIDAwMDQgICA0XSAgICAgICAgICAgICAgICAg VGFibGUgTGVuZ3RoIDogMDAwMDAwQTgKPiA+IFswMDhoIDAwMDggICAxXSAgICAgICAgICAgICAg ICAgICAgIFJldmlzaW9uIDogMDEKPiA+IFswMDloIDAwMDkgICAxXSAgICAgICAgICAgICAgICAg ICAgIENoZWNrc3VtIDogNUUKPiA+IFswMEFoIDAwMTAgICA2XSAgICAgICAgICAgICAgICAgICAg ICAgT2VtIElEIDogIklOVEVMICIKPiA+IFswMTBoIDAwMTYgICA4XSAgICAgICAgICAgICAgICAg T2VtIFRhYmxlIElEIDogIkVESzIgICAgIgo+ID4gWzAxOGggMDAyNCAgIDRdICAgICAgICAgICAg ICAgICBPZW0gUmV2aXNpb24gOiAwMDAwMDAwMgo+ID4gWzAxQ2ggMDAyOCAgIDRdICAgICAgICAg ICAgICBBc2wgQ29tcGlsZXIgSUQgOiAiICAgICIKPiA+IFswMjBoIDAwMzIgICA0XSAgICAgICAg QXNsIENvbXBpbGVyIFJldmlzaW9uIDogMDEwMDAwMTMKPiA+Cj4gPiBbMDI0aCAwMDM2ICAgMV0g ICAgICAgICAgIEhvc3QgQWRkcmVzcyBXaWR0aCA6IDI2Cj4gPiBbMDI1aCAwMDM3ICAgMV0gICAg ICAgICAgICAgICAgICAgICAgICBGbGFncyA6IDA1Cj4gPiBbMDI2aCAwMDM4ICAxMF0gICAgICAg ICAgICAgICAgICAgICBSZXNlcnZlZCA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4g Pgo+ID4gWzAzMGggMDA0OCAgIDJdICAgICAgICAgICAgICAgIFN1YnRhYmxlIFR5cGUgOiAwMDAw IFtIYXJkd2FyZSBVbml0IERlZmluaXRpb25dCj4gPiBbMDMyaCAwMDUwICAgMl0gICAgICAgICAg ICAgICAgICAgICAgIExlbmd0aCA6IDAwMTgKPiA+Cj4gPiBbMDM0aCAwMDUyICAgMV0gICAgICAg ICAgICAgICAgICAgICAgICBGbGFncyA6IDAwCj4gPiBbMDM1aCAwMDUzICAgMV0gICAgICAgICAg ICAgICAgICAgICBSZXNlcnZlZCA6IDAwCj4gPiBbMDM2aCAwMDU0ICAgMl0gICAgICAgICAgIFBD SSBTZWdtZW50IE51bWJlciA6IDAwMDAKPiA+IFswMzhoIDAwNTYgICA4XSAgICAgICAgUmVnaXN0 ZXIgQmFzZSBBZGRyZXNzIDogMDAwMDAwMDBGRUQ5MDAwMAo+ID4KPiA+IFswNDBoIDAwNjQgICAx XSAgICAgICAgICAgIERldmljZSBTY29wZSBUeXBlIDogMDEgW1BDSSBFbmRwb2ludCBEZXZpY2Vd Cj4gPiBbMDQxaCAwMDY1ICAgMV0gICAgICAgICAgICAgICAgIEVudHJ5IExlbmd0aCA6IDA4Cj4g PiBbMDQyaCAwMDY2ICAgMl0gICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZCA6IDAwMDAKPiA+ IFswNDRoIDAwNjggICAxXSAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIElEIDogMDAKPiA+IFsw NDVoIDAwNjkgICAxXSAgICAgICAgICAgICAgIFBDSSBCdXMgTnVtYmVyIDogMDAKPiA+Cj4gPiBb MDQ2aCAwMDcwICAgMl0gICAgICAgICAgICAgICAgICAgICBQQ0kgUGF0aCA6IDAyLDAwCj4gPgo+ ID4KPiA+IFswNDhoIDAwNzIgICAyXSAgICAgICAgICAgICAgICBTdWJ0YWJsZSBUeXBlIDogMDAw MCBbSGFyZHdhcmUgVW5pdCBEZWZpbml0aW9uXQo+ID4gWzA0QWggMDA3NCAgIDJdICAgICAgICAg ICAgICAgICAgICAgICBMZW5ndGggOiAwMDIwCj4gPgo+ID4gWzA0Q2ggMDA3NiAgIDFdICAgICAg ICAgICAgICAgICAgICAgICAgRmxhZ3MgOiAwMQo+ID4gWzA0RGggMDA3NyAgIDFdICAgICAgICAg ICAgICAgICAgICAgUmVzZXJ2ZWQgOiAwMAo+ID4gWzA0RWggMDA3OCAgIDJdICAgICAgICAgICBQ Q0kgU2VnbWVudCBOdW1iZXIgOiAwMDAwCj4gPiBbMDUwaCAwMDgwICAgOF0gICAgICAgIFJlZ2lz dGVyIEJhc2UgQWRkcmVzcyA6IDAwMDAwMDAwRkVEOTEwMDAKPiA+Cj4gPiBbMDU4aCAwMDg4ICAg MV0gICAgICAgICAgICBEZXZpY2UgU2NvcGUgVHlwZSA6IDAzIFtJT0FQSUMgRGV2aWNlXQo+ID4g WzA1OWggMDA4OSAgIDFdICAgICAgICAgICAgICAgICBFbnRyeSBMZW5ndGggOiAwOAo+ID4gWzA1 QWggMDA5MCAgIDJdICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQgOiAwMDAwCj4gPiBbMDVD aCAwMDkyICAgMV0gICAgICAgICAgICAgICBFbnVtZXJhdGlvbiBJRCA6IDAyCj4gPiBbMDVEaCAw MDkzICAgMV0gICAgICAgICAgICAgICBQQ0kgQnVzIE51bWJlciA6IDAwCj4gPgo+ID4gWzA1RWgg MDA5NCAgIDJdICAgICAgICAgICAgICAgICAgICAgUENJIFBhdGggOiAxRSwwNwo+ID4KPiA+Cj4g PiBbMDYwaCAwMDk2ICAgMV0gICAgICAgICAgICBEZXZpY2UgU2NvcGUgVHlwZSA6IDA0IFtNZXNz YWdlLWNhcGFibGUgSFBFVCBEZXZpY2VdCj4gPiBbMDYxaCAwMDk3ICAgMV0gICAgICAgICAgICAg ICAgIEVudHJ5IExlbmd0aCA6IDA4Cj4gPiBbMDYyaCAwMDk4ICAgMl0gICAgICAgICAgICAgICAg ICAgICBSZXNlcnZlZCA6IDAwMDAKPiA+IFswNjRoIDAxMDAgICAxXSAgICAgICAgICAgICAgIEVu dW1lcmF0aW9uIElEIDogMDAKPiA+IFswNjVoIDAxMDEgICAxXSAgICAgICAgICAgICAgIFBDSSBC dXMgTnVtYmVyIDogMDAKPiA+Cj4gPiBbMDY2aCAwMTAyICAgMl0gICAgICAgICAgICAgICAgICAg ICBQQ0kgUGF0aCA6IDFFLDA2Cj4gPgo+ID4KPiA+IFswNjhoIDAxMDQgICAyXSAgICAgICAgICAg ICAgICBTdWJ0YWJsZSBUeXBlIDogMDAwMSBbUmVzZXJ2ZWQgTWVtb3J5IFJlZ2lvbl0KPiA+IFsw NkFoIDAxMDYgICAyXSAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoIDogMDAyMAo+ID4KPiA+ IFswNkNoIDAxMDggICAyXSAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkIDogMDAwMAo+ID4g WzA2RWggMDExMCAgIDJdICAgICAgICAgICBQQ0kgU2VnbWVudCBOdW1iZXIgOiAwMDAwCj4gPiBb MDcwaCAwMTEyICAgOF0gICAgICAgICAgICAgICAgIEJhc2UgQWRkcmVzcyA6IDAwMDAwMDAwNkY1 OEIwMDAKPiA+IFswNzhoIDAxMjAgICA4XSAgICAgICAgICBFbmQgQWRkcmVzcyAobGltaXQpIDog MDAwMDAwMDA2RjdENEZGRgo+ID4KPiA+IFswODBoIDAxMjggICAxXSAgICAgICAgICAgIERldmlj ZSBTY29wZSBUeXBlIDogMDEgW1BDSSBFbmRwb2ludCBEZXZpY2VdCj4gPiBbMDgxaCAwMTI5ICAg MV0gICAgICAgICAgICAgICAgIEVudHJ5IExlbmd0aCA6IDA4Cj4gPiBbMDgyaCAwMTMwICAgMl0g ICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZCA6IDAwMDAKPiA+IFswODRoIDAxMzIgICAxXSAg ICAgICAgICAgICAgIEVudW1lcmF0aW9uIElEIDogMDAKPiA+IFswODVoIDAxMzMgICAxXSAgICAg ICAgICAgICAgIFBDSSBCdXMgTnVtYmVyIDogMDAKPiA+Cj4gPiBbMDg2aCAwMTM0ICAgMl0gICAg ICAgICAgICAgICAgICAgICBQQ0kgUGF0aCA6IDE0LDAwCj4gPgo+ID4KPiA+IFswODhoIDAxMzYg ICAyXSAgICAgICAgICAgICAgICBTdWJ0YWJsZSBUeXBlIDogMDAwMSBbUmVzZXJ2ZWQgTWVtb3J5 IFJlZ2lvbl0KPiA+IFswOEFoIDAxMzggICAyXSAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3Ro IDogMDAyMAo+ID4KPiA+IFswOENoIDAxNDAgICAyXSAgICAgICAgICAgICAgICAgICAgIFJlc2Vy dmVkIDogMDAwMAo+ID4gWzA4RWggMDE0MiAgIDJdICAgICAgICAgICBQQ0kgU2VnbWVudCBOdW1i ZXIgOiAwMDAwCj4gPiBbMDkwaCAwMTQ0ICAgOF0gICAgICAgICAgICAgICAgIEJhc2UgQWRkcmVz cyA6IDAwMDAwMDAwNzk4MDAwMDAKPiA+IFswOThoIDAxNTIgICA4XSAgICAgICAgICBFbmQgQWRk cmVzcyAobGltaXQpIDogMDAwMDAwMDA3REZGRkZGRgo+ID4KPiA+IFswQTBoIDAxNjAgICAxXSAg ICAgICAgICAgIERldmljZSBTY29wZSBUeXBlIDogMDEgW1BDSSBFbmRwb2ludCBEZXZpY2VdCj4g PiBbMEExaCAwMTYxICAgMV0gICAgICAgICAgICAgICAgIEVudHJ5IExlbmd0aCA6IDA4Cj4gPiBb MEEyaCAwMTYyICAgMl0gICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZCA6IDAwMDAKPiA+IFsw QTRoIDAxNjQgICAxXSAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIElEIDogMDAKPiA+IFswQTVo IDAxNjUgICAxXSAgICAgICAgICAgICAgIFBDSSBCdXMgTnVtYmVyIDogMDAKPiA+Cj4gPiBbMEE2 aCAwMTY2ICAgMl0gICAgICAgICAgICAgICAgICAgICBQQ0kgUGF0aCA6IDAyLDAwCj4gPgo+ID4K PiA+IFJhdyBUYWJsZSBEYXRhOiBMZW5ndGggMTY4ICgweEE4KQo+ID4KPiA+ICAgICAgMDAwMDog NDQgNEQgNDEgNTIgQTggMDAgMDAgMDAgMDEgNUUgNDkgNEUgNTQgNDUgNEMgMjAgIC8vIERNQVIu Li4uLl5JTlRFTAo+ID4gICAgICAwMDEwOiA0NSA0NCA0QiAzMiAyMCAyMCAyMCAyMCAwMiAwMCAw MCAwMCAyMCAyMCAyMCAyMCAgLy8gRURLMiAgICAuLi4uCj4gPiAgICAgIDAwMjA6IDEzIDAwIDAw IDAxIDI2IDA1IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAvLyAuLi4uJi4uLi4uLi4u Li4uCj4gPiAgICAgIDAwMzA6IDAwIDAwIDE4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIEQ5IEZFIDAw IDAwIDAwIDAwICAvLyAuLi4uLi4uLi4uLi4uLi4uCj4gPiAgICAgIDAwNDA6IDAxIDA4IDAwIDAw IDAwIDAwIDAyIDAwIDAwIDAwIDIwIDAwIDAxIDAwIDAwIDAwICAvLyAuLi4uLi4uLi4uIC4uLi4u Cj4gPiAgICAgIDAwNTA6IDAwIDEwIEQ5IEZFIDAwIDAwIDAwIDAwIDAzIDA4IDAwIDAwIDAyIDAw IDFFIDA3ICAvLyAuLi4uLi4uLi4uLi4uLi4uCj4gPiAgICAgIDAwNjA6IDA0IDA4IDAwIDAwIDAw IDAwIDFFIDA2IDAxIDAwIDIwIDAwIDAwIDAwIDAwIDAwICAvLyAuLi4uLi4uLi4uIC4uLi4uCj4g PiAgICAgIDAwNzA6IDAwIEIwIDU4IDZGIDAwIDAwIDAwIDAwIEZGIDRGIDdEIDZGIDAwIDAwIDAw IDAwICAvLyAuLlhvLi4uLi5PfW8uLi4uCj4gPiAgICAgIDAwODA6IDAxIDA4IDAwIDAwIDAwIDAw IDE0IDAwIDAxIDAwIDIwIDAwIDAwIDAwIDAwIDAwICAvLyAuLi4uLi4uLi4uIC4uLi4uCj4gPiAg ICAgIDAwOTA6IDAwIDAwIDgwIDc5IDAwIDAwIDAwIDAwIEZGIEZGIEZGIDdEIDAwIDAwIDAwIDAw ICAvLyAuLi55Li4uLi4uLn0uLi4uCj4gPiAgICAgIDAwQTA6IDAxIDA4IDAwIDAwIDAwIDAwIDAy IDAwICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uLi4uLgo+ID4KPiA+IEhlcmUgaXMg dGhlIGxzcGNpOgo+ID4gMDAwMDowMDowMC4wIEhvc3QgYnJpZGdlOiBJbnRlbCBDb3Jwb3JhdGlv biBEZXZpY2UgOWI2MSAocmV2IDBjKQo+ID4gMDAwMDowMDowMi4wIFZHQSBjb21wYXRpYmxlIGNv bnRyb2xsZXI6IEludGVsIENvcnBvcmF0aW9uIERldmljZSA5YjQxIChyZXYgMDIpCj4gPiAwMDAw OjAwOjA0LjAgU2lnbmFsIHByb2Nlc3NpbmcgY29udHJvbGxlcjogSW50ZWwgQ29ycG9yYXRpb24g U2t5bGFrZQo+ID4gUHJvY2Vzc29yIFRoZXJtYWwgU3Vic3lzdGVtIChyZXYgMGMpCj4gPiAwMDAw OjAwOjA4LjAgU3lzdGVtIHBlcmlwaGVyYWw6IEludGVsIENvcnBvcmF0aW9uIFNreWxha2UgR2F1 c3NpYW4gTWl4dHVyZSBNb2RlbAo+ID4gMDAwMDowMDoxMi4wIFNpZ25hbCBwcm9jZXNzaW5nIGNv bnRyb2xsZXI6IEludGVsIENvcnBvcmF0aW9uIERldmljZSAwMmY5Cj4gPiAwMDAwOjAwOjEzLjAg U2VyaWFsIGNvbnRyb2xsZXI6IEludGVsIENvcnBvcmF0aW9uIERldmljZSAwMmZjCj4gPiAwMDAw OjAwOjE0LjAgVVNCIGNvbnRyb2xsZXI6IEludGVsIENvcnBvcmF0aW9uIERldmljZSAwMmVkCj4g PiAwMDAwOjAwOjE0LjIgUkFNIG1lbW9yeTogSW50ZWwgQ29ycG9yYXRpb24gRGV2aWNlIDAyZWYK PiA+IDAwMDA6MDA6MTQuMyBOZXR3b3JrIGNvbnRyb2xsZXI6IEludGVsIENvcnBvcmF0aW9uIERl dmljZSAwMmYwCj4gPiAwMDAwOjAwOjE1LjAgU2VyaWFsIGJ1cyBjb250cm9sbGVyIFswYzgwXTog SW50ZWwgQ29ycG9yYXRpb24gRGV2aWNlIDAyZTgKPiA+IDAwMDA6MDA6MTUuMSBTZXJpYWwgYnVz IGNvbnRyb2xsZXIgWzBjODBdOiBJbnRlbCBDb3Jwb3JhdGlvbiBEZXZpY2UgMDJlOQo+ID4gMDAw MDowMDoxNS4yIFNlcmlhbCBidXMgY29udHJvbGxlciBbMGM4MF06IEludGVsIENvcnBvcmF0aW9u IERldmljZSAwMmVhCj4gPiAwMDAwOjAwOjE2LjAgQ29tbXVuaWNhdGlvbiBjb250cm9sbGVyOiBJ bnRlbCBDb3Jwb3JhdGlvbiBEZXZpY2UgMDJlMAo+ID4gMDAwMDowMDoxNy4wIFJBSUQgYnVzIGNv bnRyb2xsZXI6IEludGVsIENvcnBvcmF0aW9uIERldmljZSAwMmQ3Cj4gPiAwMDAwOjAwOjFjLjAg UENJIGJyaWRnZTogSW50ZWwgQ29ycG9yYXRpb24gRGV2aWNlIDAyYjggKHJldiBmMCkKPiA+IDAw MDA6MDA6MWUuMCBDb21tdW5pY2F0aW9uIGNvbnRyb2xsZXI6IEludGVsIENvcnBvcmF0aW9uIERl dmljZSAwMmE4Cj4gPiAwMDAwOjAwOjFlLjIgU2VyaWFsIGJ1cyBjb250cm9sbGVyIFswYzgwXTog SW50ZWwgQ29ycG9yYXRpb24gRGV2aWNlIDAyYWEKPiA+IDAwMDA6MDA6MWYuMCBJU0EgYnJpZGdl OiBJbnRlbCBDb3Jwb3JhdGlvbiBEZXZpY2UgMDI4NAo+ID4gMDAwMDowMDoxZi4zIEF1ZGlvIGRl dmljZTogSW50ZWwgQ29ycG9yYXRpb24gRGV2aWNlIDAyYzgKPiA+IDAwMDA6MDA6MWYuNCBTTUJ1 czogSW50ZWwgQ29ycG9yYXRpb24gRGV2aWNlIDAyYTMKPiA+IDAwMDA6MDA6MWYuNSBTZXJpYWwg YnVzIGNvbnRyb2xsZXIgWzBjODBdOiBJbnRlbCBDb3Jwb3JhdGlvbiBEZXZpY2UgMDJhNAo+ID4g MDAwMDowMDoxZi42IEV0aGVybmV0IGNvbnRyb2xsZXI6IEludGVsIENvcnBvcmF0aW9uIERldmlj ZSAwZDRmCj4gPiAwMDAwOjAxOjAwLjAgUENJIGJyaWRnZTogSW50ZWwgQ29ycG9yYXRpb24gSkhM NzU0MCBUaHVuZGVyYm9sdCAzCj4gPiBCcmlkZ2UgW1RpdGFuIFJpZGdlIDRDIDIwMThdIChyZXYg MDYpCj4gPiAwMDAwOjAyOjAwLjAgUENJIGJyaWRnZTogSW50ZWwgQ29ycG9yYXRpb24gSkhMNzU0 MCBUaHVuZGVyYm9sdCAzCj4gPiBCcmlkZ2UgW1RpdGFuIFJpZGdlIDRDIDIwMThdIChyZXYgMDYp Cj4gPiAwMDAwOjAyOjAxLjAgUENJIGJyaWRnZTogSW50ZWwgQ29ycG9yYXRpb24gSkhMNzU0MCBU aHVuZGVyYm9sdCAzCj4gPiBCcmlkZ2UgW1RpdGFuIFJpZGdlIDRDIDIwMThdIChyZXYgMDYpCj4g PiAwMDAwOjAyOjAyLjAgUENJIGJyaWRnZTogSW50ZWwgQ29ycG9yYXRpb24gSkhMNzU0MCBUaHVu ZGVyYm9sdCAzCj4gPiBCcmlkZ2UgW1RpdGFuIFJpZGdlIDRDIDIwMThdIChyZXYgMDYpCj4gPiAw MDAwOjAyOjA0LjAgUENJIGJyaWRnZTogSW50ZWwgQ29ycG9yYXRpb24gSkhMNzU0MCBUaHVuZGVy Ym9sdCAzCj4gPiBCcmlkZ2UgW1RpdGFuIFJpZGdlIDRDIDIwMThdIChyZXYgMDYpCj4gPiAwMDAw OjAzOjAwLjAgU3lzdGVtIHBlcmlwaGVyYWw6IEludGVsIENvcnBvcmF0aW9uIEpITDc1NDAgVGh1 bmRlcmJvbHQKPiA+IDMgTkhJIFtUaXRhbiBSaWRnZSA0QyAyMDE4XSAocmV2IDA2KQo+ID4gMDAw MDozNzowMC4wIFVTQiBjb250cm9sbGVyOiBJbnRlbCBDb3Jwb3JhdGlvbiBKSEw3NTQwIFRodW5k ZXJib2x0IDMKPiA+IFVTQiBDb250cm9sbGVyIFtUaXRhbiBSaWRnZSA0QyAyMDE4XSAocmV2IDA2 KQo+ID4gMDAwMTowMDowMC4wIFNBVEEgY29udHJvbGxlcjogSW50ZWwgQ29ycG9yYXRpb24gRGV2 aWNlIDAyZDcKPiA+IDAwMDE6MDA6MDEuMCBOb24tVm9sYXRpbGUgbWVtb3J5IGNvbnRyb2xsZXI6 IEludGVsIENvcnBvcmF0aW9uIERldmljZSAwMDAwCj4gPiAwMDAxOjAwOjAyLjAgTm9uLVZvbGF0 aWxlIG1lbW9yeSBjb250cm9sbGVyOiBJbnRlbCBDb3Jwb3JhdGlvbiBEZXZpY2UgMDAwMAo+ID4K Pgo+IFNvIGRldmljZXMgYXJlIHNpdHRpbmcgaW4gUENJIHNlZ21lbnQgMSwgd2hpbGUgQUNQSS9E TUFSIG9ubHkgcmVwb3J0cwo+IElPTU1VIHVuaXRzIGZvciBQQ0kgc2VnbWVudCAwLiBEbyBJIHVu ZGVyc3RhbmQgaXQgcmlnaHQ/CgpZZXMuCgo+IElzIGl0IHBvc3NpYmxlIHRoYXQgaGFyZHdhcmUg c3VwcG9ydHMgRE1BUiBmb3IgYm90aCBQQ0kgc2VnbWVudCAwIGFuZCAxLAo+IGJ1dCB0aGUgZmly bXdhcmUgZG9lc24ndCByZXBvcnRzIHRob3NlIGZvciBQQ0kgc2VnZW1lbnQgMT8KCkdvb2QgcXVl c3Rpb24hICBJIGhhdmUgbm90IHRoaW5rIHRoZSBjaGFuZ2Ugb2YgRE1BUiBmb3Igc2VnbWVudCAw IGFuZAoxLiAgQnV0LCBJIGd1ZXNzIHRoZSBhbnN3ZXIgaXMgbm90LiAgVGhlIGhhcmR3YXJlIHZl bmRvciB3aWxsIHNheQpXaW5kb3dzIHdvcmtzIGZpbmUgLi4uCgpUaGUgZGV2aWNlcyB1bmRlciBz ZWdtZW50IDEgYXJlIGZha2UgZGV2aWNlcyBwcm9kdWNlZCBieQppbnRlbC1udm1lLXJlbWFwIG1l bnRpb25lZCBoZXJlIGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDIwLzIvNS8xMzkKCldlIGFyZSBh bHNvIGN1cmlvcyBhYm91dCB3aHkgVk1EIChkcml2ZXJzL3BjaS9jb250cm9sbGVyL3ZtZC5jKSB3 b3JrcwpmaW5lIGhlcmUuICBJdCBhbHNvIHByb2R1Y2VzIGZha2UgZGV2aWNlcywgYnV0IGNhbiB1 c2UgaW9tbXUKY29ycmVjdGx5LiAgRHVlIHRvIG5vIFZNRCByZWxhdGVkIG1hY2hpbmVzIG9uIGhh bmQsIGl0IGlzIGhhcmQgdG8KdHJhY2UgdGhlIGZsb3cuICBDb3VsZCB5b3UgcGxlYXNlIGdpdmUg dXMgc29tZSBjbHVlcz8KClRoYW5rIHlvdSwKSmlhbi1Ib25nIFBhbgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppb21tdSBtYWlsaW5nIGxpc3QKaW9tbXVA bGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24u b3JnL21haWxtYW4vbGlzdGluZm8vaW9tbXU=