Am335x u-boot 启动过程中的系统频率配置
Am335x的时钟结构分为:ADPLLS和ADPLLLJ
1、ADPLLS用来配置Core_CLK,Dispaly_clk,ARM系统CLK(mpu_clk),DDR PLLs_clk
2、ADPLLLJ用来为am335x的外设配置时钟
Core_clk的配置:

通过寄存器CM_CLKSEL_DPLL_CORE配置参数M,N来设置CLKDCOLDO的输出,在通过配置寄存器CM_DIV_M4_DPLL_CORE,CM_DIV_M5_DPLL_CORE,CM_DIV_M6_DPLL_CORE来配置CORE_CLKOUTM4,CORE_CLKOUTM5,CORE_CLKOUTM6的输出。
例如:master_osc的输出为24MhZ,要得到CLKDCOLDO=10MHZ,由下表知:CLKDCOLDO=2*[M/(N+1)]*CLKINP(master_osc), 得出M=50,N=23

根据图8-10可的出CORE_CLKOUTM4=100/M4,
CORE_CLKOUTM5=100/M5
CORE_CLKOUTM6=100/M6
进而可相继得出图8-10右边的各个时钟。
在u-boot中的代码体现为:
在文件../arch/arm/cpu/armv7/am335x.c中会执行prcm_init函数
--->prcm_init
----->setup_dplls
---->get_dpll_core_params
---->../arch/arm/cpu/armv7/am335x/clock_am33xx.c中定义dpll的参数并将其初始化也就是
---->const struct dpll_params dpll_core = {50, OSC-1, -1, -1, 1, 1, 1};//{m,n,m2,m3,m4,m5,m6}
---->do_setup_dpll
---->寄存器CM_CLKSEL_DPLL_CORE设置m n值
---->给寄存器CM_DIV_M2_DPLL_CORE CM_DIV_M3_DPLL_CORE CM_DIV_M4_DPLL_CORE CM_DIV_M5_DPLL_CORE CM_DIV_M6_DPLL_CORE设置m2,m3,m4,m5,m6的值。
通过prmc_init函数基本可以将am335x的时钟给设置完毕。
prmc_init中还有一个比较重要的函数enable_basic_clocks:这个函数从字面意思理解为使能基本的时钟,其实是相当于使能am335x各部分功能的模块还能。比如要用到MMC0,那么mmc0clkctrl久必须要加进去要不MMC0是不能被访问的。
之前调试LCD时就犯了这个错误,没有将CM_PER_LCDC_CLKCTRL此寄存器的MODULEMODE位设置为2,以致于访问LCD控制器时出错。
Am335x u-boot 启动过程中的系统频率配置的更多相关文章
- Linux系统在启动过程中mbr主引导程序被破坏的解决方案
首先,mbr主引导程序被破坏是指系统在启动过程中,磁头找不到/boot分区(windows的启动分区在c盘). 1)下面我们模拟主引导分区被破坏的情况:(在启动分区划分446M的存储大小) 2)重启( ...
- 嵌入式Linux启动过程中的问题积累
嵌入式Linux启动过程中的问题积累 Dongas 07-12-19 1.Bad Magic Number ## Booting image at 33000000 ... Bad Magic Num ...
- Spring Boot启动过程及回调接口汇总
Spring Boot启动过程及回调接口汇总 链接: https://www.itcodemonkey.com/article/1431.html 来自:chanjarster (Daniel Qia ...
- 转:Tomcat启动过程中找不到JAVA_HOME JRE_HOME的解决方法
转自:http://blog.sina.com.cn/s/blog_61c006ea0100l1u6.html 原文: 在XP上明明已经安装了JDK1.5并设置好了JAVA_HOME,可偏偏Tomca ...
- Spring Boot启动过程(二)
书接上篇 该说refreshContext(context)了,首先是判断context是否是AbstractApplicationContext派生类的实例,之后调用了强转为AbstractAppl ...
- Spring Boot启动过程(四):Spring Boot内嵌Tomcat启动
之前在Spring Boot启动过程(二)提到过createEmbeddedServletContainer创建了内嵌的Servlet容器,我用的是默认的Tomcat. private void cr ...
- Spring Boot启动过程(七):Connector初始化
Connector实例的创建已经在Spring Boot启动过程(四):Spring Boot内嵌Tomcat启动中提到了: Connector是LifecycleMBeanBase的子类,先是设置L ...
- Spring Boot 启动过程及 自定义 Listener等组件
一.启动过程 二.自定义组件 package com.example.jdbc.listener; import org.springframework.context.ApplicationCont ...
- Tomcat启动过程中找不到JAVA_HOME JRE_HOME的解决方法
转自:http://blog.sina.com.cn/s/blog_61c006ea0100l1u6.html 原文: 在XP上明明已经安装了JDK1.5并设置好了JAVA_HOME,可偏偏Tomca ...
随机推荐
- Eclipse 断点调试
Eclipse 开发专用的Debug模式,用于发现问题解决问题. 1. 设置断点,程序会在改位置停止. 2. 按F5(step into), F6(step over)执行.F5指跳入,逐语句.会进入 ...
- 第七周 ch04 课下测试补交
2017-2018-1 20155335 <信息安全系统设计基础>第7周 课下测试博客 本人不慎忘记去交dao'zhi 测试题目: SEQ+对SEQ的改变有() A . PC的计算挪到取指 ...
- 当月第一天、最后一天、下月第一天,时间date
时间记录,不是时间戳 $thismonth = date('m'); $thisyear = date('Y'); $startDay = $thisyear . '-' . $thismonth . ...
- 2017ACM暑期多校联合训练 - Team 3 1005 RXD and dividing
题目链接 Problem Description RXD has a tree T, with the size of n. Each edge has a cost. Define f(S) as ...
- 概述sysfs文件系统【转】
转自:http://blog.csdn.net/npy_lp/article/details/78933292 内核源码:linux-2.6.38.8.tar.bz2 目标平台:ARM体系结构 sys ...
- Tslib触摸屏官网【转】
转自:https://github.com/kergoth/tslib C library for filtering touchscreen events tslib consists of the ...
- eWebEditor复制粘贴图片时过滤域名
1.找到form.js 路径:plugins/frame/scripts/form.js 这个方法: 2.替换这个方法 /** * 处理参数 */ Form.prototype.processReqP ...
- openjudge-NOI 2.6-2985 数字组合
题目链接:http://noi.openjudge.cn/ch0206/2985/ 题解: 跟背包问题有点相似,暂且算背包型DP吧,虽然是一道递推题…… fj表示和为j时的结果,得: 即为j减去每一个 ...
- SpringMVC_HelloWorld_03
通过注解的方式实现一个简单的HelloWorld. 源码 一.新建项目 同SpringMVC_HelloWorld_01 不同的是springmvc配置文件的命名和路径,此处为src/springmv ...
- javaScript-继承2种方式
1.组合继承 组合继承带来的问题很明细就是父类的构造函数会调用两次,如: function Person(name, age, sex) { this.name = name; this.age = ...