From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1CCA7C433FE for ; Wed, 1 Dec 2021 13:39:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349601AbhLANmj (ORCPT ); Wed, 1 Dec 2021 08:42:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33654 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349578AbhLANmh (ORCPT ); Wed, 1 Dec 2021 08:42:37 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 024CBC061574 for ; Wed, 1 Dec 2021 05:39:17 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id q3so29487796wru.5 for ; Wed, 01 Dec 2021 05:39:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jrtc27.com; s=gmail.jrtc27.user; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=lE2XEeNXGkQ8mbk4Q/MaQIePfPKsu1W1uPhLzwhUtQQ=; b=pF45ZjiKOub/gQBs58xf1hd8DDVofFw9bghJOSD6FB1E03thrQah3agdCyfU5qbQcg KyNS+ZcXN24/0bBSXj0I9+zf5kqe+jLj6TDH+txI4MLepo7gyk3vNQeS5QUsUOzfzO42 ECJuvqCZTcHiwPHF95KTNRkwtdBQyfAPTsH8Hh7/nzgi1p2RvJoUWczFNYfx3vATk5zr p2hjRsYQi94mb7q5Larehuok4D66vwtv3Jw7dDu6p/YjMttrhC9Yt/G/szEtW7/cQcXD /PkKOBFbSpcFH8L8mzQDsww4CIKvXeBPTZ+AVICq/kjv6v/TcUhuuWKP8O+UHwcHpL0w idaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=lE2XEeNXGkQ8mbk4Q/MaQIePfPKsu1W1uPhLzwhUtQQ=; b=F9GzflLgc24vlJ312Dmx4QT33HqVElvoZiWdM5I0IY01laGZilBakFywlDxZwKww60 jKNUKe4MSLhj5ZNZdi4WfWsIOH49XsiJmrsVrFeS2WnrpDuB5k1njTmBukmYBHKaID5A kGZ+++YsfNwQtbbajIuAESySQgOu0c+FA+CmOyEL0t8UeuBwIY3qymSr3u1GKdO9F5JZ 7XnA7HGgBPQ9XJc/T3FMroFFzl4zZArJAFkk88c1gqr1ybul7KWXjruHVMUijcxNemRw srrH9NwfMn3aB3B0pAtbj7UUyU8eBsEq5EQM0PhBVakJcTEaTajdTwXzi/9I/RWGpzg1 VB3A== X-Gm-Message-State: AOAM531OSQqLLVQHiK4/TbwVoTyfnHcBHZw0nwJ141jflcU8yYh5zH8v 6766MT1yK0fBkPUBxeK/Em2xJA== X-Google-Smtp-Source: ABdhPJx3IeYQzdypGrNAoTv1cPokvEDl4vkuRgyZ5U1T2Ei4mYUuZ+Lea5KqIld0h+4VI0y1fx5u7w== X-Received: by 2002:a5d:44d1:: with SMTP id z17mr6887768wrr.143.1638365955451; Wed, 01 Dec 2021 05:39:15 -0800 (PST) Received: from smtpclient.apple (global-5-141.nat-2.net.cam.ac.uk. [131.111.5.141]) by smtp.gmail.com with ESMTPSA id m17sm18807044wrz.22.2021.12.01.05.39.14 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Dec 2021 05:39:15 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\)) Subject: Re: [PATCH V4 1/2] dt-bindings: riscv: add MMU Standard Extensions support for Svpbmt From: Jessica Clarke In-Reply-To: Date: Wed, 1 Dec 2021 13:39:05 +0000 Cc: =?utf-8?Q?Heiko_St=C3=BCbner?= , atish patra , Tsukasa OI , Atish Patra , linux-riscv , Wei Fu , "linux-kernel@vger.kernel.org List" , taiten.peng@canonical.com, Aniket Ponkshe , Gordan Markus , Guo Ren , Arnd Bergmann , Chen-Yu Tsai , Maxime Ripard , Dan Lustig , Greg Favor , Andrea Mondelli , Jonathan Behrens , Xinhaoqu , Bill Huffman , Nick Kossifidis , Allen Baum , Josh Scheid , Richard Trauben , Anup Patel , Rob Herring , Anup Patel , Palmer Dabbelt , Guo Ren , =?utf-8?Q?Christoph_M=C3=BCllner?= , Christoph Hellwig , liush , Wei Wu , Drew Fustini , Heinrich Schuchardt Content-Transfer-Encoding: quoted-printable Message-Id: <6C7B4C98-31A5-4E62-A494-79947C614563@jrtc27.com> References: <20211129014007.286478-1-wefu@redhat.com> <7587334.dMCaUTs8Vl@diego> <2562321.AMx6Y6Rosd@diego> To: Philipp Tomsich X-Mailer: Apple Mail (2.3654.120.0.1.13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 1 Dec 2021, at 11:05, Philipp Tomsich = wrote: >=20 > I hope that cpuinfo is for human consumption only, as we will inject > this info in machine-readable form via the ELF auxiliary vector. > We had briefly discussed this as part of psABI and during Kito's > presentation at LPC. >=20 > If we can agree that this is for human consumption only, then we > should aim at making it easy to read for humans (and not care too much > about how easy this will be to parse). If it's human-readable then why is it formatted in such a machine-readable way? A lot of software parses it[1]. Including lscpu. There=E2=80=99s lots of information there that won=E2=80=99t appear in AT_HWCAP or similar as = it=E2=80=99s not generally relevant to userspace (processor speed, supervisor-level extensions, physical hartid, ...). Jess [1] = https://codesearch.debian.net/search?q=3D%22%2Fproc%2Fcpuinfo%22&literal=3D= 1&perpkg=3D1 > On Wed, 1 Dec 2021 at 11:21, Heiko St=C3=BCbner = wrote: >>=20 >> Am Mittwoch, 1. Dezember 2021, 09:41:48 CET schrieb atish patra: >>> On Wed, Dec 1, 2021 at 12:30 AM Heiko St=C3=BCbner = wrote: >>>=20 >>>> Am Mittwoch, 1. Dezember 2021, 09:15:18 CET schrieb Atish Patra: >>>>> On Tue, Nov 30, 2021 at 7:06 PM Tsukasa OI = >>>> wrote: >>>>>>=20 >>>>>> On 2021/12/01 10:21, Atish Patra wrote: >>>>>>> On Tue, Nov 30, 2021 at 8:13 AM Jessica Clarke = >>>> wrote: >>>>>>>>=20 >>>>>>>> On 30 Nov 2021, at 15:01, Philipp Tomsich = >>>> wrote: >>>>>>>>>=20 >>>>>>>>> We did touch on this in our coordination call a few weeks ago: = the >>>>>>>>> grouping under mmu and the bool-entries were chosen because of >>>> their >>>>>>>>> similarity to other extensions (i.e. for Zb[abcs] there >>>> could/should >>>>>>>>> be a bool-entry under each cpu-node =E2=80=94 for some Zv* = entries a >>>> subnode >>>>>>>>> might be needed with further parameters). >>>>>>>>>=20 >>>>>>>>> The string-based approach (as in the originally proposed >>>> "mmu-type=3D") >>>>>>>>> would like not scale with the proliferation of small & modular >>>>>>>>> extensions. >>>>>>>>=20 >>>>>>>> I don=E2=80=99t see why the Sv* extensions need to be under an = mmu node >>>> then, >>>>>>>> unless the intent is that every extension be grouped under a >>>> sub-node >>>>>>>> (which doesn=E2=80=99t seem viable due to extensions like Zbk*, = unless you >>>>>>>> group by Ss, Sv and Z)? >>>>>>>>=20 >>>>>>>=20 >>>>>>> It shouldn't be. All the ISA extensions (i.e. standard, = supervisor & >>>> hypervisor) >>>>>>> with prefix S,Z,H should be kept separate in a separate node for = easy >>>>>>> parsing. >>>>>>=20 >>>>>> "Easy parsing" is not quite convincing. >>>>>=20 >>>>> The device tree need to carry a very long "riscv,isa" string. The >>>>> parser need to parse >>>>> that string in memory as well. >>>>>=20 >>>>>>=20 >>>>>> There's a reason other than that I made RFC PATCH to parse >>>>>> multi-letter extensions: >>>>>>=20 >>>>>> v1: < >>>> = http://lists.infradead.org/pipermail/linux-riscv/2021-November/010252.html= >>>>>=20 >>>>>> v2: < >>>> = http://lists.infradead.org/pipermail/linux-riscv/2021-November/010350.html= >>>>>=20 >>>>>>=20 >>>>>=20 >>>>> It's on my todo list to review the series. I think we can work >>>>> together to propose a better framework for riscv isa extensions. >>>>>=20 >>>>>> (note: those patches will break RISC-V KVM because of possible = ISA >>>>>> Manual inconsistency and discussion/resolution needed) >>>>>>=20 >>>>>> (...continued below...) >>>>>>=20 >>>>>>>=20 >>>>>>> "riscv,isa" dt property will not scale at all. Just look at the = few >>>>>>> extensions that were ratified this year >>>>>>> and Linux kernel needs to support them. >>>>>>>=20 >>>>>>> "Sscofpmf", "Svpbmt", "Zicbom" >>>>>>>=20 >>>>>>>> Also, what is going to happen to the current riscv,isa? Will = that >>>>>>>> continue to exist and duplicate the info, or will kernels be >>>> required >>>>>>>> to reconstruct the string themselves if they want to display it = to >>>>>>>> users? >>>>>>>>=20 >>>>>=20 >>>>> Sorry. I missed this question earlier. See my answer below. >>>>>=20 >>>>>>>=20 >>>>>>> This is my personal preference: >>>>>>> riscv,isa will continue to base Standard ISA extensions that = have >>>>>>> single letter extensions. >>>>>>>=20 >>>>>>> This new DT node will encode all the non-single letter = extensions. >>>>>>> I am not sure if it should include some provisions for custom >>>>>>> extensions starting with X because >>>>>>> that will be platform specific. >>>>>>>=20 >>>>>>> Again, this is just my personal preference. I will try to send a >>>> patch >>>>>>> soon so that we can initiate a broader >>>>>>> discussion of the scheme and agree/disagree on something. >>>>>>=20 >>>>>> For supervisor-only extensions like "Svpbmt", new DT node would = be a >>>>>> reasonable solution (and I would not directly object about that = node). >>>>>>=20 >>>>>> However, there's many multi-letter extensions that are useful for >>>>>> user mode. Because "riscv,isa" is exposed via sysfs and procfs >>>>>> (/proc/cpuinfo), it can be really helpful to have multi-letter >>>>>=20 >>>>> Irrespective of the method chosen to parse the device tree in = kernel, >>>>> we need to provide the extension information to the userspace. >>>>>=20 >>>>> This is what I have in mind. An individual row with comma = separated >>>>> extension names for each type of extensions (Ss, Sv, Sh) >>>>> after the base extension (rv64imafdc) in /proc/cpuinfo output. I = am >>>>> open to other ideas as well. >>>>>=20 >>>>> isa rv64imafdc >>>>> isa-ext-Sv Svpbmt >>>>> isa-ext-Ss Sscofpmf >>>>> isa-ext-Sh >>>>> isa-ext-Z Zicbom >>>>>=20 >>>>> We can even explicitly name the extensions after isa-ext. However, = it >>>>> may be necessary and too long. >>>>=20 >>>> Aren't other architectures just using a flags [x86] or features = [arm64] >>>> line in cpuinfo to expose the available additional cpu features >>>> as a space-separated list? >>>>=20 >>>> So you could also just do something similar like >>>> isa: rv64imafdc >>>> isa-ext: Svpbmt Sscofpmf foo bar >>>>=20 >>>>=20 >>> A space separated list is also fine by me. >>> Should we keep all the extensions as one row or split based on the = type of >>> extensions (Ss, Sv, Sh,)? >>>=20 >>> When I look at the flags in x86, my eyes hurt badly ;) >>=20 >> On arm64 >> Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid >>=20 >> or on arm32 >> Features : half thumb fastmult vfp edsp thumbee neon vfpv3 tls = vfpv4 idiva idivt vfpd32 lpae evtstrm >>=20 >>=20 >>> That's why I suggested splitting by type of extensions to improve >>> readability. >>=20 >> Though I guess with that split you introduce more requirements on = userspace? >> Because things that parse cpuinfo (think some python library) will = need to >> be updated when some new extension category surfaces? >>=20 >>=20 >>=20 >>>> That would make a nice compromise between length and readability >>>> by users I guess? >>>>=20 >>>>=20 >>>> Heiko >>>>=20 >>>>> I guess you prefer to directly print the entire "riscv,isa" string = in >>>>> "isa" row in /proc/cpuinfo output. >>>>> It is probably okay with the current number of extensions = available >>>>> today. However, it will become so long string >>>>> in the future that it has to be broken into multiple lines. >>>>>=20 >>>>>> extensions. Also, current version of Spike, a RISC-V ISA = Simulator >>>>>> puts all multi-letter extensions in "riscv,isa" and I thought = this is >>>>>> intended. >>>>>>=20 >>>>>> My preference: >>>>>> (1) Allow having multi-letter extensions and versions in = "riscv,isa" >>>>>> (2) Adding new DT node for supervisor-related extensions would be >>>>>> reasonable (but I don't strongly agree/disagree). >>>>>>=20 >>>>>> Thanks, >>>>>> Tsukasa >>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>> As a FreeBSD developer I=E2=80=99m obviously not a part of many = of these >>>>>>>> discussions, but what the Linux community imposes as the device = tree >>>>>>>> bindings has a real impact on us. >>>>>>>>=20 >>>>>>>> Jess >>>>>>>>=20 >>>>>>>>> On Tue, 30 Nov 2021 at 14:59, Jessica Clarke = >>>> wrote: >>>>>>>>>>=20 >>>>>>>>>> On 30 Nov 2021, at 13:27, Heiko St=C3=BCbner = wrote: >>>>>>>>>>>=20 >>>>>>>>>>> Hi, >>>>>>>>>>>=20 >>>>>>>>>>> Am Dienstag, 30. November 2021, 14:17:41 CET schrieb Jessica >>>> Clarke: >>>>>>>>>>>> On 30 Nov 2021, at 12:07, Heiko St=C3=BCbner = >>>> wrote: >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Am Montag, 29. November 2021, 13:06:23 CET schrieb Heiko >>>> St=C3=BCbner: >>>>>>>>>>>>>> Am Montag, 29. November 2021, 09:54:39 CET schrieb = Heinrich >>>> Schuchardt: >>>>>>>>>>>>>>> On 11/29/21 02:40, wefu@redhat.com wrote: >>>>>>>>>>>>>>>> From: Wei Fu >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> Previous patch has added svpbmt in arch/riscv and add >>>> "riscv,svpmbt" >>>>>>>>>>>>>>>> in the DT mmu node. Update dt-bindings related property >>>> here. >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> Signed-off-by: Wei Fu >>>>>>>>>>>>>>>> Co-developed-by: Guo Ren >>>>>>>>>>>>>>>> Signed-off-by: Guo Ren >>>>>>>>>>>>>>>> Cc: Anup Patel >>>>>>>>>>>>>>>> Cc: Palmer Dabbelt >>>>>>>>>>>>>>>> Cc: Rob Herring >>>>>>>>>>>>>>>> --- >>>>>>>>>>>>>>>> Documentation/devicetree/bindings/riscv/cpus.yaml | 10 >>>> ++++++++++ >>>>>>>>>>>>>>>> 1 file changed, 10 insertions(+) >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> diff --git >>>> a/Documentation/devicetree/bindings/riscv/cpus.yaml >>>> b/Documentation/devicetree/bindings/riscv/cpus.yaml >>>>>>>>>>>>>>>> index aa5fb64d57eb..9ff9cbdd8a85 100644 >>>>>>>>>>>>>>>> --- a/Documentation/devicetree/bindings/riscv/cpus.yaml >>>>>>>>>>>>>>>> +++ b/Documentation/devicetree/bindings/riscv/cpus.yaml >>>>>>>>>>>>>>>> @@ -63,6 +63,16 @@ properties: >>>>>>>>>>>>>>>> - riscv,sv48 >>>>>>>>>>>>>>>> - riscv,none >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> + mmu: >>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>> Shouldn't we keep the items be in alphabetic order, i.e. = mmu >>>> before >>>>>>>>>>>>>>> mmu-type? >>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> + description: >>>>>>>>>>>>>>>> + Describes the CPU's MMU Standard Extensions = support. >>>>>>>>>>>>>>>> + These values originate from the RISC-V = Privileged >>>>>>>>>>>>>>>> + Specification document, available from >>>>>>>>>>>>>>>> + https://riscv.org/specifications/ >>>>>>>>>>>>>>>> + $ref: '/schemas/types.yaml#/definitions/string' >>>>>>>>>>>>>>>> + enum: >>>>>>>>>>>>>>>> + - riscv,svpmbt >>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>> The privileged specification has multiple MMU related >>>> extensions: >>>>>>>>>>>>>>> Svnapot, Svpbmt, Svinval. Shall they all be modeled in = this >>>> enum? >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>> I remember in some earlier version some way back there = was the >>>>>>>>>>>>>> suggestion of using a sub-node instead and then adding = boolean >>>>>>>>>>>>>> properties for the supported extensions. >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>> Aka something like >>>>>>>>>>>>>> mmu { >>>>>>>>>>>>>> riscv,svpbmt; >>>>>>>>>>>>>> }; >>>>>>>>>>>>>=20 >>>>>>>>>>>>> For the record, I'm talking about the mail from september >>>>>>>>>>>>>=20 >>>> = https://lore.kernel.org/linux-riscv/CAAeLtUChjjzG+P8yg45GLZMJy5UR2K5RRBoLF= VZhtOaZ5pPtEA@mail.gmail.com/ >>>>>>>>>>>>>=20 >>>>>>>>>>>>> So having a sub-node would make adding future extensions >>>>>>>>>>>>> way nicer. >>>>>>>>>>>>=20 >>>>>>>>>>>> Svpbmt is just an ISA extension, and should be treated like = any >>>> other. >>>>>>>>>>>> Let=E2=80=99s not invent two different ways of representing = that in the >>>> device >>>>>>>>>>>> tree. >>>>>>>>>>>=20 >>>>>>>>>>> Heinrich asked how the other extensions should be handled >>>>>>>>>>> (Svnapot, Svpbmt, Svinval), so what do you suggest to do = with >>>> these? >>>>>>>>>>=20 >>>>>>>>>> Whatever is done for Zb[abcs], Zk*, Zv*, Zicbo*, etc. There = may >>>> not be >>>>>>>>>> a concrete plan for that yet, but that means you should speak >>>> with the >>>>>>>>>> people involved with such extensions and come up with = something >>>>>>>>>> appropriate together. >>>>>>>>>>=20 >>>>>>>>>> Jess >>>>>>>>>>=20 >>>>>>>>=20 >>>>>>>>=20 >>>>>>>> _______________________________________________ >>>>>>>> linux-riscv mailing list >>>>>>>> linux-riscv@lists.infradead.org >>>>>>>> http://lists.infradead.org/mailman/listinfo/linux-riscv >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> -- >>>>>>> Regards, >>>>>>> Atish >>>>>>>=20 >>>>>>> _______________________________________________ >>>>>>> linux-riscv mailing list >>>>>>> linux-riscv@lists.infradead.org >>>>>>> http://lists.infradead.org/mailman/listinfo/linux-riscv >>>>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>=20 >>>=20 >>=20 >>=20 >>=20 >>=20 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F2003C433EF for ; Wed, 1 Dec 2021 13:39:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:References:Message-Id:Cc:Date: In-Reply-To:From:Subject:Mime-Version:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=GZJntLZ6E+T0BvacVCuz4b5zVuWgI1YgmTcHeCpsOqA=; b=yKtGXstWM0ouXi AT3rAD9I4zq9F5Wknm480Va+TXqW6FO41VsJ06RiQSJrcQjQFIKwBmbA/X4mwt5Wfe5htRPQVbnH2 d0fdw0kpoDxJak2BliKMj+h6SpsDfAWgZ4WLED3YG6gmS7yozFv6IjlIbHw6sPqR7y41YxG+BN8AJ iqasXJC51ib5I2ryU/VRwk7nLCs0OxCQyuJC/stnPv63b2MmrRSUG2fEB2mxxGMhGPLwpehbIW83v ePXBAcxqaUHqbeM5dUP6lGCUL5pQsWhVa2sK4mz5lAM+BCyO77Sz2LoOJOocybnZeuR71eecK2ovW koVDVndr6u8y/pTILbSw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1msPpR-008rrl-BB; Wed, 01 Dec 2021 13:39:21 +0000 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1msPpN-008rqG-V2 for linux-riscv@lists.infradead.org; Wed, 01 Dec 2021 13:39:20 +0000 Received: by mail-wr1-x434.google.com with SMTP id i5so52355761wrb.2 for ; Wed, 01 Dec 2021 05:39:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jrtc27.com; s=gmail.jrtc27.user; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=lE2XEeNXGkQ8mbk4Q/MaQIePfPKsu1W1uPhLzwhUtQQ=; b=pF45ZjiKOub/gQBs58xf1hd8DDVofFw9bghJOSD6FB1E03thrQah3agdCyfU5qbQcg KyNS+ZcXN24/0bBSXj0I9+zf5kqe+jLj6TDH+txI4MLepo7gyk3vNQeS5QUsUOzfzO42 ECJuvqCZTcHiwPHF95KTNRkwtdBQyfAPTsH8Hh7/nzgi1p2RvJoUWczFNYfx3vATk5zr p2hjRsYQi94mb7q5Larehuok4D66vwtv3Jw7dDu6p/YjMttrhC9Yt/G/szEtW7/cQcXD /PkKOBFbSpcFH8L8mzQDsww4CIKvXeBPTZ+AVICq/kjv6v/TcUhuuWKP8O+UHwcHpL0w idaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=lE2XEeNXGkQ8mbk4Q/MaQIePfPKsu1W1uPhLzwhUtQQ=; b=LkUT2BRD5xGzakRfo37Vj6ydVE0AejDoOoJhEq/rNMMvxFVcJbyh3la/uBLX08yYNp 9nauw699IvYMrivpfquHkv0Lz8UZhWurGPofUnZruxrR7ujFiMqACTqwRXPGV3hJJDNq +K5UGZKa+zxpPw47d06EKhqiXPK61atBsEnn0CtFqrHsFbmdOMqfFsI14ZmfrkHXdzKO 7mCFN58v310Jr6Haft51Ud5EEx4h4ZzBCne6b9Vp3//lA7df7mt479w66WyHWajjZz2B 3MRAzLWHgMn1uIVRV5gPtq+NN/GCqjpEwysmXlW7+KE4eSFmPSsydnKKM8vltESnUy74 EFSA== X-Gm-Message-State: AOAM531kHltazUW4mha7IqZCcbxNT1aCdAahNZC2LgN3iJ/cGEvTj9Td XyvlwDsiTmR/TE3NOwvqAWfDKg== X-Google-Smtp-Source: ABdhPJx3IeYQzdypGrNAoTv1cPokvEDl4vkuRgyZ5U1T2Ei4mYUuZ+Lea5KqIld0h+4VI0y1fx5u7w== X-Received: by 2002:a5d:44d1:: with SMTP id z17mr6887768wrr.143.1638365955451; Wed, 01 Dec 2021 05:39:15 -0800 (PST) Received: from smtpclient.apple (global-5-141.nat-2.net.cam.ac.uk. [131.111.5.141]) by smtp.gmail.com with ESMTPSA id m17sm18807044wrz.22.2021.12.01.05.39.14 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Dec 2021 05:39:15 -0800 (PST) Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\)) Subject: Re: [PATCH V4 1/2] dt-bindings: riscv: add MMU Standard Extensions support for Svpbmt From: Jessica Clarke In-Reply-To: Date: Wed, 1 Dec 2021 13:39:05 +0000 Cc: =?utf-8?Q?Heiko_St=C3=BCbner?= , atish patra , Tsukasa OI , Atish Patra , linux-riscv , Wei Fu , "linux-kernel@vger.kernel.org List" , taiten.peng@canonical.com, Aniket Ponkshe , Gordan Markus , Guo Ren , Arnd Bergmann , Chen-Yu Tsai , Maxime Ripard , Dan Lustig , Greg Favor , Andrea Mondelli , Jonathan Behrens , Xinhaoqu , Bill Huffman , Nick Kossifidis , Allen Baum , Josh Scheid , Richard Trauben , Anup Patel , Rob Herring , Anup Patel , Palmer Dabbelt , Guo Ren , =?utf-8?Q?Christoph_M=C3=BCllner?= , Christoph Hellwig , liush , Wei Wu , Drew Fustini , Heinrich Schuchardt Message-Id: <6C7B4C98-31A5-4E62-A494-79947C614563@jrtc27.com> References: <20211129014007.286478-1-wefu@redhat.com> <7587334.dMCaUTs8Vl@diego> <2562321.AMx6Y6Rosd@diego> To: Philipp Tomsich X-Mailer: Apple Mail (2.3654.120.0.1.13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211201_053918_066526_FDE2099C X-CRM114-Status: GOOD ( 36.44 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gMSBEZWMgMjAyMSwgYXQgMTE6MDUsIFBoaWxpcHAgVG9tc2ljaCA8cGhpbGlwcC50b21zaWNo QHZydWxsLmV1PiB3cm90ZToKPiAKPiBJIGhvcGUgdGhhdCBjcHVpbmZvIGlzIGZvciBodW1hbiBj b25zdW1wdGlvbiBvbmx5LCBhcyB3ZSB3aWxsIGluamVjdAo+IHRoaXMgaW5mbyBpbiBtYWNoaW5l LXJlYWRhYmxlIGZvcm0gdmlhIHRoZSBFTEYgYXV4aWxpYXJ5IHZlY3Rvci4KPiBXZSBoYWQgYnJp ZWZseSBkaXNjdXNzZWQgdGhpcyBhcyBwYXJ0IG9mIHBzQUJJIGFuZCBkdXJpbmcgS2l0bydzCj4g cHJlc2VudGF0aW9uIGF0IExQQy4KPiAKPiBJZiB3ZSBjYW4gYWdyZWUgdGhhdCB0aGlzIGlzIGZv ciBodW1hbiBjb25zdW1wdGlvbiBvbmx5LCB0aGVuIHdlCj4gc2hvdWxkIGFpbSBhdCBtYWtpbmcg aXQgZWFzeSB0byByZWFkIGZvciBodW1hbnMgKGFuZCBub3QgY2FyZSB0b28gbXVjaAo+IGFib3V0 IGhvdyBlYXN5IHRoaXMgd2lsbCBiZSB0byBwYXJzZSkuCgpJZiBpdCdzIGh1bWFuLXJlYWRhYmxl IHRoZW4gd2h5IGlzIGl0IGZvcm1hdHRlZCBpbiBzdWNoIGEKbWFjaGluZS1yZWFkYWJsZSB3YXk/ CgpBIGxvdCBvZiBzb2Z0d2FyZSBwYXJzZXMgaXRbMV0uIEluY2x1ZGluZyBsc2NwdS4gVGhlcmXi gJlzIGxvdHMgb2YKaW5mb3JtYXRpb24gdGhlcmUgdGhhdCB3b27igJl0IGFwcGVhciBpbiBBVF9I V0NBUCBvciBzaW1pbGFyIGFzIGl04oCZcyBub3QKZ2VuZXJhbGx5IHJlbGV2YW50IHRvIHVzZXJz cGFjZSAocHJvY2Vzc29yIHNwZWVkLCBzdXBlcnZpc29yLWxldmVsCmV4dGVuc2lvbnMsIHBoeXNp Y2FsIGhhcnRpZCwgLi4uKS4KCkplc3MKClsxXSBodHRwczovL2NvZGVzZWFyY2guZGViaWFuLm5l dC9zZWFyY2g/cT0lMjIlMkZwcm9jJTJGY3B1aW5mbyUyMiZsaXRlcmFsPTEmcGVycGtnPTEKCj4g T24gV2VkLCAxIERlYyAyMDIxIGF0IDExOjIxLCBIZWlrbyBTdMO8Ym5lciA8aGVpa29Ac250ZWNo LmRlPiB3cm90ZToKPj4gCj4+IEFtIE1pdHR3b2NoLCAxLiBEZXplbWJlciAyMDIxLCAwOTo0MTo0 OCBDRVQgc2NocmllYiBhdGlzaCBwYXRyYToKPj4+IE9uIFdlZCwgRGVjIDEsIDIwMjEgYXQgMTI6 MzAgQU0gSGVpa28gU3TDvGJuZXIgPGhlaWtvQHNudGVjaC5kZT4gd3JvdGU6Cj4+PiAKPj4+PiBB bSBNaXR0d29jaCwgMS4gRGV6ZW1iZXIgMjAyMSwgMDk6MTU6MTggQ0VUIHNjaHJpZWIgQXRpc2gg UGF0cmE6Cj4+Pj4+IE9uIFR1ZSwgTm92IDMwLCAyMDIxIGF0IDc6MDYgUE0gVHN1a2FzYSBPSSA8 cmVzZWFyY2hfdHJhc2lvQGlycS5hNGxnLmNvbT4KPj4+PiB3cm90ZToKPj4+Pj4+IAo+Pj4+Pj4g T24gMjAyMS8xMi8wMSAxMDoyMSwgQXRpc2ggUGF0cmEgd3JvdGU6Cj4+Pj4+Pj4gT24gVHVlLCBO b3YgMzAsIDIwMjEgYXQgODoxMyBBTSBKZXNzaWNhIENsYXJrZSA8anJ0YzI3QGpydGMyNy5jb20+ Cj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+IAo+Pj4+Pj4+PiBPbiAzMCBOb3YgMjAyMSwgYXQgMTU6MDEs IFBoaWxpcHAgVG9tc2ljaCA8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1Pgo+Pj4+IHdyb3RlOgo+ Pj4+Pj4+Pj4gCj4+Pj4+Pj4+PiBXZSBkaWQgdG91Y2ggb24gdGhpcyBpbiBvdXIgY29vcmRpbmF0 aW9uIGNhbGwgYSBmZXcgd2Vla3MgYWdvOiB0aGUKPj4+Pj4+Pj4+IGdyb3VwaW5nIHVuZGVyIG1t dSBhbmQgdGhlIGJvb2wtZW50cmllcyB3ZXJlIGNob3NlbiBiZWNhdXNlIG9mCj4+Pj4gdGhlaXIK Pj4+Pj4+Pj4+IHNpbWlsYXJpdHkgdG8gb3RoZXIgZXh0ZW5zaW9ucyAoaS5lLiBmb3IgWmJbYWJj c10gdGhlcmUKPj4+PiBjb3VsZC9zaG91bGQKPj4+Pj4+Pj4+IGJlIGEgYm9vbC1lbnRyeSB1bmRl ciBlYWNoIGNwdS1ub2RlIOKAlCBmb3Igc29tZSBadiogZW50cmllcyBhCj4+Pj4gc3Vibm9kZQo+ Pj4+Pj4+Pj4gbWlnaHQgYmUgbmVlZGVkIHdpdGggZnVydGhlciBwYXJhbWV0ZXJzKS4KPj4+Pj4+ Pj4+IAo+Pj4+Pj4+Pj4gVGhlIHN0cmluZy1iYXNlZCBhcHByb2FjaCAoYXMgaW4gdGhlIG9yaWdp bmFsbHkgcHJvcG9zZWQKPj4+PiAibW11LXR5cGU9IikKPj4+Pj4+Pj4+IHdvdWxkIGxpa2Ugbm90 IHNjYWxlIHdpdGggdGhlIHByb2xpZmVyYXRpb24gb2Ygc21hbGwgJiBtb2R1bGFyCj4+Pj4+Pj4+ PiBleHRlbnNpb25zLgo+Pj4+Pj4+PiAKPj4+Pj4+Pj4gSSBkb27igJl0IHNlZSB3aHkgdGhlIFN2 KiBleHRlbnNpb25zIG5lZWQgdG8gYmUgdW5kZXIgYW4gbW11IG5vZGUKPj4+PiB0aGVuLAo+Pj4+ Pj4+PiB1bmxlc3MgdGhlIGludGVudCBpcyB0aGF0IGV2ZXJ5IGV4dGVuc2lvbiBiZSBncm91cGVk IHVuZGVyIGEKPj4+PiBzdWItbm9kZQo+Pj4+Pj4+PiAod2hpY2ggZG9lc27igJl0IHNlZW0gdmlh YmxlIGR1ZSB0byBleHRlbnNpb25zIGxpa2UgWmJrKiwgdW5sZXNzIHlvdQo+Pj4+Pj4+PiBncm91 cCBieSBTcywgU3YgYW5kIFopPwo+Pj4+Pj4+PiAKPj4+Pj4+PiAKPj4+Pj4+PiBJdCBzaG91bGRu J3QgYmUuIEFsbCB0aGUgSVNBIGV4dGVuc2lvbnMgKGkuZS4gc3RhbmRhcmQsIHN1cGVydmlzb3Ig Jgo+Pj4+IGh5cGVydmlzb3IpCj4+Pj4+Pj4gd2l0aCBwcmVmaXggUyxaLEggc2hvdWxkIGJlIGtl cHQgc2VwYXJhdGUgaW4gYSBzZXBhcmF0ZSBub2RlIGZvciBlYXN5Cj4+Pj4+Pj4gcGFyc2luZy4K Pj4+Pj4+IAo+Pj4+Pj4gIkVhc3kgcGFyc2luZyIgaXMgbm90IHF1aXRlIGNvbnZpbmNpbmcuCj4+ Pj4+IAo+Pj4+PiBUaGUgZGV2aWNlIHRyZWUgbmVlZCB0byBjYXJyeSBhIHZlcnkgbG9uZyAicmlz Y3YsaXNhIiBzdHJpbmcuIFRoZQo+Pj4+PiBwYXJzZXIgbmVlZCB0byBwYXJzZQo+Pj4+PiB0aGF0 IHN0cmluZyBpbiBtZW1vcnkgYXMgd2VsbC4KPj4+Pj4gCj4+Pj4+PiAKPj4+Pj4+IFRoZXJlJ3Mg YSByZWFzb24gb3RoZXIgdGhhbiB0aGF0IEkgbWFkZSBSRkMgUEFUQ0ggdG8gcGFyc2UKPj4+Pj4+ IG11bHRpLWxldHRlciBleHRlbnNpb25zOgo+Pj4+Pj4gCj4+Pj4+PiB2MTogPAo+Pj4+IGh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL3BpcGVybWFpbC9saW51eC1yaXNjdi8yMDIxLU5vdmVtYmVy LzAxMDI1Mi5odG1sCj4+Pj4+IAo+Pj4+Pj4gdjI6IDwKPj4+PiBodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9waXBlcm1haWwvbGludXgtcmlzY3YvMjAyMS1Ob3ZlbWJlci8wMTAzNTAuaHRtbAo+ Pj4+PiAKPj4+Pj4+IAo+Pj4+PiAKPj4+Pj4gSXQncyBvbiBteSB0b2RvIGxpc3QgdG8gcmV2aWV3 IHRoZSBzZXJpZXMuIEkgdGhpbmsgd2UgY2FuIHdvcmsKPj4+Pj4gdG9nZXRoZXIgdG8gcHJvcG9z ZSBhIGJldHRlciBmcmFtZXdvcmsgZm9yIHJpc2N2IGlzYSBleHRlbnNpb25zLgo+Pj4+PiAKPj4+ Pj4+IChub3RlOiB0aG9zZSBwYXRjaGVzIHdpbGwgYnJlYWsgUklTQy1WIEtWTSBiZWNhdXNlIG9m IHBvc3NpYmxlIElTQQo+Pj4+Pj4gICAgICAgTWFudWFsIGluY29uc2lzdGVuY3kgYW5kIGRpc2N1 c3Npb24vcmVzb2x1dGlvbiBuZWVkZWQpCj4+Pj4+PiAKPj4+Pj4+ICguLi5jb250aW51ZWQgYmVs b3cuLi4pCj4+Pj4+PiAKPj4+Pj4+PiAKPj4+Pj4+PiAicmlzY3YsaXNhIiBkdCBwcm9wZXJ0eSB3 aWxsIG5vdCBzY2FsZSBhdCBhbGwuIEp1c3QgbG9vayBhdCB0aGUgZmV3Cj4+Pj4+Pj4gZXh0ZW5z aW9ucyB0aGF0IHdlcmUgcmF0aWZpZWQgdGhpcyB5ZWFyCj4+Pj4+Pj4gYW5kIExpbnV4IGtlcm5l bCBuZWVkcyB0byBzdXBwb3J0IHRoZW0uCj4+Pj4+Pj4gCj4+Pj4+Pj4gIlNzY29mcG1mIiwgIlN2 cGJtdCIsICJaaWNib20iCj4+Pj4+Pj4gCj4+Pj4+Pj4+IEFsc28sIHdoYXQgaXMgZ29pbmcgdG8g aGFwcGVuIHRvIHRoZSBjdXJyZW50IHJpc2N2LGlzYT8gV2lsbCB0aGF0Cj4+Pj4+Pj4+IGNvbnRp bnVlIHRvIGV4aXN0IGFuZCBkdXBsaWNhdGUgdGhlIGluZm8sIG9yIHdpbGwga2VybmVscyBiZQo+ Pj4+IHJlcXVpcmVkCj4+Pj4+Pj4+IHRvIHJlY29uc3RydWN0IHRoZSBzdHJpbmcgdGhlbXNlbHZl cyBpZiB0aGV5IHdhbnQgdG8gZGlzcGxheSBpdCB0bwo+Pj4+Pj4+PiB1c2Vycz8KPj4+Pj4+Pj4g Cj4+Pj4+IAo+Pj4+PiBTb3JyeS4gSSBtaXNzZWQgdGhpcyBxdWVzdGlvbiBlYXJsaWVyLiBTZWUg bXkgYW5zd2VyIGJlbG93Lgo+Pj4+PiAKPj4+Pj4+PiAKPj4+Pj4+PiBUaGlzIGlzIG15IHBlcnNv bmFsIHByZWZlcmVuY2U6Cj4+Pj4+Pj4gcmlzY3YsaXNhIHdpbGwgY29udGludWUgdG8gYmFzZSBT dGFuZGFyZCBJU0EgZXh0ZW5zaW9ucyB0aGF0IGhhdmUKPj4+Pj4+PiBzaW5nbGUgbGV0dGVyIGV4 dGVuc2lvbnMuCj4+Pj4+Pj4gCj4+Pj4+Pj4gVGhpcyBuZXcgRFQgbm9kZSB3aWxsIGVuY29kZSBh bGwgdGhlIG5vbi1zaW5nbGUgbGV0dGVyIGV4dGVuc2lvbnMuCj4+Pj4+Pj4gSSBhbSBub3Qgc3Vy ZSBpZiBpdCBzaG91bGQgaW5jbHVkZSBzb21lIHByb3Zpc2lvbnMgZm9yIGN1c3RvbQo+Pj4+Pj4+ IGV4dGVuc2lvbnMgc3RhcnRpbmcgd2l0aCBYIGJlY2F1c2UKPj4+Pj4+PiB0aGF0IHdpbGwgYmUg cGxhdGZvcm0gc3BlY2lmaWMuCj4+Pj4+Pj4gCj4+Pj4+Pj4gQWdhaW4sIHRoaXMgaXMganVzdCBt eSBwZXJzb25hbCBwcmVmZXJlbmNlLiBJIHdpbGwgdHJ5IHRvIHNlbmQgYQo+Pj4+IHBhdGNoCj4+ Pj4+Pj4gc29vbiBzbyB0aGF0IHdlIGNhbiBpbml0aWF0ZSBhIGJyb2FkZXIKPj4+Pj4+PiBkaXNj dXNzaW9uIG9mIHRoZSBzY2hlbWUgYW5kIGFncmVlL2Rpc2FncmVlIG9uIHNvbWV0aGluZy4KPj4+ Pj4+IAo+Pj4+Pj4gRm9yIHN1cGVydmlzb3Itb25seSBleHRlbnNpb25zIGxpa2UgIlN2cGJtdCIs IG5ldyBEVCBub2RlIHdvdWxkIGJlIGEKPj4+Pj4+IHJlYXNvbmFibGUgc29sdXRpb24gKGFuZCBJ IHdvdWxkIG5vdCBkaXJlY3RseSBvYmplY3QgYWJvdXQgdGhhdCBub2RlKS4KPj4+Pj4+IAo+Pj4+ Pj4gSG93ZXZlciwgdGhlcmUncyBtYW55IG11bHRpLWxldHRlciBleHRlbnNpb25zIHRoYXQgYXJl IHVzZWZ1bCBmb3IKPj4+Pj4+IHVzZXIgbW9kZS4gIEJlY2F1c2UgInJpc2N2LGlzYSIgaXMgZXhw b3NlZCB2aWEgc3lzZnMgYW5kIHByb2Nmcwo+Pj4+Pj4gKC9wcm9jL2NwdWluZm8pLCBpdCBjYW4g YmUgcmVhbGx5IGhlbHBmdWwgdG8gaGF2ZSBtdWx0aS1sZXR0ZXIKPj4+Pj4gCj4+Pj4+IElycmVz cGVjdGl2ZSBvZiB0aGUgbWV0aG9kIGNob3NlbiB0byBwYXJzZSB0aGUgZGV2aWNlIHRyZWUgaW4g a2VybmVsLAo+Pj4+PiB3ZSBuZWVkIHRvIHByb3ZpZGUgdGhlIGV4dGVuc2lvbiBpbmZvcm1hdGlv biB0byB0aGUgdXNlcnNwYWNlLgo+Pj4+PiAKPj4+Pj4gVGhpcyBpcyB3aGF0IEkgaGF2ZSBpbiBt aW5kLiBBbiBpbmRpdmlkdWFsIHJvdyB3aXRoIGNvbW1hIHNlcGFyYXRlZAo+Pj4+PiBleHRlbnNp b24gbmFtZXMgZm9yIGVhY2ggdHlwZSBvZiBleHRlbnNpb25zIChTcywgU3YsIFNoKQo+Pj4+PiBh ZnRlciB0aGUgYmFzZSBleHRlbnNpb24gKHJ2NjRpbWFmZGMpIGluIC9wcm9jL2NwdWluZm8gb3V0 cHV0LiBJIGFtCj4+Pj4+IG9wZW4gdG8gb3RoZXIgaWRlYXMgYXMgd2VsbC4KPj4+Pj4gCj4+Pj4+ IGlzYSAgIHJ2NjRpbWFmZGMKPj4+Pj4gaXNhLWV4dC1TdiBTdnBibXQKPj4+Pj4gaXNhLWV4dC1T cyBTc2NvZnBtZgo+Pj4+PiBpc2EtZXh0LVNoIDxoeXBlcnZpc29yIHJlbGF0ZWQgZXh0ZW5zaW9u cz4KPj4+Pj4gaXNhLWV4dC1aICAgWmljYm9tCj4+Pj4+IAo+Pj4+PiBXZSBjYW4gZXZlbiBleHBs aWNpdGx5IG5hbWUgdGhlIGV4dGVuc2lvbnMgYWZ0ZXIgaXNhLWV4dC4gSG93ZXZlciwgaXQKPj4+ Pj4gbWF5IGJlIG5lY2Vzc2FyeSBhbmQgdG9vIGxvbmcuCj4+Pj4gCj4+Pj4gQXJlbid0IG90aGVy IGFyY2hpdGVjdHVyZXMganVzdCB1c2luZyBhIGZsYWdzIFt4ODZdIG9yIGZlYXR1cmVzIFthcm02 NF0KPj4+PiBsaW5lIGluIGNwdWluZm8gdG8gZXhwb3NlIHRoZSBhdmFpbGFibGUgYWRkaXRpb25h bCBjcHUgZmVhdHVyZXMKPj4+PiBhcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0Pwo+Pj4+IAo+Pj4+ IFNvIHlvdSBjb3VsZCBhbHNvIGp1c3QgZG8gc29tZXRoaW5nIHNpbWlsYXIgbGlrZQo+Pj4+IGlz YTogICBydjY0aW1hZmRjCj4+Pj4gaXNhLWV4dDogU3ZwYm10IFNzY29mcG1mIGZvbyBiYXIKPj4+ PiAKPj4+PiAKPj4+IEEgc3BhY2Ugc2VwYXJhdGVkIGxpc3QgaXMgYWxzbyBmaW5lIGJ5IG1lLgo+ Pj4gU2hvdWxkIHdlIGtlZXAgYWxsIHRoZSBleHRlbnNpb25zIGFzIG9uZSByb3cgb3Igc3BsaXQg YmFzZWQgb24gdGhlIHR5cGUgb2YKPj4+IGV4dGVuc2lvbnMgKFNzLCBTdiwgU2gsKT8KPj4+IAo+ Pj4gV2hlbiBJIGxvb2sgYXQgdGhlIGZsYWdzIGluIHg4NiwgbXkgZXllcyBodXJ0IGJhZGx5IDsp Cj4+IAo+PiBPbiBhcm02NAo+PiBGZWF0dXJlcyAgICAgICAgOiBmcCBhc2ltZCBldnRzdHJtIGFl cyBwbXVsbCBzaGExIHNoYTIgY3JjMzIgY3B1aWQKPj4gCj4+IG9yIG9uIGFybTMyCj4+IEZlYXR1 cmVzICAgICAgICA6IGhhbGYgdGh1bWIgZmFzdG11bHQgdmZwIGVkc3AgdGh1bWJlZSBuZW9uIHZm cHYzIHRscyB2ZnB2NCBpZGl2YSBpZGl2dCB2ZnBkMzIgbHBhZSBldnRzdHJtCj4+IAo+PiAKPj4+ IFRoYXQncyB3aHkgSSBzdWdnZXN0ZWQgc3BsaXR0aW5nIGJ5IHR5cGUgb2YgZXh0ZW5zaW9ucyB0 byBpbXByb3ZlCj4+PiByZWFkYWJpbGl0eS4KPj4gCj4+IFRob3VnaCBJIGd1ZXNzIHdpdGggdGhh dCBzcGxpdCB5b3UgaW50cm9kdWNlIG1vcmUgcmVxdWlyZW1lbnRzIG9uIHVzZXJzcGFjZT8KPj4g QmVjYXVzZSB0aGluZ3MgdGhhdCBwYXJzZSBjcHVpbmZvICh0aGluayBzb21lIHB5dGhvbiBsaWJy YXJ5KSB3aWxsIG5lZWQgdG8KPj4gYmUgdXBkYXRlZCB3aGVuIHNvbWUgbmV3IGV4dGVuc2lvbiBj YXRlZ29yeSBzdXJmYWNlcz8KPj4gCj4+IAo+PiAKPj4+PiBUaGF0IHdvdWxkIG1ha2UgYSBuaWNl IGNvbXByb21pc2UgYmV0d2VlbiBsZW5ndGggYW5kIHJlYWRhYmlsaXR5Cj4+Pj4gYnkgdXNlcnMg SSBndWVzcz8KPj4+PiAKPj4+PiAKPj4+PiBIZWlrbwo+Pj4+IAo+Pj4+PiBJIGd1ZXNzIHlvdSBw cmVmZXIgdG8gZGlyZWN0bHkgcHJpbnQgdGhlIGVudGlyZSAicmlzY3YsaXNhIiBzdHJpbmcgaW4K Pj4+Pj4gImlzYSIgcm93IGluIC9wcm9jL2NwdWluZm8gb3V0cHV0Lgo+Pj4+PiBJdCBpcyBwcm9i YWJseSBva2F5IHdpdGggdGhlIGN1cnJlbnQgbnVtYmVyIG9mIGV4dGVuc2lvbnMgYXZhaWxhYmxl Cj4+Pj4+IHRvZGF5LiBIb3dldmVyLCBpdCB3aWxsIGJlY29tZSBzbyBsb25nIHN0cmluZwo+Pj4+ PiBpbiB0aGUgZnV0dXJlIHRoYXQgaXQgaGFzIHRvIGJlIGJyb2tlbiBpbnRvIG11bHRpcGxlIGxp bmVzLgo+Pj4+PiAKPj4+Pj4+IGV4dGVuc2lvbnMuICBBbHNvLCBjdXJyZW50IHZlcnNpb24gb2Yg U3Bpa2UsIGEgUklTQy1WIElTQSBTaW11bGF0b3IKPj4+Pj4+IHB1dHMgYWxsIG11bHRpLWxldHRl ciBleHRlbnNpb25zIGluICJyaXNjdixpc2EiIGFuZCBJIHRob3VnaHQgdGhpcyBpcwo+Pj4+Pj4g aW50ZW5kZWQuCj4+Pj4+PiAKPj4+Pj4+IE15IHByZWZlcmVuY2U6Cj4+Pj4+PiAoMSkgQWxsb3cg aGF2aW5nIG11bHRpLWxldHRlciBleHRlbnNpb25zIGFuZCB2ZXJzaW9ucyBpbiAicmlzY3YsaXNh Igo+Pj4+Pj4gKDIpIEFkZGluZyBuZXcgRFQgbm9kZSBmb3Igc3VwZXJ2aXNvci1yZWxhdGVkIGV4 dGVuc2lvbnMgd291bGQgYmUKPj4+Pj4+ICAgIHJlYXNvbmFibGUgKGJ1dCBJIGRvbid0IHN0cm9u Z2x5IGFncmVlL2Rpc2FncmVlKS4KPj4+Pj4+IAo+Pj4+Pj4gVGhhbmtzLAo+Pj4+Pj4gVHN1a2Fz YQo+Pj4+Pj4gCj4+Pj4+Pj4gCj4+Pj4+Pj4gCj4+Pj4+Pj4gCj4+Pj4+Pj4+IEFzIGEgRnJlZUJT RCBkZXZlbG9wZXIgSeKAmW0gb2J2aW91c2x5IG5vdCBhIHBhcnQgb2YgbWFueSBvZiB0aGVzZQo+ Pj4+Pj4+PiBkaXNjdXNzaW9ucywgYnV0IHdoYXQgdGhlIExpbnV4IGNvbW11bml0eSBpbXBvc2Vz IGFzIHRoZSBkZXZpY2UgdHJlZQo+Pj4+Pj4+PiBiaW5kaW5ncyBoYXMgYSByZWFsIGltcGFjdCBv biB1cy4KPj4+Pj4+Pj4gCj4+Pj4+Pj4+IEplc3MKPj4+Pj4+Pj4gCj4+Pj4+Pj4+PiBPbiBUdWUs IDMwIE5vdiAyMDIxIGF0IDE0OjU5LCBKZXNzaWNhIENsYXJrZSA8anJ0YzI3QGpydGMyNy5jb20+ Cj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+Pj4gCj4+Pj4+Pj4+Pj4gT24gMzAgTm92IDIwMjEsIGF0IDEz OjI3LCBIZWlrbyBTdMO8Ym5lciA8aGVpa29Ac250ZWNoLmRlPiB3cm90ZToKPj4+Pj4+Pj4+Pj4g Cj4+Pj4+Pj4+Pj4+IEhpLAo+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4gQW0gRGllbnN0YWcsIDMw LiBOb3ZlbWJlciAyMDIxLCAxNDoxNzo0MSBDRVQgc2NocmllYiBKZXNzaWNhCj4+Pj4gQ2xhcmtl Ogo+Pj4+Pj4+Pj4+Pj4gT24gMzAgTm92IDIwMjEsIGF0IDEyOjA3LCBIZWlrbyBTdMO8Ym5lciA8 aGVpa29Ac250ZWNoLmRlPgo+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+ IEFtIE1vbnRhZywgMjkuIE5vdmVtYmVyIDIwMjEsIDEzOjA2OjIzIENFVCBzY2hyaWViIEhlaWtv Cj4+Pj4gU3TDvGJuZXI6Cj4+Pj4+Pj4+Pj4+Pj4+IEFtIE1vbnRhZywgMjkuIE5vdmVtYmVyIDIw MjEsIDA5OjU0OjM5IENFVCBzY2hyaWViIEhlaW5yaWNoCj4+Pj4gU2NodWNoYXJkdDoKPj4+Pj4+ Pj4+Pj4+Pj4+IE9uIDExLzI5LzIxIDAyOjQwLCB3ZWZ1QHJlZGhhdC5jb20gd3JvdGU6Cj4+Pj4+ Pj4+Pj4+Pj4+Pj4gRnJvbTogV2VpIEZ1IDx3ZWZ1QHJlZGhhdC5jb20+Cj4+Pj4+Pj4+Pj4+Pj4+ Pj4gCj4+Pj4+Pj4+Pj4+Pj4+Pj4gUHJldmlvdXMgcGF0Y2ggaGFzIGFkZGVkIHN2cGJtdCBpbiBh cmNoL3Jpc2N2IGFuZCBhZGQKPj4+PiAicmlzY3Ysc3ZwbWJ0Igo+Pj4+Pj4+Pj4+Pj4+Pj4+IGlu IHRoZSBEVCBtbXUgbm9kZS4gVXBkYXRlIGR0LWJpbmRpbmdzIHJlbGF0ZWQgcHJvcGVydHkKPj4+ PiBoZXJlLgo+Pj4+Pj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6 IFdlaSBGdSA8d2VmdUByZWRoYXQuY29tPgo+Pj4+Pj4+Pj4+Pj4+Pj4+IENvLWRldmVsb3BlZC1i eTogR3VvIFJlbiA8Z3VvcmVuQGtlcm5lbC5vcmc+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gU2lnbmVkLW9m Zi1ieTogR3VvIFJlbiA8Z3VvcmVuQGtlcm5lbC5vcmc+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gQ2M6IEFu dXAgUGF0ZWwgPGFudXBAYnJhaW5mYXVsdC5vcmc+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gQ2M6IFBhbG1l ciBEYWJiZWx0IDxwYWxtZXJAZGFiYmVsdC5jb20+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gQ2M6IFJvYiBI ZXJyaW5nIDxyb2JoK2R0QGtlcm5lbC5vcmc+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+ Pj4+Pj4+Pj4gRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jpc2N2L2NwdXMueWFt bCB8IDEwCj4+Pj4gKysrKysrKysrKwo+Pj4+Pj4+Pj4+Pj4+Pj4+IDEgZmlsZSBjaGFuZ2VkLCAx MCBpbnNlcnRpb25zKCspCj4+Pj4+Pj4+Pj4+Pj4+Pj4gCj4+Pj4+Pj4+Pj4+Pj4+Pj4gZGlmZiAt LWdpdAo+Pj4+IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jpc2N2L2NwdXMu eWFtbAo+Pj4+IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jpc2N2L2NwdXMu eWFtbAo+Pj4+Pj4+Pj4+Pj4+Pj4+IGluZGV4IGFhNWZiNjRkNTdlYi4uOWZmOWNiZGQ4YTg1IDEw MDY0NAo+Pj4+Pj4+Pj4+Pj4+Pj4+IC0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9yaXNjdi9jcHVzLnlhbWwKPj4+Pj4+Pj4+Pj4+Pj4+PiArKysgYi9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvcmlzY3YvY3B1cy55YW1sCj4+Pj4+Pj4+Pj4+Pj4+Pj4gQEAg LTYzLDYgKzYzLDE2IEBAIHByb3BlcnRpZXM6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAgIC0gcmlzY3Ys c3Y0OAo+Pj4+Pj4+Pj4+Pj4+Pj4+ICAgICAtIHJpc2N2LG5vbmUKPj4+Pj4+Pj4+Pj4+Pj4+PiAK Pj4+Pj4+Pj4+Pj4+Pj4+PiArICBtbXU6Cj4+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4+ IFNob3VsZG4ndCB3ZSBrZWVwIHRoZSBpdGVtcyBiZSBpbiBhbHBoYWJldGljIG9yZGVyLCBpLmUu IG1tdQo+Pj4+IGJlZm9yZQo+Pj4+Pj4+Pj4+Pj4+Pj4gbW11LXR5cGU/Cj4+Pj4+Pj4+Pj4+Pj4+ PiAKPj4+Pj4+Pj4+Pj4+Pj4+PiArICAgIGRlc2NyaXB0aW9uOgo+Pj4+Pj4+Pj4+Pj4+Pj4+ICsg ICAgICBEZXNjcmliZXMgdGhlIENQVSdzIE1NVSBTdGFuZGFyZCBFeHRlbnNpb25zIHN1cHBvcnQu Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAgICAgIFRoZXNlIHZhbHVlcyBvcmlnaW5hdGUgZnJvbSB0aGUg UklTQy1WIFByaXZpbGVnZWQKPj4+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgU3BlY2lmaWNhdGlvbiBk b2N1bWVudCwgYXZhaWxhYmxlIGZyb20KPj4+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgaHR0cHM6Ly9y aXNjdi5vcmcvc3BlY2lmaWNhdGlvbnMvCj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAgICAkcmVmOiAnL3Nj aGVtYXMvdHlwZXMueWFtbCMvZGVmaW5pdGlvbnMvc3RyaW5nJwo+Pj4+Pj4+Pj4+Pj4+Pj4+ICsg ICAgZW51bToKPj4+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgLSByaXNjdixzdnBtYnQKPj4+Pj4+Pj4+ Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+Pj4gVGhlIHByaXZpbGVnZWQgc3BlY2lmaWNhdGlvbiBoYXMg bXVsdGlwbGUgTU1VIHJlbGF0ZWQKPj4+PiBleHRlbnNpb25zOgo+Pj4+Pj4+Pj4+Pj4+Pj4gU3Zu YXBvdCwgU3ZwYm10LCBTdmludmFsLiBTaGFsbCB0aGV5IGFsbCBiZSBtb2RlbGVkIGluIHRoaXMK Pj4+PiBlbnVtPwo+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4gSSByZW1lbWJlciBpbiBz b21lIGVhcmxpZXIgdmVyc2lvbiBzb21lIHdheSBiYWNrIHRoZXJlIHdhcyB0aGUKPj4+Pj4+Pj4+ Pj4+Pj4gc3VnZ2VzdGlvbiBvZiB1c2luZyBhIHN1Yi1ub2RlIGluc3RlYWQgYW5kIHRoZW4gYWRk aW5nIGJvb2xlYW4KPj4+Pj4+Pj4+Pj4+Pj4gcHJvcGVydGllcyBmb3IgdGhlIHN1cHBvcnRlZCBl eHRlbnNpb25zLgo+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4gQWthIHNvbWV0aGluZyBs aWtlCj4+Pj4+Pj4+Pj4+Pj4+ICBtbXUgewo+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgICByaXNjdixz dnBibXQ7Cj4+Pj4+Pj4+Pj4+Pj4+ICB9Owo+Pj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+IEZv ciB0aGUgcmVjb3JkLCBJJ20gdGFsa2luZyBhYm91dCB0aGUgbWFpbCBmcm9tIHNlcHRlbWJlcgo+ Pj4+Pj4+Pj4+Pj4+IAo+Pj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LXJpc2N2L0NB QWVMdFVDaGpqekcrUDh5ZzQ1R0xaTUp5NVVSMks1UlJCb0xGVlpodE9hWjVwUHRFQUBtYWlsLmdt YWlsLmNvbS8KPj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+PiBTbyBoYXZpbmcgYSBzdWItbm9k ZSB3b3VsZCBtYWtlIGFkZGluZyBmdXR1cmUgZXh0ZW5zaW9ucwo+Pj4+Pj4+Pj4+Pj4+IHdheSBu aWNlci4KPj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4gU3ZwYm10IGlzIGp1c3QgYW4gSVNBIGV4 dGVuc2lvbiwgYW5kIHNob3VsZCBiZSB0cmVhdGVkIGxpa2UgYW55Cj4+Pj4gb3RoZXIuCj4+Pj4+ Pj4+Pj4+PiBMZXTigJlzIG5vdCBpbnZlbnQgdHdvIGRpZmZlcmVudCB3YXlzIG9mIHJlcHJlc2Vu dGluZyB0aGF0IGluIHRoZQo+Pj4+IGRldmljZQo+Pj4+Pj4+Pj4+Pj4gdHJlZS4KPj4+Pj4+Pj4+ Pj4gCj4+Pj4+Pj4+Pj4+IEhlaW5yaWNoIGFza2VkIGhvdyB0aGUgb3RoZXIgZXh0ZW5zaW9ucyBz aG91bGQgYmUgaGFuZGxlZAo+Pj4+Pj4+Pj4+PiAoU3ZuYXBvdCwgU3ZwYm10LCBTdmludmFsKSwg c28gd2hhdCBkbyB5b3Ugc3VnZ2VzdCB0byBkbyB3aXRoCj4+Pj4gdGhlc2U/Cj4+Pj4+Pj4+Pj4g Cj4+Pj4+Pj4+Pj4gV2hhdGV2ZXIgaXMgZG9uZSBmb3IgWmJbYWJjc10sIFprKiwgWnYqLCBaaWNi byosIGV0Yy4gVGhlcmUgbWF5Cj4+Pj4gbm90IGJlCj4+Pj4+Pj4+Pj4gYSBjb25jcmV0ZSBwbGFu IGZvciB0aGF0IHlldCwgYnV0IHRoYXQgbWVhbnMgeW91IHNob3VsZCBzcGVhawo+Pj4+IHdpdGgg dGhlCj4+Pj4+Pj4+Pj4gcGVvcGxlIGludm9sdmVkIHdpdGggc3VjaCBleHRlbnNpb25zIGFuZCBj b21lIHVwIHdpdGggc29tZXRoaW5nCj4+Pj4+Pj4+Pj4gYXBwcm9wcmlhdGUgdG9nZXRoZXIuCj4+ Pj4+Pj4+Pj4gCj4+Pj4+Pj4+Pj4gSmVzcwo+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+PiAKPj4+Pj4+Pj4g Cj4+Pj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4+Pj4+Pj4+IGxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdAo+Pj4+Pj4+PiBsaW51eC1yaXNjdkBs aXN0cy5pbmZyYWRlYWQub3JnCj4+Pj4+Pj4+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YKPj4+Pj4+PiAKPj4+Pj4+PiAKPj4+Pj4+PiAKPj4+ Pj4+PiAtLQo+Pj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+Pj4gQXRpc2gKPj4+Pj4+PiAKPj4+Pj4+PiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4+IGxp bnV4LXJpc2N2IG1haWxpbmcgbGlzdAo+Pj4+Pj4+IGxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVh ZC5vcmcKPj4+Pj4+PiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LXJpc2N2Cj4+Pj4+Pj4gCj4+Pj4+IAo+Pj4+PiAKPj4+Pj4gCj4+Pj4+IAo+Pj4+IAo+ Pj4+IAo+Pj4+IAo+Pj4+IAo+Pj4+IAo+Pj4gCj4+PiAKPj4gCj4+IAo+PiAKPj4gCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFp bGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=