From patchwork Mon Apr 27 10:51:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rayagonda Kokatanur X-Patchwork-Id: 1277612 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org 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=) Authentication-Results: ozlabs.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=De+giIpH; dkim-atps=neutral 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 (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 499kY73nzGz9sSc for ; Mon, 27 Apr 2020 22:26:51 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 18D6C81ED9; Mon, 27 Apr 2020 14:20:35 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=broadcom.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=broadcom.com header.i=@broadcom.com header.b="De+giIpH"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 485B981E33; Mon, 27 Apr 2020 13:03:24 +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=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-pg1-x543.google.com (mail-pg1-x543.google.com [IPv6:2607:f8b0:4864:20::543]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4EC8181E0A for ; Mon, 27 Apr 2020 13:03:17 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=rayagonda.kokatanur@broadcom.com Received: by mail-pg1-x543.google.com with SMTP id o15so8546686pgi.1 for ; Mon, 27 Apr 2020 04:03:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=8ZiJvLsbPhaeZ5FG8Fr1tVWSysJayJ082dFRfKXUPEI=; b=De+giIpHbrZ3d7jHUBE+B5bNk2cyMihrlZAmgPAJeYo3O1FIeFSGN+/UzCREcoxY6R Fd1DDG50Ubs5Alb0XBZTLDLWFkcNEATv3td+acBym8MFRuNcuPkPG2L6dCrRszX41tS1 AW1swNo375cnOIq9UGSfR0lLiap+0uUtzo3/o= 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=8ZiJvLsbPhaeZ5FG8Fr1tVWSysJayJ082dFRfKXUPEI=; b=lONBsj6B+YiqaUSMp3gpuhcfgczepAwtMqA2Y3KaIVDlkJieHSOcD1VyI9gs2rBuVM qjlxHfCtm+HvVmyzJ1F1eVs1mNmF9JGhAR3ROzuNJLhqOK0Hexu30h17zm8sQA2QqGxj Yae+ktjITRDnNemNE5+bA/z134eoGI/gDRkyiobDjW6oHM95VyAxGM421I4H5NIGR5XC vgVFf1WORgHIO5Jc7DuwIIXs1TL1ReU9R7fqOzXaJKi3iZy4ig+ZJhO09QZUs41evj5A X//cinf5cWj0fo2K9bRsNuhVMe1vdPop5SXnqwQZejk6b7ws3IWDSDVclu9aAsmPlTPF HJHQ== X-Gm-Message-State: AGi0Pub18KcjQXKEiVGtwvR8H12alTyJRZsUw4/1HGEXKDo4RTAk4Tln zNZUOKYb4hPjZMuoqKOiivAOwgQkFkRBM2yVRrncvR3rOYABe3M29YTCWVxHah1nlZaGmbdbzR1 OBtwDZOj2aJo/9qsjOTFEOUtHOESz0M60XW1zQovUApa/8/+Bjp7nTXFTeUCC0RMq/EfDcGv/EA oC47WgWtqZ X-Google-Smtp-Source: APiQypKg1wK4kfXRzxd2ZND/Vf6TlCpVtac7mjV84e6FVPLQiNa/cM2EmJDhFQwYKGmGXFOZC5DeYg== X-Received: by 2002:a62:8303:: with SMTP id h3mr11712782pfe.206.1587985395181; Mon, 27 Apr 2020 04:03:15 -0700 (PDT) Received: from rayagonda.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id u3sm11996430pfn.217.2020.04.27.04.03.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2020 04:03:14 -0700 (PDT) From: Rayagonda Kokatanur To: u-boot@lists.denx.de, Simon Glass , Kever Yang , Michal Simek , Jagan Teki , Marek Vasut , Fabio Estevam , Baruch Siach , Troy Kisky , Josip Kelecic , Priyanka Jain , Biwen Li , Jason Li , Philippe Reynes , Eddie James , Heinrich Schuchardt , Sam Protsenko , Lukasz Majewski , Miquel Raynal , Ramon Fried , Anup Patel , AKASHI Takahiro , Patrice Chotard , Eugeniu Rosca , Joe Hershberger , Simon Goldschmidt , Boris Brezillon , Simon South , Andy Shevchenko , Marek Bykowski , Lokesh Vutla , Patrick Delaunay , Rajesh Ravi , Abhishek Shah , Vladimir Olovyannikov , Bharat Kumar Reddy Gooty , Srinath Mannam , Pramod Kumar , Ray Jui , Vikas Gupta , Trac Hoang , Corneliu Doban , Sheetal Tigadoli Cc: Rayagonda Kokatanur Subject: [PATCH v1 38/49] board: ns3: add generic MCU IPC command send API Date: Mon, 27 Apr 2020 16:21:56 +0530 Message-Id: <20200427105207.5659-39-rayagonda.kokatanur@broadcom.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200427105207.5659-1-rayagonda.kokatanur@broadcom.com> References: <20200427105207.5659-1-rayagonda.kokatanur@broadcom.com> X-Mailman-Approved-At: Mon, 27 Apr 2020 14:18:25 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean From: Trac Hoang Add a generic CRMU IPC command send driver so that u-boot can access MCU services. Signed-off-by: Trac Hoang Signed-off-by: Rayagonda Kokatanur --- board/broadcom/bcmns3/Makefile | 1 + board/broadcom/bcmns3/mcu_cmd.c | 49 +++++++++++++++++++++++++++++++++ board/broadcom/bcmns3/mcu_cmd.h | 13 +++++++++ 3 files changed, 63 insertions(+) create mode 100644 board/broadcom/bcmns3/mcu_cmd.c create mode 100644 board/broadcom/bcmns3/mcu_cmd.h diff --git a/board/broadcom/bcmns3/Makefile b/board/broadcom/bcmns3/Makefile index 08e1d7203b..f62da01701 100644 --- a/board/broadcom/bcmns3/Makefile +++ b/board/broadcom/bcmns3/Makefile @@ -3,4 +3,5 @@ # Copyright 2020 Broadcom. obj-y := ns3.o +obj-y += mcu_cmd.o obj-$(CONFIG_CHIMP_OPTEE) += chimp_optee.o diff --git a/board/broadcom/bcmns3/mcu_cmd.c b/board/broadcom/bcmns3/mcu_cmd.c new file mode 100644 index 0000000000..aff41c3a19 --- /dev/null +++ b/board/broadcom/bcmns3/mcu_cmd.c @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2020 Broadcom. + * + */ + +#include +#include +#include + +#include "mcu_cmd.h" + +#define MCU_MAILBOX_0 0x66424024 +#define MCU_MAILBOX_1 0x66424028 + +#define MCU_IPC_CMD_DONE_MASK 0x80000000 +#define MCU_IPC_CMD_REPLY_MASK 0x3fff0000 +#define MCU_IPC_CMD_REPLY_SHIFT 16 + +int send_crmu_cmd(u32 cmd, u32 param, u32 timeout_msec) +{ + u32 val; + int ret = CMD_RET_FAILURE; + + writel(cmd, MCU_MAILBOX_0); + writel(param, MCU_MAILBOX_1); + + do { + mdelay(1); + val = readl(MCU_MAILBOX_0); + if (val & MCU_IPC_CMD_DONE_MASK) { + ret = CMD_RET_SUCCESS; + break; + } + + } while (timeout_msec--); + + if (ret == CMD_RET_FAILURE) { + pr_err("CRMU cmd timeout!\n"); + return ret; + } + + /* Obtain status */ + val = (val & MCU_IPC_CMD_REPLY_MASK) >> MCU_IPC_CMD_REPLY_SHIFT; + if (val) + ret = CMD_RET_FAILURE; + + return ret; +} diff --git a/board/broadcom/bcmns3/mcu_cmd.h b/board/broadcom/bcmns3/mcu_cmd.h new file mode 100644 index 0000000000..82f0821248 --- /dev/null +++ b/board/broadcom/bcmns3/mcu_cmd.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2019 Broadcom + */ + +#ifndef __MCU_CMD_H__ +#define __MCU_CMD_H__ + +#define MCU_CMD_DEFAULT_TIMEOUT_MS 10 + +int send_crmu_cmd(u32 cmd, u32 param, u32 timeout_msec); + +#endif /* __MCU_CMD_H__ */