From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751683AbdJXSkm (ORCPT ); Tue, 24 Oct 2017 14:40:42 -0400 Received: from mail-by2nam01on0052.outbound.protection.outlook.com ([104.47.34.52]:64100 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750908AbdJXSkj (ORCPT ); Tue, 24 Oct 2017 14:40:39 -0400 Subject: Re: [Part2 PATCH v6 10/38] crypto: ccp: Define SEV userspace ioctl and command id To: Brijesh Singh , kvm@vger.kernel.org Cc: bp@alien8.de, Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Borislav Petkov , Herbert Xu , Tom Lendacky , linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org References: <20171020023413.122280-1-brijesh.singh@amd.com> <20171020023413.122280-11-brijesh.singh@amd.com> From: Gary R Hook Message-ID: <6172bd98-f97f-164e-51e6-a1ac7579ead0@amd.com> Date: Tue, 24 Oct 2017 13:40:31 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171020023413.122280-11-brijesh.singh@amd.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR08CA0061.namprd08.prod.outlook.com (10.172.144.23) To MWHPR12MB1326.namprd12.prod.outlook.com (10.169.205.139) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6de79d55-68e7-426c-5762-08d51b0eb809 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603231);SRVR:MWHPR12MB1326; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1326;3:0RN1jDyoF8E6KLJkRhBkKI5snuNgUoRJYBAqFpPINXLLpUrbzgZf8z+FRa996mlsXjRDROuIMDVr65H8taKvwP3fgTgXXyMUNnq3uYHr0ozyEmvAT8M/dPUo5r3nmalFVn7bmnuijWwFXaVERynTIO7oWXsi56kXyQytyBuILQfZN4xYpp9VpgwSouqTVsu319pdjSF5q5yMDSiRwx7bFOSei5094MaQJQ1LJcp+FW/ij0wUtUbrzHrtXJEUmgTA;25:y3opjjQYYDzH+ymm6LTawu5Bn1QnDxQv03QDNelWyeuYAK/b9Yvc4XZk8+IJDMeyCIrLURag06OoUqrJk8JTVIHFBe//QQziL0p10WfT/jlMzfcSSaOQ9f0KdsbqBNRr50PiDB8lO8IHf8VMpcE8iWnkh4GeQ0/ORDZaKrjQqoIdy+o1NefbvLp5zjttSwFlSWaeAIgbIeFrCaMAfJwtZPDULW2nCawg1dllh9UmxzJ7wS6hNHaP5XPkrj0QfEw3a/fE1FkYVlFyQGYRE46n6Orc/4wE8ZV8t1s7mZ4pzM6hCu6WhdKAV59Qlqi3w5ZovJPTQmbwlC5VmpYe0j1+Gg==;31:7R/ag9TSZMiD8RmCqnTrr48mZGlud4S39ryjWPTaGhHaisWeDxek+cGwLUoNIwrQtoIb5fgXcnxih3BJ9BzVAgKJzOL0zhv+oowPJz89SMMfFYo6I95cHk5VGvvj77IYy71A2t/MMlo2YmP4Htkb1FGw0/Hs1JOUBbosffLFs1+T+IEwNDVpzYbPgpMkpK1RWTu8JX2T6E1GqR27lAl2scaQHzjTVa49eokt6aHHWis= X-MS-TrafficTypeDiagnostic: MWHPR12MB1326: X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1326;20:LXcKInFQf3AyrMAv4XDKg5XyBmW9NS7WTP0XEfCm3eTu6zSE01qidgKS+eLMeSwBY8vrCuVEajut237f4JSP5BrAphA8azkRVEXVQJl5ubSEMeLZ7UceO1bdignz0QUI14MKYtPMmgjogOU1JFXceds9Q6yMUfsk7rzfWhG9zuB+lhV/BmLu7N/u6ahGGsJzAgc5/Uf43Djk1Hoyqd/x1D4/5slrRfC85oD3vloKwongJBizTu6aqKDK3pj9ouPmcW6X9Ye4twJFd4kwkQMdYf3JvV5ebYrbExeVysN7qTVZyqhtc7SwHskjviRSAQl7HG8r8HJfhj5iXTLf5cDzFaLUouKgPunZvroxQbx1D5ghYela5pjSv/SarIb1fzy5NbX9EECzPOlgNNBDhTOd54Ag8wXJ691SsifDNVodgl3IShY5gam1Ax+igq6GHH7dX3EP0vebvRhNmYamlPDjpxLktAhGalQL/VWQy4nAGCnjjIGEZ/KTCZDKUmAslha6;4:AQeOVAoyjnUnNhVTNJZ9+hkXucG9qnYeGtJYc8m7rYx/CndqJuYaGm38NH8uFxUypD4fuxz/naqlBwb7YdFCyMkvxBygnkqnaZ/Mq6HokYFAjGykckC0Z5SBWpPv6ZH1atI2rEWK5sL2CYgK2L5iq3tGlobqdYpizkGSTeCWbEZYKKDfNVJxoS9GSRQmnS2PF1uj6/vgXYQ2jZmhDHsTmj5GLt0VV+gFQRqL3BiHEkkWm418vNv4JFtJL9bpbVCvT3umWpESFSky83HxdjfRhSeo92AciuUw72lDdOyvKVrOVhOdinwEXyCtsuF8EwsY8cTtRklDc/+u+4lK+l5Fyw== X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(3231020)(3002001)(93006095)(93001095)(6055026)(6041248)(20161123562025)(20161123558100)(20161123560025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:MWHPR12MB1326;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:MWHPR12MB1326; X-Forefront-PRVS: 047001DADA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(979002)(6009001)(6049001)(39860400002)(376002)(346002)(189002)(24454002)(199003)(33646002)(6666003)(81156014)(81166006)(5660300001)(8676002)(2950100002)(316002)(2870700001)(6116002)(54906003)(16526018)(64126003)(58126008)(966005)(36756003)(106356001)(54356999)(83506002)(16576012)(105586002)(478600001)(4326008)(31686004)(72206003)(101416001)(8936002)(76176999)(50986999)(189998001)(50466002)(23676002)(66066001)(7736002)(65826007)(6246003)(53546010)(53936002)(25786009)(86362001)(6486002)(305945005)(90366009)(77096006)(6306002)(2906002)(65806001)(229853002)(65956001)(68736007)(47776003)(31696002)(3846002)(97736004)(2004002)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1326;H:[10.236.19.127];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Gary.Hook@amd.com; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMzI2OzIzOmhPQ1lKQUY5UXJSdHpFK0hWeThwRGQ4cjVI?= =?utf-8?B?NVJsWWo0UnFDbVBNRE1CdkgyUmYyTFAxRzVTQkVjVTBPNFRqd2NXNjc4SThx?= =?utf-8?B?cFNaYVFGNUtsOHI4d25rU3ZCdDRseG1BOHk2cldHbjU1TzRkY1BML3FJZHRX?= =?utf-8?B?VWxjNHR5NjJKRnJWQ3VzNjYzRkxwWTYwc0NraTFocm9wbzZQS2RKTWJReTFW?= =?utf-8?B?YWkvVldVK3ZYQzB4R3FCYXBPUldiZHZXdW9nMm9Vd29Lemk0MnFjZklaK1ZQ?= =?utf-8?B?OElSMkNyQml0M2VIeTN2Qmw4dnovV0U4TG1SWUkyUzZ2cTdvS0hOclgxZ25j?= =?utf-8?B?VlFuekh0Ym4rVTR5aWM2TExKMjRYd1VwSUFieU9hbFEvbW5vQzQ4WnUzbmd3?= =?utf-8?B?OEQvQnZRa3hlTWVHN0lFaGtSSUpYem00QjVEUkxJSmRSenVma3JQUUxhUkt5?= =?utf-8?B?S1YzQ1hyTVFIZFV6Und1MUdjeDZ5aDQ4L2NyRFkrM3d0VnhuNGlvaHpoZEg2?= =?utf-8?B?RU5EYWJFanRZUjk1UzU0d1lVcGhBeFFEQ3d3OXhiN3FxUEVXNHdheVdIRlAw?= =?utf-8?B?WW5zYUx5S09ENndSM3BLMHE2dE9YV2xzZktPdHhPaGtSWlZxRW5PTHZQZy9n?= =?utf-8?B?MnlVazZUS1RVZ0FMc28waDNnQUkwV21lTk9MRzdHTDY5RVlidnN0MTJRVW4z?= =?utf-8?B?S20zV0lDdHRvQmdwdFVHU1ltR3hDbE54S0t1RnZiS284UlRXMFNOT2pyVVRx?= =?utf-8?B?NjB6MGV3Q3BzS0VFNER1Q0QyalF1Zjh6amVQOVBwZVFqNlE1Z2FzR203Rml5?= =?utf-8?B?QkZDZTlUbjJ4TVFkT1c2V0JyaUhuTUIycFpkK0docHJpcHFVSzd5cE1DN3BZ?= =?utf-8?B?L2hFNnh1Mm8rb2tMcXNXWTVoandyQ1lQU0xhZ2VIQlpuZU0xUHhrOUZmdkli?= =?utf-8?B?TGRPdEpPOTY2ZmNTR3FEbzlCS0xFOG9nVjRoWFkxR2FrZ0JwNFBWbUhDY29o?= =?utf-8?B?cGV2a1RsS0JnS3hOOFRvb2VqS1lkU21KTGYzdTQ0Wmo3T0pqL2w4RUFjcGU1?= =?utf-8?B?Q3N6SHlkTENmK1B2Yjc1Qm1uZmdPamVTNXpIYmNiQmN0NlgyRkptUVA0ZTg5?= =?utf-8?B?UkVTVytnM0R3VWZzSll6OU1xa2FEQkJQK2hJSWNsRlhEN3ZkT0Q4T0xYYWxG?= =?utf-8?B?anhOQ1d4WGViQVh2LzZqL0l2a2p3ZnduNjZLNjNTc0dLUDFnQlpuSnduRjhk?= =?utf-8?B?MnVqdmpyMWlPWmNNNk51TWZpQk1EMEpCY2VCUDlmaDVjSmZaNXlSWXoxbDVC?= =?utf-8?B?WjhJL1M0VUp3ckt1d2pVdDdCOTk2SFVIRit2WUIwSnB4OEY0Z3R6TTNmVnNa?= =?utf-8?B?d25ETTNhcFZLY1JnTm1ZVUUrTzlCNTNjV1FiS2FjbGlWTjduYkFTUDcrU0Nh?= =?utf-8?B?SGRBRjByQUsvNlQwNW5CQkgzVitkVHZINzhRQXRoU1l3YUpXdERVRkpIdVhk?= =?utf-8?B?UG1ISkpHTklvUW9ubjY4TjJaaERhK0dqUmYva0djSW1SWU5kaGdjb1NiZmJw?= =?utf-8?B?ZExKbkp2VXJKV1RPTXlONDNXWW9iS05CNDBlcHRUUFJlSDRjNTJIOUtSTnRC?= =?utf-8?B?OUx1S2laOFdFbEp1TzJqaGNpN3Yza0RBczgxeldzS2lqbmVyaHpRblBnejdv?= =?utf-8?B?OFQ4c25qR1pRbXZuMmtQeEEzdjkxVmcvTnRoS2ZaVDdvWE0wenFhRWJ5WW9E?= =?utf-8?B?eGxoRDVlQXZrYmsxQzQwUVdBRkx4OGpPYW5STG8yNWRGelI0MWRtU3RCbmlL?= =?utf-8?B?cklLY08wSkQvWDREdW5zN0w4LzBPVGdjbVZkNmpVNHNLR1U1OEV3WGIzR0tS?= =?utf-8?B?RWZ6aHhicDRtZEFOTVZsTEpmcnE2M3pXT3hVRWVmeEsvNjRDM25VRmFqNGZl?= =?utf-8?B?L2pqL1Aza2hsYzhKU3hPcXZBUUlNbENjWHVvMlpHV3FGMzNnWXN3RVNScUdo?= =?utf-8?B?RE9vUlpxWTRVOHRYSWI1MngwUWp2dHFtbytwWkxMZ2dCcDlaWDdzaFVSb1R6?= =?utf-8?Q?qo2XakDgdyyBkUxLxEaGBGPCS?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1326;6:dNUge/s2162tG7agWov5+NHz/k00gObHeUsPTimCIyUKK4lQlvPJrMCf01kG4TvizJhotsMqUCWkcNaf0Cm2M4TRlWhr+R0DYtNLzWvbRjOfIZ74FTcmLC9vhH657QcbMJvJF+JPLhATSyP3oKS+4cP6iVIgKVLkNhYCUalwMVTyevCjnFJjg3NaflsWIl5diesjmrW8MNttXGYpTGK5Pr09Xs2wUUCsjNCa2T/UVtlWtgA1qN/Y8dg4N8Mf5GBSpB3pOOKS03M7shsJfBFYnB5Ix7xRgT8zbPw41RLfU0W/exhTWNyeNMH674qV7wk0QUhE/l4Nl9uuvDRLD4jirw==;5:da2gQHYuXaXl9wpAQ8TLNUQaYq5MIkv6x1L44zhVbLL0/qYn3ULQW4ZodDY4dq2WoBRWmDBLa+rPWSuRvBUAxfSeOH+Q8UFStHFyHgNs+KS6eQhD2xoFTy1s7qxI4NS+vUsfOR+gKBkeJwQYWfiARg==;24:DNwzV5MFb2rodyGrjT/cFZpB/HvenAc7i//mbX0G36QuaGMHlyDtRTP3JOcNz74E2fjqSlcVFNf7ZPRFg9ARNmQtQE4CI6o+M1gOLFBy33M=;7:kcmeL+Oo7TiCP1dghkZUbbC4FSr8R5mR4xjn89FXnhAU8y6HgHWXHVAcy8ss0y5cOAcANx9vNmQ8V6siGF9ahjFSyuHqffWDVdw4b173dgR78yAKrdWIPTcmExFHLMytVwbbYDLeRhYiUiH9dZMTlnFh5FdKLJeClZc7PRrCHoSKt/8mfHlPN15mj1qCDlVWlOM7K7ZlgpKnqjC1hWrv6iRs4H0kkelN130uwaLsHYY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1326;20:x7ExmPNniAd+6jfQX9VRonGWJJHqT/gIOEKXvH5f4airPfrN6nc1aQL/GDk/oBi3EDXUHKUfIHRoC0J60Quh0krCBBML/DdsSTwWY1pn/XvwdFp67BjDiXREK+STbbltkI5V+SkWzjiNHmpGf5KK+EZa7oSMoPycj0so8f0Jx1SNMsA7yvlKN8k1qV/SFWqHNhcnKakeuuSXSxdc76JMD1Xqhnrt2UPm9gCYAq0SzaevbUptBg5AGaSROptGTi6C X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2017 18:40:35.9998 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6de79d55-68e7-426c-5762-08d51b0eb809 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1326 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/19/2017 09:33 PM, Brijesh Singh wrote: > Add a include file which defines the ioctl and command id used for > issuing SEV platform management specific commands. > > Cc: Paolo Bonzini > Cc: "Radim Krčmář" > Cc: Borislav Petkov > Cc: Herbert Xu > Cc: Gary Hook > Cc: Tom Lendacky > Cc: linux-crypto@vger.kernel.org > Cc: kvm@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Improvements-by: Borislav Petkov > Signed-off-by: Brijesh Singh > Reviewed-by: Borislav Petkov Acked-by: Gary R Hook > --- > include/uapi/linux/psp-sev.h | 113 +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 113 insertions(+) > create mode 100644 include/uapi/linux/psp-sev.h > > diff --git a/include/uapi/linux/psp-sev.h b/include/uapi/linux/psp-sev.h > new file mode 100644 > index 000000000000..1dd98ba4ff22 > --- /dev/null > +++ b/include/uapi/linux/psp-sev.h > @@ -0,0 +1,113 @@ > +/* > + * Userspace interface for AMD Secure Encrypted Virtualization (SEV) > + * platform management commands. > + * > + * Copyright (C) 2016-2017 Advanced Micro Devices, Inc. > + * > + * Author: Brijesh Singh > + * > + * SEV spec 0.14 is available at: > + * http://support.amd.com/TechDocs/55766_SEV-KM%20API_Specification.pdf > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#ifndef __PSP_SEV_USER_H__ > +#define __PSP_SEV_USER_H__ > + > +#include > + > +/** > + * SEV platform commands > + */ > +enum { > + SEV_FACTORY_RESET = 0, > + SEV_PLATFORM_STATUS, > + SEV_PEK_GEN, > + SEV_PEK_CSR, > + SEV_PDH_GEN, > + SEV_PDH_CERT_EXPORT, > + SEV_PEK_CERT_IMPORT, > + > + SEV_MAX, > +}; > + > +/** > + * struct sev_user_data_status - PLATFORM_STATUS command parameters > + * > + * @major: major API version > + * @minor: minor API version > + * @state: platform state > + * @flags: platform config flags > + * @build: firmware build id for API version > + * @guest_count: number of active guests > + */ > +struct sev_user_data_status { > + __u8 api_major; /* Out */ > + __u8 api_minor; /* Out */ > + __u8 state; /* Out */ > + __u32 flags; /* Out */ > + __u8 build; /* Out */ > + __u32 guest_count; /* Out */ > +} __packed; > + > +/** > + * struct sev_user_data_pek_csr - PEK_CSR command parameters > + * > + * @address: PEK certificate chain > + * @length: length of certificate > + */ > +struct sev_user_data_pek_csr { > + __u64 address; /* In */ > + __u32 length; /* In/Out */ > +} __packed; > + > +/** > + * struct sev_user_data_cert_import - PEK_CERT_IMPORT command parameters > + * > + * @pek_address: PEK certificate chain > + * @pek_len: length of PEK certificate > + * @oca_address: OCA certificate chain > + * @oca_len: length of OCA certificate > + */ > +struct sev_user_data_pek_cert_import { > + __u64 pek_cert_address; /* In */ > + __u32 pek_cert_len; /* In */ > + __u64 oca_cert_address; /* In */ > + __u32 oca_cert_len; /* In */ > +} __packed; > + > +/** > + * struct sev_user_data_pdh_cert_export - PDH_CERT_EXPORT command parameters > + * > + * @pdh_address: PDH certificate address > + * @pdh_len: length of PDH certificate > + * @cert_chain_address: PDH certificate chain > + * @cert_chain_len: length of PDH certificate chain > + */ > +struct sev_user_data_pdh_cert_export { > + __u64 pdh_cert_address; /* In */ > + __u32 pdh_cert_len; /* In/Out */ > + __u64 cert_chain_address; /* In */ > + __u32 cert_chain_len; /* In/Out */ > +} __packed; > + > +/** > + * struct sev_issue_cmd - SEV ioctl parameters > + * > + * @cmd: SEV commands to execute > + * @opaque: pointer to the command structure > + * @error: SEV FW return code on failure > + */ > +struct sev_issue_cmd { > + __u32 cmd; /* In */ > + __u64 data; /* In */ > + __u32 error; /* Out */ > +} __packed; > + > +#define SEV_IOC_TYPE 'S' > +#define SEV_ISSUE_CMD _IOWR(SEV_IOC_TYPE, 0x0, struct sev_issue_cmd) > + > +#endif /* __PSP_USER_SEV_H */ >