Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/965482/?format=api
{ "id": 965482, "url": "http://patchwork.ozlabs.org/api/patches/965482/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20180903144711.31585-10-jens.wiklander@linaro.org/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20180903144711.31585-10-jens.wiklander@linaro.org>", "list_archive_url": null, "date": "2018-09-03T14:47:00", "name": "[U-Boot,v3,09/20] Documentation: tee uclass and op-tee driver", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "33f8e1d21c606b755f0a7a8e41dd831080f335ee", "submitter": { "id": 66201, "url": "http://patchwork.ozlabs.org/api/people/66201/?format=api", "name": "Jens Wiklander", "email": "jens.wiklander@linaro.org" }, "delegate": { "id": 3651, "url": "http://patchwork.ozlabs.org/api/users/3651/?format=api", "username": "trini", "first_name": "Tom", "last_name": "Rini", "email": "trini@ti.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20180903144711.31585-10-jens.wiklander@linaro.org/mbox/", "series": [ { "id": 63875, "url": "http://patchwork.ozlabs.org/api/series/63875/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=63875", "date": "2018-09-03T14:46:51", "name": "AVB using OP-TEE", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/63875/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/965482/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/965482/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdmarc=fail (p=none dis=none) header.from=linaro.org", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"U0L0cGkg\"; dkim-atps=neutral" ], "Received": [ "from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 423tJ15Yhwz9s55\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 4 Sep 2018 00:53:21 +1000 (AEST)", "by lists.denx.de (Postfix, from userid 105)\n\tid 5C3F1C21E79; Mon, 3 Sep 2018 14:52:07 +0000 (UTC)", "from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id 9ACA3C21E70;\n\tMon, 3 Sep 2018 14:47:45 +0000 (UTC)", "by lists.denx.de (Postfix, from userid 105)\n\tid B625EC21E77; Mon, 3 Sep 2018 14:47:40 +0000 (UTC)", "from mail-lf1-f66.google.com (mail-lf1-f66.google.com\n\t[209.85.167.66])\n\tby lists.denx.de (Postfix) with ESMTPS id E045CC21E47\n\tfor <u-boot@lists.denx.de>; Mon, 3 Sep 2018 14:47:32 +0000 (UTC)", "by mail-lf1-f66.google.com with SMTP id j8-v6so657883lfb.4\n\tfor <u-boot@lists.denx.de>; Mon, 03 Sep 2018 07:47:32 -0700 (PDT)", "from jax.ideon.se ([85.235.10.227])\n\tby smtp.gmail.com with ESMTPSA id\n\tw18-v6sm3343431ljd.73.2018.09.03.07.47.30\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tMon, 03 Sep 2018 07:47:31 -0700 (PDT)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=0.0 required=5.0 tests=RCVD_IN_MSPIKE_H2,\n\tT_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=lgCdUmBufLy6+xjFvNL7oyDbBWl5csz7nRRV9iomFaE=;\n\tb=U0L0cGkgD5movJSm59seJ5277rX2Sii1JOxKYRiOhyRhv5HIYQDCQxwyZBecCbFUdG\n\tFvGA0zy4K7yDvJPyKehO/8ZUJl5KuUBNdfxCBRwJ3DPLidGZAL0JrJm7/QEE1enz6H1w\n\tNsVElzoThgFJb7/gZJ+HLwi/HhPRNen0sU64o=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=lgCdUmBufLy6+xjFvNL7oyDbBWl5csz7nRRV9iomFaE=;\n\tb=S6/cAL/JgDlN0tG/73CldTJaUYu4QSDgIIkCTs03hQVG0AFaYgrgVpbOsr36Pf3Qqb\n\t8PQ1Oen2/dcTMtbf1NMLMQxX1O5nFyDz/gXwgogeBFEiMy6cCjnqWF7QPTdNuHGgciwJ\n\tPzL8fbHERlnuKCGT/ZkkuB85h9gb6SqsjQy2LShEv/e3fE72YF4k2njfe0kULxWn3W8E\n\t1wrlK62sahJ5xkUTLwZMls4fIlWu2qbARsztlkkUEnVwhex+rZtogqAytPA8zgHOfdwf\n\txeY7WrORx30es2TIjXeHK8BzvpzMjCgbPth8ePAvfAKQyBYYWQKFwQmRcN7eZ8bFZOoq\n\t5how==", "X-Gm-Message-State": "APzg51CgARgWinZkQf0XidJH46DE8CdjhhvI0Nuay1RnK24gfg8Vi5lW\n\tSuMjNmiXycc9SmrYORhiRWNKgiV5GVY=", "X-Google-Smtp-Source": "ANB0VdYoFPTvjnCXfu6An4nloiHygv5hUaAoZX+bd1g1vI5woq8deUG6lNBEhrMGGdG8FPJfkPm9CA==", "X-Received": "by 2002:a19:a2c1:: with SMTP id\n\tl184-v6mr14591020lfe.129.1535986052043; \n\tMon, 03 Sep 2018 07:47:32 -0700 (PDT)", "From": "Jens Wiklander <jens.wiklander@linaro.org>", "To": "u-boot@lists.denx.de", "Date": "Mon, 3 Sep 2018 16:47:00 +0200", "Message-Id": "<20180903144711.31585-10-jens.wiklander@linaro.org>", "X-Mailer": "git-send-email 2.17.1", "In-Reply-To": "<20180903144711.31585-1-jens.wiklander@linaro.org>", "References": "<20180903144711.31585-1-jens.wiklander@linaro.org>", "Cc": "Tom Rini <trini@konsulko.com>, Pierre Aubert <p.aubert@staubli.com>", "Subject": "[U-Boot] [PATCH v3 09/20] Documentation: tee uclass and op-tee\n\tdriver", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.18", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<http://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>" }, "content": "Reviewed-by: Simon Glass <sjg@chromium.org>\nSigned-off-by: Jens Wiklander <jens.wiklander@linaro.org>\n---\n doc/README.tee | 112 +++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 112 insertions(+)\n create mode 100644 doc/README.tee", "diff": "diff --git a/doc/README.tee b/doc/README.tee\nnew file mode 100644\nindex 000000000000..79e7996a6f5f\n--- /dev/null\n+++ b/doc/README.tee\n@@ -0,0 +1,112 @@\n+=============\n+TEE uclass\n+=============\n+\n+This document describes the TEE uclass in U-Boot\n+\n+A TEE (Trusted Execution Environment) is a trusted OS running in some\n+secure environment, for example, TrustZone on ARM CPUs, or a separate\n+secure co-processor etc. A TEE driver handles the details needed to\n+communicate with the TEE.\n+\n+This uclass deals with:\n+\n+- Registration of TEE drivers\n+\n+- Managing shared memory between U-Boot and the TEE\n+\n+- Providing a generic API to the TEE\n+\n+The TEE interface\n+=================\n+\n+include/tee.h defines the generic interface to a TEE.\n+\n+A client finds the TEE device via tee_find_device(). Other important functions\n+when interfacing with a TEE are:\n+\n+- tee_shm_alloc(), tee_shm_register() and tee_shm_free() to manage shared\n+ memory objects often needed when communicating with the TEE.\n+\n+- tee_get_version() lets the client know which the capabilities of the TEE\n+ device.\n+\n+- tee_open_session() opens a session to a Trusted Application\n+\n+- tee_invoke_func() invokes a function in a Trusted Application\n+\n+- tee_close_session() closes a session to a Trusted Application\n+\n+Much of the communication between clients and the TEE is opaque to the\n+driver. The main job for the driver is to receive requests from the\n+clients, forward them to the TEE and send back the results.\n+\n+OP-TEE driver\n+=============\n+\n+The OP-TEE driver handles OP-TEE [1] based TEEs. Currently it is only the ARM\n+TrustZone based OP-TEE solution that is supported.\n+\n+Lowest level of communication with OP-TEE builds on ARM SMC Calling\n+Convention (SMCCC) [2], which is the foundation for OP-TEE's SMC interface\n+[3] used internally by the driver. Stacked on top of that is OP-TEE Message\n+Protocol [4].\n+\n+OP-TEE SMC interface provides the basic functions required by SMCCC and some\n+additional functions specific for OP-TEE. The most interesting functions are:\n+\n+- OPTEE_SMC_FUNCID_CALLS_UID (part of SMCCC) returns the version information\n+ which is then returned by TEE_IOC_VERSION\n+\n+- OPTEE_SMC_CALL_GET_OS_UUID returns the particular OP-TEE implementation, used\n+ to tell, for instance, a TrustZone OP-TEE apart from an OP-TEE running on a\n+ separate secure co-processor.\n+\n+- OPTEE_SMC_CALL_WITH_ARG drives the OP-TEE message protocol\n+\n+- OPTEE_SMC_GET_SHM_CONFIG lets the driver and OP-TEE agree on which memory\n+ range to used for shared memory between Linux and OP-TEE.\n+\n+The GlobalPlatform TEE Client API [5] is implemented on top of the generic\n+TEE API.\n+\n+Picture of the relationship between the different components in the\n+OP-TEE architecture:\n+\n+ U-Boot Secure world\n+ ~~~~~~ ~~~~~~~~~~~~\n+ +------------+ +-------------+\n+ | Client | | Trusted |\n+ | | | Application |\n+ +------------+ +-------------+\n+ /\\ /\\\n+ || ||\n+ \\/ \\/\n+ +------------+ +-------------+\n+ | TEE | | TEE Internal|\n+ | uclass | | API |\n+ +------------+ +-------------+\n+ | OP-TEE | | OP-TEE |\n+ | driver | | Trusted OS |\n+ +------------+-----------+-------------+\n+ | OP-TEE MSG |\n+ | SMCCC (OPTEE_SMC_CALL_*) |\n+ +--------------------------------------+\n+\n+RPC (Remote Procedure Call) are requests from secure world to the driver.\n+An RPC is identified by a special range of SMCCC return values from\n+OPTEE_SMC_CALL_WITH_ARG.\n+\n+References\n+==========\n+\n+[1] https://github.com/OP-TEE/optee_os\n+\n+[2] http://infocenter.arm.com/help/topic/com.arm.doc.den0028a/index.html\n+\n+[3] drivers/tee/optee/optee_smc.h\n+\n+[4] drivers/tee/optee/optee_msg.h\n+\n+[5] http://www.globalplatform.org/specificationsdevice.asp look for\n+ \"TEE Client API Specification v1.0\" and click download.\n", "prefixes": [ "U-Boot", "v3", "09/20" ] }