From patchwork Wed May 11 08:37:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gaurav Jain X-Patchwork-Id: 1629475 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=Ly7mlCOj; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KypGD6ZGwz9sFr for ; Wed, 11 May 2022 18:38:28 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id DC1AE840E9; Wed, 11 May 2022 10:38:23 +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="Ly7mlCOj"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C5C6E840DE; Wed, 11 May 2022 10:38:22 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,SPF_HELO_PASS, T_SCC_BODY_TEXT_LINE,T_SPF_PERMERROR autolearn=no autolearn_force=no version=3.4.2 Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02on0615.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe06::615]) (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 4557684128 for ; Wed, 11 May 2022 10:38:19 +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=GQLvCP/YmgiiPFH19lemDJRD90G163WoFa/4pq0ETMrQ5cORc3UmsTpE4DGK4I1VikFxxigb/K0PjhmRAMhrE2LVXpG++rHxa4wQ+HQ8mm0gCLtB0evpLhoR29CKVx4JUPHWViQnBkBDV15zNMQJLOpQugHg64XJf506gtUZyfuh7X+lnROio0k7GTKSC5dBsmhy2ytKVs5KebKOOY4HFO0NoknSwXYH3//WuHdNU93sjGAuy0kM3u337mj111BGTHYXnW0hq3PdKnkuh4cUefYDBGulH9n3AS/g3xtKQTR9Hqmo3s4rfEakv8zBhi1icWNux/agZTg0leWQpukPiw== 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=XeSWSZIkZHf5G5OHpdF52kpQU7X/AU/1WPRm5tLFXuQ=; b=gjRScOuusF9vd60sGZ4JunxJxZo5bwhcXALJKHHAS1ndxEDYqRSA6Hd21cIvpvhNklrgoItNzXa0DJhEfvicRgHigWeoXUzKtgQ09hgJhouScjsOWGxKcv0MbIqiHp3DphCeNOwoyokZzn7pYbdCPz/mw/TjSehz8LpPXcdikntG00CLiZHMRSqtOhFWdg/3qB5HhGhWVDGzIn0KhBAYhU+ch+6I7NZRJ6FkyJi7VPqgXURR1Lb5kp8jTjYczWaP+zCFcsFg45VmmngtpET3AYlSlibGax2V9YJARd+B0xVv/PIouAp1fP6tpsMZ9zyd1TMsw8JvoJYcUEmaECBv+Q== 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=XeSWSZIkZHf5G5OHpdF52kpQU7X/AU/1WPRm5tLFXuQ=; b=Ly7mlCOjg9ZBtGZt/09TWtI7Pc+XXtVKqllgm4mCqCUQA0o3J+IoT9M4ijbnZgaEWQhXuWcdEM/sfLyoN6DLaeJqkZ6gSkRlg+60g+3SFYjByqNWVd9ajfWC41yuSoXvvOchDLbnm/h9R9mOonFStGgqZlaCojQKZA9pf3/STqE= 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 HE1PR0401MB2284.eurprd04.prod.outlook.com (2603:10a6:3:1e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Wed, 11 May 2022 08:38:16 +0000 Received: from VI1PR04MB5342.eurprd04.prod.outlook.com ([fe80::8512:f51f:a027:ba71]) by VI1PR04MB5342.eurprd04.prod.outlook.com ([fe80::8512:f51f:a027:ba71%6]) with mapi id 15.20.5227.023; Wed, 11 May 2022 08:38:16 +0000 From: Gaurav Jain To: Stefano Babic , u-boot@lists.denx.de Cc: Fabio Estevam , Priyanka Jain , Ye Li , Horia Geanta , Silvano Di Ninno , Varun Sethi , Peng Fan , "NXP i . MX U-Boot Team" , Gaurav Jain , Pankaj Gupta Subject: [PATCH] i.MX8ULP: add display_ele_fw_version api Date: Wed, 11 May 2022 14:07:55 +0530 Message-Id: <20220511083755.1923201-1-gaurav.jain@nxp.com> X-Mailer: git-send-email 2.25.1 X-ClientProxiedBy: SG2PR01CA0124.apcprd01.prod.exchangelabs.com (2603:1096:4:40::28) To VI1PR04MB5342.eurprd04.prod.outlook.com (2603:10a6:803:46::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: aa84b51b-e3fb-40a6-e110-08da332997b5 X-MS-TrafficTypeDiagnostic: HE1PR0401MB2284:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x4zfsoLliGrdGM5O0xQ1rzWp2F1tblXAGDDPggoQdys89JOCh/dNyKqElqwgD1wYUowc968GicT+Xn85XexFMpqixN0Y8D6jdY++TmgBm7rrrunxxfezQyCDYsfqe+OPBxqg3AqANdfyGxeZTRx4RbKEZjBOVchsXz8cU6Lbkmuc3yNiblWfiFIY7UaWX6umwEQiSVrB29ahtU1UvSAPP/fCJE0BkeNfa5eDtabBJ0/c1Hl226wQ8XWW8iJ5lcfqrUbwJf2hFfhrv44nSGH+C3TpfosZGcdBhf91ewQKtrwt6Xtmfi8oPQ8rE9mzi4327oUCjADrxdFYjN3reGc4CvXBgOsgylbbf84nqWRQXYlUZEacnwSjIX/0YU9cN5g62sudLStLkcgq7PQmUYp3fu8KSAHLUw0ofkOiNBQgSox3d6kbACXa7yhUxQ8/l/oDr2xPjMA90vB54yYRej1cN7433UPBLFeGb2Idn7JaJS5InFB40ax1qK5PjafnSJZk8W/mGG/pgvvYulZzT4giU7D6bpkdGThfS07b+zM3COmdsZQkp8NRp0iFQ8hVOLV7o2RPZoHeQSYcot4NjgZJMqFzChu+zwJA6RGqLRdK/R8t3zqv0+pJ2Z3HvXLZjFxlGCg8AkNvL5sUK3jOwpcuYziD1P730jnxGqGxnm23UNjmiIuCinL7+sRMcooAkPCcdef3EOAE6Fj2myo3CHyWwQ== 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:(13230001)(4636009)(366004)(38350700002)(38100700002)(1076003)(2616005)(6512007)(36756003)(2906002)(54906003)(55236004)(44832011)(86362001)(316002)(4326008)(83380400001)(66946007)(8676002)(6506007)(6486002)(5660300002)(26005)(508600001)(186003)(6666004)(8936002)(52116002)(66556008)(66476007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Qb1qFjAt4F10dorLS5KaDu/0Uepwcob49zpY8ppC98QmWOkhYt88LwustUeQ7OI9xyHuJgxFwz68/81NYuHT5lKXwxtdSTFUJXy1v9gmfKg5PTMpZ2C2EMh3kOPlS099hqGu7DKQCCCq0ejksoT0MOF6oWfrpWjJniBUvH/1Ug/gPywu+3lIyqRpPvRZNMuuFRoXMHAdQnEkz5hFjHJXLO1Ss00TMbhJPFlvn9AWx0cOEYVk34xspWvSOuWpShAuHcBPgQ0okR6NtUOVDXp3ga9IUCUV6GKME5JodSIe7ekVjWjrDJcYMaWVpFT+MsdAEgqCYKG/dule7+rMD2E/zOOQyZsO/8JR5ACv60964q7EjWi2VN4NqDqAqxRmq5MCHagqia0I/zQm+yHVYOm4a7v1PPdbd0K8TvGukOkAGGf3LKNjJ51yUNNYkRQaFFx+FcgY4RE2HkKKUA+boCM1vkPB05/O6l9FI4N4Nod+WZZZkBZ7ZsO5Xl37PHz/AutYFeBh0kRuVbwdxWyhpYQU+cULGv2CSG5HwvVU9lxmZeIoQiTYk7hRVd8XDPKrbUVXU8FgZ2t0BBREaof6WHMvdCMsM/DDmROZy7XwSI1vimvry6AqtX6SOpvI55+CdkTlGMg8cL9PySyxwYsDUtp0EX4v5aPPn38r8gl+Q+nvXMDi4kLQ79YXIAxli8naa1tjGDk3NZ58XJpaoZ2PgtEsgsGbbV0U3eECOnp9caBb36Etdg1YClWQizgWxzCNNq+XMzlvagDsG6+fWNcWwONYqu3GuLSxrwiNZy8bW0JO90VPPZU2dho3qSoWkp/JLxsfzhyy3B3nszfPOB/2q7Cnby3OUGy27e7G65xJgCmvhoaeFLV4s0sACytC7Y1p9mV6Q8W4uKIKvzIihg+ypcyn8MhLW+NdxtdMlQeqWpEWaQq+fH2y5AVoAPkxpjHDTq1w5l/QAVtkm0rZApPYfWHVRXAy2kBmXfeJc3GSSS1CQw2XSmkSLVzG26G3omQiqi7ykj4zV/p+qCqbLEENOPwxlJojUVUW9OOfhMC+Tev80kK7lPEwoelJORlmOulUNNz9wBc2d8/+Z/tXhv2+sR0i6Bo0zxdPGdEztTEs8jYPuvnIjWqrR/5WiG3SVyv3q+lne45ON1Kvq81GH7QQ5yNDhwROv9FgkiMj6TlIMTKG+pXDIItaE9rt0tU/5IYrTAmwNf1Uztr0cWLjJe2H7VmsKqNBRdrOe3k0qlv/+PJszaGkci9lBI4eokHU6Q3gCnL2DxX/rsGF141b876tW+reDpgEQ9PA0F6iHR3wWWVwr8XNemd4rY7P/RkaAER+NUXfKsVm5esWMjscuOpfjxhYf+D+30aMqGTg0FtP+6ITpFddE0E8Kup7WBDKWqjitNFfliux42em3eEhCdrf8w/68fuYmN6yy5IwUhHuO7s/5mYknWamnKG1ywZjYkC6UU317trG+NKD4Juj9g2Pn3YEt32ThuuH5wBBfsSRY2iNj+ESspj0kbZKfg8yQ39lHGaUcLSE5B1e0Nm1PVALoYtgvqUSWU+5MwKNaoeN5Zq7NtJfyJpYwjHHx4OM13MoNybCu+uURl6wZ/jbHLL4bTJaUEHOEqgknosdLq0k5W5f8o4H/y/7qwOLPkYOgKU3KXW5AwlqZc0duBlCbffVdoQCZ6AQPDI7u84rbuBbW/LOY8k5g0bXC5rIrrs8L+G0geNfA8FU1ulrh9s1P4IbqPeV965zLJ2aF9/7yxq6p9P/CJU= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa84b51b-e3fb-40a6-e110-08da332997b5 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5342.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2022 08:38:16.0332 (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: XzjWnHYHz8TDUts5XGnuqrOgoZvHwQt5gae2ioJJQiUCzHTg7lRb0ViMpZVeNtRl/r8YqUVzGIe3hLFUmZslkA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2284 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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.5 at phobos.denx.de X-Virus-Status: Clean implement get f/w version api. print ele f/w version in spl. Signed-off-by: Gaurav Jain Reviewed-by: Peng Fan Reviewed-by: Pankaj Gupta --- arch/arm/include/asm/arch-imx8ulp/s400_api.h | 2 + board/freescale/imx8ulp_evk/spl.c | 19 +++++++++ drivers/misc/imx8ulp/s400_api.c | 41 ++++++++++++++++++++ 3 files changed, 62 insertions(+) diff --git a/arch/arm/include/asm/arch-imx8ulp/s400_api.h b/arch/arm/include/asm/arch-imx8ulp/s400_api.h index 1856659877..b3e6b3fa45 100644 --- a/arch/arm/include/asm/arch-imx8ulp/s400_api.h +++ b/arch/arm/include/asm/arch-imx8ulp/s400_api.h @@ -17,6 +17,7 @@ #define AHAB_WRITE_SECURE_FUSE_REQ_CID 0x91 #define AHAB_FWD_LIFECYCLE_UP_REQ_CID 0x95 #define AHAB_READ_FUSE_REQ_CID 0x97 +#define AHAB_GET_FW_VERSION_CID 0x9D #define AHAB_RELEASE_RDC_REQ_CID 0xC4 #define AHAB_WRITE_FUSE_REQ_CID 0xD6 #define AHAB_CAAM_RELEASE_CID 0xD7 @@ -39,6 +40,7 @@ int ahab_forward_lifecycle(u16 life_cycle, u32 *response); int ahab_write_fuse(u16 fuse_id, u32 fuse_val, bool lock, u32 *response); int ahab_read_common_fuse(u16 fuse_id, u32 *fuse_words, u32 fuse_num, u32 *response); int ahab_release_caam(u32 core_did, u32 *response); +int ahab_get_fw_version(u32 *fw_version, u32 *sha1, u32 *response); int ahab_dump_buffer(u32 *buffer, u32 buffer_length); #endif diff --git a/board/freescale/imx8ulp_evk/spl.c b/board/freescale/imx8ulp_evk/spl.c index 66bfc2bd0c..ece9ff26e9 100644 --- a/board/freescale/imx8ulp_evk/spl.c +++ b/board/freescale/imx8ulp_evk/spl.c @@ -58,6 +58,23 @@ int power_init_board(void) return 0; } +void display_ele_fw_version(void) +{ + u32 fw_version, sha1, res; + int ret; + + ret = ahab_get_fw_version(&fw_version, &sha1, &res); + if (ret) { + printf("ahab get firmware version failed %d, 0x%x\n", ret, res); + } else { + printf("ELE firmware version %u.%u.%u-%x", + (fw_version & (0x00ff0000)) >> 16, + (fw_version & (0x0000ff00)) >> 8, + (fw_version & (0x000000ff)), sha1); + ((fw_version & (0x80000000)) >> 31) == 1 ? puts("-dirty\n") : puts("\n"); + } +} + void spl_board_init(void) { struct udevice *dev; @@ -77,6 +94,8 @@ void spl_board_init(void) puts("Normal Boot\n"); + display_ele_fw_version(); + /* After AP set iomuxc0, the i2c can't work, Need M33 to set it now */ /* Load the lposc fuse to work around ROM issue. The fuse depends on S400 to read. */ diff --git a/drivers/misc/imx8ulp/s400_api.c b/drivers/misc/imx8ulp/s400_api.c index 3ffdeb2ad2..87f5880ccb 100644 --- a/drivers/misc/imx8ulp/s400_api.c +++ b/drivers/misc/imx8ulp/s400_api.c @@ -272,6 +272,47 @@ int ahab_release_caam(u32 core_did, u32 *response) return ret; } +int ahab_get_fw_version(u32 *fw_version, u32 *sha1, u32 *response) +{ + struct udevice *dev = gd->arch.s400_dev; + int size = sizeof(struct imx8ulp_s400_msg); + struct imx8ulp_s400_msg msg; + int ret; + + if (!dev) { + printf("s400 dev is not initialized\n"); + return -ENODEV; + } + + if (!fw_version) { + printf("Invalid parameters for f/w version read\n"); + return -EINVAL; + } + + if (!sha1) { + printf("Invalid parameters for commit sha1\n"); + return -EINVAL; + } + + msg.version = AHAB_VERSION; + msg.tag = AHAB_CMD_TAG; + msg.size = 1; + msg.command = AHAB_GET_FW_VERSION_CID; + + ret = misc_call(dev, false, &msg, size, &msg, size); + if (ret) + printf("Error: %s: ret %d, response 0x%x\n", + __func__, ret, msg.data[0]); + + if (response) + *response = msg.data[0]; + + *fw_version = msg.data[1]; + *sha1 = msg.data[2]; + + return ret; +} + int ahab_dump_buffer(u32 *buffer, u32 buffer_length) { struct udevice *dev = gd->arch.s400_dev;