www.ti.com
Example Low Power Use Cases
27
SPRAC74A–February 2017–Revised March 2017
Submit Documentation Feedback
Copyright © 2017, Texas Instruments Incorporated
AM335x Low Power Design Guide
4.2.1 Device Tree Binary
4.2.1.1 Compiling the Device Tree Binary (DTB)
Using the included device tree source, it is simple to compile the device tree binary in Processor SDK.
Place the device tree source (DTS) file in the same directory as the other DTS files found here:
<sdk path>/board-support/linux-4.4.19*/arch/arm/boot/dts
Update your path as follows to include the arm gcc cross compilers:
export PATH=<sdk path>/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$PAT
In your sdk root directory, invoke make with the following command:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x-evm-powersave.dtb
Where the target is the name of the DTB to be generated from a DTS of the corresponding name.
Once this is complete copy the compiled DTB, which will be in the DTS source folder, to the boot directory
of the EVM.
4.2.1.2 Loading the DTB
U-Boot loads the device tree for the Linux kernel. The following instructions are for the default out-of-box
U-Boot environment that boots off of an SD card through the MMC0 interface. If your configuration differs
from this, further modifications may be necessary. The key is to ensure that U-Boot loads the powersave
device tree instead of another device tree, which may be present in the boot media.
First compile the device tree sources included (see Appendix A), and place the generated DTBs in the
boot directory of the root file system partition on the SD card.
When powering on the evm, enter the U-Boot command line by pressing the space bar.
Use the following command sequence to select the desired device tree:
=> env default -f -a # load default boot environment
=> printenv bootcmd # show the default boot command
boodcmd=run findfdt;...
=> setenv bootcmd '....' # change the default boot command to not run findfdt
=> setenv fdtfile am335x-evm-powersave.dtb # manually set the fdtfile desired
=> saveenv # (Optional) save this as the default boot
environment
=> boot # Boot as usual
4.2.2 Ethernet
For test cases that do not require ethernet, use ifconfig to bring down the ethernet interface. Ethernet is
enabled by default to support network boot. The ethernet is not disabled so that a runtime optimization can
be demonstrated.
root@am335-evm:~# ifconfig eth0 down
4.2.3 Graphics (SGX)
Although SGX is disabled in device tree, its hardware default configuration is to be powered on. To realize
the lowest power state, it must be turned off using devmem. Note that if this is done when SGX is enabled
in device tree, it causes a kernel panic.
root@am335-evm:~# devmem2 0x44E01100 w 0x0 # Poweroff state on next reset
root@am335-evm:~# devmem2 0x44E01104 w 0x1 # Assert reset
root@am335-evm:~# devmem2 0x44E01104 w 0x0 # De-assert reset
4.3 Optimized Idle States
This is the amount of power consumed by the SoC at runtime, running the Linux Kernel, but no active
tasks. Since the MPU is clock gated in this state, power consumption does not increase significantly with
the scaling of CPU frequency.