[U-Boot] [PATCH 0/4] OMAP3+: Fix voltage bringup sequence

Nishanth Menon nm at ti.com
Fri Mar 2 01:17:36 CET 2012

Current configuration results in the following voltage waveform
(example 4460 Panda ES):
                           |---------------| (SET1 default 1.4V)
                           |               --------(programmed voltage)
                           | <- (This switch happens on mux7,pullup)
vdd_mpu(TPS)         -----/ (OPP boot voltage)
                                                --------- (programmed voltage)
vdd_IVA(TWL6030)     -------------------------/ (OPP boot voltage)
                                             --------- (programmed voltage)
vdd_core(TWL6030)    -----------------------/ (OPP boot voltage)
Problem 1)                |<----- Tx ------>|
   timing violation for a duration Tx close to few milliseconds.
Problem 2) voltage of MPU goes beyond spec for even the highest of MPU OPP.
Problem 3) All SoCs are doing MPU, CORE, IVA - which is a timing violation
Oscilloscope picture: http://goo.gl/SykHb

By using GPIO as recommended as standard procedure by TI and fixing the sequence
in this series changes this to:
                                         --------- (programmed voltage)
vdd_IVA(TWL6030)     ------------------/ (OPP boot voltage)
                                      -------- (programmed voltage)
vdd_mpu(TPS)         ----------------/ (Opp boot voltage)
                                   --------- (programmed voltage)
vdd_core(TWL6030)    -------------/ (OPP boot voltage)
Oscilloscope Picture: http://goo.gl/PgyKt

Why is this critical: without the voltage sequence fixes, certain intermediate
circuitry inside OMAP behaves in often unpredictable manner as they are
operating out of spec. This in production line(extreme example of OMAP4460)
translates close to ~5% devices failing to boot up and shows all kind of random
untraceable crashes in production kernel.

1. Clock sequences need to be fixed as well
2. kernel.org support for PandaBoard ES(OMAP4460) depends on the current wrong
   setup of u-boot to allow kernel boot to take place. This can and must be
   fixed. Merging this series breaks k.org, as a temporary WA: run:
   mw.w 0x4A31E05A 0x1f
   on u-boot prompt prior to booting the kernel to replicate old broken logic.

Tested on:
Pandaboard vanilla - OMAP4430
Pandaboard ES - OMAP4460

Nishanth Menon (4):
  OMAP3+: Introduce generic logic for OMAP voltage controller
  OMAP4460: TPS Ensure SET1 is selected after voltage configuration
  OMAP4: scale voltage of core before MPU scales
  OMAP5: scale voltage of core before MPU scales

 arch/arm/cpu/armv7/omap-common/Makefile        |    1 +
 arch/arm/cpu/armv7/omap-common/clocks-common.c |   67 ++++--------
 arch/arm/cpu/armv7/omap-common/vc.c            |  138 ++++++++++++++++++++++++
 arch/arm/cpu/armv7/omap4/clocks.c              |   64 ++++++-----
 arch/arm/cpu/armv7/omap5/clocks.c              |   10 +-
 arch/arm/include/asm/arch-omap4/clocks.h       |   17 +---
 arch/arm/include/asm/arch-omap4/sys_proto.h    |    2 +
 arch/arm/include/asm/arch-omap5/clocks.h       |   17 +---
 arch/arm/include/asm/arch-omap5/sys_proto.h    |    2 +
 board/ti/panda/panda_mux_data.h                |    2 +-
 board/ti/sdp4430/sdp4430_mux_data.h            |    2 +-
 11 files changed, 211 insertions(+), 111 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/omap-common/vc.c

Nishanth Menon


More information about the U-Boot mailing list