summaryrefslogtreecommitdiff
path: root/board/ti
AgeCommit message (Collapse)Author
2017-07-10ARM: k2g: Add K2G ICE DTB to the list of possible DTBsCooper Jr., Franklin
K2G ICE evm will have its own dtb. Therefore, add it to the list of dtbs located in the appended U-boot dtb FIT image. Therefore, when swapping out dtbs K2G ICE boards can grab the correct one. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ARM: k2g: Update board_name u-boot env variable at runtimeCooper Jr., Franklin
Enable CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG to allow "board_name" to be set depending on the board it is being ran on. Update findfdt to use this new dynamic board_name value to determine which dtb should be used. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ARM: k2g: Use board detection to wrap K2G GP specific callsCooper Jr., Franklin
Certain peripherals used by K2G GP aren't used on K2G ICE evm. Or configuration is slightly different. Therefore, use board detection to deal with these variations. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10board: ks2: Use board detection to wrap code not specific to K2G ICE evmCooper Jr., Franklin
Some code doesn't apply to K2G ICE evm. Therefore, use board detection to wrap these calls. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ARM: k2g: Add DDR3 configuration for K2G ICE evmCooper Jr., Franklin
Add configuration settings used by the K2G ICE evm. Also use board detection to determine which DDR3 configuration to use. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ARM: k2g: Add pinmux support for K2G ICE evmCooper Jr., Franklin
Add basic pinmux data for new K2G ICE evm. Also add pinmuxing for a generic K2G evm which includes I2C 0 and 1 used for board detection purposes. Since multiple K2G boards are supported that means initially generic pinmuxing should be used when board detection hasn't ran. Once board detection runs the proper pinmuxing can be reran to match the board being ran on. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ks2_evm: Add EEPROM based board detection helper functionsCooper Jr., Franklin
Add a function that can be used to determine if the board being ran on is a K2G Industrial Communication Engine EVM or K2G General Purpose EVM based on values programmed on the EEPROM. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ARM: k2g: Program DDRPHY_DATX8 registers via mask and value variablesCooper Jr., Franklin
Different K2G evms may need to program the various KS2_DDRPHY_DATX8_X_OFFSET registers in different ways. Therefore, use the mask and val registers for each KS2_DDRPHY_DATAX_X_OFFSET to properly program the register. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ARM: k2g: Program DDR PHY MR2 register with the default valueCooper Jr., Franklin
K2G GP doesn't require the MR2 register to be programed since the default is good enough. However, newer K2G boards do need to change this register value. Therefore, instead of not writing this register if ran on a K2G board just program the value to be written to match the default/reset value. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ks2_evm: Add EEPROM based board detectionCooper Jr., Franklin
Some K2G evms have their EEPROM programming while most do not. Therefore, add EEPROM board detection to be used as the default method and fall back to the alternative board detection when needed. Also reorder board configuration. Perform bare minimal configuration initially since board detection hasn't ran. Finish board configuration once the board has been identified. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ARM: keystone2: Define board_fit_config_name_match for Keystone 2 boardsCooper Jr., Franklin
Now with support for U-boot runtime dtb selection each board needs to define board_fit_config_name_match so U-boot can determine what the correct dtb is within the FIT blob. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ARM: k2g: Define embedded_dtb_select for runtime DTB selection in U-bootCooper Jr., Franklin
For K2G, runtime DTB selection utilizes the embedded_dtb_select function. Therefore, define the function which will perform a EEPROM read and then retries selecting the correct dtb now that it can detect which board its on. For other Keystone devices use an empty function since they will still use the embedded FIT functionality but their FIT will only contain a single dtb. Most production K2G boards do not have their EEPROM programmed. Therefore, perform a test to verify a K2G GP is currently being used and if it is then set the values normally set by a EEPROM read. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ti: common: board_detect: Add function to determine if EEPROM was readCooper Jr., Franklin
When the EEPROM is first read its contents are stored in memory as a cache to avoid further I2C operations. To determine if the EEPROM was previously read the easiest way is to check the memory to see if the EEPROM's magic header value is set. Create a new function that can determine if the EEPROM was previously read or not without having to perform a I2C transaction. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-07-10ti: common: board_detect: Allow settings board detection variables manuallyNishanth Menon
In some situations the EEPROM used for board detection may not be programmed or simply programmed incorrectly. Therefore, it may be necessary to "simulate" reading the contents of the EEPROM to set appropriate variables used in the board detection code. This may also be helpful in certain boot modes where doing i2c reads may be costly and the config supports running only a specific board. Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Tero Kristo <t-kristo@ti.com> Signed-off-by: Keerthy <j-keerthy@ti.com> Signed-off-by: Franklin S Cooper Jr. <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-06-28ti816x: Enable ethernet supportTom Rini
The ti816x SoC revision of the ethernet IP block is handled by the "davinci_emac" driver, rather than the "cpsw" driver as done by later members of the family. Enable the relevant plumbing. Signed-off-by: Sriramakrishnan <srk@ti.com> Signed-off-by: Vitaly Wool <vitaly.wool@konsulko.com> Signed-off-by: Tom Rini <trini@konsulko.com>
2017-06-16treewide: remove unneeded semicolonsMasahiro Yamada
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-06-12board: ti: am335x: Fix scale_vcore for beaglebonesLokesh Vutla
commit 0650798824 ("board: am335x: Introduce scale_vcores") updated voltages of each board based on efuse. It updated beagle bone specific voltages under the condition board_is_bone(). But this is true only for BeagleBoneWhite. Due to which voltages are not configured for BBB, BBW as wrong device is being probed. So create a common function board_is_beaglebonex() which includes am335x based beagle family. Use this for updating voltages. Also remove extra if condition for selecting voltages which is done later using a switch case and match usb current limit as before the commit 0650798824. Fixes: 0650798824 ("board: am335x: Introduce scale_vcores") Reported-by: Emmanuel Vadot <manu@bidouilliste.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-06-12arm: dra7: Set fastboot variables in environmentSemen Protsenko
One can obtain those variables using next commands: $ fastboot getvar cpu $ fastboot getvar secure $ fastboot getvar board_rev $ fastboot getvar userdata_size Those variables are needed for fastboot.sh script. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-06-12arm: am57xx: Set fastboot variables in environmentSemen Protsenko
One can obtain those variables using next commands: $ fastboot getvar cpu $ fastboot getvar secure $ fastboot getvar board_rev $ fastboot getvar userdata_size Those variables are needed for fastboot.sh script. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-06-10Merge branch 'master' of git://git.denx.de/u-boot-mmcTom Rini
2017-06-09board: ti: am572x-evm: Update pinmux using latest PMTLokesh Vutla
Update the board pinmux for AM572x-evm using latest PMT[1] and the board files named am572x_gp_evm_A3a_sr2p0 and am572x_gp_evm_A2b_sr1p1 that were autogenerated on 30th January, 2017 by "Ahmad Rashed <a-rashed@ti.com>" and "Tom Johnson <thjohnson@ti.com>". Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-06-09board: ti: am571x-idk: Update pinmux using latest PMTLokesh Vutla
Update the board pinmux for AM571x-IDK board using latest PMT[1] and the board files named am571x_idk_v1p3b_sr2p0 that were autogenerated on 23rd March, 2017 by "Ahmad Rashed <a-rashed@ti.com>" and "Tom Johnson <thjohnson@ti.com>". [1] https://dev.ti.com/pinmux/app.html#/default/ Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-06-09board: ti: am572x-idk: Update pinmux using latest PMTLokesh Vutla
Update the board pinmux for AM572x-IDK board using latest PMT[1] and the board files named am572x_idk_v1p3b_sr2p0 that were autogenerated on 30th January, 2017 by "Ahmad Rashed <a-rashed@ti.com>" and "Tom Johnson <thjohnson@ti.com>". [1] https://dev.ti.com/pinmux/app.html#/default/ Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-06-09arm: omap: Unify get_device_type() functionSemen Protsenko
Refactor OMAP3/4/5 code so that we have only one get_device_type() function for all platforms. Details: - Add ctrl variable for AM33xx and OMAP3 platforms (like it's done for OMAP4/5), so we can obtain status register in common way - For now ctrl structure for AM33xx/OMAP3 contains only status register address - Run hw_data_init() in order to assign ctrl to proper structure - Remove DEVICE_MASK and DEVICE_GP definitions as they are not used (DEVICE_TYPE_MASK and GP_DEVICE are used instead) - Guard structs in omap_common.h with #ifdefs, because otherwise including omap_common.h on non-omap4/5 board files breaks compilation Buildman script was run for all OMAP boards. Result output: arm: (for 38/616 boards) all +352.5 bss -1.4 data +3.5 rodata +300.0 spl/u-boot-spl:all +284.7 spl/u-boot-spl:data +2.2 spl/u-boot-spl:rodata +252.0 spl/u-boot-spl:text +30.5 text +50.4 (no errors to report) Tested on AM57x EVM and BeagleBoard xM. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com> [trini: Rework the guards as to not break TI81xx] Signed-off-by: Tom Rini <trini@konsulko.com>
2017-06-09board: ti: AM43XX: Add ddr voltage rail configurationKeerthy
Add ddr voltage rail (dcdc3) configuration. Set the dcdc3 DDR supply to 1.35V. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-06-05board: ti: am571-idx: Add vcores supportKeerthy
Update vcores for am571-idk board. Reported-by: Steve Kipisz <s-kipisz2@ti.com> Signed-off-by: Keerthy <j-keerthy@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-06-05ARM: k2g: Fix passing main pll info for higher speedsLokesh Vutla
Main pll is marked as arm plls for higher speeds. Fix this. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-06-05arm: Add explicit include of <asm/mach-types.h>Simon Glass
Rather than relying on common.h to provide this include, which is going away at some point, include it explicitly in each file. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-06-05ti816x: Modernize the defconfigTom Rini
- Switch to using <configs/ti_armv7_omap.h> and family. This lets us drop lots of custom defines. - Ensure that our default environment uses DEFAULT_LINUX_BOOT_ENV so that Linux will boot correctly. - Enable CONFIG_DISTRO_DEFAULTS - Switch to using CONFIG_OF_CONTROL - Various other cleanups to match other SoCs in the family line. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-06-05ti816x: Enable NANDTom Rini
The TI8168-EVM comes with NAND on board. Enable it and move environment over there. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-06-05ti816x: Rework DDR initialization sequenceTom Rini
The ti816x/am389x SoC is the first generation in what U-Boot calls the "am33xx" family. In the first generation of this family the DDR initialization sequence is quite different from all of the subsequent generations. Whereas with ti814x (second generation) we can easily work the minor differenced between that and am33xx (third generation), our attempts to do this for ti816x weren't sufficient. Rather than add a large amount of #ifdef logic to make this different sequence work we add a new file, ti816x_emif4.c to handle the various required undocumented register writes and sequence and leverage what we can from arch/arm/mach-omap2/am33xx/ddr.c still. As DDR2 has similar problems today but I am unable to test it, we drop the DDR2 defines from the code rather than imply that it works by leaving it. We also remove a bunch of other untested code about changing the speed the DDR runs at. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-06-03board: ti: enable support for writing to fat partitionSekhar Nori
Enable support for writing to FAT partitions on TI's boards. Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2017-05-31Kconfig: Finish migration of hashing commandsDaniel Thompson
Currently these (board agnostic) commands cannot be selected using menuconfig and friends. Fix this the obvious way. As part of this, don't muddle the meaning of CONFIG_HASH_VERIFY to mean both 'hash -v' and "we have a hashing command" as this makes the Kconfig logic odd. Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org> [trini: Re-apply, add imply for a few cases, run moveconfig.py, also migrate CRC32_VERIFY] Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-22Convert CONFIG_CMD_EEPROM et al to KconfigSimon Glass
This converts the following to Kconfig: CONFIG_CMD_EEPROM CONFIG_CMD_EEPROM_LAYOUT CONFIG_EEPROM_LAYOUT_HELP_STRING Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> [trini: Rework Kconfig logic slightly, define EEPROM location on TI eval platforms] Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-16Merge branch 'master' of git://git.denx.de/u-boot-mmcTom Rini
- Add #undef CONFIG_DM_MMC_OPS to omap3_logic in the SPL build case, to match other TI platforms in the same situation. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15Merge branch 'master' of git://git.denx.de/u-boot-i2cTom Rini
2017-05-15Kconfig: USB: Migrate CONFIG_USB_EHCI to CONFIG_USB_EHCI_HCDTom Rini
In order to be able to migrate the various SoC EHCI CONFIG options we first need to finish the switch from CONFIG_USB_EHCI to CONFIG_USB_EHCI_HCD. Cc: Marek Vasut <marex@denx.de> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Marek Vasut <marex@denx.de>
2017-05-15mmc: replace CONFIG_GENERIC_MMC with CONFIG_MMCMasahiro Yamada
Now CONFIG_GENERIC_MMC and CONFIG_MMC match for all defconfig. We do not need two options for the same feature. Deprecate the former. This commit was generated with the sed script 's/GENERIC_MMC/MMC/' and manual fixup of drivers/mmc/Kconfig. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-05-15i2c: omap: Modify code to work without CONFIG_I2C_HARDSimon Glass
Drop use of this long-deprecated option. Signed-off-by: Simon Glass <sjg@chromium.org> Suggested-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-05-12arm: am33xx: Add support for mulitiple PLL input frequenciesLokesh Vutla
am335x supports various sysclk frequencies which can be determined using sysboot pins. PLLs should be configures based on this sysclk frequency. Add PLL configurations for all supported frequencies. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-05-12board: am335x: Introduce scale_vcoresLokesh Vutla
Update voltages before programming plls. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-05-11am33xx: Provide platform data for mmcLokesh Vutla
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-05-09ti: common: board_detect: Set alen to expected value before i2c readCooper Jr., Franklin
In non DM I2C read operations the address length passed in during a read operation will be used automatically. However, in DM I2C the address length is set to a default value of one which causes problems when trying to perform a read with a differing alen. Therefore, before the first read in a series of read operations set the alen to the correct value. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Heiko Schocher <hs@denx.de>
2017-05-09ti: common: board_detect: Introduce function to set the address length.Cooper Jr., Franklin
Reading from the I2C EEPROM used typically requires using an address length of 2. However, when using DM for I2C the default address length used is 1. To fix this introduce a new function that allows the address length to be changed. The logic to do so was copied from cmd/i2c.c. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Heiko Schocher <hs@denx.de>
2017-05-08ARM: keystone2: Add support for getting external clock dynamicallyLokesh Vutla
One some keystone2 platforms like K2G ICE, there is an option to switch between 24MHz or 25MHz as sysclk. But the existing driver assumes it is always 24MHz. Add support for getting all reference clocks dynamically by reading boot pins. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-05-08ARM: k2g: Add support for dynamic programming of PLL based on SYSCLKLokesh Vutla
K2G supports various sysclk frequencies which can be determined using sysboot pins. PLLs should be configured based on this sysclock frequency. Add PLL configurations for all supported sysclk frequencies. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-05-08board: ti: Define Kconfig symbol for common cmd optionsLokesh Vutla
Instead of defining command options in every defconfig, define a common Kconfig symbol that consolidates all command options that are supported by any TI platform. Also use imply keyword so that that specific option can be disabled if not required. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-05-08usb: host: xhci-omap: fix double weak board_usb_init functionsUri Mashiach
A weak version of the function board_usb_init is implemented in: common/usb.c drivers/usb/host/xhci-omap.c To fix the double implementations: * Convert the board_usb_init function in drivers/usb/host/xhci-omap.c normal (not weak). * The function board_usb_init in drivers/usb/host/xhci-omap.c calls to the weak function omap_xhci_board_usb_init. * Rename board version of the function board_usb_init to omap_xhci_board_usb_init. Done only for boards that defines CONFIG_USB_XHCI_OMAP. To achieve the same flexibility with the function board_usb_cleanup: * Add a normal (not weak) implementation of the function board_usb_cleanup in drivers/usb/host/xhci-omap.c * The function board_usb_cleanup in drivers/usb/host/xhci-omap.c calls to the weak function omap_xhci_board_usb_cleanup. * Rename board version of the function board_usb_cleanup to omap_xhci_board_usb_cleanup. Done only for boards that defines CONFIG_USB_XHCI_OMAP. Cc: Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il> Acked-by: Marek Vasut <marex@denx.de> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Roger Quadros <rogerq@ti.com>
2017-04-30Convert CONFIG_CMD_BAT to KconfigSimon Glass
This converts the following to Kconfig: CONFIG_CMD_BAT Signed-off-by: Simon Glass <sjg@chromium.org>
2017-04-27board: dra71: Fix selection of OPPsLokesh Vutla
As per the DM[1] Dated June 2016–Revised February 2017, Table 5-3, DRA71 supports the following OPPs for various voltage domains: VDD_MPU: OPP_NOM VDD_CORE: OPP_NOM VDD_GPU: OPP_NOM VDD_DSPEVE: OPP_NOM, OPP_HIGH VDD_IVA: OPP_NOM, OPP_HIGH This patch add support for selection of the above OPPs instead of using OPP_NOM for all voltage domains. [1] http://www.ti.com/lit/ds/symlink/dra718.pdf Reported-by: Vishal Mahaveer <vishalm@ti.com> Signed-off-by: Suman Anna <s-anna@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>