[U-Boot] [PATCH 1/7 v4] i2c, dtt: move dtt_init () to board_init_r ()

In case where a board not uses CONFIG_POST, it is not necessary to init the DTTs when running from flash.
Signed-off-by: Heiko Schocher hs@denx.de --- lib_ppc/board.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 3bcfb45..375b091 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -339,10 +339,10 @@ init_fnc_t *init_sequence[] = { #if defined(CONFIG_HARD_SPI) init_func_spi, #endif +#ifdef CONFIG_POST #if defined(CONFIG_DTT) /* Digital Thermometers and Thermostats */ dtt_init, #endif -#ifdef CONFIG_POST post_init_f, #endif INIT_FUNC_WATCHDOG_RESET @@ -1072,6 +1072,9 @@ void board_init_r (gd_t *id, ulong dest_addr)
WATCHDOG_RESET ();
+#if defined(CONFIG_DTT) && !defined(CONFIG_POST) + dtt_init (); +#endif #if defined(CONFIG_CMD_SCSI) WATCHDOG_RESET (); puts ("SCSI: ");

Hi Heiko,
On Tue, 2009-02-24 at 11:30 +0100, Heiko Schocher wrote:
In case where a board not uses CONFIG_POST, it is not necessary to init the DTTs when running from flash.
Signed-off-by: Heiko Schocher hs@denx.de
lib_ppc/board.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 3bcfb45..375b091 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -339,10 +339,10 @@ init_fnc_t *init_sequence[] = { #if defined(CONFIG_HARD_SPI) init_func_spi, #endif +#ifdef CONFIG_POST #if defined(CONFIG_DTT) /* Digital Thermometers and Thermostats */ dtt_init, #endif -#ifdef CONFIG_POST post_init_f, #endif INIT_FUNC_WATCHDOG_RESET @@ -1072,6 +1072,9 @@ void board_init_r (gd_t *id, ulong dest_addr)
WATCHDOG_RESET ();
+#if defined(CONFIG_DTT) && !defined(CONFIG_POST)
- dtt_init ();
+#endif #if defined(CONFIG_CMD_SCSI) WATCHDOG_RESET (); puts ("SCSI: ");
Is there a reason we can't just move the dtt_init() call to after relocation to RAM for both the cases with and without CONFIG_POST defined? If some POST relies on the temperature sensors being initialized it seems cleaner to change the POST to run after relocation than add more ifdefery to common code.
Unconditionally moving dtt_init() to after relocation would also allow dtt drivers to use global variables, etc (which it just so happens an lm90-type driver I'm working on requires:).
Best, Peter

Dear Peter Tyser,
In message 1235491846.19570.71.camel@localhost.localdomain you wrote:
Is there a reason we can't just move the dtt_init() call to after relocation to RAM for both the cases with and without CONFIG_POST defined? If some POST relies on the temperature sensors being initialized it seems cleaner to change the POST to run after relocation than add more ifdefery to common code.
The only temperature dependent code I am aware of in the POST context does not make use of the DTT code, so moving DTT initialization after relocation to RAM should not be a problem.
Unconditionally moving dtt_init() to after relocation would also allow dtt drivers to use global variables, etc (which it just so happens an lm90-type driver I'm working on requires:).
Agreed.
Best regards,
Wolfgang Denk

Hello Peter,
Peter Tyser wrote:
On Tue, 2009-02-24 at 11:30 +0100, Heiko Schocher wrote:
In case where a board not uses CONFIG_POST, it is not necessary to init the DTTs when running from flash.
Signed-off-by: Heiko Schocher hs@denx.de
lib_ppc/board.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 3bcfb45..375b091 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -339,10 +339,10 @@ init_fnc_t *init_sequence[] = { #if defined(CONFIG_HARD_SPI) init_func_spi, #endif +#ifdef CONFIG_POST #if defined(CONFIG_DTT) /* Digital Thermometers and Thermostats */ dtt_init, #endif -#ifdef CONFIG_POST post_init_f, #endif INIT_FUNC_WATCHDOG_RESET @@ -1072,6 +1072,9 @@ void board_init_r (gd_t *id, ulong dest_addr)
WATCHDOG_RESET ();
+#if defined(CONFIG_DTT) && !defined(CONFIG_POST)
- dtt_init ();
+#endif #if defined(CONFIG_CMD_SCSI) WATCHDOG_RESET (); puts ("SCSI: ");
Is there a reason we can't just move the dtt_init() call to after relocation to RAM for both the cases with and without CONFIG_POST defined? If some POST relies on the temperature sensors being initialized it seems cleaner to change the POST to run after relocation than add more ifdefery to common code.
Ok, you are right, there is no reason (I searched for POST_ROM, and there is no test which uses i2c when running from flash, so dtt_init() can go completly to board_init_r ()
Unconditionally moving dtt_init() to after relocation would also allow dtt drivers to use global variables, etc (which it just so happens an lm90-type driver I'm working on requires:).
:-)
bye Heiko
participants (3)
-
Heiko Schocher
-
Peter Tyser
-
Wolfgang Denk