mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 15:37:23 +00:00
Blackfin: handle reboot anomaly 432
Workaround anomaly 432: The bfrom_SysControl() firmware function does not clear the SIC_IWR1 register before executing the PLL programming sequence. Therefore, any interrupt enabled in the SIC_IWR1 register prior to the call to bfrom_SysControl() can prematurely terminate the idle sequence required for the PLL to relock properly. SIC_IWR0 is properly handled. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
7e1d212b6d
commit
3986e981f5
1 changed files with 6 additions and 0 deletions
|
@ -273,8 +273,14 @@ void initcode(ADI_BOOT_DATA *bootstruct)
|
|||
memory_settings.uwPllCtl = CONFIG_PLL_CTL_VAL;
|
||||
memory_settings.uwPllDiv = CONFIG_PLL_DIV_VAL;
|
||||
memory_settings.uwPllLockCnt = CONFIG_PLL_LOCKCNT_VAL;
|
||||
#if ANOMALY_05000432
|
||||
bfin_write_SIC_IWR1(0);
|
||||
#endif
|
||||
syscontrol(SYSCTRL_WRITE | SYSCTRL_VRCTL | SYSCTRL_PLLCTL | SYSCTRL_PLLDIV | SYSCTRL_LOCKCNT |
|
||||
(CONFIG_VR_CTL_VAL & FREQ_MASK ? SYSCTRL_INTVOLTAGE : SYSCTRL_EXTVOLTAGE), &memory_settings, NULL);
|
||||
#if ANOMALY_05000432
|
||||
bfin_write_SIC_IWR1(-1);
|
||||
#endif
|
||||
} else {
|
||||
serial_putc('L');
|
||||
|
||||
|
|
Loading…
Reference in a new issue