mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-04-02 12:31:31 +00:00
Blackfin: workaround anomaly 05000440
We cannot rely on the syscontrol rom func to program PLL_DIV with anomaly 05000440 is in effect, so manually program the MMR when necessary. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
e5d8984be6
commit
5641f34f8b
1 changed files with 5 additions and 1 deletions
|
@ -391,7 +391,9 @@ program_clocks(ADI_BOOT_DATA *bs, bool put_into_srfs)
|
||||||
|
|
||||||
/* Always programming PLL_LOCKCNT avoids Anomaly 05000430 */
|
/* Always programming PLL_LOCKCNT avoids Anomaly 05000430 */
|
||||||
ADI_SYSCTRL_VALUES memory_settings;
|
ADI_SYSCTRL_VALUES memory_settings;
|
||||||
uint32_t actions = SYSCTRL_WRITE | SYSCTRL_PLLCTL | SYSCTRL_PLLDIV | SYSCTRL_LOCKCNT;
|
uint32_t actions = SYSCTRL_WRITE | SYSCTRL_PLLCTL | SYSCTRL_LOCKCNT;
|
||||||
|
if (!ANOMALY_05000440)
|
||||||
|
actions |= SYSCTRL_PLLDIV;
|
||||||
if (CONFIG_HAS_VR) {
|
if (CONFIG_HAS_VR) {
|
||||||
actions |= SYSCTRL_VRCTL;
|
actions |= SYSCTRL_VRCTL;
|
||||||
if (CONFIG_VR_CTL_VAL & FREQ_MASK)
|
if (CONFIG_VR_CTL_VAL & FREQ_MASK)
|
||||||
|
@ -410,6 +412,8 @@ program_clocks(ADI_BOOT_DATA *bs, bool put_into_srfs)
|
||||||
serial_putc('e');
|
serial_putc('e');
|
||||||
bfrom_SysControl(actions, &memory_settings, NULL);
|
bfrom_SysControl(actions, &memory_settings, NULL);
|
||||||
serial_putc('f');
|
serial_putc('f');
|
||||||
|
if (ANOMALY_05000440)
|
||||||
|
bfin_write_PLL_DIV(CONFIG_PLL_DIV_VAL);
|
||||||
#if ANOMALY_05000432
|
#if ANOMALY_05000432
|
||||||
bfin_write_SIC_IWR1(-1);
|
bfin_write_SIC_IWR1(-1);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue