powerpc: Add cpu_secondary_init_r to allow for initialization post env setup
PATCH 1/1 powerpc: Add cpu_secondary_init_r to allow for initialization post env setup
We can simplify some cpu/SoC level initialization by moving it to be after the environment and non-volatile storage is setup as there might be dependancies on such things in various boot configurations.
For example for FSL SoC's with QE if we boot from NAND we need it setup to extra the ucode image to initialize the QE. If we always do this after environment & non-volatile storage is working we can have the code be the same regardless of NOR, NAND, SPI, MMC boot.
---
* This is really second version of the cpu_late_init_r patch
- changed where we call cpu_secondary_init_r to be right after env_relocate
arch/powerpc/cpu/mpc85xx/cpu_init.c | 15 +++++++++------ arch/powerpc/lib/board.c | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-)
arch/powerpc/cpu/mpc85xx/cpu_init.c +9 -6
@@ -384,12 +384,6 @@ int cpu_init_r(void)enable_cpc (); -#ifdef CONFIG_QE -uint qe_base =CONFIG_SYS_IMMR +0x00080000 ;/* QE immr base */ -qe_init (qe_base); -qe_reset (); -#endif -/* needs to be in ram since code uses global static vars */ fsl_serdes_init ();
@@ -449,3 +443,12 @@ int sata_initialize(void) return 1; }#endif + +void cpu_secondary_init_r (void ) +{ +#ifdef CONFIG_QE +uint qe_base =CONFIG_SYS_IMMR +0x00080000 ;/* QE immr base */ +qe_init (qe_base); +qe_reset (); +#endif +}
arch/powerpc/lib/board.c +14 -0
@@ -186,6 +186,12 @@ int __board_flash_wp_on(void) }int board_flash_wp_on (void ) __attribute__((weak,alias ("__board_flash_wp_on" ))); +void __cpu_secondary_init_r (void ) +{ +} +void cpu_secondary_init_r (void ) +__attribute__((weak,alias ("__cpu_secondary_init_r" ))); +static int init_func_ram (void ) {#ifdef CONFIG_BOARD_TYPES
@@ -798,6 +804,14 @@ void board_init_r (gd_t *id, ulong dest_addr)env_relocate ();/* +* after non-volatile devices & environment is setup and cpu code have +* another round to deal with any initialization that might require +* full access to the environment or loading of some image (firmware) +* from a non-volatile device +*/ +cpu_secondary_init_r (); + +/* * Fill in missing fields of bd_info. * We do this here, where we have "normal" access to the * environment; we used to do this still running from ROM,
Signature · 1 line
1.6.0.6
PATCH 1/1 powerpc: Add cpu_secondary_init_r to allow for initialization post env setup
Quoted 82 lines · Kumar Gala
We can simplify some cpu/SoC level initialization by moving it to be after the environment and non-volatile storage is setup as there might be dependancies on such things in various boot configurations.
For example for FSL SoC's with QE if we boot from NAND we need it setup to extra the ucode image to initialize the QE. If we always do this after environment & non-volatile storage is working we can have the code be the same regardless of NOR, NAND, SPI, MMC boot.
Signed-off-by Kumar Gala <[email protected]>---
* This is really second version of thecpu_late_init_rpatch
- changed where we callcpu_secondary_init_rto be right afterenv_relocatearch/powerpc/cpu/mpc85xx/cpu_init.c | 15 +++++++++------ arch/powerpc/lib/board.c | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-)arch/powerpc/cpu/mpc85xx/cpu_init.c +9
-6@@ -384,12 +384,6 @@ int cpu_init_r(void)enable_cpc (); -#ifdef CONFIG_QE -uint qe_base =CONFIG_SYS_IMMR +0x00080000 ;/* QE immr base */ -qe_init (qe_base); -qe_reset (); -#endif -/* needs to be in ram since code uses global static vars */ fsl_serdes_init ();@@ -449,3 +443,12 @@ int sata_initialize(void) return 1; }#endif + +void cpu_secondary_init_r (void ) +{ +#ifdef CONFIG_QE +uint qe_base =CONFIG_SYS_IMMR +0x00080000 ;/* QE immr base */ +qe_init (qe_base); +qe_reset (); +#endif +}arch/powerpc/lib/board.c +14
-0@@ -186,6 +186,12 @@ int __board_flash_wp_on(void) }int board_flash_wp_on (void ) __attribute__((weak,alias ("__board_flash_wp_on" ))); +void __cpu_secondary_init_r (void ) +{ +} +void cpu_secondary_init_r (void ) +__attribute__((weak,alias ("__cpu_secondary_init_r" ))); +static int init_func_ram (void ) {#ifdef CONFIG_BOARD_TYPES @@ -798,6 +804,14 @@ void board_init_r (gd_t *id, ulong dest_addr)env_relocate ();/* +* after non-volatile devices & environment is setup and cpu code have +* another round to deal with any initialization that might require +* full access to the environment or loading of some image (firmware) +* from a non-volatile device +*/ +cpu_secondary_init_r (); + +/* * Fill in missing fields of bd_info. * We do this here, where we have "normal" access to the * environment; we used to do this still running from ROM, Signature · 1 line
1.6.0.6
Wolfgang,
Any comments on this, based on the discussion here:
http://lists.denx.de/pipermail/u-boot/2011-January/086567.html
http://lists.denx.de/pipermail/u-boot/2011-February/086711.html
- k
PATCH 1/1 powerpc: Add cpu_secondary_init_r to allow for initialization post env setup
Dear Kumar Gala,
Quoted 2 lines · In message <[email protected]> you wrote:
Any comments on this, based on the discussion here:
Not really. I mean, I don't object.
Best regards,
Wolfgang Denk
Signature · 3 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Quoted 1 line
Is there a way to determine Yesterday's date using Unix utilities?
echo "what is yesterday's date?" | /bin/mail root -- Randal L. Schwartz in <[email protected]>
PATCH 1/1 powerpc: Add cpu_secondary_init_r to allow for initialization post env setup
Quoted 7 lines · Wolfgang Denk
Dear Kumar Gala,
Quoted 2 lines · In message <[email protected]> you wrote:
Any comments on this, based on the discussion here:
Not really. I mean, I don't object.
Ok, thanks. I'll pull this into my 'next' tree.
- k
Kumar Gala
AppliedPATCH 1/1 powerpc: Add cpu_secondary_init_r to allow for initialization post env setup
In reply to Kumar GalaQuoted 9 lines · Kumar Gala
We can simplify some cpu/SoC level initialization by moving it to be after the environment and non-volatile storage is setup as there might be dependancies on such things in various boot configurations.
For example for FSL SoC's with QE if we boot from NAND we need it setup to extra the ucode image to initialize the QE. If we always do this after environment & non-volatile storage is working we can have the code be the same regardless of NOR, NAND, SPI, MMC boot.
Quoted 8 lines
Signed-off-by Kumar Gala <[email protected]>---
* This is really second version of thecpu_late_init_rpatch
- changed where we callcpu_secondary_init_rto be right afterenv_relocatearch/powerpc/cpu/mpc85xx/cpu_init.c | 15 +++++++++------ arch/powerpc/lib/board.c | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-)
applied to 85xx next
- k