summaryrefslogtreecommitdiff
path: root/board/davinci/da8xxevm/da850evm.c
diff options
context:
space:
mode:
authorChristian Riesch <christian.riesch@omicron.at>2011-10-13 00:52:29 +0000
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2011-10-27 21:56:36 +0200
commitae5c77dd908edaf55025fa3f41095bfb9cb1b973 (patch)
treec15f7b18a32fe25775dbb6acb859af98a43dc638 /board/davinci/da8xxevm/da850evm.c
parent3b413c5bfa2595483baaefb006cbad1ee4b489fc (diff)
downloadu-boot-imx-ae5c77dd908edaf55025fa3f41095bfb9cb1b973.zip
u-boot-imx-ae5c77dd908edaf55025fa3f41095bfb9cb1b973.tar.gz
u-boot-imx-ae5c77dd908edaf55025fa3f41095bfb9cb1b973.tar.bz2
da850evm: Move LPSC configuration to board_early_init_f()
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>
Diffstat (limited to 'board/davinci/da8xxevm/da850evm.c')
-rw-r--r--board/davinci/da8xxevm/da850evm.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/board/davinci/da8xxevm/da850evm.c b/board/davinci/da8xxevm/da850evm.c
index 46924d3..e0a3bbe 100644
--- a/board/davinci/da8xxevm/da850evm.c
+++ b/board/davinci/da8xxevm/da850evm.c
@@ -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 |