[U-Boot] [U-Boot, v2, 4/4] arm: am33xx: Add support for mulitiple PLL input frequencies

Lokesh Vutla lokeshvutla at ti.com
Thu Jun 8 04:47:09 UTC 2017



On Thursday 08 June 2017 12:20 AM, Emmanuel Vadot wrote:
> On Fri, 12 May 2017 13:20:50 -0400
> Tom Rini <trini at konsulko.com> wrote:
> 
>> On Fri, May 05, 2017 at 12:59:10PM +0530, Lokesh Vutla wrote:
>>
>>> am335x supports various sysclk frequencies which can be determined
>>> using sysboot pins. PLLs should be configures based on this
>>> sysclk frequency. Add PLL configurations for all supported
>>> frequencies.
>>>
>>> Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
>>> Reviewed-by: Tom Rini <trini at konsulko.com>
>>
>> Applied to u-boot/master, thanks!
>>
>> -- 
>> Tom
> 
>  Hello,
> 
>  This appears to break beaglebone black support, reverting this commit
> make u-boot works again.

hmm..I see the problem. Here we are hard coding MPU freq to 1GHz even
efuse say it is not supported(I am not sure why this is being done, may
be Tom can give more details). Even in kernel I see that cpufreq is
reading efuse to determine mpu frequency. Now that we have jitter
optimized pll configurations, looks like unsupported freq is causing an
issue. Can you see if the below patch helps?

------------8<------------------8<--------------------------
>From 519035c54cef3f9156303b70322c02f10ec69e00 Mon Sep 17 00:00:00 2001
From: Lokesh Vutla <lokeshvutla at ti.com>
Date: Thu, 8 Jun 2017 09:34:52 +0530
Subject: [PATCH] board: am335x: Do not harcode mpu freq for beagleboneblack

For all am335x boards the mpu frequency is determined by readin
efuse. But for beagleboneblack it is hard coded to 1GHz
irrespective of efuse settings. Due to which some boards
fails to boot with not recommended frequency. Fix it to
use efuse to determine mpu frequency.

Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
---
 board/ti/am335x/board.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index 517965c0f0..4cf6617efb 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -294,9 +294,6 @@ const struct dpll_params *get_dpll_mpu_params(void)
 	if (bone_not_connected_to_ac_power())
 		freq = MPUPLL_M_600;

-	if (board_is_bone_lt())
-		freq = MPUPLL_M_1000;
-
 	switch (freq) {
 	case MPUPLL_M_1000:
 		return &dpll_mpu_opp[ind][5];
@@ -336,13 +333,6 @@ static void scale_vcores_bone(int freq)
 	if (bone_not_connected_to_ac_power())
 		freq = MPUPLL_M_600;

-	/*
-	 * Override what we have detected since we know if we have
-	 * a Beaglebone Black it supports 1GHz.
-	 */
-	if (board_is_bone_lt())
-		freq = MPUPLL_M_1000;
-
 	if (freq == MPUPLL_M_1000) {
 		usb_cur_lim = TPS65217_USB_INPUT_CUR_LIMIT_1800MA;
 		mpu_vdd = TPS65217_DCDC_VOLT_SEL_1325MV;
-- 
2.11.0



More information about the U-Boot mailing list