[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
|