Received: by 2002:a05:7412:b101:b0:e2:908c:2ebd with SMTP id az1csp2594712rdb; Wed, 15 Nov 2023 05:32:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IHd4o9d6PGXFmJ9pSD+uvxgdc+MbMkFCEZKJw+AXGlj1TppSc8ewwV3XRJgmkr2ZM7FqA34 X-Received: by 2002:a17:902:7449:b0:1ca:28f3:5690 with SMTP id e9-20020a170902744900b001ca28f35690mr5453202plt.46.1700055135897; Wed, 15 Nov 2023 05:32:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700055135; cv=none; d=google.com; s=arc-20160816; b=ep8l8krIGKGs1z2VSCmKyjQKVVK4VR1Wz+82x2wfqnISpNl+oYesZTAMsb9ql86t67 riOvBt0uhrbx7gCthWjpiax/IDL5jidyxbVYxCxGqFX/F0rf4zsFS7TWwk6bWAfBq9qW i8HkJb+3FyGsLaIOLRS51cn8LwsCbCXsCnVxgjvjqJh/Cq1NNfIW0jPzA2+rtUgdL5Ix Tk1g1fHH6bjxekhe8c3SrRzX41HpCb1BsjNZhkF8XkYLrona+RU0/i6Z46fbhX3b/w9z tt3k7/Dqz8Xy6B55rzFjmYAsrFj9CP6/QHkxSMAfxMVPMK8aSVR/ZfJIOYuzH3n8TJYr NxwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=XwKM1F4f+w/q5mNwykREvbpkU3Yv+IFVmQo+ZNBoOAM=; fh=dhM2vXBu3P8+THCW3aVtvqqg4AexJjWEgLDmDus3dF4=; b=cFRJFWAOhtb0F6aD1H8vZN6ky98RkOEdgojBleF+RvbeajKWfS8b9dJtfucYaG2beV KFFv1PWbe8PGi+rac4ZQRd4KwbovLc4Bf30SBW5j5Zx+JMQsErL0l1Fb5fmYH1KhU6nP i4hz66Mq/Fc0uxPxTAg+w/JOUQQvOPztOzkNMnlC+yfYyF8NuTm+M1KxWk6ovghG2S9+ CZlXoMbx0ZtBW97MKJrb1YDtUKwTmQjfnl4xV/jEycG5iApvKv7OMTn9QWe/AtGbVBQP JeystvqiZs0dZkH/oMVg6ibjlWWkjIo0HaIHd5VvYDRd7KNXNkKKsEuITBobWrD3aI+i 3ijw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=HvmmC4WV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id u12-20020a170902e80c00b001bbdb34628bsi10512552plg.289.2023.11.15.05.32.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Nov 2023 05:32:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=HvmmC4WV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id A2903805800F; Wed, 15 Nov 2023 05:31:45 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343919AbjKONbo (ORCPT + 99 others); Wed, 15 Nov 2023 08:31:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41138 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343722AbjKONbn (ORCPT ); Wed, 15 Nov 2023 08:31:43 -0500 Received: from smtp-relay-canonical-1.canonical.com (smtp-relay-canonical-1.canonical.com [185.125.188.121]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2928AA1 for ; Wed, 15 Nov 2023 05:31:40 -0800 (PST) Received: from LT2ubnt.fritz.box (ip-178-202-040-247.um47.pools.vodafone-ip.de [178.202.40.247]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-1.canonical.com (Postfix) with ESMTPSA id 28D2141931; Wed, 15 Nov 2023 13:31:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1700055098; bh=XwKM1F4f+w/q5mNwykREvbpkU3Yv+IFVmQo+ZNBoOAM=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=HvmmC4WVKC7O3shLJjN5g8UvEDDBuDvWnEKZcKmLF3lJmf5bT1yQ1odFlv8bKnFZk um1GAljq/pK1B/oYV0G19jOW0ZP4jr5hIdmc7iifGVY/3THEiZDztDR8x+pwe6oN35 H1Pw2OLrUKbbjDDw8Sl+hdTwBVIz9NvkwUnPKra9ILtGx15w2iQq8cYxl7aYBpuGVi sSz5CNKE16cTtPxSPyNFxDtCRSEiFgNb3lGjTod4mTOpmhRCnX5RoyjjQNz2D0LD4K Z0YnyZ+TKnTjTn/M2cu1mdNtGp0qWAYDzEC14NtYEIkGrdKhtDkKbKSllWUaL8jkWl xpVTYZSdzpCrQ== From: Heinrich Schuchardt To: Paul Walmsley , Palmer Dabbelt Cc: Albert Ou , Anup Patel , Andrew Jones , Mayuresh Chitale , Samuel Holland , Alexandre Ghiti , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Heinrich Schuchardt Subject: [PATCH 1/1] tty/serial: RISC-V SBI earlycon via DBCN extension Date: Wed, 15 Nov 2023 14:31:27 +0100 Message-Id: <20231115133127.107575-1-heinrich.schuchardt@canonical.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 15 Nov 2023 05:31:45 -0800 (PST) Up to now an SBI based early console was limited to SBI version 0.1. With the DBCN SBI extension we can provide an early console on systems that have a recent SBI implementation. Signed-off-by: Heinrich Schuchardt --- arch/riscv/kernel/sbi.c | 14 ++++++++++++++ drivers/tty/serial/Kconfig | 1 - 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/arch/riscv/kernel/sbi.c b/arch/riscv/kernel/sbi.c index 5a62ed1da453..6e1644a95bb7 100644 --- a/arch/riscv/kernel/sbi.c +++ b/arch/riscv/kernel/sbi.c @@ -195,6 +195,20 @@ static void sbi_set_power_off(void) pm_power_off = sbi_shutdown; } #else + +/** + * sbi_console_putchar() - Writes given character to the console device. + * @ch: The data to be written to the console. + * + * Return: None + */ +void sbi_console_putchar(int ch) +{ + sbi_ecall(SBI_EXT_DBCN, SBI_EXT_DBCN_CONSOLE_WRITE_BYTE, + ch, 0, 0, 0, 0, 0); +} +EXPORT_SYMBOL(sbi_console_putchar); + static void __sbi_set_timer_v01(uint64_t stime_value) { pr_warn("Timer extension is not available in SBI v%lu.%lu\n", diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig index 732c893c8d16..454c2a612389 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig @@ -87,7 +87,6 @@ config SERIAL_EARLYCON_SEMIHOST config SERIAL_EARLYCON_RISCV_SBI bool "Early console using RISC-V SBI" - depends on RISCV_SBI_V01 select SERIAL_CORE select SERIAL_CORE_CONSOLE select SERIAL_EARLYCON -- 2.40.1