Received: by 2002:a05:7412:a9a2:b0:e2:908c:2ebd with SMTP id o34csp1353560rdh; Fri, 27 Oct 2023 11:32:20 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEZE1IN0MjQUFyKCfSMPjU5XCyjfakSi0/3hZIc+a2TOG157wXMgmdwH0F0DVL8DkOn14t4 X-Received: by 2002:a25:83c1:0:b0:d9a:4db9:3259 with SMTP id v1-20020a2583c1000000b00d9a4db93259mr3433746ybm.38.1698431539755; Fri, 27 Oct 2023 11:32:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698431539; cv=none; d=google.com; s=arc-20160816; b=nZgM2e7wbqH+6GKZBye2rPNu8FEvdadjc5DQ+pMQfN0g7Toh5AFdPzc+/LW8MBUurB 7ZzZw27Xnv0+V/SowjslVK7dJ0qqu6r5HNJ1uFz//f4+qWQA9jiV0twiqmMHjpR/oW1a LexmV4+NI8+75bF26Pg26XqSbIdzGB5jkRLmHZP3FbVCtqhunqi6A1KE1uOLK2uQK7bt 0y3mif+wlsCsj3eJeC2lgfZSYwnQpyhpoSdk6sn0NmG+/fCQN4iZYdFFktwdHAwtsHDV GlsVob295ZZ7MMrrLKbYyzU9UBnqiGyppgl/RARnAmp74Gd1+odnMGbQtXeia7qqmqRw v7XQ== 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=irTgSPDwA7LCCAZeiPpz48vPANaiozzIQ+w5OkK6mYezVwRpY4DuVdKa6b9KXeKzSb LQSAIGYbTynNjYLqiwEtPnjdz6riQCx8pC10BZ4kN90k8n3Rn9MW5dU8AQ+UlM4wnI0V AC+Hl1cowaJ1A9btLUu+fMgum/9tLX+OvFA4xGswDRRwAchABViArk+1Lk/PQUvIgX7J I4UlUB9/zlC83VLzmNyqtndq6g1bbslDoFeTnR8OsTyDhu0nhLZE49FkBiL4emtULdf4 +a6rEV3t8HhXDk2x0yUK1RH7kgMtssgo5of7RLLEYBJpqv/wc8OFOOAtz4rZtNqn3QLW MSBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@flygoat.com header.s=fm1 header.b=cDaSv6h3; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b="f/pDHJyB"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 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 agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id 2-20020a250802000000b00da02d3b0106si3065910ybi.167.2023.10.27.11.32.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Oct 2023 11:32:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@flygoat.com header.s=fm1 header.b=cDaSv6h3; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b="f/pDHJyB"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 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 agentk.vger.email (Postfix) with ESMTP id 82A5A809D455; Fri, 27 Oct 2023 11:30:58 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235116AbjJ0Sak (ORCPT + 99 others); Fri, 27 Oct 2023 14:30:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45920 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235227AbjJ0Sab (ORCPT ); Fri, 27 Oct 2023 14:30:31 -0400 Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DF4B47AC; Fri, 27 Oct 2023 11:29:53 -0700 (PDT) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id E047C3200928; Fri, 27 Oct 2023 14:27:04 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Fri, 27 Oct 2023 14:27:05 -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=1698431224; x= 1698517624; bh=DsEFHXOmV/vlMNorRiSfNz2hmb8DBQjO66z36QC0Uz4=; b=c DaSv6h34dyBQZGk4Q+R3dbVsKnW++9bGUVJ3l53Wu5LT3cW4gcV5DiRw5ia9zDnD r5nRbcsFpOSihlrtbp+Q4fDgsD+vhS2NkrLUIGw4KHlxOEL8yLObz0g8LZ3XOgtM 8aHjXrqb96quA4MLXTJO5cWdEYkYFxq0O/GNtQpVhbnl6f6+6e2vpeAaWPdhsvVD v9mfkv8QSiIqBC7sonZHwc8DrKXK3b48w9EmVNre7azIQfRkKUbCkaUD07aJVRnq 2jOxjiYh+gWkGoT+mvqx0VnSOdQTj+vCUdPGIgK0TteJinFcQ5Jy7zPkU5NFPUmW KLTPDkkU5E1rizYoMbLhA== 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=1698431224; x= 1698517624; bh=DsEFHXOmV/vlMNorRiSfNz2hmb8DBQjO66z36QC0Uz4=; b=f /pDHJyBrHQhfKMoGWAE209vCCOy6IGMd7jbSc/HYt1N8E9itRb8z5paNtGxRA++0 Rmict7v2r2JSO/r55Iyn6GAUMY2NXsP1u81924Xi5M66Qo/AeQ3RIFG04mVAlkMy l3z2DWPioiVI2Mpmw9BjdIAndSIjsojv63zkCkQldAkQbW5DvofNJbqEndN5VyFf vjC0aeMAhaFngekVUPv1LehYzChkqFZTTjBGGgSo1lbWGC4s9rHsESR5CM8OovQ5 1XTQ9ZdHJgOMKbkG/Fw1GmV3Hqu+GjTowRJtBy0Akxv7yBI5IaSI/gVZcWPwYCda z7oOPDWM6BdgoI+EqEv9Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrleeggdduvdeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvfevufffkffojghfggfgsedtke ertdertddtnecuhfhrohhmpeflihgrgihunhcujggrnhhguceojhhirgiguhhnrdihrghn ghesfhhlhihgohgrthdrtghomheqnecuggftrfgrthhtvghrnhepfeeludefheegvdeuvd dvgeekgfdvtdettdelieeihfegtedugeekhfdvhfejfedtnecuvehluhhsthgvrhfuihii vgeptdenucfrrghrrghmpehmrghilhhfrhhomhepjhhirgiguhhnrdihrghnghesfhhlhi hgohgrthdrtghomh X-ME-Proxy: Feedback-ID: ifd894703:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 27 Oct 2023 14:27:03 -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:45 +0100 Message-Id: <20231027182650.281405-3-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 autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.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 (agentk.vger.email [0.0.0.0]); Fri, 27 Oct 2023 11:30:58 -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