|
|
|
@ -80,14 +80,29 @@ int get_scl(void) |
|
|
|
|
|
|
|
|
|
#define ZL30158_RST 8 |
|
|
|
|
#define BFTIC4_RST 0 |
|
|
|
|
#define RSTRQSR1_WDT_RR 0x00200000 |
|
|
|
|
#define RSTRQSR1_SW_RR 0x00100000 |
|
|
|
|
|
|
|
|
|
int board_early_init_f(void) |
|
|
|
|
{ |
|
|
|
|
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); |
|
|
|
|
bool cpuwd_flag = false; |
|
|
|
|
|
|
|
|
|
/* configure mode for uP reset request */ |
|
|
|
|
qrio_uprstreq(UPREQ_CORE_RST); |
|
|
|
|
|
|
|
|
|
/* board only uses the DDR_MCK0, so disable the DDR_MCK1/2/3 */ |
|
|
|
|
setbits_be32(&gur->ddrclkdr, 0x001f000f); |
|
|
|
|
|
|
|
|
|
/* set reset reason according CPU register */ |
|
|
|
|
if ((gur->rstrqsr1 & (RSTRQSR1_WDT_RR | RSTRQSR1_SW_RR)) == |
|
|
|
|
RSTRQSR1_WDT_RR) |
|
|
|
|
cpuwd_flag = true; |
|
|
|
|
|
|
|
|
|
qrio_cpuwd_flag(cpuwd_flag); |
|
|
|
|
/* clear CPU bits by writing 1 */ |
|
|
|
|
setbits_be32(&gur->rstrqsr1, RSTRQSR1_WDT_RR | RSTRQSR1_SW_RR); |
|
|
|
|
|
|
|
|
|
/* set the BFTIC's prstcfg to reset at power-up and unit reset only */ |
|
|
|
|
qrio_prstcfg(BFTIC4_RST, PRSTCFG_POWUP_UNIT_RST); |
|
|
|
|
/* and enable WD on it */ |
|
|
|
|