[PATCH uboot v2016.05-aspeed-openbmc] aspeed/ast-g4: disables D2-PLL and force UART configuration at reboot
Cédric Le Goater
clg at kaod.org
Fri Jul 8 00:32:47 AEST 2016
The serial configuration could probably be done in a u-boot serial
driver. Disabling D2-PLL is also required but I am not sure where to
put it.
Based on :
https://github.com/openbmc/u-boot/commit/4b44678c11ac82c7c797bb115e276181752ad54d
Signed-off-by: Cédric Le Goater <clg at kaod.org>
---
board/aspeed/ast-g4/platform.S | 70 +++++++++++++++++++++++------------------
1 file changed, 40 insertions(+), 30 deletions(-)
Index: u-boot-v2016.05-aspeed-openbmc.git/board/aspeed/ast-g4/platform.S
===================================================================
--- u-boot-v2016.05-aspeed-openbmc.git.orig/board/aspeed/ast-g4/platform.S
+++ u-boot-v2016.05-aspeed-openbmc.git/board/aspeed/ast-g4/platform.S
@@ -166,6 +166,45 @@ PATTERN_TABLE:
ldr r2, =0x00000800
.endm
+ .macro init_uart
+ /* Disable D2-PLL */
+ ldr r0, =0x1e6e202c
+ ldr r1, =0x00000010
+ str r1, [r0]
+ /* Setting the 7th bit of UART LCR to 1 gives access to the
+ * divisor latches
+ */
+ ldr r0, =0x1e78400c
+ mov r1, #0x83
+ str r1, [r0]
+ /* check SCU_MISC1 for div13 enablement */
+ ldr r0, =0x1e6e202c
+ ldr r2, [r0]
+ mov r2, r2, lsr #12
+ tst r2, #0x01
+ /* configure baudrate */
+ ldr r0, =0x1e784000
+ moveq r1, #0x0D @ Baudrate 115200
+ movne r1, #0x01 @ Baudrate 115200, div13
+#if defined(CONFIG_DRAM_UART_38400)
+ moveq r1, #0x27 @ Baudrate 38400
+ movne r1, #0x03 @ Baudrate 38400 , div13
+#endif
+ str r1, [r0]
+ /* interrupt settings */
+ ldr r0, =0x1e784004
+ mov r1, #0x00
+ str r1, [r0]
+ /* 8N1 */
+ ldr r0, =0x1e78400c
+ mov r1, #0x03
+ str r1, [r0]
+ /* baudrate is configured. restore LCR */
+ ldr r0, =0x1e784008
+ mov r1, #0x07
+ str r1, [r0]
+ .endm
+
/******************************************************************************
Calibration Macro End
******************************************************************************/
@@ -187,6 +226,7 @@ LPC_Patch_E:
.globl lowlevel_init
lowlevel_init:
+ init_uart
init_dram:
/* save lr */
@@ -336,36 +376,6 @@ set_MPLL:
and r1, r2, r1
str r1, [r0]
-/* Debug - UART console message */
- ldr r0, =0x1e78400c
- mov r1, #0x83
- str r1, [r0]
-
- ldr r0, =0x1e6e202c
- ldr r2, [r0]
- mov r2, r2, lsr #12
- tst r2, #0x01
- ldr r0, =0x1e784000
- moveq r1, #0x0D @ Baudrate 115200
- movne r1, #0x01 @ Baudrate 115200, div13
-#if defined(CONFIG_DRAM_UART_38400)
- moveq r1, #0x27 @ Baudrate 38400
- movne r1, #0x03 @ Baudrate 38400 , div13
-#endif
- str r1, [r0]
-
- ldr r0, =0x1e784004
- mov r1, #0x00
- str r1, [r0]
-
- ldr r0, =0x1e78400c
- mov r1, #0x03
- str r1, [r0]
-
- ldr r0, =0x1e784008
- mov r1, #0x07
- str r1, [r0]
-
ldr r0, =0x1e784000
mov r1, #0x0D @ '\r'
str r1, [r0]
More information about the openbmc
mailing list