U-Boot详细分析(3)——系统时钟操作

一、引子

在上一篇文章 U-Boot详细分析(2)——Exynos4412启动过程中可以看到,BL2程序流程图中有SET CLOCK’s这一步骤, 并且在U-Boot源码的 board/samsung/smdkc210/lowlevel_init_SCP.S的文件中也有着对时钟初始化的相关代码(因为BL2中已经初始化,所以不一定会执行)

这篇文章通过U-Boot中对时钟进行初始化的源码和三星提供的4412的datasheet来学习Exynos 4412的时钟体系结构和时钟的相关操作

二、Exynos 4412的时钟体系结构

在Exynos 4412的datasheet里第七章“时钟管理单元(Clock Management Unit)”详细介绍了4412的时钟体系结构

2.1 时钟域

首先可以看一下Exynos 4412 SCP的总框图:

在这里插入图片描述

  • 从总框图可以看到4412内不仅有着多核处理器,而且有着音频视频接口、GPS、内存管理模块等等片上资源
  • 而这些不同的模块工作频率也大多不同,所以一个时钟显然不方便去满足所有的工作频率,所以在4412中采用了多个时钟域

下图是Exynos 4412 SCP的时钟域图:
在这里插入图片描述

  • CPU_BLK:包含Cortex-A9 MPCore处理器,L2 cache控制器和CoreSight;CMU_CPU(即CPU模块内的时钟管理单元)用来给CPU block中部件产生时钟
  • DMC_BLK:包含内存控制器(DMC)、安全子系统(SSS),中断控制器(GIC);CMU_DMC为这些部件产生时钟
  • LEFTBUS_BLK and RIGHTBUS_BLK:全局数据总线,用来在DRAM和子功能模块之间传播数据
  • function blocks:包括G3D, MFC, LCD0, ISP, CAM,
    TV, FSYS, MFC, GPS, MAUDIO, PERIL, 和PERIR;这些功能模块的时钟由CMU_TOP产生

2.2 时钟源

在4412的datasheet中可找到

The top-level clocks in Exynos 4412 SCP are:

  • Clocks from clock pads, namely, XRTCXTI, XXTI, and XUSBXTI.
  • Clocks from CMUs
  • Clocks from USB PHY
  • Clocks from HDMI_PHY
  • Clocks from GPIO pads

从第一个"clocks from clock pads…"可以看到顶层的时钟包括着三个时钟引脚,分别是:

  • XRCXTI:接32.768KHz的晶振,用于RTC
  • XXTI:接12MHz ~ 50MHz的晶振,用于测试,可以不接但要接GND
  • XUSBXTI:需要接24MHz的晶振,向系统提供时钟输入源

打开讯为提供的Exynos 4412的原理图,可以看到XUSBXTI接了24MHz的晶振,XXTI接地:

在这里插入图片描述

2.3 PLL(锁相环)

刚才可以看到XUSBXTI接了24

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值