lra@sics.se
2013-Jan-10 20:02 UTC
[PATCH] Set register values and comment in early init_uart to match documentation of PL011 UART
From: Lars Rasmusson <Lars.Rasmusson@sics.se>
Reading the PL011 UART documentation on
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0183f/DDI0183.pdf
in sec 3.2 shows the early initialisation of the UART on the Versatile Express
is incorrect. (Currently it probably works only because the default
values are sane.)
Signed-off-by: Lars Rasmusson <Lars.Rasmusson@sics.se>
---
xen/arch/arm/head.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
index cdbe011..a884592 100644
--- a/xen/arch/arm/head.S
+++ b/xen/arch/arm/head.S
@@ -291,11 +291,11 @@ fail: PRINT("- Boot failed -\r\n")
* Clobbers r0-r2 */
init_uart:
mov r1, #0x0
- str r1, [r11, #0x24] /* -> UARTIBRD (Baud divisor fraction) */
+ str r1, [r11, #0x28] /* -> UARTFBRD (Baud divisor fraction) */
mov r1, #0x4 /* 7.3728MHz / 0x4 == 16 * 115200 */
str r1, [r11, #0x24] /* -> UARTIBRD (Baud divisor integer) */
mov r1, #0x60 /* 8n1 */
- str r1, [r11, #0x24] /* -> UARTLCR_H (Line control) */
+ str r1, [r11, #0x2C] /* -> UARTLCR_H (Line control) */
ldr r1, =0x00000301 /* RXE | TXE | UARTEN */
str r1, [r11, #0x30] /* -> UARTCR (Control Register) */
adr r0, 1f
--
1.7.9.5