[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 01/10] xen/arm: Print a 64-bit number in hex from early uart
 
- To: Jiamei Xie <Jiamei.Xie@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
 
- From: Wei Chen <Wei.Chen@xxxxxxx>
 
- Date: Thu, 21 Apr 2022 15:05:14 +0800
 
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
 
- 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=XJ+obiYyCB7rESgWXHYYrBcZ79Glzjlht246yinLcgg=; b=G7j/0LfkuvF/IKbuQ6M3wbxepgb0g0jVcBFMF5eJesCEqlrLj2VkcaNHj/A9nbL0BS2JEqa/ctITYcHFOgXUiIY63wiuLkd7S/qygL79mzhfq3gSqxWsYvYIlFdizNYE6KIqAyDaB+cb0rqSADAJkTVvmB1r2HaVTv8OspS6aL4Ke/jKS3kVAXmrdpSfivZ/qW+lSOvBIEeArhtSRC9B80eeaE3rd+2rRKO873aA8B6W1Rx8fKRH/gJrlGm74yMmoAy33Y0Fp9A4eZFTRNbOQB+u9RuaK6/guntMtCzjvYFw4UrjbQPW9LzYzlIfGME/nryBGUX3VU2ljfDamu+W9Q==
 
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=efUPtaAEdZ8jXNTb1L/2VYPc08qn6Twkr409i4nA3Vd9VVPoX3LPfpj9fhb4W+IovMUjqj8PH7bIAkV+IIDIFPa9OhzKXto5u48XNW75sv7eVioULALV1OxIPt/MJCk/tFVIveCnJ2ezCoT6zKiH8cChS6Ai7R55jcYkkKkgInuxlG8v7ojyK6oGQVnGiy5FoY3YXiiqE7IkiqdyLgZR96EriIBT62YIMFYX7pYV3PT29vdzQ1hbC0Hsuren024z1iuFUNiDk0L29qrGyoaeME6XjTI/wMB1GPgdmy/VdPVsXs2ZZ+9ZCESYk8FkvscbzI9LWlIDuac6DOvOLJzbhQ==
 
- Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
 
- Cc: nd <nd@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <Bertrand.Marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Julien Grall <jgrall@xxxxxxxxxx>
 
- Delivery-date: Thu, 21 Apr 2022 07:05:37 +0000
 
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
 
- Nodisclaimer: true
 
- Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
 
 
 
Hi Jiamei,
On 2022/4/19 17:13, Jiamei Xie wrote:
 
Hi Wei,
 
-----Original Message-----
From: Xen-devel <xen-devel-bounces@xxxxxxxxxxxxxxxxxxxx> On Behalf Of
Wei Chen
Sent: 2022年4月18日 17:07
To: --to=xen-devel@xxxxxxxxxxxxxxxxxxxx; xen-devel@xxxxxxxxxxxxxxxxxxxx
Cc: nd <nd@xxxxxxx>; Wei Chen <Wei.Chen@xxxxxxx>; Stefano Stabellini
<sstabellini@xxxxxxxxxx>; Julien Grall <julien@xxxxxxx>; Bertrand Marquis
<Bertrand.Marquis@xxxxxxx>; Volodymyr Babchuk
<Volodymyr_Babchuk@xxxxxxxx>; Julien Grall <jgrall@xxxxxxxxxx>
Subject: [PATCH v2 01/10] xen/arm: Print a 64-bit number in hex from early
uart
Current putn function that is using for early print
only can print low 32-bit of AArch64 register. This
will lose some important messages while debugging
with early console. For example:
(XEN) Bringing up CPU5
- CPU 0000000100000100 booting -
Will be truncated to
(XEN) Bringing up CPU5
- CPU 00000100 booting -
In this patch, we increased the print loops and shift
bits to make putn print 64-bit number.
Signed-off-by: Wei Chen <wei.chen@xxxxxxx>
Acked-by: Julien Grall <jgrall@xxxxxxxxxx>
---
  xen/arch/arm/arm64/head.S | 12 +++++++-----
  1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index e62c48ec1c..2bb7906f69 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -866,17 +866,19 @@ puts:
          ret
  ENDPROC(puts)
-/* Print a 32-bit number in hex.  Specific to the PL011 UART.
+/*
+ * Print a 64-bit number in hex.
   * x0: Number to print.
   * x23: Early UART base address
- * Clobbers x0-x3 */
+ * Clobbers x0-x3
+ */
  putn:
          adr   x1, hex
-        mov   x3, #8
+        mov   x3, #16
  1:
          early_uart_ready x23, 2
-        and   x2, x0, #0xf0000000    /* Mask off the top nybble */
-        lsr   x2, x2, #28
+        and   x2, x0, #(0xf<<60)     /* Mask off the top nybble */
+        lsr   x2, x2, #60
          ldrb  w2, [x1, x2]           /* Convert to a char */
          early_uart_transmit x23, w2
          lsl   x0, x0, #4             /* Roll it through one nybble at a time 
*/
--
2.25.1
 
I have tested the whole patch series on Armv8A(config without NUMA) and 
X86(config with NUMA), both can enter Dom0 successfully and the X86 NUMA works 
normally.
Tested-by: Jiamei Xie <jiamei.xie@xxxxxxx>
 
 
Thanks for your testing!
 
Regards,
Jiamei Xie
 
 
 
 
    
     |