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 89A4FC433F5 for ; Thu, 3 Mar 2022 20:47:14 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 863F383D5A; Thu, 3 Mar 2022 21:45:24 +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="f/Dr8UT4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id F313D83CD6; Thu, 3 Mar 2022 21:44:50 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03on0608.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe08::608]) (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 79B1583CF2 for ; Thu, 3 Mar 2022 21:44:36 +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=an1VrFqKspCRCkvo7EhpIy4AKFg34sDaL7vHmaYnQJq2HEiBwsoEVTrDPaFxqANbSuCg6an5QAl9WKEyr6x7KeSwiJJJ07cqGO+w9Ns9/wp4FzFHoHRKkNQtyt1wyKfr27aNwPgmB1rQ7PtES8ej1G9vzgN58QbvRletuOCI8KHTvZOJHx1R9vgHvDM6CUUQHK4HJMjGAz5M//stirAE2xGmVbN8kmOyL08odxn/3Q06f2wwbgRRMCynEs2ayrD5CekbMSv0pNlG8UPq1qbKxTTWdUKIvsi7PFro1TSrmOtCA3SVHJ7Wx/3pds2hFxdkNy3sSkao3s9vw0aFDniyfQ== 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=5r2H45pJ7J1ZOSGANTBq9VE9po9u0Tgu9rY3xBUUIgM=; b=CGuH6r4fG/6Ax2wvAehIH28yZuVcDkHqIeBe4Mf0bnEQ2aLwi3+ZFq1tXQrIBbGEODgzwfeHowtWvrRjfe/oe79KpuZkbHW6uZz3mQprNcLXSxoX3bzOLwiWXTgxEN/DHC8J/puqMrdiNO9D/gMAyxE9CC5NdkC4T9kD77/SAiMZXds2HRoaUzCB0UF22AEr/6GalLkG8vmoEkMYnpiejIHFAFHq7PBqHEJd8l0mR8bhvaOWRzPkx/7KE0q2UlnqFo2Ceoqd9UDdDovcu7JXDe5oPY6v+Pjtd0lhYMG8ZhZXrSOlYb+oUCeqMRC1krF2g6Ig5bKAK+UTA91mDoYWLA== 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=5r2H45pJ7J1ZOSGANTBq9VE9po9u0Tgu9rY3xBUUIgM=; b=f/Dr8UT4EWQEdMP4HQ9VzEejVFJm2AiZQN7pgLciC3jGylNoJtL4CXMJCG+04Q5HkRylWzIU8TF99Ba4Oztm/pGFq8ZN/rXomcNNaiY6wm5OEmJxhxrAoQBgsKReL6V12Rr5PORRQG1C2QEczP8geg6JSDvzOyh6qI3+uRovhy/M/OSdej3SqcKQxP9T4yrNaOV5Ae59bdhIMTZ7K6aeIcc6L82pISBpj/QyS1iOEed53iP5aFYPTIk1Lv6zr7qTR2ETEsD1y1TQYr/qgLMFI2N1YmjfXNXOEjE4VYcFYhIr+dnGrz1dIBIXM/CVfRy5zYrCbhKUTO0rEJXrf9Q92A== 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 VI1PR03MB4893.eurprd03.prod.outlook.com (2603:10a6:803:ba::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.25; Thu, 3 Mar 2022 20:44:34 +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:34 +0000 From: Sean Anderson To: Simon Glass Cc: Linus Walleij , Tom Rini , u-boot@lists.denx.de, Sean Anderson Subject: [PATCH 14/17] arm: smh: Add some functions for working with the host console Date: Thu, 3 Mar 2022 15:43:57 -0500 Message-Id: <20220303204400.2787389-15-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: 87438df7-c79f-4bce-30e7-08d9fd56a032 X-MS-TrafficTypeDiagnostic: VI1PR03MB4893: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: QsAMFCt+WaQdiIePwKxGcgpaS8AwJTfSmSCJu0zJKFJ27Zzpi6y94kijNWR651s8YiTV1ZVNNjClW2mCWdOEzEX3rpDNsaHwpI032jNUhd4nSz9pEAkWnwRJyDGiVsFsEkgDqOhqKEIhPBnD4l+wkzk9nKtcF6cU1ieoQoBpz13rIDtKCz9KuY4vmG3F+PbTTicNV7m7VDx7dlSXO+Z/KjstpJwH+LKFMMU4qaiL5ROGIdtoKOKSBXX8B1mVUAmtcI14EwMpaWmRZFy8Tb11vC7f3tqiAvIKmgQx6HdhkInzm0AssA29Kme+ingyKgOkDeN3FmjlNnKxkmOeF+PWMk6IOOFnLgqMUvTa1GyFznvSEu/ZheQynUI2XEbXnzKPDtVwy2rsgsXuwqDjYPjguhR8EDdqy5rH2hkuZwm2el7qajSBTfC3attBfKc32yD03t2v+btEOZn/N0cfWu2TKB1/DQDzikINaWb2ElSGt8K1L55+BJuO3zexQVl93qEojRIIG1MZXfHKMTCD17LJ+UKiBFrUr9QfnLYQzSDRi4aSQg6Auq2TyhUuLGwa7ZWmQhCzlFO2SnQcw/aqAMf2wLv23P8k7rp99jeHDITt/59OlNSv+wbcytaG1XGkqmfBFu8umfiZ0CVv2axECEM9L1DDwSu5lgaU7vfG0Y1FxaN+Swc52hreh4ctuhOf1KiQAPe1XU4FDvf+n6LwDzmmvQ== 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)(38350700002)(38100700002)(44832011)(36756003)(2906002)(186003)(8936002)(26005)(5660300002)(508600001)(2616005)(8676002)(4326008)(107886003)(1076003)(83380400001)(52116002)(66946007)(66556008)(86362001)(66476007)(316002)(54906003)(6916009)(6506007)(6512007)(6666004)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PFg9Xjd5HNFKnX5R/rEBy3tMM5OXWdJZFT6jLAvTHoH6nkPC70rE+uCRO+/M?= =?us-ascii?Q?QdM+aYbLLOecVsTfExqTLOxxrFMdVox/Q6kRzxEXgnhqk8qOdqzm2lEnwCsE?= =?us-ascii?Q?+qiJXG6ZQF4khZMl/fjgjU61zapVCZ1DZsdx2ganGkO+UG5Ax+DbTJNalEug?= =?us-ascii?Q?k78L2M46gfNNAp17f7WIm8cBl3ZSppu+TYxrArxpz+TOuMJpjTL6OcCmHq/Y?= =?us-ascii?Q?Z5MSqAq/9F38c0IDJ27uBJ0pRZZqOZnGlUhViFihce3FqI/HirkMI3BIKo0C?= =?us-ascii?Q?cnjoJPLygjK2RZxmGzM3hjmkIZ7D7lJrMRz/ZbBtbTx28P+jFGE5WzNV/vWl?= =?us-ascii?Q?penjs8PZ98TbawnzcAzhICR3mW+JLZj/cC4n1PTsNMltQCSEhZdTGrdMPk6r?= =?us-ascii?Q?x1zNI5mwMATz9lLQvhm7URgpiSLS7icJ+vlgeSoHB125q2Yor065PZmLcMoZ?= =?us-ascii?Q?zEAPyuFg1fAqNX6kztuueyNWMLuNOIe3usAxacfwQBsSU6xkPsoDOtbI1QrW?= =?us-ascii?Q?nxv6EvjZhUeQ4INlTAYHOhR445OG8d6vscTYAA/DUTZtpViRFJQ47MuvJSM9?= =?us-ascii?Q?J2tDMQtub5vGbCuCDspGxqKG4+ejfvls4MMA6n+s8hvpQgdaP6Af1kr4VlfS?= =?us-ascii?Q?u/cY+/a6JxO4dweb9CTvRq2FFXVo9OehyUqO3x2g7iE3wSXJ5Plf3hgeyCAc?= =?us-ascii?Q?61kfZVlpzLpwPurO66vvpobdKCuTzF78V+3dKNmdFHoEBBTAW4WqGlQ9i1AI?= =?us-ascii?Q?9n5rgHq39zys3Hyxu/Ky6ZSkZCV5NdblWG+VI8wHV8hgUYulhq8AJCu1ViK7?= =?us-ascii?Q?k+uz4/p0ynnQhAA5jX79fz5tbqO9xNL3mQVBXG/RbrCzDKmt9MM5x6BygrNW?= =?us-ascii?Q?aELhdXZkJxiJvD6BH3eCQRCd/d6V3Nnx5b8SfcFOGQafp7SqMhIPu8VsPDdQ?= =?us-ascii?Q?YPzcifBP29YYei9w7OChJzBYUFpP9JAXfozEwHDXG4EH4LiNhnoLAm+5B99B?= =?us-ascii?Q?kMoyhZRtzRw6pZTGkm+4r6uviVvgOc/N+hhCg1ohswqEf7+4sqhjIE5RWEPR?= =?us-ascii?Q?tTS5uRgn16k39rrtcAYyaqLsu8ZyklaMsafEvWcDFgLVfnIdV+qmsbFOpQBU?= =?us-ascii?Q?CdWfh/4+Jst0FFKQNibLk6ZOTROZrIoOu6/gtIPmRL8xVKnkic8wteevtGJa?= =?us-ascii?Q?NS1GPUSmMTrtZNcrDv0FnNpFA0WNG7Q3P+QDpvOmBaEASnKtcHD46kGGvcqy?= =?us-ascii?Q?QEcBNQY3ZHoBNlbYXgRN+ozS0SFxoI84kF9Nvx6/IzF7hsLb4Ek4hgtgIYYQ?= =?us-ascii?Q?LmwLNJ+TDS48sV8MT+D4kGobV3eIYYLktWAqEFqw9ayN0C8tswOVgDnl9xCr?= =?us-ascii?Q?x2IAOlG0MXudKvcsgocgilzhLRswUafR1ffhsuX95Re6DPYixQSwzNZ/hCg7?= =?us-ascii?Q?n13Zno6ZI14NijeiW5O1FJj81vpFG1D9qAuUg46+STWckPWDY6ocd7nuRqkE?= =?us-ascii?Q?QwDwLLmRVIK+zPddt/yVD91mAQdm8jCTkXco83ybK4onVvLZ7zuTe8udsWw0?= =?us-ascii?Q?lfmQ79SnnIfFaVxdYTLfbc+DhVLOmYhXcjN7ub6Ix6c6wdo9C3WiuaFinTlg?= =?us-ascii?Q?rzuCo4vi+bPtGIqiii2E4PI=3D?= X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87438df7-c79f-4bce-30e7-08d9fd56a032 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:34.7388 (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: 6VwTNjsYokh/C95nO/BfrpQMWVHplXgZHnXG7A73HCMreIWILPG+56d/H9t16Kkp3GTSOjLVJsSJC/t24EL3Qw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB4893 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 adds three wrappers around the semihosting commands for reading and writing to the host console. We use the more standard getc/putc/puts names instead of readc/writec/write0 for familiarity. Signed-off-by: Sean Anderson --- arch/arm/lib/semihosting.c | 18 ++++++++++++++++++ include/semihosting.h | 19 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/arch/arm/lib/semihosting.c b/arch/arm/lib/semihosting.c index 57ab25294f..7595dbc4a9 100644 --- a/arch/arm/lib/semihosting.c +++ b/arch/arm/lib/semihosting.c @@ -15,8 +15,11 @@ #define SYSOPEN 0x01 #define SYSCLOSE 0x02 +#define SYSWRITEC 0x03 +#define SYSWRITE0 0x04 #define SYSWRITE 0x05 #define SYSREAD 0x06 +#define SYSREADC 0x07 #define SYSSEEK 0x0A #define SYSFLEN 0x0C #define SYSERRNO 0x13 @@ -167,3 +170,18 @@ long smh_seek(long fd, long pos) return smh_errno(); return 0; } + +int smh_getc(void) +{ + return smh_trap(SYSREADC, NULL); +} + +void smh_putc(char ch) +{ + smh_trap(SYSWRITEC, &ch); +} + +void smh_puts(const char *s) +{ + smh_trap(SYSWRITE0, (char *)s); +} diff --git a/include/semihosting.h b/include/semihosting.h index b53c650444..6f3c29786c 100644 --- a/include/semihosting.h +++ b/include/semihosting.h @@ -86,4 +86,23 @@ long smh_flen(long fd); */ long smh_seek(long fd, long pos); +/** + * smh_getc() - Read a character from stdin + * + * Return: The character read, or a negative error on failure + */ +int smh_getc(void); + +/** + * smh_putc() - Print a character on stdout + * @ch: The character to print + */ +void smh_putc(char ch); + +/** + * smh_write0() - Print a nul-terminated string on stdout + * @s: The string to print + */ +void smh_puts(const char *s); + #endif /* _SEMIHOSTING_H */ -- 2.25.1