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 94AA5CA0EEB for ; Tue, 19 Aug 2025 14:03:32 +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:In-Reply-To:References:From:To:Cc: Subject:Message-Id:Date:Mime-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZfbcR/5CZMcaQzjBqZr/CRFs1DGeAY2G8XOOPwlGsa4=; b=n91r8qDE9AxWJ1 jZrzxVvo+1+kYyPJz5QUExFny2CO0ZdGq6HLM2jEZxLotU4odGTs2LOIBwGXZHf6cwZv9grk5QtGc BAlUPyhimd/MtxsphvL7y2FAXBTpv0r28mlRff7sk8fZpyjg6zFocKY194le0jkMLdV1m6UOI5jk4 iguvp9TMswk/tNvepl+HFQh8Dqkub32zeUV0RmvTMDMxfDjOU9ycFF0E7CgfG80ZOgcKyjgY/Kv0P oy+2lsAMWQmxTd0HmdYFGxDdZOsf55X9gA/5GM2DMxluooE2YvqpOWukNSaBG3vrTUSmdl5JnPWCL ds+i+XKJxha5VMGXYOYA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uoMvz-0000000Ah2C-3nYx; Tue, 19 Aug 2025 14:03:31 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uoKkC-0000000AJzb-10RN for kvm-riscv@bombadil.infradead.org; Tue, 19 Aug 2025 11:43:12 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:References:From:To:Cc: Subject:Message-Id:Date:Content-Type:Content-Transfer-Encoding:Mime-Version: Sender:Reply-To:Content-ID:Content-Description; bh=J/0raNw155Q0fcr5A7DH7DOXoru7hdxKmPbmEOTm5zY=; b=R8jRXYJsfHl0zVpWOyhBXLvl8g qVsdrArTsEUcF/jEdN+SY3iyA6WSrsYgLkoUJVz7RPRfP6Uo6AaFLJEjspcjKzsGVjLP7TbmsxImM uW5iz+FObY1nDr1j4Oeo9is5Nv7V6C/ZYkLQ4EOOOoD7M8uhHm1pa7JHsV8+0yZKmcna6mj/gHqKB GsXoM6/8eVJxPuukQ3bilz2GTk4WmgnU25XKhl4RMRY437o1RXD7gW5LsvG7+iZXO8X/u4ELPqBVi PYEGL58YLpXRo3rjHV/JfYIgaQD41WXBJBoFSL9ZSdr1r2wpY44s3VOaSuP6srjgF0Gy+vNKKnyLb Mid1ifUQ==; Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by desiato.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uoKk9-000000001VR-0KeQ for kvm-riscv@lists.infradead.org; Tue, 19 Aug 2025 11:43:11 +0000 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-3b9d41c0fe4so743910f8f.0 for ; Tue, 19 Aug 2025 04:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1755603787; x=1756208587; darn=lists.infradead.org; h=in-reply-to:references:from:to:cc:subject:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=J/0raNw155Q0fcr5A7DH7DOXoru7hdxKmPbmEOTm5zY=; b=QVizXhEX7Tty3H8OyPC7Dw2+sK+AORVy/4SkKjKiLWwpMIFgqyqGrbxDR3o+VUC3LZ qTygIhKeZ82jrdvy10zSeY3WCyWO09llrQNNd8g1TzlfEvrvTFNuJDQNnzLnWwgIFQEg nPiWn7OzPGA7I5J3GHKJSgu3ubqOdPSuNpnCbZ/ubFSOPik68FT+oru2+RMz3ZciaaTf QiE1yruKEjKyKHzM+xRY283uaYRBE5eG2fmgZDPbado0oQKsQ10ruf0ubkGg8Wv6oagC gHa4xf5eoGNM597KnFbfjDIJ+nMmLh3QcwUPbT0cduceuptwyM9voPzuxrJhzWjdb1PA CQzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755603787; x=1756208587; h=in-reply-to:references:from:to:cc:subject:message-id:date :content-transfer-encoding:mime-version:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=J/0raNw155Q0fcr5A7DH7DOXoru7hdxKmPbmEOTm5zY=; b=WtMbmfYflGwLIwr8EY/dA+sGCWKmDjdJR+nENWyoVmk3qvOIVjwvSsq/3Zm6ES1/Nw 3VNmUDnePB6EMrZJrDj1nBicyqBu+JBpn/2xpxg3zLW7OrvB8zPPwuh1VIj/G1muduwx +Y+usHRPpAw6CYdFYUkpWcvSTy40IgKvzI8A3dp/jUzocnid9kdXp2V2GPhuKnKMHJru a8iSWPNwi3rTM90UKhUQflAh7qx4aLRX6DaEy8du5dVmCy4fbF0m0n+sUBCWJ80NfnrC KqfJMkDZJ3Vlisp/nokQhGxr6PvTbv8fePyqjjjSEFx+2f1lHWE2LLhZY6keme18S52L Fwuw== X-Forwarded-Encrypted: i=1; AJvYcCXWuTPCQO0guSPcgkmf/YpZ3o/0jeZjTmpp/g+O79ujretLHv91r4jIih2irJoVHIIoSa1DPzLPdCM=@lists.infradead.org X-Gm-Message-State: AOJu0YycO0gbg1yDK5E83FDCVvkgGkeF0DPQayTVX/Er5A7pxstkAkLx x3mWX4bm9xoglPRVMYHK+rCl8mnL/fHNzidg3nAtDkl5qi+iahczN/koeo+baAKZ0VU= X-Gm-Gg: ASbGncs9H4AH37FrSO+9w2Qt7C6J7ORJi42FQSxZGwnnbx23lvvzflh9zyKhkvk0ks5 ALhkdoVbAK8JDIOuuEGc6CT78MTueI1w0fs7PpL0FzzJWAAUmdhJJoSz26s6uthpHQDVqNQKTaE CZQqGpjqu1n8eER3VZM8El4vIqIUd3P3k4y5dsXNXwYW4N5Xb8O1ox7b+1BzWPv7j9/2X1H9JBc WEzPocUYKljm4aTnhFzlBDb/yvAc/bcT7rnmj6WXVE73dp5+OgIDdX6pEP4QdbhBHfHX/Bp7GZA BQ3kZCZj6UIUqMGBvwOb3NaxlLA97UAeoI6uYk9m12T2S1Sha6gCCEYRwm4ub1w/qebdIE+qH+T BRSVDjH0gu5Ngc0ad56UqYT004dtrhg== X-Google-Smtp-Source: AGHT+IE0FoFnrqv/364y0JxojzjSjgxBxkWPcaMoaWDVaVYQ/OrVds62/XTIFpn7j8AxOXLMQWkHNw== X-Received: by 2002:a05:600c:c169:b0:459:d7c4:9e14 with SMTP id 5b1f17b1804b1-45b43e85f3bmr9440455e9.0.1755603786493; Tue, 19 Aug 2025 04:43:06 -0700 (PDT) Received: from localhost ([2a02:8308:a00c:e200:e7d6:daad:8c97:a08e]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-45a1cda0021sm207509385e9.13.2025.08.19.04.43.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Aug 2025 04:43:06 -0700 (PDT) Mime-Version: 1.0 Date: Tue, 19 Aug 2025 13:43:05 +0200 Message-Id: Subject: Re: [PATCH 0/6] ONE_REG interface for SBI FWFT extension Cc: "Atish Patra" , "Palmer Dabbelt" , "Paul Walmsley" , "Alexandre Ghiti" , "Andrew Jones" , "Anup Patel" , "Paolo Bonzini" , "Shuah Khan" , , , , , , "linux-riscv" To: "Anup Patel" From: =?utf-8?q?Radim_Kr=C4=8Dm=C3=A1=C5=99?= References: <20250814155548.457172-1-apatel@ventanamicro.com> In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250819_124309_327338_8C9FE19B X-CRM114-Status: GOOD ( 33.64 ) X-BeenThere: kvm-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: "kvm-riscv" Errors-To: kvm-riscv-bounces+kvm-riscv=archiver.kernel.org@lists.infradead.org MjAyNS0wOC0xOVQxMjowMDo0MyswNTozMCwgQW51cCBQYXRlbCA8YXBhdGVsQHZlbnRhbmFtaWNy by5jb20+Ogo+IE9uIE1vbiwgQXVnIDE4LCAyMDI1IGF0IDM6NTnigK9QTSBSYWRpbSBLcsSNbcOh xZkgPHJrcmNtYXJAdmVudGFuYW1pY3JvLmNvbT4gd3JvdGU6Cj4+Cj4+IDIwMjUtMDgtMTRUMjE6 MjU6NDIrMDU6MzAsIEFudXAgUGF0ZWwgPGFwYXRlbEB2ZW50YW5hbWljcm8uY29tPjoKPj4gPiBU aGlzIHNlcmllcyBhZGRzIE9ORV9SRUcgaW50ZXJmYWNlIGZvciBTQkkgRldGVCBleHRlbnNpb24g aW1wbGVtZW50ZWQKPj4gPiBieSBLVk0gUklTQy1WLgo+Pgo+PiBJIHRoaW5rIGl0IHdvdWxkIGJl IGJldHRlciB0byBPTkVfUkVHIHRoZSBDU1JzIChtZWRlbGVnL21lbnZjZmcpLCBvciBhdAo+PiBs ZWFzdCBleHBvc2UgdGhlaXIgQ1NSIGZpZWxkcyAoZWFjaCBzZW5zaWJsZSBtZWRlbGVnIGJpdCwg UE1NLCAuLi4pCj4+IHRocm91Z2gga3ZtX3Jpc2N2X2NvbmZpZywgdGhhbiB0byBjb3VwbGUgdGhp cyB3aXRoIFNCSS9GV0ZULgo+Pgo+PiBUaGUgY29udHJvbGxlZCBiZWhhdmlvciBpcyBkZWZpbmVk IGJ5IHRoZSBJU0EsIGFuZCB1c2Vyc3BhY2UgbWlnaHQgd2FudAo+PiB0byBjb25maWd1cmUgdGhl IFMtbW9kZSBleGVjdXRpb24gZW52aXJvbm1lbnQgZXZlbiB3aGVuIFNCSS9GV0ZUIGlzIG5vdAo+ PiBwcmVzZW50LCB3aGljaCBpcyBub3QgcG9zc2libGUgd2l0aCB0aGUgY3VycmVudCBkZXNpZ24u Cj4+Cj4+IElzIHRoZXJlIGEgYmVuZWZpdCBpbiBleHByZXNzaW5nIHRoZSBJU0EgbW9kZWwgdGhy b3VnaCBTQkkvRldGVD8KPj4KPgo+IEV4cG9zaW5nIG1lZGVsZWcvbWVudmNmZyBpcyBub3QgdGhl IHJpZ2h0IGFwcHJvYWNoIGJlY2F1c2UgYQo+IEd1ZXN0L1ZNIGRvZXMgbm90IGhhdmUgTS1tb2Rl IGhlbmNlIGl0IGlzIG5vdCBhcHByb3ByaWF0ZSB0bwo+IGV4cG9zZSBtPHh5ej4gQ1NScyB2aWEg T05FX1JFRyBpbnRlcmZhY2UuIFRoaXMgYWxzbyBhbGlnbnMKPiB3aXRoIEgtZXh0ZW5zaW9uIGFy Y2hpdGVjdHVyZSB3aGljaCBkb2VzIG5vdCB2aXJ0dWFsaXplIE0tbW9kZS4KCldlIGFscmVhZHkg aGF2ZSBtdmVuZG9yaWQsIG1hcmNoaWQsIGFuZCBtaXBpZCBpbiBrdm1fcmlzY3ZfY29uZmlnLgoK VGhlIHZpcnR1YWxpemVkIE0tbW9kZSBpcyB1c2Vyc3BhY2UrS1ZNLiAgKEtWTSBkb2Vzbid0IGFs bG93IHVzZXJzcGFjZQp0byBjb25maWd1cmUgbW9zdCB0aGluZ3Mgbm93LCBidXQgSSB0aGluayB3 ZSdsbCBoYXZlIHRvIGNoYW5nZSB0aGF0IHdoZW4KZ2V0dGluZyByZWFkeSBmb3IgcHJvZHVjdGlv bi4pCgo+IFdlIGFscmVhZHkgaGFkIGRpc2N1c3Npb25zIGFib3V0IHRoaXMgaW4gdGhlIHBhc3Qu Cj4KPiBBcyBzdWNoLCB3ZSBoYXZlIHR3byBvcHRpb25zLiBPbmUgb3B0aW9uIGlzIHRvIGV4cG9z ZQo+IGhlZGVsZWcvaGVudmNmZyB2aWEga3ZtX3Jpc2N2X2NvbmZpZyBhbmQgYW5vdGhlciBvcHRp b24KPiBpcyB0byBoYXZlIGEgc2VwYXJhdGUgT05FX1JFRyBmb3IgZWFjaCBGV0ZUIGZlYXR1cmUu Cj4KPiBTZXBhcmF0ZSBPTkVfUkVHIHJlZ2lzdGVycyBmb3IgZWFjaCBGV0ZUIGZlYXR1cmUgaXMg YmV0dGVyCj4gdGhhbiBkaXJlY3RseSBleHBvc2luZyBoZWRlbGVnL2hlbnZjZmcgdmlhIE9ORV9S RUcgYmVjYXVzZToKPgo+IDEpIE9uY2UgbmVzdGVkIHZpcnR1YWxpemF0aW9uIGxhbmRzLCB3ZSB3 aWxsIGJlIGhhdmluZyBzZXBhcmF0ZQo+IGhlZGVsZWcvaGVudmNmZyBhcyBwYXJ0IG9mIG5lc3Rl ZCB2aXJ0dWFsaXphdGlvbiBzdGF0ZSBvZiBHdWVzdAo+IHdoaWNoIGlzIHRyYXAtbi1lbXVsYXRl ZCBieSBLVk0uIFRoZSBleGlzdGVuY2Ugb2YgaGVkZWxlZy9oZW52Y2ZnCj4gaW4ga3ZtX3Jpc2N2 X2NvbmZpZyBhbmQgbmVzdGVkIHZpcnR1YWxpemF0aW9uIHN0YXRlIHdpbGwgb25seSBjcmVhdGUK PiBtb3JlIGNvbmZ1c2lvbi4KClJpZ2h0LCB0aGUgdXNlcnNwYWNlIHJlZ2lzdGVycyBmb3IgdGhp cyBjYW4ndCBiZSBjYWxsZWQgaCouCgo+IDIpIE5vdCBhbGwgYml0cyBpbiBoZWRlbGVnL2hlbnZj ZmcgYXJlIHVzZWQgZm9yIEZXRlQgc2luY2UgcXVpdGUKPiBhIGZldyBiaXRzIGFyZSBwcm9ncmFt bWVkIHdpdGggZml4ZWQgdmFsdWUgYmFzZWQgb24gS1ZNCj4gaW1wbGVtZW50YXRpb24gY2hvaWNl cyAod2hpY2ggbWF5IGNoYW5nZSBpbiBmdXR1cmUpLgoKWWVzLCB3ZSdsbCB3YW50IHRvIGV4cG9z ZSBzb21lIHRvIHVzZXJzcGFjZS4KCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBbHNvLAo+IHRoaW5ncyBsaWtlIHNldF9kZWJ1Z19pb2N0bCgp IGNoYW5nZSBoZWRlbGVnIGF0IHJ1bnRpbWUKPiB3aGljaCBhbGxvdyBLVk0gdXNlciBzcGFjZSB0 byBkZWNpZGUgd2hvIHRha2VzIGJyZWFrcG9pbnQKPiB0cmFwcyBmcm9tIEd1ZXN0L1ZNLgoKVGhp cyBpcyBzdGlsbCBkb2FibGUuICBUaGUgY2xlYXIgaGVkZWxlZyBiaXQgZG9lcyBub3QgaGF2ZSB0 byBjaGFuZ2UgdGhlCnZpcnR1YWxpemVkIGJlaGF2aW9yIC0tIGlmIHRoZSBndWVzdCBpcyBleHBl Y3RpbmcgdG8gc2VlIGJyZWFrcG9pbnQKdHJhcHMsIHRoZW4gZXZlbiBpZiB1c2Vyc3BhY2UrS1ZN IGNvbmZpZ3VyZSB0aGUgYXJjaGl0ZWN0dXJlIHRvIGRpcmVjdAp0aGUgdHJhcHMgdG8gdGhlIGh5 cGVydmlzb3IsIHRoZXkgbXVzdCB0aGVuIGZvcndhcmQgdGhlIGJyZWFrcG9pbnRzIHRoYXQKd2Vy ZSBzdXBwb3NlZCB0byBiZSBkZWxpdmVyZWQgdG8gdGhlIGd1ZXN0LgoKPiAgICAgICAgICAgICAg ICAgICAgICBUaGlzIG1lYW5zIHZhbHVlIHNhdmVkL3Jlc3RvcmVkCj4gdGhyb3VnaCBoZWRlbGVn L2hlbnZjZmcgaW4ga3ZtX3Jpc2N2X2NvbmZpZyBiZWNvbWVzCj4gc3BlY2lmaWMgdG8gdGhlIGtl cm5lbCB2ZXJzaW9uIGFuZCBzcGVjaWZpYyB0byBob3N0IElTQSBmZWF0dXJlcy4KCkhlZGVsZWcv aGVudmNmZyBiaXRzIGRvIG5vdCBoYXZlIHRvIGJlIHRoZSBzYW1lIGFzIHVzZXJzcGFjZSBpbnRl cmZhY2UKYml0cyAtLSBLVk0gYWx3YXlzIGhhcyB0byBkaXN0aW5ndWlzaCB3aGF0IHRoZSB1c2Vy c3BhY2Ugd2FudHMgdG8KdmlydHVhbGl6ZSwgYW5kIHdoYXQgdGhlIEtWTSBjaGFuZ2VkIGZvciBp dHMgb3duIHJlYXNvbnMuCgo+IDMpIFdlIGFueXdheSBuZWVkIHRvIHByb3ZpZGUgT05FX1JFRyBp bnRlcmZhY2UgdG8KPiBzYXZlL3Jlc3RvcmUgRldGVCBmZWF0dXJlIGZsYWdzIHNvIGl0J3MgYmV0 dGVyIHRvIGtlZXAgdGhlCj4gRldGVCBmZWF0dXJlIHZhbHVlIGFzIHBhcnQgb2YgdGhlIHNhbWUg T05FX1JFRyBpbnRlcmZhY2UuCgpJIHRoaW5rIHdlIHdhbnQgdG8gaGF2ZSBTQkkgaW4gdXNlcnNw YWNlIChlc3BlY2lhbGx5IGZvciBzaW5nbGUtc2hvdAplY2FsbHMgbGlrZSBGV0ZUKS4gIFRoZSB1 c2Vyc3BhY2UgaW1wbGVtZW50YXRpb24gd2lsbCB3YW50IGFuIGludGVyZmFjZQp0byBzZXQgdGhl IElTQSBiaXRzLCBhbmQgaXQncyB2ZXJ5IGF3a3dhcmQgd2l0aCB0aGUgcHJvcG9zZWQgZGVzaWdu LgoKRmxhZ3MgY2FuIHRvIHN0YXksIGluIGNhc2UgdGhlIHVzZXJwYWNlIHdhbnRzIHRvIGFjY2Vs ZXJhdGUgRldGVC4KCj4gNCkgVGhlIGF2YWlsYWJpbGl0eSBvZiBxdWl0ZSBhIGZldyBGV0ZUIGZl YXR1cmVzIGlzIGRlcGVuZGVudAo+IG9uIGNvcnJlc3BvbmRpbmcgSVNBIGV4dGVuc2lvbnMgc28g aGF2aW5nIHNlcGFyYXRlIE9ORV9SRUcKPiByZWdpc3RlcnMgb2YgZWFjaCBGV0ZUIGZlYXR1cmUg YWxsb3dzIGdldF9yZWdfbGlzdF9pb2N0bCgpIHRvCj4gcHJvdmlkZSBLVk0gdXNlci1zcGFjZSBv bmx5IGF2YWlsYWJsZSBGV0ZUIGZlYXR1cmUgcmVnaXN0ZXJzLgoKWWVzLCBidXQgc2ltaWxhcmx5 IHRoZSB1c2Vyc3BhY2Ugd291bGQgYmUgZm9yYmlkZGVuIGZyb20gc2V0dGluZyBiaXRzCnRoYXQg Y2Fubm90IGJlIGV4cHJlc3NlZCBpbiBoZW52Y2ZnL2hlZGVkZWcuCgpUaGVyZSBhcmUgYWxzbyBi ZWhhdmlvcnMgd2Ugd2FudCB0byBjb25maWd1cmUgdGhhdCBkbyBub3QgaGF2ZSBhIEZXRlQKdG9n Z2xlLiAgZS5nLiB0aGUgcmVjZW50IHBhdGNoZXMgZm9yIGRlbGVnYXRpb24gb2YgaWxsZWdhbC1p bnN0cnVjdGlvbgpleGNlcHRpb25zIHRoYXQgY2hhbmdlZCB0aGUgZ3Vlc3QgYmVoYXZpb3IgLS0g c29tZW9uZSBtaWdodCB3YW50IHRvCmtlZXAgaW5jcmVtZW50aW5nIHRoZSBTQkkgUE1VIGNvdW50 ZXIsIGFuZCBzb21lb25lIHdpbGwgd2FudCB0byBmb3J3YXJkCnRoZW0gdG8gYmUgaW1wbGVtZW50 ZWQgaW4gdXNlcnNwYWNlICh3aGVuIGRldmVsb3BpbmcgYSBuZXcgZXh0ZW5zaW9uLApiZWNhdXNl IG1vc3Qgb2YgdGhlIGV4aXN0aW5nIElTQSBjYW4gc3RpbGwgYmUgYWNjZWxlcmF0ZWQgYnkgS1ZN KS4KCkZvciBnZW5lcmFsIHZpcnR1YWxpemF0aW9uLCB3ZSB3YW50IHRvIGJlIGFibGUgdG8gY29u ZmlndXJlIHRoZQpmb2xsb3dpbmcgYmVoYXZpb3IgZm9yIGVhY2ggZXhjZXB0aW9uIHRoYXQgd291 bGQgZ28gdG8gdGhlIHZpcnR1YWxpemVkCk0tbW9kZToKICAwKSBkZWxlZ2F0ZWQgdG8gdGhlIGd1 ZXN0CiAgMSkgaW1wbGVtZW50ZWQgYnkgdXNlcnNwYWNlCiAgMi1OKSBpbXBsZW1lbnRhdGlvbnMg YnkgS1ZNIChpZGVhbGx5IHplcm8gb3Igb25lKQoKV2UgY2FuIGhhdmUgbWVkZWxlZywgYW5kIGFu b3RoZXIgbWV0aG9kIHRvIGRlY2lkZSBob3cgdG8gaGFuZGxlIHRyYXBwZWQKZXhjZXB0aW9ucywg YnV0IGl0IHByb2JhYmx5IG1ha2VzIG1vcmUgc2Vuc2UgdG8gaGF2ZSBhIHBlci1leGNlcHRpb24K T05FX1JFRyB0aGF0IHNldHMgaG93IGVhY2ggZXhjZXB0aW9uIGJlaGF2ZXMuCgpUaGUgRldGVCB2 YWx1ZSBjb3VsZCBiZSBhIHBhcnQgb2YgYSBtb3JlIGdlbmVyYWwgaW50ZXJmYWNlLgoKVGhhbmtz LgoKLS0gCmt2bS1yaXNjdiBtYWlsaW5nIGxpc3QKa3ZtLXJpc2N2QGxpc3RzLmluZnJhZGVhZC5v cmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9rdm0tcmlzY3YK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6A64A32BF3B for ; Tue, 19 Aug 2025 11:43:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755603790; cv=none; b=KpmXsoSujzWtu6quZZikHm/4+K+F0FLJkpeF+R9r43XtR9WHy7Sd7rpWA4X3mcwxbpRh66cIC33UCrGdw7HdQrzEY7FjmSVGTuIuhdcWMFRT8U3VEWQQVaqvY7u6xyGM/MyW0HKGfwoIAtJDeNXsq5fYYhkW4Lf27k2QeMgBAf8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755603790; c=relaxed/simple; bh=BEkXZbKZI8TKL4ijyPDPqNlemvC4CN/UmF+QlhyIGA8=; h=Mime-Version:Content-Type:Date:Message-Id:Subject:Cc:To:From: References:In-Reply-To; b=on+ueIJmKG01VJngf2F8pm+jv9pe4rCFBPoZB/pjl3Z12290kkCdIyVZClCC/N+7lVBCotjGPZ7jfLZ4s3nzja0CtxlsFtPK2r79jtoWd/Bs2z6g91aUV0uIN9QlOsIZLL8PtFkB98l/rH9Ip0PYYR6cszfSofVLGKotrOFzARA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ventanamicro.com; spf=pass smtp.mailfrom=ventanamicro.com; dkim=pass (2048-bit key) header.d=ventanamicro.com header.i=@ventanamicro.com header.b=hDhu1/au; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ventanamicro.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ventanamicro.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ventanamicro.com header.i=@ventanamicro.com header.b="hDhu1/au" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3b9d41c0fe4so743908f8f.0 for ; Tue, 19 Aug 2025 04:43:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1755603787; x=1756208587; darn=vger.kernel.org; h=in-reply-to:references:from:to:cc:subject:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=J/0raNw155Q0fcr5A7DH7DOXoru7hdxKmPbmEOTm5zY=; b=hDhu1/auM9LL++8WDau9ZMs3myAyYC0n7Ijf3nCG4Dw25+iRmsLsICFLGNeaYnvd+6 tjeLJrfkzmrrHfuIgfKqzGlMPKIudgo/WWCvr/cAMtbE0WUMGT7Aoa3kF0XADBuPv7DM i8+hxV6aLDZpr/hEJiTpyktWafEqYInWqNSV9PXMPkjLv8WSk3mj55W/jewaSPRzf69U omnZNTwe/vQlk2uBcNU2CQ2TyblVJ4UqABcSra9qIlj/SKaM1+K/uVgOw1MsDhjJhTrX T5XUwt3TM4RWiLOx7jbGaMD3TFseL+YTMFxqgFNbRN1M1woDdrlgyZO7tF1ImaVJXD4d 2H0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755603787; x=1756208587; h=in-reply-to:references:from:to:cc:subject:message-id:date :content-transfer-encoding:mime-version:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=J/0raNw155Q0fcr5A7DH7DOXoru7hdxKmPbmEOTm5zY=; b=JwOKFmjLMI9pIJcl6+ih+tMLh+qJyCE9w0Xqm5wubmba9Udhk3NCXrFFNZr1/bck3t VZ8V75Nybtx7rDWGOFopjs71mqlMNBQZcnCezdG1OQmHoc2MglUcV5dAVPvpbMLJzY2h MGjEEgZ0XuhYnEoxc4N9UoIHuHTiDZO9nVzrONlgNhtcqEktc/Ze33beeExkentB5spy sFxf4W07ev6ETrucI2R1/o3PXigJPZzvUFLRCtbaHSEsKkRnbvkh6xx4tobVd7nALU59 B1+KmrE1nYJWlHhVpBnhkCT2339ylM/0rk1XXXL5qEEdvKyRUqjK4IXSEApZ3SClsmDc 9Y2w== X-Forwarded-Encrypted: i=1; AJvYcCVAuNRwMZ5HRuAgjOyrrsxDpSDpTBplOA1ZU7/Lo5TeV7SrFyv7ovLndKZm3RmG9nZJoSs=@vger.kernel.org X-Gm-Message-State: AOJu0Ywpo2cT8JNik96LzgvOzkpNL8kViqhlCt+cMq+CuuQ3Cg+aeT6D AB29MxoROHlhKrIxuSp7E34yi1UuvmIe8p6k/YTls04epszUohK4ghNd2LBqPbU5JSc= X-Gm-Gg: ASbGncu5UTx+ToytYIACzrs2NEblF7BJs2ou1p30sueAOq/FKwR3SdJTnHNWMsh6v+Q ZNLrLyRDzip5uPFWzm4up0PA+r8FLMVhxBS5tcudhBh8sW7nhGxDbiiHixXE1yzzfwMKsJNX51I 1G0K+ZDxBPCVkAIzypvV8HiuFy8MWqmx6nCkCcxtuKXpB/tpv7wGL5r4I0Hi9R0sGi0r7qhIWpG TDdsEZB4VL4+JX490JtRIL37Et01wLj8J9Ej4Kn7ApBsjrRj6sq9jftxowkQowuGaVcMV4NtWrA FjoY4EKEMqN7FDikvSo2Cu/yciobfuyBWS7me8aCQ5zGaNquP7+FzrNivWq9cOgHSfa8sjhXis3 LWlpdMEfTQ4cdxYL45pDllhBJyue6cA== X-Google-Smtp-Source: AGHT+IE0FoFnrqv/364y0JxojzjSjgxBxkWPcaMoaWDVaVYQ/OrVds62/XTIFpn7j8AxOXLMQWkHNw== X-Received: by 2002:a05:600c:c169:b0:459:d7c4:9e14 with SMTP id 5b1f17b1804b1-45b43e85f3bmr9440455e9.0.1755603786493; Tue, 19 Aug 2025 04:43:06 -0700 (PDT) Received: from localhost ([2a02:8308:a00c:e200:e7d6:daad:8c97:a08e]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-45a1cda0021sm207509385e9.13.2025.08.19.04.43.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Aug 2025 04:43:06 -0700 (PDT) Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Tue, 19 Aug 2025 13:43:05 +0200 Message-Id: Subject: Re: [PATCH 0/6] ONE_REG interface for SBI FWFT extension Cc: "Atish Patra" , "Palmer Dabbelt" , "Paul Walmsley" , "Alexandre Ghiti" , "Andrew Jones" , "Anup Patel" , "Paolo Bonzini" , "Shuah Khan" , , , , , , "linux-riscv" To: "Anup Patel" From: =?utf-8?q?Radim_Kr=C4=8Dm=C3=A1=C5=99?= References: <20250814155548.457172-1-apatel@ventanamicro.com> In-Reply-To: 2025-08-19T12:00:43+05:30, Anup Patel : > On Mon, Aug 18, 2025 at 3:59=E2=80=AFPM Radim Kr=C4=8Dm=C3=A1=C5=99 wrote: >> >> 2025-08-14T21:25:42+05:30, Anup Patel : >> > This series adds ONE_REG interface for SBI FWFT extension implemented >> > by KVM RISC-V. >> >> I think it would be better to ONE_REG the CSRs (medeleg/menvcfg), or at >> least expose their CSR fields (each sensible medeleg bit, PMM, ...) >> through kvm_riscv_config, than to couple this with SBI/FWFT. >> >> The controlled behavior is defined by the ISA, and userspace might want >> to configure the S-mode execution environment even when SBI/FWFT is not >> present, which is not possible with the current design. >> >> Is there a benefit in expressing the ISA model through SBI/FWFT? >> > > Exposing medeleg/menvcfg is not the right approach because a > Guest/VM does not have M-mode hence it is not appropriate to > expose m CSRs via ONE_REG interface. This also aligns > with H-extension architecture which does not virtualize M-mode. We already have mvendorid, marchid, and mipid in kvm_riscv_config. The virtualized M-mode is userspace+KVM. (KVM doesn't allow userspace to configure most things now, but I think we'll have to change that when getting ready for production.) > We already had discussions about this in the past. > > As such, we have two options. One option is to expose > hedeleg/henvcfg via kvm_riscv_config and another option > is to have a separate ONE_REG for each FWFT feature. > > Separate ONE_REG registers for each FWFT feature is better > than directly exposing hedeleg/henvcfg via ONE_REG because: > > 1) Once nested virtualization lands, we will be having separate > hedeleg/henvcfg as part of nested virtualization state of Guest > which is trap-n-emulated by KVM. The existence of hedeleg/henvcfg > in kvm_riscv_config and nested virtualization state will only create > more confusion. Right, the userspace registers for this can't be called h*. > 2) Not all bits in hedeleg/henvcfg are used for FWFT since quite > a few bits are programmed with fixed value based on KVM > implementation choices (which may change in future). Yes, we'll want to expose some to userspace. > Also, > things like set_debug_ioctl() change hedeleg at runtime > which allow KVM user space to decide who takes breakpoint > traps from Guest/VM. This is still doable. The clear hedeleg bit does not have to change the virtualized behavior -- if the guest is expecting to see breakpoint traps, then even if userspace+KVM configure the architecture to direct the traps to the hypervisor, they must then forward the breakpoints that were supposed to be delivered to the guest. > This means value saved/restored > through hedeleg/henvcfg in kvm_riscv_config becomes > specific to the kernel version and specific to host ISA features. Hedeleg/henvcfg bits do not have to be the same as userspace interface bits -- KVM always has to distinguish what the userspace wants to virtualize, and what the KVM changed for its own reasons. > 3) We anyway need to provide ONE_REG interface to > save/restore FWFT feature flags so it's better to keep the > FWFT feature value as part of the same ONE_REG interface. I think we want to have SBI in userspace (especially for single-shot ecalls like FWFT). The userspace implementation will want an interface to set the ISA bits, and it's very awkward with the proposed design. Flags can to stay, in case the userpace wants to accelerate FWFT. > 4) The availability of quite a few FWFT features is dependent > on corresponding ISA extensions so having separate ONE_REG > registers of each FWFT feature allows get_reg_list_ioctl() to > provide KVM user-space only available FWFT feature registers. Yes, but similarly the userspace would be forbidden from setting bits that cannot be expressed in henvcfg/hededeg. There are also behaviors we want to configure that do not have a FWFT toggle. e.g. the recent patches for delegation of illegal-instruction exceptions that changed the guest behavior -- someone might want to keep incrementing the SBI PMU counter, and someone will want to forward them to be implemented in userspace (when developing a new extension, because most of the existing ISA can still be accelerated by KVM). For general virtualization, we want to be able to configure the following behavior for each exception that would go to the virtualized M-mode: 0) delegated to the guest 1) implemented by userspace 2-N) implementations by KVM (ideally zero or one) We can have medeleg, and another method to decide how to handle trapped exceptions, but it probably makes more sense to have a per-exception ONE_REG that sets how each exception behaves. The FWFT value could be a part of a more general interface. Thanks. 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 F067DCA0EE6 for ; Tue, 19 Aug 2025 14:03:42 +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:In-Reply-To:References:From:To:Cc: Subject:Message-Id:Date:Mime-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uNhM7ogCd4i2NoOcblNUPlTCXwPWJ0c75gMyFA9QNMY=; b=pohgxjfszUOe7X LpLLEL4fIGlLUO86yg8n3FmcIiqfHbx2B+kOQLs9YpZWL+UVxnKxmH0yOcXP5vSn7CYQrYbTGXclt iZXOE2Uc17FRDYyoyNXvEbpawzX3W5CYPAmCvoPKDW1q1RUoh7bvpE4Qm0rum8oVhYsT08YWL8SKt A3AtZWiTH1Gl2PiSqoH4YVfULoE1McX5vDBJKaXSGrMCGYq7naqsH/bY/obW/6lStG2eirG924Hbq lVQzKgyLwRd6uXafGRVVRskJATpRdt8Jkg7tlJzrjfrVy29iFnGbEUa63FNAbEzDlmVmPIzXemmFd VO2wlDB6jWQMWpvqmx2Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uoMvz-0000000Ah1y-1NV4; Tue, 19 Aug 2025 14:03:31 +0000 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uoKk8-0000000AJys-3BzO for linux-riscv@lists.infradead.org; Tue, 19 Aug 2025 11:43:09 +0000 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3b9dc5641f9so890047f8f.1 for ; Tue, 19 Aug 2025 04:43:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1755603787; x=1756208587; darn=lists.infradead.org; h=in-reply-to:references:from:to:cc:subject:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=J/0raNw155Q0fcr5A7DH7DOXoru7hdxKmPbmEOTm5zY=; b=QVizXhEX7Tty3H8OyPC7Dw2+sK+AORVy/4SkKjKiLWwpMIFgqyqGrbxDR3o+VUC3LZ qTygIhKeZ82jrdvy10zSeY3WCyWO09llrQNNd8g1TzlfEvrvTFNuJDQNnzLnWwgIFQEg nPiWn7OzPGA7I5J3GHKJSgu3ubqOdPSuNpnCbZ/ubFSOPik68FT+oru2+RMz3ZciaaTf QiE1yruKEjKyKHzM+xRY283uaYRBE5eG2fmgZDPbado0oQKsQ10ruf0ubkGg8Wv6oagC gHa4xf5eoGNM597KnFbfjDIJ+nMmLh3QcwUPbT0cduceuptwyM9voPzuxrJhzWjdb1PA CQzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755603787; x=1756208587; h=in-reply-to:references:from:to:cc:subject:message-id:date :content-transfer-encoding:mime-version:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=J/0raNw155Q0fcr5A7DH7DOXoru7hdxKmPbmEOTm5zY=; b=LPjfhEwTblOX9nw+fPhLTuW8B16HAy08bNWPTo7jb0AFyiELZlBcXwaQobUPO89mAl cgp03444ibEvOIbDCA45++/4olyCU5q1L2ToR5NRxSpO/XkbqEFw2QHinj+oNwSgGmAB J/284fVTy2zJjhYXLRvoZ6GUHpJvzkzi4wmr+4kJrzrP3e68tNP0X0z5mtAF5sXBIX2n +WZRY5oako+ufQg4rxrBtpZpPPKf4RvNcUGGWM4Big+//h3R6fAT6Z4OJ1tQxqmbWE8b lYz5Vw3NtoHjBrtCeqZQ0VXUDoTdcE1vqcdLFZr5kg1ocYQ4sOF9+riJpa44aZpqC3k7 8BMw== X-Forwarded-Encrypted: i=1; AJvYcCV6hD3jW9AsSHIkUll99zrT08dfg0cCWqx+Qwxq/OqagBIgxiHTRt8LYQSPRAQyvgfJh1PuGwFT76oDXw==@lists.infradead.org X-Gm-Message-State: AOJu0YzagILzKUbI1yC79S/SPdnKoq82olmPj1JXBltiphAhvsj2ZUxK KrRBNgDO9GLutEeRgBpbE+RKYN0w6FxXIHJRFGDdzzsntyVJ6WrgtCYCgG/AeRTmYjs= X-Gm-Gg: ASbGncvJqiFKxEhUozi0O7MPPENkjj1xpDLnHwA4tkaI+XtbvYrrSaALRiWduSpCMrd JGUT1LEjQlvvxrrXvQGR35xYWRfkAvB2zrkdDxBfn62dZU5F/LVZShHcd8oxTxc01pOux5cHuUx VoTF1Z5yr0oLN5nNI99LVQ9wVMwebtn4NVlXOGapOomlge1+b1YbKtDzv4nZCp1TrvhU+OmTO30 BRCzF7HGmg/1jCyMdosR2+tUYQ0+PoIrEUro3YSWL9VZjAJ6Pa9zw/pNfoy9RYeiDbWTbe9Lhki mfiGu2R9OLYxnt0SbBriGXCs95+0TmY7THX5FfQR1g0lliwrBv7/FbaJXmyFzTDJVHsxOxYlcse vpsuElPPtA8b3/0z9nvCj8iWKUPn9Dg== X-Google-Smtp-Source: AGHT+IE0FoFnrqv/364y0JxojzjSjgxBxkWPcaMoaWDVaVYQ/OrVds62/XTIFpn7j8AxOXLMQWkHNw== X-Received: by 2002:a05:600c:c169:b0:459:d7c4:9e14 with SMTP id 5b1f17b1804b1-45b43e85f3bmr9440455e9.0.1755603786493; Tue, 19 Aug 2025 04:43:06 -0700 (PDT) Received: from localhost ([2a02:8308:a00c:e200:e7d6:daad:8c97:a08e]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-45a1cda0021sm207509385e9.13.2025.08.19.04.43.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Aug 2025 04:43:06 -0700 (PDT) Mime-Version: 1.0 Date: Tue, 19 Aug 2025 13:43:05 +0200 Message-Id: Subject: Re: [PATCH 0/6] ONE_REG interface for SBI FWFT extension Cc: "Atish Patra" , "Palmer Dabbelt" , "Paul Walmsley" , "Alexandre Ghiti" , "Andrew Jones" , "Anup Patel" , "Paolo Bonzini" , "Shuah Khan" , , , , , , "linux-riscv" To: "Anup Patel" From: =?utf-8?q?Radim_Kr=C4=8Dm=C3=A1=C5=99?= References: <20250814155548.457172-1-apatel@ventanamicro.com> In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250819_044308_804042_3C34F5FA X-CRM114-Status: GOOD ( 33.60 ) 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 MjAyNS0wOC0xOVQxMjowMDo0MyswNTozMCwgQW51cCBQYXRlbCA8YXBhdGVsQHZlbnRhbmFtaWNy by5jb20+Ogo+IE9uIE1vbiwgQXVnIDE4LCAyMDI1IGF0IDM6NTnigK9QTSBSYWRpbSBLcsSNbcOh xZkgPHJrcmNtYXJAdmVudGFuYW1pY3JvLmNvbT4gd3JvdGU6Cj4+Cj4+IDIwMjUtMDgtMTRUMjE6 MjU6NDIrMDU6MzAsIEFudXAgUGF0ZWwgPGFwYXRlbEB2ZW50YW5hbWljcm8uY29tPjoKPj4gPiBU aGlzIHNlcmllcyBhZGRzIE9ORV9SRUcgaW50ZXJmYWNlIGZvciBTQkkgRldGVCBleHRlbnNpb24g aW1wbGVtZW50ZWQKPj4gPiBieSBLVk0gUklTQy1WLgo+Pgo+PiBJIHRoaW5rIGl0IHdvdWxkIGJl IGJldHRlciB0byBPTkVfUkVHIHRoZSBDU1JzIChtZWRlbGVnL21lbnZjZmcpLCBvciBhdAo+PiBs ZWFzdCBleHBvc2UgdGhlaXIgQ1NSIGZpZWxkcyAoZWFjaCBzZW5zaWJsZSBtZWRlbGVnIGJpdCwg UE1NLCAuLi4pCj4+IHRocm91Z2gga3ZtX3Jpc2N2X2NvbmZpZywgdGhhbiB0byBjb3VwbGUgdGhp cyB3aXRoIFNCSS9GV0ZULgo+Pgo+PiBUaGUgY29udHJvbGxlZCBiZWhhdmlvciBpcyBkZWZpbmVk IGJ5IHRoZSBJU0EsIGFuZCB1c2Vyc3BhY2UgbWlnaHQgd2FudAo+PiB0byBjb25maWd1cmUgdGhl IFMtbW9kZSBleGVjdXRpb24gZW52aXJvbm1lbnQgZXZlbiB3aGVuIFNCSS9GV0ZUIGlzIG5vdAo+ PiBwcmVzZW50LCB3aGljaCBpcyBub3QgcG9zc2libGUgd2l0aCB0aGUgY3VycmVudCBkZXNpZ24u Cj4+Cj4+IElzIHRoZXJlIGEgYmVuZWZpdCBpbiBleHByZXNzaW5nIHRoZSBJU0EgbW9kZWwgdGhy b3VnaCBTQkkvRldGVD8KPj4KPgo+IEV4cG9zaW5nIG1lZGVsZWcvbWVudmNmZyBpcyBub3QgdGhl IHJpZ2h0IGFwcHJvYWNoIGJlY2F1c2UgYQo+IEd1ZXN0L1ZNIGRvZXMgbm90IGhhdmUgTS1tb2Rl IGhlbmNlIGl0IGlzIG5vdCBhcHByb3ByaWF0ZSB0bwo+IGV4cG9zZSBtPHh5ej4gQ1NScyB2aWEg T05FX1JFRyBpbnRlcmZhY2UuIFRoaXMgYWxzbyBhbGlnbnMKPiB3aXRoIEgtZXh0ZW5zaW9uIGFy Y2hpdGVjdHVyZSB3aGljaCBkb2VzIG5vdCB2aXJ0dWFsaXplIE0tbW9kZS4KCldlIGFscmVhZHkg aGF2ZSBtdmVuZG9yaWQsIG1hcmNoaWQsIGFuZCBtaXBpZCBpbiBrdm1fcmlzY3ZfY29uZmlnLgoK VGhlIHZpcnR1YWxpemVkIE0tbW9kZSBpcyB1c2Vyc3BhY2UrS1ZNLiAgKEtWTSBkb2Vzbid0IGFs bG93IHVzZXJzcGFjZQp0byBjb25maWd1cmUgbW9zdCB0aGluZ3Mgbm93LCBidXQgSSB0aGluayB3 ZSdsbCBoYXZlIHRvIGNoYW5nZSB0aGF0IHdoZW4KZ2V0dGluZyByZWFkeSBmb3IgcHJvZHVjdGlv bi4pCgo+IFdlIGFscmVhZHkgaGFkIGRpc2N1c3Npb25zIGFib3V0IHRoaXMgaW4gdGhlIHBhc3Qu Cj4KPiBBcyBzdWNoLCB3ZSBoYXZlIHR3byBvcHRpb25zLiBPbmUgb3B0aW9uIGlzIHRvIGV4cG9z ZQo+IGhlZGVsZWcvaGVudmNmZyB2aWEga3ZtX3Jpc2N2X2NvbmZpZyBhbmQgYW5vdGhlciBvcHRp b24KPiBpcyB0byBoYXZlIGEgc2VwYXJhdGUgT05FX1JFRyBmb3IgZWFjaCBGV0ZUIGZlYXR1cmUu Cj4KPiBTZXBhcmF0ZSBPTkVfUkVHIHJlZ2lzdGVycyBmb3IgZWFjaCBGV0ZUIGZlYXR1cmUgaXMg YmV0dGVyCj4gdGhhbiBkaXJlY3RseSBleHBvc2luZyBoZWRlbGVnL2hlbnZjZmcgdmlhIE9ORV9S RUcgYmVjYXVzZToKPgo+IDEpIE9uY2UgbmVzdGVkIHZpcnR1YWxpemF0aW9uIGxhbmRzLCB3ZSB3 aWxsIGJlIGhhdmluZyBzZXBhcmF0ZQo+IGhlZGVsZWcvaGVudmNmZyBhcyBwYXJ0IG9mIG5lc3Rl ZCB2aXJ0dWFsaXphdGlvbiBzdGF0ZSBvZiBHdWVzdAo+IHdoaWNoIGlzIHRyYXAtbi1lbXVsYXRl ZCBieSBLVk0uIFRoZSBleGlzdGVuY2Ugb2YgaGVkZWxlZy9oZW52Y2ZnCj4gaW4ga3ZtX3Jpc2N2 X2NvbmZpZyBhbmQgbmVzdGVkIHZpcnR1YWxpemF0aW9uIHN0YXRlIHdpbGwgb25seSBjcmVhdGUK PiBtb3JlIGNvbmZ1c2lvbi4KClJpZ2h0LCB0aGUgdXNlcnNwYWNlIHJlZ2lzdGVycyBmb3IgdGhp cyBjYW4ndCBiZSBjYWxsZWQgaCouCgo+IDIpIE5vdCBhbGwgYml0cyBpbiBoZWRlbGVnL2hlbnZj ZmcgYXJlIHVzZWQgZm9yIEZXRlQgc2luY2UgcXVpdGUKPiBhIGZldyBiaXRzIGFyZSBwcm9ncmFt bWVkIHdpdGggZml4ZWQgdmFsdWUgYmFzZWQgb24gS1ZNCj4gaW1wbGVtZW50YXRpb24gY2hvaWNl cyAod2hpY2ggbWF5IGNoYW5nZSBpbiBmdXR1cmUpLgoKWWVzLCB3ZSdsbCB3YW50IHRvIGV4cG9z ZSBzb21lIHRvIHVzZXJzcGFjZS4KCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBbHNvLAo+IHRoaW5ncyBsaWtlIHNldF9kZWJ1Z19pb2N0bCgp IGNoYW5nZSBoZWRlbGVnIGF0IHJ1bnRpbWUKPiB3aGljaCBhbGxvdyBLVk0gdXNlciBzcGFjZSB0 byBkZWNpZGUgd2hvIHRha2VzIGJyZWFrcG9pbnQKPiB0cmFwcyBmcm9tIEd1ZXN0L1ZNLgoKVGhp cyBpcyBzdGlsbCBkb2FibGUuICBUaGUgY2xlYXIgaGVkZWxlZyBiaXQgZG9lcyBub3QgaGF2ZSB0 byBjaGFuZ2UgdGhlCnZpcnR1YWxpemVkIGJlaGF2aW9yIC0tIGlmIHRoZSBndWVzdCBpcyBleHBl Y3RpbmcgdG8gc2VlIGJyZWFrcG9pbnQKdHJhcHMsIHRoZW4gZXZlbiBpZiB1c2Vyc3BhY2UrS1ZN IGNvbmZpZ3VyZSB0aGUgYXJjaGl0ZWN0dXJlIHRvIGRpcmVjdAp0aGUgdHJhcHMgdG8gdGhlIGh5 cGVydmlzb3IsIHRoZXkgbXVzdCB0aGVuIGZvcndhcmQgdGhlIGJyZWFrcG9pbnRzIHRoYXQKd2Vy ZSBzdXBwb3NlZCB0byBiZSBkZWxpdmVyZWQgdG8gdGhlIGd1ZXN0LgoKPiAgICAgICAgICAgICAg ICAgICAgICBUaGlzIG1lYW5zIHZhbHVlIHNhdmVkL3Jlc3RvcmVkCj4gdGhyb3VnaCBoZWRlbGVn L2hlbnZjZmcgaW4ga3ZtX3Jpc2N2X2NvbmZpZyBiZWNvbWVzCj4gc3BlY2lmaWMgdG8gdGhlIGtl cm5lbCB2ZXJzaW9uIGFuZCBzcGVjaWZpYyB0byBob3N0IElTQSBmZWF0dXJlcy4KCkhlZGVsZWcv aGVudmNmZyBiaXRzIGRvIG5vdCBoYXZlIHRvIGJlIHRoZSBzYW1lIGFzIHVzZXJzcGFjZSBpbnRl cmZhY2UKYml0cyAtLSBLVk0gYWx3YXlzIGhhcyB0byBkaXN0aW5ndWlzaCB3aGF0IHRoZSB1c2Vy c3BhY2Ugd2FudHMgdG8KdmlydHVhbGl6ZSwgYW5kIHdoYXQgdGhlIEtWTSBjaGFuZ2VkIGZvciBp dHMgb3duIHJlYXNvbnMuCgo+IDMpIFdlIGFueXdheSBuZWVkIHRvIHByb3ZpZGUgT05FX1JFRyBp bnRlcmZhY2UgdG8KPiBzYXZlL3Jlc3RvcmUgRldGVCBmZWF0dXJlIGZsYWdzIHNvIGl0J3MgYmV0 dGVyIHRvIGtlZXAgdGhlCj4gRldGVCBmZWF0dXJlIHZhbHVlIGFzIHBhcnQgb2YgdGhlIHNhbWUg T05FX1JFRyBpbnRlcmZhY2UuCgpJIHRoaW5rIHdlIHdhbnQgdG8gaGF2ZSBTQkkgaW4gdXNlcnNw YWNlIChlc3BlY2lhbGx5IGZvciBzaW5nbGUtc2hvdAplY2FsbHMgbGlrZSBGV0ZUKS4gIFRoZSB1 c2Vyc3BhY2UgaW1wbGVtZW50YXRpb24gd2lsbCB3YW50IGFuIGludGVyZmFjZQp0byBzZXQgdGhl IElTQSBiaXRzLCBhbmQgaXQncyB2ZXJ5IGF3a3dhcmQgd2l0aCB0aGUgcHJvcG9zZWQgZGVzaWdu LgoKRmxhZ3MgY2FuIHRvIHN0YXksIGluIGNhc2UgdGhlIHVzZXJwYWNlIHdhbnRzIHRvIGFjY2Vs ZXJhdGUgRldGVC4KCj4gNCkgVGhlIGF2YWlsYWJpbGl0eSBvZiBxdWl0ZSBhIGZldyBGV0ZUIGZl YXR1cmVzIGlzIGRlcGVuZGVudAo+IG9uIGNvcnJlc3BvbmRpbmcgSVNBIGV4dGVuc2lvbnMgc28g aGF2aW5nIHNlcGFyYXRlIE9ORV9SRUcKPiByZWdpc3RlcnMgb2YgZWFjaCBGV0ZUIGZlYXR1cmUg YWxsb3dzIGdldF9yZWdfbGlzdF9pb2N0bCgpIHRvCj4gcHJvdmlkZSBLVk0gdXNlci1zcGFjZSBv bmx5IGF2YWlsYWJsZSBGV0ZUIGZlYXR1cmUgcmVnaXN0ZXJzLgoKWWVzLCBidXQgc2ltaWxhcmx5 IHRoZSB1c2Vyc3BhY2Ugd291bGQgYmUgZm9yYmlkZGVuIGZyb20gc2V0dGluZyBiaXRzCnRoYXQg Y2Fubm90IGJlIGV4cHJlc3NlZCBpbiBoZW52Y2ZnL2hlZGVkZWcuCgpUaGVyZSBhcmUgYWxzbyBi ZWhhdmlvcnMgd2Ugd2FudCB0byBjb25maWd1cmUgdGhhdCBkbyBub3QgaGF2ZSBhIEZXRlQKdG9n Z2xlLiAgZS5nLiB0aGUgcmVjZW50IHBhdGNoZXMgZm9yIGRlbGVnYXRpb24gb2YgaWxsZWdhbC1p bnN0cnVjdGlvbgpleGNlcHRpb25zIHRoYXQgY2hhbmdlZCB0aGUgZ3Vlc3QgYmVoYXZpb3IgLS0g c29tZW9uZSBtaWdodCB3YW50IHRvCmtlZXAgaW5jcmVtZW50aW5nIHRoZSBTQkkgUE1VIGNvdW50 ZXIsIGFuZCBzb21lb25lIHdpbGwgd2FudCB0byBmb3J3YXJkCnRoZW0gdG8gYmUgaW1wbGVtZW50 ZWQgaW4gdXNlcnNwYWNlICh3aGVuIGRldmVsb3BpbmcgYSBuZXcgZXh0ZW5zaW9uLApiZWNhdXNl IG1vc3Qgb2YgdGhlIGV4aXN0aW5nIElTQSBjYW4gc3RpbGwgYmUgYWNjZWxlcmF0ZWQgYnkgS1ZN KS4KCkZvciBnZW5lcmFsIHZpcnR1YWxpemF0aW9uLCB3ZSB3YW50IHRvIGJlIGFibGUgdG8gY29u ZmlndXJlIHRoZQpmb2xsb3dpbmcgYmVoYXZpb3IgZm9yIGVhY2ggZXhjZXB0aW9uIHRoYXQgd291 bGQgZ28gdG8gdGhlIHZpcnR1YWxpemVkCk0tbW9kZToKICAwKSBkZWxlZ2F0ZWQgdG8gdGhlIGd1 ZXN0CiAgMSkgaW1wbGVtZW50ZWQgYnkgdXNlcnNwYWNlCiAgMi1OKSBpbXBsZW1lbnRhdGlvbnMg YnkgS1ZNIChpZGVhbGx5IHplcm8gb3Igb25lKQoKV2UgY2FuIGhhdmUgbWVkZWxlZywgYW5kIGFu b3RoZXIgbWV0aG9kIHRvIGRlY2lkZSBob3cgdG8gaGFuZGxlIHRyYXBwZWQKZXhjZXB0aW9ucywg YnV0IGl0IHByb2JhYmx5IG1ha2VzIG1vcmUgc2Vuc2UgdG8gaGF2ZSBhIHBlci1leGNlcHRpb24K T05FX1JFRyB0aGF0IHNldHMgaG93IGVhY2ggZXhjZXB0aW9uIGJlaGF2ZXMuCgpUaGUgRldGVCB2 YWx1ZSBjb3VsZCBiZSBhIHBhcnQgb2YgYSBtb3JlIGdlbmVyYWwgaW50ZXJmYWNlLgoKVGhhbmtz LgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt cmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=