[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[XEN RFC PATCH 02/40] xen/arm: Print a 64-bit number in hex from early uart


  • To: <wei.chen@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>, <sstabellini@xxxxxxxxxx>, <julien@xxxxxxx>, <jbeulich@xxxxxxxx>
  • From: Wei Chen <wei.chen@xxxxxxx>
  • Date: Wed, 11 Aug 2021 18:23:45 +0800
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); 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-SenderADCheck; bh=REMC2JEWc6kSwOzQOPs+cm02/cp1lLy6vZpviwordBA=; b=HbsT3iP8XfP/33R/jCMp/Jknsz4XHjudjpaF2bpvVsv5YNOKx4AsRIjmKnlxxT7TkyPDEtYHzL+0Qd2W1KkbgiauhE0b26gkQUFjjvSMvRpT1HsOJTGcBmrYIftRiAbMliN3Nuj+cpx1X7A+zNqHrBOictAqrWGtzz0I4ABrn1hIhFjjYqfK6bTGAa35bxRHZNrzAmtCaHlkmr5mhNj/b8LRrnRwhwgTtEHleBkhA0zCkY42JRyxR0c1AcmxYHQ9o0EXbmRrFMZThTftvuVr7t/drWCEroa3kqyv40pLcoTpKnNMSSffhV86frTSrVnDzHNduECKmHz8eykQqyc7gQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KyR9PAoWjBH1QOpJv24cx0CTZ0nsvLnei7loTdDZkI/2ooKNX7eKwSxVItY9SZV5r4t1vpencp1WfvID/87FHtwT6IU/LV30FFRczeQ5bmPVWhueapwi5PupJqArHqjMKdvUmMHRniV7oXDhda2KFRJOxv+16dr0/93jQs1sE+ppqK06KAqTsQbOjdiBMoFohpC0atXkWTY0Dopw7bGSGwup8dVLxY01mcW7QBWmVNZuCJePatYDmg7K8v0NSSSKOGQumgeWQYYuwAuYFQi04VKr1nceRBSrfOIelG06xGP5aLlSJk+479tVFwbUDe2kNdA7SKo7d2DOxEgaect3zQ==
  • Cc: <Bertrand.Marquis@xxxxxxx>
  • Delivery-date: Wed, 11 Aug 2021 10:25:01 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true

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>
---
 xen/arch/arm/arm64/head.S | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index aa1f88c764..b32639d7d6 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -862,17 +862,18 @@ puts:
         ret
 ENDPROC(puts)
 
-/* Print a 32-bit number in hex.  Specific to the PL011 UART.
+/* Print a 64-bit number in hex.  Specific to the PL011 UART.
  * x0: Number to print.
  * x23: Early UART base address
  * Clobbers x0-x3 */
+#define PRINT_MASK 0xf000000000000000
 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, #PRINT_MASK    /* 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




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.