Hi Jiamei,

On 2022/4/19 17:13, Jiamei Xie wrote:
Hi Wei,

-----Original Message-----
From: Xen-devel <xen-devel-boun...@lists.xenproject.org> On Behalf Of
Wei Chen
Sent: 2022年4月18日 17:07
To: --to=xen-devel@lists.xenproject.org; xen-devel@lists.xenproject.org
Cc: nd <n...@arm.com>; Wei Chen <wei.c...@arm.com>; Stefano Stabellini
<sstabell...@kernel.org>; Julien Grall <jul...@xen.org>; Bertrand Marquis
<bertrand.marq...@arm.com>; Volodymyr Babchuk
<volodymyr_babc...@epam.com>; Julien Grall <jgr...@amazon.com>
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.c...@arm.com>
Acked-by: Julien Grall <jgr...@amazon.com>
---
  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....@arm.com>


Thanks for your testing!

Regards,
Jiamei Xie

Reply via email to