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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id F284EC433EF for ; Thu, 3 Mar 2022 20:46:13 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 213A983D14; Thu, 3 Mar 2022 21:44:57 +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="EAwhy/Vp"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 4C07883CBF; Thu, 3 Mar 2022 21:44:40 +0100 (CET) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02on0604.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe06::604]) (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 E241983CB7 for ; Thu, 3 Mar 2022 21:44:26 +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=MMAm52JHL7Uj9/EfhjBv2pOHgLk1Bilb1SCCGpz8V6UCIBirnm6YEup6v9C+hdnY9FrPmhVPDkBtWnvwGeNEtNVhK+BhKSgWnI27vDk0t8gMfp/xCL2dDB8iEtM7NhdMeF6LeE7SZ31ZI7dF8BlR5aOxWCs2r/NExKz6gD/4fNB4u5RC6ONpWZ/xB8c6Hr2qQx20FFywrLwf4G5AiIgJKVmbr3K2f4PBFURqpG6l3sJNbXIe64HSSv532t0dw+PGEC82CwQ8HEgRTwAWptDvsUa+JsU9wQhGuHEJuxHy30Lnr5KPLpSYPEKY8GD0TIecv8QtGE7yCIWAIt6jXCBkTA== 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=ulS/ry1jVwmJPeAOgIncKdG1AVvjPpkrroXIqutkq98=; b=OpK67I11QfrvB3+6dcsHbGTY2jQwX1cA6uxLKq/djPd4R/gxsHWkQj+f6PIOoPBTwTDKOHL16363oiDRHpWHo3KRLxjfCFAV1+Nv54ZKt0rS44tTIEPh2wmPJ2KJMjJlYvLVz0vfwT7uxKUcVBtwRxMmEsW8kagXYbQbBMqug2zGTSC40lEO31TFnXxe2sQLVdleF7P0UnXVAD1AY2G4x/+5rInLAwFJ6yBwERGZkHMs8v+QYii9wFpDOccCm2efutO3dfSh26WM7kSMidMKw4GUu8yfD9BAXNnB6AV0FT4BK/lPHMN7jtfEu5C06mVxQMn2vu5LEnX0CEGrfUGucQ== 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=ulS/ry1jVwmJPeAOgIncKdG1AVvjPpkrroXIqutkq98=; b=EAwhy/VpLjveqScLQ2NS6msdc7atW6WCgy3pDl/UPxcTyRtaOLZHyJqga6PYJVsn6m1wYVDySkNdPAqK6gWee9htpf+1RpaLJ24SRLhVyNgz1xc/8Vj4mi6idqP3CClClnzBc6aRM2hIkjyST61/rPB4KbpyWJkECZTV5177AUKASlx9UBke/sVOpr4jHjz64tft+0vWZD31mQGDKI5mehX92K/y1S4NfIj2eKXYYAtGhFHMfRJKBxmSgbl1cdWpi3hswwmVXwhYrPCzaG9y/pcmaA5AD/rjl+sErTh7TWfD+uc6G2rOaY0dAanyTFFwmWU0GCy/W0Oqm7No9no34Q== 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 AM6PR03MB3573.eurprd03.prod.outlook.com (2603:10a6:209:2f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.26; Thu, 3 Mar 2022 20:44:24 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::9130:93ae:6e27:e9a]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::9130:93ae:6e27:e9a%4]) with mapi id 15.20.5038.014; Thu, 3 Mar 2022 20:44:23 +0000 From: Sean Anderson To: Simon Glass Cc: Linus Walleij , Tom Rini , u-boot@lists.denx.de, Sean Anderson Subject: [PATCH 05/17] arm: smh: Export semihosting functions Date: Thu, 3 Mar 2022 15:43:48 -0500 Message-Id: <20220303204400.2787389-6-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220303204400.2787389-1-sean.anderson@seco.com> References: <20220303204400.2787389-1-sean.anderson@seco.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MN2PR16CA0013.namprd16.prod.outlook.com (2603:10b6:208:134::26) 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: 428d75a1-a44c-439c-0e71-08d9fd5699be X-MS-TrafficTypeDiagnostic: AM6PR03MB3573: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: MrXK6NJJhKwjIPFo+Le2OakK/MyZhTM6Ek/Q1huMPf537Ubd1osn83zgb+BemU5E9MDPh1nnf1G3NFABduJ3nNrmmmJKoaaUsY2KcRhqgYPL7UItuKKWcc14M9lf53C6+tMWQ+DuAph7m1lQjH+UxCn93y/4IZl5SSaQc4zlf5rZgOARB/t5r4v///BsixZaVs/eX4I1eByvVFE20SRfn9eMJDp9gT5hUmyIZgQugxnizseznOJlONkd28Qhtoc25yxUyVyb3zxF8aQrSYkHPg4y9IY3l9z3k/MqVg/hZi0KBIxdt/cwNE+Mp6Ay0Wkr9MK8hKkVjkV96YRI+RNZCiTKOA//0pdfz8BAK1qnbTCPJQyNwKnIYgnCMgDPaUgpFunfKa2m14hEaMEVu4rbQcwdhK2WJbxImrks1ZGDkOizjPpxboy8Pcd6+Z5NP366p83+cmssgNW/q6vq0m6Dvmxo/GNy7JMYBAvsq6P1jG2YpUnHFVHS5vQK/fgal8JBtcSjdeAlSDn2NcKE0YvInKpbxKMSU//dkXF0JyWuvp9u1FGWjNCaNFalos7cQWCE8dLKRQ/SJhkB/qMDd5REp3HYLCHmAdqLYFib68AvApZ4CsOdPgl99car05fKe4KWUZkon67VDEXWAcWvkodxNMLJqFITSi6pVaKBWNFMPpli2Ri5jx5rXtyNoX2J6zMn7bgOclsF7SR3i3gd+VGV0A== 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)(6916009)(36756003)(54906003)(1076003)(2616005)(83380400001)(316002)(38100700002)(38350700002)(186003)(26005)(107886003)(4326008)(6506007)(6666004)(508600001)(6512007)(2906002)(52116002)(86362001)(5660300002)(6486002)(8676002)(44832011)(66476007)(66946007)(66556008)(8936002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vihwIyNGUSksucxxcXnIc9GwJGmwkommPclG7+aDe9OF2ogr9kFiClvkc+sp?= =?us-ascii?Q?lUhQOYH2orPMmty1espx5/++9QFn4S2EZJk45dZFCuDw3enhQaxJc4ocsyUM?= =?us-ascii?Q?AP66E8vXFIHG4mTqY8DnPRYjRILdTjUkewZRYQo+BM4jVO92G6nnkm2RoOJf?= =?us-ascii?Q?kEarDX3BMbL+cOGredhDGhua1B7JkrTSAPzINLoTTDiIuRxU2G8GNkSpWVJs?= =?us-ascii?Q?/kov2I4d9rs87IbCyHO5abtqKgJ+XUahkg6cElqjTI8zfdtzKwbdH89fvB2u?= =?us-ascii?Q?RaEmLaWgeSKIYDp0ztAYDxCCp+wx9BdoLRnQRzF3/7lTDAGdemwk4sEY5CM0?= =?us-ascii?Q?qQlqJIL7rQbfhsLVH+ur+FvplM+/qkxcqWE3FXAN87MiGnv+w9QEzL5OvOua?= =?us-ascii?Q?x3hgrUG8K7kUkqDP8pZxbeYrpteDsiSb8PfAQDIMZsiPl6YkYXLI1NWWv99d?= =?us-ascii?Q?bNYhwAtQhufmhVecEKsqL9oWf5td8vgycAqLrhcPwG7PvmC+Qt3niyhvLWRn?= =?us-ascii?Q?k6wFuY/cUEdOvkF22hRyT3zzDMzn6qXrE2k1LUp69scq7KHOm6ya3nzP/6QV?= =?us-ascii?Q?yFfXm5YCU4lr6mUycxkw4enonOqk8wdeWWboZQ4EXyj/XIxGAyCunOKJZQoX?= =?us-ascii?Q?fIj9TwKdc66BfEAJz6l3G9piLgsU+ekaBNeACiA3zn45faaVT/i2st740pOQ?= =?us-ascii?Q?ipKRqCO5JNlYAAY41bwdRV0MOyd4E2OgDIvCWmtDTm6aVrLZT1Gxa0q2KMj4?= =?us-ascii?Q?vFCNmuM+MjSj+iwGYYGaJSojSrDtKMUA7bgEHssagFkByKvcVPjaSiYmA6Pv?= =?us-ascii?Q?PXhY84ApaGAVeSj6R9cFdM8yH+BKUhaBsDvjLn3QnZz/cpZktyNtqnxd+weM?= =?us-ascii?Q?2OsZO3S6XXPaPjH/wnBgNrzzknntYV1hITZ6riddg6SzlgBCZwzBHTO9b3kk?= =?us-ascii?Q?jkaZE6G7glHThm629UorSoMNCWzcNslHABG0fEeq9xqDCGL0JHOutoxn1cST?= =?us-ascii?Q?M+I1qRxJUgaxioYmQU9q4K/tUg9JwUi4vtSXByOQWmjktaWxRTWE0lT4iJC8?= =?us-ascii?Q?6ISyATz4to5f9EOCP3qdgycENAdgv05gAW0uYRh819/Xz/FjIgDBLlWT7xmh?= =?us-ascii?Q?DhHzVWWZt8lmUfkDmwIS8i2r0h1iCESFU64AUR2eoLnLlu8i5P1vdmFs8Fvy?= =?us-ascii?Q?aOYgTAkZsDEUd6l9B8z3vV9IlO1OoxLupWn60q7e8IpjDGjWGhiQXeJ4+kOj?= =?us-ascii?Q?3qzXNyBzkO5sLl4rWM4pUTPQfqT09c0jNMD/0uh31O0iZSA4W0ptR5mo2ZY3?= =?us-ascii?Q?RUo10yv8CPekhydtpSReHpnisGwVKzFY2FZTBootYJTF/xwhstTx9vi6yjyj?= =?us-ascii?Q?uIfaupB1Vk4fg5eq97vWceLGCHHc2hYongyLiunneaaCh84q8SSG1UredS5s?= =?us-ascii?Q?X2lIor0hYQAUUUKXluS/n2W0LSqf20WDRGV/zvxUSwTMqylN/CpuO7ViKp2q?= =?us-ascii?Q?wHB8x0co8un/xf+d3v+c/ZLheLqtx8bzoO6G5y+hgYEJCL7fc4UP2Y3v+hFR?= =?us-ascii?Q?IExnGbLEI+syMKtS4VFED6+lj4PDKN/fD6e+xzlX5a5MxylgOvojkvz7M6oM?= =?us-ascii?Q?NotzzpWZATWpOU/B5GiJwSo=3D?= X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 428d75a1-a44c-439c-0e71-08d9fd5699be X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2022 20:44:23.9270 (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: MN+Y7E0bJisN6CKFgEseTQFgiAM7k+8M1RGlNq9MEbRJq/PyrV5upDixhNeJaAQXz/mzIroEzJ7sEQ2dW/QEow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB3573 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 --- 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 */ -- 2.25.1