Hi,
reading the PL011 UART documentation on
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0183f/DDI0183.pdf
the early initialisation of the UART on the Versatile Express
is incorrect. (Currently it probably works only because the default
values are sane.)
Cheers,
/Lars
From 7184ce113d907ce8cf366dddbe8145e59987a656 Mon Sep 17 00:00:00 2001
From: Lars Rasmusson <Lars.Rasmusson@sics.se>
Date: Thu, 10 Jan 2013 17:10:44 +0100
Subject: [PATCH] Fixed register values and comment in early init_uart to
match documentation of PL011 UART
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
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
Hi,
reading the PL011 UART documentation on
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0183f/DDI0183.pdf
I noticed the early initialisation of the UART on the Versatile Express
is incorrect. (Currently it probably works only because the default
values are sane.)
Cheers,
/Lars
From 7184ce113d907ce8cf366dddbe8145e59987a656 Mon Sep 17 00:00:00 2001
From: Lars Rasmusson <Lars.Rasmusson@sics.se>
Date: Thu, 10 Jan 2013 17:10:44 +0100
Subject: [PATCH] Fixed register values and comment in early init_uart to
match documentation of PL011 UART
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
On Thu, 2013-01-10 at 19:18 +0000, lra@sics.se wrote:> Hi, > > reading the PL011 UART documentation on > http://infocenter.arm.com/help/topic/com.arm.doc.ddi0183f/DDI0183.pdf > > I noticed the early initialisation of the UART on the Versatile Express > is incorrect. (Currently it probably works only because the default > values are sane.)Good catch! Thanks.> From 7184ce113d907ce8cf366dddbe8145e59987a656 Mon Sep 17 00:00:00 2001 > From: Lars Rasmusson <Lars.Rasmusson@sics.se> > Date: Thu, 10 Jan 2013 17:10:44 +0100 > Subject: [PATCH] Fixed register values and comment in early init_uart to > match documentation of PL011 UART > > Signed-off-by: Lars Rasmusson <Lars.Rasmusson@sics.se>Acked-by: Ian Campbell <ian.campbell@citrix.com>> --- > 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
On Fri, 2013-01-11 at 10:03 +0000, Ian Campbell wrote:> On Thu, 2013-01-10 at 19:18 +0000, lra@sics.se wrote: > > Hi, > > > > reading the PL011 UART documentation on > > http://infocenter.arm.com/help/topic/com.arm.doc.ddi0183f/DDI0183.pdf > > > > I noticed the early initialisation of the UART on the Versatile Express > > is incorrect. (Currently it probably works only because the default > > values are sane.) > > Good catch! Thanks. > > > From 7184ce113d907ce8cf366dddbe8145e59987a656 Mon Sep 17 00:00:00 2001 > > From: Lars Rasmusson <Lars.Rasmusson@sics.se> > > Date: Thu, 10 Jan 2013 17:10:44 +0100 > > Subject: [PATCH] Fixed register values and comment in early init_uart to > > match documentation of PL011 UART > > > > Signed-off-by: Lars Rasmusson <Lars.Rasmusson@sics.se> > > Acked-by: Ian Campbell <ian.campbell@citrix.com>I''m afraid this patch doesn''t apply, I think it is based on a tree prior to moving head.S -> arm32/head.S and fixing up the whitespace. Could you rebase please? Thanks, Ian.
lra@sics.se
2013-Jan-17 14:08 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. This fixes it.
Signed-off-by: Lars Rasmusson <Lars.Rasmusson@sics.se>
---
xen/arch/arm/arm32/head.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S
index 4782f11..20e9da6 100644
--- a/xen/arch/arm/arm32/head.S
+++ b/xen/arch/arm/arm32/head.S
@@ -352,11 +352,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
Ian Campbell
2013-Jan-17 16:49 UTC
Re: [PATCH] Set register values and comment in early init_uart to match documentation of PL011 UART
On Thu, 2013-01-17 at 14:08 +0000, lra@sics.se wrote:> 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. This fixes it. > > Signed-off-by: Lars Rasmusson <Lars.Rasmusson@sics.se>Acked + applied. Thanks.