Received: by 10.223.164.221 with SMTP id h29csp1144465wrb; Fri, 13 Oct 2017 12:35:49 -0700 (PDT) X-Google-Smtp-Source: AOwi7QB3HNmTX9MwcZ7xzLPFaUFSKcU2ZB53qZGDfbQ5mCgsijtZba1mGKEPXec1XtOujDJNaha6 X-Received: by 10.98.131.197 with SMTP id h188mr2223697pfe.224.1507923349570; Fri, 13 Oct 2017 12:35:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507923349; cv=none; d=google.com; s=arc-20160816; b=j7jFrnPyX1A2wuosy/au1u3SrL8H3SLVTYa4jkEhNzog4qK/dXJGmf4dpOvlRG006H LkPmx+AfJIZZt1lYbCJj39d/7zvnhy9bGzfj3ATTssBcFW50XzLaF77tD8cPrr6253Hf gikopcP1unju87yKjGj7sqP+fSlsZO12cbLHjHPv8q6zeAhrneWuOwaQlpdb4BmHhZ65 1YjWIukEgeGhIL8ImHhC7vjFFYR8WkF6CBkdW9TTskge3Zk/hmEErr3NMNduWnP59CeA Z76v8yOay6UE6XBz/1et5d8wzE7y0oLpxOktzr3B5kL0X83OhWx1+q+6UWhZQp1ph4yC xEcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=NmgjnR4yMdO20dk4ZPIEXf0f92tT46hQgT7VtJRJJuY=; b=jmTUUJIAPkR2uUXxhYnS5ZCRvC1wyCeO27KEqu/U6odMOk4xZsbySqTR9FXiFebPOm p/kO9xy+ixu4Sinom0VbQtHyPMqaAqktBYnbFvRphoXdlKaOaohNPHEMnvcRnw7oAV0v 682VyBWo4FX8E9JFKYmdV1qAgNC61bGT4R/DZ5wTr+Xm4d7b3IexmzBqQXQ+h6nODDTm mWYCTRrREcU8XNufkdLAKNmVmQT4q5c4NgBSarf6qm7HDeZVOi/2nx7rJRK0Heft/Da2 VVwvTRecNkKzHl+hNa+oW3nELc2VC6WYOCJssRrAM4tQrW44HvaGvJap221Y/FX6z8Rv UVCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@EPAM.onmicrosoft.com header.s=selector1-epam-com header.b=edKSztl9; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a26si932910pff.606.2017.10.13.12.35.35; Fri, 13 Oct 2017 12:35:49 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@EPAM.onmicrosoft.com header.s=selector1-epam-com header.b=edKSztl9; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753501AbdJMTdn (ORCPT + 99 others); Fri, 13 Oct 2017 15:33:43 -0400 Received: from mail-he1eur01on0056.outbound.protection.outlook.com ([104.47.0.56]:13664 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751057AbdJMTdi (ORCPT ); Fri, 13 Oct 2017 15:33:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=EPAM.onmicrosoft.com; s=selector1-epam-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=NmgjnR4yMdO20dk4ZPIEXf0f92tT46hQgT7VtJRJJuY=; b=edKSztl978Nwxi2K6Aey3CSsywWeFJeEon0NcgHfpgY+s0SVBm0wiMuOLYk2fmO+cZchj/0/P+g5u4C4VM1qlPPygkWTfPXEWnw5B4uo1FCfng6MAhlESnAG5RwMkdTlTJ/jDIrSkLX30IFUdR54CQyemf3qDQH/XFtHgeVWPNQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Volodymyr_Babchuk@epam.com; Received: from EPUAKYIW2556.kyiv.epam.com (85.223.209.52) by DB6PR0301MB2135.eurprd03.prod.outlook.com (2603:10a6:4:46::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Fri, 13 Oct 2017 19:33:34 +0000 Received: by EPUAKYIW2556.kyiv.epam.com (sSMTP sendmail emulation); Fri, 13 Oct 2017 22:33:30 +0300 From: Volodymyr Babchuk To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, tee-dev@lists.linaro.org, Jens Wiklander Cc: Volodymyr Babchuk , volodymyr_babchuk@epam.com Subject: [PATCH v1 05/14] tee: optee: Update protocol definitions Date: Fri, 13 Oct 2017 22:32:35 +0300 Message-Id: <1507923164-12796-6-git-send-email-volodymyr_babchuk@epam.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1507923164-12796-1-git-send-email-volodymyr_babchuk@epam.com> References: <1506621851-6929-1-git-send-email-volodymyr_babchuk@epam.com> <1507923164-12796-1-git-send-email-volodymyr_babchuk@epam.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [85.223.209.52] X-ClientProxiedBy: VI1P189CA0031.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::44) To DB6PR0301MB2135.eurprd03.prod.outlook.com (2603:10a6:4:46::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 898bc7af-b295-4130-e2e5-08d512714b8e X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:DB6PR0301MB2135; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0301MB2135;3:ds/JSRfPYP59AtKEvWlIwleMPzb79Hs+8MV/AMR87pBgYJZdpznVqb/5dJxM0hJ6J/ggi9kYI4Faha0ddZz8cRkTG5xqKVXKiajUNxR3/ch+ZJb1AVWJILO9UoXwqC0fTTBQcvIOnBYTejjJNwMYByqqHk27tCUHnGtwIave9W9o/VcC7ZvPdG64mLjA4kMhYlFITn0ZER2MDv/cSetMylPesXECiF6NWszl5RiZZsCx7LP0aHxwCVDx3vwO+gAR;25:EAiPh/xjNpax0ZZ2/tZfN15wInDb1HNkU9O3K0QHeC7OtM1rMQSqjGfuBE1zzuk+Lsw3sMzUWe9ihN5QytmIiO5qJAr/QcQb9/STDkqwkvVShDQ8ULZZZsFWEbZsabBp6l2IOXnCqHlXcv6+2JiIkRi1F7g+Y32kjLBjSONxzPu0X3wpK4Yv4f82IIeDDN30l428mWrCe1OdBCYtNryJtmo6jlPPjlsdpbJK5TI4QF/YAXAYELtBSgeBt8TsZNo7Vg4bg5WTvvGLto5mMJ7q+CSOYxTget2jmIu+I9OlQyWtLVG02xNKsOhyStMviTC9UL4RLK/Qn+/bqYp0/3ILzA==;31:yZfWDis4Q89zqJOE2zFlCEoK+fr1Ag+OkUdGKCcYh92gKotmC2hr8XBSbv0a9l/TF1e2m4sBh7r4GfXWOkNq6puuHr5VFF1kjQLsua7cHvEIZeUGtpcfU8SPff9vlXR7ax3qAZyhPjqD3dBc63a+FfZc8sIfe2E8LvIaA5GNDfDU9q003i2sylVbX/bfhVC8ONxzCQDR95/Ul6zwwkti66Omw4wsRK8t+j27NHjw6G4= X-MS-TrafficTypeDiagnostic: DB6PR0301MB2135: X-Microsoft-Exchange-Diagnostics: 1;DB6PR0301MB2135;20:WjxOR80T0xeLZYZ+YzkST9w2HCpOPKbKxwthvgA9CLDdms3ladE3/r8pkZLs6qUA2eVP2erb4Ha1Xc0XHA8Jt7Vj/Py5g665ZHj4XHB3Ghy1OnjWBYeT+1NJ9UuaJY3Uqv4a7MtYTeYHOn0dIcHo8HbRRsSn2oUyTQrq9Q9DerU/doNgsANVAZXjEGXRQnmiYQpYgk80qkWaiMlqL9R1zeWMVMGtZFWj2wrlwuAypmkuzSk4SbE7Zqa8zs7iHcSW3PpXPGZoKvWHwk/wDghQX6tn7GcUkHXybykvrn/CtPnbZf8M0F6uIlfoq3wi7/OH+kmoC4yx10DW6kVrJLQ9sfdWGcRgExiNiv3tJ8zq2AjJojt3C0KntE1R7DgbdZfd8lVMX2F+NlECgztf+/dZhNDN8QqNzyMmz34h/PYxDgA5ktNVtqrANrPJxKhGGAjlriW17nZAhOv6vpmIDRbfZLkw97ukPQF3maQKRIMgzbtPbScrgc3H0uJPZ3A8RA4Q;4:T0tSVqd4LfzWI1jAtQEWXlH+7q/A64lSAAN9lAv4YlJ3Wfiks1CjK/Rt7GEf1DWWmMQXBc74708j8jiA4ALhm8uZT414nWVCnx0cWXYiU1F3S53y/bdGGMi0EA19GkS2PfV21YwrJVjrL3x7EO29813j5iqW/VZLdGaKbLgtyyG5gqoOeUGTYubi7w1e9a1zOYQNtPNmX8S6NAT8KWjpWbM7OR8dYC380SKIS92xxmwC0zBEVJDdU6zYBD7jKAbk X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB6PR0301MB2135;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB6PR0301MB2135; X-Forefront-PRVS: 04599F3534 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(376002)(346002)(199003)(189002)(39060400002)(101416001)(107886003)(2950100002)(53936002)(6916009)(80792005)(76176999)(50986999)(5660300001)(72206003)(97736004)(48376002)(478600001)(50466002)(36756003)(305945005)(189998001)(122856001)(33646002)(7736002)(106356001)(86362001)(81156014)(81166006)(68736007)(50226002)(4326008)(316002)(66066001)(3846002)(8676002)(2906002)(105586002)(6116002)(8936002)(5003940100001)(47776003)(16586007)(42186006);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0301MB2135;H:EPUAKYIW2556.kyiv.epam.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: epam.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB6PR0301MB2135;23:B0q6ADPH/DorhGip+xDQ78tEBX83DUQeZD1lcV+?= =?us-ascii?Q?J2ws6RqTY2O2piPU3hMCdAgRhVuOdEOdckTvO5YYb4hOJkwIKixoWWF3Z/mv?= =?us-ascii?Q?9QBqgu9E7u3QwXzUsjaCr+IhiN8uXL6j7sah4jS4wlKbopU7YNBtYtYO59Hs?= =?us-ascii?Q?si1/ofv4mKqgsSVO6gr7lmi0cXPHlVW3dfX80VynsHm3q7CzyNx+uvuBTSFo?= =?us-ascii?Q?Y1zCtzu5G98gcyWFQtw5qE+jjgxenViiB5nE7gCBmeUPYW42w4v484xc8qO/?= =?us-ascii?Q?TiNTDngyjr46QOK1AvHERB0qolPAFrtCvgYAWtdht2GR05UiA6uns9L694Lg?= =?us-ascii?Q?R+OTjvwth7qmQgTe6Ir2F8YU1DdtY6GpyrOd3Cn7DxLa0kmMFvj8eJXMLrr+?= =?us-ascii?Q?GKCcLyjfK3LjmfgJatU1n7GOY7+NiGpjrIposMw+THutyO2WSFIkPTCH3Kzo?= =?us-ascii?Q?Qww0R1qi5EEnVeNGM3RkFcqVjiTOfhwFYZFxHzg7Z50jJOfAJrTtiO466nCO?= =?us-ascii?Q?gwzUdU7GJ04Wjpt6dav5dptKQchAr4RbiX5mkUjkHdJQcfJeoMvdUsFrblYW?= =?us-ascii?Q?J01IAVZYhmRY6Vf6EJ4AREqNFox1lZH7Z8J7OF7C3SstbRvw5mf9zC6sB+0G?= =?us-ascii?Q?LctRvjfWEEJQOj4RlcpetnkmMjGkLFVF1a3yjyNKlEng9HOJBZ22H6yPnXoH?= =?us-ascii?Q?IXHkXPsAQbE9/er7r1bSvj1Yy81YzHiln/dUtbqUG9KyOepzNeKmjnTA0I2E?= =?us-ascii?Q?O6PPefjt63PB3a4xBjctrIwRrrJtUuy4jPfPaTeK5fNkcrCHEA2OX9sXASvc?= =?us-ascii?Q?ok3wJRpLhhSCKJwMkprKYyYqz8Fp8VbhOeBDKH+Z46mC1panrmmd8phzcjro?= =?us-ascii?Q?r5LgTwopLdIidNToNTNHj3bEXEqu9GCrS+cGsnbgjNUSR4OHsehqgxtJSyhR?= =?us-ascii?Q?4ycOwsf1sviYK9D8GTIheLJaTuFE78O53iL7SblOtXjgPyaJMzNu5dtewC9h?= =?us-ascii?Q?kmTRoyiT20Ke5vVHD7inKBpph5LuaQC/zdXqQzrLybt3WaEPbKIwvySIOxVb?= =?us-ascii?Q?ckl0wsJz/AUKJQCMENNt6fPdawFSR?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0301MB2135;6:48bz4YCNtrEgrAuOSdF9PqniaE4njFPEIaJOTD1iMoQNxdnCYpks97CTiBo+XGCvuIPY4MaielfkojMmbmfckJ+/kIeOcAo/9knCIrSfQlhjpfbOp5rMnCw2MvFYRLhfE7S5FiDXhr5poU39+ANbFReqlkAYE0avAJ2cNUFTQy8ex2JxJEXwg/FSX6T9kmUG0XUk44doXgoTgZgUjZo8r++RNwovyPR/HOGonMppVvceMVkgZ+S0/yYdFcI9TF8Y7HragnWUHBNCaeDDMnEiAHgF69AfugW+DisEMMwAWSXXXV78HquJB2D5OPvYr7NKXNCr06mj1xwytW1bsfpijQ==;5:3MHnU7n8VB4ATsIQrjbmKVxubDvYNXLnxuJH8+T//kZwwb6BK9cAqluXaxD4I5nE1+9lPy3xAA83sFSPQF7lktQmPIC0Cwz5qQCIbmXbJ/6lE4DNpdqcQgEPx96QqxA7oOxm5xWO7HPsnBD4txh/KHpZaD5QF/zIyP7C7iWtc9o=;24:OUHr/0otZUVoaJefS/f9101kchJyeu7Ljev8SoU1yozoU5iGvIMWDv65ZkbeGpzjKN2pKfrLfxRzpTjwPaf3PIE0JpIeNZnRoj5zf2bxy2c=;7:dnCJvUJ2lO0XOo5LflFK19VK7rf16c2oIVG2ZAi3Ek4FBsc6ygUdEeb4wbV2AiZpviKVjIwXbAyhe+0rEwUL58XA7pyJnZp9lp/hyIaeZMyloEED5zPYWVw1VQE+N1PEXQiV1PHB5z2QyJfr+g6Mpr6cim8hIUTy1KK4rAqQ9SeTGtb7DDiOXfSxtUK1zWcNYEzyjKsOLvyxBtSJ3HAlXMMel3IHNqa81j8gt9PFP98= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2017 19:33:34.4646 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0301MB2135 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Volodymyr Babchuk There were changes in REE<->OP-TEE ABI recently. Now ABI allows us to pass non-contiguous memory buffers as list of pages to OP-TEE. This can be achieved by using new parameter attribute OPTEE_MSG_ATTR_NONCONTIG. OP-TEE also is able to use all non-secure RAM for shared buffers. This new capability is enabled with OPTEE_SMC_SEC_CAP_DYNAMIC_SHM flag. This patch adds necessary definitions to the protocol definition files at Linux side. Signed-off-by: Volodymyr Babchuk --- drivers/tee/optee/optee_msg.h | 38 ++++++++++++++++++++++++++++++++------ drivers/tee/optee/optee_smc.h | 7 +++++++ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/drivers/tee/optee/optee_msg.h b/drivers/tee/optee/optee_msg.h index dd7a06e..3050490 100644 --- a/drivers/tee/optee/optee_msg.h +++ b/drivers/tee/optee/optee_msg.h @@ -67,11 +67,32 @@ #define OPTEE_MSG_ATTR_META BIT(8) /* - * The temporary shared memory object is not physically contigous and this - * temp memref is followed by another fragment until the last temp memref - * that doesn't have this bit set. + * Pointer to a list of pages used to register user-defined SHM buffer. + * Used with OPTEE_MSG_ATTR_TYPE_TMEM_*. + * buf_ptr should point to the beginning of the buffer. Buffer will contain + * list of page addresses. OP-TEE core can reconstruct contiguous buffer from + * that page addresses list. Page addresses are stored as 64 bit values. + * Last entry on a page should point to the next page of buffer. + * Every entry in buffer should point to a 4k page beginning (12 least + * significant bits must be equal to zero). + * + * 12 least significant bints of optee_msg_param.u.tmem.buf_ptr should hold page + * offset of the user buffer. + * + * So, entries should be placed like members of this structure: + * + * struct page_data { + * uint64_t pages_array[OPTEE_MSG_NONCONTIG_PAGE_SIZE/sizeof(uint64_t) - 1]; + * uint64_t next_page_data; + * }; + * + * Structure is designed to exactly fit into the page size + * OPTEE_MSG_NONCONTIG_PAGE_SIZE which is a standard 4KB page. + * + * The size of 4KB is chosen because this is the smallest page size for ARM + * architectures. If REE uses larger pages, it should divide them to 4KB ones. */ -#define OPTEE_MSG_ATTR_FRAGMENT BIT(9) +#define OPTEE_MSG_ATTR_NONCONTIG BIT(9) /* * Memory attributes for caching passed with temp memrefs. The actual value @@ -94,6 +115,11 @@ #define OPTEE_MSG_LOGIN_APPLICATION_USER 0x00000005 #define OPTEE_MSG_LOGIN_APPLICATION_GROUP 0x00000006 +/* + * Page size used in non-contiguous buffer entries + */ +#define OPTEE_MSG_NONCONTIG_PAGE_SIZE 4096 + /** * struct optee_msg_param_tmem - temporary memory reference parameter * @buf_ptr: Address of the buffer @@ -145,8 +171,8 @@ struct optee_msg_param_value { * * @attr & OPTEE_MSG_ATTR_TYPE_MASK indicates if tmem, rmem or value is used in * the union. OPTEE_MSG_ATTR_TYPE_VALUE_* indicates value, - * OPTEE_MSG_ATTR_TYPE_TMEM_* indicates tmem and - * OPTEE_MSG_ATTR_TYPE_RMEM_* indicates rmem. + * OPTEE_MSG_ATTR_TYPE_TMEM_* indicates @tmem and + * OPTEE_MSG_ATTR_TYPE_RMEM_* indicates @rmem, * OPTEE_MSG_ATTR_TYPE_NONE indicates that none of the members are used. */ struct optee_msg_param { diff --git a/drivers/tee/optee/optee_smc.h b/drivers/tee/optee/optee_smc.h index 069c8e1..7cd3272 100644 --- a/drivers/tee/optee/optee_smc.h +++ b/drivers/tee/optee/optee_smc.h @@ -222,6 +222,13 @@ struct optee_smc_get_shm_config_result { #define OPTEE_SMC_SEC_CAP_HAVE_RESERVED_SHM BIT(0) /* Secure world can communicate via previously unregistered shared memory */ #define OPTEE_SMC_SEC_CAP_UNREGISTERED_SHM BIT(1) + +/* + * Secure world supports commands "register/unregister shared memory", + * secure world accepts command buffers located in any parts of non-secure RAM + */ +#define OPTEE_SMC_SEC_CAP_DYNAMIC_SHM BIT(2) + #define OPTEE_SMC_FUNCID_EXCHANGE_CAPABILITIES 9 #define OPTEE_SMC_EXCHANGE_CAPABILITIES \ OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_EXCHANGE_CAPABILITIES) -- 2.7.4 From 1579807725668187688@xxx Thu Sep 28 18:07:32 +0000 2017 X-GM-THRID: 1579807725668187688 X-Gmail-Labels: Inbox,Category Forums