Hi, Pieter
We boot i.MX6DL with 792MHz in uboot by default, you said you want to use 996MHz, in uboot or kernel? If you mean in uboot, then I have a patch below for you, although I think it is not necessary to run uboot at 996MHz, your approach is not safe, as you can NOT just increase the PLL to 996MHz, the VDDARM, VDDSOC/PU voltage need to be increased too! If you mean in kernel, then I think you can just enable the cpufreq driver, then it should support 996MHz, the patch [PATCH] ARM: imx: enable cpufreq for i.mx6dl I did yestoday is to enable this cpufreq feature for i.MX6DL, but there is also a patch for cpufreq driver, not sure when the maintainer will apply them. Below is the patch of uboot at 996MHz for you to reference, based on imx_v2009.08 uboot.
From 6535c2cb5c9af56574c3ac760cb58db9c0b04b54 Mon Sep 17 00:00:00 2001
From: Anson Huang <b20788@freescale.com>
Date: Tue, 10 Sep 2013 11:14:54 +0800
Subject: [PATCH] Increase CPU freq to 1G in uboot.
Signed-off-by: Anson Huang <b20788@freescale.com>
---
cpu/arm_cortexa8/mx6/generic.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/cpu/arm_cortexa8/mx6/generic.c b/cpu/arm_cortexa8/mx6/generic.c
index ecb196c..87e0626 100644
--- a/cpu/arm_cortexa8/mx6/generic.c
+++ b/cpu/arm_cortexa8/mx6/generic.c
@@ -125,7 +125,7 @@ static u32 __decode_pll(enum pll_clocks pll, u32 infreq)
case CPU_PLL1:
div = REG_RD(ANATOP_BASE_ADDR, HW_ANADIG_PLL_SYS) &
BM_ANADIG_PLL_SYS_DIV_SELECT;
- return infreq * (div >> 1);
+ return (infreq * div) >> 1;
case BUS_PLL2:
div = REG_RD(ANATOP_BASE_ADDR, HW_ANADIG_PLL_528) &
BM_ANADIG_PLL_528_DIV_SELECT;
@@ -982,6 +982,7 @@ static void check_cpu_temperature(void)
#if defined(CONFIG_DISPLAY_CPUINFO)
int print_cpuinfo(void)
{
+ clk_config(CONFIG_REF_CLK_FREQ, 996, CPU_CLK);
printf("CPU: Freescale i.MX6 family TO%d.%d at %d MHz\n",
(get_board_rev() & 0xFF) >> 4,
(get_board_rev() & 0xF),
@@ -1089,7 +1090,9 @@ int arch_cpu_init(void)
val = REG_RD(ANATOP_BASE_ADDR, HW_ANADIG_REG_CORE);
val &= ~BM_ANADIG_REG_CORE_REG2_TRG;
val &= ~BM_ANADIG_REG_CORE_REG1_TRG;
- val |= BF_ANADIG_REG_CORE_REG2_TRG(0x14);
+ val &= ~BM_ANADIG_REG_CORE_REG0_TRG;
+ val |= BF_ANADIG_REG_CORE_REG0_TRG(0x16);
+ val |= BF_ANADIG_REG_CORE_REG2_TRG(0x16);
REG_WR(ANATOP_BASE_ADDR, HW_ANADIG_REG_CORE, val);
/* Need to power down PCIe */
--
1.7.1