Received: by 2002:a05:7412:a9a2:b0:e2:908c:2ebd with SMTP id o34csp1358386rdh; Fri, 27 Oct 2023 11:41:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEHSYgwF2lv1dRlTbAFZI++Fh+VVG7CLavKAc7jEq5HO/hjnm/0uj5de/qivJoY189ajRZh X-Received: by 2002:a25:ab03:0:b0:d80:1604:f6e9 with SMTP id u3-20020a25ab03000000b00d801604f6e9mr3720419ybi.44.1698432113152; Fri, 27 Oct 2023 11:41:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698432113; cv=none; d=google.com; s=arc-20160816; b=Sz7qZFt9R6oJc1HHROMYddMm7QVlFNMn3fNfIseypGkmJimTKmmQiZYzWNpGO1ePkG SkLUXd9ln0e12rMgXZjbhYAJSx1XKfr78f45SUvtZRuEA46sLy4r4M5fDC3dAMMeYH31 zarXaqhYh9Q4pe7l8x7aIqdNQ5yNG2BV/ra/Gq05sN5rEUCUB9VjCFrgLosKChbzt16z 54EybCkBl0PYzqFR0PnlljfpiN8rc+wUwFkw3j22DgAvvPaBu/530SdTiWPwFRH02H8/ BYTsXku+DKReTb4oOlXhq/3DXuN8DwdEp7foGwN2DY41CAgu8Wsz2VN392RBcg3Ldb37 HkVA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :feedback-id:dkim-signature:dkim-signature; bh=DsEFHXOmV/vlMNorRiSfNz2hmb8DBQjO66z36QC0Uz4=; fh=2THP7SIVSTHYjaZ+qoFRou3s/8abGq7E8rX+Q6jzkpQ=; b=xE17qbcnpitM9um1ZTjwy3miVnq02QzE248+smO7LrcYmIEapylyfaZnaQNdPKdUdi vfdfRdsRL1r2R/7KpNkBjHnbEvSIQQFZPX/QkfThWDMk7grBABgdfzOPjr2wdmhG6BTS lDkQXuUwn7Ro2ucR01c2ODlGJI/pryMEibKNqDjaDjLlj8rXwZCEidIlPEt600APeYZK qY3QdCZAc+6UewA9KCsBqbI7zQ9qullPYcQwAYQ0EXtK1aXETf/82d7jyn1x6yFb6SPw UipC7OCU/3llmoOX2VYXeVdfHJGpmQebeOM1m7Dbn9US90pBOczfXAp8qFA/2MwV+H5b nZZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@flygoat.com header.s=fm1 header.b=WUqeAEFd; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=Nif6B12U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=flygoat.com Return-Path: Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id c77-20020a25c050000000b00d9b8c5063b3si3702026ybf.652.2023.10.27.11.41.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Oct 2023 11:41:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; dkim=pass header.i=@flygoat.com header.s=fm1 header.b=WUqeAEFd; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=Nif6B12U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=flygoat.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id E9D69845650C; Fri, 27 Oct 2023 11:41:49 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235221AbjJ0Slh (ORCPT + 99 others); Fri, 27 Oct 2023 14:41:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232792AbjJ0SlZ (ORCPT ); Fri, 27 Oct 2023 14:41:25 -0400 Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E19055A5; Fri, 27 Oct 2023 11:30:53 -0700 (PDT) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 449123200A14; Fri, 27 Oct 2023 14:27:16 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Fri, 27 Oct 2023 14:27:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flygoat.com; h= cc:cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; t=1698431235; x= 1698517635; bh=DsEFHXOmV/vlMNorRiSfNz2hmb8DBQjO66z36QC0Uz4=; b=W UqeAEFdQUpwudJlXlKNzrCmozZZXbZNos6MXWDrERThugvJlqvq+umfaS8wNeOxy SgQ0fMAV7cg9YBWe3cLHH6BFA6Bwg+yZDIyxDwMBfaB84F+ASWtGriNLTiuYOPWM ZC4moEjON0S/qJygZYQhGa4JOH8Lok6s1CgwEI2ZAWxofsvRBMuwxxGFliFAlnyi PVpYy5rinOGtgREnHho+hvYeXioXQ4DCqMcFVzdPPjcb9SWBT0QRx+lQ2ZzXnav/ aGjQbfRXbMS1mL2LssdJhp3ZDaFvjf4r2SOVBiUCMF2gGr+bTFyMZwiNTXaCnK/L q8lV82sgnEi9RZPo7DkEA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1698431235; x= 1698517635; bh=DsEFHXOmV/vlMNorRiSfNz2hmb8DBQjO66z36QC0Uz4=; b=N if6B12UFHi5kzooI2plYFKuoRd5wWyv8S2xbo8WxIvxSgIHyI2/63GfXNJOmdJT5 J2dKJnG7fN0i9+4afXUybucU7NI21Y77g8OadyHU6DbYoQm2KXNhYInY99aFegM3 iD9M/WlVDhmCnN2pd3tDoXsJ+3blDtOWV73HO3lNAzlj/ab0BnWmVbl7EHeEx3A+ C7jSBW7ier9xl78gZQGAmUhdIvCw1jLDPfodpx9v8QssttvVWAUg4/BEK45mUkXm YkIug+gbRkdtvo/g09+CkuJwQRRjFQK5F9R7hfkdQ3lRY4W9ljAItS4zYiJmWSdE cahmzvs+4XZGIa4CNmeyA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrleeggdduvdeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvfevufffkffojghfggfgsedtke ertdertddtnecuhfhrohhmpeflihgrgihunhcujggrnhhguceojhhirgiguhhnrdihrghn ghesfhhlhihgohgrthdrtghomheqnecuggftrfgrthhtvghrnhepfeeludefheegvdeuvd dvgeekgfdvtdettdelieeihfegtedugeekhfdvhfejfedtnecuvehluhhsthgvrhfuihii vgepudenucfrrghrrghmpehmrghilhhfrhhomhepjhhirgiguhhnrdihrghnghesfhhlhi hgohgrthdrtghomh X-ME-Proxy: Feedback-ID: ifd894703:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 27 Oct 2023 14:27:14 -0400 (EDT) From: Jiaxun Yang To: linux-mips@vger.kernel.org Cc: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, tsbogend@alpha.franken.de, gregkh@linuxfoundation.org, jirislaby@kernel.org, Jiaxun Yang Subject: [PATCH 2/3] MIPS: zboot: Add UHI semihosting debug print support Date: Fri, 27 Oct 2023 19:26:49 +0100 Message-Id: <20231027182650.281405-7-jiaxun.yang@flygoat.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231027182650.281405-1-jiaxun.yang@flygoat.com> References: <20231027182650.281405-1-jiaxun.yang@flygoat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email 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 (pete.vger.email [0.0.0.0]); Fri, 27 Oct 2023 11:41:50 -0700 (PDT) Support print debug message via MIPS UHI semihosting Plog functions. Signed-off-by: Jiaxun Yang --- arch/mips/Kconfig.debug | 11 +++++++++++ arch/mips/boot/compressed/Makefile | 1 + arch/mips/boot/compressed/dbg-uhi.c | 11 +++++++++++ arch/mips/boot/compressed/dbg.c | 4 ++-- arch/mips/boot/compressed/decompress.c | 4 ++++ 5 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 arch/mips/boot/compressed/dbg-uhi.c diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug index f4ae7900fcd3..1393bdb33f5c 100644 --- a/arch/mips/Kconfig.debug +++ b/arch/mips/Kconfig.debug @@ -98,6 +98,17 @@ config DEBUG_ZBOOT to reduce the kernel image size and speed up the booting procedure a little. +config ZBOOT_DBG_UHI + bool "Enable UHI debugging" + depends on DEBUG_ZBOOT + default n + help + Enable this option to debug compressed kernel support via UHI. + Logs will be outputed to the host machine via UHI Plog function. + You MUST connect system to a debugger with UHI semihosting support + or use a boot montor implemented UHI exceptions, otherwise the + system will hang. + config ZBOOT_INGENIC_UART int "UART to use for compressed kernel debugging" depends on DEBUG_ZBOOT && MACH_INGENIC_SOC diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile index 6cc28173bee8..5667597c3584 100644 --- a/arch/mips/boot/compressed/Makefile +++ b/arch/mips/boot/compressed/Makefile @@ -45,6 +45,7 @@ vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o $(obj)/bswaps ifdef CONFIG_DEBUG_ZBOOT vmlinuzobjs-$(CONFIG_DEBUG_ZBOOT) += $(obj)/dbg.o +vmlinuzobjs-$(CONFIG_ZBOOT_DBG_UHI) += $(obj)/dbg-uhi.o vmlinuzobjs-$(CONFIG_SYS_SUPPORTS_ZBOOT_UART16550) += $(obj)/uart-16550.o vmlinuzobjs-$(CONFIG_SYS_SUPPORTS_ZBOOT_UART_PROM) += $(obj)/uart-prom.o vmlinuzobjs-$(CONFIG_MIPS_ALCHEMY) += $(obj)/uart-alchemy.o diff --git a/arch/mips/boot/compressed/dbg-uhi.c b/arch/mips/boot/compressed/dbg-uhi.c new file mode 100644 index 000000000000..7daa8de717b0 --- /dev/null +++ b/arch/mips/boot/compressed/dbg-uhi.c @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * zboot debug output for MIPS UHI semihosting + */ + +#include + +void puts(const char *s) +{ + uhi_plog(s, 0); +} diff --git a/arch/mips/boot/compressed/dbg.c b/arch/mips/boot/compressed/dbg.c index f6728a8fd1c3..7fa5242e2b7d 100644 --- a/arch/mips/boot/compressed/dbg.c +++ b/arch/mips/boot/compressed/dbg.c @@ -4,7 +4,7 @@ * * NOTE: putc() is board specific, if your board have a 16550 compatible uart, * please select SYS_SUPPORTS_ZBOOT_UART16550 for your machine. othewise, you - * need to implement your own putc(). + * need to implement your own putc() or puts(). */ #include #include @@ -13,7 +13,7 @@ void __weak putc(char c) { } -void puts(const char *s) +void __weak puts(const char *s) { char c; while ((c = *s++) != '\0') { diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c index c5dd415254d3..f4e69dfe2923 100644 --- a/arch/mips/boot/compressed/decompress.c +++ b/arch/mips/boot/compressed/decompress.c @@ -17,6 +17,7 @@ #include #include +#include #include /* @@ -46,6 +47,9 @@ void error(char *x) puts(x); puts("\n\n -- System halted"); +#ifdef CONFIG_ZBOOT_DBG_UHI + uhi_bootfailure(0); +#endif while (1) ; /* Halt */ } -- 2.34.1