uboot版本:2013.01.01
linux kernel版本:linux3.12.10
gcc编译器版本:arm-linux-gnueabihf4.7
uboot修改如下文件:
board/ti/am335x/pmic.h添加定义
#define PMIC_OP_REG_SEL_1_3_5 (0x3F) //1.35v
board/ti/am335x/board.c文件am33xx_spl_board_init函数中替换
voltage_updatePMI(C_OP_REG_SEL_1_2_6)为 voltage_update(MPU,PMIC_OP_REG_SEL_1_3_5 )
替换else分支下的mpu_pll_config(MPUPLL_M_720);为mpu_pll_config(1000);
编译更换uboot,此时进入uboot命令行模式
输入 md.w 0x44e0042c查看配置信息
至此uboot部分配置完成
kernel部分修改如下:
通过查看drivers/power/opp/omap-opp-control.c源码找到of_opp_check_availability函数,分析可知是否匹配使能相应的mpu主频,是由efuse_val和bit控制的,所以打开am33xx.dtsi文件修改mpu_opp_modifier节点修改节点opp-modifier中1000000kHz中的mask位置设置为0即可
编译后,将对应的dtb文件下载到指定位置,启动系统。
查看是否设置成功。命令行输入如下命令
- dmesg|grep mpu查看电压是否设置为1.35v
- cd /sys/kernel/debug/clock/virt_24m_ck/sys_clkin_ck/dpll_mpu_ck目录下
- 查看clk_rate 显示为1000000000
至此配置成功