Commit Graph

3992 Commits

Author SHA1 Message Date
Sricharan R 861e94936c ARM: DRA: Fix period calculation in iodelay recalib sequence
A divider of 5 is required to get the right period value to be
set for a given sysclk frequency. This is a fixed-constant for
all sysclks.

Signed-off-by: Sricharan R <r.sricharan@ti.com>
2014-02-04 08:59:59 -05:00
Nishanth Menon 2a5788adc4 ARM: DRA7: leave control module unlocked
Locking control_core_mmr_lock1 register results in regions 0x00000100
to 0x0000079F locked out(includes key registers for bandgap etc). This
means that any write accesses will fail to reflect results without a
clear notification.

So, leave the control module unlocked.

TODO: SPL should reflect consistent behavior for entire Control module
space which includes LOCK_1-5 regions left open -> if this is done,
this should be implemented in a generic location independent of the
current logic.

Reported-by: Yan Liu <yan-liu@ti.com>
Reported-by: Mugunthan V <mugunthanvnm@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
2014-02-04 08:59:53 -05:00
Nishanth Menon fe19bcd47f ARM: DRA7: be explicit that IO delay is in SPL only
build recalibrate_io_delay only for SPL logic - SHOULD NOT be used in
DDR execution context (example in u-boot).

Reported-by: Yan Liu <yan-liu@ti.com>
Reported-by: Mugunthan V <mugunthanvnm@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
2014-02-04 08:59:53 -05:00
Sricharan R 027946a8be ARM: DRA: Add io recalibration delay sequence
If changing to AVS0 voltage is required for development purpose,
there will be some IO timing error versus datasheet. The below
sequence is required to recalibrate the IOs after AVS is done.

Signed-off-by: Sricharan R <r.sricharan@ti.com>
2014-01-31 14:20:30 -05:00
Sourav Poddar f6b8de6dd9 qspi: add support for qspi4 device
Add support to enable boot from qspi in quad mode.

Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
2014-01-31 09:51:42 -05:00
Dave Gerlach 3b499ca3f0 ARM: AM43xx: Change DDR3 Reset Value
The bit DDR3_RST_DEF_VAL inside CTRL_DDR_IO represents the default value
of the ddr reset value for DDR3 before the EMIF takes over. We must have
this bit set high so that on exit from DeepSleep0 within the kernel the
reset line has the proper value.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
2014-01-31 09:49:00 -05:00
Dave Gerlach 2cf367813d ARM: AM43xx: Write sdram_config to secure_emif_sdram_config
The register secure_emif_sdram_config in control module is copied to
the EMIF sdram_config register when it is coming out of DeepSleep0 in
order to ensure that the EMIF comes up for the correct type of DDR.
Without this, resume can hang from within the kernel.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
2014-01-31 09:49:00 -05:00
Dave Gerlach cee2fd5496 ARM: AM43xx: EMIF: configure self-refresh entry delay
Per a suggestion from the hardware team, program the emif_pwr_mgmt_ctrl
and emif_pwr_mgmt_ctrl_shdw registers within the EMIF to hold the
desired delay in cycles that the EMIF waits without an access to enter
self-refresh, in this case 8192 cycles. With this, code desiring to
enter self refresh only has to toggle one bit to enable it.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
2014-01-31 09:49:00 -05:00
Lokesh Vutla a0d0aa9cc2 ARM: AM43xx: Fix UART clocks enabling
After enabling a module, SW has to wait on IDLEST bit
until it is Fully functional. This wait is missing for UART module
and there is a immediate access of UART registers after this. So there
is a chance of hang on this module( This can happen when we are running
from MPU SRAM). So waiting for IDLEST bit.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2014-01-28 09:51:19 -05:00
Nishanth Menon cc11b91920 emif-common: support DRA7XX all versions
commit ef236f2929
(DRA7: Add support for ES1.1 silicon ID code)

from upstream does not contain the TI internal changes necessary.
The missing change for emif is now incorporated

Reported-by: Aparna Balasubramanian <aparnab@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
2014-01-21 15:50:09 -05:00
Nishanth Menon ef236f2929 DRA7: Add support for ES1.1 silicon ID code
ES1.1 silicon is a very minor variant of ES1.0. Add priliminary support
for ES1.1 IDCODE change.

Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Tom Rini <trini@ti.com>
2014-01-16 16:30:25 -05:00
SRICHARAN R c00b09218c ARM: DRA7: Add is_dra7xx cpu check definition
A generic is_dra7xx cpu check is useful for grouping
all the revisions under that. This is used in the
subsequent patches.

Signed-off-by: Sricharan R <r.sricharan@ti.com>
2014-01-16 16:30:25 -05:00
Dave Gerlach e2176acbb4 ARM: AM43xx: GP-EVM: Correct GPIO used for VTT regulator control
Schematic indicates GPIO5_7 is to be used for VTT regulator control
rather than GPIO0_21 so modify enable_vtt_regulator to reflect this.
Without this some boards will experience DDR3 corruption and fail to
boot.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
2014-01-15 14:50:50 -05:00
Satyanarayana, Sandhya ebd5028336 ARM: AM335x: Enable DDR dynamic IO power down
This patch enables dynamically powering down the
IO receiver when not performing a read.
This optimizes both active and standby power consumption.
This bit is not set on EVM SK and EVM 1.5 and later boards.
Setting the same.

This has been tested on PG2.0 EVM1.5, EVM1.2, EVM-SK, BBB.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Satyanarayana, Sandhya <sandhya.satyanarayana@ti.com>
2013-12-20 10:57:09 -05:00
Lokesh Vutla 310aa487aa ARM: OMAP5: clocks: Update MPU settings for OPP_NOM
As per the latest 0.6 version of DM for OMAP5430 ES2.0,
MPU_GCLK is given as 1000MHz. In order to achieve this DPLL_MPU
should be locked at 2000MHz. Fixing the same and cleaning the
previously used dpll values.

Reported-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2013-12-12 12:04:04 -05:00
Dan Murphy 001419954b arm: am437x: Enable the USB boot device
Enable the USB host boot support for the AM437 evm

Signed-off-by: Dan Murphy <dmurphy@ti.com>
2013-12-10 12:33:32 -05:00
Tom Rini fb5de2bc3d am33xx: Add support for modifying INT_CONFIG/PBBPR in EMIF
In EMIF4 blocks of AM335x/TI81XX there is a register at 0x54 called
INT_CONFIG/PBBPR that has a field called PR_OLD_CONFIG that can be
changed depending on workloads of the system to ensure that accesses to
some areas don't cause accesses to other areas to be "stalled".  This
can be seen for example as screen jitter when playing videos.

Signed-off-by: Tom Rini <trini@ti.com>
2013-12-10 08:54:43 -05:00
Dan Murphy d7bfccba57 arm: am437: Fix offset for USB registers
Fix the offset for the USB clock registers

Signed-off-by: Dan Murphy <dmurphy@ti.com>
2013-12-06 15:17:15 -05:00
Pekon Gupta cab134bad2 dra7xx: updated macro used in pin-mux configuration
This patch introduces simple user-friendly macro for configuring pin-mux
- PIN_INPUT_PULLDOWN, PIN_INPUT_PULLUP, PIN_INPUT_NOPULL
- PIN_OUTPUT_PULLDOWN, PIN_OUTPUT_PULLUP, PIN_OUTPUT_NOPULL
- PIN_MUX_MODE(x): x is mode number

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-12-03 16:38:10 +05:30
Pekon Gupta f9519b4a1b ARM: omap: merge GPMC initialization code for all platform
Most of TI's SoC platform have in-buit GPMC (General Purpose Memory Controller)
which can be used to interface different types of external memories like:
 - parallel NOR flash
 - parallel NAND flash
 - OneNand flash
 - SDR RAM

This patch:
 - As the GPMC hardware engine is common across all OMAPx and AMxxxx platforms,
   so GPMC initialization code from all platforms is merged into single file:
     arch/arm/cpu/armv7/omap-common/mem-common.c

 - But as different platforms support different operating clock frequencies,
   So, same memory device can have different GPMC configuration values on
   different platforms (like memory signal timing values of same device may
   differ on different platforms). Hence actual GPMC configuration parameters
   are still kept separately in following platform specific header files:
     AM33xx: [unchanged] arch/arm/include/asm/arch-am33xx/mem.h
     OMAP3:  [modified]  arch/arm/include/asm/arch-omap3/mem.h
     OMAP4:  [new] arch/arm/include/asm/arch-omap4/mem.h
     OMAP5:  [new] arch/arm/include/asm/arch-omap5/mem.h

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-12-03 14:30:45 +05:30
Pekon Gupta 35a50ea51c ARM: omap5: add hardware info for GPMC and ELM controllers
This patch adds OMAP5 platform specific information to enable GPMC controller,
which can interface different types of external memories like:
 - parallel NOR flash
 - parallel NAND flash
 - OneNand flash
 - SDR RAM

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-12-03 14:30:45 +05:30
Pekon Gupta 1c8e9c5f5d ARM: omap4: add hardware info for GPMC and ELM controllers
This patch adds OMAP4 platform specific information to enable in-built GPMC and
ELM controller, which can interface following types of external memories:
 - parallel NOR flash
 - parallel NAND flash
 - OneNand flash
 - SDR RAM

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-12-03 14:30:44 +05:30
Mugunthan V N 726c782423 ARM: AM43xx: Add Ethernet boot support to SPL
Add Ethernet Boot support to SPL

Acked-by: Tom Rini <trini@ti.com>
Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
2013-12-02 12:02:18 -05:00
Lokesh Vutla 6f45e53060 ARM: DRA7xx: Change clk divider setting
Commit "armv7: hw_data: change clock divider setting"
updates the setting for m6 divider for 20MHz sys_clk frequency.
But missed to update for other sys_clk frequencies. Doing the same.

Reported-by: Rajendran, Vinothkumar <vinothr@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2013-12-02 12:02:17 -05:00
Lokesh Vutla 3e4115e182 ARM: OMAP4: Fix build break
Commit "ARM: DRA7/OMAP5: EMIF: Add workaround for bug 0039"
introduces the following build error.

arch/arm/cpu/armv7/omap-common/libomap-common.o: In function `do_bug0039_workaround':
/home/lokesh/exp/mainline/u-boot/arch/arm/cpu/armv7/omap-common/emif-common.c:1284: undefined reference to `get_bug_regs'

This is because of missing function call in OMAP4. Adding a weak function
for this.

Reported-by: Pekon Gupta <pekon@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2013-12-02 12:02:16 -05:00
Lokesh Vutla 1e64752dae ARM: OMAP4/5: Fix build warning
Commit "ARM: OMAP5: DRA7xx: Add workaround for ARM errata 798870"
introduces the follwoing build warning for OMAP5 and build break for OMAP4.

hwinit-common.c: In function 's_init':
hwinit-common.c:132:2: warning: implicit declaration of function 'arm_errata_798870' [-Wimplicit-function-declaration]

As this function is called for both OMAP5 and OMAP4 and defined only for OMAP5
causing a build error for OMAP4
Fixing by moving this function common to OMAP4/5.
This will not break any functionality on OMAP4 as it checks for A15.

Reported-by: Pekon Gupta <pekon@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2013-12-02 12:02:16 -05:00
pekon gupta cad434fe2e mtd: nand: omap: move omap_elm.h from arch/arm/include/asm to drivers/mtd/nand
omap_elm.h is a generic header used by OMAP ELM driver for all TI platfoms.
Hence this file should be present in generic folder instead of architecture
specific include folder.
Build tested using: ./MAKEALL -s am33xx -s omap3 -s omap4 -s omap5

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-11-26 09:09:55 -05:00
pekon gupta e05f81d3eb mtd: nand: omap: move omap_gpmc.h from arch/arm/include/asm to drivers/mtd/nand
omap_gpmc.h is a generic header used by OMAP NAND driver for all TI platfoms.
Hence this file should be present in generic folder instead of architecture
specific include folder.
Build tested using: ./MAKEALL -s am33xx -s omap3 -s omap4 -s omap5

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-11-26 09:09:55 -05:00
pekon gupta 4fe753f862 mtd: nand: omap: merge duplicate GPMC data from different arch-xx headers into common omap_gpmc.h
Each SoC platform (AM33xx, OMAP3, OMAP4, OMAP5) has its own copy of GPMC related
defines and declarations scattered in SoC platform specific header files
like include/asm/arch-xx/cpu.h
However, GPMC hardware remains same across all platforms thus this patch merges
GPMC data scattered across different arch-xx specific header files into single
header file include/asm/arch/omap_gpmc.h

Build tested using: ./MAKEALL -s am33xx -s omap3 -s omap4 -s omap5

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-11-26 09:09:54 -05:00
pekon gupta 65c69b22ed mtd: nand: omap: remove unused #defines from common omap_gpmc.h
OMAP NAND driver can detect Page-size and OOB-size of NAND device from ONFI
params or nand_id[] table. And based on that it defines ECC layout.
This patch
1) removes following board configs used for defining NAND ECC layout
	- GPMC_NAND_ECC_LP_x16_LAYOUT (for large page x16 NAND)
	- GPMC_NAND_ECC_LP_x8_LAYOUT  (for large page x8 NAND)
	- GPMC_NAND_ECC_SP_x16_LAYOUT (for small page x16 NAND)
	- GPMC_NAND_ECC_SP_x8_LAYOUT  (for small page x8 NAND)

2) removes unused #defines in common omap_gpmc.h depending on above configs

Build tested using: ./MAKEALL -s am33xx -s omap3 -s omap4 -s omap5

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-11-26 09:09:54 -05:00
pekon gupta 9db4169403 mtd: nand: omap: remove redundant platform specific header: arch-xx/omap_gpmc.h
Currently there are two sets of omap_gpmc.h header files
(a) arch/arm/include/asm/omap_gpmc.h
 common header file for all platforms, containing defines and declarations used
 by GPMC NAND driver.

(b) arch/arm/include/asm/arch-xx/omap_gpmc.h
 SoC platform specific header file containing defines like ECC layout.

This patch removes platform specific arch-xx/omap_gpmc.c because:
 - GPMC hardware engine is common for all SoC platforms hence only (a) is enough
 - ECC layout is now defined in omap_nand.c driver itself based on ecc-scheme
   selected. Hence all ECC layout declarations in (b) are redundant.

Build tested using: ./MAKEALL -s am33xx -s omap3 -s omap4 -s omap5

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-11-26 09:09:54 -05:00
pekon gupta fd050d3479 mtd: nand: omap: optimize chip->ecc.hwctl() for H/W ECC schemes
chip->ecc.hwctl() is used for preparing the H/W controller before read/write
NAND accesses (like assigning data-buf, enabling ECC scheme configs, etc.)

Though all ECC schemes in OMAP NAND driver use GPMC controller for generating
ECC syndrome (for both Read/Write accesses). But but in current code
HAM1_ECC and BCHx_ECC schemes implement individual function to achieve this.
This patch
(1) removes omap_hwecc_init() and omap_hwecc_init_bch()
as chip->ecc.hwctl will re-initializeGPMC before every read/write call.
omap_hwecc_init_bch() -> omap_enable_ecc_bch()

(2) merges the GPMC configuration code for all ECC schemes into
single omap_enable_hwecc(), thus adding scalability for future ECC schemes.
omap_enable_hwecc() + omap_enable_ecc_bch() -> omap_enable_hwecc()

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-11-26 09:09:46 -05:00
pekon gupta 6f2d6d7144 am335x: fix GPMC config for NAND and NOR SPL boot
GPMC controller is common IP to interface with both NAND and NOR flash devices.
Also, it supports max 8 chip-selects, which can be independently connected to
any of the devices.
But ROM code expects the boot-device to be connected to only chip-select[0].
Thus to resolve conflict between NOR and NAND boot. This patch:
- combines NOR and NAND configs spread in board files to common gpmc_init()
- configures GPMC based on boot-mode selected for SPL boot.

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-11-26 09:09:18 -05:00
pekon gupta 3e05e9d0ff mtd: nand: omap: enable BCH ECC scheme using ELM for generic platform
BCH8_ECC scheme implemented in omap_gpmc.c driver has following favours
+-----------------------------------+-----------------+-----------------+
|ECC Scheme                         | ECC Calculation | Error Detection |
+-----------------------------------+-----------------+-----------------+
|OMAP_ECC_BCH8_CODE_HW              |GPMC             |ELM H/W engine   |
|OMAP_ECC_BCH8_CODE_HW_DETECTION_SW |GPMC             |S/W BCH library  |
+-----------------------------------+-----------------+-----------------+

Current implementation limits the BCH8_CODE_HW only for AM33xx device family.
(using CONFIG_AM33XX). However, other SoC families (like TI81xx) also have
ELM hardware module, and can support ECC error detection using ELM.

This patch
- removes CONFIG_AM33xx
	Thus this driver can be reused by all devices having ELM h/w engine.
- adds omap_select_ecc_scheme()
	A common function to handle ecc-scheme related configurations. This
	can be used both during device-probe and via user-space u-boot commads
	to change ecc-scheme. During device probe ecc-scheme is selected based
	on CONFIG_NAND_OMAP_ELM or CONFIG_NAND_OMAP_BCH8
- enables CONFIG_BCH
	S/W library (lib/bch.c) required by OMAP_ECC_BCHx_CODE_HW_DETECTION_SW
  	is enabled by CONFIG_BCH.
- enables CONFIG_SYS_NAND_ONFI_DETECTION
	for auto-detection of ONFI compliant NAND devices
- updates following README doc
	doc/README.nand
	board/ti/am335x/README
	doc/README.omap3

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-11-26 09:09:15 -05:00
pekon gupta c413424f74 mtd: nand: omap: make am33xx/elm.c as common driver for all OMAPx and AMxxxx platforms
ELM hardware engine which is used for ECC error detection, is present on all
latest OMAP SoC (like OMAP4xxx, OMAP5xxx, DRA7xxx, AM33xx, AM43xx). Thus ELM
driver should be moved to common drivers/mtd/nand/ folder so that all SoC
having on-chip ELM hardware engine can re-use it.
This patch has following changes:
- mv arch/arm/include/asm/arch-am33xx/elm.h arch/arm/include/asm/omap_elm.h
- mv arch/arm/cpu/armv7/am33xx/elm.c drivers/mtd/nand/omap_elm.c
- update Makefiles
- update #include <asm/elm.h>
- add CONFIG_NAND_OMAP_ELM to compile driver/mtd/nand/omap_elm.c
	and include in all board configs using AM33xx SoC platform.

Signed-off-by: Pekon Gupta <pekon@ti.com>
2013-11-26 08:54:43 -05:00
Praveen Rao a59443f753 ARM: OMAP5: DRA7xx: Add workaround for ARM errata 798870
This patch adds workaround for ARM errata 798870 which says
"If back-to-back speculative cache line fills (fill A and fill B) are
issued from the L1 data cache of a CPU to the L2 cache, the second
request (fill B) is then cancelled, and the second request would have
detected a hazard against a recent write or eviction (write B) to the
same cache line as fill B then the L2 logic might deadlock."

Signed-off-by: Praveen Rao <prao@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2013-11-26 08:34:10 -05:00
Roger Quadros e736621f13 ARM: DRA7xx: Add PRCM and Control information for SATA
Adds the necessary PRCM and Control register information for
SATA on DRA7xx.

Signed-off-by: Roger Quadros <rogerq@ti.com>
2013-11-15 09:08:48 -05:00
Roger Quadros 21368142b6 ARM: OMAP5: Add SATA platform glue
Add platform glue logic for the SATA controller.

Signed-off-by: Roger Quadros <rogerq@ti.com>
2013-11-15 09:08:43 -05:00
Roger Quadros 1a88aa49df ARM: OMAP5: Add PRCM and Control information for SATA
Adds the necessary PRCM and Control register information for
SATA on OMAP5.

Signed-off-by: Roger Quadros <rogerq@ti.com>
2013-11-15 08:37:14 -05:00
Roger Quadros 02f54405de ARM: OMAP5: Add Pipe3 PHY driver
Pipe3 PHY is used by SATA, USB3 and PCIe modules. This is
a driver for the Pipe3 PHY.

Signed-off-by: Roger Quadros <rogerq@ti.com>
2013-11-15 08:37:14 -05:00
Tom Rini df561c5e68 am43xx: Re-sync emif4d5 for changes to support HW leveling on OMAP5
Cc: Sricharan R <r.sricharan@ti.com>
Cc: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Tom Rini <trini@ti.com>
2013-11-07 14:46:17 -05:00
Tom Rini 6d64d17394 am33xx: Stop modifying certain EMIF4D registers
Based on the definitive guide to EMIF configuration[1] certain registers
that we have been modifying (and are documented registers) should be
left in their reset values rather than modified.  This has been tested
on AM335x GP EVM and Beaglebone White.

[1]: http://processors.wiki.ti.com/index.php/AM335x_EMIF_Configuration_tips
Cc: Enric Balletbo i Serra <eballetbo@iseebcn.com>
Cc: Javier Martinez Canillas <javier@dowhile0.org>
Cc: Heiko Schocher <hs@denx.de>
Cc: Matt Porter <matt.porter@linaro.org>
Cc: Lars Poeschel <poeschel@lemonage.de>
Signed-off-by: Tom Rini <trini@ti.com>
2013-11-07 12:16:41 -05:00
Sricharan R 633195f687 ARM: DRA7/OMAP5: EMIF: Add workaround for bug 0039
When core power domain hits oswr, then DDR3 memories does not come back
while resuming. This is because when EMIF registers are lost, then the
controller takes care of copying the values from the shadow registers.
If the shadow registers are not updated with the right values, then this
results in incorrect settings while resuming. So updating the shadow registers
with the corresponding status registers here during the boot.

Signed-off-by: Sricharan R <r.sricharan@ti.com>
2013-11-07 12:16:35 -05:00
Sricharan R cac86c8843 ARM: DRA: EMIF: Change DDR3 settings to use hw leveling
Currently the DDR3 memory on DRA7 ES1.0 evm board is enabled using
software leveling. This was done since hardware leveling was not
working. Now that the right sequence to do hw leveling is identified,
use it. This is required for EMIF clockdomain to idle and come back
during lowpower usecases.

Signed-off-by: Sricharan R <r.sricharan@ti.com>
2013-11-07 12:16:35 -05:00
Mugunthan V N 688b8fb116 ARM: AM43xx: clocks: Enable CPGMAC clock control
Enable CPGMAC clock control for AM43xx to use ethernet in U-Boot

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
2013-10-28 09:01:48 -04:00
Sourav Poddar ec73dcb1e1 am43xx: add qspi support
Add QSPI definitions and clock configuration support.

Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
2013-10-25 15:43:15 -04:00
Lokesh Vutla ddd9666cfc ARM: AM43xx: GP_EVM: Add support for DDR3
GP EVM has 1GB DDR3 attached(Part no: MT47H128M16RT-187E:C).
Adding details for the same.
Below is the brief description of DDR3 init sequence(SW leveling):
-> Enable VTT regulator
-> Configure VTP
-> Configure DDR IO settings
-> Disable initialization and refreshes until EMIF registers are programmed.
-> Program Timing registers
-> Program leveling registers
-> Program PHY control and Temp alert and ZQ config registers.
-> Enable initialization and refreshes and configure SDRAM CONFIG register

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2013-10-21 13:10:42 -04:00
Lokesh Vutla 2cde21e0ce ARM: AM43xx: EPOS_EVM: Add support for LPDDR2
AM4372 EPOS EVM has 1GB LPDDR2(Part no: MT42L256M32D2LG-25 WT:A)
Adding LPDDR2 init sequence and register details for the same.
Below is the brief description of LPDDR2 init sequence:
-> Configure VTP
-> Configure DDR IO settings
-> Disable initialization and refreshes until EMIF registers are programmed.
-> Program Timing registers
-> Program PHY control and Temp alert and ZQ config registers.
-> Enable initialization and refreshes and configure SDRAM CONFIG register
-> Wait till initialization is complete and the configure MR registers.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2013-10-21 13:10:42 -04:00
Lokesh Vutla 8142c3171d ARM: AM4372: Enable caches at starting of u-boot
This is a known issue on AM4372 that when there is a burst read to a
non-cacheable EMIF address space and the burst crosses 1K address boundary will
result in a hang. Since U-boot runs from DDR, there is a possibility that above
case occurs. So enable caches at the beginning of U-boot.
*This is a temporary fix and not meant for mainline.*

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2013-10-21 13:10:42 -04:00
Lokesh Vutla dd19de4192 ARM: AM43xx: Do not enable RTC for AM4372 SoC
Commit "am335x: Enable RTC 32K OSC clock" describes the dependency
to enable RTC clks in bootloader. This is not true for AM4372.
In EPOS EVM RTC is not powered (VDDS_RTC grounded to 0). In GP EVM no
need to enble RTC in bootloader. So moving RTC enbling to its respective clock file.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2013-10-21 13:10:42 -04:00