mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	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
 |