da850evm: Move LPSC configuration to board_early_init_f()
authorChristian Riesch <christian.riesch@omicron.at>
Thu, 13 Oct 2011 00:52:29 +0000 (00:52 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Thu, 27 Oct 2011 19:56:36 +0000 (21:56 +0200)
Since commit f1d2b313c9eb6808d30c16a9eb5251240452a56c the serial
port of the da850evm is accessed before the UART2 peripheral of
the SoC is powered on in the function board_init() in
board/davinci/da8xxevm/da850evm.c.

When u-boot is used in conjunction with the UBL (user boot loader, see
doc/README.davinci) on this board, the UART2 peripheral is already
turned on by UBL at the time u-boot is started. Hence, the wrong
initialization sequence is not noticed by most users. However, if UBL is not
used, u-boot must power on the peripheral before using it.

This patch adds a board_early_init_f() function for the LPSC
configuration to the da850evm board configuration.

Signed-off-by: Christian Riesch <christian.riesch@omicron.at>
Cc: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Cc: Sandeep Paulraj <s-paulraj@ti.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Ben Gardiner <bengardiner@nanometrics.ca>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
board/davinci/da8xxevm/da850evm.c
include/configs/da850evm.h

index 46924d349b886a63bfb964ac6784a116f5d314c3..e0a3bbefcf0477e577efb71e2c44b9173487e4a6 100644 (file)
@@ -278,6 +278,20 @@ u32 get_board_rev(void)
        return rev;
 }
 
+int board_early_init_f(void)
+{
+       /*
+        * Power on required peripherals
+        * ARM does not have access by default to PSC0 and PSC1
+        * assuming here that the DSP bootloader has set the IOPU
+        * such that PSC access is available to ARM
+        */
+       if (da8xx_configure_lpsc_items(lpsc, ARRAY_SIZE(lpsc)))
+               return 1;
+
+       return 0;
+}
+
 int board_init(void)
 {
 #ifdef CONFIG_USE_NOR
@@ -310,15 +324,6 @@ int board_init(void)
        /* address of boot parameters */
        gd->bd->bi_boot_params = LINUX_BOOT_PARAM_ADDR;
 
-       /*
-        * Power on required peripherals
-        * ARM does not have access by default to PSC0 and PSC1
-        * assuming here that the DSP bootloader has set the IOPU
-        * such that PSC access is available to ARM
-        */
-       if (da8xx_configure_lpsc_items(lpsc, ARRAY_SIZE(lpsc)))
-               return 1;
-
        /* setup the SUSPSRC for ARM to control emulation suspend */
        writel(readl(&davinci_syscfg_regs->suspsrc) &
               ~(DAVINCI_SYSCFG_SUSPSRC_EMAC | DAVINCI_SYSCFG_SUSPSRC_I2C |
index cad56209add19c08c7d161d10ccd28beb6148b78..b4e489022b21c45a6d760c54486bc541ced98fdf 100644 (file)
  * U-Boot general configuration
  */
 #define CONFIG_MISC_INIT_R
+#define CONFIG_BOARD_EARLY_INIT_F
 #define CONFIG_BOOTFILE                "uImage" /* Boot file name */
 #define CONFIG_SYS_PROMPT      "U-Boot > " /* Command Prompt */
 #define CONFIG_SYS_CBSIZE      1024 /* Console I/O Buffer Size */