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 简介的更多相关文章

  1. 老李推荐:第5章1节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 官方简介

    老李推荐:第5章1节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 官方简介   在MonkeyRunner的框架中,Monkey是作为一个服务来接受来自Monkey ...

  2. FC总线技术简介

    FC是由美国标准化委员会(ANSI)的X3T11小组于1988年提出的高速串行传输总线,解决了并行总线SCSI遇到的技术瓶颈,并在同一大的协议平台框架下可以映射更多FC-4上层协议.FC具备通道和网络 ...

  3. ARM多核处理器启动过程分析【转】

    转自:http://blog.csdn.net/qianlong4526888/article/details/27695173 版权声明:本文为博主原创文章,未经博主允许不得转载. 说明: 该流程图 ...

  4. [国嵌笔记][029][ARM处理器启动流程分析v2]

    2440启动流程 启动方式:nor flash启动.nand flash启动 地址布局: 选择nor flash启动时,SROM(nor flash)地址为0x00000000 选择nand flas ...

  5. arm处理器启动流程分析

    2440: 启动方式:nor , nand 地址布局: 启动流程: 开发板在上电后,会从0x0地址处运行. 如果从nor flash启动,则代码要放在nor 的0地址处: 如果从nand flash启 ...

  6. ARM多核处理器启动过程分析

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qianlong4526888/article/details/27695173 说明: 该流程图依照 ...

  7. Linux内核启动流程(简介)

    1. vmlinux.lds 首先分析 Linux 内核的连接脚本文件 arch/arm/kernel/vmlinux.lds,通过链接脚本可以找到 Linux 内核的第一行程序是从哪里执行的: 第 ...

  8. ARM处理器启动流程

    根据<<芯片手册>>查看相关内容: 1.启动方式 2.地址布局 3.启动流程

  9. CentOS7开机启动管理systemd简介及使用

    systemd提供更优秀的框架以表示系统服务间的依赖关系实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果systemd的目标是:尽可能启动更少进程:尽可能将更多进程并行启动.sy ...

随机推荐

  1. mssql 2008 失败 需要重新启动计算机 的解决办法

    大致出错信息如下:RebootRequiredCheck 检查是否需要挂起计算机重新启动.挂起重新启动会导致安装程序失败. 失败 需要重新启动计算机.必须重新启动计算机才能安装 SQL Server. ...

  2. Property type 'id<tabBarDelegate>' is incompatible with type 'id<UITabBarDelegate> _Nullable' inherited from 'UITabBar'

    iOS报错:Property type 'id' is incompatible with type 'id _Nullable' inherited from 'UITabBar' 如图: 可能原因 ...

  3. Caused by: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "mil_id")

    今天在使用mybatis处理数据库的时候,突然抛出了上述异常,让我感到很惊讶,因为在处理save的时候,在Mybatis的配置文件中,我根本就没有使用到ognl表达式,系统怎么会抛出上述异常.而且之前 ...

  4. zxing生成和解析二维码

    今天忙了一天的二维码,用了QRcode和ZXing两个开源包.结果发现 ZXing比QRcode更好用一些,它直接可以定义二维码生成图案的大小,而QRcode生成的二维码是根据二维码包含的内容多少来定 ...

  5. github 提交时候提示 org.eclipse.jgit.errors.ObjectWritingException: Unable to create new object: /usr/local/apache243/ht

    只需要执行 chmod -R 777 ./*  把 .git文件权限设置为 777便可以实现.

  6. bat命令中的变量声明及使用

    在bat文件中声明变量的方式如下: set xxx_variant_name=yyyyyyyyyyyy move D:\abc\efg\test.txt %xxx_variant_name%\test ...

  7. delphi2010 开发及调试WebService 实例

    使用delphi已经10多年了,一直搞桌面程序开发,对Webservice一直很陌生,近来因工作需要,学习delphi开发WebService,担心遗忘,作此笔记. 特别感谢 中塑在线技术总监 大犇 ...

  8. Linux iptables 应用控制访问SSH服务

    Title:Linux iptables 应用控制访问SSH服务  --2012-02-23 17:51 今天用到了以前从来没有用到过的,iptables控制访问,只允许外部访问SSH服务(22号端口 ...

  9. nginx对比haproxy 的反向代理

    -bash-4.1# ip add | grep inet inet 172.17.0.7/16 scope global eth0 inet6 fe80::42:acff:fe11:7/64 sco ...

  10. Sum

    Problem Description XXX is puzzled with the question below: 1, 2, 3, ..., n (1<=n<=400000) are ...