NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
OMAP35x and AM/DM37x Low Power Standby Support
Content is no longer maintained and is being kept for reference only!
Contents
Optimizing AM/DM37x For Low Power[edit]
This wiki describes steps required to take to demonstrate low power for AM/DM37x devices.
Hardware Configuration[edit]
- EVM Hardware config
- RevG main Board
- RevC OMAP35x/AM/DM37x Processor card
- Modification on processor card - Remove resistors R24 and R57 from the processor card
- AM/DM37x ES1.1 Silicon Revision. ES1.1 or great is required to achieve the documented power numbers due to silicon issues (Advisory 1.70 and Advisory 1.71) listed in the Silicon Errata. To find the silicon revision of your device, follow the procedure described in How to find the silicon revision of your AM/DM37x wiki
Software Configuration[edit]
To obtain lowest possible power, certain configuration changes were made to the default kernel and filesystem.
The kernel is based on PSP 03.00.01.06 SDK release but with the following drivers removed from the kernel defconfig.
- USB & HID support
- Graphics & Multimedia support
- MMC/SD support
- MTD/NAND support
- Audio support
The kernel .config used for this experiment can be found below
The filesystem used is a minimal ramdisk based filesystem with no demo or active applications running by default. Some useful debug utilities like memtool and clock tree browser were included in the filesystem.
The U-Boot and X-Loader used are from the PSP 03.00.01.06 SDK package with no modifications.
Pre-Built Images[edit]
The binaries used for the experiment are available below (remove the .m extensions)
AM/DM37x low power standby image
Booting And Configuring[edit]
Preparing For Boot[edit]
An MMC/SD based boot mechanism is used. Format the SD card and copy all the required binaries (u-boot.bin, MLO, ramdisk.gz, uImage)
(Please refer to Flashing a SD Card to learn how to flash a SD card)
Also ensure that the EVM switch settings are set correctly for boot from MMC
Configuring U-Boot Environment Variables[edit]
Once MMC/SD card is ready, insert it into the slot and power on the EVM. The U-Boot prompt should appear now.
A one time setting of the following environment variables are required. On subsequent reboots this step can be skipped
$ setenv bootcmd 'mmc init; fatload mmc 0 0x80000000 uImage; fatload mmc 0 0x81600000 ramdisk.gz; bootm 0x80000000'
$ setenv bootargs root=/dev/ram0 rw mem=100M console=ttyS0,115200n8 initrd=0x81600000,40M ramdisk_size=40960 ip=dhcp
$ saveenv
Now boot Linux. This can be done by issuing the following command on U-Boot
$ boot
Configuring Linux[edit]
Once Linux boots up and prompt becomes available, the following configuration needs to be performed
$ mkdir /dbg
$ mount -t debugfs debugfs /dbg
$ echo 1 > /dbg/pm_debug/sleep_while_idle
$ echo 1 > /dbg/pm_debug/enable_off_mode
The standby sequence can be initiated by doing the following
$ echo mem > /sys/power/state
Now the system would enter into the standby state and you can exit from standby by pressing any key
Measuring Power[edit]
The scheme used to measure the power is provided in Measuring Power on the OMAP35x EVM Wiki.
Results[edit]
RESULTS ON AM37X | ||||||||||
ACTIVE MODE (ARM @ 600M, L3 @ 200M) | STANDBY MODE | |||||||||
Power Rail | Resistance | Voltage | Current | Voltage to OMAP | POWER | Voltage | Current | Voltage to OMAP | POWER | |
(ohms) | (mV) | (mA) | V | (mW) | (mV) | (mA) | V | (mW) | ||
VDDS_IO + VDDS_MEM + Memory Supply (J28) | 0.1 | 1.85 | 18.5 | 1.8 | 33.3 | 0.0914 | 0.914 | 1.8 | 1.6452 * | |
VDD_CORE (J5) | 0.1 | 7.1 | 71 | 1.2 | 85.2 | 0.0095 | 0.095 | 0.64 | 0.0608 | |
VDD_MPU (J6) | 0.05 | 9.8 | 196 | 1.17 | 229.32 | 0.0049 | 0.098 | 0.64 | 0.06272 |
Note: * power consumption on this power rail includes VDDS_IO + PoP package Memory consumption. memory used in this configuration is Hynix (H8KDS0UN0MER series).
Note
The active mode power numbers are measured when no dynamic power management features are enabled. When enabled, dynamic power management features like Cpuidle and Smartreflex can lower the average active power consumption based on the system load and operating conditions.
Tips & Tricks for reducing IO leakage[edit]
- If You are using Hynix PoP memories for CBP package, please review AC20 ball description for the device you are using. some Hynix DDR 4GB pop memories Ball AC20 indicated as NC, but in fact is connected to its VSS balls. Hence if GPMC_A11 is forced to 1 we would have conflict & result in leakage. hence it is recommended to keep this pin low. If this is the Hynix AC20 problem, Force the padconf of GPMC_a11 with a mux configuration to 1 to 6, at that time it will be hiZ.
- Optimizing OMAP35x OFF mode PAD configuration