From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CCE97C433F5 for ; Tue, 26 Oct 2021 06:58:40 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5426B60E05 for ; Tue, 26 Oct 2021 06:58:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5426B60E05 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8719C835FD; Tue, 26 Oct 2021 08:58:36 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="M3Yfyqxd"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6E54D835FE; Tue, 26 Oct 2021 08:57:55 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on0611.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0e::611]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id F3124835DA for ; Tue, 26 Oct 2021 08:57:47 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=gaurav.jain@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=edaFGcXRgkFgbCblJfsUm+EuPVj372nQPfCUq0ofucIYDp6+VTUz0k7ZPVd/yzl6hHEPWog+0sSrpiphVpFUpYoRJ9jRIHhnLxLY0Tyi8+Dxtpu1YzpeEXyWjwpDh1GdwzxGtxmpLkjIcmzqoSe8TKzbQXftK/EU9tQk1+w1NR9sS8LT1Z6WC/fHq4I+zOJwJQZf/sHgoHcwo15svBG/XHa3pVWjnEd6OSy25BtK5Mfy5C/3uDqgYl0dHkqiOAqkHz0tFikTH7DcSh6bumpjcK2vZ3rQiCqdyAGHnzF91sa4Wih+ttpSXWaIOUochWkgi/8hJu9d1POgGdnRgnSkxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=P8Y9NicfWFgQgRJ75lDgAo8n+F/vWZlX/d5LKFon+3U=; b=Hs9ZrLKPzFo7KSYyDR1nfIb0IUzpgqcY/EHkyyenQtdHDFYSlAPyC4XjRjyfUsen65pcqNWxottlQqgKhN17+n3ErgVRDh2WaNwtsE3Ed1VGrShP16cQBcVYxxOT4JzKDK6zveEDDYGI+O4ueymDZTFHiWWGJwbJBGL9q6McCjqaqECL45zhyaJa0rvJofcJm4t+ASGDiLCIWKjZDDwvGGobyFGezgu3dHhH9Bw6ejSjmiLJXXrRtDOYcFHSTDxeMnaBFqMZLAaS+Dp6/pr+EWKMUFjmRBI/KnsteHYglUmu/kn3FIkKVgO2LJL1ORH7bR28OTxhyB7HhUNpRHM1xw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P8Y9NicfWFgQgRJ75lDgAo8n+F/vWZlX/d5LKFon+3U=; b=M3YfyqxdfcjVCWTgvnGkQF6QFcRkd/xdVWpbt1EjuCJ/a6TGtnArjixx5BGogVVM0785rS8mkq3N4H1OxHu2OqYgEBj6NS+YUfmPe+4oeBhg+y2y5nUB71a8GtiV3eKXo3cUXwWa8oe6nNQ75Uv7RvytNmRVUukQNir61xv2r5Y= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5342.eurprd04.prod.outlook.com (2603:10a6:803:46::16) by VI1PR04MB5135.eurprd04.prod.outlook.com (2603:10a6:803:62::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Tue, 26 Oct 2021 06:57:46 +0000 Received: from VI1PR04MB5342.eurprd04.prod.outlook.com ([fe80::7daf:2591:dd7b:b608]) by VI1PR04MB5342.eurprd04.prod.outlook.com ([fe80::7daf:2591:dd7b:b608%7]) with mapi id 15.20.4628.020; Tue, 26 Oct 2021 06:57:46 +0000 From: Gaurav Jain To: u-boot@lists.denx.de Cc: Stefano Babic , Fabio Estevam , Peng Fan , Simon Glass , Priyanka Jain , Ye Li , Horia Geanta , Ji Luo , Franck Lenormand , Silvano Di Ninno , Sahil malhotra , Pankaj Gupta , Varun Sethi , "NXP i . MX U-Boot Team" , Shengzhou Liu , Mingkai Hu , Rajesh Bhagat , Meenakshi Aggarwal , Wasim Khan , Alison Wang , Pramod Kumar , Tang Yuantian , Adrian Alonso , Vladimir Oltean , Gaurav Jain Subject: [PATCH v4 10/16] crypto/fsl: i.MX8: Enable Job ring driver model in SPL and U-Boot. Date: Tue, 26 Oct 2021 12:25:48 +0530 Message-Id: <20211026065554.29009-11-gaurav.jain@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211026065554.29009-1-gaurav.jain@nxp.com> References: <20211026065554.29009-1-gaurav.jain@nxp.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SGBP274CA0022.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b0::34) To VI1PR04MB5342.eurprd04.prod.outlook.com (2603:10a6:803:46::16) MIME-Version: 1.0 Received: from lsv03326.swis.in-blr01.nxp.com (14.142.151.118) by SGBP274CA0022.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b0::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.20 via Frontend Transport; Tue, 26 Oct 2021 06:57:40 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 63d9aee0-bc84-4ca9-36b8-08d9984dea68 X-MS-TrafficTypeDiagnostic: VI1PR04MB5135: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:126; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6DEu5qmaHXUxe2kV0sbsIIys3d+DGX4JzCCK6EGvaAKynBZGu9eWk46pi/o6rcxhyaA+jdSZxsuZyzlU4PctI3ja08FoNwIf/9aM/mprRGpL884Us24xkyOCsJj1gyzczuU/FnA6zSzRkKnmosH91y+QAMO2Km+I+07HiN8DG1hmKOjHzcYE5qNr20sw2la7ZbwuLGgWaHP2evfixLIHrDC2McznJuLgUu662hblQS0VDvZdYK3QjdIjisK3Q7dGmlBH3aLO/+tK0J8IDMIFdUsSbNPht8u+/RTJ8NrQX98lToNGwD7miDrNFH2d/JuV6Doap5CXTIShWcSg86RL+j1w7VpnmUnNt9ai3heffOIN+zBt4f0Sa2WD6H6wJmtzqlAcl4J6AlqVhb3u0lB2Z05z81NYK4ahuodpVnO3yhzlp1D3A19tevlM/nl5FF6LM7geD1jkIjcU47/JDBfFtiycuwCgehXg6NKKtXjwyD5IWuYGCj0qrBkX/dhOgTtvObe9DKhM/mceN/TbLESZcGaH3XumKAF57SxdRzwPIjK05wKFlbZBYPpNdtqEwSc0pl3dAq3nK6M0F1ECKL7sHNtxVeQ+lKa6WiAQk2/x3E3WfYsi7u735aGJR0/YO9DxajZGKMzl20IACkOcotL/3QwVZzTl8mboiYH9RESQs2Ib8r6c0/8f+fymqS03R/M18SmiMT3xuPiirV6eRkWsMiWKswlG0FBguyCtslCZkNfqjPdpaVV0+dPkKSBDDK2R X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5342.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(6486002)(956004)(54906003)(1076003)(508600001)(66556008)(316002)(66476007)(66946007)(83380400001)(2906002)(52116002)(26005)(36756003)(7696005)(38100700002)(186003)(1006002)(8936002)(38350700002)(5660300002)(4326008)(6916009)(55236004)(2616005)(86362001)(44832011)(8676002)(110426009); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SFlHaUZ4emhkeXdaVWJ5dHc0dmdJVFoxdDJ5WVF2WUh3cFZCT09HMlJ5ZS8z?= =?utf-8?B?cnk0WTk5ZGZpSnNIWWNCR0N3WU1BR214Ni84SS9PV1VIeWRaTnVEbEFQWm9K?= =?utf-8?B?d1pBdEIzQmtkNW9PQzZCTWRGQk1ta1BtRHp0RERwV0sxYmM5aldidXdtN3BW?= =?utf-8?B?Z0NUTm1MazMyTkRLK2toNy9aYUV6czE0Y3E5Rk5ocUl0ZGgwUGhVL25mazJz?= =?utf-8?B?ZmNvcjVmMkJFSUxuLzBpMjNFdDc5b3dxRFVnS2NvK0FBOWk1T1JlS1Z1WjNk?= =?utf-8?B?cCswNGNFaWhlY2RyNDdIaVBOamFVWWZ5cUo2ZDZxaWxpTDgzdkovT2g2VHZC?= =?utf-8?B?WTdrdFBXNmlHWE0yNWV3aXFaenhmQXg4QWlWWXQzd2hleGo3djNIc0hRemsx?= =?utf-8?B?eFBWWS9GQWpZZTNIREcrbnRRZFpRSkZCMWNneWlHcHJNeWFxcWNNcjR2SXpu?= =?utf-8?B?aHZ0U3NNSXVwTmZMYlc4US9qem9SWlVIc21IYmJFVlo2WE90aE82V205a1Rz?= =?utf-8?B?bTh3VDFTZS9XdG1VcXNpdmZESHhqYzV0ZisvbGdqUXZzQUpyRVU0TE9rTWZE?= =?utf-8?B?cWprdzkvMVJja1lVNDJncGZTaUNla2Z6QVpqMDdaekdVajUzQUhFT3lCQVoy?= =?utf-8?B?OUExUVlxMjRCT2QzNVBlcXhyRDlaUFdtMHF0NnVXN0lLclVnNm9Zc0FsK0w0?= =?utf-8?B?MFIweXJMTzZYZ3AyYXlzSEpNQ20wVWQrc2ExcTg2NDVLamtpZGNKV2pTb2tU?= =?utf-8?B?SUI3Z2M4ZTZ0QWcxWmtxc0ZlT0JNd3NTbldudTFqQnMvdzRkS3BrZllrQURi?= =?utf-8?B?Ty9WQkZValRpQTNnbzUvVWt5aWl5S0VuQkoraDF5WVpQam5mT2JQZ1kwbjg0?= =?utf-8?B?T0pTL2cra1hXRnRYZWFFYnI2WXQ2KzhSU3ZZTFYya283ZjFDMzFqNEpLYURl?= =?utf-8?B?L0tCRzdyT2xXeUJjdVdMNzNlVUtnS0JSUFRlKzY0OUZkMnd2MGtpenVBbmR2?= =?utf-8?B?eTR4Z21NMUtIYlZ0alhabnBEUDNnaWF6SmZJaUVrTmJmYVozYjFXMVF0bnVJ?= =?utf-8?B?bGt4MGQraEhnSUVYb25xelMxTHRIZmJLWm1VR3UyQWhZZ0NMR0FzOGJGSTRZ?= =?utf-8?B?MWlwcDJycXJXZHZCQkdRNTZ0TU5hSHNRZkRrSTBoQVBUMHlMUlozYWVSUlA5?= =?utf-8?B?cEZ1TDd6T1JBc2Fzd3BRWWtpbDhpNnBRaEVwR25pNzllTE1SQlduRjBWYmhK?= =?utf-8?B?RVg1YVpQZHZDWWN5RWtSdmh5Q0xxVkhISlV6czZoY2pHRnhXN0pkU2FBZWVJ?= =?utf-8?B?M2VQNWpwWFlyeCttcndtSi9aSEpjZThNSHBLRFJSMmFmQmE0ZWlKU0ltUWtS?= =?utf-8?B?NWhyZlo3OUNUOUF6ZDlDWjdHdWttMlE4Z2pXU1NPN2MxSWhuV3dQaE9TSFNw?= =?utf-8?B?THRkMGhuVTRMTVdkenQ1elFob3VrWm9QWEZEak9aaExibVFuY25iSmxDSm9s?= =?utf-8?B?Q3ZWOTlPT0s0YVVhSGpnc2lBMXQ0ZFZzWno4NHBjbUM3RlAyVFhxN2tNQ1lT?= =?utf-8?B?QUtGUmY1Y3IrV3BKVlhuOXJHZ1ZRcTBGYXdNMUZtZWdzWWIrSE9ycVI2ZHBu?= =?utf-8?B?VXF4RFRObG1QSXRmUEtFWU10YW14cjNDc3hSOERVMlB0R2xQcWxTSjZSRXRC?= =?utf-8?B?S2lWM0c5RHloQi9yMWtqbFdDckxZOUZvZlFzTFNnY3dZZGl3aUNYbGNndDZJ?= =?utf-8?B?VVRqVS9IY29XV0FoVFZMcW1CNFc4S2lLUUwrYmdGazZnRWZ0ZG9KSEkvTmhQ?= =?utf-8?B?cUFHc2dCTDBycFJPajlTMktsTVh5bkwvdjFlcjR1dE8vUEZabUtjRTN4ZERz?= =?utf-8?B?Ukh0Y1pCTEQ3YXRHZ1VPbDZ4T1pRcnFTcmltNVhLNGE4ZlpwUUxYZ0ZXTm8w?= =?utf-8?B?UVoya0FnbVRnOE4zZzREUDhRSm1mR3g5eVVNMWFPS0Z5emNMM3QyV1VTODNF?= =?utf-8?B?V3NxY0h6bEgvMmllc25hSCtVblZSSE1ZRXRrMVZxTjBjckoxZXJOazRqQUd1?= =?utf-8?B?MnNveG9Jc0JTZTdndkFnNmN4N05OajZHL1JFZWEyRWZjdjJGR2E3ZjRWcXhI?= =?utf-8?B?MS92dWJjek9TZEduRCtQV1lobGpVSGFVamdIV2pBTFVRQStxZ0FZRXh0R3k2?= =?utf-8?Q?DTNYJykc1R3mLdfK/FWaoAU=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63d9aee0-bc84-4ca9-36b8-08d9984dea68 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5342.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2021 06:57:46.4326 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iEvTJeUmJY/x5D9eqJKIbPL4PEgTzhnkOHHtbW0FADH0i5QwsjgrI3Lk7fmdFYhal9APZWV1l7/p98rNWAWIAA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5135 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean i.MX8(QM/QXP) - added support for JR driver model. sec is initialized based on job ring information processed from device tree. Signed-off-by: Gaurav Jain Signed-off-by: Horia Geantă Reviewed-by: Ye Li --- arch/arm/Kconfig | 3 +++ arch/arm/include/asm/arch-imx8/imx-regs.h | 5 ++++- arch/arm/mach-imx/cmd_dek.c | 1 + arch/arm/mach-imx/imx8/Kconfig | 9 +++++++++ arch/arm/mach-imx/imx8/cpu.c | 16 ++++++++++++++- board/freescale/imx8qm_mek/spl.c | 6 ++++-- board/freescale/imx8qxp_mek/spl.c | 6 ++++-- drivers/crypto/fsl/Kconfig | 2 +- drivers/crypto/fsl/jr.c | 24 +++++++++++++++++++++++ include/fsl_sec.h | 12 +++++------- 10 files changed, 70 insertions(+), 14 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 314e770931..9458ed7eb0 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -806,6 +806,9 @@ config ARCH_LPC32XX config ARCH_IMX8 bool "NXP i.MX8 platform" select ARM64 + select SYS_FSL_HAS_SEC + select SYS_FSL_SEC_COMPAT_4 + select SYS_FSL_SEC_LE select DM select GPIO_EXTRA_HEADER select MACH_IMX diff --git a/arch/arm/include/asm/arch-imx8/imx-regs.h b/arch/arm/include/asm/arch-imx8/imx-regs.h index ed6e05e556..2d64b0604b 100644 --- a/arch/arm/include/asm/arch-imx8/imx-regs.h +++ b/arch/arm/include/asm/arch-imx8/imx-regs.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0+ */ /* - * Copyright 2018 NXP + * Copyright 2018, 2021 NXP */ #ifndef __ASM_ARCH_IMX8_REGS_H__ @@ -47,4 +47,7 @@ #define USB_BASE_ADDR 0x5b0d0000 #define USB_PHY0_BASE_ADDR 0x5b100000 +#define CONFIG_SYS_FSL_SEC_ADDR (0x31400000) +#define CONFIG_SYS_FSL_MAX_NUM_OF_SEC 1 + #endif /* __ASM_ARCH_IMX8_REGS_H__ */ diff --git a/arch/arm/mach-imx/cmd_dek.c b/arch/arm/mach-imx/cmd_dek.c index 89da89c51d..04c4b20a84 100644 --- a/arch/arm/mach-imx/cmd_dek.c +++ b/arch/arm/mach-imx/cmd_dek.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig index b43739e5c6..9a20ebe84e 100644 --- a/arch/arm/mach-imx/imx8/Kconfig +++ b/arch/arm/mach-imx/imx8/Kconfig @@ -8,6 +8,7 @@ config AHAB_BOOT config IMX8 bool + select HAS_CAAM config MU_BASE_SPL hex "MU base address used in SPL" @@ -72,6 +73,10 @@ config TARGET_IMX8QM_MEK bool "Support i.MX8QM MEK board" select BOARD_LATE_INIT select IMX8QM + select FSL_CAAM + select FSL_BLOB + select ARCH_MISC_INIT + select SPL_CRYPTO if SPL config TARGET_CONGA_QMX8 bool "Support congatec conga-QMX8 board" @@ -89,6 +94,10 @@ config TARGET_IMX8QXP_MEK bool "Support i.MX8QXP MEK board" select BOARD_LATE_INIT select IMX8QXP + select FSL_CAAM + select FSL_BLOB + select ARCH_MISC_INIT + select SPL_CRYPTO if SPL endchoice diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c index ee5cc47903..5140c93a37 100644 --- a/arch/arm/mach-imx/imx8/cpu.c +++ b/arch/arm/mach-imx/imx8/cpu.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /* - * Copyright 2018 NXP + * Copyright 2018, 2021 NXP */ #include @@ -89,6 +89,20 @@ int arch_cpu_init_dm(void) return 0; } +#if defined(CONFIG_ARCH_MISC_INIT) +int arch_misc_init(void) +{ + struct udevice *dev; + int ret; + + ret = uclass_get_device_by_driver(UCLASS_MISC, DM_DRIVER_GET(caam_jr), &dev); + if (ret) + printf("Failed to initialize %s: %d\n", dev->name, ret); + + return 0; +} +#endif + int print_bootinfo(void) { enum boot_device bt_dev = get_boot_device(); diff --git a/board/freescale/imx8qm_mek/spl.c b/board/freescale/imx8qm_mek/spl.c index 944ba745c0..332a662dee 100644 --- a/board/freescale/imx8qm_mek/spl.c +++ b/board/freescale/imx8qm_mek/spl.c @@ -1,7 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* - * Copyright 2018 NXP + * Copyright 2018, 2021 NXP * - * SPDX-License-Identifier: GPL-2.0+ */ #include @@ -24,6 +24,8 @@ void spl_board_init(void) { struct udevice *dev; + uclass_get_device_by_driver(UCLASS_MISC, DM_DRIVER_GET(imx8_scu), &dev); + uclass_find_first_device(UCLASS_MISC, &dev); for (; dev; uclass_find_next_device(&dev)) { diff --git a/board/freescale/imx8qxp_mek/spl.c b/board/freescale/imx8qxp_mek/spl.c index ae6b64ff6e..2fa6840056 100644 --- a/board/freescale/imx8qxp_mek/spl.c +++ b/board/freescale/imx8qxp_mek/spl.c @@ -1,7 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* - * Copyright 2018 NXP + * Copyright 2018, 2021 NXP * - * SPDX-License-Identifier: GPL-2.0+ */ #include @@ -39,6 +39,8 @@ void spl_board_init(void) { struct udevice *dev; + uclass_get_device_by_driver(UCLASS_MISC, DM_DRIVER_GET(imx8_scu), &dev); + uclass_find_first_device(UCLASS_MISC, &dev); for (; dev; uclass_find_next_device(&dev)) { diff --git a/drivers/crypto/fsl/Kconfig b/drivers/crypto/fsl/Kconfig index ab59d516f8..0bc1458eb5 100644 --- a/drivers/crypto/fsl/Kconfig +++ b/drivers/crypto/fsl/Kconfig @@ -11,7 +11,7 @@ config FSL_CAAM config CAAM_64BIT bool - default y if PHYS_64BIT && !ARCH_IMX8M + default y if PHYS_64BIT && !ARCH_IMX8M && !ARCH_IMX8 help Select Crypto driver for 64 bits CAAM version diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c index 69804dc1df..0bfdf9070f 100644 --- a/drivers/crypto/fsl/jr.c +++ b/drivers/crypto/fsl/jr.c @@ -25,6 +25,7 @@ #include #include #include +#include #define CIRC_CNT(head, tail, size) (((head) - (tail)) & (size - 1)) #define CIRC_SPACE(head, tail, size) CIRC_CNT((tail), (head) + 1, (size)) @@ -790,6 +791,25 @@ int sec_init(void) return sec_init_idx(0); } +#ifdef CONFIG_ARCH_IMX8 +static int jr_power_on(int subnode) +{ +#if CONFIG_IS_ENABLED(POWER_DOMAIN) + struct udevice __maybe_unused jr_dev; + struct power_domain pd; + + dev_set_ofnode(&jr_dev, offset_to_ofnode(subnode)); + + /* Need to power on Job Ring before access it */ + if (!power_domain_get(&jr_dev, &pd)) { + if (power_domain_on(&pd)) + return -EINVAL; + } +#endif + return 0; +} +#endif + #if CONFIG_IS_ENABLED(DM) static int caam_jr_probe(struct udevice *dev) { @@ -822,6 +842,10 @@ static int caam_jr_probe(struct udevice *dev) jr_node = jr_node >> 4; } caam->jrid = jr_node - 1; +#ifdef CONFIG_ARCH_IMX8 + if (jr_power_on(subnode)) + return -EINVAL; +#endif break; } } diff --git a/include/fsl_sec.h b/include/fsl_sec.h index c4121696f8..7b6e3e2c20 100644 --- a/include/fsl_sec.h +++ b/include/fsl_sec.h @@ -3,7 +3,7 @@ * Common internal memory map for some Freescale SoCs * * Copyright 2014 Freescale Semiconductor, Inc. - * Copyright 2018 NXP + * Copyright 2018, 2021 NXP */ #ifndef __FSL_SEC_H @@ -194,12 +194,10 @@ typedef struct ccsr_sec { #define SEC_CHAVID_LS_RNG_SHIFT 16 #define SEC_CHAVID_RNG_LS_MASK 0x000f0000 -#define CONFIG_JRSTARTR_JR0 0x00000001 - struct jr_regs { #if defined(CONFIG_SYS_FSL_SEC_LE) && \ !(defined(CONFIG_MX6) || defined(CONFIG_MX7) || \ - defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M)) + defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M) || defined(CONFIG_IMX8)) u32 irba_l; u32 irba_h; #else @@ -214,7 +212,7 @@ struct jr_regs { u32 irja; #if defined(CONFIG_SYS_FSL_SEC_LE) && \ !(defined(CONFIG_MX6) || defined(CONFIG_MX7) || \ - defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M)) + defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M) || defined(CONFIG_IMX8)) u32 orba_l; u32 orba_h; #else @@ -248,7 +246,7 @@ struct jr_regs { struct sg_entry { #if defined(CONFIG_SYS_FSL_SEC_LE) && \ !(defined(CONFIG_MX6) || defined(CONFIG_MX7) || \ - defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M)) + defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M) || defined(CONFIG_IMX8)) uint32_t addr_lo; /* Memory Address - lo */ uint32_t addr_hi; /* Memory Address of start of buffer - hi */ #else @@ -268,7 +266,7 @@ struct sg_entry { }; #if defined(CONFIG_MX6) || defined(CONFIG_MX7) || \ - defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M) + defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M) || defined(CONFIG_IMX8) /* Job Ring Base Address */ #define JR_BASE_ADDR(x) (CONFIG_SYS_FSL_SEC_ADDR + 0x1000 * (x + 1)) /* Secure Memory Offset varies accross versions */ -- 2.17.1