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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74E14ECAAD8 for ; Tue, 20 Sep 2022 13:10:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 93373940008; Tue, 20 Sep 2022 09:10:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8E4D6940007; Tue, 20 Sep 2022 09:10:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7840A940008; Tue, 20 Sep 2022 09:10:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 6937C940007 for ; Tue, 20 Sep 2022 09:10:45 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 2DDE5AB335 for ; Tue, 20 Sep 2022 13:10:45 +0000 (UTC) X-FDA: 79932498450.19.54CABCC Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197]) by imf24.hostedemail.com (Postfix) with ESMTP id A9396180006 for ; Tue, 20 Sep 2022 13:10:43 +0000 (UTC) Received: from zn.tnic (p200300ea9733e791329c23fffea6a903.dip0.t-ipconnect.de [IPv6:2003:ea:9733:e791:329c:23ff:fea6:a903]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 448AB1EC00F4; Tue, 20 Sep 2022 15:03:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim; t=1663679037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references; bh=+zoLD08Q5xMXhmLe/ulvlQp2CLhM1jVc65D6yyOhzHY=; b=lUXGIVb8ZMDU51Aerv1PBpnFjCxrUMifge5U4PnHOLas5QWK0qmqEZghP7SEf+XTGRS1IU 5DLN9vUNBc+R7WzqDShMJHUk23alL+UrvtpIaMw0NrmZEZR+mdxg7dq7Iv0aoPka2DeZ+V ogPzt/KKjIlUWGwSRjqYOtNSknzMZbQ= Date: Tue, 20 Sep 2022 15:03:53 +0200 From: Borislav Petkov To: Ashish Kalra Cc: x86@kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-crypto@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, jroedel@suse.de, thomas.lendacky@amd.com, hpa@zytor.com, ardb@kernel.org, pbonzini@redhat.com, seanjc@google.com, vkuznets@redhat.com, jmattson@google.com, luto@kernel.org, dave.hansen@linux.intel.com, slp@redhat.com, pgonda@google.com, peterz@infradead.org, srinivas.pandruvada@linux.intel.com, rientjes@google.com, dovmurik@linux.ibm.com, tobin@ibm.com, michael.roth@amd.com, vbabka@suse.cz, kirill@shutemov.name, ak@linux.intel.com, tony.luck@intel.com, marcorr@google.com, sathyanarayanan.kuppuswamy@linux.intel.com, alpergun@google.com, dgilbert@redhat.com, jarkko@kernel.org Subject: Re: [PATCH Part2 v6 11/49] crypto:ccp: Define the SEV-SNP commands Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1663679444; a=rsa-sha256; cv=none; b=2cdKh/8SJfF9u/mjJdS/0BmW+dpzHl5DsN80DAavQeBxPj0rceN2Y4ScN53fDp4rK5rBlQ 9REj13oDvm7ehioYPogSr0S/TvVGBxHpcapdjXyV4BENjcq/trTact/54+00+0Maiuafin oAIx5ppnIIYCebBdkvaWqdTDyGlTRZM= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=alien8.de header.s=dkim header.b=lUXGIVb8; dmarc=pass (policy=none) header.from=alien8.de; spf=pass (imf24.hostedemail.com: domain of bp@alien8.de designates 5.9.137.197 as permitted sender) smtp.mailfrom=bp@alien8.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1663679444; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=+zoLD08Q5xMXhmLe/ulvlQp2CLhM1jVc65D6yyOhzHY=; b=5f+oIIvTxfjnit4rZIeFsRfSEGYyiZJoiqC9LU1GQMNrwAH+3W+tf2hyeoDAtSPrhqy1Y9 ZtXw4VZtNriDnC+zqu4rTJs9acBu/iniacJIN6sZ36mR27aUHwr7kxp3plmLuIDMj1QvkS Mh/p2IqdPAu7Hoyk3DDLutG3FofUSVM= X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: A9396180006 X-Stat-Signature: rxhyccsuhetprn5y66cg43h5b7f3rnh3 Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=alien8.de header.s=dkim header.b=lUXGIVb8; dmarc=pass (policy=none) header.from=alien8.de; spf=pass (imf24.hostedemail.com: domain of bp@alien8.de designates 5.9.137.197 as permitted sender) smtp.mailfrom=bp@alien8.de X-Rspam-User: X-HE-Tag: 1663679443-938421 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Mon, Jun 20, 2022 at 11:04:14PM +0000, Ashish Kalra wrote: > +/** > + * struct sev_data_snp_platform_status_buf - SNP_PLATFORM_STATUS command params > + * > + * @address: physical address where the status should be copied > + */ > +struct sev_data_snp_platform_status_buf { > + u64 status_paddr; /* In */ > +} __packed; > + > +/** > + * struct sev_data_snp_download_firmware - SNP_DOWNLOAD_FIRMWARE command params > + * > + * @address: physical address of firmware image > + * @len: len of the firmware image > + */ > +struct sev_data_snp_download_firmware { > + u64 address; /* In */ > + u32 len; /* In */ > +} __packed; > + > +/** > + * struct sev_data_snp_gctx_create - SNP_GCTX_CREATE command params > + * > + * @gctx_paddr: system physical address of the page donated to firmware by > + * the hypervisor to contain the guest context. > + */ > +struct sev_data_snp_gctx_create { > + u64 gctx_paddr; /* In */ > +} __packed; So some of those structs have the same layout. Let's unify them pls. I.e., for sev_data_send_finish, sev_data_send_cancel, sev_data_receive_finish you do struct sev_data_tx { u32 handle; /* In */ } __packed; For sev_data_snp_platform_status_buf, sev_data_snp_gctx_create, sev_data_snp_decommission and all those others who are a single u64, you use a single struct sev_data_addr { u64 gctx_paddr; /* In */ } __packed; so that we don't have gazillion structs all of different names but a lot of them identical in content. ... > +/** > + * struct sev_data_snp_launch_finish - SNP_LAUNCH_FINISH command params > + * > + * @gctx_addr: system pphysical address of guest context page ^^^^^^^^^ physical > + */ > +struct sev_data_snp_launch_finish { > + u64 gctx_paddr; > + u64 id_block_paddr; > + u64 id_auth_paddr; > + u8 id_block_en:1; > + u8 auth_key_en:1; > + u64 rsvd:62; > + u8 host_data[32]; > +} __packed; > + > +/** > + * struct sev_data_snp_guest_status - SNP_GUEST_STATUS command params > + * > + * @gctx_paddr: system physical address of guest context page > + * @address: system physical address of guest status page > + */ > +struct sev_data_snp_guest_status { > + u64 gctx_paddr; > + u64 address; > +} __packed; > + > +/** > + * struct sev_data_snp_page_reclaim - SNP_PAGE_RECLAIM command params > + * > + * @paddr: system physical address of page to be claimed. The BIT0 indicate > + * the page size. 0h indicates 4 kB and 1h indicates 2 MB page. > + */ > +struct sev_data_snp_page_reclaim { > + u64 paddr; > +} __packed; > + > +/** > + * struct sev_data_snp_page_unsmash - SNP_PAGE_UNMASH command params > + * > + * @paddr: system physical address of page to be unmashed. The BIT0 indicate Is "BIT0" the 0th bit in the address? This needs to be spelled out explicitly. also, s/unmash/unsmash/gi Also, FW SPEC says bits 11:0 are MBZ. So I'm guessing bit 0 is being cleared before sending it to sw. I guess I'll see that later. Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette