1、/DDONE0:DMA完成信号,每个通道一个。DMA完成信号指示DMA传输已经完成。有效DMA传输完毕。无效DMA传输正在进行或停止。有效在内部控制逻辑完成DMA传输时异步有效。注意,在/DDONEn有效后,在总线流水上可能还存在未完成的写事务。无效在内部控制逻辑开始DMA传输时异步无效。12.4 内存映射/寄存器定义 表12-2列出了内存映射模块的地址和访问方式。表12-2模块的内存映射偏移寄存器访问复位节/页0x0_8030OMISR外向(outbound)消息中断状态寄存器特殊0x0000_000012.5.1/12-40x0_8034OMIMR发送消息中断屏蔽寄存器R/W12.5.2/
2、12-40x0_8050IMR0内向(inbound)消息寄存器012.5.3/12-40x0_8054IMR1接收消息寄存器10x0_8058OMR0发送消息寄存器012.5.4/12-40x0_805COMR1发送消息寄存器10x0_8060ODR发送门铃寄存器12.5.5/12-40x0_8068IDR接收门铃寄存器0x0_8080IMISR接收消息中断状态寄存器12.5.6/12-40x0_8084IMIMR接收消息中断屏蔽寄存器12.5.7/12-40x0_8100DMAMR0DMA 0模式寄存器12.5.8.1/12-40x0_8104DMASR0DMA 0状态寄存器12.5.8.
3、2/12-40x0_8108DMACDAR0DMA 0当前描述符地址寄存器12.5.8.3/12-40x0_8110DMASAR0DMA 0源地址寄存器12.5.8.4/12-40x0_8118DMADAR0DMA 0目的地址寄存器12.5.8.5/12-40x0_8120DMABCR0DMA 0字节计数寄存器12.5.8.6/12-40x0_8124DMANDAR0DMA 0下一个描述符地址寄存器12.5.8.7/12-40x0_8180DMAMR1DMA 1模式寄存器0x0_8184DMASR1DMA 1状态寄存器0x0_8188DMACDAR1DMA 1当前描述符地址寄存器0x0_819
4、0DMASAR1DMA 1源地址寄存器0x0_8198DMADAR1DMA 1目的地址寄存器0x0_81A0DMABCR1DMA 1字节计数寄存器0x0_81A4DMANDAR1DMA 1下一个描述符地址寄存器0x0_8200DMAMR2DMA 2模式寄存器0x0_8204DMASR2DMA 2状态寄存器0x0_8208DMACDAR2DMA 2当前描述符地址寄存器0x0_8210DMASAR2DMA 2源地址寄存器0x0_8218DMADAR2DMA 2目的地址寄存器0x0_8220DMABCR2DMA 2字节计数寄存器0x0_8224DMANDAR2DMA 2下一个描述符地址寄存器0x0_
5、8280DMAMR3DMA 3模式寄存器0x0_8284DMASR3DMA 3状态寄存器0x0_8288DMACDAR3DMA 3当前描述符地址寄存器0x0_8290DMASAR3DMA 3源地址寄存器0x0_8298DMADAR3DMA 3目的地址寄存器0x0_82A0DMABCR3DMA 3字节计数寄存器0x0_82A4DMANDAR3DMA31下一个描述符地址寄存器0x0_82A8DMAGSRDMA通用状态寄存器R12.5.1.8/12-40x0_82B00x0_82FF保留12.5 寄存器说明 下面几节介绍DMA/消息收发单元的配置、控制和状态寄存器。注意,所有注释为PCI总线可访问的
6、消息收发单元寄存器也可以从PCI总线访问。但只有一个/INTA信号,所以建议用使用/INTA信号的PCI总线使用消息收发单元的发送部分。注意 本节介绍的寄存器使用小端格式字节序。运行在本地处理器上的使用大端格式模式的软件必须交换数据的字节。从PCI总线访问这些寄存器时不进行字节交换。12.5.1 发送消息中断状态寄存器(OMISR Outbound Message Interrupt status Register) OMISR包括门铃和发送消息寄存器的中断状态。PCI设备将1写入合适的状态位应答发送消息中断:OMISROM1I或OMISROM0I。置位其中的某一位清除中断和对应的状态位。本地
7、处理器写入两个发送消息寄存器中的某一个激活发送消息中断:OMR0或OMR1。可以从CSB或PCI总线访问OMISR,但通常只从PCI总线访问该寄存器。图12-2显示了OMISR的字段。图12-2 发送消息中断状态寄存器(OMISR) 表12-3说明了OMISR寄存器。表12-3 OMISR字段说明位名字3143ODI发送门铃中断。该只读位指示ODR位的状态。由OMIMRODIM屏蔽。0 无发送门铃中断。1 有发送门铃中断。21OM1I发送消息1中断。当置位时,指示有一个发送消息1中断。向该位置写入1清除该位。0 无发送消息1中断。1 有发送消息1中断。OM0I发送消息0中断。当置位时,指示有一
8、个发送消息0中断。0 无发送消息0中断。1 有发送消息0中断。12.5.2 发送消息中断屏蔽寄存器(OMIMR Outbound Message Interrupt Mask Register) OMIMR包括本地处理器产生的门铃和消息寄存器事件的中断屏蔽。可以从CSB或PCI总线读取OMIMR,但只从PCI总线清除该寄存器。图12-3显示了OMIMR的字段。图12-3 发送消息中断屏蔽寄存器(OMIMR) 表12-4说明了OMIMR寄存器。表12-4 OMIMR字段说明ODIM发送门铃中断屏蔽。0 允许发送门铃中断。1 屏蔽发送门铃中断。OM1IM发送消息1中断屏蔽。0 允许发送消息1中断。
9、1 屏蔽发送消息1中断。OM0IM发送消息0中断屏蔽。0 允许发送消息0中断。1 屏蔽发送消息0中断。12.5.3 接收消息寄存器(IMR0IMR1 Inbound Message Register) 可以从主机或代理模式中的PCI总线或CSB读取接收消息寄存器。只能从PCI总线写入该寄存器。图12-4显示了IMR0和IMR1的字段。图12-4 接收消息寄存器(IMR0,IMR1) 表12-5说明了IMRn寄存器。表12-5 IMR0和IMR1字段说明310IMSGn接收消息n。包括要在本地处理器和外部主设备之间传递的通用数据。12.5.4 发送消息寄存器(OMR0OMR1 Outbound
10、Message Register) 可以从主控或代理模式中的PCI总线或CSB读取发送消息寄存器。只能从CSB写入该寄存器。图12-5 发送消息寄存器(OMR0OMR1) 表12-6说明了OMRn寄存器。表12-6 OMR0和OMR1字段说明OMSGn发送消息n。12.5.5 门铃寄存器(Doorbell Register) 下面几节介绍发送和接收门铃寄存器。12.5.5.1 发送门铃寄存器(ODR Outbound Doorbell Register) ODR对主机或代理模式中的PCI总线或CSB都是可访问的。图12-6显示了ODRn的字段。图12-6 发送门铃寄存器(ODR) 表12-7说
11、明了ODRn寄存器。表12-7 ODR字段说明3129280ODRn发送门铃n。从CSB写入1置位。从PCI总线写入1清除。写入0不起作用。(从CSB写入该寄存器的某一位引起中断(/INTA)产生。)12.5.5.2 接收门铃寄存器(IDR Inbound Doorbell Register) IDR对主机或代理模式中的PCI总线或CSB都是可访问的。图12-7显示了IDRn的字段。图12-7 发送门铃寄存器(IDR) 表12-8说明了IDRn寄存器。表12-8 IDR字段说明31IMC接收机器检查。从PCI总线写入1置位。从CSB写入1清除。(从PCI总线写入该寄存器的某一位引起到本地处理器
12、的机器检查中断。300IDRn接收门铃n。12.5.6 接收消息中断状态寄存器(IMISR Inbound Message Interrupt status Register) IMISR包括门铃和接收消息寄存器事件的中断状态。将1写入IM1I清除该位。事件由PCI主设备产生。应只从CSB访问IMISR,且只能为代理模式。从主机模式或从PCI总线访问产生未定义的结果。图12-8显示了IMISR的字段。图12-8 接收消息中断状态寄存器(IMISR) 表12-9说明了IMISR寄存器。表12-9 IMISR字段说明3154MCI机器检查中断。指示是否出现了置位IDR31所产生的机器检查中断的情况
13、。将1写入IDR31清除该中断。0 无机器检查中断。1 有机器检查中断。IDI接收门铃中断。指示是否出现了接收门铃中断。0 无接收门铃中断。1 有接收门铃中断。IM1I接收消息1中断。指示是否出现了接收消息1中断。0 无接收消息1中断。1 有接收消息1中断。IM0I指示是否出现了接收消息0中断。0 无接收消息0中断。1 有接收消息0中断。12.5.7 接收消息中断屏蔽寄存器(IMIMR Inbound Message Interrupt Mask Register) 该寄存器包括PCI主设备产生的门铃和消息寄存器事件的中断屏蔽。应只从CSB访问IMIMR,且只能为代理模式。图12-9显示了IM
14、IMR的字段。图12-9 接收消息中断屏蔽寄存器(IMIMR) 表12-10说明了IMIMR寄存器。表12-10 IMIMR字段说明MCIM机器检查中断屏蔽。0 允许从IDR产生机器检查中断。1 屏蔽机器检查中断。清除IMISRMCI。IDIM接收门铃中断屏蔽。0 允许接收门铃中断。1 屏蔽接收门铃中断。清除IMISRIDI。IM1IM接收消息1中断屏蔽。0 允许接收消息1中断。1 屏蔽接收消息1中断。清除IMISRIM1I。IM0IM0 允许接收消息0中断。1 屏蔽接收消息0中断。清除IMISRIM0I。12.5.8 DMA寄存器 每个DMA通道都有一组七个32位的寄存器(模式、状态、当前描
15、述符地址、下一个当前描述符地址、源地址、目的地址和字节计数)支持事务。下面几节介绍DMA支持寄存器的格式。12.5.8.1 DMA模式寄存器(DMAMRn DMA Mode Register) 本节介绍DMA模式寄存器。DMA模式寄存器允许软件启动DMA传输,并控制各种DMA传输特性。图12-10显示了DMAMRn的字段。图12-10 DMA模式寄存器(DMAMRn) 表12-11说明了DMAMRn寄存器。表12-11 DMAMRn字段说明31282724DRCNTDMA请求计数。该字段指定当EMSEN为1时每个DMA请求有效所传输的cache行的数量。如果EMSEM为0,则不使用该字段。01
16、01 1个cache行0110 2个cache行0111 4个cache行1000 8个cache行1110 16个cache行1010 32个cache行其他保留2321BWC带宽控制。仅在多个通道并发执行传输时使用。该字段确定在给定的通道被准许访问IOS接口之后、将接口释放给下一个通道之前,允许该给定通道传输多少个cache行。这样就允许用户定义DMA通道的优先级。BWC的值如下所列:000 1个cache行001 2个cache行010 4个cache行011 8个cache行100 16个cache行20DMSEN直通模式监听允许。该位控制直通模式DMA事务的监听。0 禁止监听。1 允
17、许监听。19IRQS中断导向。该位确定DMA中断的目的地。0 所有DMA中断都发送给片上中断控制器。1 所有DMA中断都通过/INTA发送给PCI总线。18EMSEN外部主设备启动允许。当DMA传输完成时清除该位,所以必须为每一次传输重新置位该位。0 由软件置位CS位启动通道。1 由硬件将/DREQ置为有效启动通道。1716DAHTS目的地址保持传输长度。当DAHE为1时,该字段指示每个事务所使用的传输长度。字节计数寄存器必须为该长度的整数倍,且目的地址寄存器必须按该长度对齐。00 1个字节01 2个字节10 4个字节11 8个字节1514SAHTS源地址保持传输长度。当SAHE为1时,该字段
18、指示每个事务所使用的传输长度。字节计数寄存器必须为该长度的整数倍,且源地址寄存器必须按该长度对齐。13DAHE目的地址保持允许。该位允许DMA控制器保持每个传输的目的地址不变。传输使用的长度由DAHTS指示。注意,对于该特性,硬件仅支持对齐传输。0 不保持目的地址不变。1 保持目的地址不变。注意:DMA不支持同一传输中源和目的的同时地址保持。12SAHE源地址保持允许。该位允许DMA控制器保持每个传输的源地址不变。传输使用的长度由SAHTS指示。0 不保持源地址不变。1 保持源地址不变。1110PRCPCI读命令。该字段指示使用的PCI读命令的类型。00 1个PCI读01 2个PCI读行10
19、4个PCI读多行11 8保留987EOTIE传输结束中断允许。该位确定在完成DMA传输时是否产生中断。将传输结束定义为直通模式传输结束,或在链模式中,链的最后一段传输结束。0 不产生EOT中断。1 产生EOT中断。64TEM传输错误屏蔽。该位确定出现传输错误事件的DMA的响应。0 当出现传输错误时(DMASRnTE置位),DMA停止。1 不论是否出现传输错误(TE未置位),DMA都将完成传输。CTM通道传输模式。0 链模式。1 直通模式。CC通道继续。该位仅用于链模式。置位该位指示应重复当前描述符段。一旦开始重复,DMA就清除CC,所以它只引起一次重复。1 正常链。2 不从DMANDAR装入D
20、MACDAR,重复当前描述符段。CS通道启动。当通道不忙时(DMASRnCB位为0),如果该位发生从0到1的跳变,则启动DMA处理。如果通道忙且出现了从0到1的跳变,则DMA通道从上次停止状态重新启动。当通道忙时(CB位为1),如果发生从1到0的跳变,则停止DMA处理。如果通道不忙且出现了从1到0的跳变,则什么也不会发生。在传输结束时,DMA清除该位。12.5.8.2 DMA状态寄存器(DMASRn DMA Status Register) 本节介绍DMA状态寄存器。状态寄存器报告DMA传输期间和之后的各种DMA状态。将1写入特定的、置位了的位清除该位。图12-11显示了DMASRn的字段。图
21、12-11 DMA状态寄存器(DMASRn) 表12-12说明了DMASRn寄存器。表12-12 DMASRn字段说明318TE传输错误。在DMA传输期间出现错误时置位该位,并清除DMAMRnTEM位。63CB通道忙。该位指示通道是否忙。下列任何一种情况都清除该位:DMA传输(1)错误,(2)停止,(3)完成。0 当前未进行DMA传输。1 当前正进行DMA传输。EOSI段结束中断。在传输了一个数据段之后,如果当前描述符地址寄存器中的DMACDARnEOSIE置位,则置位该位,并产生一个中断。EOCDI链/直通结束。当完成了最后一个DMA传输时,不论是在链模式中还是在直通模式中,如果DMAMREOTIE置位,则置位该位,并产生一个中断。12.5.8.3 DMA当前描述符地址寄存器(DMACDARn DMA Current Descriptor Address Register) DMACDARn包括正在传输的当前段描述符的地址。在链模式中,软件必须初始化该寄存器,使其指向链中的第一个描述符。在处理完第一个描述符之后,DMA控制器将下一个描述符地址寄存器的内容移动到DMACDAR中,将后面的描述符装入到DMANDAR中,并执行
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1