summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeLines
* arm/km: add support for kmsuv31 boardHolger Brunck2013-04-12-0/+9
| | | | | | | | | | | | | This board is from a u-boot point of view a mixture between kmnusa and a standard km_kirkwood board. We have our u-boot environment in the spi NOR flash, but we have a direct connection between the kirkwood and the piggy. A FPGA is connected via the PCIe interface. So we only have to select the specific features in the board setup. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> cc: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com> Acked-By: Prafulla Wadaskar <prafulla@marvell.com>
* arm/km: use CONFIG_NAND_ECC_BCHHolger Brunck2013-04-12-0/+3
| | | | | | | | | Switch from 1-bit ecc to 4-bit ecc. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> cc: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com> Acked-By: Prafulla Wadaskar <prafulla@marvell.com>
* arm/km: rename BOARD_LATE_INIT to CONFIG_BOARD_LATE_INITHolger Brunck2013-04-12-1/+1
| | | | | | | | | | | commit 9660e442 cosmetic: s/BOARD_LATE_INIT/CONFIG_BOARD_LATE_INIT removes BOARD_LATE_INIT and uses CONFIG_BOARD_LATE_INIT instead. Therefore we have to use this define. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> cc: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com> Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
* kirkwood_nand: allow usage of NAND_ECC_SOFT_BCHGerlando Falauto2013-04-12-0/+4
| | | | | | | | | | | | If CONFIG_NAND_ECC_BCH is set use 4-bit error correction code instead of the 1-bit error correction code on the NAND device. Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com> cc: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com> Acked-by: Prafulla Wadaskar <prafulla@marvell.com> Acked-by: Scott Wood <scottwood@freescale.com>
* Merge branch 'u-boot-ti/master' into 'u-boot-arm/master'Albert ARIBAUD2013-04-12-43/+80
|\
| * omap5912-osk: Fix get_timer() and CONFIG_SYS_HZJon Hunter2013-04-10-8/+9
| | | | | | | | | | | | | | The function get_timer() should return time in ms and CONFIG_SYS_HZ should be set to 1000 by default. Fix both of these items. Signed-off-by: Jon Hunter <jon-hunter@ti.com>
| * omap5912-osk: Increase flash partition for u-bootJon Hunter2013-04-10-3/+3
| | | | | | | | | | | | | | | | The current u-boot binary needs more than 128KB of flash space and so move the u-boot environment from an offset of 128KB to 256KB in flash to ensure the enviroment does not overlap with u-boot. Signed-off-by: Jon Hunter <jon-hunter@ti.com>
| * omap5912-osk: Fix device initialisationJon Hunter2013-04-10-6/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In the current u-boot, the device pin multiplexing and clock initialisation needs to be early during the boot process and before board_init() is called. U-boot is currently crashing on this board because this is not being done early enough. Therefore, add a s_init() function for the omap5912-osk board to do this. Also fix the stack pointer so that it is pointing to the end of the internal RAM and not the beginning as this was also causing the device to crash. Signed-off-by: Jon Hunter <jon-hunter@ti.com>
| * omap5912-osk: Fix booting from NOR flashJon Hunter2013-04-10-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | The omap5912-osk board is using a RAM based address as the linker location for code. This is causing several problems when attempting to run the latest u-boot code base on this board from flash. Update the default linker location for code to be in NOR flash at address 0x00000000. The omap5912-osk board only has 32MB of RAM and so fix the comment in the omap5912-osk config.mk file as well. Signed-off-by: Jon Hunter <jon-hunter@ti.com>
| * omap5912-osk: Fix DRAM initialisationJon Hunter2013-04-10-3/+8
| | | | | | | | | | | | | | | | | | | | The size of the DRAM for the omap5912-osk board is getting setup in the dram_init() function. However, for the current u-boot release this is too late and needs to be done in dram_init_banksize(). Therefore, add a dram_init_banksize() function for the omap5912-osk board and setup the DRAM size there. Signed-off-by: Jon Hunter <jon-hunter@ti.com>
| * omap5_uevm: Correct to 2MiB aligned partitions on eMMCTom Rini2013-04-10-2/+1
| | | | | | | | | | | | | | This has a 2MiB erase block size eMMC, so make sure we align on that for best possible performance. Signed-off-by: Tom Rini <trini@ti.com>
| * OMAP4: Fix bug in omap4460_volts structLubomir Popov2013-04-10-4/+4
| | | | | | | | | | | | | | | | | | | | | | The omap4460_volts struct was incorrectly referencing tps62361 instead of twl6030 as PMIC for the core and mm voltages (the tps is used for mpu supply only). This shall lead to bad OPP settings while booting kernel. Fixing it. Fix some comments as well. Signed-off-by: Lubomir Popov <lpopov@mm-sol.com>
| * am335x: Update timings for the beaglebone againTom Rini2013-04-10-11/+11
| | | | | | | | | | | | | | | | After further testing we can run DDR at 400MHz so update the timings again. Tested-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Tom Rini <trini@ti.com>
| * am335x/ti814x: Correct MMC_BOOT_DEVICES_START/ENDTom Rini2013-04-09-0/+5
| | | | | | | | | | | | | | | | Given that on TI814x we have MMC1/2 swapped, we also need to swap them in MMC_BOOT_DEVICES_START/END Reported-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Tom Rini <trini@ti.com>
* | mx31pdk: Remove watchdog supportFabio Estevam2013-04-12-2/+0
| | | | | | | | | | | | | | | | | | | | | | The conversion of mx31pdk to SPL NAND fixed the boot issue, but we start seeing resets in loop, which prevents us from reaching the U-boot prompt. Until the proper fix can be identified, disable watchdog, so that mx31pdk can be functional again. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Stefano Babic <sbabic@denx.de>
* | arm: Make all linker scripts compatible with per-symbol sectionsBenoît Thébaudeau2013-04-12-32/+32
| | | | | | | | | | | | | | | | Let all ARM linker scripts handle properly -ffunction-sections and -fdata-sections. This will be useful for future changes in order to create symbol-specific sections in common .S files. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | arm1176: Remove unused MMU setup from start.SBenoît Thébaudeau2013-04-12-90/+1
| | | | | | | | | | | | | | | | | | Following the removal of the smdk6400 board, the MMU setup code in arm1176/start.S becomes unused, so remove it. It will still be possible to restore it later from the Git history if necessary, in which case it should be moved out of the relocate_code() function. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | arm: Remove deprecated and now unused NAND SPLBenoît Thébaudeau2013-04-12-24/+6
| | | | | | | | Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | arm: Remove support for unused s3c64xxBenoît Thébaudeau2013-04-12-2253/+23
| | | | | | | | | | | | | | | | Following the removal of the smdk6400 board, the s3c64xx SoC becomes unused, so remove associated code. It will still be possible to restore it later from the Git history if necessary. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | Revert "mkconfig: start deprecating Makefile config targets"Benoît Thébaudeau2013-04-12-25/+0
| | | | | | | | | | | | | | This reverts commit 1285a2808a254f3d1a809c1a541f0c0f746e03d7 since the migration of boards from Makefile to boards.cfg is now complete. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | arm: Remove support for smdk6400Benoît Thébaudeau2013-04-12-1235/+1
| | | | | | | | | | | | | | | | The migration of boards from Makefile to boards.cfg was due for v2012.03, but smdk6400 did not follow, and it does not build, so move it to scrapyard. It will still be possible to restore it from the Git history before fixing it. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | imx: Add u-boot-with-nand-spl.imx make targetBenoît Thébaudeau2013-04-12-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | This image combines the SPL with the i.MX header, the FCB and U-Boot. For i.MX25/35/51, the FCB is ignored by the boot ROM, so this image is just useful because it can be programmed on a NAND Flash page boundary. For i.MX53, the FCB is required by the boot ROM. This does not support i.MX6 so far because its FCB is more complicated. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | imx: Add u-boot-with-spl.imx make targetBenoît Thébaudeau2013-04-12-0/+12
| | | | | | | | | | | | | | | | | | | | This image combines the SPL with the i.MX header and U-Boot. This is a convenient way of having a single image to program on some boot devices. The i.MX header has to be added to the SPL before appending U-Boot, so that the boot ROM loads only the SPL. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | .gitignore: Add /SPLBenoît Thébaudeau2013-04-12-0/+1
| | | | | | | | Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | Makefile: Move SHELL setup to config.mkBenoît Thébaudeau2013-04-12-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | make never uses the SHELL variable from the environment. Instead, it uses /bin/sh, or the value assigned to the SHELL variable by the Makefile. This makes the export of the SHELL variable useless for sub-makes (but still useful for the environment of recipes). However, we want all makes to use the same shell. This patch fixes this issue by moving the SHELL variable setup and export to the top config.mk, so that all Makefile-s including it use the same shell. Since BASH is used by default, this makes it possible to use things like 'echo -e ...' in sub-makes, which would otherwise fail e.g. with /bin/sh symlinked to /bin/dash on Ubuntu. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Reviewed-by: Tom Rini <trini@ti.com>
* | arm: Remove unused relocate_code() parametersBenoît Thébaudeau2013-04-12-65/+36
| | | | | | | | | | | | | | | | Commit e05e5de7fae5bec79617e113916dac6631251156 made the 2 1st parameters of ARM's relocate_code() useless since it moved the code handling them to crt0.S. So, drop these parameters. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | arm926ejs: Remove deprecated and now unused NAND SPLBenoît Thébaudeau2013-04-12-10/+0
| | | | | | | | Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | nand: mxc: Switch NAND SPL to generic SPLBenoît Thébaudeau2013-04-12-383/+81
| | | | | | | | | | | | | | | | | | This also fixes support for mx31pdk and tx25, which had been broken by commit e05e5de7fae5bec79617e113916dac6631251156. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Acked-by: Scott Wood <scottwood@freescale.com> Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
* | imx: Fix automatic make targets for imx imagesBenoît Thébaudeau2013-04-12-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Automatically build the 'u-boot.imx' (i.e. imx header + u-boot.bin) and 'SPL' (i.e. imx header + u-boot-spl.bin) make targets for all imx processors supporting this header, so for arm926ejs, arm1136 and armv7. Some combinations were missing. At the same time, fix the build of SPL targets not supporting the imx header on arm1136. For arm1136, the 'SPL' make target was forced to build in all cases if CONFIG_SPL_BUILD was defined, even for non-imx platforms or imx setups without an imx header. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | Makefile: Change CONFIG_SPL_PAD_TO to image offsetBenoît Thébaudeau2013-04-12-7/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | Change CONFIG_SPL_PAD_TO from a link address to an image offset since this is more handy and closer to the purpose of this config. Automatically define CONFIG_SPL_PAD_TO to CONFIG_SPL_MAX_SIZE (or 0 without CONFIG_SPL_MAX_SIZE). Test that CONFIG_SPL_PAD_TO >= CONFIG_SPL_MAX_SIZE if CONFIG_SPL_PAD_TO is non-zero. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | autoconfig.mk: Make it possible to define configs from other configsBenoît Thébaudeau2013-04-12-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Give more flexibility to define configs that can be interpreted by make, e.g. to define fallback values of configs like in the example below. Before this change, the config lines: #define CONFIG_SPL_MAX_SIZE 2048 #define CONFIG_SPL_PAD_TO CONFIG_SPL_MAX_SIZE would have been changed in autoconfig.mk into: CONFIG_SPL_MAX_SIZE=2048 CONFIG_SPL_PAD_TO="CONFIG_SPL_MAX_SIZE" Hence, a make recipe using as an argument to $(OBJCOPY): --pad-to=$(CONFIG_SPL_PAD_TO) would have issued: --pad-to="CONFIG_SPL_MAX_SIZE" which means nothing for $(OBJCOPY) and makes it fail. Thanks to this change, the config lines above are changed in autoconfig.mk into: CONFIG_SPL_MAX_SIZE=2048 CONFIG_SPL_PAD_TO=$(CONFIG_SPL_MAX_SIZE) Hence, the make recipe above now issues: --pad-to=2048 as expected from the defined config. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Reviewed-by: Tom Rini <trini@ti.com>
* | arm: crt0.S: Remove bogus .globlBenoît Thébaudeau2013-04-12-24/+4
| | | | | | | | | | | | | | | | | | | | The purpose of .globl is to export symbols for ld, not to declare external symbols. By the way, use the ENTRY() and ENDPROC() macros to define functions rather than using .global directly. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | arm: relocate_code(): Use __image_copy_end for end of relocationBenoît Thébaudeau2013-04-12-15/+87
| | | | | | | | | | | | | | | | | | | | | | | | Use __image_copy_end instead of __bss_start for the end of the image to relocate. This is the same as commit 033ca72, but applied to all ARM start.S. This is a more appropriate symbol naming for an image copy & relocate feature, and this also saves a useless copy of data put between __image_copy_end and __bss_start in linker scripts (e.g. relocation information, or MMU initialization tables used only before jumping to the relocated image). Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | arm: relocate_code(): Remove useless relocation offset computationBenoît Thébaudeau2013-04-12-66/+39
| | | | | | | | Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | arm1136: Remove redundant relocate_code() returnBenoît Thébaudeau2013-04-12-2/+0
| | | | | | | | Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | arm: relocate_code() is no longer noreturnBenoît Thébaudeau2013-04-12-40/+18
| | | | | | | | | | | | | | | | | | | | Commit e05e5de7fae5bec79617e113916dac6631251156 made ARM's relocate_code() return to its caller, but it did not update its declaration accordingly. Fixing this function declaration fixes dropped C code following calls to relocate_code(). Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | arm: start.S: Fix _TEXT_BASE for SPLBenoît Thébaudeau2013-04-12-4/+52
| | | | | | | | | | | | | | | | _TEXT_BASE must be set to CONFIG_SPL_TEXT_BASE for generic SPL, and to CONFIG_SYS_TEXT_BASE for non-SPL builds. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Reviewed-by: Tom Rini <trini@ti.com>
* | nand: mxc: Use appropriate page number in syndrome functionsBenoît Thébaudeau2013-04-12-3/+3
| | | | | | | | | | | | | | | | | | | | | | The syndrome functions should use the page number passed as argument instead of the page number saved upon NAND_CMD_READ0. This does not make any difference if the NAND_NO_AUTOINCR option is set, but otherwise this fixes accesses to the wrong pages. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Acked-by: Scott Wood <scottwood@freescale.com>
* | nand: mxc: Fix debug trace in mxc_nand_read_oob_syndrome()Benoît Thébaudeau2013-04-12-1/+1
| | | | | | | | | | | | | | | | | | | | The page number indicated in the debug trace of mxc_nand_read_oob_syndrome() did not match the page being worked on. By the way, replace the GCC-specific __FUNCTION__ with __func__. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Acked-by: Scott Wood <scottwood@freescale.com>
* | imx: mx53ard: Add support for NAND FlashBenoît Thébaudeau2013-04-12-0/+76
| | | | | | | | | | | | | | | | | | | | | | Add support for the Samsung K9LAG08U0M NAND Flash (2-GiB MLC NAND Flash, 2-kiB pages, 256-kiB blocks, 30-ns R/W cycles, 1 CS) on mx53ard. eNFC_CLK_ROOT is set up with a cycle time of 37.5 ns (400 MHz / 3 / 5) for this board, which satisfies the 30-ns NF R/W cycle requirement. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
* | imx: mx5: lowlevel_init: Simplify codeBenoît Thébaudeau2013-04-12-6/+2
| | | | | | | | | | | | | | Don't use several instructions to build constant values. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Acked-by: Stefano Babic <sbabic@denx.de>
* | nand: mxc: Add support for i.MX5Benoît Thébaudeau2013-04-12-15/+250
| | | | | | | | | | | | Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Acked-by: Scott Wood <scottwood@freescale.com> Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
* | nand: mxc: Prepare to add support for i.MX5Benoît Thébaudeau2013-04-12-114/+97
| | | | | | | | | | | | | | | | | | | | | | Add some abstraction to NFC definitions so that some parts of the current code can also be used for future i.MX5 code. Clean up a few things by the way. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Acked-by: Scott Wood <scottwood@freescale.com> Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
* | mtd: nand: mxc_nand: Fix is_16bit_nand()Fabio Estevam2013-04-12-35/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently is_16bit_nand() is a per SoC function and it decides the bus nand width by reading some boot related registers. This method works when NAND is the boot medium, but does not work if another boot medium is used. For example: booting from a SD card and then using NAND to store the environment variables, would lead to the following error: NAND bus width 16 instead 8 bit No NAND device found!!! 0 MiB Use CONFIG_SYS_NAND_BUSWIDTH_16BIT symbol to decide the bus width. If it is defined in the board file, then consider 16-bit NAND bus-width, otherwise assume 8-bit NAND is used. This also aligns with Documentation/devicetree/bindings/mtd/nand.txt, which states: nand-bus-width : 8 or 16 bus width if not present 8 Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Scott Wood <scottwood@freescale.com> Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | mtd: nand: Introduce CONFIG_SYS_NAND_BUSWIDTH_16BITFabio Estevam2013-04-12-5/+8
|/ | | | | | | | | | | | Introduce CONFIG_SYS_NAND_BUSWIDTH_16BIT option so that other NAND controller drivers could use it when a 16-bit NAND is deployed. drivers/mtd/nand/ndfc has CONFIG_SYS_NDFC_16BIT, so just rename it, so that other NAND drivers could reuse the same symbol. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Scott Wood <scottwood@freescale.com> Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* omap5_common.h: Use fallback CONFIG_SYS_BAUDRATE_TABLETom Rini2013-04-08-2/+1
| | | | | Cc: Sricharan R <r.sricharan@ti.com> Signed-off-by: Tom Rini <trini@ti.com>
* omap5_uevm.h: Move uEVM-specific choices to omap5_uevm.hTom Rini2013-04-08-8/+25
| | | | | | | | | | | | The omap5_uevm platform has eMMC, and it makes sense to say that our default env storage shall reside there. Other platforms may not, so move this choice to the EVM config. In addition, we should provide some way to partition the flash for later usage, so take advantage of the GPT partition table support code and allow that to be setup with some reasonable defaults. Cc: Sricharan R <r.sricharan@ti.com> Signed-off-by: Tom Rini <trini@ti.com>
* OMAP3/4/5/AM33xx: Correct logic for checking FAT or RAW MMCTom Rini2013-04-08-3/+17
| | | | | | | | | | | | | | | In the case of booting from certain peripherals, such as UART, we must not see what the device descriptor says for RAW or FAT mode because in addition to being nonsensical, it leads to a hang. This is why we have a test currently for the boot mode being within range. The problem however is that on some platforms we get MMC2_2 as the boot mode and not the defined value for MMC2, and in others we get the value for MMC2_2. This is required to fix eMMC booting on omap5_uevm. Tested on am335x_evm (UART, NAND, SD), omap3_beagle (NAND, SD on classic, SD only on xM rev C5) and omap5_uevm (SD, eMMC). Signed-off-by: Tom Rini <trini@ti.com>
* arm: omap4: Fix SDRAM AUTO DETECTIONLokesh Vutla2013-04-08-18/+16
| | | | | | | | | | | | | | Commit "8602114 omap: emif: configure emif only when required" breaks SDRAM_AUTO_DETECTION. The issue is dmm_init() depends on emif_sizes[](SDRAM Auto detection) done in do_sdram_init(). The above commit moves dmm_init() above do_sdram_init() because of which dmm_init() uses uninitialized emif_sizes[]. So instead of using global emif_sizes[], get sdram details locally and calculate emif sizes. Reported-by: Michael Cashwell <mboards@prograde.net> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
* OMAP: Fix copy-paste bug that did not enable UART4 clockLubomir Popov2013-04-08-2/+2
| | | | | | | | | | | V2 fixes line wrap issue of the patch itself. UART3 was enabled twice instead of UART4. One more cosmetic change in a comment on EMIF clock. Signed-off-by: Lubomir Popov <lpopov@mm-sol.com> Reviewed-by: R Sricharan <r.sricharan@ti.com>