附录D预先定义的ROM功能细节
OMAP-L132/L138引导加载程序可以使用ais函数调用命令调用多个rom功能。本附录描述了可用的ROM功能和调用它们所需的参数。
预定义的ROM函数清单

索引 功能
0 PLL0配置
1 PLL1配置
2 时钟配置
3 mDDR/DDR2控制器配置
4 EMIFA SDRAM 配置
5 EMIFA ASYNC 配置
6 PLL和时钟配置
7 休眠和使能控制器控制
8 pinmux配置

D.1 PLL0 配置 (索引= 0, 参数数目 = 2)
PLL0配置功能配置PLL0寄存器。此函数接受两个参数,如下所示:
PLL配置寄存器

参数1 CLKMODE PLLM PREDIV POSTDIV
参数2 保留 PLLDIV1 PLLDIV3 PLLDIV7

PLL寄存器描述

字段 描述
参数1 31-24 CLKMODE 0,1 要编程到PLL时钟源的值: 0晶体 1振荡器
23-16 PLLM 要编程到PLL倍频寄存器的值
15-8 PLLDIV 要编程到PLL预分频寄存器的值,用于在PLL倍频之前分频输入时钟。
7-0 POSTDIV 要编程到PLL后分频寄存器的值,用于分频PLL倍频之后的输出时钟。
4 31-24 保留 0 保留
5 23-0 PLLDIV1;PLLDIV3;PLLDIV7 要编程到PLLDIV1、PLLDIV3和PLLDIV7寄存器的值, 用于生成SYSCLK1、SYSCLK2、SYSCLK4、SYSCLK6、SYSCLK3和SYSCLK7。 SYSCLK6=SYSCLK1,SYSCLK2=SYSCLK1/2,SYSCLK4=SYSCLK/4

D.2 PLL1 配置 (索引= 1, 参数数目 = 2)
PLL1配置功能配置PLL1寄存器。此函数接受两个参数,如下所示:
PLL1配置寄存器

参数1 PLLM POSTDIV PLLDIV1 PLLDIV2
参数2 保留 保留 保留 PLLDIV3

PLL配置寄存器描述

字段 描述
参数1 31-24 PLLM 要编程到PLL倍频寄存器的值
23-16 POSTDIV 要编程到PLL后分频寄存器的值,用于分频PLL倍频之后的输出时钟
15-8 PLLDIV1 要编程到PLLDIV1、PLLDIV2和PLLDIV3寄存器的值,用于生成SYSCLK1、SYSCLK2、SYSCLK3
7-0 PLLDIV2 要编程到PLLDIV1、PLLDIV2和PLLDIV3寄存器的值,用于生成SYSCLK1、SYSCLK2、SYSCLK3
参数2 31-8 保留 0 保留
7-0 PLLDIV3 要编程到PLLDIV1、PLLDIV2和PLLDIV3寄存器的值,用于生成SYSCLK1、SYSCLK2、SYSCLK3

D.3 时钟配置 (索引= 2, 参数数目 = 1)
时钟配置功能配置引导外围设备的时钟。它编程SPI/I2C主引导模式、UART引导模式或MMC/SD引导模式下的外围时钟。在所有其他启动模式,此功能无效。此函数只接受一个参数,但其内容参数因启动模式而异。
D.3.1 SPI Master Register
SPI Master Register

参数1 保留 预分频

SPI Master Register 字段描述

字段 描述
31-8 保留 0 保留
7-0 预分频 要编程到SPIFMT的预分频字段的值

D.3.2 I2C Master Register
I2C Master Register

参数1 保留 IPSC ICCL ICCH

I2C Master Register 字段描述

字段 描述
31-24 保留 0 保留
23-16 IPSC 要编程到I2C ICPSC寄存器字段的值
15-8 ICCL 0 要编程到I2C ICCLKL寄存器字段的值
7-0 ICCH 要编程到I2C ICCLKH寄存器字段的值

D.3.3 UART Slave Register
UART Slave Register

参数1 保留 OSR DLH DLL

UART Slave Register 字段描述

字段 描述
31-24 保留 0 保留
23-16 OSR 要编程到UART MDR 寄存器OSR字段的值
15-8 DLH 要编程到UART DLH 寄存器的值
7-0 DLL 要编程到UART DLL寄存器的值

D.3.4 MMC/SD Register
MMC/SD Register

参数1 保留 DIV4 CLKRT

MMC/SD Register 字段描述

字段 描述
31-16 保留 0 保留
15-8 DIV4 要编程到MMCCLK寄存器DIV4字段的值
7-0 CLKRT 要编程到MMCCLK寄存器CLKRT字段的值

D.4 mDDR/DDR2 控制器配置 (索引 = 3, 参数数目= 8)
mDDR/DDR2控制器配置函数配置负责DDR定时和配置。因为MDDR/DDR2控制器设置要求PLL1被配置,在初始化MDDR/DDR2控制器之前调用pll1配置函数。 因此,前两个参数与pll1配置函数所需的参数相同。 接下来的五个参数是mDDR/DDR2控制器寄存器所需的定时参数。他们直接写入具有相同名称的mDDR/DDR2控制器寄存器。最后一个参数包含三个字段:PASR、ROWSIZE和CLK2XSRC。前两个字段被拷贝到与SDCR2有相同名字的字段里面当且仅当SDCR的MSDRAMEN(ARG4的第25位)=1。换句话说,这些字段仅在使用mDDR时适用,而不是DDR2。第三个字段应用于所有情况,并允许为mDDR/DDR2控制器选择时钟源。0值使用正常的时钟源,而1值选择一个非分频的时钟,通常要快两倍。( 更准确地说,它忽略了PLL1后分频。)

参数1 PLL1配置参数1
参数2 PLL1配置参数2
参数3 DRPYC1R
参数4 SDCR
参数5 SDTIMR1
参数6 SDTIMR2
参数7 SDRCR
参数8 保留 PASR 保留 ROWSIZE CLK2XSRC

mDDR/DDR2控制器配置函数将mDDR/DDR2外围设备从其默认的复位状态唤醒并根据需要正确进行寄存器配置。
D.5 EMIFA SDRAM 配置 (Index = 4, Argument Count = 5)
EMIFA SDRAM配置功能配置负责EMIFA寄存器SDRAM的定时和配置。

参数1 SDCR
参数2 SDTIMR
参数3 SDSRETR
参数4 SDRCR
参数5 DIV4p5_CLK_EN

前四个函数参数直接写入具有相同名称的EMIFA寄存器。div4p5_clk_en是一个布尔值,用于启用PLL0乘数因子输出的4.5除法器作为EMIFA外围设备的输入时钟。 在对EMIFA寄存器进行编程之前,此功能对16位或32位SDRAM访问(基于SDCR)寄存器的值应用必要的pinmux 并从其默认重置状态来唤醒EMIFA的外围设备。
D.6 EMIFA Async Configuration (Index = 5, Argument Count = 5)
EMIFA CE空间配置功能配置EMIFA CEXCFG寄存器。此函数需要五个参数,并将它们写入具有相同名称的EMIFA寄存器中。

参数1 CE2CEG
参数2 CE3CEG
参数3 CE4CEG
参数4 CE5CEG
参数5 NANDFCR

D.7 PLL and Clock Configuration (Index = 6, Argument Count = 3)
PLL和时钟配置功能结合了PLL配置和时钟配置函数转换为单个函数调用。此函数接受三个参数。前两个参数匹配 PLL配置函数的参数(D.1节)第三个参数匹配 时钟配置函数的参数(D.3节)。

参数1 PLL0 配置参数1
参数2 PLL0 配置参数2
参数3 时钟配置参数1

如果设备从时钟配置说明中列出的启动模式启动,则需要调用此函数,而不是分别调用PLL0配置和时钟配置函数。否则可能导致引导失败,因为外围设备功能与PLL0设置相关,首先设置PLL0可能导致外围设备以非预期的频率运行。
D.8 Power and Sleep Configuration (PSC) (Index = 7, Argument Count = 1)
电源和睡眠配置(PSC)功能可多次用于设置电源域对于系统的两个PSC的各个LPSC模块,0x1-0x3是唯一有效的值(所有其他值都是保留)。
| PSCNUM | MODULE |PD| STATE |

AIS文件分析-(using the OMAP-138 Bootloader)相关推荐

  1. Omapl138中AIS文件分析(参照Using the OMAP-L138 Bootloader)(转)

    Omapl138中AIS文件分析(参照Using the OMAP-L138 Bootloader) 转载链接:https://blog.csdn.net/qq_40788950/article/de ...

  2. 【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 使用 addr2line 命令行工具查找动态库中的报错代码位置 )

    文章目录 一.从 Tombstone 报错日志中查找报错动态库 二.addr2line 命令行工具使用 64 位动态库使用的 aarch64-linux-android-addr2line.exe 工 ...

  3. TMS320F28377D.cmd文件分析

    TMS320F28377D.cmd文件分析 存储器分配 MEMORY {PAGE 0 : /* 程序存储区 *//* BEGIN用于"引导至FLASH" bootloader模式 ...

  4. Tombstone 文件分析

    Tombstone 文件分析 /* * 下面信息是dropbox负责添加的 **/ isPrevious: true Build: Rock/odin/odin:7.1.1/NMF26F/150086 ...

  5. mytag.class.php,dedetag.class.php文件分析

    dedetag.class.php文件分析: ## dede 静态模板类 模板解析过程分析 解析模板的类文件 include/dedetag.class.php 这个文件是dedecms V5.3及之 ...

  6. win32下PE文件分析之节表

    接上一篇的win32下PE文件分析之NT头 (一).FileBuffer与ImageBuffer (1).FileBuffer是将文件原原本本的读入申请的内存区域中,那部分区域就是FileBuffer ...

  7. U-Boot的LDS文件分析

    U-Boot.lds文件分析: OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32- ...

  8. Android JNI入门第四篇——jni头文件分析

    转载请标明出处: http://blog.csdn.net/michael1112/article/details/56666407 江东橘子的博客 一. 首先写了java文件: public cla ...

  9. STM32 KEIL里的MAP文件分析

    一.要让Keil生成map文件,要设置: 再重新编译,没有错误后,就会生成map文件了. 二.map文件中相关概念: 段(section) :描述映像文件的代码和数据块. RO:Read-Only的缩 ...

最新文章

  1. Ubuntu使用wget下载zabbix的扩展源
  2. 带父节点的平衡二叉树_学习数据结构--第四章:树与二叉树(平衡二叉树)
  3. 为什么要学习响应式设计
  4. Keil精确测量代码运行时间
  5. WebConfig的经典使用,大家一起交流一下吧!!!
  6. 【机器视觉】 dev_get_exception_data算子
  7. oracle的空闲等待事件,Oracle 常见的33个等待事件详解
  8. Spring Boot(19)---开发Web应用之Thymeleaf篇
  9. mysql数据库的函数_详解数据库_MySQL: mysql函数
  10. 用VC++建立Service服务应用程序
  11. 语音识别asr是什么
  12. OPENGL学习笔记整理(三):缓冲区对象
  13. 保存 Hexo 博客源码到 GitHub
  14. 计算机网络信息安全等级保护(等保)
  15. 数组常用方法 (es4,es5,es6)
  16. voldemort分布式数据库Rebalance的代码总结
  17. PDF怎么删除不要的页面?免费删除PDF页面教程来了
  18. c++实现高速缓存Cache
  19. 本地JAVA开发页面使用AzureAD(AAD)验证登录
  20. 谁动了我的奶酪之奶酪墙上的话。

热门文章

  1. [Jule CTF 2022] 部分WP
  2. 路由器不显示连接该WiFi的设备
  3. 大学计算机基础教程excel实验报告,大学计算机基础教程excel实验报告.doc
  4. 2020年高教社杯全国大学生数学建模竞赛 C题思路
  5. oa系统都要服务器,oa系统需要购置云服务器吗
  6. 51 《格鲁夫给经理人的第一课》 -豆瓣评分8.8
  7. 【读书】格鲁夫给经理人的第一课-工作成熟度
  8. 华为荣耀平板5怎么样_荣耀平板5和华为m5青春版哪个好
  9. openlayers官方教程(三)Basics——Zooming to your location
  10. 如何查找域名对应IP地址?