mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 18:19:02 +00:00
b40705b677
Revert to using the checked in `tbb_linux` image tool binary since building it drags in the rather big Crypto++ project. Cherry-pick the post-release UART fixes. Switch to AUTORELEASE while at it. Signed-off-by: Andre Heider <a.heider@gmail.com>
54 lines
1.8 KiB
Diff
54 lines
1.8 KiB
Diff
From b9185c75f7ec2b600ebe0d49281e216a2456b764 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
|
|
Date: Thu, 13 May 2021 15:11:06 +0200
|
|
Subject: [PATCH] fix(plat/marvell/a3720/uart): fix configuring UART clock
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
When configuring the UART_BAUD_REG register, the function
|
|
console_a3700_core_init() currently only changes the baud divisor field,
|
|
leaving other fields to their previous value.
|
|
|
|
This is incorrect, because the baud divisor is computed with the
|
|
assumption that the parent clock rate is 25 MHz, and since the other
|
|
fields in this register configure the parent clock, which could have
|
|
been changed by U-Boot or Linux.
|
|
|
|
Fix this function to also configure the other fields so that the UART
|
|
parent clock is selected to be the xtal clock.
|
|
|
|
For example without this change TF-A prints only
|
|
|
|
ERROR: a3700_system_off needs to be implemented
|
|
|
|
followed by garbage after plat_crash_console_init() is called.
|
|
|
|
After applying this change instead of garbage it also print crash info:
|
|
|
|
PANIC at PC : 0x0000000004023800
|
|
|
|
Signed-off-by: Pali Rohár <pali@kernel.org>
|
|
Change-Id: I72f338355cc60d939b8bb978d9c7fdd576416b81
|
|
---
|
|
drivers/marvell/uart/a3700_console.S | 7 ++-----
|
|
1 file changed, 2 insertions(+), 5 deletions(-)
|
|
|
|
--- a/drivers/marvell/uart/a3700_console.S
|
|
+++ b/drivers/marvell/uart/a3700_console.S
|
|
@@ -49,12 +49,9 @@ func console_a3700_core_init
|
|
lsl w2, w2, #4
|
|
add w1, w1, w2, lsr #1
|
|
udiv w2, w1, w2
|
|
- and w2, w2, #0x3ff
|
|
+ and w2, w2, #0x3ff /* clear all other bits to use default clock */
|
|
|
|
- ldr w3, [x0, #UART_BAUD_REG]
|
|
- bic w3, w3, 0x3ff
|
|
- orr w3, w3, w2
|
|
- str w3, [x0, #UART_BAUD_REG]/* set baud rate divisor */
|
|
+ str w2, [x0, #UART_BAUD_REG]/* set baud rate divisor */
|
|
|
|
/* Set UART to default 16X scheme */
|
|
mov w3, #0
|