3 interrupt control, 1 transmit pulse interrupt, 2 receive pulse interrupt – Texas Instruments TMS320DM36X User Manual

Page 31

Advertising
background image

www.ti.com

Architecture

2.7.3

Interrupt Control

The EMAC control module combines multiple interrupt conditions generated by the EMAC and MDIO
modules into four separate interrupt signals that are mapped to a CPU interrupt via the CPU interrupt
controller. The four separate sources of interrupt can be individually enabled for each channel by the
CMRXTHRESHINTEN, CMRXINTEN, CMTXINTEN, and CMMISCINTEN registers.

2.7.3.1

Transmit Pulse Interrupt

The EMAC control module receives the eight individual transmit interrupts originating from the EMAC
module, one for each of the eight channels, and combines them into a single transmit pulse interrupt to
the CPU. This transmit pulse interrupt is paced, as described in

Section 2.7.4

. The eight individual

transmit pending interrupt(s) are selected at the EMAC control module level, by setting one or more bits in
the EMAC control module transmit interrupt enable register (CMTXINTEN). The masked interrupt status
can be read in the EMAC control module transmit interrupt status register (CMTXINTSTAT).

Upon reception of a transmit pulse interrupt, the ISR performs the following:

1. Read CMTXINTSTAT to determine which channel(s) caused the interrupt.
2. Process received packets for the interrupting channel(s).
3. Write the appropriate CPGMAC transmit channel n completion pointer register(s) (TXnCP) with the

address of the last buffer descriptor of the last packet processed by the application software.

4. Write the MAC end of interrupt vector register (MACEOIVECTOR) in the EMAC module with a value of

2h to signal the end of the transmit interrupt processing.

2.7.3.2

Receive Pulse Interrupt

The EMAC control module receives the eight individual receive interrupts originating from the EMAC
module, one for each of the eight channels, and combines them into a single receive pulse interrupt to the
CPU. This receive pulse interrupt is paced, as described in

Section 2.7.4

. The eight individual receive

pending interrupt(s) are selected at the EMAC control module level, by setting one or more bits in the
EMAC control module receive interrupt enable register (CMRXINTEN). The masked interrupt status can
be read in the EMAC control module receive interrupt status register (CMRXINTSTAT).

Upon reception of a receive pulse interrupt, the ISR performs the following:

1. Read CMRXINTSTAT to determine which channel(s) caused the interrupt.
2. Process received packets for the interrupting channel(s).
3. Write the appropriate CPGMAC receive channel n completion pointer register(s) (RXnCP) with the

address of the last buffer descriptor of the last packet processed by the application software.

4. Write the MAC end of interrupt vector register (MACEOIVECTOR) in the EMAC module with a value of

1h to signal the end of the receive interrupt processing.

31

SPRUFI5B – March 2009 – Revised December 2010

Ethernet Media Access Controller (EMAC)/Management Data Input/Output

(MDIO)

Submit Documentation Feedback

© 2009–2010, Texas Instruments Incorporated

Advertising