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

[PATCH v3 1/9] xen/arm: Print a 64-bit number in hex from early uart


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Wei Chen <wei.chen@xxxxxxx>
  • Date: Wed, 11 May 2022 09:46:31 +0800
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com])
  • 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=2; 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=tCcl6ig9FV6KaPQMsfAvOQCZeEGBSyiayQZl78b6UYE=; b=d6hFaQ4ZyvbpHkW8nLJmgAvA8cT20HMU+I9DKe7TB0VwzkbyBjHxi07Cv2NSvi2VMpbC2dxuU/Vdrfgm9O8dkM0EnZlJ58knFLuJLl4Vo3PcKTW9ya3xtAhUVI93AH4Uk+hXtxv9HgwRFePF/K0M5QnixSaO1+VUz87iZ5BQTWPerFEpghygUBJeTHGvoTOAi7HiHZj8mtsH4NICjAVNCjFA9W2upwPHzfjrAfQN4z9FWXjLJ6nZYFS4/JeGCi674zigpaYYn33RQgkWenUk+zWe0hwe9pjlnWKKekNJZFLIrjngq0TYvJYAGLSe7tM4Wt7ut447ZEE7Ozvw9ZaJxA==
  • 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=tCcl6ig9FV6KaPQMsfAvOQCZeEGBSyiayQZl78b6UYE=; b=fBhgomOcv0Xk263qzxrVq3U12U2uYBbyG/sEz66te3dTSySHH+I6gNTBE9f81p37PFFQ7stvNalthPb05bR1KoYOwbGa2ANMxjT7g9C/zyFNOp3y+YahbVB80GV8WCvX7j2lEAaDovXpsMavpPg0YoqTPrHffSmiVS4Uzt8/MaDNxpcCBcYA/OkTSXz6DCDmZcWz+bF1CzFSQSJoCTmkTKM9Ne9H5CqSnOZSG6ZNrlfwSVt7aY5I5Z1xiGmFmbXTVFaLN6FHSvI2adkxG4f9EH3G1w3rfwFRmgDtmBQLpVZ7R/mkHoG6FHXTvEKPozGj0qZugca9F2FhkB4r+wi56g==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=SfbBdKz3IRE6rjW6JFl1U//COcGT8GAfrGu38vtSt+uJl+r/Iwpm533jAeFzEYtKzrY4FmBYGI4Rz8mduGNoIpQ11mgRuHW6HoCbfFbq1Wm8zl8o8iqWR0k7X1mRHXggh9DR4GkSG+5NYhRMNt8HXciUsjpU75tDVDZSmTb12vgiHbRj1T6B+tRMZAClL8CAOiOi9pSo919ucWfTsukPy+86RrjVz10KEQ5ul3eGDE2Cl5R9/oQcI1OKpoXfwymK4w+6kYgpVn1TIvN3evX2DTPenU5+FsfdKGKZd2YgJJGZFZXW6o5RXU1A/8xjTjUKz+95xOslrVupa9/Ac1G/VQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XY5Ifc8Vn9csJGTepkqMQ+jltFn/NfXb0GOFP07WlOxu7+3xbM/GOX3pSCt2oxoLaMg/zoGD6m5nXhoqHd229x/+yBdXNOFTFNLILq80SArE7DjIU2N3asXgw6eU5YPj62HxhKEg5LLWeREkZ7UVuvavEoiF5JoUKhhRHo+6bBEgpZDjVbj375zBjgEGb/Z9Kkmprv8HojnlEBS5HKcOrhisfBlin1KRkXIDj0Xy3EFL6dPZga+vsc4bOFK9Uaj2eVFy1NnuHQQ0diqC218qvFrgX/qizHYAb6ruYnXVGSSixPAwX0o8uWvF92tGRodK7TQ+pYjVAQjmoWVwHL2Vmw==
  • Cc: <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>, Jiamei Xie <jiamei.xie@xxxxxxx>, Julien Grall <jgrall@xxxxxxxxxx>
  • Delivery-date: Wed, 11 May 2022 01:47:12 +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>
Tested-by: Jiamei Xie <jiamei.xie@xxxxxxx>
Acked-by: Julien Grall <jgrall@xxxxxxxxxx>
---
v2->v3:
Add Tb from Jiamei.
---
 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 1fd35a8390..109ae7de0c 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -872,17 +872,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




 


Rackspace

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