From patchwork Fri May 6 14:50:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 1627669 X-Patchwork-Delegate: xypron.glpk@gmx.de 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=siemens.com header.i=@siemens.com header.a=rsa-sha256 header.s=selector2 header.b=PZkEjtBM; 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KvtmZ2CjLz9sPf for ; Sat, 7 May 2022 00:51:10 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8F52783E42; Fri, 6 May 2022 16:51:03 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=siemens.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=siemens.com header.i=@siemens.com header.b="PZkEjtBM"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id ACECF83AF6; Fri, 6 May 2022 16:51:01 +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 EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2062a.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::62a]) (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 B256183F57 for ; Fri, 6 May 2022 16:50:58 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=siemens.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jan.kiszka@siemens.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hn7AMEIFUPwY39bje9BjBrCjg+PzL1UjuTL1nieXDg2HDmOpZxPOD7zdfVafm6ROzJMe5mdWiJLpDnBCTcg68jYlbHsyEtk62NnjPgjraiXLTszaBkpnLWU+FJPFY3d2GOCrlzjl7raFpgsZzQv0vapC31zoNpy4y4zTrIbdqXM6liKapIKZmOUiU5Wy1Br2AgTnzTKZlviZkYk3RliMRjKn4RV3wQZH9TUt1Wze5dR0VncqooK/dAtYXuUCzBF1Zp1aGrSpUmbZK+Oi/YreDlO9vxwnzgDoGJI1OGOhLABitDEjvoK6kejqMl44F3YlXphvQXpGkiKKt5PgdJuEfQ== 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=W9rQZbjF47dFOQxry8HADLDWLrq8cv1ehSyffqCHjCQ=; b=JCBeiYMVooae3WHlyZdM20EFho6l+VIl7yc0shNCXz8aOwpHt+GB3GGRapFX/yWvrr7pucE5qYX+euEY+dUmeACm/V79lm+G5GCa7/IGWL/W2foQSB59+eH4hAghKnFaYcki1rst+quJbR3+rqwmtG9EF+IYck7UuvVanXfroR3Zhqyi5D0mRVmYRtu/6kitRXTM1MfSrevCfeCr7NmkqkGmrQtOJrnMxjHbdH/AnSmQ+H/4Oer3YERaymreyTmjfxSz8POuFOA80gvtg6fRdsQ6UP2b0afPhSilv+paL+InyE5iYg0Zcn1fuIyQ4C18pOa5Js1UiVsp1yuMl+FVMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 194.138.21.71) smtp.rcpttodomain=gmx.de smtp.mailfrom=siemens.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=siemens.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=W9rQZbjF47dFOQxry8HADLDWLrq8cv1ehSyffqCHjCQ=; b=PZkEjtBMOeb6T2jzOUkwIctwMkUldMxS9FvZsPz53SLmO0j+LW9bpoUA/Uh3ij9d3dOnMMCGV4LO4pcmCfREIVwaoCAPhjmfLzpENR/IjHQZlVGr0XZh5P3g2ouD4qUWFUBPHGP4/22ymuWX4RjYaVmmg5QFcs0JSgBY/YQG5jtuZaUSdMs+RzC77aKosy2U1OA48sqN042Q1bQNjR1I3t00LVWzKbrhDCKuh2Ji1BJSAhtjH07Qz5fzv1WlSbJyJSoqz5kCGY9YCSbtQJj+4eQYyIJuAa3r/AvGIpq59nGPoEjrLxXlRFBHg1Dspr2SltpPddtYDXWcAqaOf3IGkw== Received: from DB3PR06CA0029.eurprd06.prod.outlook.com (2603:10a6:8:1::42) by AS4PR10MB5797.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:504::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Fri, 6 May 2022 14:50:57 +0000 Received: from DB5EUR01FT088.eop-EUR01.prod.protection.outlook.com (2603:10a6:8:1:cafe::a) by DB3PR06CA0029.outlook.office365.com (2603:10a6:8:1::42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13 via Frontend Transport; Fri, 6 May 2022 14:50:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 194.138.21.71) smtp.mailfrom=siemens.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=siemens.com; Received-SPF: Pass (protection.outlook.com: domain of siemens.com designates 194.138.21.71 as permitted sender) receiver=protection.outlook.com; client-ip=194.138.21.71; helo=hybrid.siemens.com; Received: from hybrid.siemens.com (194.138.21.71) by DB5EUR01FT088.mail.protection.outlook.com (10.152.5.49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5227.15 via Frontend Transport; Fri, 6 May 2022 14:50:57 +0000 Received: from DEMCHDC89XA.ad011.siemens.net (139.25.226.103) by DEMCHDC9SKA.ad011.siemens.net (194.138.21.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Fri, 6 May 2022 16:50:57 +0200 Received: from [139.22.139.219] (139.22.139.219) by DEMCHDC89XA.ad011.siemens.net (139.25.226.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Fri, 6 May 2022 16:50:56 +0200 Message-ID: Date: Fri, 6 May 2022 16:50:56 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 From: Jan Kiszka Subject: [PATCH v2] efi_loader: Improve console screen clearing and reset Content-Language: en-US To: Heinrich Schuchardt , U-Boot Mailing List X-Originating-IP: [139.22.139.219] X-ClientProxiedBy: DEMCHDC89XA.ad011.siemens.net (139.25.226.103) To DEMCHDC89XA.ad011.siemens.net (139.25.226.103) X-TM-AS-Product-Ver: SMEX-14.0.0.3080-8.6.1018-26680.007 X-TM-AS-Result: No-10--5.816000-8.000000 X-TMASE-MatchedRID: +fegSsg2k8SK7UN3qUjdWRsWLGG5XUBW3iHMQEs6scZKzOvae5Q0rP/n qqapNkvr/0sRqdZstnbe861vOLmcM5ZvHoc+LR11j0IvV7jlqDhyPzMTUSO1JI2p993xpi6UquF C73XPA2eynk7TnYzMuozG6P/T7cOnV4ijBjDk4sNaaVIsgpwFfoG9V0kqQ2uQLyz9QvAyHjqNY/ pqxovzxXa6BaVcucPp8kaKyvurudCzJOfTVkKWlWUjklSGJRFUwnraDlxdrEWeAiCmPx4NwLTrd aH1ZWqC1kTfEkyaZdz6C0ePs7A07SSyFhRNlxkTsT+QLM4QXe1IwT+s5YpJ6VlQ9uf5/BNpB1rQ d1+jGydWXGvUUmKP2w== X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--5.816000-8.000000 X-TMASE-Version: SMEX-14.0.0.3080-8.6.1018-26680.007 X-TM-SNTS-SMTP: 715D47220C5FC231E446B261F983E70FD62A77E5B5443F76D7382263B894E2862000:8 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 15d8ada9-e7d6-4e90-863d-08da2f6fd44b X-MS-TrafficTypeDiagnostic: AS4PR10MB5797: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: Ilf1869J/Fsiqo7lRRMasSxtECKYw7KZRMXOR5lecNwwSZ2MdJ0d4kK9mv6MOYXmNZVRj9aAUSBTkZNHTGqq4ab1QRrsYDsOa4yK9k96aJSTcASLzi6vKfDuYgPUGQD6iKOt9hKX2I4xjOjXF/s8Z+NhI2jhjpFgZEqvr7fv+qCpEwfQpedTHoyktRsQWku9oOffCoJZjhFNppThnyMcfgenU0AshVIYGQKppzB7zFbN2mbgiN1/gNKFNK5bGX4DUtmLdS4zId35xIgUu3wuOyqslqnLy3+sN08wveGeRck7OREsbTPC93UeH2xPDnCENA8anC2BvFgY70XOtwlge1kiFkr2h2l/1zDGJJ0NPWKsiIj17+Pxttdnhs5vvUnnmqueOzC02EVJimI9mH48cITzJchOMiGcN+P4swTiYL6uD/3aROmEdtU5PIEphkjhoSilfrDOvHCmsyVlvs45UAnwatLK3v0ZOAC3D0gimD5OwZsFMKxM3VybpxGZUDpVaOzVmSCnHAUv4/vlKraAWE+wXxXvFzImo6VYqow4vNYcdktuvZzJNQbTzVZ6duauddHFDRvBBO262DPVd1AeENkpYdgAR1UmpALcUAs7pt0LUAMQ6OPIpDv+kstV1P7C7w6cTaTI9v6g6DNMBiijog4EygIjqq2Hfquo9116/w+aL3epSYioe2M0OreyZGupegyN743eun5Ms3K9sMi6M6bqo2xzacMpTuUuwHFe/Z3E/LkvXFo0+hIhEMNeZC7RFeAxrYcg7P7Je05KOlBrrA== X-Forefront-Antispam-Report: CIP:194.138.21.71; CTRY:DE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:hybrid.siemens.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230001)(4636009)(46966006)(36840700001)(40470700004)(40460700003)(8936002)(336012)(186003)(47076005)(16526019)(508600001)(2616005)(956004)(31686004)(82310400005)(82960400001)(31696002)(2906002)(110136005)(356005)(81166007)(70586007)(36756003)(70206006)(83380400001)(86362001)(5660300002)(8676002)(16576012)(6706004)(316002)(26005)(44832011)(36860700001)(3940600001)(36900700001)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2022 14:50:57.5158 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 15d8ada9-e7d6-4e90-863d-08da2f6fd44b X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=38ae3bcd-9579-4fd4-adda-b42e1495d55a; Ip=[194.138.21.71]; Helo=[hybrid.siemens.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR01FT088.eop-EUR01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5797 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 From: Jan Kiszka Before clearing the screen, ensure that no previous output of firmware or UEFI programs will be overwritten on serial devices or other streaming consoles. This helps generating complete boot logs. Tested regarding multi-output against qemu-x86_defconfig. Signed-off-by: Jan Kiszka --- Changes in v2: - rebased and tested against more scenarios, sucessfully lib/efi_loader/efi_console.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index 60a3fc85ac4..0270b20bafe 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -463,8 +463,18 @@ static efi_status_t EFIAPI efi_cout_set_attribute( static efi_status_t EFIAPI efi_cout_clear_screen( struct efi_simple_text_output_protocol *this) { + unsigned int row; + EFI_ENTRY("%p", this); + /* Avoid overwriting previous outputs on streaming consoles */ + for (row = 1; row < efi_cout_modes[efi_con_mode.mode].rows; row++) + printf("\n"); + + /* Set default colors if not done yet */ + if (efi_con_mode.attribute == 0) + efi_cout_set_attribute(this, 0x07); + /* * The Linux console wants both a clear and a home command. The video * uclass does not support [H without coordinates, yet. @@ -522,9 +532,9 @@ static efi_status_t EFIAPI efi_cout_reset( { EFI_ENTRY("%p, %d", this, extended_verification); - /* Set default colors */ - efi_con_mode.attribute = 0x07; - printf(ESC "[0;37;40m"); + /* Trigger reset to default colors */ + efi_con_mode.attribute = 0; + /* Clear screen */ EFI_CALL(efi_cout_clear_screen(this));