Texas Instruments TMS320C645x DSP Benutzerhandbuch

Seite von 148
www.ti.com
2.16.1.2
Receive Packet Completion Interrupts
2.16.1.3
Statistics Interrupt
EMAC Functional Architecture
The receive DMA engine has eight channels, and each channel has a corresponding interrupt
(RXPENDn). The receive interrupts are level interrupts that remain asserted until cleared by the CPU.
Each of the eight receive channel interrupts may be individually enabled by setting the appropriate bit in
the RXINTMASKSET register. Each of the eight receive channel interrupts may be individually disabled by
clearing the appropriate bit in the RXINTMASKCLEAR register. The raw and masked receive interrupt
status may be read by reading the RXINTSTATRAW and RXINTSTATMASKED registers, respectively.
When the EMAC completes a packet reception, the EMAC issues an interrupt to the CPU by writing the
packet’s last buffer descriptor address to the appropriate channel queue’s RX completion pointer located
in the state RAM block. The write generates the interrupt when enabled by the interrupt mask, regardless
of the value written.
Upon interrupt reception, the CPU processes one or more packets from the buffer chain and then
acknowledges one or more interrupt(s) by writing the address of the last buffer descriptor processed to the
queue’s associated RX completion pointer in the receive DMA state RAM.
The data written by the host (buffer descriptor address of the last processed buffer) is compared to the
data in the register written by the EMAC (address of last buffer descriptor used by the EMAC). If the two
values are not equal, indicating that the EMAC has received more packets than the CPU has processed
interrupts for, the receive packet completion interrupt signal remains asserted. If the two values are equal,
indicating that the host has processed all packets that the EMAC has received, the pending interrupt is
de-asserted. Reading the RXnCP register displays the value that the EMAC is expecting .
The EMAC write to the completion pointer stores the value in the state RAM. The CPU written value does
not change the register value. The host-written value is compared to the register content, which was
written by the EMAC. If the two values are equal, then the interrupt is removed; otherwise the interrupt
remains asserted. The host may process multiple packets prior to acknowledging an interrupt, or the host
may acknowledge interrupts for every packet.
The statistics level interrupt (STATPEND) is issued when any statistics value is greater than or equal to
8000 0000h, if it has been enabled by the STATMASK bit in the MACINTMASKSET register. The statistics
interrupt is removed by writing to decrement any statistics value greater than 8000 0000h. The interrupt
remains asserted as long as the most-significant-bit of any statistics value is set.
SPRU975B – August 2006
Ethernet Media Access Controller (EMAC)/Management Data Input/Output (MDIO)
61