David Hendricks (dhendrix@chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2088
-gerrit
commit 81c9624ff1fa79b7feeaa0bacaf314be63f3c764 Author: David Hendricks dhendrix@chromium.org Date: Mon Dec 31 16:34:21 2012 -0800
Omit extra clock timing table entries to save some space
This is just a temporary hack to give us some more room to breathe while developing proper bootblock and romstage code...
Change-Id: I0d114b6e69187bf4d0dce6ab2ac538c3e112bd7f Signed-off-by: David Hendricks dhendrix@chromium.org --- src/cpu/samsung/exynos5250/clock.c | 9 +++++++++ src/cpu/samsung/exynos5250/clock_init.c | 15 +++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/src/cpu/samsung/exynos5250/clock.c b/src/cpu/samsung/exynos5250/clock.c index 0250d77..41a653e 100644 --- a/src/cpu/samsung/exynos5250/clock.c +++ b/src/cpu/samsung/exynos5250/clock.c @@ -169,6 +169,8 @@ unsigned long clock_get_periph_rate(enum periph_id peripheral) src = readl(&clk->src_peric0); div = readl(&clk->div_peric0); break; + /* FIXME (dhendrix): temporarily omitted for space */ +#ifndef __PRE_RAM__ case PERIPH_ID_PWM0: case PERIPH_ID_PWM1: case PERIPH_ID_PWM2: @@ -202,6 +204,7 @@ unsigned long clock_get_periph_rate(enum periph_id peripheral) src = readl(&clk->src_fsys); div = readl(&clk->div_fsys1); break; +#endif /* __PRE_RAM__ */ case PERIPH_ID_I2C0: case PERIPH_ID_I2C1: case PERIPH_ID_I2C2: @@ -239,10 +242,13 @@ unsigned long clock_get_periph_rate(enum periph_id peripheral) sub_div = (div >> bit_info->div_bit) & 0xf; sub_clk = sclk / (sub_div + 1);
+ /* FIXME (dhendrix): temporarily omitted for space */ +#ifndef __PRE_RAM__ if (peripheral == PERIPH_ID_SDMMC0 || peripheral == PERIPH_ID_SDMMC2) { div = (div >> bit_info->prediv_bit) & 0xff; return sub_clk / (div + 1); } +#endif /* __PRE_RAM__ */
return sub_clk; } @@ -466,6 +472,8 @@ int clock_set_rate(enum periph_id periph_id, unsigned int rate) return 0; }
+/* FIXME(dhendrix): temporarily omitted for space */ +#if 0 int clock_set_mshci(enum periph_id peripheral) { struct exynos5_clock *clk = @@ -504,6 +512,7 @@ int clock_set_mshci(enum periph_id peripheral) } return 0; } +#endif
#ifdef CONFIG_OF_CONTROL int clock_decode_periph_id(const void *blob, int node) diff --git a/src/cpu/samsung/exynos5250/clock_init.c b/src/cpu/samsung/exynos5250/clock_init.c index d2abfa9..a8a50ea 100644 --- a/src/cpu/samsung/exynos5250/clock_init.c +++ b/src/cpu/samsung/exynos5250/clock_init.c @@ -40,6 +40,9 @@ #include "setup.h"
struct arm_clk_ratios arm_clk_ratios[] = { + /* FIXME(dhendrix): this is just a stop-gap measure to reduce image + size while we implement bootblock and romstage functionality */ +#if 0 { .arm_freq_mhz = 600,
@@ -116,6 +119,8 @@ struct arm_clk_ratios arm_clk_ratios[] = { .cpud_ratio = 0x3, .arm_ratio = 0x0, }, { +#endif + { .arm_freq_mhz = 1700,
.apll_mdiv = 0x1a9, @@ -238,6 +243,10 @@ struct mem_timings mem_timings[] = { .send_zq_init = 1, .impedance = IMP_OUTPUT_DRV_30_OHM, .gate_leveling_enable = 0, + /* FIXME(dhendrix): this is just a stop-gap measure to reduce image + size while we implement bootblock and romstage functionality */ + } +#if 0 }, { .mem_manuf = MEM_MANUF_SAMSUNG, .mem_type = DDR_MODE_DDR3, @@ -552,6 +561,7 @@ struct mem_timings mem_timings[] = { .impedance = IMP_OUTPUT_DRV_40_OHM, .gate_leveling_enable = 1, } +#endif };
/** @@ -723,6 +733,8 @@ struct arm_clk_ratios *get_arm_ratios(void)
struct mem_timings *clock_get_mem_timings(void) { + return &mem_timings[0]; +#if 0 struct mem_timings *mem; enum ddr_mode mem_type; enum mem_manuf mem_manuf; @@ -741,6 +753,7 @@ struct mem_timings *clock_get_mem_timings(void) } } return NULL; +#endif }
void system_clock_init() @@ -855,7 +868,6 @@ void system_clock_init() setbits_le32(&clk->pll_div2_sel, MUX_BPLL_FOUT_SEL); }
- /* Set CPLL */ writel(CPLL_CON1_VAL, &clk->cpll_con1); val = set_pll(mem->cpll_mdiv, mem->cpll_pdiv, mem->cpll_sdiv); @@ -979,7 +991,6 @@ void system_clock_init() writel(CLK_REG_DISABLE, &clk->clkout_cmu_r0x); writel(CLK_REG_DISABLE, &clk->clkout_cmu_r1x); writel(CLK_REG_DISABLE, &clk->clkout_cmu_cdrex); - writel(CLK_SRC_PERIC0_VAL, &clk->src_peric0); writel(CLK_DIV_PERIC0_VAL, &clk->div_peric0); writel(CLK_SRC_PERIC1_VAL, &clk->src_peric1);