From patchwork Tue Jan 2 16:43:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bryan O'Donoghue X-Patchwork-Id: 123168 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp9177572qgn; Tue, 2 Jan 2018 08:54:10 -0800 (PST) X-Google-Smtp-Source: ACJfBouTuNYB3mY9Sc4nh299IAQL6Lc/Z1EJB84sGTBq1pfKHkQBZJFITSxETTi4kYH6IK2CGw2w X-Received: by 10.80.214.139 with SMTP id r11mr63560451edi.17.1514912049975; Tue, 02 Jan 2018 08:54:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1514912049; cv=none; d=google.com; s=arc-20160816; b=qQFm1Xk8YDkfuzny/bAZAAuN/O/t5G+b0NpacFKBtfB+0XZhbCrKCFHGM2Nv/RnAVE iPrLD0/3jLeDqiuzK2HkrOccL8Zeev5qM8CGPhpWKIJLFSyONq0hzxHdFDFXrYqYQLPX KWI/DLgINSHPwkngbIB/s7x8hEUUeqWi7B9JD521hA7CBI7q0tH/vEIeRq3Gc2RcmRNv MBzs/zp6BmmZK45I6qfx+q2XWUd/qqt/0yAHkUeD0csUOyajdRHtcr0wDQ0b1/wOrnOa B2MQmacpcZ/fcGBKKPqDDoxHd/LWP0x05Yhnme6woOFddIhabcr1uOR0gXEXfIsgev0f Z+uA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:cc:references:in-reply-to:message-id :date:to:from:dkim-signature:arc-authentication-results; bh=wMUOic2TFDmrDvyogVjf9hvh3SaCoaZsPmQv9SLgU/M=; b=hhesK6zN2MaGAlr6wPHyTU/mtP2IOGPUeY8owosKYL90cH207Lj2ZchrJ3TOseogoZ 6ZmukZEcOsPOfPLmkyRxt/RDBN9h2nux7LDrq9seu1JjaVQMdSX2aGfyXDKzwWbJ2+sI JixIAQvdIaSg/NnfBN5VJ7BGwR4fLYAyJZtKYzbtpjdkkPrI3FjIBT/NsuslfL01bk1G vTUrtFhsBGaL5nkmWiONmdHT41Hrx05jAjYYRvDnkh+N/6X5XPjLhcTKH46b4v653eHl eBw33ab6EW1GxOkCrOFoxzURpsTrEViZT1V0cQgJeXImxljnLPE5imDdWopSMm8cHN4J mETw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=C65kkx8O; spf=pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.denx.de (dione.denx.de. [81.169.180.215]) by mx.google.com with ESMTP id x31si115705ede.181.2018.01.02.08.54.09; Tue, 02 Jan 2018 08:54:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) client-ip=81.169.180.215; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=C65kkx8O; spf=pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: by lists.denx.de (Postfix, from userid 105) id 7824BC21DBB; Tue, 2 Jan 2018 16:47:48 +0000 (UTC) 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_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 08853C21E13; Tue, 2 Jan 2018 16:45:12 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A6893C21DCE; Tue, 2 Jan 2018 16:44:39 +0000 (UTC) Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by lists.denx.de (Postfix) with ESMTPS id F385BC21DA9 for ; Tue, 2 Jan 2018 16:44:35 +0000 (UTC) Received: by mail-wm0-f66.google.com with SMTP id n138so62060431wmg.2 for ; Tue, 02 Jan 2018 08:44:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=W3aaLbqI/MaiX5sYMhnL4aKeCAri3WIVr9Implx4W6o=; b=C65kkx8Op2EuLhhxSuUrHh/j+mTtXCHFCg+8EcUXerpgnOOIHv0vBhZcOBbtTeHBv/ KvT8FO2M3Rdg2fe0MUycAN4t3oRSmauFftlz6YLJbBo1AJW0SaycZo93mURgLL/HGb05 LVEXmshG0j+CCbyQHmJpAxlxsqS8MiH5Zt184= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=W3aaLbqI/MaiX5sYMhnL4aKeCAri3WIVr9Implx4W6o=; b=e9JX9kNzxlwMjgNkZ21sWC9U0//QkGiRq7LRMVAd4YalH9Lb9XVBarIdaEItU8f3lM JgVWLPrHFTvY85wYKImXZNxc94yuzOp6lWjBu+Tdgjp4Kscq1EMhEYlYPx/PhiVCU8ds CIN8TFa4nae3gEd1UnBjFEJlmRDRdYiNUpWBP9vDJ3rq7T+a+lxhuuwcTwLkZIgeOg+Y 3SES8QNGveSzXOsPCKXQBBBzOHhlnk40+K7aUrD0innpXsZW40XgF0DjPlmUy/WswyCO eazbND6rHc9ELQOGCB7VLrZ8RY1Uc/KsM1tKMhoicJzqjURfd1DWEb0sB8BxO1N2eAmA myKQ== X-Gm-Message-State: AKGB3mI6zoQ0/ROZ9xufkO2MwelzvaMI2kCSD2ijhMvxW+c4Ig3dF9Il mXSlsbD6DOg7YPBgqxkNLxuNx47dbuI= X-Received: by 10.80.165.41 with SMTP id y38mr62452476edb.72.1514911475368; Tue, 02 Jan 2018 08:44:35 -0800 (PST) Received: from localhost.localdomain (D4CCACC7.cm-2.dynamic.ziggo.nl. [212.204.172.199]) by smtp.gmail.com with ESMTPSA id z5sm29850584edh.76.2018.01.02.08.44.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 02 Jan 2018 08:44:34 -0800 (PST) From: Bryan O'Donoghue To: u-boot@lists.denx.de, brenomatheus@gmail.com Date: Tue, 2 Jan 2018 16:43:55 +0000 Message-Id: <1514911451-4520-10-git-send-email-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1514911451-4520-1-git-send-email-bryan.odonoghue@linaro.org> References: <1514911451-4520-1-git-send-email-bryan.odonoghue@linaro.org> Cc: Fabio Estevam Subject: [U-Boot] [PATCH v4 09/25] arm: imx: hab: Add IVT header definitions X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The various i.MX BootROMs containing the High Assurance Boot (HAB) block rely on a data structure called the Image Vector Table (IVT) to describe to the BootROM where to locate various data-structures used by HAB during authentication. This patch adds a definition of the IVT header for use in later patches, where we will break the current incorrect dependence on fixed offsets in favour of an IVT described parsing of incoming binaries. Signed-off-by: Bryan O'Donoghue Cc: Stefano Babic Cc: Fabio Estevam Cc: Peng Fan Cc: Albert Aribaud Cc: Sven Ebenfeld Cc: George McCollister Cc: Breno Matheus Lima --- arch/arm/include/asm/mach-imx/hab.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/arch/arm/include/asm/mach-imx/hab.h b/arch/arm/include/asm/mach-imx/hab.h index b2a8031..28cde38 100644 --- a/arch/arm/include/asm/mach-imx/hab.h +++ b/arch/arm/include/asm/mach-imx/hab.h @@ -10,6 +10,34 @@ #include +/* + * IVT header definitions + * Security Reference Manual for i.MX 7Dual and 7Solo Applications Processors, + * Rev. 0, 03/2017 + * Section : 6.7.1.1 + */ +#define IVT_HEADER_MAGIC 0xD1 +#define IVT_TOTAL_LENGTH 0x20 +#define IVT_HEADER_V1 0x40 +#define IVT_HEADER_V2 0x41 + +struct ivt_header { + uint8_t magic; + uint16_t length; + uint8_t version; +} __attribute__((packed)); + +struct ivt { + struct ivt_header hdr; /* IVT header above */ + uint32_t entry; /* Absolute address of first instruction */ + uint32_t reserved1; /* Reserved should be zero */ + uint32_t dcd; /* Absolute address of the image DCD */ + uint32_t boot; /* Absolute address of the boot data */ + uint32_t self; /* Absolute address of the IVT */ + uint32_t csf; /* Absolute address of the CSF */ + uint32_t reserved2; /* Reserved should be zero */ +}; + /* -------- start of HAB API updates ------------*/ /* The following are taken from HAB4 SIS */