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 ...
随机推荐
- 属性动画 LayoutTransition AnimatorInflater Keyframe 新特性
LayoutTransition设置动画 使用LayoutTransition可为布局的容器设置动画,当容器中的视图层次发生变化时产生相应的过渡的动画效果 过渡的类型一共有四种: LayoutTran ...
- SpringMVC03controller中定义多个方法
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- 关于JavaScript对象的键和值
一个JavaScript对象由键和值组成. 当一个给定键的值被设置为一个字符串.布尔值.数字.数组或对象时,我们把这个键称为属性. 当把键设置为函数时,我们把它叫做方法.
- java IO 实例分析
初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见 ...
- [BZOJ]3737 [Pa2013]Euler
从这个FB开始写博客啦. 也不知道会坚持多久…… = =似乎要加一句转载请注明出处 http://www.cnblogs.com/DancingOnTheTree/p/4026076.html htt ...
- Java中的List(转)
List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以Li ...
- 不用修改nginx的高并发合并回源架构
nginx的连接都是一对一的,想改成一对多,比较麻烦,所以曾经看完了Nginx代码想改成一对多,我还是没改成,后来改变了一下思路想到一个更简单的方案,而且不失并发性能,还容易控制,下面先给出下面的图: ...
- onchar
void CMfcView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)//Windows响应函数 { // TODO: Add your messag ...
- 转载:/etc/resolv.conf的作用
转载网址:http://jiao-zhong.blog.sohu.com/97976004.html 该文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数.resolv ...
- mysql时间int日期转换
select from_unixtime(1350437720);select unix_timestamp(now());插入用 unix_timestamp(date)查询用from_unixti ...