Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx
This commit is contained in:
@@ -254,12 +254,36 @@ static void enable_tdm_law(void)
|
||||
void enable_cpc(void)
|
||||
{
|
||||
int i;
|
||||
int ret;
|
||||
u32 size = 0;
|
||||
|
||||
u32 cpccfg0;
|
||||
char buffer[HWCONFIG_BUFFER_SIZE];
|
||||
char cpc_subarg[16];
|
||||
bool have_hwconfig = false;
|
||||
int cpc_args = 0;
|
||||
cpc_corenet_t *cpc = (cpc_corenet_t *)CONFIG_SYS_FSL_CPC_ADDR;
|
||||
|
||||
/* Extract hwconfig from environment */
|
||||
ret = getenv_f("hwconfig", buffer, sizeof(buffer));
|
||||
if (ret > 0) {
|
||||
/*
|
||||
* If "en_cpc" is not defined in hwconfig then by default all
|
||||
* cpcs are enable. If this config is defined then individual
|
||||
* cpcs which have to be enabled should also be defined.
|
||||
* e.g en_cpc:cpc1,cpc2;
|
||||
*/
|
||||
if (hwconfig_f("en_cpc", buffer))
|
||||
have_hwconfig = true;
|
||||
}
|
||||
|
||||
for (i = 0; i < CONFIG_SYS_NUM_CPC; i++, cpc++) {
|
||||
u32 cpccfg0 = in_be32(&cpc->cpccfg0);
|
||||
if (have_hwconfig) {
|
||||
sprintf(cpc_subarg, "cpc%u", i + 1);
|
||||
cpc_args = hwconfig_sub_f("en_cpc", cpc_subarg, buffer);
|
||||
if (cpc_args == 0)
|
||||
continue;
|
||||
}
|
||||
cpccfg0 = in_be32(&cpc->cpccfg0);
|
||||
size += CPC_CFG0_SZ_K(cpccfg0);
|
||||
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_CPC_A002
|
||||
|
||||
@@ -134,6 +134,21 @@ void ft_fixup_cpu(void *blob, u64 memory_limit)
|
||||
printf("Failed to reserve memory for spin table: %s\n",
|
||||
fdt_strerror(off));
|
||||
}
|
||||
#ifdef CONFIG_DEEP_SLEEP
|
||||
#ifdef CONFIG_SPL_MMC_BOOT
|
||||
off = fdt_add_mem_rsv(blob, CONFIG_SYS_MMC_U_BOOT_START,
|
||||
CONFIG_SYS_MMC_U_BOOT_SIZE);
|
||||
if (off < 0)
|
||||
printf("Failed to reserve memory for SD deep sleep: %s\n",
|
||||
fdt_strerror(off));
|
||||
#elif defined(CONFIG_SPL_SPI_BOOT)
|
||||
off = fdt_add_mem_rsv(blob, CONFIG_SYS_SPI_FLASH_U_BOOT_START,
|
||||
CONFIG_SYS_SPI_FLASH_U_BOOT_SIZE);
|
||||
if (off < 0)
|
||||
printf("Failed to reserve memory for SPI deep sleep: %s\n",
|
||||
fdt_strerror(off));
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -366,6 +366,8 @@ void board_init_f(ulong bootflag)
|
||||
memset((void *) gd, 0, sizeof(gd_t));
|
||||
#endif
|
||||
|
||||
gd->flags = bootflag;
|
||||
|
||||
for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr)
|
||||
if ((*init_fnc_ptr) () != 0)
|
||||
hang();
|
||||
|
||||
Reference in New Issue
Block a user