bcm56540芯片手册学习.docx
- 文档编号:25829363
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:11
- 大小:677.63KB
bcm56540芯片手册学习.docx
《bcm56540芯片手册学习.docx》由会员分享,可在线阅读,更多相关《bcm56540芯片手册学习.docx(11页珍藏版)》请在冰豆网上搜索。
bcm56540芯片手册学习
56540PCIeDMA学习总结
本文是基于56540-PR100-RDSProgrammer’sRegisterReferenceGuide的前六章总结提取的,并部分加注了个人的理解。
一、端口
1、物理端口
56440系列芯片共86个port,其中80个physicalserdesports,一个CMICminterface以及5个AXPlogicport。
2、逻辑端口
虽然有86个物理端口,但是最多只有63个逻辑端口。
CPU必须被映射到逻辑端口0,AXPports81/82/83/84/85必须被映射到逻辑端口的61、59、58、60、62,剩余的1-57个逻辑端口号可以被80个物理端口随便映射。
Thedeviceusesthelogicalportnumberforallswitchingdecisionswithintheingressandegresspipeline,anddoesnotusethephysicalportnumber.
3、MMU端口
虽然有86个物理端口,但是最多只有63个MMU端口,CPU必须被映射到MMU端口59,,AXPports81/82/83/84/85必须被映射到MMU端口的58、62、56、61、57。
剩余的MMU端口0-55以及60可以被80个物理端口随便映射。
二、PCI配置寄存器
从结构上看,PCIe是在CPU和原来的系统总线之间插入一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的发送。
PCI总线与CPU无关,与时钟频率也无关,因此它可以独立应用于各种平台,支持多处理器和并发工作。
三、S-ChannelMessaging
S-Channel用来访问所有的间接映射的寄存器、表以及packetmemory.CPU需要映射一块内存映射的寄存器并且需要遵循S-Channelmessaging协议
CPU通过PCIE总线发送消息,同时,消息会带有一个执行读或者写的操作命令,操作命令后是地址或者数据信息。
对应没有消息的发送,PCI控制器会将其从PCI内存空间转移到设备上。
操作结束后,PCIE控制器会跟踪消息发送或者接受的状态信息,每一个被CPU发送的消息都会从PCI控制器得到对应的响应。
1、messagingregisters
CPU发送S-channel消息时,需要按照一定的格式构造数据,然后复制到S-Channeldataregister中,然后使能CMIC_SCHAN_CTRL的MSG_STARTbit。
如figure1所示,S-Channelmessage的bufferregigon最大是22个32bits的字。
且要求消息要连续的写入到bufferregigon中。
通过S-Channel访问的寄存器和表有:
Ingresspipelineregisters
Egresspipelineregisters
XTPORTPortregister
CLPORTPortregister
MMUregister
MACregisters
Statisticcounters
Switchingmemories
可配置现实S-Channel消息操作完成后产生MSG_DONE中断,Interrupt-drivenI/Oisperformedbyinitiatingatransaction。
对于中断驱动I/O,需要使能SCH_DONEbitinCMIC_IRQ_MASK.
2、大小端选择
说的是CPU与交换芯片传递数据时的大小端问题。
BCM56540中的寄存器是小端,在BCM56540与CPU之间传输的Dwords的大小端格式是通过CMIC_ENDIANESS_SELregister.
CMIC_ENDIANESS_SELregister的Bits[3:
0]所代表的意义如下图所示:
3、S-BUSmessageformat
Command的格式:
Address的格式
这里,regsel表示寄存器的地址偏移。
4、寄存器的读写过程
以写寄存器为例,接受写寄存器的步骤
另外,memery的读写过程详见56540-PR100-RDSProgrammer’sRegisterReferenceGuide,除此之外,bcm56540芯片还提供了hash方式的读写命令。
5、S-BUSmessage的响应
对于寄存器的读操作,响应为2-3个dwords,且CMIC将响应写入CMIC_SCHAN_MESSAGE(0/1/2)中,CMIC_SCHAN_MESSAGE0中是commanddwords,CMIC_SCHAN_MESSAGE(1/2)是读到的数据。
对于memroy的读操作,响应为2-21个dwords。
对于寄存器或者是memory的写操作,响应都是一个dwords。
四、DMA、Interrupts,andEndianess
主要介绍CPU与设备之间如何通过PCI总线传输数据。
1、PCIe中断
当接收到中断信息时,CPU会读CMIC_CMC0_IRQ_STAT[4:
0],且与CMIC_CMC0_PCIE_IR_MASK[4:
0]做与运算。
与PCIE相关的中断源以及中断处理描述如下图所示:
关于中断相关的寄存器的描述详见56540-PR100-RDSProgrammer’sRegisterReferenceGuide。
2、DMA
56540支持三种类型的DMA,分别是PacketDMA、CounterDMA、以及TableDMA.TableDMA分为两种,一种是SLAMDMA(HOST->SW),另一种是TableDMA(SW>HOST)。
PacketDMA是CPU与交换芯片之间收发包;CounterDMA是CPU的hostmemory与交换芯片的寄存器之间传递数据;TableDMA是hostmemory与交换芯片的表之间传递数据。
1、DMAoperation
每一个CMIC主控制器支持4路DMA控制器,CMICMasterControl0可配,CMICMasterControl1和2保留被内部使用。
DMA实现了PCIMemory(该PCIMemory指的是CPU端,PowerPC无IO空间只能通过内存映射)与交换芯片之间在无CPU干预的前提下传递数据。
CMIC支持3个DMA通道接收1个DMA发送,这样可以将3个cos队列中的报文映射到DMA中。
另外可通过配置CMIC_CMC0_DMA_CH[3:
0]_INTR_COAL配置DMA中断。
2、CosBasedDMAReceive
56540芯片根据cos值,允许多个DMA同时写操作,这样,cpu就可以根据cos值接收报文了。
芯片支持48个COS队列(我们只用了8个),每个DMA通道可通过配置
CMIC_CMC0_CH[3:
0]_COS_CTRL_RX[1:
0]来选择cos队列。
3、DMADescriptors
DCBs(DMAControlBlocks)是类似与进程中PCB的概念,SDK软件在收发包时都会用到DCBs,其中包含了包传输所需的所有信息。
DCBs的结构取决于包的方向。
每一个DMA通道依靠DCBs而独立的工作。
RX方向DCBs的格式如下:
TX方向DCBs的格式如下:
4、DMAReceive/Transit
下面以DMAReceive为例,介绍DMAReceive的操作流程:
由上图可知,DMA传输过程是一系列DCBs控制的结果,因为一个DCBs只能根据一个地址进行一定数量的数据传递,故多个DCBs串可以完成DMA传输数据的功能。
5、CounterDataTransfer
有时,需要读取或者处理某一个区间内的寄存器的值,如果用S-Channel的机制,会每一个寄存器的操作都会花费50ms。
为了减低这类应用的开销,CounterDataTransfer应运而生。
CounterDMARegister详见56540-PR100-RDSProgrammer’sRegisterReferenceGuide
CounterDMA的Buffer因不同平台而不同,buffer的大小与端口数以及每个端口所包含的寄存器有关。
另外buffer以32bit对齐。
Buffer的起始地址需要写入到CMIC_CMC0_STAT_DMA_ADDR。
寄存器中的数据DMA到memory的时间间隔是可配置的(实现寄存器中的数据与memory保持一致),另外,还可配置触发的DMA方式,即软件可触发寄存器中中的数据DMA到memory中。
6、TableDataTransfer
TableDataTranster包括两种,一种是TableDMA;另一种是SlamDMA。
前者是将交换芯片的tableDMA到systemmemory中,后者是将systemmemory中的数据DMA到交换芯片的table中。
下面以TableDMA为例,介绍其操作过程:
3、大小端的配置
说的是PCIMemory的大小端存储与CPU之间的一致性问题。
4、CMIC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- bcm56540 芯片 手册 学习