From patchwork Wed Dec 27 12:25:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bryan O'Donoghue X-Patchwork-Id: 122798 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp2137393qgn; Wed, 27 Dec 2017 04:49:28 -0800 (PST) X-Google-Smtp-Source: ACJfBosoD41Ic9Ed17ogQtpqSpOd1KHkryhheATCNwA3ooKX/EE/bT0JRJlaqTf0KEtEpKUK47KQ X-Received: by 10.80.146.77 with SMTP id j13mr35552631eda.298.1514378968605; Wed, 27 Dec 2017 04:49:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1514378968; cv=none; d=google.com; s=arc-20160816; b=X3o3vAYyWiLJTPRaBDRoiSDCPvgXKdDlyPyXvlgeiZ8xl+JNVnOSODlNy6Xb3KN3Tc spunV4WO7/K9bSo7AUu5O8aY0QGKVinUmMhumBLDL6/hBa+J06LigfgQXcvQAAFyGDa8 qaSYtSSG9yFvqfOqmWX+CkSg5a1e1SJutpB73vD9tC21ATbq47j8LDMqHyppDaC2ZU0W pBQR/LVMaNbGT3uu1x0O6Do5kRLcmoesJSqp4GmzQiMRHayi1IuCWfZBC0e5OCXFNZ8b 58+JcsdeLfhiDp7bAV6/gni5U6OKvvtX4yIntzG/fVT39VbJQqIesItvviB1qCraOSBb Jyww== 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=ovge8MAb8/SQ+IPlyZmr5ABNxnUvWRZh27LOH9ID7Vk=; b=cuHoz7klXYPvVXVo7eAoe52uA0hQ6JS9QKbeT5KXJbnFfOmngVUOa637pSgXyCDP8H adpxj+Mwl+77tCbPWb2qYKkQxXZJyNdH8lBGqf5IOoLUw4zj/5hBLZQ39CieqmBHXF3I T+OIpX7Cew2Rmf9dKppuIPjaguKMTog4D3VzPU7t6i+W6vty/XS0S8hd9zxM6WDbXlii s4DSbmhqK2k9Tj2mwguKIaQhNZwgbNOZBrkj2cAfZkf3ZP+JkGwS/SbWciheITUZHnB6 CMemeX7BAbB3AWeidGFjPYOm5fFPxY+0xYIno2uP++rI3ACTHECaeg39Th1lC9qmMTR1 ymEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=RSuhB4IA; 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 x23si369567edi.317.2017.12.27.04.49.28; Wed, 27 Dec 2017 04:49:28 -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=RSuhB4IA; 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 168CFC21E3B; Wed, 27 Dec 2017 12:38:07 +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 6038BC21EA6; Wed, 27 Dec 2017 12:33:14 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 4FFF9C21C8F; Wed, 27 Dec 2017 12:26:39 +0000 (UTC) Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by lists.denx.de (Postfix) with ESMTPS id EC43FC21C4A for ; Wed, 27 Dec 2017 12:26:38 +0000 (UTC) Received: by mail-wm0-f67.google.com with SMTP id f206so38984774wmf.5 for ; Wed, 27 Dec 2017 04:26:38 -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=rARE3KQTDAxLPvsUva9zRYIWT6s3y/avy27Vb+03NIY=; b=RSuhB4IAdefz6n2iJg23CXU7TduntGefbAnSmStTA6Go15NRWYyMsEVg3+4rLv2vtd YDn37p9v1zKHnJCxxnUM1JW1uScpSL1+7EqtQcYJF5egg3gmhjoBWzXWRCM99sWFxb0l v3eX7U8xh0lpqrdw4tPf4WaB6g5M+R9rnhqsU= 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=rARE3KQTDAxLPvsUva9zRYIWT6s3y/avy27Vb+03NIY=; b=YT7LdBLjEOB8Mfxji0bbRpnQNLf3Rlf0mJJY68hrH5pZ8jYVbUq9qr5xtu+PAGma5o B2DgJqUlWxZP0NavrHkwIr0Igc4LQH8bl8JeK9mbd36UKHYaAcZaU9brqn5G3AuAh8ks kZoH82uGSxokN5bTk5HEZFrAind7T0pNHdZGXJTx82VDcId+SWVqbob7evLErWWax7YP nDRUbQIGFippfh11pMNDTPKFaOJd8kx65kHjITZdFIOgVPL7reUqUrzSEEigrV9A+wR7 Ku/bVDV9Q16z0q+2W3cRWjVY3n77T1jF1Qg626ZfHQmLB0OQ+kdhWDnmBNBmWuUnT9TD BC3Q== X-Gm-Message-State: AKGB3mLP0CCUYc9mOjV1gvG4dX1Zdz0KQpnjsunbDMhS/G19plEDC1cz +hhTMts3u4svRXkEa6CxXsGOHXRa8Mg= X-Received: by 10.80.169.123 with SMTP id m56mr34579449edc.126.1514377598290; Wed, 27 Dec 2017 04:26:38 -0800 (PST) Received: from localhost.localdomain ([109.255.42.2]) by smtp.gmail.com with ESMTPSA id a5sm28388838edm.47.2017.12.27.04.26.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 27 Dec 2017 04:26:37 -0800 (PST) From: Bryan O'Donoghue To: u-boot@lists.denx.de Date: Wed, 27 Dec 2017 12:25:59 +0000 Message-Id: <1514377566-28512-17-git-send-email-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1514377566-28512-1-git-send-email-bryan.odonoghue@linaro.org> References: <1514377566-28512-1-git-send-email-bryan.odonoghue@linaro.org> X-Mailman-Approved-At: Wed, 27 Dec 2017 12:32:58 +0000 Cc: Fabio Estevam Subject: [U-Boot] [PATCH 16/23] arm: imx: hab: Add a hab_rvt_check_target to image auth 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" Add a hab_rvt_check_target() step to authenticate_image() as a sanity check for the target memory region authenticate_image() will run over, prior to making the BootROM authentication callback itself. This check is recommended by the HAB documentation so it makes sense to adhere to the guidance and perform that check as directed. Signed-off-by: Bryan O'Donoghue Cc: Stefano Babic Cc: Fabio Estevam Cc: Peng Fan Cc: Albert Aribaud Cc: Sven Ebenfeld Cc: George McCollister --- arch/arm/mach-imx/hab.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/mach-imx/hab.c b/arch/arm/mach-imx/hab.c index 8d0e3e1..58bc510 100644 --- a/arch/arm/mach-imx/hab.c +++ b/arch/arm/mach-imx/hab.c @@ -437,12 +437,15 @@ int authenticate_image(uint32_t ddr_start, uint32_t image_size, hab_rvt_authenticate_image_t *hab_rvt_authenticate_image; hab_rvt_entry_t *hab_rvt_entry; hab_rvt_exit_t *hab_rvt_exit; + hab_rvt_check_target_t *hab_rvt_check_target; struct ivt *ivt; struct ivt_header *ivt_hdr; + enum hab_status status; hab_rvt_authenticate_image = hab_rvt_authenticate_image_p; hab_rvt_entry = hab_rvt_entry_p; hab_rvt_exit = hab_rvt_exit_p; + hab_rvt_check_target = hab_rvt_check_target_p; if (!is_hab_enabled()) { puts("hab fuse not enabled\n"); @@ -477,6 +480,13 @@ int authenticate_image(uint32_t ddr_start, uint32_t image_size, start = ddr_start; bytes = image_size; + + status = hab_rvt_check_target(HAB_TGT_MEMORY, (void *)ddr_start, bytes); + if (status != HAB_SUCCESS) { + printf("HAB check target 0x%08x-0x%08x fail\n", + ddr_start, ddr_start + bytes); + goto hab_caam_clock_disable; + } #ifdef DEBUG printf("\nivt_offset = 0x%x, ivt addr = 0x%x\n", ivt_offset, ivt_addr); printf("ivt entry = 0x%08x, dcd = 0x%08x, csf = 0x%08x\n", ivt->entry,