From patchwork Mon Jul 16 13:26:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Simek X-Patchwork-Id: 944410 X-Patchwork-Delegate: monstr@monstr.eu Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.b="CIe4CSTw"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41Tkhb4WyWz9rxs for ; Mon, 16 Jul 2018 23:26:37 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 99C90C22122; Mon, 16 Jul 2018 13:26:31 +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_H2, 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 4E62FC21E4F; Mon, 16 Jul 2018 13:26:28 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 722C1C21E4F; Mon, 16 Jul 2018 13:26:27 +0000 (UTC) Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) by lists.denx.de (Postfix) with ESMTPS id 0F65AC21E45 for ; Mon, 16 Jul 2018 13:26:27 +0000 (UTC) Received: by mail-wr1-f52.google.com with SMTP id j5-v6so25384870wrr.8 for ; Mon, 16 Jul 2018 06:26:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monstr-eu.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id; bh=K/vDyxbTyIyDRaDuyfDdupk2BSb7ThAryLMUkFyyZGw=; b=CIe4CSTwUorV2a0dZbLt2nV90hZqqx5tWLyak/kzb7PQiU2QxAdR1SK/SdJpHNCuTk w2uLQOYpJPJTC0cPl4v2m9nAgKqovJ+XTSfJCAZVuHnYmsd5venzwTJDNzlJLYEkZcbj +G4yFPIXO786pyK2v12xOj/e0pXuL0vMaUJxo/Ls89MUnSQ2VekPWLqhG8KB3wV+o9Ek SQUUAkbGzakfTtVax9T2w6UM8sDtK3Pzg/ob0uTqV2oZm/gNRfZ1u7jVtXkVg+x3/KLk 5Jr8AJH27kNJA2dmaafJYB5Sf0CnRii2L89Nc4TWOTCJthHJmRRYWKC2mSjGSq+3TrAL W9iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=K/vDyxbTyIyDRaDuyfDdupk2BSb7ThAryLMUkFyyZGw=; b=QYqHksKYMungX5qOWcMsI/f41E+T/PNAMskpV+gsiTVbFDyW/TGJEXrbsCXq3UHU/z MMXmPrbuk5+dJsL40bBHNWr6SaFv0nQtz8V6Jxe9lcgCm0hzAWH0VpnGQ5OGTTCg/qVG 2T5+3CQA2f81DWN7R4oLuwDRyav4eu+W0kgeXkY1hVAdJ/gwqWTSN/d86/3RWPVTY5yS FMQnLt0vLN2Ul2e2t3Hf3r35xSbt/A+ymdf3QihKFQLPv6LOrFBHGZ4+lCtYCYRfWv7s o6nbEjbU3lHlvX82tw/lIV3bWHSvWqAbYAv3pXWAiMRHrXoS+Y602zSmJ0eR2uPWzDoO yZNw== X-Gm-Message-State: AOUpUlEqIGZAGwkEmow/oU/2tncJiETaIHDn2Wz3hpDgLQE/ZmdLr078 lF/zLEDs/rW/Ru3JDS0LBrRPXVJq X-Google-Smtp-Source: AAOMgpdelrFiNdehrR6XcjV4nRNLLazcHdySwI/WwetBL7Fj51WtKpQ/Vc0geZhl887btMX1+yzFZQ== X-Received: by 2002:adf:be8d:: with SMTP id i13-v6mr11874434wrh.86.1531747586499; Mon, 16 Jul 2018 06:26:26 -0700 (PDT) Received: from localhost (nat-35.starnet.cz. [178.255.168.35]) by smtp.gmail.com with ESMTPSA id n17-v6sm2621330wmc.13.2018.07.16.06.26.25 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Mon, 16 Jul 2018 06:26:26 -0700 (PDT) From: Michal Simek To: u-boot@lists.denx.de Date: Mon, 16 Jul 2018 15:26:25 +0200 Message-Id: <147f538fe2106c4bb5a3c030c8ecb1e5f67dddbf.1531747583.git.michal.simek@xilinx.com> X-Mailer: git-send-email 1.9.1 Cc: Vipul Kumar Subject: [U-Boot] [PATCH] arm64: zynqmp: Added support of mmio read and write commands 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" From: Vipul Kumar This patch added support of mmio read and write commands. These commands can be used to read and write registers from the u-boot command line. It can be useful in debugging. Signed-off-by: Vipul Kumar Signed-off-by: Michal Simek --- board/xilinx/zynqmp/cmds.c | 48 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/board/xilinx/zynqmp/cmds.c b/board/xilinx/zynqmp/cmds.c index 1f6a5dee1ff1..f8c8674f874c 100644 --- a/board/xilinx/zynqmp/cmds.c +++ b/board/xilinx/zynqmp/cmds.c @@ -61,8 +61,51 @@ static int do_zynqmp_verify_secure(cmd_tbl_t *cmdtp, int flag, int argc, return ret; } +static int do_zynqmp_mmio_read(cmd_tbl_t *cmdtp, int flag, int argc, + char * const argv[]) +{ + u32 read_val, addr; + int ret; + + if (argc != cmdtp->maxargs) + return CMD_RET_USAGE; + + addr = simple_strtoul(argv[2], NULL, 16); + + ret = zynqmp_mmio_read(addr, &read_val); + if (!ret) + printf("mmio read value at 0x%x = 0x%x\n", + addr, read_val); + else + printf("Failed: mmio read\n"); + + return ret; +} + +static int do_zynqmp_mmio_write(cmd_tbl_t *cmdtp, int flag, int argc, + char * const argv[]) +{ + u32 addr, mask, val; + int ret; + + if (argc != cmdtp->maxargs) + return CMD_RET_USAGE; + + addr = simple_strtoul(argv[2], NULL, 16); + mask = simple_strtoul(argv[3], NULL, 16); + val = simple_strtoul(argv[4], NULL, 16); + + ret = zynqmp_mmio_write(addr, mask, val); + if (ret != 0) + printf("Failed: mmio write\n"); + + return ret; +} + static cmd_tbl_t cmd_zynqmp_sub[] = { U_BOOT_CMD_MKENT(secure, 5, 0, do_zynqmp_verify_secure, "", ""), + U_BOOT_CMD_MKENT(mmio_read, 3, 0, do_zynqmp_mmio_read, "", ""), + U_BOOT_CMD_MKENT(mmio_write, 5, 0, do_zynqmp_mmio_write, "", ""), }; /** @@ -99,7 +142,10 @@ static char zynqmp_help_text[] = "secure src len [key_addr] - verifies secure images of $len bytes\n" " long at address $src. Optional key_addr\n" " can be specified if user key needs to\n" - " be used for decryption\n"; + " be used for decryption\n" + "zynqmp mmio_read address - read from address\n" + "zynqmp mmio_write address mask value - write value after masking to\n" + " address\n"; #endif U_BOOT_CMD(