首页 理论教育Capric卡初始化指南

Capric卡初始化指南

【摘要】:Capric卡的设计基于Xilinx公司的LogiCORE。在Capric卡的初始化阶段,需要与对端设备进行协商,确认Max_Payload_Size参数的值,如果Capric卡与Intel的Chipset直接相连,该参数为128B或者256B。系统软件在Capric卡初始化时,将分析Capric卡的配置空间,并填写Capric卡的配置寄存器空间。在设备驱动程序中,Capric卡需要执行以下步骤完成硬件初始化。

Capric卡在初始化时需要进行配置寄存器空间和Capric卡硬件逻辑的初始化。其中配置寄存器空间的初始化由软硬件联合完成。

Capric卡的设计基于Xilinx公司的LogiCORE。因此Capric卡需要使用Xilinx公司提供的“CORE Generator GUI”对LogiCORE进行基本的初始化,并设置一些必要的参数,包括Vendor ID、Device ID、Revision ID、Subsystem Vendor ID和Subsystem ID等参数。有关该工具的使用见[LogiCORE(tm)Endpoint PIPE v1.7],本节对此不做进一步描述。Capric卡的配置寄存器空间的初始值如下所示。

●Vendor ID为0x10EE,Xilinx使用的Vendor ID。

●Device ID为0x0007,LogiCORE使用的Device ID。

●Revision ID为0x00。

●Subsy stem ID为0x10EE。

●Device ID为0x0007。

●Base Class为0x05,表示Capric卡为“类存储器控制器”。

●Sub Class和Interface为0x00,进一步描述Capric卡为RAM控制器。

●Card CIS Pointer为0x00,表示不支持Card Bus接口

●BAR0为0xFFFFFF00。Ca pric卡仅支持BAR0空间,该空间采用32位存储器映像寻址,其大小为256B,而且不支持预读。在初始化时,BAR0寄存器存放该空间所需要的存储器空间大小,该寄存器由系统软件读取后,再写入一个新的数值。这个数值为BAR0空间使用的基地址。(www.chuimin.cn)

●Max_Payload_Size Supported参数为0b010,即Max_Payload_Size Supported参数的最大值为512B。多数RC支持的Max_Payload_Size Supported参数仅为128B或者256B。因此LogiCORE支持512B已经足够了。在Capric卡的初始化阶段,需要与对端设备进行协商,确认Max_Payload_Size参数的值,如果Capric卡与Intel的Chipset直接相连,该参数为128B或者256B。Capric卡需要根据协商后的Max_Payload_Size参数,而不是Max_Payload_Size Supported参数,确定存储器写TLP有效负载的大小。当DMA写的数据区域超过Max_Payload_Size参数时,需要进行拆包处理,详见第12.2.1节。

●Capric卡不支持Phanto m功能。即不能使用Function号,进一步扩展Tag字段。Phan-tom功能的详细说明见第4.3.2节。

●Multiple Message Capable参数为0b000,即支持一个中断向量。

●Max_Read_Request_Size参数为0b010,即存储器读请求TLP一次最多能够从目标设备中读取512B大小的数据。如果DMA读的数据区域超过512B时,需要进行拆包处理,详见第12.2.2节。

系统软件在Capric卡初始化时,将分析Capric卡的配置空间,并填写Capric卡的配置寄存器空间。值得注意的是,系统软件对Capric卡进行配置时,Capric卡将保留该设备在PCI总线树中的Bus Number、Device Number和Function Number,LogiCORE使用寄存器cfg_bus_number[7:0]、cfg_device_number[4:0]和cfg_functio n_number[2:0]存放这组数值,当LogiCORE发起存储器读请求TLP时,需要使用这组数值。

在设备驱动程序中,Capric卡需要执行以下步骤完成硬件初始化。

(1)向DCSR1寄存器的init_rst_o位写1。

(2)延时5μs。

(3)向DCSR1寄存器的init_rst_o位写0。

(4)向DCSR1寄存器的int_rd_enb和int_wr_enb位写1,使能DMA读写中断请求。