diff --git a/arch/powerpc/cpu/mpc8xxx/cpu.c b/arch/powerpc/cpu/mpc8xxx/cpu.c index 584f3b8d61..afb5b512ba 100644 --- a/arch/powerpc/cpu/mpc8xxx/cpu.c +++ b/arch/powerpc/cpu/mpc8xxx/cpu.c @@ -308,7 +308,7 @@ int is_core_valid(unsigned int core) return !!((1 << core) & cpu_mask()); } -int probecpu (void) +int arch_cpu_init(void) { uint svr; uint ver; diff --git a/board/Arcturus/ucp1020/spl.c b/board/Arcturus/ucp1020/spl.c index 9c19c87b72..3a775be9ae 100644 --- a/board/Arcturus/ucp1020/spl.c +++ b/board/Arcturus/ucp1020/spl.c @@ -83,7 +83,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L2_ADDR; bd->bi_memsize = CONFIG_SYS_L2_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/b4860qds/spl.c b/board/freescale/b4860qds/spl.c index fabc78301a..35b812cb18 100644 --- a/board/freescale/b4860qds/spl.c +++ b/board/freescale/b4860qds/spl.c @@ -87,7 +87,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L3_ADDR; bd->bi_memsize = CONFIG_SYS_L3_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/c29xpcie/spl.c b/board/freescale/c29xpcie/spl.c index d8d73c70b8..6613216950 100644 --- a/board/freescale/c29xpcie/spl.c +++ b/board/freescale/c29xpcie/spl.c @@ -53,7 +53,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L2_ADDR; bd->bi_memsize = CONFIG_SYS_L2_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/p1010rdb/spl.c b/board/freescale/p1010rdb/spl.c index c22e215675..05c76f2e45 100644 --- a/board/freescale/p1010rdb/spl.c +++ b/board/freescale/p1010rdb/spl.c @@ -69,7 +69,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L2_ADDR; bd->bi_memsize = CONFIG_SYS_L2_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/p1022ds/spl.c b/board/freescale/p1022ds/spl.c index 6a5fe74343..ef38551600 100644 --- a/board/freescale/p1022ds/spl.c +++ b/board/freescale/p1022ds/spl.c @@ -83,7 +83,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L2_ADDR; bd->bi_memsize = CONFIG_SYS_L2_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/p1_p2_rdb_pc/spl.c b/board/freescale/p1_p2_rdb_pc/spl.c index 9e8f359d0d..2af5576ff7 100644 --- a/board/freescale/p1_p2_rdb_pc/spl.c +++ b/board/freescale/p1_p2_rdb_pc/spl.c @@ -80,7 +80,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L2_ADDR; bd->bi_memsize = CONFIG_SYS_L2_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/t102xqds/spl.c b/board/freescale/t102xqds/spl.c index c9239b87db..3e96b33c40 100644 --- a/board/freescale/t102xqds/spl.c +++ b/board/freescale/t102xqds/spl.c @@ -117,7 +117,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L3_ADDR; bd->bi_memsize = CONFIG_SYS_L3_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/t102xrdb/spl.c b/board/freescale/t102xrdb/spl.c index 6d8866e87d..b70c2c5d79 100644 --- a/board/freescale/t102xrdb/spl.c +++ b/board/freescale/t102xrdb/spl.c @@ -104,7 +104,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L3_ADDR; bd->bi_memsize = CONFIG_SYS_L3_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/t104xrdb/spl.c b/board/freescale/t104xrdb/spl.c index 1c2023b6a3..4402e0f4b0 100644 --- a/board/freescale/t104xrdb/spl.c +++ b/board/freescale/t104xrdb/spl.c @@ -95,7 +95,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L3_ADDR; bd->bi_memsize = CONFIG_SYS_L3_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/t208xqds/spl.c b/board/freescale/t208xqds/spl.c index b1e1cf17e7..334f5083b8 100644 --- a/board/freescale/t208xqds/spl.c +++ b/board/freescale/t208xqds/spl.c @@ -103,7 +103,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L3_ADDR; bd->bi_memsize = CONFIG_SYS_L3_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/t208xrdb/spl.c b/board/freescale/t208xrdb/spl.c index bb23865d3b..aa8e9285fe 100644 --- a/board/freescale/t208xrdb/spl.c +++ b/board/freescale/t208xrdb/spl.c @@ -73,7 +73,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L3_ADDR; bd->bi_memsize = CONFIG_SYS_L3_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/t4qds/spl.c b/board/freescale/t4qds/spl.c index 6ca0f03ffe..5e946dc84f 100644 --- a/board/freescale/t4qds/spl.c +++ b/board/freescale/t4qds/spl.c @@ -112,7 +112,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L3_ADDR; bd->bi_memsize = CONFIG_SYS_L3_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/board/freescale/t4rdb/spl.c b/board/freescale/t4rdb/spl.c index b148a7fd1f..a32e34ef96 100644 --- a/board/freescale/t4rdb/spl.c +++ b/board/freescale/t4rdb/spl.c @@ -76,7 +76,7 @@ void board_init_r(gd_t *gd, ulong dest_addr) bd->bi_memstart = CONFIG_SYS_INIT_L3_ADDR; bd->bi_memsize = CONFIG_SYS_L3_SIZE; - probecpu(); + arch_cpu_init(); get_clocks(); mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR, CONFIG_SPL_RELOC_MALLOC_SIZE); diff --git a/common/board_f.c b/common/board_f.c index cc8aee74f0..5e2b8d14d4 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -858,10 +858,6 @@ static init_fnc_t init_sequence_f[] = { #endif initf_malloc, initf_console_record, -#if defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx) - /* TODO: can this go into arch_cpu_init()? */ - probecpu, -#endif #if defined(CONFIG_X86) && defined(CONFIG_HAVE_FSP) x86_fsp_init, #endif diff --git a/include/common.h b/include/common.h index 2af555ee00..53cdadf09c 100644 --- a/include/common.h +++ b/include/common.h @@ -600,7 +600,17 @@ int cpu_num_dspcores(void); u32 cpu_mask (void); u32 cpu_dsp_mask(void); int is_core_valid (unsigned int); -int probecpu (void); + +/** + * arch_cpu_init() - basic cpu-dependent setup for an architecture + * + * This is called after early malloc is available. It should handle any + * CPU- or SoC- specific init needed to continue the init sequence. See + * board_f.c for where it is called. If this is not provided, a default + * version (which does nothing) will be used. + */ +int arch_cpu_init(void); + int checkcpu (void); int checkicache (void); int checkdcache (void);