TI Keystone Linux Overview -------------------------- Introduction ------------ Keystone range of SoCs are based on ARM Cortex-A15 MPCore Processors and c66x DSP cores. This document describes essential information required for users to run Linux on Keystone based EVMs from Texas Instruments. Following SoCs & EVMs are currently supported:- ------------ K2HK SoC and EVM -------------------------------------------------- a.k.a Keystone 2 Hawking/Kepler SoC TCI6636K2H & TCI6636K2K: See documentation at http://www.ti.com/product/tci6638k2k http://www.ti.com/product/tci6638k2h EVM: http://www.advantech.com/Support/TI-EVM/EVMK2HX_sd.aspx ------------ K2E SoC and EVM --------------------------------------------------- a.k.a Keystone 2 Edison SoC K2E - 66AK2E05: See documentation at http://www.ti.com/product/66AK2E05/technicaldocuments EVM: https://www.einfochips.com/index.php/partnerships/texas-instruments/k2e-evm.html ------------ K2L SoC and EVM --------------------------------------------------- a.k.a Keystone 2 Lamarr SoC K2L - TCI6630K2L: See documentation at http://www.ti.com/product/TCI6630K2L/technicaldocuments EVM: https://www.einfochips.com/index.php/partnerships/texas-instruments/k2l-evm.html Configuration ------------- All of the K2 SoCs/EVMs share a common defconfig, keystone_defconfig and same image is used to boot on individual EVMs. The platform configuration is specified through DTS. Following are the DTS used:- K2HK EVM : k2hk-evm.dts K2E EVM : k2e-evm.dts K2L EVM : k2l-evm.dts The device tree documentation for the keystone machines are located at Documentation/devicetree/bindings/arm/keystone/keystone.txt Known issues & workaround ------------------------- Some of the device drivers used on keystone are re-used from that from DaVinci and other TI SoCs. These device drivers may use clock APIs directly. Some of the keystone specific drivers such as netcp uses run time power management API instead to enable clock. As this API has limitations on keystone, following workaround is needed to boot Linux. Add 'clk_ignore_unused' to the bootargs env variable in u-boot. Otherwise clock frameworks will try to disable clocks that are unused and disable the hardware. This is because netcp related power domain and clock domains are enabled in u-boot as run time power management API currently doesn't enable clocks for netcp due to a limitation. This workaround is expected to be removed in the future when proper API support becomes available. Until then, this work around is needed. Document Author --------------- Murali Karicheri Copyright 2015 Texas Instruments