Skip to content
omapconf edited this page Sep 21, 2012 · 2 revisions

Overview

OMAPCONF is a Linux user-space standalone application designed to provide a quick'n easy way to diagnose (monitor/debug/...) TI OMAP processors configuration/status dynamically at runtime, in **any situation''':

  • Any Linux distribution (Ubuntu, ...)
  • Any Android release (Froyo, GingerBread, HoneyComb, Ice-Cream Sandwich, Jelly Bean, ...)
  • TI official platforms (blaze, panda, ...),
  • Custom OMAP platforms, etc.
  • With no kernel recompilation needed

Hence OMAPCONF:

  • Is statically built, so that the binary file can be directly copied to any filesystem and immediately run.
  • Only uses "/dev/mem" special device to directly access PRCM registers. Hence it has no dependency on any:
  • Linux Kernel PM Feature
  • Linux Kernel PM Framework
  • Linux Distribution

Note that even if OMAPCONF currently mainly focuses on PRCM ("Power Reset & Clock Manager", OMAP IP handling chip power management), it is not intended to be limited to PRCM settings/power debug; it may be extended to other OMAP modules. Some initial support of ISS and DSS is available (register dumps).

Features

OMAPCONF provides easy-to-use functions to:

  • Do SoC power audits (static + use-case dependent power settings audits)
  • Do performance audits (CPU freq, C-State, CPU wakeup sources, timer stats, Memory Bandwidth, ...)
  • Collect power management HW traces and generate power management statistics
  • Collect performance traces (CPU Load, OPPs, Memory Bandwidth, temperatures, ...)
  • Retrieve (decode) register settings (OMAP (PRCM, DSS, CAM, EMIF) + TWL60x0 companion chips)
  • SoC OPPs ("OPerating Point") & complete power status
  • DPLLs complete configuration
  • Smart-Reflex AVS complete configuration
  • Clock & Power Domains configuration
  • Clock Domain Dependencies
  • Wakeup Dependencies
  • Modules Sysconfig settings
  • Adaptive body bias (ABB) configuration
  • MPU PRM IRQ Configuration
  • Read embedded temperature sensors
  • Setup HW observability Pins
  • Export PRCM registers content to TI Clock Tree Tool (CTT) & PAD Configuration Tool (PCT)
  • CTT Wiki: http://www.omappedia.org/wiki/CTT
  • TI Official Site: http://focus.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?templateId=6123&navigationId=12667
  • Read/write/set/clear any OMAP register
  • Read/write any I2C register
  • Dump registers content (OMAP + TWL60x0 companion chips)
  • Retrieve (decode) MPU Sub-System Configuration (SCU, L2$, GIC, WakeUpGen, SCM)
  • Update supply voltages on scalable rails
  • Automated search of minimum supply voltages (aka "vminsearch")
  • Retrieve CPU & Build details
  • ...

Supported Platforms

OMAPCONF can be run on any device type (GP, ...) on any HW platform (Panda, Blaze, PAB, TEB, ...).

OMAPCONF supports the following OMAP architectures:

  • OMAP4430 ES1.0
  • OMAP4430 ES2.x
  • OMAP4460 ES1.x
  • OMAP4470 ES1.x
  • OMAP5430 ES1.0
  • OMAP5432 ES1.0

Legacy TI OMAP platforms (OMAP[1-2-3]) are not supported.

OMAPCONF does not run on any other non-TI OMAP CPU/architecture.

THIS SOFTWARE IS PROVIDED AS IS, WITH NO SUPPORT OR MAINTENANCE COMMITED FROM TEXAS INSTRUMENTS INCORPORATED.

Requirements

  • "/dev/mem" special device to access PRCM registers from userspace is the only mandatory feature.
  • Administrative rights (only supervisors can access "/dev/mem").

That's it!

Note however that some functions do need to read some Linux special files (like /proc/stat, ...). These functions may not be able to complete if such files were not available.

License

OMAPCONF is developed under the BSD license. However is reuses some libraries (source code) published under the terms of the GNU General Public License version 2. Therefore, the resulting binary will fall under the GNU General Public License version 2 as published by the Free Software Foundation. See more details here in LICENSE file.

Build instructions

Build instructions are described here in README.md file.

Porting Guide

Assuming all C standard librairies (stdio, stdlib, string, ...) are available, porting OMAPCONF to another High-Level Operating System should not be too difficult, as 98% of OMAPCONF relies on few central functions that implements register read/write accesses:

  • int mem_read(unsigned int addr, unsigned int *val)
  • int mem_write(unsigned int addr, unsigned int val)
  • int i2cget(unsigned int i2cbus, unsigned int address, unsigned int daddress, unsigned int *data)
  • int i2cset(unsigned int i2cbus, unsigned int address, unsigned int daddress, unsigned int data)

Remaining job would be then to find equivalents to Linux special files that are used by some functions to retrieve some HLOS details/statistics. If no equivalent available, then remove function(s) or part of unsupported function(s).

Reporting Bugs

TBD.

Suggestions

TBD.

Contributions

TBD.

Using OMAPCONF

  • NB: only users with privileged rights can access "/dev/mem" special device. Hence OMAPCONF must be run with administrative rights.
  • OMAPCONF is not case-sensitive.

HELP

OMAPCONF has an embedded help. At any time to get the list of supported command just type:

# ./omapconf --help

In case of error in command line, OMAPCONF will also automatically list available options.

General Options

# ./omapconf --help

Print omapconf help.

# ./omapconf --version

Print omapconf version.

# ./omapconf --cpuinfo

Print CPU details (revision, type, fab, DIE ID, ...):

# ./omapconf --buildinfo

Print SW Build Details (kernel, release).

# ./omapconf --force <cpu>

Force CPU detection. Supported 'cpu': omap4430, omap4460, omap4470, omap5430, omap5432.

# ./omapconf --norw

Fake memory access (no real R/W done). Write accesses are discarded, read accesses return physical address. This option used in conjonction with '--force' allows running omapconf on a different platform than targeted one. For instance, for development purpose, some code may be developed on a PC ubuntu machine compiled for x86 architecture instead. Then code may be in a second step finalized/validated on target.

# ./omapconf --import <file> (### OMAP5 ONLY ###)

Import OMAP registers content from XML 'file' (generated with command "export 'file'"). Must be used in conjunction with option "--force".

Platform-Agnostic Commands

Memory (incl. register) Read/Write Commands

WARNING: use the following [read | write | set bit | clear bit | dump] commands at your own risk! No address check done, may generate bus error (invalid or not accessible 'physical address' and/or platform crash/hang (bad 'value').

# ./omapconf read [0x<physical address> | <name>]

Read any OMAP memory address (register), given its 'physical address' or 'name' as listed in TRM.

# ./omapconf write [0x<physical address> | <name>] 0x<value>

Write 'value' at any OMAP memory address (register), given its 'physical address' or 'name' as listed in TRM.

# ./omapconf set bit [0x<physical address> | <name>] <position>

Set bit at 'position' into any OMAP memory address (register), given its 'physical address' or 'name' as listed in TRM.

# ./omapconf clear bit [0x<physical address> | <name>] <position>

Clear bit at 'position' into any OMAP memory address (register), given its 'physical address' or 'name' as listed in TRM.

# ./omapconf dump 0x<start address> 0x<end address>

Dump a range of OMAP memory addresses, from 'start address' to 'end address'. Note all addresses within given range must be valid and accessible.

I2C Register Read/Write Commands

WARNING: use the following commands at your own risk! No address check done, may generate I2C bus error (invalid or not accessible 'physical address' and/or platform crash/hang (bad 'value').

# ./omapconf read i2c <bus> 0x<chip-addr> 0x<addr>

Read I2C register at address 'addr' from I2C chip at 'chip-addr' on I2C 'bus'.

# ./omapconf write i2c <bus> 0x<chip-addr> 0x<addr> 0x<value>

Write 'value' in I2C register at address 'addr' from I2C chip at 'chip-addr' on I2C 'bus'.

Audio Companion Chip Configuration

# ./omapconf dump audioic

Dump Audio IC registers.

# ./omapconf show audioic [cfg]

Print Audio IC audio configuration ([cfg] may be omitted).

# ./omapconf show audioic gains

Print Audio IC audio analog gains.

# ./omapconf read audioic [0x<addr> | <name>]

Read Audio IC register, given its physical address 'addr' or 'name' as listed in TRM.

# ./omapconf write audioic [0x<addr> | <name>] 0x<data>

Write 'data' into Audio IC register, given its physical address 'addr' or 'name' as listed in TRM.

Power Management Companion Chip (PMIC) Configuration

# ./omapconf dump pmic

Dump PMIC registers.

# ./omapconf show pmic <item> (OMAP4 only)

Print PMIC item configuration. Supported 'item': cfg (all 'item'), ldocfg (LDO), smpscfg (SMPS), rescfg (resource dependencies), devpwrgrpstat (device level power group status).

# ./omapconf set pmic devpwrgrp [MOD | CON | APP] [ON | OFF] (OMAP4 only)

Set PMIC device level power group [MOD | CON | APP] to [ON | OFF].

WARNING: do it at your own risk. May crash the platform!

# ./omapconf reset pmic (OMAP4 only)

RESET PMIC device (bypassing OMAP reset).

OMAP-specific Commands

Register Export Commands

# ./omapconf export ctt [<filename>]

Export PRCM registers in .rd1 format for Clock Tree Tool (CTT, http://omappedia.org/wiki/CTT), to 'filename' or stdout if omitted.

# ./omapconf export [xml] [<file>] (### OMAP5 ONLY ###)

Export OMAP registers in XML format into 'file' ([xml] may be omitted).

Use date to generate default file name if 'file' is omitted).

Exported registers configuration can be imported later on, using '--import' option. Register values will then be read from 'file' instead of registers when available.

# ./omapconf export pct [<filename>] (### OMAP4 ONLY ###)

Export PRCM registers in .rd1 format for Pad Configuration Tool (PCT, http://www.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?templateId=6123&navigationId=12804#62), to 'filename' or stdout if omitted.

PRCM Configuration/Status

DPLL Configuration/Status

# ./omapconf dump dpll [<dpll>]

RAW dump of 'dpll' registers ('all' assumed if omitted).

Note 'dpll' option is not available on OMAP4.

Supported 'dpll': mpu, iva, core, per, abe, usb, unipro1, unipro2, all.

# ./omapconf show dpll [cfg]

Print the complete configuration of all DPLL ([cfg] may be omitted).

PRCM configuration (per power domain)

# ./omapconf dump prcm [<pwrdm>]

Dump PRCM Registers related to 'pwrdm' power domain ('all' assumed if omitted).

Supported 'pwrdm' (OMAP4): mpu, core, dsp, dss, cam, gfx, ivahd, per, abe, wkup, l3init, alwon, emu, all.

Supported 'pwrdm' (OMAP5): mpu, core, dsp, dss, cam, gpu, iva, l4per, abe, l3init, dev, emu, instr, ckgen, wkupaon, coreaon, all.

# ./omapconf show prcm [<pwrdm>] [<clkdm>] [cfg]

Print PRCM power configuration and status of 'pwrdm' power domain (all assumed if omitted).

[cfg] may also be omitted.

'clkdm' is only supported for OMAP5.

Supported 'pwrdm' (OMAP4): mpu, core, dsp, dss, cam, gfx, ivahd, per, abe, wkup, l3init, alwon, emu.

Supported 'pwrdm' (OMAP5): mpu, core, dsp, dss, cam, gpu, iva, l4per, abe, l3init, emu, wkupaon, coreaon, all.

Note for CORE power domain, it is possible to select a single clock domain, providing optional 'clkdm'.

Supported 'clkdm' (OMAP5): l4cfg, emif, ipu, l3main1, l3main2, l3instr, c2c, dma, mipiext.

# ./omapconf show prcm <pwrdm> dep (OMAP4 only)

Print 'pwrdm' clock domain dependencies.

Supported 'pwrdm': mpu, core, dsp, dss, cam, gfx, ivahd, per, l3init, emu.

MPU PRM IRQ Configuration (OMAP4 only)

# ./omapconf show prcm irq

Print MPU PRM IRQ configuration and status.

Clock Domain Static Dependency Configuration (OMAP4)

# ./omapconf dump prcm statdep

Dump all PRCM clock domain static dependency registers.

# ./omapconf show prcm statdep

Print all PRCM static dependency configuration between clock domains ([cfg] may be omitted).

# ./omapconf [set | clear] prcm statdep <from> [<to>]

[Set (enable) | Clear (disable)] static dependency from clock domain 'from' towards clock domain 'to'.

Supported 'from'/'to': l4wkup, emu, mpu, abe, ivahd, dsp, alwoncore, l4cfg, c2c, sdma, mpu_m3, l3_1, l3_2, l3instr, memif, std_efuse, cust_efuse, cam, dss, gfx, l3init, l4sec, l4per.

If 'to' = all or 'to' is omitted, then all static dependencies from clock domain 'from' will be set (enabled) / cleared (disabled) in a row. WARNING: use this command at your own risk, may crash the platform!

Clock Domain Static Dependency Configuration (OMAP5)

# ./omapconf dump prcm dep

Dump all clock domain dependency registers.

# ./omapconf show prcm [statdep | dyndep | dep] [cfg]

Print all PRCM dependency configuration between clock domains ([cfg] may be omitted).

Use 'statdep' to print static dependency configuration only.

Use 'dyndep' to print dynamic dependency configuration only .

Use 'dep' to print both static and dynamic dependency configurations.

# ./omapconf [set | clear] prcm statdep <from> [<to>]

[Set (enable) | Clear (disable)] static dependency from clock domain 'from' towards clock domain 'to'.

Supported 'from'/'to': emu, wkupaon, coreaon, cam, l4cfg, emif, ipu, l3main2, l3instr, l3main1, c2c, dma, mipiext, dss, custefuse, l3init, l4per, l4sec, abe, dsp, gpu, iva, mpu, all.

If 'to' = all or 'to' is omitted, then all static dependencies from clock domain 'from' will be [set (enabled) | cleared (disabled)] in a row.

WARNING: use this command at your own risk, may crash the platform!

Wakeup Dependencies (OMAP4 only)

# ./omapconf dump prcm wkdep

Dump PRCM wakeup dependency registers.

# ./omapconf show prcm wkdep [cfg]

Print PRCM wakeup dependency configuration ([cfg] may be omitted).

Smart-Reflex (AVS)

# ./omapconf dump sr [<mod>]

Dump Smart-Reflex Adaptive Voltage Scaling (AVS) 'mod' registers ('all' assumed if omitted).

Supported 'mod' (OMAP5): mpu, mm, core, all.

No module selection available on OMAP4.

# ./omapconf show sr [cfg]

Print Smart-Reflex Adaptive Voltage Scaling (AVS) configuration, including Voltage Controller (VC) and Voltage Processor (VP) configurations ([cfg] may be omitted).

Note SR sensors configuration will be hardly possible to get it in class 1.5, as SR sensors are disabled most of the time.

# ./omapconf show sr status

Print Smart-Reflex Adaptive Voltage Scaling (AVS) convergence status. Note SR sensors status will be hardly possible to get it in class 1.5, as SR sensors are disabled most of the time.

Adaptive body bias (ABB)

# ./omapconf dump prcm abb

Dump PRCM Advance Body Bias (ABB) registers.

# ./omapconf show prcm abb [cfg]

Print PRCM Advance Body Bias (ABB) configuration ([cfg] may be omitted).

Control Module Configuration

# ./omapconf dump ctrlmod [<mod>]

Dump Control Module 'mod' registers ('all' assumed if omitted).

Supported 'mod': core, core_pad, wkup, wkup_pad, all.

Audio Back End (ABE) Configuration

# ./omapconf dump abe

Dump Audio Back End (ABE) registers.

# ./omapconf show abe [cfg]

Print Audio Back End (ABE) PRCM configuration ([cfg] may be omitted).

# ./omapconf show abe atc

Print Audio Back End (ABE) ATC descriptors status.

MPU Sub-System Configuration (OMAP4 only)

# ./omapconf dump mpuss [scu | l2c | gic | wkg | scm]

Dump selected MPUSS (MPU SubSystem) item registers: Snoop Control Unit (scu), Level 2 Cache Controller (l2c), Generic Interrupt Controller (gic), WaKeup Generator (wkg), Security Control Module (scm).

# ./omapconf show mpuss [scu | gic] [cfg]

Print selected MPUSS (MPU SubSystem) item configuration ([cfg] may be omitted): Snoop Control Unit (scu), Generic Interrupt Controller (gic).

EMIF

# ./omapconf dump emif

Dump EMIF[1-2] registers.

Display Configuration (OMAP4 only)

# ./omapconf dump display <module>

Dump display subsystem 'module' registers.

Supported 'module': dss, dsi1, dsi1_pll, dsi1_phy, dsi2, dsi2_pll, dsi2_phy, rfbi, venc, all.

ISS Configuration (OMAP4 only)

# ./omapconf dump camera <module>

Dump camera subsystem 'module' registers.

Supported 'module': iss_hl, iss_csi2a, iss_csi2b, iss_csiphy1, iss_csiphy2, iss_ccp2, all.

32K Timer

# ./omapconf show timers_32k [<runs>]

Execute 'runs' executions of (10 by default):

  • read 32kHz register, clock_gettime(CLOCK_MONONOTONIC, ...), gettimeofday()

  • print value of each + offset from 32kHz to each clock in us

SoC (System On Chip) Configuration/Status

Power Status

# ./omapconf show pwst

Print OMAP power status (OPP, voltage/power/clock domains states, and modules status).

# ./omapconf show opp

Print OMAP current OPerating Points (OPP)(voltage, frequency) for MPU/IVA/CORE voltage domains), including main modules frequencies.

Temperature (OMAP4)

# ./omapconf show temp [<sensor>]

Print temperature reported by 'sensor', in celcius degrees.

Supported 'sensor': bandgap, pcb, hotspot.

If 'sensor' is omitted, all available sensors will be printed in a table, with both celcius and fahrenheit degrees.

# ./omapconf show temp mem <emif> <cs>

Print memory (LP-DDR2) temperature, in celcius degrees.

'emif' is the EMIF controller instance ([1-2]).

'cs' is the chip select line (0).

Temperature (OMAP5)

# ./omapconf show temp [<sensor>]

Print temperature reported by 'sensor', in celcius degrees.

Supported 'sensor': mpu, gpu, core, pcb, case, emif1, emif2, all.

If 'sensor' is omitted or 'sensor' = all, all available sensors will be printed in a table, with both celcius and fahrenheit degrees.

Voltage Control

WARNING: do it at your own risk. Unsupported voltage may crash or damage device! # ./omapconf set volt <rail> <voltage>

Set 'rail' voltage to 'voltage'.

Supported 'rail': mpu, mm, core.

'voltage' is in volts.

# ./omapconf search vmin <rail> <voltage> <time>

Scale 'rail' voltage down step by step, starting from 'voltage' & waiting 'time' between 2 steps.

LAST voltage displayed with OK status before crash will be the minimum voltage (aka VMIN) for that 'rail'.

Supported 'rail': mpu, iva (OMAP4 only), mm (OMAP5 only), core.

'voltage' is in volts. 'time' is in milliseconds.

Make sure your load generator application is running in background during the whole procedure.

SoC Power & Performance Audit

Common

# ./omapconf audit dpll [-d <dpll>] [-o <opp>]

Audit DPLL settings at selected OPP(s).

By default, audit ALL DPLLs at CURRENT OPP. Use optional '-d 'dpll'' to select a given DPLL.

Supported 'dpll' ('all' considered if omitted) (OMAP4): mpu, iva, core, per, abe, usb, all.

Supported 'dpll' ('all' considered if omitted) (OMAP5): mpu, iva, core, per, abe, usb, unipro1, unipro2, all.

Use optional '-o all' to run audit at all ### MPU ### OPerating Points (OPP).

Use optional '-o 'opp'' to force a particular ### MPU ### OPerating Points (OPP). For example when MPU OPP is not correctly detected.

Supported 'opp' (OMAP4): dpll_casc, opp50, opp100, opp_turbo, opp_nitro, opp_nitrosb.

Supported 'opp' (OMAP5): dpll_casc, low, nom, high, speedbin.

# ./omapconf audit clkspeed [-k, -kernel]

Audit modules clock speed at the current OPerating Points (OPP).

(OMAP5 only) Use option '-k' or '-kernel' to also audit kernel clock framework (skipped by default).

# ./omapconf audit sysconfig

Audit OMAP modules SYSCONFIG settings (autoidle/clock activity/idle/standby modes).

Note only enabled (running) modules can be audited. Disabled modules will be discarded (as not accessible).

# ./omapconf audit statdep

Audit clock domain static dependencies settings.

# ./omapconf audit full

Execute all ### power ### audits sequencially (dplls, sysconfig, clkspeed, statdep, ...).

# ./omapconf audit perf [<duration>] [-d <delay>]

Audit performance (CPU Load, C-States, OPP, temperatures & memory data bus load).

Use optional 'duration' to select audit length in seconds (default: 10s).

Use optional 'delay' to select initial delay before audit start in seconds (default: 10s).

Audit data saved in 'performance_audit_report.txt' file.

OMAP4

# ./omapconf audit pads

Audit PAD configuration against HW bug causing potential glitch during OFF mode transition (OMAP44[60-70] only).

# ./omapconf audit avs [<mod>]

Audit Smart-Reflex Adaptive Voltage Scaling (AVS) settings at the current OPerating Points (OPP).

Supported 'mod' (all assumed if omitted): mpu, iva, core.

# ./omapconf audit avs full

Audit all (mpu + iva + core) Smart-Reflex Adaptive Voltage Scaling (AVS) settings accross all MPU OPerating Points (OPP).

OMAP5 only

# ./omapconf audit io (PRELIMINARY)

Audit IO PAD configuration.

Low-power Use-Case Power Audit (OMAP4 only)

# ./omapconf audit <use case> [full_log]

Audit power settings for a particular Use Case (UC). Audit summary results saved in 'use case'_uc_audit_summary.txt file.

If [full_log] option is used, all audit details are also saved in 'use case'_uc_audit_details.txt.

Supported 'use case':

  • 'homescreen' (LCD ON, no application running, no user interaction)

  • 'os_idle' (homescreen with LCD OFF)

  • 'mp3' (MP3 playback to headphones, with LCD OFF)

  • 'play720p' (720P audio-video playback)

  • 'play1080p' (1080P audio-video playback)

  • 'rec1080p' (1080P audio-video record)

Tracing

# ./omapconf trace pwrdm [<duration>] (OMAP4 only) ### EXPERIMENTAL ###

Collect via PMI power domain transitions trace & statistics.

Use optional 'duration' to select trace length (in seconds, default: 10s).

# ./omapconf trace opp [<duration>] (OMAP4 only) ### EXPERIMENTAL ###

Collect via PMI OPP changes trace & statistics.

Use optional 'duration' to select trace length (in seconds, default: 10s).

# ./omapconf trace bw [-h] [-m 0xyy or MA_MPU_1_2] [-d x] [-a 1 or 2] [-i x] [-o x -t y] [-r 0xaaaaaaaa-0xbbbbbbbb] [-n]

EMIF traffic monitoring. Type 'omapconf trace bw -h' for detailed help.

# ./omapconf trace counters [<duration>] [<prefix>] (OMAP4 only) ### ALPHA ###

Capture from a predefined list of counters which is read from .omapconf_defaults file.

Use optional 'duration' to select trace length (in seconds, default: 10s).

Use optional 'prefix' to set a counters dat/txt file prefix (for batch running). If using 'prefix', 'duration' argument is required.

WARNING: L2$ counters lost accross MPU domain power transitions.

# ./omapconf trace counters defaults (OMAP4 only)

Print an empty example defaults file which can be used as the basis for .omapconf_defaults file.

# ./omapconf trace counters help [<context>] (OMAP4 only)

Print context help for counters.

Supported 'context':

  • 'options'. Display configurable options for counters. Options are stored in '.omapconf_defaults' file.

  • 'l2cc_events'. Display l2cc_events supported for tracing. l2cc events are read from '.omapconf_defaults' file.

  • 'emif_events'. Display emif_events supported for counting.

# ./omapconf trace perf [-d sec] [-s rate]

Capture CPUs Load, MPU/GPU/L3 OPP Changes, EMIF data bus load, temperatures (ondie sensors, PCB, CASE) over time.

Generate GNUPlot scripts to plot trace charts.

Use '-d' option to change duration (in seconds, default: 10s).

Use '-s' option to change sampling rate (in seconds, default: 0.1s).

Observability Setup

# ./omapconf setup hwobs [pinmux | prcm | mpuss | abe]

Select HWOBS signals and handles mux configuration.

Type one of these commands for more details on supported options.

# ./omapconf show hwobs [cfg]

Print current configuration of HWOBS signals ([cfg] may be omitted).

# ./omapconf test hwobs [zero | one]

Test external pads setup (tie-low, tie-high debug signals):

# ./omapconf enable hwobs

Enable debug signals. To be called after 'setup' and 'test' commands.

Troubleshooting

TBD

Limitations

  • OMAPCONF can only show the configuration & status of OMAP at the time it is run.
  • OMAPCONF cannot be used in situations where OMAP CPU(s) are idle. MPU power domain will always be ON when OMAPCONF is run.

Related links

TI OMAP Public Documentation