cavium octeon 处理器启动总线Bootbus 简介
cavium octeon 处理器启动总线Bootbus 简介: 韩大卫@吉林师范大学
Boot-bus(启动总线)是cavium octeon处理器的一种用于启动系统的硬件. CPU通过boot bus和非易失性设备相连, 比如NOR/NAND flash, CF卡, ROM等, 这些设备可以作为CPU的初始化引导地址. Boot bus总线协议是灵活的, 所以可以接口很多不同类型的设备.
cavium octeon CN63XX处理器有10个核心(core), 一般使用core 0 来启动linux, 用来管理系统, 实现控制平面. core1-9作为数据平面的处理, 没有操作系统, 循环执行报文处理的逻辑程序. Cavium octeon处理器启动操作系统时依赖的机制就是Bootbus.
以Octeon CN63XX 处理器: Big-endian Bootbus 包括:
8位片选32位地址/数据线可编程的8/16位数据宽度: 8位情况下, Boot_AD<31:24> 为数据总线16位情况下, Boot_AD<31:24> 为数据总线的最高位字节, Boot_AD<23:16> 为最低位字节.
DMA: 两个多字节DMA(MWDMA) DMARQ/DMACK 信号.
Bootbus总线通过8个片选信号配置8个区域. 每个区域/片选 有不同的总线配置和时钟参数.
当CN63XX 自启动时, bootbus 必须在片选0上提供初始化指令来引导芯片.
/*注: 关于bootbus片选信号: 通过配置bootbus寄存器, 使能某一个区域的片选后, 便可将这个区域内的设备的地址映射到内存里, 通过访问内存的方式实现IO操作, 同时不影响bootbus上其他区域内的设备的工作, 此”片选” 信号仅仅是为了使能这个区域, 操作这个区域内的设备. 比如bootbus区域0上挂载了Nor Flash, 区域2上挂载了FPGA, bootbus默认使能区域0, 从Nor FLash上读取uboot和linux内核. 那么当使能bootbus 区域2后, 便可以将bootbus 区域2的地址映射到内存中(根据配置的基地址和长度), 那么在用户空间操作此内存时, 即实现了操作FPGA的寄存器. 但是同时, Nor FLash的工作是正常的, Nor FLash在用户空间的地址是不被自动覆盖的. */
Boot bus硬件包含了2 个本地的, 128字节的cache区域. 当没有设备连接到bootbus时, 这些cache区域必须被用来服务于core-boot和debug-exception的向量.
本地cache也可加速Bootbus 常用访问区域的读操作.Boot bus 占用了CN63xx 4G的物理地址空间, 从0x1 0000 0000 0000 到 0x1 0000 ffff ffff.
NOTE:CN63xx内核(core) 将它们从0x0 0000 1000 0000到0x0 0000 1fff ffff的物理地址转化为CN63xx的Boot bus的物理地址:0x1 0000 1000 0000 到 0x1 0000 1fff ffff.
bootbus物理地址有两个异常向量:异常向量地址1 : 0x1 0000 1fc0 0000 在所有的复位,软复位和不可屏蔽的中断(NMI)异常后, 一个核心向量到这个物理地址.
地址2: 0x1 0000 1fc0 0480如果EJTAG TAP 寄存器域ECR[ProbEn] 没置1, 在所有调试异常后,一个核心向量到这个物理地址.
在一定条件下, 其他核异常也可被向量到boot bus地址. 其他异常向量可通过核的配置而被避免, 但是上面异常的向量地址不能通过配置核而避免.boot bus区域的复位配置必须用于当CN63xx 的自启动时作为核心复位向量在此被使用. 当复位后, 总线区域0 是唯一可用的区域, 并且有最大长度; 映射CN63xx 物理地址0x1 0000 1fc0 0000 到引导地址 0x0 的在片选0 连接的设备上; 这表示当CN63xx自启动时, 连接到片选0 信号线上的设备必须含有CN63xx的引导代码, 从引导地址0开始. 当CN63xx 自启动时, 核心0 立即执行这些代码.
关于具体说明请参考cavinum network octeon CN63xx/66xx.
cavium octeon 处理器启动总线Bootbus 简介的更多相关文章
- 老李推荐:第5章1节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 官方简介
老李推荐:第5章1节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 官方简介 在MonkeyRunner的框架中,Monkey是作为一个服务来接受来自Monkey ...
- FC总线技术简介
FC是由美国标准化委员会(ANSI)的X3T11小组于1988年提出的高速串行传输总线,解决了并行总线SCSI遇到的技术瓶颈,并在同一大的协议平台框架下可以映射更多FC-4上层协议.FC具备通道和网络 ...
- ARM多核处理器启动过程分析【转】
转自:http://blog.csdn.net/qianlong4526888/article/details/27695173 版权声明:本文为博主原创文章,未经博主允许不得转载. 说明: 该流程图 ...
- [国嵌笔记][029][ARM处理器启动流程分析v2]
2440启动流程 启动方式:nor flash启动.nand flash启动 地址布局: 选择nor flash启动时,SROM(nor flash)地址为0x00000000 选择nand flas ...
- arm处理器启动流程分析
2440: 启动方式:nor , nand 地址布局: 启动流程: 开发板在上电后,会从0x0地址处运行. 如果从nor flash启动,则代码要放在nor 的0地址处: 如果从nand flash启 ...
- ARM多核处理器启动过程分析
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qianlong4526888/article/details/27695173 说明: 该流程图依照 ...
- Linux内核启动流程(简介)
1. vmlinux.lds 首先分析 Linux 内核的连接脚本文件 arch/arm/kernel/vmlinux.lds,通过链接脚本可以找到 Linux 内核的第一行程序是从哪里执行的: 第 ...
- ARM处理器启动流程
根据<<芯片手册>>查看相关内容: 1.启动方式 2.地址布局 3.启动流程
- CentOS7开机启动管理systemd简介及使用
systemd提供更优秀的框架以表示系统服务间的依赖关系实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果systemd的目标是:尽可能启动更少进程:尽可能将更多进程并行启动.sy ...
随机推荐
- JAVA彩色图片变灰处理
File file = new File("F:/firefox.png"); File destFile = new File("F:/pic/" + Sys ...
- 富文本编辑器CKEDITOR的使用配置(问题注解)
CKEDITOR是一款非常轻便的富文本编辑器,如上图:参考网上的使用方法,我以.net为例,在aspx页面使用, 准备工作:首先要下载控件包,将解压后的整个文件夹添加到项目根目录. 第一步:引用js, ...
- JS 实现 Tab标签切换功能
Tab标签切换 效果图: HTML部分: <div class="wrap"> <ul id="tag"> < ...
- [译]一个灵活的 Trello 敏捷工作流
[译]一个灵活的 Trello 敏捷工作流 翻译自 An Agile Trello Workflow That Keeps Tasks Flexible Getting things done 可不只 ...
- “The SQL Server license agreenment cannot be located for the selected edition.”MSSQL安装问题
今天老邹又来吐槽了.今天不和IE7较劲了.说点别的吧. 我呢什么软件都喜欢装最新版的,这部刚出来windows 8.1就赶紧装上了,随后就用上了vs2013.前天看到新闻说微软已经发布了sql ser ...
- VS2010发布网站的基本步骤
1.首先建一个空文件夹,用来存放发布的程序:例如:WebTest 2.然后打开IIS--->右击--->添加网站,如下图所示: 图 1-1 ...
- Android触摸事件的分发机制
---恢复内容开始--- 一.MotionEvent : ACTION_DOWN(下按事件).ACTION_UP(松开事件).ACTION_MOVE(移动事件) 二.三大函数 1.dispatchTo ...
- smarty 练习: 分页查询
对查出的数据进行分页,并添加查询 在main.php和main.html两个页面操作: 后台:main.php <?php include("../init.inc.php" ...
- RBAC角色权限设计思路
1 设计思路 为了设计一套具有较强可扩展性的用户认证管理,需要建立用户.角色和权限等数据库表,并且建立之间的关系,具体实现如下. 1.1 用户 用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名.密 ...
- linux中top命令详解
linux的top命令里的cpu信息是什么意思呢? Cpu(s): 62.1% us, 15.9% sy,0.1% ni, 19.4% id,2.0% wa,0.1% hi,0.4% si Mem: ...