From patchwork Thu Mar 10 20:50:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1604132 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=sNLeK+oq; 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 (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KF1V53DSnz9sGB for ; Fri, 11 Mar 2022 07:52:45 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 34EA283AF5; Thu, 10 Mar 2022 21:52:13 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=seco.com header.i=@seco.com header.b="sNLeK+oq"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6B66B83AEA; Thu, 10 Mar 2022 21:51:37 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on060a.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0e::60a]) (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 6156083AEA for ; Thu, 10 Mar 2022 21:51:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sean.anderson@seco.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BIuIBs/3yhaU/F3+lvZq8c+krDzEuil2eb4XZk2jmLJWYvwldLk/K/mv3nDeoVsdM2iY1Ut23h8MUtv0eJfv+U4n2apaTGlTsXkjdMVSSRfCFMS1beoAd7OU5Ip5AZYUXchMkVDwpoeVXcsG1Rymh3b/LBAeyVD+WiCfvCxOB6RDRoLiKoR7LF8XoyP7e5scn4FgRAEAFxeZ28B20Znm3uKSB+4DdpvE10aeR29y3M/85fgfm6MiAix4jbdxgQniu5Ygn1T/al0YrRs6uyWLnzuJOeqjCtsui8lDIgQxyyBCzAtqVjEpxmclcVlDqZaNoNJqCx7CGXz/A8y3mtCvAw== 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=v5JBcgiuhxgZl/ZV+PxXYQ08kgGx1TzLsB5cePx7e5I=; b=JtnOtSK+eKlPGpr/k5H3N0kyfDBtgyWtiqcg/VADjO8nw/j2RoNq+zXY5+fml/yBjzZ/IfkOJLcwBZPu19t+EkQyQfftdboj+RCB95mE59YJSnvawFYFDS0y6bzVeQdnWcQhD7V6gfHQKwI/26DSZaVmEHXjZe3b8LIfUorbAnSrBUPPsiigZ25nPs4omfO0jGnAqGParNX2XaqYNs4xxEUnH+kEgwniifi2rL5t3Pzt2Oj0TFuXmbsok0lg/ofrFoBy0kv8+gR82ZjkgPkk/XBs9OST0ZpSYRltFOOsE/ZG8WXopCMbMSqByvuuQEjKmokP0At14PJK7x6n7kw/ow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=seco.com; dmarc=pass action=none header.from=seco.com; dkim=pass header.d=seco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=seco.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v5JBcgiuhxgZl/ZV+PxXYQ08kgGx1TzLsB5cePx7e5I=; b=sNLeK+oqnM+wfadxh3/DykV4oXX6TGh7D/sBO5K0tuAJElqJbyxvZqR2Rop8F1hZfo9lHZvoiwb0KrSMTgCU6YI4AU8N7zX7BRjrQCsELuzW09X5348Ah9Ltpe5mf5s4J1SypMnEb7Jq6Iy7rGxaS/Axa0ejc8gWVigKMHyEEbiT0H6z4XqsJRHjKfgGr8YG56Ah7pNszoGLromPqZNQeoO177+Y+iQyB8FodLeTinOwEN2i6pc0PpUnssHb+CiNkjPTtBpxpIVguUb5hSQQqmPJghLgk80x9c9JLq2mJ4L2d2B9AEIcvMsH4zStbRGzGg0IrlZETIX0MBoFvs5PlA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) by AM5PR03MB3105.eurprd03.prod.outlook.com (2603:10a6:206:24::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Thu, 10 Mar 2022 20:51:27 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::9860:b15b:f166:5896]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::9860:b15b:f166:5896%3]) with mapi id 15.20.5061.022; Thu, 10 Mar 2022 20:51:27 +0000 From: Sean Anderson To: Tom Rini Cc: Liviu Dudau , u-boot@lists.denx.de, Simon Glass , Linus Walleij , Andre Przywara , Sean Anderson Subject: [PATCH v2 06/28] arm: smh: Export semihosting functions Date: Thu, 10 Mar 2022 15:50:36 -0500 Message-Id: <20220310205059.499269-7-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220310205059.499269-1-sean.anderson@seco.com> References: <20220310205059.499269-1-sean.anderson@seco.com> X-ClientProxiedBy: BL1PR13CA0433.namprd13.prod.outlook.com (2603:10b6:208:2c3::18) To DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1eb1259d-2e30-4c66-2661-08da02d7beff X-MS-TrafficTypeDiagnostic: AM5PR03MB3105: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: FalAUp38g07dig9gqWOiLtlfm1A9VBj7BnCojxK6J060qQ+3vdHzFzO1nNzsvccgiytg/b+HJsJeFGpYXL3iYK4IjAsW5agyjN8ijKIuRtWcjkTqnYtWXjXfyTf5mIICM6VtjN92IPg86uA1eQzFuk5sOkKPn2ZWQ5yvSXepDNOn5T5ESUM+zxMLHNavUVkT7NbsRaDl6F+PPqp3xO2UHSDF79lQPi7rO6vxHJzNWv8cHmV173aFd8W+6/6kxZnzmEbi9MytHoFGb1BDRWEnNMg0FHEuvPyiSahVDEPhpSP4OPHhNaKvCslDDFRI2zrrASr80s7yTHfkcO4hesjl5G+8iz67AmEtI9e3ZE5EoCN3rBGyp9TvrrgQDSSUX7OM4fFf0+Wle3ghJQhTBE4xKy4AuvfdrQ0TbIJmLVUIOYcW80PxKUgwLWA4TK91KOUrU79dk44HCZ7vxM6gDFF1X6oFlo8ejxsJmPD0LcRyWPFYfcTqvUX8dYJFguWZavwTOrOFYtINIUJGHCB9ecsrM9DX5uAD3xlQfPST8ZgGpUKqd8WxUKN4sPVHpQ3ePJr9tU+trEK8SIyiqSO2s4bVjYsZYuLc+5MyXZW/zz4yKIDsvxkfA0pOGT71oy0xOHBEXhKuiVoRtczDWj+jDnDs0IPP6zh84gL8JSkTRUOl7xqQzLxI8elNB4KQ27K2RZRLg8AM23ZT0Z6FBlBrH2lVBA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4523.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(44832011)(8676002)(54906003)(6916009)(8936002)(316002)(5660300002)(66476007)(6486002)(86362001)(66946007)(2906002)(66556008)(508600001)(107886003)(83380400001)(36756003)(4326008)(2616005)(52116002)(38100700002)(1076003)(6512007)(6666004)(38350700002)(26005)(6506007)(186003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: SYR2w+vBYwG6axraP3bNsp5XOOGq2YT05ox+7rsk8R5ZLBFkYTnYOqNXZ9mMLWoc3RiqTS0n744wjATyOBGHBwkIEcLxksizgg/04qIy4lHDul3bdcnQQWGtAcWuDT1GdmUoH9bThBCvNwRE5+llPEQUfjbHFo1/YwRfA8DrvPpECzP5jD2FQ52eEy+KY3Ddejfct39Xd6/TGTFDr6wQGou0JfgApzWGVVPh6wk45u0lIPFkLSx4JsOCZK+jb5AqkikSuEF46Yr56KlQw1cYN/cFSWnzSQQbOjTt3/XG8gxfcoaf3y89pZ5vvOmVrIr9jmDGjbr8iay1Or2kvQpmL9VSlACMHnN9fbqienaxbyAC6gzY+4cLTfBZOwqZH3mZWGiZvU6Wn1H8mXDzVvtI9t2i2B7GPgnw20EdSYBMDbXxd2p7PItQKsOxsPmMc+Sb5X3yN1HyCJ8lUICPXzj5Ati2gVbgyUThMDOkIjXiazXOlzl3cAd6ZqLsLDiUKa+e+B3+T5cSmZo1Z4tpsK0Hn3Hb3mh2abAWnjj3jTXamI4ILTP+1gGd3Glx3flyTDjo0x+kIoAJBrmdq5bJhIh+G+D2yY0T+RYCh6GmNC/AeaD2qaqx+uJz/6Lr/2s8ugJgeiW5krfTZ1VV6ujDlHaqL22wnGGM7Ph95zc0yTwK/lfQo+J4r2XAE3Ma5g2GmZxMHsGd+fRBDoRBBiCRU8spRaVpmsk5nFBRp2kN79GReMmdNcq5wXUzUQwK9z1YRo+/MPQOYO2KshU6j9wcVZsUV0JohnXUs5+EvvdK61X/wFqdOx66/rG7q57OLJXvS1AQuKFrj9WNX8eLNhn5uWcm15uUNbpsMfGPwfy6a5UtOgguDka6v13W6eUOfgGatPCt8Tq18fGBon/7uGlrQTUIoVnwIunw/auKCxwOknGaRK5gfnU4++SqNdR8k8Uh/BbX0NTjD5vu7yxRgHas+qi+RqE6OcwWcVfYsMr4sz4lXZhDqzZ/oUbFSZtHVaZOkkAboiwB3t83XTEahHc516E5rM2EwkL0J/ZXGw3um+L1e79Vo/MuMzx7N7XiIRE/yEpWwZLreAbPpsKF5hi5qsZ2NFndL7VN9YWNEHZfL/GA8UJL1DYD0kn7+J6rl5uOcuBXqXxiQNlGmQWwvgbVOylPtJxl171hhxt85vYeRgvH5wZ0m2tHi69JKyF5F+Vxl4SswHUmA1q1VuP8u3YciDFfSPtlhbkU1Sw1QfgkLNdhfQfcN/F2HGXn/11tU3NiAi67TGu+gE04/fEyjCx1LT6q4QwPG5mFku0pLu9sQdZxoYLYw7eZmdFCF8A/u99qr884kjMb+HM2kOtdMaS2UAcy3F4WtxkEMAuR7+mJ1pfG49Ym1j7cqUnXZyZkkYEaw9JJ9VQulco0gni4jY0Atwc873wOg/nG+eg0ZXo4sNes3NI3twev7238CkInkol7nGx7/3Q0JOtrePECSFJbugBEXty+pRqGpqhMoLZUKDpl5q7Mdbg3R2KXRKhnxC0bzFpSETob4Vu0p0JM4va3VoIxQWVRb9vMJqxvdh2RPGgj0qGWY8LySS66yxj2RD1LGDBA2abbyrIACyF7CjKNjYrdlwvvgJxBSu632yZgVHeT6vE= X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1eb1259d-2e30-4c66-2661-08da02d7beff X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2022 20:51:27.3369 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: p20rrqG58/LeH6JVXjilnAC+LEgKlBmKS6DYOz2aMVA9w8hIkCJBZFd+iR0Q3BjPetOU5jO5H6hiMBLYcSg21A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR03MB3105 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 This exports semihosting functions for use in other files. The header is in include/ and not arm/include/asm because I anticipate that RISC-V may want to add their own implementation at some point. smh_len_fd has been renamed to smh_flen to more closely match the semihosting spec. Signed-off-by: Sean Anderson --- (no changes since v1) arch/arm/lib/semihosting.c | 11 ++++++----- include/semihosting.h | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 include/semihosting.h diff --git a/arch/arm/lib/semihosting.c b/arch/arm/lib/semihosting.c index 9fd82459b2..c38892fdd8 100644 --- a/arch/arm/lib/semihosting.c +++ b/arch/arm/lib/semihosting.c @@ -15,6 +15,7 @@ #include #include #include +#include #define SYSOPEN 0x01 #define SYSCLOSE 0x02 @@ -45,7 +46,7 @@ static noinline long smh_trap(unsigned int sysnum, void *addr) * Open a file on the host. Mode is "r" or "rb" currently. Returns a file * descriptor or -1 on error. */ -static long smh_open(const char *fname, char *modestr) +long smh_open(const char *fname, char *modestr) { long fd; unsigned long mode; @@ -84,7 +85,7 @@ static long smh_open(const char *fname, char *modestr) /* * Read 'len' bytes of file into 'memp'. Returns 0 on success, else failure */ -static long smh_read(long fd, void *memp, size_t len) +long smh_read(long fd, void *memp, size_t len) { long ret; struct smh_read_s { @@ -118,7 +119,7 @@ static long smh_read(long fd, void *memp, size_t len) /* * Close the file using the file descriptor */ -static long smh_close(long fd) +long smh_close(long fd) { long ret; @@ -134,7 +135,7 @@ static long smh_close(long fd) /* * Get the file length from the file descriptor */ -static long smh_len_fd(long fd) +long smh_flen(long fd) { long ret; @@ -158,7 +159,7 @@ static int smh_load_file(const char * const name, ulong load_addr, if (fd == -1) return -1; - len = smh_len_fd(fd); + len = smh_flen(fd); if (len < 0) { smh_close(fd); return -1; diff --git a/include/semihosting.h b/include/semihosting.h new file mode 100644 index 0000000000..3843863046 --- /dev/null +++ b/include/semihosting.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2022 Sean Anderson + */ + +#ifndef _SEMIHOSTING_H +#define _SEMIHOSTING_H + +long smh_open(const char *fname, char *modestr); +long smh_read(long fd, void *memp, size_t len); +long smh_close(long fd); +long smh_flen(long fd); + +#endif /* _SEMIHOSTING_H */