From patchwork Mon Apr 4 18:17:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1613130 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=Kl3ngsa1; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (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 4KXJvW041rz9s5V for ; Tue, 5 Apr 2022 04:19:18 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 257E383997; Mon, 4 Apr 2022 20:18:51 +0200 (CEST) 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="Kl3ngsa1"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 4151683923; Mon, 4 Apr 2022 20:18:38 +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.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 EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03on0605.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe08::605]) (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 C9AE682A31 for ; Mon, 4 Apr 2022 20:18:25 +0200 (CEST) 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=RvWthZlylqcZf1P7Y34G0iYNXTAMGxww8qUook+jZFdz5jiVZJi4lTGF85kWSf2zoFXN90k5Ar5lZhxnIwUjtJzzOjAbUwiHkF4t86mWJI/cWioxm4sefcAXQQ74eG0DQc2Tv+UxAyASOrXRve6cVwbPbZYMCUzoJKbAVplCosQ/DtnZWKo4knjE1tT1/KSJVKBAMjxu1O1ZsuqcaVLW+s0SX/ZiZiIGVmVF+G8SBsFk5w0Figrfr9YYu79aZd+uSI4ZwILTJzZLkRUAx8EoZekMBQKi1mPlDYqKILfhu0NKwpjyp6H1s23slUzgMBjTl1Y1COAYcmPY1eblxV3aWA== 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=1VPWBQHeoPvd1n8H3XX3uaXge6Vrtu1mbgh0W78q+LA=; b=J+33g9qf+yqNxeuZttYXnafFPU0ALz31zmRL/0WpH7NTKAV0okmxxgG9L0vz5V54A8LO8oSoyX0mEDJjqKgkxUbxSk4eJyE588l7U/fyh4F50137ng8zI4WwSwrKdZKtchlRHTLivpY6ko99djctEUWTD38VzgkIKLLAPniFRyLkK6eB+sTlY2dGn0umPXP845pXnmSFbaOaO3RUnuhyZJCZndN8Db2PPrkppTZFKJMjQuqfmsjt2CI6jBuga2pjo9BsjyxdOIZgrxk1FUA4geq2QsYuu0+0ixpFetPeIhoU3z7jSttkIx9Ka8mQcMiHURaMBVFvs9hLZs1Wxd2Mlw== 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=1VPWBQHeoPvd1n8H3XX3uaXge6Vrtu1mbgh0W78q+LA=; b=Kl3ngsa1HFmVO+O/fS1QW5yXKO6ZNkCHJ4ZR97vFaKEF2vZtCqbbNmus5utENLQr1KaQYHWWRdBOWVYyxSfX60J+PDXKRT30Ht0pbLFIgWwcrlsBe2nsAOgYwerhEBi4JmAuHPs7MmavvV9Li6OClADXKDZjm8oBkYUdpyiV1BbR65l9k4lOxpEO335a1TtMcLQtCM5Qv84iZisjkAt1b60cc3gyZZZr1NjLE6JKHTbQViLSukmTKLvSvPJ2ZRvwu64kmL3ROAFBpIZkPbbn1gxuh2ADFzUIrpAETRn2UJLM1j02Z3KVQJ5xAsS3NbMJ0y8mUZWDCpIFQRJAGtjfyA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4972.eurprd03.prod.outlook.com (2603:10a6:10:7d::22) by AS4PR03MB8649.eurprd03.prod.outlook.com (2603:10a6:20b:588::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.30; Mon, 4 Apr 2022 18:18:24 +0000 Received: from DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::356c:789f:d20f:92bc]) by DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::356c:789f:d20f:92bc%7]) with mapi id 15.20.5123.030; Mon, 4 Apr 2022 18:18:24 +0000 From: Sean Anderson To: Tom Rini Cc: Simon Glass , Liviu Dudau , u-boot@lists.denx.de, Linus Walleij , Andre Przywara , Sean Anderson Subject: [PATCH 2/4] serial: sandbox: Implement puts Date: Mon, 4 Apr 2022 14:17:58 -0400 Message-Id: <20220404181800.2258698-3-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20220404181800.2258698-1-sean.anderson@seco.com> References: <20220404181800.2258698-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR16CA0002.namprd16.prod.outlook.com (2603:10b6:208:134::15) To DB7PR03MB4972.eurprd03.prod.outlook.com (2603:10a6:10:7d::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 022248dd-18e2-4eed-8d2d-08da1667821b X-MS-TrafficTypeDiagnostic: AS4PR03MB8649: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: VFqD5XiLesLDF1QJD8iwvjrLuFjbf2Da73Wi3oQxvOWFOYI11v9Ow8XIcbpKvnGV/MIGlItV6GyMCjCZRvWqxZCauTWjPnzH5nxsdNPLfmCvGHT6vjdCXM47QnQRQUb745myW49czyjRTWhx7Ugid6UNjbdn+H0bNNf9U3ZNmuKFuEnJckZJEPq0alema2eUhpoAcoBQ4iHTO9cioh2r1prWeCpMR0dGbsgm8W9hdvq0SC+JlnKo388atmw029Yx5x6NdJeLSzxMommYjUueYl+ilp6FF0mbLoCgLNTPSkgucNbDDeJZFCQ1T4m3MQeJiYJFmy2SbZmVl/z+40vqd2fZCwoVMy0yX6I1HUUa3+Bb3ZGR7e+PUD0lTSVwc0bHBJfRSvr+ucut9PVwPi9gLOuDtGnowWHPS+oMfV2Qjuq2yMEvigGtZMTwoRNk7NOsQxILYQ7p6KWsXYEbStIvQzMmldEHUjgN0Zc0iKtuE/VoB6ELQiEOrhL0oJ1tMgS1h3W4AJWS8UWxfpTROI2//sguTRriBtQR2DZSwpfiys0EIRBvPc1+n09DDpSk9TMJxZe+67oGq7hHsAvQXhf1Ww5E1CPjFVl0bSP/M84LI5DiUbgCiIrziZ1iYoHnAbJCLmG0WKPzKbVK6+WsB5KUVloFHiCZoiq8x5gjcLt7qGKaPk/EOyL3WbzsWaKm+BcEKy3qlgfxO4DvystLbjux7A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4972.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(5660300002)(52116002)(38350700002)(38100700002)(2906002)(6512007)(8936002)(508600001)(186003)(6486002)(6506007)(83380400001)(44832011)(36756003)(26005)(6916009)(66946007)(66476007)(66556008)(316002)(2616005)(1076003)(54906003)(6666004)(8676002)(4326008)(86362001)(107886003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: u3hTuJKMd3ygtBnwqo+miz0tYW/RYUywPwWf5S3WoFJ0dD4kOs8/hE/Bk4Q3G/ZTqjeSPQTnFGXVHqwJtj6b30N+fGotDH/x8JrV9DeTqiGwLgqWutA/suTiMfJGfYNDbCE8xoJ0wweNzBr9Vn5W9lg9XC2DMD0iSegjFoNZgOyq6hOIofGlv2oZ0L/k4goC3kBl0o3rY2+rAJ28VTGSfVzZ4Z7b8+tZrjf0HD2zkZ+3tIzssCdkiB2klYNWPLy0V8wt3zIZK6qjNDQyT2eATm1d/9flL8wqyeBTJ/AyjlE0yoVYvZ2uKznHxEJnq/JjTGFVOI76wgYOSPQIluF5foqI72shyEcP1/F3lCS0aygdpdGl3QkjXfBYk7ofnLOnL+0S/vPLw7Q7D9k+o5AQR/RBnbYCRrHyB4lKivr4+Ok6xmrB+zeFVI3usLq+vc+9dD5bN6bXTl1riKWR4oMPAesxQYapL9DfMwt0Bjg5jHcLL31hyR3DVt6N30z187UQkai/5S1vVkbaGtbgXDoeZgFv9e9SYqMukZjWXezoLePcO7zqjsvDiXasUha5wk2VNI4OizQZSHgAo5ABCr4XwGUCuH8iUIe/Jh1E301H8Rfs621fdldNDbay5nT6DANHk5N1V/u9W20u5BXNWoRpvaBWiaSkcEqAPpW+Z0miCLDJW/NyH5oju6hKTAyxFW7/hlO+BVfSOo/gxmmW+dZVV5JBnkM/UEMjxq/Z54xdm9kPkNUelDsN+6D6ufhDbkIHAaYHBsj1f9vd1dkRnHK3hQJU3NGWqHiI6ZQXx8Q/enPBNM3hCaEPCNiRFGtbNpc5cou7MU9PfKlWFlBSBXB7EwTZV3HFruvEo3UhyPb4xyFSAb01X1wSxOlUP55Ab0HC8TuRnJ6cEiIoYnOvm8mvpixjWSaN9Qy/VGzZKlbddu/DFfve9ZZOnatvhgrC+fSPsZjnsfpvc6ZG/G+JJL3TVxyzBS1H4NgyXE9EH6PD2KLOsCzFtaa/piDyFbrV3/0cxILefQnJlMgqebKQzUCyZKRc7e2ADUP7vkVAZ9KdZyFRcLXB4LbrBq/MltKxyU09fIGIeUzHySyipMpn509eY1O9JVVTHD/cR/U7qF3WN4UEodbpeEtz/6nf5plg1fpLY0oC9nU5DgipWpFE9IV7yBm+S0nNupzjdOvifUZKFgb5aBdZwOEAO00Z3SpZ9MMDHJoSvY07UXO1qJ6lfNb/TbairtcB69Cs+UP7we0vSCgcX7cjiXgMXqm3WjG4eGj/DN/8MWFYNVgT1aNTEJ839kGgP2GfgZCDsWhq7U+fG6aJpoGZR6xr8myjSEv9XtGt8p4H4Lu2KYXrKlh33g/TMAXLRncpjvJKToDI4x47Odx/soXqvstGiPVPan2u/oH/86+S9iVgrCi3i2Jc+PEnDnTlfJHCValANpUedDE2a0rKFXHppC+n+ulJ+F1k6YNFbuIk6sGWTJRzZWcqz4SdUztTVtqQIYHjGw2Ku7IbBFVHjMJrCpipbvdeV9q/sikfvsTDu80NDOrczbwD+3WaI2eVgbwNmz5ozHqDvkswh7TOlrBMD+reu/66Rly8pOgD9WcTGiZP1fuvVCbIX8LDthZNghm+RHg1SriULk4qImgXwovqDgjJ5za/WM5WutzoEzII0adpki+3e1Y701bsmdaa7px96OG0jUjsKN5sKLjXQWdT7R0poPMNw/OJAUQi10Pq6/K7Gs6l5S/hoPKoDVrZOVoRHrMhxUNU5ZOxTeg= X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 022248dd-18e2-4eed-8d2d-08da1667821b X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4972.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2022 18:18:24.7726 (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: H/f6eVaFIs8Jn3N5wojrJd5UwAF74bf6rqWYU4UehrAxPaweu174iN1wxZrbn6NO3i/IbwSv6JZgATjl07knTw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR03MB8649 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 implements puts for sandbox. It is fairly straightforward, except that we break out the shared color printing functionality into its own function. Signed-off-by: Sean Anderson Reviewed-by: Simon Glass --- drivers/serial/Kconfig | 1 + drivers/serial/sandbox.c | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index 76171e7146..fae82598cb 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -779,6 +779,7 @@ config S5P_SERIAL config SANDBOX_SERIAL bool "Sandbox UART support" depends on SANDBOX + imply SERIAL_PUTS help Select this to enable a seral UART for sandbox. This is required to operate correctly, otherwise you will see no serial output from diff --git a/drivers/serial/sandbox.c b/drivers/serial/sandbox.c index 0b1756f5c0..50cf2c74a7 100644 --- a/drivers/serial/sandbox.c +++ b/drivers/serial/sandbox.c @@ -67,7 +67,7 @@ static int sandbox_serial_remove(struct udevice *dev) return 0; } -static int sandbox_serial_putc(struct udevice *dev, const char ch) +static void sandbox_print_color(struct udevice *dev) { struct sandbox_serial_priv *priv = dev_get_priv(dev); struct sandbox_serial_plat *plat = dev_get_plat(dev); @@ -78,7 +78,13 @@ static int sandbox_serial_putc(struct udevice *dev, const char ch) priv->start_of_line = false; output_ansi_colour(plat->colour); } +} +static int sandbox_serial_putc(struct udevice *dev, const char ch) +{ + struct sandbox_serial_priv *priv = dev_get_priv(dev); + + sandbox_print_color(dev); os_write(1, &ch, 1); if (ch == '\n') priv->start_of_line = true; @@ -86,6 +92,18 @@ static int sandbox_serial_putc(struct udevice *dev, const char ch) return 0; } +static ssize_t sandbox_serial_puts(struct udevice *dev, const char *s, + size_t len) +{ + struct sandbox_serial_priv *priv = dev_get_priv(dev); + + sandbox_print_color(dev); + if (s[len - 1] == '\n') + priv->start_of_line = true; + + return os_write(1, s, len); +} + static int sandbox_serial_pending(struct udevice *dev, bool input) { struct sandbox_serial_priv *priv = dev_get_priv(dev); @@ -212,6 +230,7 @@ static int sandbox_serial_of_to_plat(struct udevice *dev) static const struct dm_serial_ops sandbox_serial_ops = { .putc = sandbox_serial_putc, + .puts = sandbox_serial_puts, .pending = sandbox_serial_pending, .getc = sandbox_serial_getc, .getconfig = sandbox_serial_getconfig,