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. 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.rie...@omicron.at> Cc: Sudhakar Rajashekhara <sudhakar....@ti.com> Cc: Sandeep Paulraj <s-paul...@ti.com> Cc: Heiko Schocher <h...@denx.de> Cc: Ben Gardiner <bengardi...@nanometrics.ca> --- In my first submission of this patch I forgot to cc Sudhakar Rajashekhara as the board's maintainer. Sorry! Thank you for your comments! Best regards, Christian board/davinci/da8xxevm/da850evm.c | 23 ++++++++++++++--------- include/configs/da850evm.h | 1 + 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/board/davinci/da8xxevm/da850evm.c b/board/davinci/da8xxevm/da850evm.c index 73eaa48..11ad88d 100644 --- a/board/davinci/da8xxevm/da850evm.c +++ b/board/davinci/da8xxevm/da850evm.c @@ -166,6 +166,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) { #ifndef CONFIG_USE_IRQ @@ -195,15 +209,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 | diff --git a/include/configs/da850evm.h b/include/configs/da850evm.h index bbb5a9b..5d0f5bf 100644 --- a/include/configs/da850evm.h +++ b/include/configs/da850evm.h @@ -42,6 +42,7 @@ #define CONFIG_SYS_HZ 1000 #define CONFIG_SKIP_LOWLEVEL_INIT #define CONFIG_SYS_TEXT_BASE 0xc1080000 +#define CONFIG_BOARD_EARLY_INIT_F /* * Memory Info -- 1.7.0.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot