		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 <m-karicheri2@ti.com>
Copyright 2015 Texas Instruments
