[U-Boot] [PATCH 2/2] powerpc: Rework cpu_init_f() to take no arguments
Christophe LEROY
christophe.leroy at c-s.fr
Mon Aug 14 06:20:59 UTC 2017
Acked-by: Christophe Leroy <christophe.leroy at c-s.fr>
Le 14/08/2017 à 04:44, Tom Rini a écrit :
> The function cpu_init_f() is called slightly differently on different
> PowerPC platforms. In some cases the function needs to make use of the
> IMMR and in other cases it does not. Rather than pass the IMMR location
> as the function argument and then ignore it on some platforms, allow the
> function to use the location as needed as it is a constant.
>
> Cc: Mario Six <mario.six at gdsys.cc>
> Cc: Wolfgang Denk <wd at denx.de>
> Cc: Christophe Leroy <christophe.leroy at c-s.fr>
> Signed-off-by: Tom Rini <trini at konsulko.com>
> ---
> arch/powerpc/cpu/mpc83xx/cpu_init.c | 4 +++-
> arch/powerpc/cpu/mpc83xx/spl_minimal.c | 4 +++-
> arch/powerpc/cpu/mpc83xx/start.S | 2 --
> arch/powerpc/cpu/mpc85xx/cpu_init.c | 4 +---
> arch/powerpc/cpu/mpc8xx/cpu_init.c | 4 +++-
> arch/powerpc/cpu/mpc8xx/start.S | 1 -
> arch/powerpc/include/asm/ppc.h | 1 +
> 7 files changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/arch/powerpc/cpu/mpc83xx/cpu_init.c b/arch/powerpc/cpu/mpc83xx/cpu_init.c
> index 2a9db0c51b89..f09a96b9abff 100644
> --- a/arch/powerpc/cpu/mpc83xx/cpu_init.c
> +++ b/arch/powerpc/cpu/mpc83xx/cpu_init.c
> @@ -46,8 +46,10 @@ static void config_qe_ioports(void)
> * initialize a bunch of registers,
> * initialize the UPM's
> */
> -void cpu_init_f (volatile immap_t * im)
> +void cpu_init_f (void)
> {
> + volatile immap_t *im = (void *)(CONFIG_SYS_IMMR);
> +
> __be32 acr_mask =
> #ifdef CONFIG_SYS_ACR_PIPE_DEP /* Arbiter pipeline depth */
> ACR_PIPE_DEP |
> diff --git a/arch/powerpc/cpu/mpc83xx/spl_minimal.c b/arch/powerpc/cpu/mpc83xx/spl_minimal.c
> index 1c65e4cb78dd..ce751d3bdf9f 100644
> --- a/arch/powerpc/cpu/mpc83xx/spl_minimal.c
> +++ b/arch/powerpc/cpu/mpc83xx/spl_minimal.c
> @@ -16,8 +16,10 @@ DECLARE_GLOBAL_DATA_PTR;
> * initialize a bunch of registers,
> * initialize the UPM's
> */
> -void cpu_init_f (volatile immap_t * im)
> +void cpu_init_f (void)
> {
> + volatile immap_t *im = (void *)(CONFIG_SYS_IMMR);
> +
> /* Pointer is writable since we allocated a register for it */
> gd = (gd_t *) (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_GBL_DATA_OFFSET);
>
> diff --git a/arch/powerpc/cpu/mpc83xx/start.S b/arch/powerpc/cpu/mpc83xx/start.S
> index d2fced8aba86..8d10c50f6912 100644
> --- a/arch/powerpc/cpu/mpc83xx/start.S
> +++ b/arch/powerpc/cpu/mpc83xx/start.S
> @@ -290,8 +290,6 @@ in_flash:
>
> GET_GOT /* initialize GOT access */
>
> - /* r3: IMMR */
> - lis r3, CONFIG_SYS_IMMR at h
> /* run low-level CPU init code (in Flash)*/
> bl cpu_init_f
>
> diff --git a/arch/powerpc/cpu/mpc85xx/cpu_init.c b/arch/powerpc/cpu/mpc85xx/cpu_init.c
> index a3076d8d7100..2db8f1f91fe2 100644
> --- a/arch/powerpc/cpu/mpc85xx/cpu_init.c
> +++ b/arch/powerpc/cpu/mpc85xx/cpu_init.c
> @@ -435,7 +435,7 @@ void fsl_erratum_a007212_workaround(void)
> }
> #endif
>
> -ulong cpu_init_f(void)
> +void cpu_init_f(void)
> {
> extern void m8560_cpm_reset (void);
> #ifdef CONFIG_SYS_DCSRBAR_PHYS
> @@ -507,8 +507,6 @@ ulong cpu_init_f(void)
> #ifdef CONFIG_SYS_FSL_ERRATUM_A007212
> fsl_erratum_a007212_workaround();
> #endif
> -
> - return 0;
> }
>
> /* Implement a dummy function for those platforms w/o SERDES */
> diff --git a/arch/powerpc/cpu/mpc8xx/cpu_init.c b/arch/powerpc/cpu/mpc8xx/cpu_init.c
> index dc601a12976f..c1cd2fac36f4 100644
> --- a/arch/powerpc/cpu/mpc8xx/cpu_init.c
> +++ b/arch/powerpc/cpu/mpc8xx/cpu_init.c
> @@ -19,8 +19,10 @@
> * initialize a bunch of registers,
> * initialize the UPM's
> */
> -void cpu_init_f(immap_t __iomem *immr)
> +void cpu_init_f(void)
> {
> + volatile immap_t *immr = (void *)(CONFIG_SYS_IMMR);
> +
> memctl8xx_t __iomem *memctl = &immr->im_memctl;
> ulong reg;
>
> diff --git a/arch/powerpc/cpu/mpc8xx/start.S b/arch/powerpc/cpu/mpc8xx/start.S
> index 202ea81ae498..f03bfe94f25b 100644
> --- a/arch/powerpc/cpu/mpc8xx/start.S
> +++ b/arch/powerpc/cpu/mpc8xx/start.S
> @@ -158,7 +158,6 @@ in_flash:
>
> GET_GOT /* initialize GOT access */
>
> - /* r3: IMMR */
> bl cpu_init_f /* run low-level CPU init code (from Flash) */
>
> bl board_init_f /* run 1st part of board init code (from Flash) */
> diff --git a/arch/powerpc/include/asm/ppc.h b/arch/powerpc/include/asm/ppc.h
> index 5e0aa08be936..615d7fda9324 100644
> --- a/arch/powerpc/include/asm/ppc.h
> +++ b/arch/powerpc/include/asm/ppc.h
> @@ -122,6 +122,7 @@ static inline void set_msr(unsigned long msr)
> void print_reginfo(void);
> #endif
>
> +void cpu_init_f(void);
> void interrupt_init_cpu(unsigned *);
> void timer_interrupt_cpu(struct pt_regs *);
> unsigned long search_exception_table(unsigned long addr);
>
More information about the U-Boot
mailing list