ZHCSDR5B March 2012 – April 2015 TMS320C6654
PRODUCTION DATA.
This chapter covers the various peripherals on the C6654 DSP. Peripheral-specific information, timing diagrams, electrical specifications, and register memory maps are described in this chapter.
All clocks and control signals must transition between VIH and VIL (or between VIL and VIH) in a monotonic manner.
The following sections describe the proper power-supply sequencing and timing needed to properly power on the C6654. The various power supply rails and their primary function is listed in Table 8-1.
NAME | PRIMARY FUNCTION | VOLTAGE | NOTES |
---|---|---|---|
CVDD | SmartReflex core supply voltage | 0.85 V - 1.1 V | Includes core voltage for DDR3 module |
CVDD1 | Core supply voltage for memory array | 1.0 V | Fixed supply at 1.0 V |
VDDT1 | Reserved | 1.0 V | Connect to CVDD1 |
VDDT2 | SGMII/PCIE SerDes termination supply | 1.0 V | Filtered version of CVDD1. Special considerations for noise. Filter is not needed if SGMII/PCIE is not in use. |
DVDD15 | 1.5-V DDR3 IO supply | 1.5 V | |
VDDR1 | Reserved | 1.5 V | Connect to DVDD15 |
VDDR2 | PCIE SerDes regulator supply | 1.5 V | Filtered version of DVDD15. Special considerations for noise. Filter is not needed if PCIE is not in use. |
VDDR3 | SGMII SerDes regulator supply | 1.5 V | Filtered version of DVDD15. Special considerations for noise. Filter is not needed if SGMII is not in use. |
VDDR4 | Reserved | 1.5 V | Connect to DVDD15 |
DVDD18 | 1.8-V IO supply | 1.8V | |
AVDDA1 | Main PLL supply | 1.8 V | Filtered version of DVDD18. Special considerations for noise. |
AVDDA2 | DDR3 PLL supply | 1.8 V | Filtered version of DVDD18. Special considerations for noise. |
VREFSSTL | 0.75-V DDR3 reference voltage | 0.75 V | Should track the 1.5-V supply. Use 1.5 V as source. |
VSS | Ground | GND |
This section defines the requirements for a power up sequencing from a power-on reset condition. There are two acceptable power sequences for the device. The first sequence stipulates the core voltages starting before the IO voltages as shown below.
The second sequence provides compatibility with other TI processors with the IO voltage starting before the core voltages as shown below.
The clock input buffers for CORECLK, DDRCLK, SGMIICLK, and PCIECLK use only CVDD as a supply voltage. These clock inputs are not failsafe and must be held in a high-impedance state until CVDD is at a valid voltage level. Driving these clock inputs high before CVDD is valid could cause damage to the device. Once CVDD is valid it is acceptable that the P and N legs of these CLKs may be held in a static state (either high and low or low and high) until a valid clock frequency is needed at that input. To avoid internal oscillation the clock inputs should be removed from the high impedance state shortly after CVDD is present.
If a clock input is not used it must be held in a static state. To accomplish this the N leg should be pulled to ground through a 1K ohm resistor. The P leg should be tied to CVDD to ensure it won't have any voltage present until CVDD is active. Connections to the IO cells powered by DVDD18 and DVDD15 are not failsafe and should not be driven high before these voltages are active. Driving these IO cells high before DVDD18 or DVDD15 are valid could cause damage to the device.
The device initialization is broken into two phases. The first phase consists of the time period from the activation of the first power supply until the point in which all supplies are active and at a valid voltage level. Either of the sequencing scenarios described above can be implemented during this phase. The figures below show both the core-before-IO voltage sequence and the IO-before-core voltage sequence. POR must be held low for the entire power stabilization phase.
This is followed by the device initialization phase. The rising edge of POR followed by the rising edge of RESETFULL will trigger the end of the initialization phase but both must be inactive for the initialization to complete. POR must always go inactive before RESETFULL goes inactive as described below. SYSCLK1 in the following section refers to the clock input that has been selected as the source for the main PLL and SYSCLK1 refers to the main PLL output that is used by the CorePac, see Figure 8-7 for more details.
Figure 8-1 shows the power sequencing and reset control of C6654 for device initialization. POR may be removed after the power has been stable for the required 100 µsec. RESETFULL must be held low for a period after the rising edge of POR but may be held low for longer periods if necessary. The configuration bits shared with the GPIO pins will be latched on the rising edge of RESETFULL and must meet the setup and hold times specified. SYSCLK1 must always be active before POR can be removed. Core-before-IO power sequencing is defined in Table 8-2.
NOTE
TI recommends a maximum of 100 ms between one power rail being valid, and the next power rail in the sequence starting to ramp.
TIME | SYSTEM STATE |
---|---|
1 | Begin Power Stabilization Phase
|
2a |
|
2b |
|
2c |
|
3 |
|
4a |
|
4b |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
The timing diagram for IO-before-core power sequencing is shown in Figure 8-2 and defined in Table 8-3.
NOTE
TI recommends a maximum of 100 ms between one power rail being valid, and the next power rail in the sequence starting to ramp.
TIME | SYSTEM STATE |
---|---|
1 | Begin Power Stabilization Phase
|
2a |
|
2b |
|
3a |
|
3b |
|
3c |
|
4 |
|
5 |
|
6 | Begin Device Initialization
|
7 |
|
8 |
|
9 |
|
10 |
|
Holding the device in POR, RESETFULL, or RESET for long periods of time will affect the long term reliability of the part. The device should not be held in a reset for times exceeding one hour and should not be held in reset for more the 5% of the time during which power is applied. Exceeding these limits will cause a gradual reduction in the reliability of the part. This can be avoided by allowing the DSP to boot and then configuring it to enter a hibernation state soon after power is applied. This will satisfy the reset requirement while limiting the power consumption of the device.
Some of the clock inputs are required to be present for the device to initialize correctly, but behavior of many of the clocks is contingent on the state of the boot configuration pins. Table 8-4 describes the clock sequencing and the conditions that affect the clock operation. Note that all clock drivers should be in a high-impedance state until CVDD is at a valid level and that all clock inputs either be active or in a static state with one leg pulled low and the other connected to CVDD.
CLOCK | CONDITION | SEQUENCING |
---|---|---|
DDRCLK | None | Must be present 16 µsec before POR transitions high. |
CORECLK | None | CORECLK used to clock the core PLL. It must be present 16 µsec before POR transitions high. |
SRIOSGMII CLK |
The SGMII port will be used. | SRIOSGMIICLK must be present 16 µsec before POR transitions high. |
SGMII will not be used. | SRIOSGMIICLK is not used and should be tied to a static state. | |
PCIECLK | PCIE will be used as a boot device. | PCIECLK must be present 16 µsec before POR transitions high. |
PCIE will be used after boot. | PCIECLK is used as a source to the PCIE SERDES PLL. It must be present before the PCIE is removed from reset and programmed. | |
PCIE will not be used. | PCIECLK is not used and should be tied to a static state. |
The power down sequence is the exact reverse of the power-up sequence described above. The goal is to prevent a large amount of static current and to prevent overstress of the device. A power-good circuit that monitors all the supplies for the device should be used in all designs. If a catastrophic power supply failure occurs on any voltage rail, POR should transition to low to prevent over-current conditions that could possibly impact device reliability.
A system power monitoring solution is needed to shut down power to the board if a power supply fails. Long-term exposure to an environment in which one of the power supply voltages is no longer present will affect the reliability of the device. Holding the device in reset is not an acceptable solution because prolonged periods of time with an active reset can also affect long term reliability.
In order to properly decouple the supply planes on the PCB from system noise, decoupling and bulk capacitors are required. Bulk capacitors are used to minimize the effects of low frequency current transients and decoupling or bypass capacitors are used to minimize higher frequency noise. For recommendations on selection of Power Supply Decoupling and Bulk capacitors see the Hardware Design Guide for KeyStone Devices (SPRABI2).
Increasing the device complexity increases its power consumption and with the smaller transistor structures responsible for higher achievable clock rates and increased performance, comes an inevitable penalty, increasing the leakage currents. Leakage currents are present in any active circuit, independently of clock rates and usage scenarios. This static power consumption is mainly determined by transistor type and process technology. Higher clock rates also increase dynamic power, the power used when transistors switch. The dynamic power depends mainly on a specific usage scenario, clock rates, and I/O activity.
Texas Instruments' SmartReflex technology is used to decrease both static and dynamic power consumption while maintaining the device performance. SmartReflex in the C6654 device is a feature that allows the core voltage to be optimized based on the process corner of the device. This requires a voltage regulator for each C6654 device.
To guarantee maximizing performance and minimizing power consumption of the device, SmartReflex is required to be implemented whenever the C6654 device is used. The voltage selection is done using 4 VCNTL pins which are used to select the output voltage of the core voltage regulator.
For information on implementation of SmartReflex see the Power Management for KeyStone Devices application report and the Hardware Design Guide for KeyStone Devices (SPRABI2).
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
1 | td(VCNTL[2:0]-VCNTL[3]) | Delay Time - VCNTL[2:0] valid after VCNTL[3] low | 300.00 | ns | |
2 | toh(VCNTL[3] -VCNTL[2:0]) | Output Hold Time - VCNTL[2:0] valid after VCNTL[3] low | 0.07 | 172020C(1) | ms |
3 | td(VCNTL[2:0]-VCNTL[3]) | Delay Time - VCNTL[2:0] valid after VCNTL[3] high | 300.00 | ns | |
4 | toh(VCNTL[3] -VCNTL[2:0]) | Output Hold Time - VCNTL[2:0] valid after VCNTL[3] high | 0.07 | 172020C | ms |
5 | VCNTL being valid to CVDD being switched to SmartReflex Voltage(2) | 10 | ms |
The Power Sleep Controller (PSC) controls overall device power by turning off unused power domains and gating off clocks to individual peripherals and modules. The PSC provides the user with an interface to control several important power and clock operations.
For information on the Power Sleep Controller, see the Power Sleep Controller (PSC) for KeyStone Devices User's Guide (SPRUGV4).
The device has several power domains that can be turned on for operation or off to minimize power dissipation. The global power/sleep controller (GPSC) is used to control the power gating of various power domains.
Table 8-6 shows the C6654 power domains.
DOMAIN | BLOCK(S) | NOTE | POWER CONNECTION |
---|---|---|---|
0 | Most peripheral logic | Cannot be disabled | Always on |
1 | Per-core TETB and System TETB | RAMs can be powered down | Software control |
2 | Reserved | Reserved | Reserved |
3 | PCIe | Logic can be powered down | Software control |
4 | Reserved | Reserved | Reserved |
5 | Reserved | Reserved | Reserved |
6 | Reserved | Reserved | Reserved |
7 | Reserved | Reserved | Reserved |
8 | Reserved | Reserved | Reserved |
9 | Reserved | Reserved | Reserved |
10 | Reserved | Reserved | Reserved |
11 | Reserved | Reserved | Reserved |
12 | Reserved | Reserved | Reserved |
13 | C66x Core 0, L1/L2 RAMs | L2 RAMs can sleep | Software control via C66x CorePac. For details, see the C66x CorePac Reference Guide. |
14 | Reserved | Reserved | Reserved |
15 | Reserved | Reserved | Reserved |
Clock gating to each logic block is managed by the local power/sleep controllers (LPSCs) of each module. For modules with a dedicated clock or multiple clocks, the LPSC communicates with the PLL controller to enable and disable that module's clock(s) at the source. For modules that share a clock with other modules, the LPSC controls the clock gating.
Table 8-7 shows the C6654 clock domains.
LPSC NUMBER | MODULE(S) | NOTES |
---|---|---|
0 | Shared LPSC for all peripherals other than those listed in this table | Always on |
1 | SmartReflex | Always on |
2 | DDR3 EMIF | Always on |
3 | EMAC | Software control |
4 | Reserved | Reserved |
5 | Debug Subsystem and Tracers | Software control |
6 | Per-core TETB and System TETB | Software control |
7 | Reserved | Reserved |
8 | Reserved | Reserved |
9 | Reserved | Reserved |
10 | PCIe | Software control |
11 | Reserved | Reserved |
12 | Reserved | Reserved |
13 | Reserved | Reserved |
14 | Reserved | Reserved |
15 | Reserved | Reserved |
16 | Reserved | Reserved |
17 | Reserved | Reserved |
18 | Reserved | Reserved |
19 | Reserved | Reserved |
20 | Reserved | Reserved |
21 | Reserved | Reserved |
22 | Reserved | Reserved |
23 | C66x CorePac 0 and Timer 0 | Software control |
24 | Timer1 | Software control |
No LPSC | Bootcfg, PSC, and PLL controller | These modules do not use LPSC |
Table 8-8 shows the PSC Register memory map.
OFFSET | REGISTER | DESCRIPTION |
---|---|---|
0x000 | PID | Peripheral Identification Register |
0x004 - 0x010 | Reserved | Reserved |
0x014 | VCNTLID | Voltage Control Identification Register(1) |
0x018 - 0x11C | Reserved | Reserved |
0x120 | PTCMD | Power Domain Transition Command Register |
0x124 | Reserved | Reserved |
0x128 | PTSTAT | Power Domain Transition Status Register |
0x12C - 0x1FC | Reserved | Reserved |
0x200 | PDSTAT0 | Power Domain Status Register 0 (AlwaysOn) |
0x204 | PDSTAT1 | Power Domain Status Register 1 (Per-core TETB and System TETB) |
0x208 | PDSTAT2 | Power Domain Status Register 2 (Reserved) |
0x20C | PDSTAT3 | Power Domain Status Register 3 (PCIe) |
0x210 | PDSTAT4 | Power Domain Status Register 4 (Reserved) |
0x214 | PDSTAT5 | Power Domain Status Register 5 (Reserved) |
0x218 | PDSTAT6 | Power Domain Status Register 6 (Reserved) |
0x21C | PDSTAT7 | Power Domain Status Register 7(Reserved) |
0x220 | PDSTAT8 | Power Domain Status Register 8 (Reserved) |
0x224 | PDSTAT9 | Power Domain Status Register 9 (Reserved) |
0x228 | PDSTAT10 | Power Domain Status Register 10 (Reserved) |
0x22C | PDSTAT11 | Power Domain Status Register 11(Reserved) |
0x230 | PDSTAT12 | Power Domain Status Register 12 (Reserved) |
0x234 | PDSTAT13 | Power Domain Status Register 13 (C66x CorePac 0) |
0x238 | PDSTAT14 | Power Domain Status Register 14 (Reserved) |
0x23C | Reserved | Reserved |
0x240 - 0x2FC | Reserved | Reserved |
0x300 | PDCTL0 | Power Domain Control Register 0 (AlwaysOn) |
0x304 | PDCTL1 | Power Domain Control Register 1 (Per-core TETB and System TETB) |
0x308 | PDCTL2 | Power Domain Control Register 2 (Reserved) |
0x30C | PDCTL3 | Power Domain Control Register 3 (PCIe) |
0x310 | PDCTL4 | Power Domain Control Register 4 (Reserved) |
0x314 | PDCTL5 | Power Domain Control Register 4 (Reserved) |
0x318 | PDCTL6 | Power Domain Control Register 6 (Reserved) |
0x31C | PDCTL7 | Power Domain Control Register 7 (Reserved) |
0x320 | PDCTL8 | Power Domain Control Register 8 (Reserved) |
0x324 | PDCTL9 | Power Domain Control Register 9 (Reserved) |
0x328 | PDCTL10 | Power Domain Control Register 10 (Reserved) |
0x32C | PDCTL11 | Power Domain Control Register 11(Reserved) |
0x330 | PDCTL12 | Power Domain Control Register 12(Reserved) |
0x334 | PDCTL13 | Power Domain Control Register 13 (C66x CorePac 0) |
0x338 | PDCTL14 | Power Domain Control Register 14 (Reserved) |
0x33C | Reserved | Reserved |
0x340 - 0x7FC | Reserved | Reserved |
0x800 | MDSTAT0 | Module Status Register 0 (Never Gated) |
0x804 | MDSTAT1 | Module Status Register 1 (SmartReflex) |
0x808 | MDSTAT2 | Module Status Register 2 (DDR3 EMIF) |
0x80C | MDSTAT3 | Module Status Register 3 (EMAC) |
0x810 | MDSTAT4 | Module Status Register 4 (Reserved) |
0x814 | MDSTAT5 | Module Status Register 5 (Debug Subsystem and Tracers) |
0x818 | MDSTAT6 | Module Status Register 6 (Per-core TETB and System TETB) |
0x81C | MDSTAT7 | Module Status Register 7 (Reserved) |
0x820 | MDSTAT8 | Module Status Register 8 (Reserved) |
0x824 | MDSTAT9 | Module Status Register 9 (Reserved) |
0x828 | MDSTAT10 | Module Status Register 10 (PCIe) |
0x82C | MDSTAT11 | Module Status Register 11(Reserved) |
0x830 | MDSTAT12 | Module Status Register 12(Reserved) |
0x834 | MDSTAT13 | Module Status Register 13 (Reserved) |
0x838 | MDSTAT14 | Module Status Register 14 (Reserved) |
0x83C | MDSTAT15 | Module Status Register 15 (Reserved) |
0x840 | MDSTAT16 | Module Status Register 16 (Reserved) |
0x844 | MDSTAT17 | Module Status Register 17 (Reserved) |
0x848 | MDSTAT18 | Module Status Register 18 (Reserved) |
0x84C | MDSTAT19 | Module Status Register 19 (Reserved) |
0x850 | MDSTAT20 | Module Status Register 20 (Reserved) |
0x854 | MDSTAT21 | Module Status Register 11 (Reserved) |
0x858 | MDSTAT22 | Module Status Register 22(Reserved) |
0x85C | MDSTAT23 | Module Status Register 23(C66x CorePac 0 and Timer 0) |
0x860 | MDSTAT24 | Timer1 |
0x864 - 0x9FC | Reserved | Reserved |
0xA00 | MDCTL0 | Module Control Register 0 (Never Gated) |
0xA04 | MDCTL1 | Module Control Register 1 (SmartReflex) |
0xA08 | MDCTL2 | Module Control Register 2 (DDR3 EMIF) |
0xA0C | MDCTL3 | Module Control Register 3 (EMAC) |
0xA10 | MDCTL4 | Module Control Register 4 (Reserved) |
0xA14 | MDCTL5 | Module Control Register 5 (Debug Subsystem and Tracers) |
0xA18 | MDCTL6 | Module Control Register 6 (Per-core TETB and System TETB) |
0xA1C | MDCTL7 | Module Control Register 7 (Reserved) |
0xA20 | MDCTL8 | Module Control Register 8 (Reserved) |
0xA24 | MDCTL9 | Module Control Register 9 (Reserved) |
0xA28 | MDCTL10 | Module Control Register 10 (PCIe) |
0xA2C | MDCTL11 | Module Control Register 11(Reserved) |
0xA30 | MDCTL12 | Module Control Register 12(Reserved) |
0xA34 | MDCTL13 | Module Control Register 13 (Reserved) |
0xA38 | MDCTL14 | Module Control Register 14 (Reserved) |
0xA3C | MDCTL15 | Module Control Register 15 (Reserved) |
0xA40 | MDCTL16 | Module Control Register 16 (Reserved) |
0xA44 | MDCTL17 | Module Control Register 17 (Reserved) |
0xA48 | MDCTL18 | Module Control Register 18 (Reserved) |
0xA4C | MDCTL19 | Module Control Register 19 (Reserved) |
0xA50 | MDCTL20 | Module Control Register 20 (Reserved) |
0xA54 | MDCTL21 | Module Control Register 21(Reserved) |
0xA58 | MDCTL22 | Module Control Register 22(Reserved) |
0xA5C | MDCTL23 | Module Control Register 23(C66x CorePac 0 and Timer 0) |
0xA60 | MDCTL24 | Timer1 |
0xA5C - 0xFFC | Reserved | Reserved |
The reset controller detects the different type of resets supported on the C6654 device and manages the distribution of those resets throughout the device.
The device has several types of resets:
Table 8-9 explains further the types of reset, the reset initiator, and the effects of each reset on the device. For more information on the effects of each reset on the PLL controllers and their clocks, see Section 8.4.7.
RESET TYPE | INITIATOR | EFFECT ON DEVICE WHEN RESET OCCURS | RESETSTAT
PIN STATUS |
---|---|---|---|
POR (Power On Reset) |
POR pin active low RESETFULL pin active low |
Total reset of the chip. Everything on the device is reset to its default state in response to this. Activates the POR signal on chip, which is used to reset test/emu logic. Boot configurations are latched. ROM boot process is initiated. | Toggles RESETSTAT pin |
Hard reset |
RESET pin active low Emulation PLLCTL register (RSCTRL) Watchdog timers |
Resets everything except for test/emu logic and reset isolation modules. Emulator and reset Isolation modules stay alive during this reset. This reset is also different from POR in that the PLLCTL assumes power and clocks are stable when device reset is asserted. Boot configurations are not latched. ROM boot process is initiated. | Toggles RESETSTAT pin |
Soft reset |
RESET pin active low PLLCTL register (RSCTRL) Watchdog timers |
Software can program these initiators to be hard or soft. Hard reset is the default, but can be programmed to be soft reset. Soft reset will behave like hard reset except that EMIF16 MMRs, DDR3 EMIF MMRs, sticky bits in PCIe MMRs, and external memory contents are retained. Boot configurations are not latched. ROM boot process is initiated. | Toggles RESETSTAT pin |
C66x CorePac local reset |
Software (through LPSC MMR) Watchdog timers LRESET pin |
MMR bit in LPSC controls C66x CorePac local reset. Used by watchdog timers (in the event of a timeout) to reset C66x CorePac. Can also be initiated by LRESET device pin. C66x CorePac memory system and slave DMA port are still alive when C66x CorePac is in local reset. Provides a local reset of the C66x CorePac, without destroying clock alignment or memory contents. Does not initiate ROM boot process. | Does not toggle RESETSTAT pin |
Power-on reset is used to reset the entire device, including the test and emulation logic.
Power-on reset is initiated by the following:
During power-up, the POR pin must be asserted (driven low) until the power supplies have reached their normal operating conditions. A RESETFULL pin is also provided to allow the on-board host to reset the entire device including the reset isolated logic. The assumption is that the device is already powered up and hence, unlike the POR pin, the RESETFULL pin will be driven by the on-board host control instead of the power-good circuitry. For power-on reset, the Main PLL Controller comes up in bypass mode and the PLL is not enabled. Other resets do not affect the state of the PLL or the dividers in the PLL controller.
The following sequence must be followed during a power-on reset:
NOTE
To most of the device, reset is de-asserted only when the POR and RESET pins are both de-asserted (driven high). Therefore, in the sequence described above, if the RESET pin is held low past the low period of the POR pin, most of the device will remain in reset. The RESET pin should not be tied together with the POR pin.
A hard reset will reset everything on the device except the PLLs, test, emulation logic, and reset isolation modules. POR should also remain de-asserted during this time.
Hard reset is initiated by the following:
All the above initiators, by default, are configured to act as a hard reset. Except emulation, all the other three initiators can be configured as soft resets in the RSCFG register in PLLCTL.
The following sequence must be followed during a hard reset:
NOTE
The POR pin should be held inactive (high) throughout the warm reset sequence. Otherwise, if POR is activated (brought low), the minimum POR pulse width must be met. The RESET pin should not be tied together with the POR pin.
A soft reset will behave like a hard reset except that the PCIe MMR sticky bits and DDR3 EMIF MMRs contents are retained. POR should also remain de-asserted during this time.
Soft reset is initiated by the following:
All the above initiators by default are configured to act as hard reset. Except emulation, all the other three initiators can be configured as soft resets in the RSCFG register in PLLCTL.
In the case of a soft reset, the clock logic or the power control logic of the peripherals are not affected, and, therefore, the enabled/disabled state of the peripherals is not affected. On a soft reset, the DDR3 memory controller registers are not reset. In addition, the DDR3 SDRAM memory content is retained if the user places the DDR3 SDRAM in self-refresh mode before invoking the soft reset.
During a soft reset, the following happens:
The boot sequence is started after the system clocks are restarted. Since the configuration pins are not latched with a system reset, the previous values, as shown in the DEVSTAT register, are used to select the boot mode.
The local reset can be used to reset a particular CorePac without resetting any other chip components.
Local reset is initiated by the following (for more details see the Phase Locked Loop (PLL) for KeyStone Devices User's Guide (SPRUGV2):
If any of the above reset sources occur simultaneously, the PLLCTL processes only the highest priority reset request. The reset request priorities are as follows (high to low):
The reset controller register is part of the PLLCTL MMRs. All C6654 device-specific MMRs are covered in Section 8.5.3. For more details on these registers and how to program them, see the Phase Locked Loop (PLL) for KeyStone Devices User's Guide (SPRUGV2).
NO. | MIN | MAX | UNIT | ||
---|---|---|---|---|---|
RESETFULL Pin Reset | |||||
1 | tw(RESETFULL) | Pulse width - Pulse width RESETFULL low | 500C | ns | |
Soft/Hard-Reset | |||||
2 | tw(RESET) | Pulse width - Pulse width RESET low | 500C | ns |
NO. | PARAMETER | MIN | MAX | Unit | |
---|---|---|---|---|---|
RESETFULL Pin Reset | |||||
3 | td(RESETFULLH-RESETSTATH) | Delay time - RESETSTAT high after RESETFULL high | 50000C | ns | |
Soft/Hard Reset | |||||
4 | td(RESETH-RESETSTATH) | Delay time - RESETSTAT high after RESET high | 50000C | ns |
NO. | MIN | MAX | UNIT | ||
---|---|---|---|---|---|
1 | tsu(GPIOn-RESETFULL) | Setup time - GPIO valid before RESETFULL asserted | 12C | ns | |
2 | th(RESETFULL-GPIOn) | Hold time - GPIO valid after RESETFULL asserted | 12C | ns |
This section provides a description of the Main PLL and the PLL controller. For details on the operation of the PLL controller module, see the Phase Locked Loop (PLL) for KeyStone Devices User's Guide (SPRUGV2).
The Main PLL is controlled by the standard PLL controller. The PLL controller manages the clock ratios, alignment, and gating for the system clocks to the device. Figure 8-7 shows a block diagram of the main PLL and the PLL controller.
NOTE
PLLM[5:0] bits of the multiplier are controlled by the PLLM register inside the PLL controller and PLLM[12:6] bits are controlled by the chip level MAINPLLCTL0 register. The complete 13-bit value is latched when the GO operation is initiated in the PLL controller. Only PLLDIV2, PLLDIV5, and PLLDIV8 are programmable on the C6654 device. See the Phase Locked Loop (PLL) for KeyStone Devices User's Guide (SPRUGV2) for more details on how to program the PLL controller.
The multiplication and division ratios within the PLL and the post-division for each of the chip-level clocks are determined by a combination of this PLL and the PLL Controller. The PLL controller also controls reset propagation through the chip, clock alignment, and test points. The PLL controller monitors the PLL status and provides an output signal indicating when the PLL is locked.
Main PLL power is supplied externally via the Main PLL power-supply pin (AVDDA1). An external EMI filter circuit must be added to all PLL supplies. See the Hardware Design Guide for KeyStone Devices (SPRABI2) for detailed recommendations. For the best performance, TI recommends that all the PLL external components be on a single side of the board without jumpers, switches, or components other than those shown. For reduced PLL jitter, maximize the spacing between switching signal traces and the PLL external components (C1, C2, and the EMI Filter).
The minimum SYSCLK rise and fall times should also be observed. For the input clock timing requirements, see Section 8.5.5.
CAUTION
The PLL controller module as described in the Phase Locked Loop (PLL) for KeyStone Devices User's GuideSPRUGV2 includes a superset of features, some of which are not supported on the C6654 device. The following sections describe the registers that are supported; it should be assumed that any registers not included in these sections is not supported by the device. Furthermore, only the bits within the registers described here are supported. Avoid writing to any reserved memory location or changing the value of reserved bits.
The Main PLL, used to drive the CorePacs, the switch fabric, and a majority of the peripheral clocks (all but the DDR3) requires a PLL controller to manage the various clock divisions, gating, and synchronization. The Main PLL’s PLL controller has several SYSCLK outputs that are listed below, along with the clock description. Each SYSCLK has a corresponding divider that divides down the output clock of the PLL. Note that dividers are not programmable unless explicitly mentioned in the description below.
Only SYSCLK2, SYSCLK5, and SYSCLK8 are programmable on theC6654 device.
NOTE
In case any of the other programmable SYSCLKs are set slower than 1/64 rate, then SYSCLK8 (SLOW_SYSCLK) needs to be programmed to either match, or be slower than, the slowest SYSCLK in the system.
The Main PLL controller has two modes of operation: bypass mode and PLL mode. The mode of operation is determined by BYPASS bit of the PLL Secondary Control Register (SECCTL). In PLL mode, SYSCLK1 is generated from the PLL output using the values set in PLLM and PLLD bit fields in the MAINPLLCTL0 Register. In bypass mode, PLL input is fed directly out as SYSCLK1.
All hosts must hold off accesses to the DSP while the frequency of its internal clocks is changing. A mechanism must be in place such that the DSP notifies the host when the PLL configuration has completed.
The PLL stabilization time is the amount of time that must be allotted for the internal PLL regulators to become stable after device powerup. The PLL should not be operated until this stabilization time has elapsed.
The PLL reset time is the amount of wait time needed when resetting the PLL (writing PLLRST = 1), in order for the PLL to properly reset, before bringing the PLL out of reset (writing PLLRST = 0). For the Main PLL reset time value, see Table 8-13.
The PLL lock time is the amount of time needed from when the PLL is taken out of reset (PLLRST = 1 with PLLEN = 0) to when to when the PLL controller can be switched to PLL mode (PLLEN = 1). The Main PLL lock time is given in Table 8-13.
The memory map of the PLL controller is shown in Table 8-14. C6654-specific PLL Controller register definitions can be found in the sections following Table 8-14. For other registers in the table, see the Phase Locked Loop (PLL) for KeyStone Devices User's Guide (SPRUGV2).
CAUTION
Note that only registers documented here are accessible on the C6654. Other addresses in the PLL controller memory map including the reserved registers should not be modified. Furthermore, only the bits within the registers described here are supported. Avoid writing to any reserved memory location or changing the value of reserved bits. It is recommended to use read-modify-write sequence to make any changes to the valid bits in the register.
HEX ADDRESS RANGE | FIELD | REGISTER NAME |
---|---|---|
0231 0000 - 0231 00E3 | - | Reserved |
0231 00E4 | RSTYPE | Reset Type Status Register (Reset Controller) |
0231 00E8 | RSTCTRL | Software Reset Control Register (Reset Controller) |
0231 00EC | RSTCFG | Reset Configuration Register (Reset Controller) |
0231 00F0 | RSISO | Reset Isolation Register (Reset Controller) |
0231 00F0 - 0231 00FF | - | Reserved |
0231 0100 | PLLCTL | PLL Control Register |
0231 0104 | - | Reserved |
0231 0108 | SECCTL | PLL Secondary Control Register |
0231 010C | - | Reserved |
0231 0110 | PLLM | PLL Multiplier Control Register |
0231 0114 | - | Reserved |
0231 0118 | PLLDIV1 | Reserved |
0231 011C | PLLDIV2 | PLL Controller Divider 2 Register |
0231 0120 | PLLDIV3 | Reserved |
0231 0124 | - | Reserved |
0231 0128 | - | Reserved |
0231 012C - 0231 0134 | - | Reserved |
0231 0138 | PLLCMD | PLL Controller Command Register |
0231 013C | PLLSTAT | PLL Controller Status Register |
0231 0140 | ALNCTL | PLL Controller Clock Align Control Register |
0231 0144 | DCHANGE | PLLDIV Ratio Change Status Register |
0231 0148 | CKEN | Reserved |
0231 014C | CKSTAT | Reserved |
0231 0150 | SYSTAT | SYSCLK Status Register |
0231 0154 - 0231 015C | - | Reserved |
0231 0160 | PLLDIV4 | Reserved |
0231 0164 | PLLDIV5 | PLL Controller Divider 5 Register |
0231 0168 | PLLDIV6 | Reserved |
0231 016C | PLLDIV7 | Reserved |
0231 0170 | PLLDIV8 | PLL Controller Divider 8 Register |
0231 0174 - 0231 0193 | PLLDIV9 - PLLDIV16 | Reserved |
0231 0194 - 0231 01FF | - | Reserved |
The PLL Secondary Control Register contains extra fields to control the Main PLL and is shown in Figure 8-8 and described in Table 8-15.
31 | 24 | 23 | 22 | 19 | 18 | 0 |
Reserved | BYPASS | OUTPUT_DIVIDE | Reserved |
R-0000 0000 | RW-0 | RW-0001 | RW-001 0000 0000 0000 0000 |
Legend: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Description |
---|---|---|
31-24 | Reserved | Reserved |
23 | BYPASS | Main PLL Bypass Enable
|
22-19 | OUTPUT_DIVIDE | Output Divider ratio bits.
|
18-0 | Reserved | Reserved |
The PLL Controller Divider Registers (PLLDIV2, PLLDIV5, and PLLDIV8) are shown in Figure 8-9 and described in Table 8-16. The default values of the RATIO field on a reset for PLLDIV2, PLLDIV5, and PLLDIV8 are different and mentioned in the footnote of Figure 8-9.
31 | 16 | 15 | 14 | 8 | 7 | 0 |
Reserved | Dn(1) EN | Reserved | RATIO |
R-0 | R/W-1 | R-0 | R/W-n(2) |
Legend: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Description |
---|---|---|
31-16 | Reserved | Reserved. |
15 | DnEN | Divider Dn enable bit. (see footnote of Figure 8-9)
|
14-8 | Reserved | Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. |
7-0 | RATIO | Divider ratio bits. (see footnote of Figure 8-9)
|
The PLL controller clock align control register (ALNCTL) is shown in Figure 8-10 and described in Table 8-17.
31 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Reserved | ALN8 | Reserved | ALN5 | Reserved | ALN2 | Reserved |
R-0 | R/W-1 | R-0 | R/W-1 | R-0 | R/W-1 | R-0 |
Legend: R/W = Read/Write; R = Read only; -n = value after reset, for reset value |
Bit | Field | Description |
---|---|---|
31-8 | Reserved | Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. |
7 | ALN8 | SYSCLKn alignment. Do not change the default values of these fields.
|
6-5 | Reserved | Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. |
4 | ALN5 | SYSCLKn alignment. Do not change the default values of these fields.
|
3-2 | Reserved | Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. |
1 | ALN2 | SYSCLKn alignment. Do not change the default values of these fields.
|
0 | Reserved | Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. |
When a different ratio is written to the PLLDIVn registers, the PLLCTL flags the change in the DCHANGE Status Register. During the GO operation, the PLL controller will change only the divide ratio of the SYSCLKs with the bit set in DCHANGE. Note that the ALNCTL Register determines if that clock also needs to be aligned to other clocks. The PLLDIV divider ratio change status register is shown in Figure 8-11 and described in Table 8-18.
31 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Reserved | SYS8 | Reserved | SYS5 | Reserved | SYS2 | Reserved |
R-0 | R/W-0 | R-0 | R/W-0 | R-0 | R/W-0 | R-0 |
Legend: R/W = Read/Write; R = Read only; -n = value after reset, for reset value |
Bit | Field | Description |
---|---|---|
31-8 | Reserved | Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. |
7 | SYS8 | Identifies when the SYSCLKn divide ratio has been modified.
|
6-5 | Reserved | Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. |
4 | SYS5 | Identifies when the SYSCLKn divide ratio has been modified.
|
3-2 | Reserved | Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. |
1 | SYS2 | Identifies when the SYSCLKn divide ratio has been modified.
|
0 | Reserved | Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. |
The SYSCLK Status Register (SYSTAT) shows the status of SYSCLK[11:1]. SYSTAT is shown in Figure 8-12 and described in Table 8-19.
31 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Reserved | SYS11 ON |
SYS10 ON |
SYS9ON | SYS8ON | SYS7ON | SYS6ON | SYS5ON | SYS4ON | SYS3ON | SYS2ON | SYS1ON |
R-n | R-1 | R-1 | R-1 | R-1 | R-1 | R-1 | R-1 | R-1 | R-1 | R-1 | R-1 |
Legend: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Description |
---|---|---|
31-11 | Reserved | Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. |
10-0 | SYS[N(1)]ON | SYSCLK[N]on status.
|
The Reset Type Status (RSTYPE) Register latches the cause of the last reset. If multiple reset sources occur simultaneously, this register latches the highest priority reset source. The Reset Type Status Register is shown in Figure 8-13 and described in Table 8-20.
31 | 29 | 28 | 27 | 12 | 11 | 8 | 7 | 3 | 2 | 1 | 0 |
Reserved | EMU-RST | Reserved | WDRST[N] | Reserved | PLLCTRLRST | RESET | POR |
R-0 | R-0 | R-0 | R-0 | R-0 | R-0 | R-0 | R-0 |
Legend: R = Read only; -n = value after reset |
Bit | Field | Description |
---|---|---|
31-29 | Reserved | Reserved. Read only. Always reads as 0. Writes have no effect. |
28 | EMU-RST | Reset initiated by emulation.
|
27-12 | Reserved | Reserved. Read only. Always reads as 0. Writes have no effect. |
11 | WDRST3 | Reset initiated by watchdog timer[N].
|
10 | WDRST2 | Reset initiated by watchdog timer[N].
|
9 | WDRST1 | Reset initiated by watchdog timer[N].
|
8 | WDRST0 | Reset initiated by watchdog timer[N].
|
7-3 | Reserved | Reserved. Read only. Always reads as 0. Writes have no effect. |
2 | PLLCTLRST | Reset initiated by PLLCTL.
|
1 | RESET | RESET reset.
|
0 | POR | Power-on reset.
|
This register contains a key that enables writes to the MSB of this register and the RSTCFG Register. The key value is 0x5A69. A valid key will be stored as 0x000C, any other key value is invalid. When the RSTCTRL or the RSTCFG is written, the key is invalidated. Every write must be set up with a valid key. The Software Reset Control Register (RSTCTRL) is shown in Figure 8-14 and described in Table 8-21.
31 | 17 | 16 | 15 | 0 |
Reserved | SWRST | KEY |
R-0x0000 | R/W-0x(1) | R/W-0x0003 |
Legend: R = Read only; -n = value after reset; |
Bit | Field | Description |
---|---|---|
31-17 | Reserved | Reserved. |
16 | SWRST | Software reset
|
15-0 | KEY | Key used to enable writes to RSTCTRL and RSTCFG. |
This register is used to configure the type of reset initiated by RESET, watchdog timer and the PLL controller’s RSTCTRL Register; i.e., a hard reset or a soft reset. By default, these resets will be hard resets. The Reset Configuration Register (RSTCFG) is shown in Figure 8-15 and described in Table 8-22.
31 | 14 | 13 | 12 | 11 | 4 | 3 | 0 |
Reserved | PLLCTLRST TYPE |
RESETTYPE | Reserved | WDTYPE[N(1)] |
R-0 | R/W-0(2) | R/W-02 | R-0 | R/W-02 |
Legend: R = Read only; R/W = Read/Write; -n = value after reset |
Bit | Field | Description |
---|---|---|
31-14 | Reserved | Reserved. |
13 | PLLCTLRSTTYPE | PLL controller initiates a software-driven reset of type:
|
12 | RESETTYPE | RESET initiates a reset of type:
|
11-4 | Reserved | Reserved. |
3 | WDTYPE3 | Watchdog timer [N] initiates a reset of type:
|
2 | WDTYPE2 | Watchdog timer [N] initiates a reset of type:
|
1 | WDTYPE1 | Watchdog timer [N] initiates a reset of type:
|
0 | WDTYPE0 | Watchdog timer [N] initiates a reset of type:
|
This register is used to select the module clocks that must maintain their clocking without pausing through non power-on reset. Setting any of these bits effectively blocks reset to all PLLCTL registers in order to maintain current values of PLL multiplier, divide ratios, and other settings. Along with setting module specific bit in RSISO, the corresponding MDCTLx[12] bit also needs to be set in PSC to reset-isolate a particular module. For more information on MDCTLx Register see the Power Sleep Controller (PSC) for KeyStone Devices User's Guide (SPRUGV4). The Reset Isolation Register (RSTCTRL) is shown below.
31 | 10 | 9 | 8 | 7 | 0 |
Reserved | Reserved | SRISO | Reserved |
R-0 | R/W-0 | R/W-0 | R-0 |
Legend: R = Read only; R/W = Read/Write; -n = value after reset |
Bit | Field | Description |
---|---|---|
31-10 | Reserved | Reserved. |
9 | Reserved | Reserved. |
8 | SRISO | Isolate SmartReflex
|
7-0 | Reserved | Reserved. |
The Main PLL uses two chip-level registers (MAINPLLCTL0 and MAINPLLCTL1) along with the PLL controller for its configuration. These MMRs exist inside the Bootcfg space. To write to these registers, software should go through an unlocking sequence using KICK0/KICK1 registers. For valid configurable values into the MAINPLLCTL0 and MAINPLLCTL1 Registers, see Section 3.6. See Section 4.3.4 for the address location of the registers and locking and unlocking sequences for accessing the registers. The registers are reset on POR only.
31 | 24 | 23 | 19 | 18 | 12 | 11 | 6 | 5 | 0 |
BWADJ[7:0] | Reserved | PLLM[12:6] | Reserved | PLLD |
RW-0000 0101 | RW-0000 0 | RW-0000000 | RW-000000 | RW-000000 |
Legend: RW = Read/Write; -n = value after reset |
31 | 7 | 6 | 5 | 4 | 3 | 0 |
Reserved | ENSAT | Reserved | BWADJ[11:8] |
RW-0000000000000000000000000 | RW-0 | RW-00 | RW-0000 |
Legend: RW = Read/Write; -n = value after reset |
Bit | Field | Description |
---|---|---|
31-7 | Reserved | Reserved |
6 | ENSAT | Needs to be set to 1 for proper operation of PLL |
5-4 | Reserved | Reserved |
3-0 | BWADJ[11:8] | BWADJ[11:8] and BWADJ[7:0] are located in separate registers. The combination (BWADJ[11:0]) should be programmed to a value related to PLLM[12:0] value based on the equation: BWADJ = ((PLLM+1)>>1) -1 |
NOTE
PLLM[5:0] bits of the multiplier are controlled by the PLLM Register inside the PLL controller and PLLM[12:6] bits are controlled by the MAINPLLCTL0 chip-level register. The MAINPLLCTL0 Register PLLM[12:6] bits should be written just before writing to the PLLM Register PLLM[5:0] bits in the controller to have the complete 13-bit value latched when the GO operation is initiated in the PLL controller. See the Phase Locked Loop (PLL) for KeyStone Devices User's Guide (SPRUGV2) for the recommended programming sequence. Output divide ratio and bypass enable/disable of the Main PLL is controlled by the SECCTL Register in the PLL Controller. See the Section 8.5.2.1for more details.
See the Phase Locked Loop (PLL) for KeyStone Devices User's Guide (SPRUGV2) for details on the initialization sequence for Main PLL and PLL Controller.
The DDR3 PLL generates interface clocks for the DDR3 memory controller. When coming out of power-on reset, the DDR3 PLL is programmed to a valid frequency during the boot config before being enabled and used.
DDR3 PLL power is supplied externally via the Main PLL power-supply pin (AVDDA2). An external EMI filter circuit must be added to all PLL supplies. See the Hardware Design Guide for KeyStone Devices (SPRABI2). For the best performance, TI recommends that all the PLL external components be on a single side of the board without jumpers, switches, or components other than those shown. For reduced PLL jitter, maximize the spacing between switching signal traces and the PLL external components (C1, C2, and the EMI Filter).
Figure 8-21 shows the DDR3 PLL.
The DDR3 PLL, which is used to drive the DDR PHY for the EMIF, does not use a PLL controller. The DDR3 PLL can be controlled using the DDR3PLLCTL0 and DDR3PLLCTL1 Registers located in the Bootcfg module. These MMRs exist inside the Bootcfg space. To write to these registers, software should go through an un-locking sequence using the KICK0/KICK1 registers. For suggested configurable values, see Section 4.3.4 for the address location of the registers and locking and unlocking sequences for accessing the registers. This register is reset on POR only.
31 | 24 | 23 | 22 | 19 | 18 | 6 | 5 | 0 |
BWADJ[7:0] | BYPASS | Reserved | PLLM | PLLD |
RW,+0000 1001 | RW,+0 | RW,+0001 | RW,+0000000010011 | RW,+000000 |
Legend: RW = Read/Write; -n = value after reset |
Bit | Field | Description |
---|---|---|
31-24 | BWADJ[7:0] | BWADJ[11:8] and BWADJ[7:0] are located in DDR3PLLCTL0 and DDR3PLLCTL1 registers. The combination (BWADJ[11:0]) should be programmed to a value related to PLLM[12:0] value based on the equation: BWADJ = ((PLLM+1)>>1) -1 |
23 | BYPASS | Enable bypass mode
|
22-19 | Reserved | Reserved |
18-6 | PLLM | A 13-bit bus that selects the values for the multiplication factor |
5-0 | PLLD | A 6-bit bus that selects the values for the reference divider |
31 | 14 | 13 | 12 | 7 | 6 | 5 | 4 | 3 | 0 |
Reserved | PLLRST | Reserved | ENSAT | Reserved | BWADJ[11:8] |
RW-000000000000000000 | RW-0 | RW-000000 | RW-0 | R-0 | RW-0000 |
Legend: RW = Read/Write; -n = value after reset |
Bit | Field | Description |
---|---|---|
31-14 | Reserved | Reserved |
13 | PLLRST | PLL reset bit.
|
12-7 | Reserved | Reserved |
6 | ENSAT | Needs to be set to 1 for proper operation of the PLL |
5-4 | Reserved | Reserved |
3-0 | BWADJ[11:8] | BWADJ[11:8] and BWADJ[7:0] are located in separate registers. The combination (BWADJ[11:0]) should be programmed to a value related to PLLM[12:0] value based on the equation: BWADJ = ((PLLM+1)>>1) -1 |
As shown in Figure 8-21, the output of DDR3 PLL (PLLOUT) is divided by 2 and directly fed to the DDR3 memory controller. The DDR3 PLL is affected by power-on reset. During power-on resets, the internal clocks of the DDR3 PLL are affected as described in Section 8.4. The DDR3 PLL is unlocked only during the power-up sequence and is locked by the time the RESETSTAT pin goes high. It does not lose lock during any of the other resets.
See the Phase Locked Loop (PLL) for KeyStone Devices User's Guide (SPRUGV2) for details on the initialization sequence for DDR3 PLL.
NO | MIN | MAX | UNIT | ||
---|---|---|---|---|---|
DDRCLK[P:N] | |||||
1 | tc(DDRCLKN) | Cycle time _ DDRCLKN cycle time | 3.2 | 25 | ns |
1 | tc(DDRCLKP) | Cycle time _ DDRCLKP cycle time | 3.2 | 25 | ns |
3 | tw(DDRCLKN) | Pulse width _ DDRCLKN high | 0.45*tc(DDRCLKN) | 0.55*tc(DDRCLKN) | ns |
2 | tw(DDRCLKN) | Pulse width _ DDRCLKN low | 0.45*tc(DDRCLKN) | 0.55*tc(DDRCLKN) | ns |
2 | tw(DDRCLKP) | Pulse width _ DDRCLKP high | 0.45*tc(DDRCLKP) | 0.55*tc(DDRCLKP) | ns |
3 | tw(DDRCLKP) | Pulse width _ DDRCLKP low | 0.45*tc(DDRCLKP) | 0.55*tc(DDRCLKP) | ns |
4 | tr(DDRCLK_250mv) | Transition time _ DDRCLK differential rise time (250 mV) | 50 | 350 | ps |
4 | tf(DDRCLK_250mv) | Transition time _ DDRCLK differential fall time (250 mV) | 50 | 350 | ps |
5 | tj(DDRCLKN) | Jitter, peak_to_peak _ periodic DDRCLKN | 0.025*tc(DDRCLKN) | ps | |
5 | tj(DDRCLKP) | Jitter, peak_to_peak _ periodic DDRCLKP | 0.025*tc(DDRCLKP) | ps |
The primary purpose of the EDMA3 is to service user-programmed data transfers between two memory-mapped slave endpoints on the device. The EDMA3 services software-driven paging transfers (e.g., data movement between external memory and internal memory), performs sorting or subframe extraction of various data structures, services event driven peripherals, and offloads data transfers from the device CPU.
There is one EDMA Channel Controller on the C6654 device: EDMA3_CC. It has four transfer controllers: TC0, TC1, TC2, and TC3. In the context of this document, TCx associated with CC is referred to as EDMA3_CC_TCx. Each of the transfer controllers has a direct connection to the switch fabric. Section 5.2 lists the peripherals that can be accessed by the transfer controllers.
The EDMA3 Channel Controller includes the following features:
The EDMA supports two addressing modes: constant addressing and increment addressing mode. Constant addressing mode is applicable to a very limited set of use cases. For most applications, increment mode must be used. On the C6654, the EDMA can use constant addressing mode only with the Enhanced Viterbi-Decoder Coprocessor (VCP) and the Enhanced Turbo Decoder Coprocessor (TCP). Constant addressing mode is not supported by any other peripheral or internal memory in the device. Note that increment mode is supported by all peripherals, including VCP and TCP. For more information on these two addressing modes, see the Enhanced Direct Memory Access 3 (EDMA3) for KeyStone Devices User's Guide (SPRUGS5).
For the range of memory addresses that include EDMA3 channel controller (EDMA3_CC) control registers and EDMA3 transfer controller (TC) control register, see Table 3-2. For memory offsets and other details on EDMA3_CC and TC control registers entries, see the Enhanced Direct Memory Access 3 (EDMA3) for KeyStone Devices User's Guide (SPRUGS5).
Table 8-30 provides the configuration of the EDMA3 channel controller present on the device.
DESCRIPTION | EDMA3 CC |
---|---|
Number of DMA channels in Channel Controller | 64 |
Number of QDMA channels | 8 |
Number of interrupt channels | 64 |
Number of PaRAM set entries | 512 |
Number of event queues | 4 |
Number of Transfer Controllers | 4 |
Memory Protection Existence | Yes |
Number of Memory Protection and Shadow Regions | 8 |
Each transfer controller on a device is designed differently based on considerations like performance requirements, system topology (like main TeraNet bus width, external memory bus width), and so on. The parameters that determine the transfer controller configurations are:
All four parameters listed above are specified by the design of the device.
Table 8-31 provides the configuration of the EDMA3 transfer controller present on the device.
PARAMETER | EDMA3 CC | |||
---|---|---|---|---|
TC0 | TC1 | TC2 | TC3 | |
FIFOSIZE | 1024 bytes | 512 bytes | 512 bytes | 1024 bytes |
BUSWIDTH | 16 bytes | 16 bytes | 16 bytes | 16 bytes |
DSTREGDEPTH | 4 entries | 4 entries | 4 entries | 4 entries |
DBS | 64 bytes | 64 bytes | 64 bytes | 64 bytes |
The EDMA3 supports up to 64 DMA channels for EDMA3_CC that can be used to service system peripherals and to move data between system memories. DMA channels can be triggered by synchronization events generated by system peripherals. The following tables lists the source of the synchronization event associated with each of the EDMA3_CC DMA channels. On the C6654, the association of each synchronization event and DMA channel is fixed and cannot be reprogrammed.
For more detailed information on the EDMA3 module and how EDMA3 events are enabled, captured, processed, prioritized, linked, chained, and cleared, etc., see the Enhanced Direct Memory Access 3 (EDMA3) for KeyStone Devices User's Guide (SPRUGS5).
EVENT NUMBER | EVENT | EVENT DESCRIPTION |
---|---|---|
0 | Reserved | |
1 | Reserved | |
2 | TINT2L | Timer2 interrupt low |
3 | TINT2H | Timer2 interrupt high |
4 | URXEVT | UART0 receive event |
5 | UTXEVT | UART0 transmit event |
6 | GPINT0 | GPIO interrupt |
7 | GPINT1 | GPIO interrupt |
8 | GPINT2 | GPIO Interrupt |
9 | GPINT3 | GPIO interrupt |
10 | Reserved | |
11 | Reserved | |
12 | Reserved | |
13 | Reserved | |
14 | URXEVT_B | UART1 receive event |
15 | UTXEVT_B | UART1 transmit event |
16 | SPIINT0 | SPI interrupt |
17 | SPIINT1 | SPI interrupt |
18 | SEMINT0 | Semaphore interrupt |
19 | SEMINT1 | Semaphore interrupt |
20 | SEMINT2 | Semaphore interrupt |
21 | SEMINT3 | Semaphore interrupt |
22 | TINT4L | Timer4 interrupt low |
23 | TINT4H | Timer4 interrupt high |
24 | TINT5L | Timer5 interrupt low |
25 | TINT5H | Timer5 interrupt high |
26 | TINT6L | Timer6 interrupt low |
27 | TINT6H | Timer6 interrupt high |
28 | TINT7L | Timer7 interrupt low |
29 | TINT7H | Timer7 interrupt high |
30 | SPIXEVT | SPI transmit event |
31 | SPIREVT | SPI receive event |
32 | I2CREVET | I2C receive event |
33 | I2CXEVT | I2C transmit event |
34 | TINT3L | Timer3 interrupt low |
35 | TINT3H | Timer3 interrupt high |
36 | MCBSP0_REVT | McBSP_0 receive event |
37 | MCBSP0_XEVT | McBSP_0 transmit event |
38 | MCBSP1_REVT | McBSP_1 receive event |
39 | MCBSP1_XEVT | McBSP_1 transmit event |
40 | TETBHFULLINT | TETB half full interrupt |
41 | TETBHFULLINT0 | TETB half full interrupt |
42 | TETBHFULLINT1 | TETB half full interrupt |
43 | CIC1_OUT0 | Interrupt Controller output |
44 | CIC1_OUT1 | Interrupt Controller output |
45 | CIC1_OUT2 | Interrupt Controller output |
46 | CIC1_OUT3 | Interrupt Controller output |
47 | CIC1_OUT4 | Interrupt Controller output |
48 | CIC1_OUT5 | Interrupt Controller output |
49 | CIC1_OUT6 | Interrupt Controller output |
50 | CIC1_OUT7 | Interrupt Controller output |
51 | CIC1_OUT8 | Interrupt Controller output |
52 | CIC1_OUT9 | Interrupt Controller output |
53 | CIC1_OUT10 | Interrupt Controller output |
54 | CIC1_OUT11 | Interrupt Controller output |
55 | CIC1_OUT12 | Interrupt Controller output |
56 | CIC1_OUT13 | Interrupt Controller output |
57 | CIC1_OUT14 | Interrupt Controller output |
58 | CIC1_OUT15 | Interrupt Controller output |
59 | CIC1_OUT16 | Interrupt Controller output |
60 | CIC1_OUT17 | Interrupt Controller output |
61 | TETBFULLINT | TETB full interrupt |
62 | TETBFULLINT0 | TETB full interrupt |
63 | TETBFULLINT1 | TETB full interrupt |
The CPU interrupts on the C6654 device are configured through the C66x CorePac Interrupt Controller. The interrupt controller allows for up to 128 system events to be programmed to any of the twelve CPU interrupt inputs (CPUINT4 - CPUINT15), the CPU exception input (EXCEP), or the advanced emulation logic. The 128 system events consist of both internally-generated events (within the CorePac) and chip-level events.
Additional system events are routed to each of the C66x CorePacs to provide chip-level events that are not required as CPU interrupts/exceptions to be routed to the interrupt controller as emulation events. In addition, error-class events or infrequently used events are also routed through the system event router to offload the C66x CorePac interrupt selector. This is accomplished through CIC blocks, CIC[1:0]. This is clocked using CPU/6.
The event controllers consist of simple combination logic to provide additional events to the C66x CorePacs, plus the EDMA3_CC and CIC0 provide 12 additional events as well as 8 broadcast events to the C66x CorePacs. CIC1 provides 18 additional events to EDMA3_CC.
There are a large number of events on the chip level. The chip level CIC provides a flexible way to combine and remap those events. Multiple events can be combined to a single event through chip level CIC. However, an event can be mapped only to a single event output from the chip level CIC. The chip level CIC also allows the software to trigger system events through memory writes. The broadcast events to C66x CorePacs can be used for synchronization among multiple cores, inter-processor communication purposes, etc. For more details on the CIC features, please refer to the Chip Interrupt Controller (CIC) for KeyStone Devices User's Guide (SPRUGW4).
NOTE
Modules such as MPU, Tracer, and BOOT_CFG have level interrupts and an EOI handshaking interface. The EOI value is 0 for MPU, Tracer, and BOOT_CFG.
Figure 8-25 shows the C6654 interrupt topology.
Table 8-33 shows the mapping of system events. For more information on the Interrupt Controller, see the C66x CorePac User's Guide (SPRUGW0).
INPUT EVENT NUMBER | INTERRUPT EVENT | DESCRIPTION |
---|---|---|
0 | EVT0 | Event combiner 0 output |
1 | EVT1 | Event combiner 1 output |
2 | EVT2 | Event combiner 2 output |
3 | EVT3 | Event combiner 3 output |
4 | TETBHFULLINTn(1) | TETB is half full |
5 | TETBFULLINTn(1) | TETB is full |
6 | TETBACQINTn(1) | Acquisition has been completed |
7 | TETBOVFLINTn(1) | Overflow condition interrupt |
8 | TETBUNFLINTn(1) | Underflow condition interrupt |
9 | EMU_DTDMA | ECM interrupt for:
|
10 | MSMC_mpf_errorn(2) | Memory protection fault indicators for local core |
11 | EMU_RTDXRX | RTDX receive complete |
12 | EMU_RTDXTX | RTDX transmit complete |
13 | IDMA0 | IDMA channel 0 interrupt |
14 | IDMA1 | IDMA channel 1 interrupt |
15 | SEMERRn(3) | Semaphore error interrupt |
16 | SEMINTn(3) | Semaphore interrupt |
17 | PCIExpress_MSI_INTn(4) | Message signaled interrupt mode |
18 | PCIExpress_MSI_INTn+4(4) | Message signaled interrupt mode |
19 | MACINTn(7) | EMAC interrupt |
20 | Reserved | |
21 | Reserved | |
22 | CIC0_OUT(0+20*n)(5) | Interrupt Controller Output |
23 | CIC0_OUT(1+20*n)(5) | Interrupt Controller Output |
24 | CIC0_OUT(2+20*n)(5) | Interrupt Controller Output |
25 | CIC0_OUT(3+20*n)(5) | Interrupt Controller Output |
26 | CIC0_OUT(4+20*n)(5) | Interrupt Controller Output |
27 | CIC0_OUT(5+20*n)(5) | Interrupt Controller Output |
28 | CIC0_OUT(6+20*n)(5) | Interrupt Controller Output |
29 | CIC0_OUT(7+20*n)(5) | Interrupt Controller Output |
30 | CIC0_OUT(8+20*n)(5) | Interrupt Controller Output |
31 | CIC0_OUT(9+20*n)(5) | Interrupt Controller Output |
32 | QM_INT_LOW_0 | QM Interrupt for 0~31 Queues |
33 | QM_INT_LOW_1 | QM Interrupt for 32~63 Queues |
34 | QM_INT_LOW_2 | QM Interrupt for 64~95 Queues |
35 | QM_INT_LOW_3 | QM Interrupt for 96~127 Queues |
36 | QM_INT_LOW_4 | QM Interrupt for 128~159 Queues |
37 | QM_INT_LOW_5 | QM Interrupt for 160~191 Queues |
38 | QM_INT_LOW_6 | QM Interrupt for 192~223 Queues |
39 | QM_INT_LOW_7 | QM Interrupt for 224~255 Queues |
40 | QM_INT_LOW_8 | QM Interrupt for 256~287 Queues |
41 | QM_INT_LOW_9 | QM Interrupt for 288~319 Queues |
42 | QM_INT_LOW_10 | QM Interrupt for 320~351 Queues |
43 | QM_INT_LOW_11 | QM Interrupt for 352~383 Queues |
44 | QM_INT_LOW_12 | QM Interrupt for 384~415 Queues |
45 | QM_INT_LOW_13 | QM Interrupt for 416~447 Queues |
46 | QM_INT_LOW_14 | QM Interrupt for 448~479 Queues |
47 | QM_INT_LOW_15 | QM Interrupt for 480~511 Queues |
48 | QM_INT_HIGH_n(5) | QM Interrupt for Queue 704+n(5) |
49 | QM_INT_HIGH_(n+4)(5) | QM Interrupt for Queue 708+n(5) |
50 | QM_INT_HIGH_(n+8)(5) | QM Interrupt for Queue 712+n(5) |
51 | QM_INT_HIGH_(n+12)(5) | QM Interrupt for Queue 716+n(5) |
52 | QM_INT_HIGH_(n+16)(5) | QM Interrupt for Queue 720+n(5) |
53 | QM_INT_HIGH_(n+20)(5) | QM Interrupt for Queue 724+n(5) |
54 | QM_INT_HIGH_(n+24)(5) | QM Interrupt for Queue 728+n(5) |
55 | QM_INT_HIGH_(n+28)(5) | QM Interrupt for Queue 732+n(5) |
56 | CIC0_OUT40 | Interrupt Controller Output |
57 | CIC0_OUT41 | Interrupt Controller Output |
58 | CIC0_OUT42 | Interrupt Controller Output |
59 | CIC0_OUT43 | Interrupt Controller Output |
60 | CIC0_OUT44 | Interrupt Controller Output |
61 | CIC0_OUT45 | Interrupt Controller Output |
62 | CIC0_OUT46 | Interrupt Controller Output |
63 | CIC0_OUT47 | Interrupt Controller Output |
64 | TINTLn(6) | Local timer interrupt low |
65 | TINTHn(6) | Local timer interrupt high |
66 | TINT2L | Timer2 interrupt low |
67 | TINT2H | Timer2 interrupt high |
68 | TINT3L | Timer3 interrupt low |
69 | TINT3H | Timer3 interrupt high |
70 | PCIExpress_MSI_INTn+2(4) | Message signaled interrupt mode |
71 | PCIExpress_MSI_INTn+6(4) | Message signaled interrupt mode |
72 | GPINT2 | GPIO interrupt |
73 | GPINT3 | GPIO interrupt |
74 | MACINTn+2(7) | EMAC interrupt |
75 | MACTXINTn+2(7) | EMAC interrupt |
76 | MACTRESHn+2(7) | EMAC interrupt |
77 | MACRXINTn+2(7) | EMAC interrupt |
78 | GPINT4 | GPIO interrupt |
79 | GPINT5 | GPIO interrupt |
80 | GPINT6 | GPIO interrupt |
81 | GPINT7 | GPIO interrupt |
82 | GPINT8 | GPIO interrupt |
83 | GPINT9 | GPIO interrupt |
84 | GPINT10 | GPIO interrupt |
85 | GPINT11 | GPIO interrupt |
86 | GPINT12 | GPIO interrupt |
87 | GPINT13 | GPIO interrupt |
88 | GPINT14 | GPIO interrupt |
89 | GPINT15 | GPIO interrupt |
90 | IPC_LOCAL | Inter DSP interrupt from IPCGRn |
91 | GPINTn(8) | Local GPIO interrupt |
92 | CIC0_OUT(10+20*n)(5) | Interrupt Controller Output |
93 | CIC0_OUT(11+20*n)(5) | Interrupt Controller Output |
94 | MACTXINTn(7) | EMAC interrupt |
95 | MACTRESHn(7) | EMAC interrupt |
96 | INTERR | Dropped CPU interrupt event |
97 | EMC_IDMAERR | Invalid IDMA parameters |
98 | Reserved | |
99 | MACRXINTn(7) | EMAC interrupt |
100 | EFIINTA | EFI Interrupt from side A |
101 | EFIINTB | EFI Interrupt from side B |
102 | QM_INT_HIGH_(n+2)(5) | QM Interrupt for Queue 706+n(5) |
103 | QM_INT_HIGH_(n+6)(5) | QM Interrupt for Queue 710+n(5) |
104 | QM_INT_HIGH_(n+10)(5) | QM Interrupt for Queue 714+n(5) |
105 | QM_INT_HIGH_(n+14)(5) | QM Interrupt for Queue 718+n(5) |
106 | QM_INT_HIGH_(n+18)(5) | QM Interrupt for Queue 722+n(5) |
107 | QM_INT_HIGH_(n+22)(5) | QM Interrupt for Queue 726+n(5) |
108 | QM_INT_HIGH_(n+26)(5) | QM Interrupt for Queue 730+n(5) |
109 | QM_INT_HIGH_(n+30)(5) | QM Interrupt for Queue 734+n(5) |
110 | MDMAERREVT | VbusM error event |
111 | Reserved | |
112 | Reserved | |
113 | PMC_ED | Single bit error detected during DMA read |
114 | Reserved | |
115 | EDMA3_CC_AETEVT | EDMA3 CC AET Event |
116 | UMC_ED1 | Corrected bit error detected |
117 | UMC_ED2 | Uncorrected bit error detected |
118 | PDC_INT | Power down sleep interrupt |
119 | SYS_CMPA | SYS CPU memory protection fault event |
120 | PMC_CMPA | PMC CPU memory protection fault event |
121 | PMC_DMPA | PMC DMA memory protection fault event |
122 | DMC_CMPA | DMC CPU memory protection fault event |
123 | DMC_DMPA | DMC DMA memory protection fault event |
124 | UMC_CMPA | UMC CPU memory protection fault event |
125 | UMC_DMPA | UMC DMA memory protection fault event |
126 | EMC_CMPA | EMC CPU memory protection fault event |
127 | EMC_BUSERR | EMC bus error interrupt |
INPUT EVENT# ON CIC | SYSTEM INTERRUPT | DESCRIPTION |
---|---|---|
0 | GPINT16 | GPIO interrupt |
1 | GPINT17 | GPIO interrupt |
2 | GPINT18 | GPIO interrupt |
3 | GPINT19 | GPIO interrupt |
4 | GPINT20 | GPIO interrupt |
5 | GPINT21 | GPIO interrupt |
6 | GPINT22 | GPIO interrupt |
7 | GPINT23 | GPIO interrupt |
8 | GPINT24 | GPIO interrupt |
9 | GPINT25 | GPIO interrupt |
10 | GPINT26 | GPIO interrupt |
11 | GPINT27 | GPIO interrupt |
12 | GPINT28 | GPIO interrupt |
13 | GPINT29 | GPIO interrupt |
14 | GPINT30 | GPIO interrupt |
15 | GPINT31 | GPIO interrupt |
16 | EDMA3_CC_ERRINT | EDMA3_CC error interrupt |
17 | EDMA3_CC_MPINT | EDMA3_CC memory protection interrupt |
18 | EDMA3_TC_ERRINT0 | EDMA3_CC TC0 error interrupt |
19 | EDMA3_TC_ERRINT1 | EDMA3_CC TC1 error interrupt |
20 | EDMA3_TC_ERRINT2 | EDMA3_CC TC2 error interrupt |
21 | EDMA3_TC_ERRINT3 | EDMA3_CC TC3 error interrupt |
22 | EDMA3_CC_GINT | EDMA3_CC GINT |
23 | Reserved | |
24 | EDMA3_CC_INT0 | EDMA3_CC individual completion interrupt |
25 | EDMA3_CC_INT1 | EDMA3_CC individual completion interrupt |
26 | EDMA3_CC_INT2 | EDMA3_CC individual completion interrupt |
27 | EDMA3_CC_INT3 | EDMA3_CC individual completion interrupt |
28 | EDMA3_CC_INT4 | EDMA3_CC individual completion interrupt |
29 | EDMA3_CC_INT5 | EDMA3_CC individual completion interrupt |
30 | EDMA3_CC_INT6 | EDMA3_CC individual completion interrupt |
31 | EDMA3_CC_INT7 | EDMA3_CC individual completion interrupt |
32 | MCBSP0_RINT | McBSP0 interrupt |
33 | MCBSP0_XINT | McBSP0 interrupt |
34 | MCBSP0_REVT | McBSP0 interrupt |
35 | MCBSP0_XEVT | McBSP0 interrupt |
36 | MCBSP1_RINT | McBSP1 interrupt |
37 | MCBSP1_XINT | McBSP1 interrupt |
38 | MCBSP1_REVT | McBSP1 interrupt |
39 | MCBSP1_XEVT | McBSP1 interrupt |
40 | UARTINT_B | UART_1 interrupt |
41 | URXEVT_B | UART_1 interrupt |
42 | UTXEVT_B | UART_1 interrupt |
43 | Reserved | |
44 | Reserved | |
45 | Reserved | |
46 | Reserved | |
47 | Reserved | |
48 | PCIEXpress_ERR_INT | Protocol error interrupt |
49 | PCIEXpress_PM_INT | Power management interrupt |
50 | PCIEXpress_Legacy_INTA | Legacy interrupt mode |
51 | PCIEXpress_Legacy_INTB | Legacy interrupt mode |
52 | PCIEXpress_Legacy_CIC | Legacy interrupt mode |
53 | PCIEXpress_Legacy_INTD | Legacy interrupt mode |
54 | SPIINT0 | SPI interrupt0 |
55 | SPIINT1 | SPI interrupt1 |
56 | SPIXEVT | Transmit event |
57 | SPIREVT | Receive event |
58 | I2CINT | I2C interrupt |
59 | I2CREVT | I2C receive event |
60 | I2CXEVT | I2C transmit event |
61 | Reserved | |
62 | Reserved | |
63 | TETBHFULLINT | TETB is half full |
64 | TETBFULLINT | TETB is full |
65 | TETBACQINT | Acquisition has been completed |
66 | TETBOVFLINT | Overflow condition occur |
67 | TETBUNFLINT | Underflow condition occur |
68 | SEMINT2 | Semaphore interrupt |
69 | SEMINT3 | Semaphore interrupt |
70 | SEMERR2 | Semaphore interrupt |
71 | SEMERR3 | Semaphore interrupt |
72 | Reserved | |
73 | Tracer_core_0_INTD | Tracer sliding time window interrupt for individual core |
74 | Reserved | |
75 | Reserved | |
76 | Reserved | |
77 | Tracer_DDR_INTD | Tracer sliding time window interrupt for DDR3 EMIF1 |
78 | Tracer_MSMC_0_INTD | Tracer sliding time window interrupt for MSMC SRAM bank0 |
79 | Tracer_MSMC_1_INTD | Tracer sliding time window interrupt for MSMC SRAM bank1 |
80 | Tracer_MSMC_2_INTD | Tracer sliding time window interrupt for MSMC SRAM bank2 |
81 | Tracer_MSMC_3_INTD | Tracer sliding time window interrupt for MSMC SRAM bank3 |
81 | Tracer_CFG_INTD | Tracer sliding time window interrupt for CFG0 TeraNet |
82 | Tracer_QM_CFG_INTD | Tracer sliding time window interrupt for QM_SS CFG |
84 | Tracer_QM_DMA_INTD | Tracer sliding time window interrupt for QM_SS slave |
85 | Tracer_SM_INTD | Tracer sliding time window interrupt for semaphore |
86 | PSC_ALLINT | Power/sleep controller interrupt |
87 | Reserved | |
88 | BOOTCFG_INTD | Chip-level MMR error register |
89 | po_vcon_smpserr_intr | SmartReflex VolCon error status |
90 | MPU0_INTD (MPU0_ADDR_ERR_INT and MPU0_PROT_ERR_INT combined) | MPU0 addressing violation interrupt and protection violation interrupt. |
91 | Reserved | |
92 | MPU1_INTD (MPU1_ADDR_ERR_INT and MPU1_PROT_ERR_INT combined) | MPU1 addressing violation interrupt and protection violation interrupt. |
93 | Reserved | |
94 | MPU2_INTD (MPU2_ADDR_ERR_INT and MPU2_PROT_ERR_INT combined) | MPU2 addressing violation interrupt and protection violation interrupt. |
95 | Reserved | |
96 | MPU3_INTD (MPU3_ADDR_ERR_INT and MPU3_PROT_ERR_INT combined) | MPU3 addressing violation interrupt and protection violation interrupt. |
97 | Reserved | |
98 | Reserved | |
99 | Reserved | |
100 | Reserved | |
101 | Reserved | |
102 | MSMC_mpf_error8 | Memory protection fault indicators for each system master PrivID |
103 | MSMC_mpf_error9 | Memory protection fault indicators for each system master PrivID |
104 | MSMC_mpf_error10 | Memory protection fault indicators for each system master PrivID |
105 | MSMC_mpf_error11 | Memory protection fault indicators for each system master PrivID |
105 | MSMC_mpf_error12 | Memory protection fault indicators for each system master PrivID |
107 | MSMC_mpf_error13 | Memory protection fault indicators for each system master PrivID |
108 | MSMC_mpf_error14 | Memory protection fault indicators for each system master PrivID |
109 | MSMC_mpf_error15 | Memory protection fault indicators for each system master PrivID |
110 | DDR3_ERR | DDR3 EMIF error interrupt |
111 | Reserved | |
112 | Reserved | |
113 | Reserved | |
114 | Reserved | |
115 | Reserved | |
116 | Reserved | |
117 | Reserved | |
118 | Reserved | |
119 | Reserved | |
120 | Reserved | |
121 | Reserved | |
122 | Reserved | |
123 | Reserved | |
124 | Reserved | |
125 | Reserved | |
126 | Reserved | |
127 | Reserved | |
128 | Reserved | |
129 | Reserved | |
130 | po_vp_smpsack_intr | Indicating that Volt_Proc receives the r-edge at its smpsack input |
131 | Reserved | |
132 | Reserved | |
133 | Reserved | |
134 | QM_INT_PASS_TXQ_PEND_662 | Queue manager pend event |
135 | QM_INT_PASS_TXQ_PEND_663 | Queue manager pend event |
136 | QM_INT_PASS_TXQ_PEND_664 | Queue manager pend event |
137 | QM_INT_PASS_TXQ_PEND_665 | Queue manager pend event |
138 | QM_INT_PASS_TXQ_PEND_666 | Queue manager pend event |
139 | QM_INT_PASS_TXQ_PEND_667 | Queue manager pend event |
140 | QM_INT_PASS_TXQ_PEND_668 | Queue manager pend event |
141 | QM_INT_PASS_TXQ_PEND_669 | Queue manager pend event |
142 | QM_INT_PASS_TXQ_PEND_670 | Queue manager pend event |
143 | Reserved | |
144 | Reserved | |
145 | TINT4L | Timer4 interrupt low |
146 | TINT4H | Timer4 interrupt high |
147 | Reserved | |
148 | Reserved | |
149 | Reserved | |
150 | Reserved | |
151 | TINT5L | Timer5 interrupt low |
152 | TINT5H | Timer5 interrupt high |
153 | TINT6L | Timer6 interrupt low |
154 | TINT6H | Timer6 interrupt high |
155 | Reserved | |
156 | UPPINT | uPP interrupt |
157 | Reserved | |
158 | Reserved | |
159 | Reserved | |
160 | MSMC_mpf_error2 | Memory protection fault indicators for each system master PrivID |
161 | MSMC_mpf_error3 | Memory protection fault indicators for each system master PrivID |
162 | TINT7L | Timer7 interrupt low |
163 | TINT7H | Timer7interrupt high |
164 | UARTINT_A | UART_0 interrupt |
165 | URXEVT_A | UART_0 interrupt |
166 | UTXEVT_A | UART_0 interrupt |
167 | EASYNCERR | EMIF16 error interrupt |
168 | Tracer_EMIF16 | Tracer sliding time window interrupt for EMIF16 |
169 | Reserved | |
170 | MSMC_mpf_error4 | Memory protection fault indicators for each system master PrivID |
171 | MSMC_mpf_error5 | Memory protection fault indicators for each system master PrivID |
172 | MSMC_mpf_error6 | Memory protection fault indicators for each system master PrivID |
173 | MSMC_mpf_error7 | Memory protection fault indicators for each system master PrivID |
174 | MPU4_INTD (MPU4_ADDR_ERR_INT and MPU4_PROT_ERR_INT combined) | MPU4 addressing violation interrupt and protection violation interrupt. |
175 | QM_INT_PASS_TXQ_PEND_671 | Queue manager pend event |
176 | QM_INT_PKTDMA_0 | QM interrupt for CDMA starvation |
177 | QM_INT_PKTDMA_1 | QM interrupt for CDMA starvation |
178 | Reserved | |
179 | Reserved | |
180 | Reserved | |
181 | SmartReflex_intrreq0 | SmartReflex sensor interrupt |
182 | SmartReflex_intrreq1 | SmartReflex sensor interrupt |
183 | SmartReflex_intrreq2 | SmartReflex sensor interrupt |
184 | SmartReflex_intrreq3 | SmartReflex sensor interrupt |
185 | VPNoSMPSAck | VPVOLTUPDATE has been asserted but SMPS has not been responded to in a defined time interval |
186 | VPEqValue | SRSINTERUPT is asserted, but the new voltage is not different from the current SMPS voltage |
187 | VPMaxVdd | The new voltage required is equal to or greater than MaxVdd. |
188 | VPMinVdd | The new voltage required is equal to or less than MinVdd. |
189 | VPINIDLE | Indicating that the FSM of voltage processor is in idle. |
190 | VPOPPChangeDone | Indicating that the average frequency error is within the desired limit. |
191 | Reserved | |
192 | MACINT4 | EMAC interrupt |
193 | MACRXINT4 | EMAC interrupt |
194 | MACTXINT4 | EMAC interrupt |
195 | MACTRESH4 | EMAC interrupt |
196 | MACINT5 | EMAC interrupt |
197 | MACRXINT5 | EMAC interrupt |
198 | MACTXINT5 | EMAC interrupt |
199 | MACTRESH5 | EMAC interrupt |
200 | MACINT6 | EMAC interrupt |
201 | MACRXINT6 | EMAC interrupt |
202 | MACTXINT6 | EMAC interrupt |
203 | MACTRESH6 | EMAC interrupt |
204 | MACINT7 | EMAC interrupt |
205 | MACRXINT7 | EMAC interrupt |
206 | MACTXINT7 | EMAC interrupt |
207 | MACTRESH7 | EMAC interrupt |
INPUT EVENT # ON CIC | SYSTEM INTERRUPT | DESCRIPTION |
---|---|---|
0 | GPINT8 | GPIO interrupt |
1 | GPINT9 | GPIO interrupt |
2 | GPINT10 | GPIO interrupt |
3 | GPINT11 | GPIO interrupt |
4 | GPINT12 | GPIO interrupt |
5 | GPINT13 | GPIO interrupt |
6 | GPINT14 | GPIO interrupt |
7 | GPINT15 | GPIO interrupt |
8 | Reserved | |
9 | Reserved | |
10 | TETBACQINT | System TETB acquisition has been completed |
11 | Reserved | |
12 | Reserved | |
13 | TETBACQINT0 | TETB0 acquisition has been completed |
14 | Reserved | |
15 | Reserved | |
16 | Reserved | |
17 | GPINT16 | GPIO interrupt |
18 | GPINT17 | GPIO interrupt |
19 | GPINT18 | GPIO interrupt |
20 | GPINT19 | GPIO interrupt |
21 | GPINT20 | GPIO interrupt |
22 | GPINT21 | GPIO interrupt |
23 | Reserved | |
24 | QM_INT_HIGH_16 | QM interrupt |
25 | QM_INT_HIGH_17 | QM interrupt |
26 | QM_INT_HIGH_18 | QM interrupt |
27 | QM_INT_HIGH_19 | QM interrupt |
28 | QM_INT_HIGH_20 | QM interrupt |
29 | QM_INT_HIGH_21 | QM interrupt |
30 | QM_INT_HIGH_22 | QM interrupt |
31 | QM_INT_HIGH_23 | QM interrupt |
32 | QM_INT_HIGH_24 | QM interrupt |
33 | QM_INT_HIGH_25 | QM interrupt |
34 | QM_INT_HIGH_26 | QM interrupt |
35 | QM_INT_HIGH_27 | QM interrupt |
36 | QM_INT_HIGH_28 | QM interrupt |
37 | QM_INT_HIGH_29 | QM interrupt |
38 | QM_INT_HIGH_30 | QM interrupt |
39 | QM_INT_HIGH_31 | QM interrupt |
40 | Reserved | |
41 | Reserved | |
42 | Reserved | |
43 | Reserved | |
44 | Reserved | |
45 | Tracer_core_0_INTD | Tracer sliding time window interrupt for individual core |
46 | Reserved | |
47 | GPINT22 | GPIO interrupt |
48 | GPINT23 | GPIO interrupt |
49 | Tracer_DDR_INTD | Tracer sliding time window interrupt for DDR3 EMIF |
50 | Tracer_MSMC_0_INTD | Tracer sliding time window interrupt for MSMC SRAM bank0 |
51 | Tracer_MSMC_1_INTD | Tracer sliding time window interrupt for MSMC SRAM bank1 |
52 | Tracer_MSMC_2_INTD | Tracer sliding time window interrupt for MSMC SRAM bank2 |
53 | Tracer_MSMC_3_INTD | Tracer sliding time window interrupt for MSMC SRAM bank3 |
54 | Tracer_CFG_INTD | Tracer sliding time window interrupt for CFG0 TeraNet |
55 | Tracer_QM_CFG_INTD | Tracer sliding time window interrupt for QM_SS CFG |
56 | Tracer_QM_DMA_INTD | Tracer sliding time window interrupt for QM_SS slave port |
57 | Tracer_SEM_INTD | Tracer sliding time window interrupt for semaphore |
58 | SEMERR0 | Semaphore interrupt |
59 | SEMERR1 | Semaphore interrupt |
60 | SEMERR2 | Semaphore interrupt |
61 | SEMERR3 | Semaphore interrupt |
62 | BOOTCFG_INTD | BOOTCFG interrupt BOOTCFG_ERR and BOOTCFG_PROT |
63 | UPPINT | uPP interrupt |
64 | MPU0_INTD (MPU0_ADDR_ERR_INT and MPU0_PROT_ERR_INT combined) | MPU0 addressing violation interrupt and protection violation interrupt. |
65 | Reserved | |
66 | MPU1_INTD (MPU1_ADDR_ERR_INT and MPU1_PROT_ERR_INT combined) | MPU1 addressing violation interrupt and protection violation interrupt. |
67 | Reserved | |
68 | MPU2_INTD (MPU2_ADDR_ERR_INT and MPU2_PROT_ERR_INT combined) | MPU2 addressing violation interrupt and protection violation interrupt. |
69 | QM_INT_PKTDMA_0 | QM interrupt for packet DMA starvation |
70 | MPU3_INTD (MPU3_ADDR_ERR_INT and MPU3_PROT_ERR_INT combined) | MPU3 addressing violation interrupt and protection violation interrupt. |
71 | QM_INT_PKTDMA_1 | QM interrupt for packet DMA starvation |
72 | Reserved | |
73 | Reserved | |
74 | Reserved | |
75 | Reserved | |
76 | MSMC_mpf_error0 | Memory protection fault indicators for each system master PrivID |
77 | MSMC_mpf_error1 | Memory protection fault indicators for each system master PrivID |
78 | MSMC_mpf_error2 | Memory protection fault indicators for each system master PrivID |
79 | MSMC_mpf_error3 | Memory protection fault indicators for each system master PrivID |
80 | MSMC_mpf_error4 | Memory protection fault indicators for each system master PrivID |
81 | MSMC_mpf_error5 | Memory protection fault indicators for each system master PrivID |
82 | MSMC_mpf_error6 | Memory protection fault indicators for each system master PrivID |
83 | MSMC_mpf_error7 | Memory protection fault indicators for each system master PrivID |
84 | MSMC_mpf_error8 | Memory protection fault indicators for each system master PrivID |
85 | MSMC_mpf_error9 | Memory protection fault indicators for each system master PrivID |
86 | MSMC_mpf_error10 | Memory protection fault indicators for each system master PrivID |
87 | MSMC_mpf_error11 | Memory protection fault indicators for each system master PrivID |
88 | MSMC_mpf_error12 | Memory protection fault indicators for each system master PrivID |
89 | MSMC_mpf_error13 | Memory protection fault indicators for each system master PrivID |
90 | MSMC_mpf_error14 | Memory protection fault indicators for each system master PrivID |
91 | MSMC_mpf_error15 | Memory protection fault indicators for each system master PrivID |
92 | Reserved | |
93 | Reserved | |
94 | Reserved | |
95 | Reserved | |
96 | Reserved | |
97 | Reserved | |
98 | Reserved | |
99 | Reserved | |
100 | Reserved | |
101 | Reserved | |
102 | Reserved | |
103 | Reserved | |
104 | Reserved | |
105 | Reserved | |
106 | Reserved | |
107 | Reserved | |
108 | Reserved | |
109 | Reserved | |
110 | Reserved | |
111 | Reserved | |
112 | Reserved | |
113 | Reserved | |
114 | Reserved | |
115 | Reserved | |
116 | Reserved | |
117 | GPINT24 | GPIO interrupt |
118 | GPINT25 | GPIO interrupt |
119 | Reserved | |
120 | Reserved | |
121 | GPINT26 | GPIO interrupt |
122 | GPINT27 | GPIO interrupt |
123 | Reserved | |
124 | GPINT28 | GPIO interrupt |
125 | GPINT29 | GPIO interrupt |
126 | GPINT30 | GPIO interrupt |
127 | GPINT31 | GPIO interrupt |
128 | GPINT4 | GPIO interrupt |
129 | GPINT5 | GPIO interrupt |
130 | GPINT6 | GPIO interrupt |
131 | GPINT7 | GPIO interrupt |
132 | Reserved | |
133 | Tracer_EMIF16 | Tracer sliding time window interrupt for EMIF16 |
134 | EASYNCERR | EMIF16 error interrupt |
135 | MPU4_INTD (MPU4_ADDR_ERR_INT and MPU4_PROT_ERR_INT combined) | MPU4 addressing violation interrupt and protection violation interrupt. |
136 | Reserved | |
137 | QM_INT_HIGH_0 | QM interrupt |
138 | QM_INT_HIGH_1 | QM interrupt |
139 | QM_INT_HIGH_2 | QM interrupt |
140 | QM_INT_HIGH_3 | QM interrupt |
141 | QM_INT_HIGH_4 | QM interrupt |
142 | QM_INT_HIGH_5 | QM interrupt |
143 | QM_INT_HIGH_6 | QM interrupt |
144 | QM_INT_HIGH_7 | QM interrupt |
145 | QM_INT_HIGH_8 | QM interrupt |
146 | QM_INT_HIGH_9 | QM interrupt |
147 | QM_INT_HIGH_10 | QM interrupt |
148 | QM_INT_HIGH_11 | QM interrupt |
149 | QM_INT_HIGH_12 | QM interrupt |
150 | QM_INT_HIGH_13 | QM interrupt |
151 | QM_INT_HIGH_14 | QM interrupt |
152 | QM_INT_HIGH_15 | QM interrupt |
153 | Reserved | |
154 | Reserved | |
155 | Reserved | |
156 | Reserved | |
157 | Reserved | |
158 | Reserved | |
159 | DDR3_ERR | DDR3 error interrupt |
This section includes the offsets for CIC registers. The base addresses for interrupt control registers are CIC0 - 0x0260 0000 and CIC1 - 0x0260 4000.
ADDRESS OFFSET | REGISTER MNEMONIC | REGISTER NAME |
---|---|---|
0x0 | REVISION_REG | Revision Register |
0x4 | CONTROL_REG | Control Register |
0xc | HOST_CONTROL_REG | Host Control Register |
0x10 | GLOBAL_ENABLE_HINT_REG | Global Host Int Enable Register |
0x20 | STATUS_SET_INDEX_REG | Status Set Index Register |
0x24 | STATUS_CLR_INDEX_REG | Status Clear Index Register |
0x28 | ENABLE_SET_INDEX_REG | Enable Set Index Register |
0x2c | ENABLE_CLR_INDEX_REG | Enable Clear Index Register |
0x34 | HINT_ENABLE_SET_INDEX_REG | Host Int Enable Set Index Register |
0x38 | HINT_ENABLE_CLR_INDEX_REG | Host Int Enable Clear Index Register |
0x200 | RAW_STATUS_REG0 | Raw Status Register 0 |
0x204 | RAW_STATUS_REG1 | Raw Status Register 1 |
0x208 | RAW_STATUS_REG2 | Raw Status Register 2 |
0x20c | RAW_STATUS_REG3 | Raw Status Register 3 |
0x210 | RAW_STATUS_REG4 | Raw Status Register 4 |
0x214 | RAW_STATUS_REG5 | Raw Status Register 5 |
0x218 | RAW_STATUS_REG6 | Raw Status Register 6 |
0x280 | ENA_STATUS_REG0 | Enabled Status Register 0 |
0x284 | ENA_STATUS_REG1 | Enabled Status Register 1 |
0x288 | ENA_STATUS_REG2 | Enabled Status Register 2 |
0x28c | ENA_STATUS_REG3 | Enabled Status Register 3 |
0x290 | ENA_STATUS_REG4 | Enabled Status Register 4 |
0x294 | ENA_STATUS_REG5 | Enabled Status Register 5 |
0x298 | ENA_STATUS_REG6 | Enabled Status Register 6 |
0x300 | ENABLE_REG0 | Enable Register 0 |
0x304 | ENABLE_REG1 | Enable Register 1 |
0x308 | ENABLE_REG2 | Enable Register 2 |
0x30c | ENABLE_REG3 | Enable Register 3 |
0x310 | ENABLE_REG4 | Enable Register 4 |
0x314 | ENABLE_REG5 | Enable Register 5 |
0x318 | ENABLE_REG6 | Enable Register 6 |
0x380 | ENABLE_CLR_REG0 | Enable Clear Register 0 |
0x384 | ENABLE_CLR_REG1 | Enable Clear Register 1 |
0x388 | ENABLE_CLR_REG2 | Enable Clear Register 2 |
0x38c | ENABLE_CLR_REG3 | Enable Clear Register 3 |
0x390 | ENABLE_CLR_REG4 | Enable Clear Register 4 |
0x394 | ENABLE_CLR_REG5 | Enable Clear Register 5 |
0x398 | ENABLE_CLR_REG6 | Enable Clear Register 6 |
0x400 | CH_MAP_REG0 | Interrupt Channel Map Register for 0 to 0+3 |
0x404 | CH_MAP_REG1 | Interrupt Channel Map Register for 4 to 4+3 |
0x408 | CH_MAP_REG2 | Interrupt Channel Map Register for 8 to 8+3 |
0x40c | CH_MAP_REG3 | Interrupt Channel Map Register for 12 to 12+3 |
0x410 | CH_MAP_REG4 | Interrupt Channel Map Register for 16 to 16+3 |
0x414 | CH_MAP_REG5 | Interrupt Channel Map Register for 20 to 20+3 |
0x418 | CH_MAP_REG6 | Interrupt Channel Map Register for 24 to 24+3 |
0x41c | CH_MAP_REG7 | Interrupt Channel Map Register for 28 to 28+3 |
0x420 | CH_MAP_REG8 | Interrupt Channel Map Register for 32 to 32+3 |
0x424 | CH_MAP_REG9 | Interrupt Channel Map Register for 36 to 36+3 |
0x428 | CH_MAP_REG10 | Interrupt Channel Map Register for 40 to 40+3 |
0x42c | CH_MAP_REG11 | Interrupt Channel Map Register for 44 to 44+3 |
0x430 | CH_MAP_REG12 | Interrupt Channel Map Register for 48 to 48+3 |
0x434 | CH_MAP_REG13 | Interrupt Channel Map Register for 52 to 52+3 |
0x438 | CH_MAP_REG14 | Interrupt Channel Map Register for 56 to 56+3 |
0x43c | CH_MAP_REG15 | Interrupt Channel Map Register for 60 to 60+3 |
0x440 | CH_MAP_REG16 | Interrupt Channel Map Register for 64 to 64+3 |
0x444 | CH_MAP_REG17 | Interrupt Channel Map Register for 68 to 68+3 |
0x448 | CH_MAP_REG18 | Interrupt Channel Map Register for 72 to 72+3 |
0x44c | CH_MAP_REG19 | Interrupt Channel Map Register for 76 to 76+3 |
0x450 | CH_MAP_REG20 | Interrupt Channel Map Register for 80 to 80+3 |
0x454 | CH_MAP_REG21 | Interrupt Channel Map Register for 84 to 84+3 |
0x458 | CH_MAP_REG22 | Interrupt Channel Map Register for 88 to 88+3 |
0x45c | CH_MAP_REG23 | Interrupt Channel Map Register for 92 to 92+3 |
0x460 | CH_MAP_REG24 | Interrupt Channel Map Register for 96 to 96+3 |
0x464 | CH_MAP_REG25 | Interrupt Channel Map Register for 100 to 100+3 |
0x468 | CH_MAP_REG26 | Interrupt Channel Map Register for 104 to 104+3 |
0x46c | CH_MAP_REG27 | Interrupt Channel Map Register for 108 to 108+3 |
0x470 | CH_MAP_REG28 | Interrupt Channel Map Register for 112 to 112+3 |
0x474 | CH_MAP_REG29 | Interrupt Channel Map Register for 116 to 116+3 |
0x478 | CH_MAP_REG30 | Interrupt Channel Map Register for 120 to 120+3 |
0x47c | CH_MAP_REG31 | Interrupt Channel Map Register for 124 to 124+3 |
0x480 | CH_MAP_REG32 | Interrupt Channel Map Register for 128 to 128+3 |
0x484 | CH_MAP_REG33 | Interrupt Channel Map Register for 132 to 132+3 |
0x488 | CH_MAP_REG34 | Interrupt Channel Map Register for 136 to 136+3 |
0x48c | CH_MAP_REG35 | Interrupt Channel Map Register for 140 to 140+3 |
0x490 | CH_MAP_REG36 | Interrupt Channel Map Register for 144 to 144+3 |
0x494 | CH_MAP_REG37 | Interrupt Channel Map Register for 148 to 148+3 |
0x498 | CH_MAP_REG38 | Interrupt Channel Map Register for 152 to 152+3 |
0x49c | CH_MAP_REG39 | Interrupt Channel Map Register for 156 to 156+3 |
0x4a0 | CH_MAP_REG40 | Interrupt Channel Map Register for 160 to 160+3 |
0x4a4 | CH_MAP_REG41 | Interrupt Channel Map Register for 164 to 164+3 |
0x4a8 | CH_MAP_REG42 | Interrupt Channel Map Register for 168 to 168+3 |
0x4ac | CH_MAP_REG43 | Interrupt Channel Map Register for 172 to 172+3 |
0x4b0 | CH_MAP_REG44 | Interrupt Channel Map Register for 176 to 176+3 |
0x4b4 | CH_MAP_REG45 | Interrupt Channel Map Register for 180 to 180+3 |
0x4b8 | CH_MAP_REG46 | Interrupt Channel Map Register for 184 to 184+3 |
0x4bc | CH_MAP_REG47 | Interrupt Channel Map Register for 188 to 188+3 |
0x4c0 | CH_MAP_REG48 | Interrupt Channel Map Register for 192 to 192+3 |
0x4c4 | CH_MAP_REG49 | Interrupt Channel Map Register for 196 to 196+3 |
0x4c8 | CH_MAP_REG50 | Interrupt Channel Map Register for 200 to 200+3 |
0x4cc | CH_MAP_REG51 | Interrupt Channel Map Register for 204 to 204+3 |
0x800 | HINT_MAP_REG0 | Host Interrupt Map Register for 0 to 0+3 |
0x804 | HINT_MAP_REG1 | Host Interrupt Map Register for 4 to 4+3 |
0x808 | HINT_MAP_REG2 | Host Interrupt Map Register for 8 to 8+3 |
0x80c | HINT_MAP_REG3 | Host Interrupt Map Register for 12 to 12+3 |
0x810 | HINT_MAP_REG4 | Host Interrupt Map Register for 16 to 16+3 |
0x814 | HINT_MAP_REG5 | Host Interrupt Map Register for 20 to 20+3 |
0x818 | HINT_MAP_REG6 | Host Interrupt Map Register for 24 to 24+3 |
0x81c | HINT_MAP_REG7 | Host Interrupt Map Register for 28 to 28+3 |
0x820 | HINT_MAP_REG8 | Host Interrupt Map Register for 32 to 32+3 |
0x824 | HINT_MAP_REG9 | Host Interrupt Map Register for 36 to 36+3 |
0x828 | HINT_MAP_REG10 | Host Interrupt Map Register for 40 to 40+3 |
0x82c | HINT_MAP_REG11 | Host Interrupt Map Register for 44 to 44+3 |
0x830 | HINT_MAP_REG12 | Host Interrupt Map Register for 48 to 48+3 |
0x834 | HINT_MAP_REG13 | Host Interrupt Map Register for 52 to 52+3 |
0x838 | HINT_MAP_REG14 | Host Interrupt Map Register for 56 to 56+3 |
0x83c | HINT_MAP_REG15 | Host Interrupt Map Register for 60 to 60+3 |
0x840 | HINT_MAP_REG16 | Host Interrupt Map Register for 64 to 64+3 |
0x844 | HINT_MAP_REG17 | Host Interrupt Map Register for 68 to 68+3 |
0x848 | HINT_MAP_REG18 | Host Interrupt Map Register for 72 to 72+3 |
0x84c | HINT_MAP_REG19 | Host Interrupt Map Register for 76 to 76+3 |
0x850 | HINT_MAP_REG20 | Host Interrupt Map Register for 80 to 80+3 |
0x854 | HINT_MAP_REG21 | Host Interrupt Map Register for 84 to 84+3 |
0x858 | HINT_MAP_REG22 | Host Interrupt Map Register for 88 to 88+3 |
0x860 | HINT_MAP_REG23 | Host Interrupt Map Register for 92 to 92+3 |
0x1500 | ENABLE_HINT_REG0 | Host Int Enable Register 0 |
0x1504 | ENABLE_HINT_REG1 | Host Int Enable Register 1 |
0x1508 | ENABLE_HINT_REG2 | Host Int Enable Register 2 |
ADDRESS OFFSET | REGISTER MNEMONIC | REGISTER NAME |
---|---|---|
0x0 | REVISION_REG | Revision Register |
0x10 | GLOBAL_ENABLE_HINT_REG | Global Host Int Enable Register |
0x20 | STATUS_SET_INDEX_REG | Status Set Index Register |
0x24 | STATUS_CLR_INDEX_REG | Status Clear Index Register |
0x28 | ENABLE_SET_INDEX_REG | Enable Set Index Register |
0x2c | ENABLE_CLR_INDEX_REG | Enable Clear Index Register |
0x34 | HINT_ENABLE_SET_INDEX_REG | Host Int Enable Set Index Register |
0x38 | HINT_ENABLE_CLR_INDEX_REG | Host Int Enable Clear Index Register |
0x200 | RAW_STATUS_REG0 | Raw Status Register 0 |
0x204 | RAW_STATUS_REG1 | Raw Status Register 1 |
0x208 | RAW_STATUS_REG2 | Raw Status Register 2 |
0x20c | RAW_STATUS_REG3 | Raw Status Register 3 |
0x210 | RAW_STATUS_REG4 | Raw Status Register 4 |
0x280 | ENA_STATUS_REG0 | Enabled Status Register 0 |
0x284 | ENA_STATUS_REG1 | Enabled Status Register 1 |
0x288 | ENA_STATUS_REG2 | Enabled Status Register 2 |
0x28c | ENA_STATUS_REG3 | Enabled Status Register 3 |
0x290 | ENA_STATUS_REG4 | Enabled Status Register 4 |
0x300 | ENABLE_REG0 | Enable Register 0 |
0x304 | ENABLE_REG1 | Enable Register 1 |
0x308 | ENABLE_REG2 | Enable Register 2 |
0x30c | ENABLE_REG3 | Enable Register 3 |
0x310 | ENABLE_REG4 | Enable Register 4 |
0x380 | ENABLE_CLR_REG0 | Enable Clear Register 0 |
0x384 | ENABLE_CLR_REG1 | Enable Clear Register 1 |
0x388 | ENABLE_CLR_REG2 | Enable Clear Register 2 |
0x38c | ENABLE_CLR_REG3 | Enable Clear Register 3 |
0x390 | ENABLE_CLR_REG4 | Enable Clear Register 4 |
0x400 | CH_MAP_REG0 | Interrupt Channel Map Register for 0 to 0+3 |
0x404 | CH_MAP_REG1 | Interrupt Channel Map Register for 4 to 4+3 |
0x408 | CH_MAP_REG2 | Interrupt Channel Map Register for 8 to 8+3 |
0x40c | CH_MAP_REG3 | Interrupt Channel Map Register for 12 to 12+3 |
0x410 | CH_MAP_REG4 | Interrupt Channel Map Register for 16 to 16+3 |
0x414 | CH_MAP_REG5 | Interrupt Channel Map Register for 20 to 20+3 |
0x418 | CH_MAP_REG6 | Interrupt Channel Map Register for 24 to 24+3 |
0x41c | CH_MAP_REG7 | Interrupt Channel Map Register for 28 to 28+3 |
0x420 | CH_MAP_REG8 | Interrupt Channel Map Register for 32 to 32+3 |
0x424 | CH_MAP_REG9 | Interrupt Channel Map Register for 36 to 36+3 |
0x428 | CH_MAP_REG10 | Interrupt Channel Map Register for 40 to 40+3 |
0x42c | CH_MAP_REG11 | Interrupt Channel Map Register for 44 to 44+3 |
0x430 | CH_MAP_REG12 | Interrupt Channel Map Register for 48 to 48+3 |
0x434 | CH_MAP_REG13 | Interrupt Channel Map Register for 52 to 52+3 |
0x438 | CH_MAP_REG14 | Interrupt Channel Map Register for 56 to 56+3 |
0x43c | CH_MAP_REG15 | Interrupt Channel Map Register for 60 to 60+3 |
0x440 | CH_MAP_REG16 | Interrupt Channel Map Register for 64 to 64+3 |
0x444 | CH_MAP_REG17 | Interrupt Channel Map Register for 68 to 68+3 |
0x448 | CH_MAP_REG18 | Interrupt Channel Map Register for 72 to 72+3 |
0x44c | CH_MAP_REG19 | Interrupt Channel Map Register for 76 to 76+3 |
0x450 | CH_MAP_REG20 | Interrupt Channel Map Register for 80 to 80+3 |
0x454 | CH_MAP_REG21 | Interrupt Channel Map Register for 84 to 84+3 |
0x458 | CH_MAP_REG22 | Interrupt Channel Map Register for 88 to 88+3 |
0x45c | CH_MAP_REG23 | Interrupt Channel Map Register for 92 to 92+3 |
0x460 | CH_MAP_REG24 | Interrupt Channel Map Register for 96 to 96+3 |
0x464 | CH_MAP_REG25 | Interrupt Channel Map Register for 100 to 100+3 |
0x468 | CH_MAP_REG26 | Interrupt Channel Map Register for 104 to 104+3 |
0x46c | CH_MAP_REG27 | Interrupt Channel Map Register for 108 to 108+3 |
0x470 | CH_MAP_REG28 | Interrupt Channel Map Register for 112 to 112+3 |
0x474 | CH_MAP_REG29 | Interrupt Channel Map Register for 116 to 116+3 |
0x478 | CH_MAP_REG30 | Interrupt Channel Map Register for 120 to 120+3 |
0x47c | CH_MAP_REG31 | Interrupt Channel Map Register for 124 to 124+3 |
0x480 | CH_MAP_REG32 | Interrupt Channel Map Register for 128 to 128+3 |
0x484 | CH_MAP_REG33 | Interrupt Channel Map Register for 132 to 132+3 |
0x488 | CH_MAP_REG34 | Interrupt Channel Map Register for 136 to 136+3 |
0x48c | CH_MAP_REG35 | Interrupt Channel Map Register for 140 to 140+3 |
0x490 | CH_MAP_REG36 | Interrupt Channel Map Register for 144 to 144+3 |
0x494 | CH_MAP_REG37 | Interrupt Channel Map Register for 148 to 148+3 |
0x498 | CH_MAP_REG38 | Interrupt Channel Map Register for 152 to 152+3 |
0x49c | CH_MAP_REG39 | Interrupt Channel Map Register for 156 to 156+3 |
0x800 | HINT_MAP_REG0 | Host Interrupt Map Register for 0 to 0+3 |
0x804 | HINT_MAP_REG1 | Host Interrupt Map Register for 4 to 4+3 |
0x808 | HINT_MAP_REG2 | Host Interrupt Map Register for 8 to 8+3 |
0x80c | HINT_MAP_REG3 | Host Interrupt Map Register for 12 to 12+3 |
0x810 | HINT_MAP_REG4 | Host Interrupt Map Register for 16 to 16+3 |
0x814 | HINT_MAP_REG5 | Host Interrupt Map Register for 20 to 20+3 |
0x818 | HINT_MAP_REG6 | Host Interrupt Map Register for 24 to 24+3 |
0x81c | HINT_MAP_REG7 | Host Interrupt Map Register for 28 to 28+3 |
0x820 | HINT_MAP_REG8 | Host Interrupt Map Register for 32 to 32+3 |
0x824 | HINT_MAP_REG9 | Host Interrupt Map Register for 36 to 36+3 |
0x828 | HINT_MAP_REG10 | Host Interrupt Map Register for 40 to 40+3 |
0x82c | HINT_MAP_REG11 | Host Interrupt Map Register for 44 to 44+3 |
0x830 | HINT_MAP_REG12 | Host Interrupt Map Register for 48 to 48+3 |
0x834 | HINT_MAP_REG13 | Host Interrupt Map Register for 52 to 52+3 |
0x838 | HINT_MAP_REG14 | Host Interrupt Map Register for 56 to 56+3 |
0x83c | HINT_MAP_REG15 | Host Interrupt Map Register for 60 to 60+3 |
0x1500 | ENABLE_HINT_REG0 | Host Int Enable Register 0 |
0x1504 | ENABLE_HINT_REG1 | Host Int Enable Register 1 |
ADDRESS START | ADDRESS END | SIZE | REGISTER NAME | DESCRIPTION |
---|---|---|---|---|
0x02620200 | 0x02620203 | 4B | NMIGR0 | NMI Event Generation Register for CorePac0 |
0x02620204 | 0x02620207 | 4B | Reserved | |
0x02620208 | 0x0262020B | 4B | Reserved | Reserved |
0x0262020C | 0x0262020F | 4B | Reserved | Reserved |
0x02620210 | 0x02620213 | 4B | Reserved | Reserved |
0x02620214 | 0x02620217 | 4B | Reserved | Reserved |
0x02620218 | 0x0262021B | 4B | Reserved | Reserved |
0x0262021C | 0x0262021F | 4B | Reserved | Reserved |
0x02620220 | 0x0262023F | 32B | Reserved | Reserved |
0x02620240 | 0x02620243 | 4B | IPCGR0 | IPC Generation Register for CorePac 0 |
0x02620244 | 0x02620247 | 4B | Reserved | |
0x02620248 | 0x0262024B | 4B | Reserved | Reserved |
0x0262024C | 0x0262024F | 4B | Reserved | Reserved |
0x02620250 | 0x02620253 | 4B | Reserved | Reserved |
0x02620254 | 0x02620257 | 4B | Reserved | Reserved |
0x02620258 | 0x0262025B | 4B | Reserved | Reserved |
0x0262025C | 0x0262025F | 4B | Reserved | Reserved |
0x02620260 | 0x0262027B | 28B | Reserved | Reserved |
0x0262027C | 0x0262027F | 4B | IPCGRH | IPC Generation Register for Host |
0x02620280 | 0x02620283 | 4B | IPCAR0 | IPC Acknowledgement Register for CorePac 0 |
0x02620284 | 0x02620287 | 4B | Reserved | |
0x02620288 | 0x0262028B | 4B | Reserved | Reserved |
0x0262028C | 0x0262028F | 4B | Reserved | Reserved |
0x02620290 | 0x02620293 | 4B | Reserved | Reserved |
0x02620294 | 0x02620297 | 4B | Reserved | Reserved |
0x02620298 | 0x0262029B | 4B | Reserved | Reserved |
0x0262029C | 0x0262029F | 4B | Reserved | Reserved |
0x026202A0 | 0x026202BB | 28B | Reserved | Reserved |
0x026202BC | 0x026202BF | 4B | IPCARH | IPC Acknowledgement Register for Host |
Non-maskable interrupts (NMI) can be generated by chip-level registers and the LRESET can be generated by software writing into LPSC registers. LRESET and NMI can also be asserted by device pins or watchdog timers. One NMI pin and one LRESET pin are shared by all CorePacs on the device. The CORESEL[3:0] pins can be configured to select between the CorePacs available as shown in Table 8-39.
CORESEL[1:0] PIN INPUT |
LRESET
PIN INPUT |
NMI
PIN INPUT |
LRESETNMIEN
PIN INPUT |
RESET MUX BLOCK OUTPUT |
---|---|---|---|---|
XX | X | X | 1 | No local reset or NMI assertion. |
00 | 0 | X | 0 | Assert local reset to CorePac 0 |
01 | 0 | X | 0 | Reserved |
1x | 0 | X | 0 | Assert local reset to all CorePacs |
00 | 1 | 1 | 0 | De-assert local reset & NMI to CorePac 0 |
01 | 1 | 1 | 0 | Reserved |
1x | 1 | 1 | 0 | De-assert local reset & NMI to all CorePacs |
00 | 1 | 0 | 0 | Assert NMI to CorePac 0 |
01 | 1 | 0 | 0 | Reserved |
1x | 1 | 0 | 0 | Assert NMI to all CorePacs |
NO. | MIN | MAX | UNIT | ||
---|---|---|---|---|---|
1 | tsu(LRESET-LRESETNMIENL) | Setup Time - LRESET valid before LRESETNMIEN low | 12*P | ns | |
1 | tsu(NMI-LRESETNMIENL) | Setup Time - NMI valid before LRESETNMIEN low | 12*P | ns | |
1 | tsu(CORESELn-LRESETNMIENL) | Setup Time - CORESEL[2:0] valid before LRESETNMIEN low | 12*P | ns | |
2 | th(LRESETNMIENL-LRESET) | Hold Time - LRESET valid after LRESETNMIEN high | 12*P | ns | |
2 | th(LRESETNMIENL-NMI) | Hold Time - NMI valid after LRESETNMIEN high | 12*P | ns | |
2 | th(LRESETNMIENL-CORESELn) | Hold Time - CORESEL[2:0] valid after LRESETNMIEN high | 12*P | ns | |
3 | tw(LRESETNMIEN) | Pulse Width - LRESETNMIEN low width | 12*P | ns |
The C6654 supports five MPUs:
This section contains MPU register map and details of device-specific MPU registers only. For MPU features and details of generic MPU registers, see the Memory Protection Unit (MPU) for KeyStone Devices User's Guide (SPRUGW5).
The following tables show the configuration of each MPU and the memory regions protected by each MPU.
SETTING | MPU0 (MAIN CFG TERANET) | MPU1 (QM_SS DATA PORT) | MPU2 (QM_SS CFG PORT) | MPU3 (SEMAPHORE) |
MPU4 (EMIF16) |
---|---|---|---|---|---|
Default permission | Assume allowed | Assume allowed | Assume allowed | Assume allowed | Assume allowed |
Number of allowed IDs supported | 16 | 16 | 16 | 16 | 16 |
Number of programmable ranges supported | 16 | 5 | 16 | 1 | 16 |
Compare width | 1KB granularity | 1KB granularity | 1KB granularity | 1KB granularity | 1KB granularity |
Table 8-43 shows the privilege ID of each CORE and every mastering peripheral. Table 8-43 also shows the privilege level (supervisor vs. user), and access type (instruction read vs. data/DMA read or write) of each master on the device. In some cases, a particular setting depends on software being executed at the time of the access or the configuration of the master peripheral.
PRIVILEGE ID | MASTER | PRIVILEGE LEVEL | ACCESS TYPE |
---|---|---|---|
0 | CorePac0 | SW dependant, driven by MSMC | DMA |
1 | Reserved | ||
2 | Reserved | ||
3 | Reserved | ||
4 | Reserved | ||
5 | Reserved | ||
6 | uPP | User | DMA |
7 | EMAC | User | DMA |
8 | QM_PKTDMA | User | DMA |
9 | Reserved | ||
10 | QM_second | User | DMA |
11 | PCIe | Supervisor | DMA |
12 | DAP | Driven by Debug_SS | DMA |
13 | Reserved | ||
14 | Reserved | ||
15 | Reserved |
Table 8-44 shows the master ID of each CorePac and every mastering peripheral. Master IDs are used to determine allowed connections between masters and slaves. Unlike privilege IDs, which can be shared across different masters, master IDs are unique to each master.
MASTER ID | MASTER | MASTER ID | MASTER | |
---|---|---|---|---|
0 | CorePac0 | 40 - 47 | Reserved | |
1 | Reserved | 48 | DAP | |
2 | Reserved | 49 | Reserved | |
3 | Reserved | 50 | EDMA3_CC | |
4 | Reserved | 51 | Reserved | |
5 | Reserved | 52 | MSMC(2) | |
6 | Reserved | 53 | PCIe | |
7 | Reserved | 54 | Reserved | |
8 | CorePac0_CFG | 55 | Reserved | |
9 | Reserved | 56 | EMAC | |
10 | Reserved | 57 - 87 | Reserved | |
11 | Reserved | 88 - 91 | QM_PKTDMA | |
12 | Reserved | 92 - 93 | QM_Second | |
13 | Reserved | 94 | Reserved | |
14 | Reserved | 95 | uPP | |
15 | Reserved | 96 - 127 | Reserved | |
16 | Reserved | 128 | Tracer_core_0(3) | |
17 | Reserved | 129 | Reserved | |
18 | Reserved | 130 | Reserved | |
19 | Reserved | 131 | Reserved | |
20 | Reserved | 132 | Reserved | |
21 | Reserved | 133 | Reserved | |
22 | Reserved | 134 | Reserved | |
23 | Reserved | 135 | Reserved | |
24 | Reserved | 136 | Reserved | |
25 | Reserved | 137 | Reserved | |
26 | Reserved | 138 | Reserved | |
27 | Reserved | 139 | Reserved | |
28 | EDMA_TC0 read | 140 | Tracer_DDR | |
29 | EDMA_TC0 write | 141 | Tracer_SEM | |
30 | EDMA_TC1 read | 142 | Tracer_QM_CFG | |
31 | EDMA_TC1 write | 143 | Tracer_QM_DMA | |
32 | EDMA_TC2 read | 144 | Tracer_CFG | |
33 | EDMA_TC2 write | 145 | Reserved | |
34 | EDMA_TC3 read | 146 | Reserved | |
35 | EDMA_TC3 write | 147 | Reserved | |
36 - 37 | Reserved | 148 | Tracer_EMIF16 | |
38 - 39 | Reserved |
This section includes the offsets for MPU registers and definitions for device specific MPU registers.
OFFSET | NAME | DESCRIPTION |
---|---|---|
0h | REVID | Revision ID |
4h | CONFIG | Configuration |
10h | IRAWSTAT | Interrupt raw status/set |
14h | IENSTAT | Interrupt enable status/clear |
18h | IENSET | Interrupt enable |
1Ch | IENCLR | Interrupt enable clear |
20h | EOI | End of interrupt |
200h | PROG0_MPSAR | Programmable range 0, start address |
204h | PROG0_MPEAR | Programmable range 0, end address |
208h | PROG0_MPPA | Programmable range 0, memory page protection attributes |
210h | PROG1_MPSAR | Programmable range 1, start address |
214h | PROG1_MPEAR | Programmable range 1, end address |
218h | PROG1_MPPA | Programmable range 1, memory page protection attributes |
220h | PROG2_MPSAR | Programmable range 2, start address |
224h | PROG2_MPEAR | Programmable range 2, end address |
228h | PROG2_MPPA | Programmable range 2, memory page protection attributes |
230h | PROG3_MPSAR | Programmable range 3, start address |
234h | PROG3_MPEAR | Programmable range 3, end address |
238h | PROG3_MPPA | Programmable range 3, memory page protection attributes |
240h | PROG4_MPSAR | Programmable range 4, start address |
244h | PROG4_MPEAR | Programmable range 4, end address |
248h | PROG4_MPPA | Programmable range 4, memory page protection attributes |
250h | PROG5_MPSAR | Programmable range 5, start address |
254h | PROG5_MPEAR | Programmable range 5, end address |
258h | PROG5_MPPA | Programmable range 5, memory page protection attributes |
260h | PROG6_MPSAR | Programmable range 6, start address |
264h | PROG6_MPEAR | Programmable range 6, end address |
268h | PROG6_MPPA | Programmable range 6, memory page protection attributes |
270h | PROG7_MPSAR | Programmable range 7, start address |
274h | PROG7_MPEAR | Programmable range 7, end address |
278h | PROG7_MPPA | Programmable range 7, memory page protection attributes |
280h | PROG8_MPSAR | Programmable range 8, start address |
284h | PROG8_MPEAR | Programmable range 8, end address |
288h | PROG8_MPPA | Programmable range 8, memory page protection attributes |
290h | PROG9_MPSAR | Programmable range 9, start address |
294h | PROG9_MPEAR | Programmable range 9, end address |
298h | PROG9_MPPA | Programmable range 9, memory page protection attributes |
2A0h | PROG10_MPSAR | Programmable range 10, start address |
2A4h | PROG10_MPEAR | Programmable range 10, end address |
2A8h | PROG10_MPPA | Programmable range 10, memory page protection attributes |
2B0h | PROG11_MPSAR | Programmable range 11, start address |
2B4h | PROG11_MPEAR | Programmable range 11, end address |
2B8h | PROG11_MPPA | Programmable range 11, memory page protection attributes |
2C0h | PROG12_MPSAR | Programmable range 12, start address |
2C4h | PROG12_MPEAR | Programmable range 12, end address |
2C8h | PROG12_MPPA | Programmable range 12, memory page protection attributes |
2D0h | PROG13_MPSAR | Programmable range 13, start address |
2D4h | PROG13_MPEAR | Programmable range 13, end address |
2Dh | PROG13_MPPA | Programmable range 13, memory page protection attributes |
2E0h | PROG14_MPSAR | Programmable range 14, start address |
2E4h | PROG14_MPEAR | Programmable range 14, end address |
2E8h | PROG14_MPPA | Programmable range 14, memory page protection attributes |
2F0h | PROG15_MPSAR | Programmable range 15, start address |
2F4h | PROG15_MPEAR | Programmable range 15, end address |
2F8h | PROG15_MPPA | Programmable range 15, memory page protection attributes |
300h | FLTADDRR | Fault address |
304h | FLTSTAT | Fault status |
308h | FLTCLR | Fault clear |
OFFSET | NAME | DESCRIPTION |
---|---|---|
0h | REVID | Revision ID |
4h | CONFIG | Configuration |
10h | IRAWSTAT | Interrupt raw status/set |
14h | IENSTAT | Interrupt enable status/clear |
18h | IENSET | Interrupt enable |
1Ch | IENCLR | Interrupt enable clear |
20h | EOI | End of interrupt |
200h | PROG0_MPSAR | Programmable range 0, start address |
204h | PROG0_MPEAR | Programmable range 0, end address |
208h | PROG0_MPPA | Programmable range 0, memory page protection attributes |
210h | PROG1_MPSAR | Programmable range 1, start address |
214h | PROG1_MPEAR | Programmable range 1, end address |
218h | PROG1_MPPA | Programmable range 1, memory page protection attributes |
220h | PROG2_MPSAR | Programmable range 2, start address |
224h | PROG2_MPEAR | Programmable range 2, end address |
228h | PROG2_MPPA | Programmable range 2, memory page protection attributes |
230h | PROG3_MPSAR | Programmable range 3, start address |
234h | PROG3_MPEAR | Programmable range 3, end address |
238h | PROG3_MPPA | Programmable range 3, memory page protection attributes |
240h | PROG4_MPSAR | Programmable range 4, start address |
244h | PROG4_MPEAR | Programmable range 4, end address |
248h | PROG4_MPPA | Programmable range 4, memory page protection attributes |
300h | FLTADDRR | Fault address |
304h | FLTSTAT | Fault status |
308h | FLTCLR | Fault clear |
OFFSET | NAME | DESCRIPTION |
---|---|---|
0h | REVID | Revision ID |
4h | CONFIG | Configuration |
10h | IRAWSTAT | Interrupt raw status/set |
14h | IENSTAT | Interrupt enable status/clear |
18h | IENSET | Interrupt enable |
1Ch | IENCLR | Interrupt enable clear |
20h | EOI | End of interrupt |
200h | PROG0_MPSAR | Programmable range 0, start address |
204h | PROG0_MPEAR | Programmable range 0, end address |
208h | PROG0_MPPA | Programmable range 0, memory page protection attributes |
210h | PROG1_MPSAR | Programmable range 1, start address |
214h | PROG1_MPEAR | Programmable range 1, end address |
218h | PROG1_MPPA | Programmable range 1, memory page protection attributes |
220h | PROG2_MPSAR | Programmable range 2, start address |
224h | PROG2_MPEAR | Programmable range 2, end address |
228h | PROG2_MPPA | Programmable range 2, memory page protection attributes |
230h | PROG3_MPSAR | Programmable range 3, start address |
234h | PROG3_MPEAR | Programmable range 3, end address |
238h | PROG3_MPPA | Programmable range 3, memory page protection attributes |
240h | PROG4_MPSAR | Programmable range 4, start address |
244h | PROG4_MPEAR | Programmable range 4, end address |
248h | PROG4_MPPA | Programmable range 4, memory page protection attributes |
250h | PROG5_MPSAR | Programmable range 5, start address |
254h | PROG5_MPEAR | Programmable range 5, end address |
258h | PROG5_MPPA | Programmable range 5, memory page protection attributes |
260h | PROG6_MPSAR | Programmable range 6, start address |
264h | PROG6_MPEAR | Programmable range 6, end address |
268h | PROG6_MPPA | Programmable range 6, memory page protection attributes |
270h | PROG7_MPSAR | Programmable range 7, start address |
274h | PROG7_MPEAR | Programmable range 7, end address |
278h | PROG7_MPPA | Programmable range 7, memory page protection attributes |
280h | PROG8_MPSAR | Programmable range 8, start address |
284h | PROG8_MPEAR | Programmable range 8, end address |
288h | PROG8_MPPA | Programmable range 8, memory page protection attributes |
290h | PROG9_MPSAR | Programmable range 9, start address |
294h | PROG9_MPEAR | Programmable range 9, end address |
298h | PROG9_MPPA | Programmable range 9, memory page protection attributes |
2A0h | PROG10_MPSAR | Programmable range 10, start address |
2A4h | PROG10_MPEAR | Programmable range 10, end address |
2A8h | PROG10_MPPA | Programmable range 10, memory page protection attributes |
2B0h | PROG11_MPSAR | Programmable range 11, start address |
2B4h | PROG11_MPEAR | Programmable range 11, end address |
2B8h | PROG11_MPPA | Programmable range 11, memory page protection attributes |
2C0h | PROG12_MPSAR | Programmable range 12, start address |
2C4h | PROG12_MPEAR | Programmable range 12, end address |
2C8h | PROG12_MPPA | Programmable range 12, memory page protection attributes |
2D0h | PROG13_MPSAR | Programmable range 13, start address |
2D4h | PROG13_MPEAR | Programmable range 13, end address |
2Dh | PROG13_MPPA | Programmable range 13, memory page protection attributes |
2E0h | PROG14_MPSAR | Programmable range 14, start address |
2E4h | PROG14_MPEAR | Programmable range 14, end address |
2E8h | PROG14_MPPA | Programmable range 14, memory page protection attributes |
2F0h | PROG15_MPSAR | Programmable range 15, start address |
2F4h | PROG15_MPEAR | Programmable range 15, end address |
2F8h | PROG15_MPPA | Programmable range 15, memory page protection attributes |
300h | FLTADDRR | Fault address |
304h | FLTSTAT | Fault status |
308h | FLTCLR | Fault clear |
OFFSET | NAME | DESCRIPTION |
---|---|---|
0h | REVID | Revision ID |
4h | CONFIG | Configuration |
10h | IRAWSTAT | Interrupt raw status/set |
14h | IENSTAT | Interrupt enable status/clear |
18h | IENSET | Interrupt enable |
1Ch | IENCLR | Interrupt enable clear |
20h | EOI | End of interrupt |
200h | PROG0_MPSAR | Programmable range 0, start address |
204h | PROG0_MPEAR | Programmable range 0, end address |
208h | PROG0_MPPA | Programmable range 0, memory page protection attributes |
300h | FLTADDRR | Fault address |
304h | FLTSTAT | Fault status |
308h | FLTCLR | Fault clear |
OFFSET | NAME | DESCRIPTION |
---|---|---|
0h | REVID | Revision ID |
4h | CONFIG | Configuration |
10h | IRAWSTAT | Interrupt raw status/set |
14h | IENSTAT | Interrupt enable status/clear |
18h | IENSET | Interrupt enable |
1Ch | IENCLR | Interrupt enable clear |
20h | EOI | End of interrupt |
200h | PROG0_MPSAR | Programmable range 0, start address |
204h | PROG0_MPEAR | Programmable range 0, end address |
208h | PROG0_MPPA | Programmable range 0, memory page protection attributes |
210h | PROG1_MPSAR | Programmable range 1, start address |
214h | PROG1_MPEAR | Programmable range 1, end address |
218h | PROG1_MPPA | Programmable range 1, memory page protection attributes |
220h | PROG2_MPSAR | Programmable range 2, start address |
224h | PROG2_MPEAR | Programmable range 2, end address |
228h | PROG2_MPPA | Programmable range 2, memory page protection attributes |
230h | PROG3_MPSAR | Programmable range 3, start address |
234h | PROG3_MPEAR | Programmable range 3, end address |
238h | PROG3_MPPA | Programmable range 3, memory page protection attributes |
240h | PROG4_MPSAR | Programmable range 4, start address |
244h | PROG4_MPEAR | Programmable range 4, end address |
248h | PROG4_MPPA | Programmable range 4, memory page protection attributes |
250h | PROG5_MPSAR | Programmable range 5, start address |
254h | PROG5_MPEAR | Programmable range 5, end address |
258h | PROG5_MPPA | Programmable range 5, memory page protection attributes |
260h | PROG6_MPSAR | Programmable range 6, start address |
264h | PROG6_MPEAR | Programmable range 6, end address |
268h | PROG6_MPPA | Programmable range 6, memory page protection attributes |
270h | PROG7_MPSAR | Programmable range 7, start address |
274h | PROG7_MPEAR | Programmable range 7, end address |
278h | PROG7_MPPA | Programmable range 7, memory page protection attributes |
280h | PROG8_MPSAR | Programmable range 8, start address |
284h | PROG8_MPEAR | Programmable range 8, end address |
288h | PROG8_MPPA | Programmable range 8, memory page protection attributes |
290h | PROG9_MPSAR | Programmable range 9, start address |
294h | PROG9_MPEAR | Programmable range 9, end address |
298h | PROG9_MPPA | Programmable range 9, memory page protection attributes |
2A0h | PROG10_MPSAR | Programmable range 10, start address |
2A4h | PROG10_MPEAR | Programmable range 10, end address |
2A8h | PROG10_MPPA | Programmable range 10, memory page protection attributes |
2B0h | PROG11_MPSAR | Programmable range 11, start address |
2B4h | PROG11_MPEAR | Programmable range 11, end address |
2B8h | PROG11_MPPA | Programmable range 11, memory page protection attributes |
2C0h | PROG12_MPSAR | Programmable range 12, start address |
2C4h | PROG12_MPEAR | Programmable range 12, end address |
2C8h | PROG12_MPPA | Programmable range 12, memory page protection attributes |
2D0h | PROG13_MPSAR | Programmable range 13, start address |
2D4h | PROG13_MPEAR | Programmable range 13, end address |
2Dh | PROG13_MPPA | Programmable range 13, memory page protection attributes |
2E0h | PROG14_MPSAR | Programmable range 14, start address |
2E4h | PROG14_MPEAR | Programmable range 14, end address |
2E8h | PROG14_MPPA | Programmable range 14, memory page protection attributes |
2F0h | PROG15_MPSAR | Programmable range 15, start address |
2F4h | PROG15_MPEAR | Programmable range 15, end address |
2F8h | PROG15_MPPA | Programmable range 15, memory page protection attributes |
300h | FLTADDRR | Fault address |
304h | FLTSTAT | Fault status |
308h | FLTCLR | Fault clear |
The Configuration Register (CONFIG) contains the configuration value of the MPU.
31 | 24 | 23 | 20 | 19 | 16 | 15 | 12 | 11 | 1 | 0 |
ADDR_WIDTH | NUM_FIXED | NUM_PROG | NUM_AIDS | Reserved | ASSUME_ALLOWED | |||||||||
Reset Values | MPU0 | R-0 | R-0 | R-16 | R-16 | R-0 | R-1 | |||||||
MPU1 | R-0 | R-0 | R-5 | R-16 | R-0 | R-1 | ||||||||
MPU2 | R-0 | R-0 | R-16 | R-16 | R-0 | R-1 | ||||||||
MPU3 | R-0 | R-0 | R-1 | R-16 | R-0 | R-1 | ||||||||
MPU4 | R-0 | R-0 | R-16 | R-16 | R-0 | R-1 |
Legend: R = Read only; -n = value after reset |
Bit | Field | Description |
---|---|---|
31 – 24 | ADDR_WIDTH | Address alignment for range checking
|
23 – 20 | NUM_FIXED | Number of fixed address ranges |
19 – 16 | NUM_PROG | Number of programmable address ranges |
15 – 12 | NUM_AIDS | Number of supported AIDs |
11 – 1 | Reserved | Reserved. These bits will always reads as 0. |
0 | ASSUME_ALLOWED | Assume allowed bit. When an address is not covered by any MPU protection range, this bit determines whether the transfer is assumed to be allowed or not.
|
The Programmable Address Start Register holds the start address for the range. This register is writeable by a supervisor entity only.
The start address must be aligned on a page boundary. The size of the page is 1K byte. The size of the page determines the width of the address field in MPSAR and MPEAR.
31 | 10 | 9 | 0 |
START_ADDR | Reserved |
R/W | R |
Legend: R = Read only; R/W = Read/Write |
Bit | Field | Description |
---|---|---|
31 – 10 | START_ADDR | Start address for range n. |
9 – 0 | Reserved | Reserved and these bits always read as 0. |
The Programmable Address End Register holds the end address for the range. This register is writeable by a supervisor entity only.
The end address must be aligned on a page boundary. The size of the page depends on the MPU number. The page size for MPU1 is 1K byte and for MPU2 it is 64K bytes. The size of the page determines the width of the address field in MPSAR and MPEAR
31 | 10 | 9 | 0 |
END_ADDR | Reserved |
R/W | R |
Legend: R = Read only; R/W = Read/Write |
Bit | Field | Description |
---|---|---|
31 – 10 | END_ADDR | End address for range n. |
9 – 0 | Reserved | Reserved and these bits always read as 3FFh. |
The Programmable Address Memory Protection Page Attribute Register holds the permissions for the region. This register is writeable only by a non-debug supervisor entity.
31 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 |
Reserved | AID15 | AID14 | AID13 | AID12 | AID11 | AID10 | AID9 | AID8 | AID7 | AID6 | AID5 |
R | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
AID4 | AID3 | AID2 | AID1 | AID0 | AIDX | Reserved | Reserved | EMU | SR | SW | SX | UR | UW | UX |
R/W | R/W | R/W | R/W | R/W | R/W | R | R | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Legend: R = Read only; R/W = Read/Write |
PROGRAMMABLE RANGE | MPU0 (MAIN CFG TERANET) | |||
---|---|---|---|---|
START ADDRESS (PROGn_MPSAR) | END ADDRESS (PROGn_MPEAR) | MEMORY PAGE PROTECTION ATTRIBUTE (PROGn_MPPA) | MEMORY PROTECTION | |
PROG0 | 0x01D0_0000 | 0x01D8_007F | 0x03FF_FCB6 | Tracers |
PROG1 | 0x01F0_0000 | 0x01F7_FFFF | 0x03FF_FC80 | Reserved |
PROG2 | 0x0200_0000 | 0x0209_FFFF | 0x03FF_FCB6 | Reserved |
PROG3 | 0x01E0_0000 | 0x01EB_FFFF | 0x03FF_FCB6 | Reserved |
PROG4 | 0x021C_0000 | 0x021E_0C3F | 0x03FF_FCB6 | Reserved |
PROG5 | 0x021F_0000 | 0x021F_7FFF | 0x03FF_FCB6 | Reserved |
PROG6 | 0x0220_0000 | 0x0227_007F | 0x03FF_FCB6 | Timers |
PROG7 | 0x0231_0000 | 0x0231_03FF | 0x03FF_FCB4 | PLL |
PROG8 | 0x0232_0000 | 0x0232_03FF | 0x03FF_FCB4 | GPIO |
PROG9 | 0x0233_0000 | 0x0233_03FF | 0x03FF_FCB4 | SmartReflex |
PROG10 | 0x0235_0000 | 0x0235_0FFF | 0x03FF_FCB4 | PSC |
PROG11 | 0x0240_0000 | 0x0245_3FFF | 0x03FF_FCB6 | DEBUG_SS, Tracer Formatters |
PROG12 | 0x0250_0000 | 0x0252_03FF | 0x03FF_FCB4 | EFUSE |
PROG13 | 0x0253_0000 | 0x0255_03FF | 0x03FF_FCB6 | I2C, UART |
PROG14 | 0x0260_0000 | 0x0260_BFFF | 0x03FF_FCB4 | CICs |
PROG15 | 0x0262_0000 | 0x0262_07FF | 0x03FF_FCB4 | Chip-level Registers |
PROGRAMMABLE RANGE | MPU1 (QM_SS DATA PORT) | |||
---|---|---|---|---|
START ADDRESS (PROGn_MPSAR) | END ADDRESS (PROGn_MPEAR) | MEMORY PAGE PROTECTION ATTRIBUTE (PROGn_MPPA) | MEMORY PROTECTION | |
PROG0 | 0x3400_0000 | 0x3401_FFFF | 0x03FF_FC80 | Queue Manager subsystem data |
PROG1 | 0x3402_0000 | 0x3405_FFFF | 0x000F_FCB6 | |
PROG2 | 0x3406_0000 | 0x3406_7FFF | 0x03FF_FCB4 | |
PROG3 | 0x3406_8000 | 0x340B_7FFF | 0x03FF_FC80 | |
PROG4 | 0x340B_8000 | 0x340B_FFFF | 0x03FF_FCB6 |
PROGRAMMABLE RANGE | MPU2 (QM_SS CFG PORT) | |||
---|---|---|---|---|
START ADDRESS (PROGn_MPSAR) | END ADDRESS (PROGn_MPEAR) | MEMORY PAGE PROTECTION ATTRIBUTE (PROGn_MPPA) | MEMORY PROTECTION | |
PROG0 | 0x02A0_0000 | 0x02A1_FFFF | 0x03FF_FCA4 | Queue Manager subsystem configuration |
PROG1 | 0x02A2_0000 | 0x02A3_FFFF | 0x000F_FCB6 | |
PROG2 | 0x02A4_0000 | 0x02A5_FFFF | 0x000F_FCB6 | |
PROG3 | 0x02A6_0000 | 0x02A6_7FFF | 0x03FF_FCB4 | |
PROG4 | 0x02A6_8000 | 0x02A6_8FFF | 0x03FF_FCB4 | |
PROG5 | 0x02A6_9000 | 0x02A6_9FFF | 0x03FF_FCB4 | |
PROG6 | 0x02A6_A000 | 0x02A6_AFFF | 0x03FF_FCB4 | |
PROG7 | 0x02A6_B000 | 0x02A6_BFFF | 0x03FF_FCB4 | |
PROG8 | 0x02A6_C000 | 0x02A6_DFFF | 0x03FF_FCB4 | |
PROG9 | 0x02A6_E000 | 0x02A6_FFFF | 0x03FF_FCB4 | |
PROG10 | 0x02A8_0000 | 0x02A8_FFFF | 0x03FF_FCA4 | |
PROG11 | 0x02A9_0000 | 0x02A9_FFFF | 0x03FF_FCB4 | |
PROG12 | 0x02AA_0000 | 0x02AA_7FFF | 0x03FF_FCB4 | |
PROG13 | 0x02AA_8000 | 0x02AA_FFFF | 0x03FF_FCB4 | |
PROG14 | 0x02AB_0000 | 0x02AB_7FFF | 0x03FF_FCB4 | |
PROG15 | 0x02AB_8000 | 0x02AB_FFFF | 0x03FF_FCB6 |
PROGRAMMABLE RANGE | MPU3 (SEMAPHORE) | |||
---|---|---|---|---|
START ADDRESS (PROGn_MPSAR) | END ADDRESS (PROGn_MPEAR) | MEMORY PAGE PROTECTION ATTRIBUTES (PROGn_MPPA) | MEMORY PROTECTION | |
PROG0 | 0x0264_0000 | 0x0264_07FF | 0x0003_FCB6 | Semaphore |
PROGRAMMABLE RANGE | MPU4 (EMIF16) | |||
---|---|---|---|---|
START ADDRESS (PROGn_MPSAR) | END ADDRESS (PROGn_MPEAR) | MEMORY PAGE PROTECTION ATTRIBUTE (PROGn_MPPA) | MEMORY PROTECTION | |
PROG0 | 0x7000_0000 | 0x70FF_FFFF | 0x03FF_FCB6 | EMIF16 data |
PROG1 | 0x7100_0000 | 0x71FF_FFFF | 0x03FF_FCB6 | |
PROG2 | 0x7200_0000 | 0x72FF_FFFF | 0x03FF_FCB6 | |
PROG3 | 0x7300_0000 | 0x73FF_FFFF | 0x03FF_FCB6 | |
PROG4 | 0x7400_0000 | 0x74FF_FFFF | 0x03FF_FCB6 | |
PROG5 | 0x7500_0000 | 0x75FF_FFFF | 0x03FF_FCB6 | |
PROG6 | 0x7600_0000 | 0x76FF_FFFF | 0x03FF_FCB6 | |
PROG7 | 0x7700_0000 | 0x77FF_FFFF | 0x03FF_FCB6 | |
PROG8 | 0x7800_0000 | 0x78FF_FFFF | 0x03FF_FCB6 | |
PROG9 | 0x7900_0000 | 0x79FF_FFFF | 0x03FF_FCB6 | |
PROG10 | 0x7A00_0000 | 0x7AFF_FFFF | 0x03FF_FCB6 | |
PROG11 | 0x7B00_0000 | 0x7BFF_FFFF | 0x03FF_FCB6 | |
PROG12 | 0x7C00_0000 | 0x7CFF_FFFF | 0x03FF_FCB6 | |
PROG13 | 0x7D00_0000 | 0x7DFF_FFFF | 0x03FF_FCB6 | |
PROG14 | 0x7E00_0000 | 0x7EFF_FFFF | 0x03FF_FCB6 | |
PROG15 | 0x7F00_0000 | 0x7FFF_FFFF | 0x03FF_FCB6 |
The 32-bit DDR3 Memory Controller bus of the C6654 is used to interface to JEDEC-standard-compliant DDR3 SDRAM devices. The DDR3 external bus interfaces only to DDR3 SDRAM devices; it does not share the bus with any other types of peripherals.
The C6654 includes one 32-bit wide 1.5-V DDR3 SDRAM EMIF interface. The DDR3 interface can operate at 800 Mega transfers per second (MTS) and 1033 MTS.
Due to the complicated nature of the interface, a limited number of topologies will be supported to provide a 16-bit or 32-bit interface.
The DDR3 electrical requirements are fully specified in the DDR Jedec Specification JESD79-3C. Standard DDR3 SDRAMs are available in 8- and 16-bit versions, allowing for the following bank topologies to be supported by the interface:
The approach to specifying interface timing for the DDR3 memory bus is different than on other interfaces such as I2C or SPI. For these other interfaces, the device timing was specified in terms of data manual specifications and I/O buffer information specification (IBIS) models. For the DDR3 memory bus, the approach is to specify compatible DDR3 devices and provide the printed circuit board (PCB) solution and guidelines directly to the user.
A race condition may exist when certain masters write data to the DDR3 memory controller. For example, if master A passes a software message via a buffer in external memory and does not wait for an indication that the write completes, before signaling to master B that the message is ready, when master B attempts to read the software message, then the master B read may bypass the master A write and, thus, master B may read stale data and, therefore, receive an incorrect message.
Some master peripherals (e.g., EDMA3 transfer controllers with TCCMOD=0) will always wait for the write to complete before signaling an interrupt to the system, thus avoiding this race condition. For masters that do not have a hardware specification of write-read ordering, it may be necessary to specify data ordering via software.
If master A does not wait for indication that a write is complete, it must perform the following workaround:
The KeyStone DSP DDR3 Implementation Guidelines (SPRABI1) specifies a complete DDR3 interface solution as well as a list of compatible DDR3 devices. The DDR3 electrical requirements are fully specified in the DDR3 Jedec Specification JESD79-3C. TI has performed the simulation and system characterization to ensure all DDR3 interface timings in this solution are met; therefore, no electrical data/timing information is supplied here for this interface.
NOTE
TI supports only designs that follow the board design guidelines outlined in the application report.
The inter-integrated circuit (I2C) module provides an interface between DSP and other devices compliant with Philips Semiconductors Inter-IC bus (I2C bus) specification version 2.1 and connected by way of an I2C bus. External components attached to this 2-wire serial bus can transmit/receive up to 8-bit data to/from the DSP through the I2C module.
The C6654 device includes an I2C peripheral module.
NOTE
When using the I2C module, ensure there are external pullup resistors on the SDA and SCL pins.
The I2C modules on the C6654 may be used by the DSP to control local peripheral ICs (DACs, ADCs, etc.) or may be used to communicate with other controllers in a system or to implement a user interface.
The I2C port is compatible with Philips I2C specification revision 2.1 (January 2000) and supports:
Figure 8-31 shows a block diagram of the I2C module.
HEX ADDRESS RANGE | REGISTER | REGISTER NAME |
---|---|---|
0253 0000 | ICOAR | I2C Own Address Register |
0253 0004 | ICIMR | I2C Interrupt Mask/Status Register |
0253 0008 | ICSTR | I2C Interrupt Status Register |
0253 000C | ICCLKL | I2C Clock Low-Time Divider Register |
0253 0010 | ICCLKH | I2C Clock High-Time Divider Register |
0253 0014 | ICCNT | I2C Data Count Register |
0253 0018 | ICDRR | I2C Data Receive Register |
0253 001C | ICSAR | I2C Slave Address Register |
0253 0020 | ICDXR | I2C Data Transmit Register |
0253 0024 | ICMDR | I2C Mode Register |
0253 0028 | ICIVR | I2C Interrupt Vector Register |
0253 002C | ICEMDR | I2C Extended Mode Register |
0253 0030 | ICPSC | I2C Prescaler Register |
0253 0034 | ICPID1 | I2C Peripheral Identification Register 1 [Value: 0x0000 0105] |
0253 0038 | ICPID2 | I2C Peripheral Identification Register 2 [Value: 0x0000 0005] |
0253 003C - 0253 007F | - | Reserved |
NO. | STANDARD MODE | FAST MODE | UNITS | ||||
---|---|---|---|---|---|---|---|
MIN | MAX | MIN | MAX | ||||
1 | tc(SCL) | Cycle time, SCL | 10 | 2.5 | µs | ||
2 | tsu(SCLH-SDAL) | Setup time, SCL high before SDA low (for a repeated START condition) | 4.7 | 0.6 | µs | ||
3 | th(SDAL-SCLL) | Hold time, SCL low after SDA low (for a START and a repeated START condition) | 4 | 0.6 | µs | ||
4 | tw(SCLL) | Pulse duration, SCL low | 4.7 | 1.3 | µs | ||
5 | tw(SCLH) | Pulse duration, SCL high | 4 | 0.6 | µs | ||
6 | tsu(SDAV-SCLH) | Setup time, SDA valid before SCL high | 250 | 100(2) | ns | ||
7 | th(SCLL-SDAV) | Hold time, SDA valid after SCL low (For I2C bus devices) | 0(3) | 3.45 | 0(3) | 0.9(4) | µs |
8 | tw(SDAH) | Pulse duration, SDA high between STOP and START conditions | 4.7 | 1.3 | µs | ||
9 | tr(SDA) | Rise time, SDA | 1000 | 20 + 0.1Cb(5) | 300 | ns | |
10 | tr(SCL) | Rise time, SCL | 1000 | 20 + 0.1Cb(5) | 300 | ns | |
11 | tf(SDA) | Fall time, SDA | 300 | 20 + 0.1Cb(5) | 300 | ns | |
12 | tf(SCL) | Fall time, SCL | 300 | 20 + 0.1Cb(5) | 300 | ns | |
13 | tsu(SCLH-SDAH) | Setup time, SCL high before SDA high (for STOP condition) | 4 | 0.6 | µs | ||
14 | tw(SP) | Pulse duration, spike (must be suppressed) | 0 | 50 | ns | ||
15 | Cb (5) | Capacitive load for each bus line | 400 | 400 | pF |
NO. | PARAMETER | STANDARD MODE | FAST MODE | UNIT | |||
---|---|---|---|---|---|---|---|
MIN | MAX | MIN | MAX | ||||
16 | tc(SCL) | Cycle time, SCL | 10 | 2.5 | ms | ||
17 | tsu(SCLH-SDAL) | Setup time, SCL high to SDA low (for a repeated START condition) | 4.7 | 0.6 | ms | ||
18 | th(SDAL-SCLL) | Hold time, SDA low after SCL low (for a START and a repeated START condition) | 4 | 0.6 | ms | ||
19 | tw(SCLL) | Pulse duration, SCL low | 4.7 | 1.3 | ms | ||
20 | tw(SCLH) | Pulse duration, SCL high | 4 | 0.6 | ms | ||
21 | td(SDAV-SDLH) | Delay time, SDA valid to SCL high | 250 | 100 | ns | ||
22 | tv(SDLL-SDAV) | Valid time, SDA valid after SCL low (For I2C bus devices) | 0 | 0 | 0.9 | ms | |
23 | tw(SDAH) | Pulse duration, SDA high between STOP and START conditions | 4.7 | 1.3 | ms | ||
24 | tr(SDA) | Rise time, SDA | 1000 | 20 + 0.1Cb(1) | 300 | ns | |
25 | tr(SCL) | Rise time, SCL | 1000 | 20 + 0.1Cb(1) | 300 | ns | |
26 | tf(SDA) | Fall time, SDA | 300 | 20 + 0.1Cb(1) | 300 | ns | |
27 | tf(SCL) | Fall time, SCL | 300 | 20 + 0.1Cb(1) | 300 | ns | |
28 | td(SCLH-SDAH) | Delay time, SCL high to SDA high (for STOP condition) | 4 | 0.6 | ms | ||
29 | Cp | Capacitance for each I2C pin | 10 | 10 | pF |
The serial peripheral interconnect (SPI) module provides an interface between the DSP and other SPI-compliant devices. The primary intent of this interface is to allow for connection to an SPI ROM for boot. The SPI module on the C6654 is supported only in master mode. Additional chip-level components can also be included, such as temperature sensors or an I/O expander.
NO. | MIN | MAX | UNIT | ||
---|---|---|---|---|---|
Master Mode Timing Diagrams — Base Timings for 3 Pin Mode | |||||
7 | tsu(SDI-SPC) | Input Setup Time, SPIDIN valid before receive edge of SPICLK. Polarity = 0 Phase = 0 | 2 | ns | |
7 | tsu(SDI-SPC) | Input Setup Time, SPIDIN valid before receive edge of SPICLK. Polarity = 0 Phase = 1 | 2 | ns | |
7 | tsu(SDI-SPC) | Input Setup Time, SPIDIN valid before receive edge of SPICLK. Polarity = 1 Phase = 0 | 2 | ns | |
7 | tsu(SDI-SPC) | Input Setup Time, SPIDIN valid before receive edge of SPICLK. Polarity = 1 Phase = 1 | 2 | ns | |
8 | th(SPC-SDI) | Input Hold Time, SPIDIN valid after receive edge of SPICLK. Polarity = 0 Phase = 0 | 5 | ns | |
8 | th(SPC-SDI) | Input Hold Time, SPIDIN valid after receive edge of SPICLK. Polarity = 0 Phase = 1 | 5 | ns | |
8 | th(SPC-SDI) | Input Hold Time, SPIDIN valid after receive edge of SPICLK. Polarity = 1 Phase = 0 | 5 | ns | |
8 | th(SPC-SDI) | Input Hold Time, SPIDIN valid after receive edge of SPICLK. Polarity = 1 Phase = 1 | 5 | ns |
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
Master Mode Timing Diagrams — Base Timings for 3 Pin Mode | |||||
1 | tc(SPC) | Cycle Time, SPICLK, All Master Modes | 3*P2(1) | ns | |
2 | tw(SPCH) | Pulse Width High, SPICLK, All Master Modes | 0.5*tc - 1 | ns | |
3 | tw(SPCL) | Pulse Width Low, SPICLK, All Master Modes | 0.5*tc - 1 | ns | |
4 | td(SDO-SPC) | Setup (Delay), initial data bit valid on SPIDOUT to initial edge on SPICLK. Polarity = 0, Phase = 0. | 5 | ns | |
4 | td(SDO-SPC) | Setup (Delay), initial data bit valid on SPIDOUT to initial edge on SPICLK. Polarity = 0, Phase = 1. | 5 | ns | |
4 | td(SDO-SPC) | Setup (Delay), initial data bit valid on SPIDOUT to initial edge on SPICLK Polarity = 1, Phase = 0 | 5 | ns | |
4 | td(SDO-SPC) | Setup (Delay), initial data bit valid on SPIDOUT to initial edge on SPICLK Polarity = 1, Phase = 1 | 5 | ns | |
5 | td(SPC-SDO) | Setup (Delay), subsequent data bits valid on SPIDOUT to initial edge on SPICLK. Polarity = 0 Phase = 0 | 2 | ns | |
5 | td(SPC-SDO) | Setup (Delay), subsequent data bits valid on SPIDOUT to initial edge on SPICLK Polarity = 0 Phase = 1 | 2 | ns | |
5 | td(SPC-SDO) | Setup (Delay), subsequent data bits valid on SPIDOUT to initial edge on SPICLK Polarity = 1 Phase = 0 | 2 | ns | |
5 | td(SPC-SDO) | Setup (Delay), subsequent data bits valid on SPIDOUT to initial edge on SPICLK Polarity = 1 Phase = 1 | 2 | ns | |
6 | toh(SPC-SDO) | Output hold time, SPIDOUT valid after receive edge of SPICLK except for final bit. Polarity = 0 Phase = 0 | 0.5*tc - 2 | ns | |
6 | toh(SPC-SDO) | Output hold time, SPIDOUT valid after receive edge of SPICLK except for final bit. Polarity = 0 Phase = 1 | 0.5*tc - 2 | ns | |
6 | toh(SPC-SDO) | Output hold time, SPIDOUT valid after receive edge of SPICLK except for final bit. Polarity = 1 Phase = 0 | 0.5*tc - 2 | ns | |
6 | toh(SPC-SDO) | Output hold time, SPIDOUT valid after receive edge of SPICLK except for final bit. Polarity = 1 Phase = 1 | 0.5*tc - 2 | ns | |
Additional SPI Master Timings — 4 Pin Mode with Chip Select Option | |||||
19 | td(SCS-SPC) | Delay from SPISCS[n] active to first SPICLK. Polarity = 0 Phase = 0 | 2*P2 - 5 | 2*P2 + 5 | ns |
19 | td(SCS-SPC) | Delay from SPISCS[n] active to first SPICLK. Polarity = 0 Phase = 1 | 0.5*tc + (2*P2) - 5 | 0.5*tc + (2*P2) + 5 | ns |
19 | td(SCS-SPC) | Delay from SPISCS[n] active to first SPICLK. Polarity = 1 Phase = 0 | 2*P2 - 5 | 2*P2 + 5 | ns |
19 | td(SCS-SPC) | Delay from SPISCS[n] active to first SPICLK. Polarity = 1 Phase = 1 | 0.5*tc + (2*P2) - 5 | 0.5*tc + (2*P2) + 5 | ns |
20 | td(SPC-SCS) | Delay from final SPICLK edge to master deasserting SPISCS[n]. Polarity = 0 Phase = 0 | 1*P2 - 5 | 1*P2 + 5 | ns |
20 | td(SPC-SCS) | Delay from final SPICLK edge to master deasserting SPISCS[n]. Polarity = 0 Phase = 1 | 0.5*tc + (1*P2) - 5 | 0.5*tc + (1*P2) + 5 | ns |
20 | td(SPC-SCS) | Delay from final SPICLK edge to master deasserting SPISCS[n]. Polarity = 1 Phase = 0 | 1*P2 - 5 | 1*P2 + 5 | ns |
20 | td(SPC-SCS) | Delay from final SPICLK edge to master deasserting SPISCS[n]. Polarity = 1 Phase = 1 | 0.5*tc + (1*P2) - 5 | 0.5*tc + (1*P2) + 5 | ns |
tw(SCSH) | Minimum inactive time on SPISCS[n] pin between two transfers when SPISCS[n] is not held using the CSHOLD feature. | 2*P2 - 5 | ns |
The universal asynchronous receiver/transmitter (UART) module provides an interface between the DSP and a UART terminal interface or other UART-based peripheral. The UART is based on the industry standard TL16C550 asynchronous communications element, which, in turn, is a functional upgrade of the TL16C450. Functionally similar to the TL16C450 on power up (single character or TL16C450 mode), the UART can be placed in an alternate FIFO (TL16C550) mode. This relieves the DSP of excessive software overhead by buffering received and transmitted characters. The receiver and transmitter FIFOs store up to 16 bytes including three additional bits of error status per byte for the receiver FIFO.
The UART performs serial-to-parallel conversions on data received from a peripheral device and parallel-to-serial conversion on data received from the DSP. The DSP can read the UART status at any time. The UART includes control capability and a processor interrupt system that can be tailored to minimize software management of the communications link. For more information on UART, see the Universal Asynchronous Receiver/Transmitter (UART) for KeyStone Devices User's Guide (SPRUGP1).
NO. | MIN | MAX | UNIT | ||
---|---|---|---|---|---|
Receive Timing | |||||
4 | tw(RXSTART) | Pulse width, receive start bit | 0.96U(1) | 1.05U | ns |
5 | tw(RXH) | Pulse width, receive data/parity bit high | 0.96U | 1.05U | ns |
5 | tw(RXL) | Pulse width, receive data/parity bit low | 0.96U | 1.05U | ns |
6 | tw(RXSTOP1) | Pulse width, receive stop bit 1 | 0.96U | 1.05U | ns |
6 | tw(RXSTOP15) | Pulse width, receive stop bit 1.5 | 1.5*(0.96U) | 1.5*(1.05U) | ns |
6 | tw(RXSTOP2) | Pulse width, receive stop bit 2 | 2*(0.96U) | 2*(1.05U) | ns |
Autoflow Timing Requirements | |||||
8 | td(CTSL-TX) | Delay time, CTS asserted to START bit transmit | P(2) | 5P | ns |
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
Transmit Timing | |||||
1 | tw(TXSTART) | Pulse width, transmit start bit | U(1) - 2 | U + 2 | ns |
2 | tw(TXH) | Pulse width, transmit data/parity bit high | U - 2 | U + 2 | ns |
2 | tw(TXL) | Pulse width, transmit data/parity bit low | U - 2 | U + 2 | ns |
3 | tw(TXSTOP1) | Pulse width, transmit stop bit 1 | U - 2 | U + 2 | ns |
3 | tw(TXSTOP15) | Pulse width, transmit stop bit 1.5 | 1.5 * (U - 2) | 1.5 * ('U + 2) | ns |
3 | tw(TXSTOP2) | Pulse width, transmit stop bit 2 | 2 * (U - 2) | 2 * ('U + 2) | ns |
Autoflow Timing Requirements | |||||
7 | td(RX-RTSH) | Delay time, STOP bit received to RTS deasserted | P(2) | 5P | ns |
The two-lane PCI express (PCIe) module on the device provides an interface between the DSP and other PCIe-compliant devices. The PCI Express module provides low-pin-count, high-reliability, and high-speed data transfer at rates of 5.0 GBaud per lane on the serial links. For more information, see the Peripheral Component Interconnect Express (PCIe) for KeyStone Devices User's Guide (SPRUGS6). The PCIe electrical requirements are fully specified in the PCI Express Base Specification Revision 2.0 of PCI-SIG. TI has performed the simulation and system characterization to ensure all PCIe interface timings in this solution are met; therefore, no electrical data/timing information is supplied here for this interface.
The EMIF16 module provides an interface between DSP and external memories such as NAND and NOR flash. For more information, see the External Memory Interface (EMIF16) for KeyStone Devices User's Guide (SPRUGZ3).
The Ethernet media access controller (EMAC) module provides an efficient interface between the C6654 DSP core processor and the networked community. The EMAC supports 10Base-T (10 Mbits/second [Mbps]), and 100BaseTX (100 Mbps), in half- or full-duplex mode, and 1000BaseT (1000 Mbps) in full-duplex mode, with hardware flow control and quality-of-service (QOS) support.
The EMAC module conforms to the IEEE 802.3-2002 standard, describing the Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer specifications. The IEEE 802.3 standard has also been adopted by ISO/IEC and re-designated as ISO/IEC 8802-3:2000(E).
Deviating from this standard, the EMAC module does not use the transmit coding error signal MTXER. Instead of driving the error pin when an underflow condition occurs on a transmitted frame, the EMAC will intentionally generate an incorrect checksum by inverting the frame CRC, so that the transmitted frame will be detected as an error by the network.
The EMAC control module is the main interface between the device core processor, the MDIO module, and the EMAC module. The relationship between these three components is shown in Figure 8-44. The EMAC control module contains the necessary components to allow the EMAC to make efficient use of device memory, plus it controls device interrupts. The EMAC control module incorporates 8K bytes of internal RAM to hold EMAC buffer descriptors.
For more detailed information on the EMAC/MDIO, see Gigabit Ethernet (GbE) Subsystem for KeyStone Devices User's Guide (SPRUGV9).
The EMAC module on the device supports Serial Gigabit Media Independent Interface (SGMII). The SGMII interface conforms to version 1.8 of the industry standard specification.
The memory maps of the EMAC are shown in Table 8-67 through Table 8-72.
HEX ADDRESS | ACRONYM | REGISTER NAME |
---|---|---|
02C0 8000 | TXIDVER | Transmit Identification and Version Register |
02C0 8004 | TXCONTROL | Transmit Control Register |
02C0 8008 | TXTEARDOWN | Transmit Teardown register |
02C0 800F | - | Reserved |
02C0 8010 | RXIDVER | Receive Identification and Version Register |
02C0 8014 | RXCONTROL | Receive Control Register |
02C0 8018 | RXTEARDOWN | Receive Teardown Register |
02C0 801C | - | Reserved |
02C0 8020 - 02C0 807C | - | Reserved |
02C0 8080 | TXINTSTATRAW | Transmit Interrupt Status (Unmasked) Register |
02C0 8084 | TXINTSTATMASKED | Transmit Interrupt Status (Masked) Register |
02C0 8088 | TXINTMASKSET | Transmit Interrupt Mask Set Register |
02C0 808C | TXINTMASKCLEAR | Transmit Interrupt Mask Clear Register |
02C0 8090 | MACINVECTOR | MAC Input Vector Register |
02C0 8094 | MACEOIVECTOR | MAC End of Interrupt Vector Register |
02C0 8098 - 02C0 819C | - | Reserved |
02C0 80A0 | RXINTSTATRAW | Receive Interrupt Status (Unmasked) Register |
02C0 80A4 | RXINTSTATMASKED | Receive Interrupt Status (Masked) Register |
02C0 80A8 | RXINTMASKSET | Receive Interrupt Mask Set Register |
02C0 80AC | RXINTMASKCLEAR | Receive Interrupt Mask Clear Register |
02C0 80B0 | MACINTSTATRAW | MAC Interrupt Status (Unmasked) Register |
02C0 80B4 | MACINTSTATMASKED | MAC Interrupt Status (Masked) Register |
02C0 80B8 | MACINTMASKSET | MAC Interrupt Mask Set Register |
02C0 80BC | MACINTMASKCLEAR | MAC Interrupt Mask Clear Register |
02C0 80C0 - 02C0 80FC | - | Reserved |
02C0 8100 | RXMBPENABLE | Receive Multicast/Broadcast/Promiscuous Channel Enable Register |
02C0 8104 | RXUNICASTSET | Receive Unicast Enable Set Register |
02C0 8108 | RXUNICASTCLEAR | Receive Unicast Clear Register |
02C0 810C | RXMAXLEN | Receive Maximum Length Register |
02C0 8110 | RXBUFFEROFFSET | Receive Buffer Offset Register |
02C0 8114 | RXFILTERLOWTHRESH | Receive Filter Low Priority Frame Threshold Register |
02C0 8118 - 02C0 811C | - | Reserved |
02C0 8120 | RX0FLOWTHRESH | Receive Channel 0 Flow Control Threshold Register |
02C0 8124 | RX1FLOWTHRESH | Receive Channel 1 Flow Control Threshold Register |
02C0 8128 | RX2FLOWTHRESH | Receive Channel 2 Flow Control Threshold Register |
02C0 812C | RX3FLOWTHRESH | Receive Channel 3 Flow Control Threshold Register |
02C0 8130 | RX4FLOWTHRESH | Receive Channel 4 Flow Control Threshold Register |
02C0 8134 | RX5FLOWTHRESH | Receive Channel 5 Flow Control Threshold Register |
02C0 8138 | RX6FLOWTHRESH | Receive Channel 6 Flow Control Threshold Register |
02C0 813C | RX7FLOWTHRESH | Receive Channel 7 Flow Control Threshold Register |
02C0 8140 | RX0FREEBUFFER | Receive Channel 0 Free Buffer Count Register |
02C0 8144 | RX1FREEBUFFER | Receive Channel 1 Free Buffer Count Register |
02C0 8148 | RX2FREEBUFFER | Receive Channel 2 Free Buffer Count Register |
02C0 814C | RX3FREEBUFFER | Receive Channel 3 Free Buffer Count Register |
02C0 8150 | RX4FREEBUFFER | Receive Channel 4 Free Buffer Count Register |
02C0 8154 | RX5FREEBUFFER | Receive Channel 5 Free Buffer Count Register |
02C0 8158 | RX6FREEBUFFER | Receive Channel 6 Free Buffer Count Register |
02C0 815C | RX7FREEBUFFER | Receive Channel 7 Free Buffer Count Register |
02C0 8160 | MACCONTROL | MAC Control Register |
02C0 8164 | MACSTATUS | MAC Status Register |
02C0 8168 | EMCONTROL | Emulation Control Register |
02C0 816C | FIFOCONTROL | FIFO Control Register |
02C0 8170 | MACCONFIG | MAC Configuration Register |
02C0 8174 | SOFTRESET | Soft Reset Register |
02C0 81D0 | MACSRCADDRLO | MAC Source Address Low Bytes Register |
02C0 81D4 | MACSRCADDRHI | MAC Source Address High Bytes Register |
02C0 81D8 | MACHASH1 | MAC Hash Address Register 1 |
02C0 81DC | MACHASH2 | MAC Hash Address Register 2 |
02C0 81E0 | BOFFTEST | Back Off Test Register |
02C0 81E4 | TPACETEST | Transmit Pacing Algorithm Test Register |
02C0 81E8 | RXPAUSE | Receive Pause Timer Register |
02C0 81EC | TXPAUSE | Transmit Pause Timer Register |
02C0 8200 - 02C0 82FC | - | See Table 8-68 |
02C0 8300 - 02C0 84FC | - | Reserved |
02C0 8500 | MACADDRLO | MAC Address Low Bytes Register (used in Receive Address Matching) |
02C0 8504 | MACADDRHI | MAC Address High Bytes Register (used in Receive Address Matching) |
02C0 8508 | MACINDEX | MAC Index Register |
02C0 850C - 02C0 85FC | - | Reserved |
02C0 8600 | TX0HDP | Transmit Channel 0 DMA Head Descriptor Pointer Register |
02C0 8604 | TX1HDP | Transmit Channel 1 DMA Head Descriptor Pointer Register |
02C0 8608 | TX2HDP | Transmit Channel 2 DMA Head Descriptor Pointer Register |
02C0 860C | TX3HDP | Transmit Channel 3 DMA Head Descriptor Pointer Register |
02C0 8610 | TX4HDP | Transmit Channel 4 DMA Head Descriptor Pointer Register |
02C0 8614 | TX5HDP | Transmit Channel 5 DMA Head Descriptor Pointer Register |
02C0 8618 | TX6HDP | Transmit Channel 6 DMA Head Descriptor Pointer Register |
02C0 861C | TX7HDP | Transmit Channel 7 DMA Head Descriptor Pointer Register |
02C0 8620 | RX0HDP | Receive Channel 0 DMA Head Descriptor Pointer Register |
02C0 8624 | RX1HDP | Receive t Channel 1 DMA Head Descriptor Pointer Register |
02C0 8628 | RX2HDP | Receive Channel 2 DMA Head Descriptor Pointer Register |
02C0 862C | RX3HDP | Receive t Channel 3 DMA Head Descriptor Pointer Register |
02C0 8630 | RX4HDP | Receive Channel 4 DMA Head Descriptor Pointer Register |
02C0 8634 | RX5HDP | Receive t Channel 5 DMA Head Descriptor Pointer Register |
02C0 8638 | RX6HDP | Receive Channel 6 DMA Head Descriptor Pointer Register |
02C0 863C | RX7HDP | Receive t Channel 7 DMA Head Descriptor Pointer Register |
02C0 8640 | TX0CP | Transmit Channel 0 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8644 | TX1CP | Transmit Channel 1 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8648 | TX2CP | Transmit Channel 2 Completion Pointer (Interrupt Acknowledge) Register |
02C0 864C | TX3CP | Transmit Channel 3 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8650 | TX4CP | Transmit Channel 4 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8654 | TX5CP | Transmit Channel 5 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8658 | TX6CP | Transmit Channel 6 Completion Pointer (Interrupt Acknowledge) Register |
02C0 865C | TX7CP | Transmit Channel 7 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8660 | RX0CP | Receive Channel 0 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8664 | RX1CP | Receive Channel 1 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8668 | RX2CP | Receive Channel 2 Completion Pointer (Interrupt Acknowledge) Register |
02C0 866C | RX3CP | Receive Channel 3 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8670 | RX4CP | Receive Channel 4 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8674 | RX5CP | Receive Channel 5 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8678 | RX6CP | Receive Channel 6 Completion Pointer (Interrupt Acknowledge) Register |
02C0 867C | RX7CP | Receive Channel 7 Completion Pointer (Interrupt Acknowledge) Register |
02C0 8680 - 02C0 86FC | - | Reserved |
02C0 8700 - 02C0 877C | - | Reserved |
02C0 8780 - 02C0 8FFF | - | Reserved |
HEX ADDRESS | ACRONYM | REGISTER NAME |
---|---|---|
02C0 8200 | RXGOODFRAMES | Good Receive Frames Register |
02C0 8204 | RXBCASTFRAMES | Broadcast Receive Frames Register (Total number of Good Broadcast Frames Receive) |
02C0 8208 | RXMCASTFRAMES | Multicast Receive Frames Register (Total number of Good Multicast Frames Received) |
02C0 820C | RXPAUSEFRAMES | Pause Receive Frames Register |
02C0 8210 | RXCRCERRORS | Receive CRC Errors Register (Total number of Frames Received with CRC Errors) |
02C0 8214 | RXALIGNCODEERRORS | Receive Alignment/Code Errors register (Total number of frames received with alignment/code errors) |
02C0 8218 | RXOVERSIZED | Receive Oversized Frames Register (Total number of Oversized Frames Received) |
02C0 821C | RXJABBER | Receive Jabber Frames Register (Total number of Jabber Frames Received) |
02C0 8220 | RXUNDERSIZED | Receive Undersized Frames Register (Total number of Undersized Frames Received) |
02C0 8224 | RXFRAGMENTS | Receive Frame Fragments Register |
02C0 8228 | RXFILTERED | Filtered Receive Frames Register |
02C0 822C | RXQOSFILTERERED | Received QOS Filtered Frames Register |
02C0 8230 | RXOCTETS | Receive Octet Frames Register (Total number of Received Bytes in Good Frames) |
02C0 8234 | TXGOODFRAMES | Good Transmit Frames Register (Total number of Good Frames Transmitted) |
02C0 8238 | TXBCASTFRAMES | Broadcast Transmit Frames Register |
02C0 823C | TXMCASTFRAMES | Multicast Transmit Frames Register |
02C0 8240 | TXPAUSEFRAMES | Pause Transmit Frames Register |
02C0 8244 | TXDEFERED | Deferred Transmit Frames Register |
02C0 8248 | TXCOLLISION | Transmit Collision Frames Register |
02C0 824C | TXSINGLECOLL | Transmit Single Collision Frames Register |
02C0 8250 | TXMULTICOLL | Transmit Multiple Collision Frames Register |
02C0 8254 | TXEXCESSIVECOLL | Transmit Excessive Collision Frames Register |
02C0 8258 | TXLATECOLL | Transmit Late Collision Frames Register |
02C0 825C | TXUNDERRUN | Transmit Under Run Error Register |
02C0 8260 | TXCARRIERSENSE | Transmit Carrier Sense Errors Register |
02C0 8264 | TXOCTETS | Transmit Octet Frames Register |
02C0 8268 | FRAME64 | Transmit and Receive 64 Octet Frames Register |
02C0 826C | FRAME65T127 | Transmit and Receive 65 to 127 Octet Frames Register |
02C0 8270 | FRAME128T255 | Transmit and Receive 128 to 255 Octet Frames Register |
02C0 8274 | FRAME256T511 | Transmit and Receive 256 to 511 Octet Frames Register |
02C0 8278 | FRAME512T1023 | Transmit and Receive 512 to 1023 Octet Frames Register |
02C0 827C | FRAME1024TUP | Transmit and Receive 1024 to 1518 Octet Frames Register |
02C0 8280 | NETOCTETS | Network Octet Frames Register |
02C0 8284 | RXSOFOVERRUNS | Receive FIFO or DMA Start of Frame Overruns Register |
02C0 8288 | RXMOFOVERRUNS | Receive FIFO or DMA Middle of Frame Overruns Register |
02C0 828C | RXDMAOVERRUNS | Receive DMA Start of Frame and Middle of Frame Overruns Register |
02C0 8290 - 02C0 82FC | - | Reserved |
HEX ADDRESS | ACRONYM | REGISTER NAME |
---|---|---|
02C0 A000 - 02C0 BFFF | - | EMAC Descriptor Memory |
HEX ADDRESS | ACRONYM | REGISTER NAME |
---|---|---|
02C0 8900 | IDVER | Identification and Version register |
02C0 8904 | SOFT_RESET | Software Reset Register |
02C0 8910 | CONTROL | Control Register |
02C0 8914 | STATUS | Status Register |
02C0 8918 | MR_ADV_ABILITY | Advertised Ability Register |
02C0 891C | - | Reserved |
02C0 8920 | MR_LP_ADV_ABILITY | Link Partner Advertised Ability Register |
02C0 8924 - 02C0 8948 | - | Reserved |
HEX ADDRESS | ACRONYM | REGISTER NAME |
---|---|---|
02C0 8A00 | IDVER | Identification and Version register |
02C0 8A04 | SOFT_RESET | Software Reset Register |
02C0 8A08 | EM_CONTROL | Emulation Control Register |
02C0 8A0C | INT_CONTROL | Interrupt Control Register |
02C0 8A10 | C0_RX_THRESH_EN | Receive Threshold Interrupt Enable Register for CorePac0 |
02C0 8A14 | C0_RX_EN | Receive Interrupt Enable Register for CorePac0 |
02C0 8A18 | C0_TX_EN | Transmit Interrupt Enable Register for CorePac0 |
02C0 8A1C | C0_MISC_EN | Misc Interrupt Enable Register for CorePac0 |
02C0 8A10 | Reserved | |
02C0 8A14 | Reserved | |
02C0 8A18 | Reserved | |
02C0 8A1C | Reserved | |
02C0 8A90 | C0_RX_THRESH_STAT | Receive Threshold Masked Interrupt Status Register for CorePac0 |
02C0 8A94 | C0_RX_STAT | Receive Interrupt Masked Interrupt Status Register for CorePac0 |
02C0 8A98 | C0_TX_STAT | Transmit Interrupt Masked Interrupt Status Register for CorePac0 |
02C0 8A9C | C0_MISC_STAT | Misc Interrupt Masked Interrupt Status Register for CorePac0 |
02C0 8AA0 | Reserved | |
02C0 8AA4 | Reserved | |
02C0 8AA8 | Reserved | |
02C0 8AAC | Reserved | |
02C0 8B10 | C0_RX_IMAX | Receive Interrupts Per Millisecond for CorePac0 |
02C0 8B14 | C0_TX_IMAX | Transmit Interrupts Per Millisecond for CorePac0 |
02C0 8B18 | Reserved | |
02C0 8B1C | Reserved |
The Hardware Design Guide for KeyStone Devices (SPRABI2) specifies a complete EMAC and SGMII interface solution for the C6654 as well as a list of compatible EMAC and SGMII devices. TI has performed the simulation and system characterization to ensure all EMAC and SGMII interface timings in this solution are met; therefore, no electrical data/timing information is supplied here for this interface.
NOTE
TI supports only designs that follow the board design guidelines outlined in the application report.
The management data input/output (MDIO) module implements the 802.3 serial management interface to interrogate and control up to 32 Ethernet PHY(s) connected to the device, using a shared two-wire bus. Application software uses the MDIO module to configure the auto-negotiation parameters of each PHY attached to the GbE switch subsystem, retrieve the negotiation results, and configure required parameters in the GbE switch subsystem module for correct operation. The module is designed to allow almost transparent operation of the MDIO interface, with very little maintenance from the core processor. For more information, see the Gigabit Ethernet (GbE) Subsystem for KeyStone Devices User's Guide (SPRUGV9).
The EMAC control module is the main interface between the device core processor, the MDIO module, and the EMAC module. The relationship between these three components is shown in Figure 8-44.
For more detailed information on the EMAC/MDIO, see Gigabit Ethernet (GbE) Subsystem for KeyStone Devices User's Guide (SPRUGV9).
The memory map of the MDIO is shown in Table 8-72.
HEX ADDRESS | ACRONYM | REGISTER NAME |
---|---|---|
02C0 8800 | VERSION | MDIO Version Register |
02C0 8804 | CONTROL | MDIO Control Register |
02C0 8808 | ALIVE | MDIO PHY Alive Status Register |
02C0 880C | LINK | MDIO PHY Link Status Register |
02C0 8810 | LINKINTRAW | MDIO link Status Change Interrupt (unmasked) Register |
02C0 8814 | LINKINTMASKED | MDIO link Status Change Interrupt (masked) Register |
02C0 8818 - 02C0 881C | - | Reserved |
02C0 8820 | USERINTRAW | MDIO User Command Complete Interrupt (Unmasked) Register |
02C0 8824 | USERINTMASKED | MDIO User Command Complete Interrupt (Masked) Register |
02C0 8828 | USERINTMASKSET | MDIO User Command Complete Interrupt Mask Set Register |
02C0 882C | USERINTMASKCLEAR | MDIO User Command Complete Interrupt Mask Clear Register |
02C0 8830 - 02C0 887C | - | Reserved |
02C0 8880 | USERACCESS0 | MDIO User Access Register 0 |
02C0 8884 | USERPHYSEL0 | MDIO User PHY Select Register 0 |
02C0 8888 | USERACCESS1 | MDIO User Access Register 1 |
02C0 888C | USERPHYSEL1 | MDIO User PHY Select Register 1 |
02C0 8890 - 02C0 8FFF | - | Reserved |
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
6 | td(MDCLKL-MDIO) | Delay time, MDCLK low to MDIO data output valid | 100 | ns |
The timers can be used to: time events, count events, generate pulses, interrupt the CPU and send synchronization events to the EDMA3 channel controller.
The C6654 device has seven 64-bit timers in total. Timer0 is dedicated to the CorePac as a watchdog timer and can also be used as a general-purpose timer. Each of the other six timers can also be configured as a general-purpose timer only, programmed as a 64-bit timer or as two separate 32-bit timers.
When operating in 64-bit mode, the timer counts either VBUS clock cycles or input (TINPLx) pulses (rising edge) and generates an output pulse/waveform (TOUTLx) plus an internal event (TINTLx) on a software-programmable period.
When operating in 32-bit mode, the timer is split into two independent 32-bit timers. Each timer is made up of two 32-bit counters: a high counter and a low counter. The timer pins, TINPLx and TOUTLx are connected to the low counter. The timer pins, TINPHx and TOUTHx are connected to the high counter.
When operating in watchdog mode, the timer counts down to 0 and generates an event. It is a requirement that software writes to the timer before the count expires, after which the count begins again. If the count ever reaches 0, the timer event output is asserted. Reset initiated by a watchdog timer can be set by programming Section 8.5.2.6 and the type of reset initiated can set by programming Section 8.5.2.8. For more information, see the 64-bit Timer (Timer 64) for KeyStone Devices User's Guide (SPRUGV5).
The tables and figure below describe the timing requirements and switching characteristics of Timer0 through Timer7 peripherals.
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
1 | tw(TINPH) | Pulse duration, high | 12C | ns | |
2 | tw(TINPL) | Pulse duration, low | 12C | ns |
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
3 | tw(TOUTH) | Pulse duration, high | 12C - 3 | ns | |
4 | tw(TOUTL) | Pulse duration, low | 12C - 3 | ns |
On the C6654, the GPIO peripheral pins GP[15:0] are also used to latch configuration settings. For more detailed information on device/peripheral configuration and the C6654 device pin muxing, see Section 4. For more information on GPIO, see the General Purpose Input/Output (GPIO) for KeyStone Devices User's Guide (SPRUGV1).
NO. | MIN | MAX | UNIT | ||
---|---|---|---|---|---|
1 | tw(GPOH) | Pulse duration, GPOx high | 12C(1) | ns | |
2 | tw(GPOL) | Pulse duration, GPOx low | 12C | ns |
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
3 | tw(GPOH) | Pulse duration, GPOx high | 36C(1) - 8 | ns | |
4 | tw(GPOL) | Pulse duration, GPOx low | 36C - 8 | ns |
The device contains an enhanced semaphore module for the management of shared resources of the DSP C66x CorePac. The semaphore enforces atomic accesses to shared chip-level resources so that the read-modify-write sequence is not broken. The semaphore module has a unique interrupt to the CorePac to identify when the core has acquired the resource.
Semaphore resources within the module are not tied to specific hardware resources. It is a software requirement to allocate semaphore resources to the hardware resource(s) to be arbitrated.
The semaphore module supports 8 master and contains 32 semaphores to be used within the system.
The Semaphore module is accessible only by masters with privilege ID (privID) 0, which means only CorePac 0 or the EDMA transactions initiated by CorePac 0 can access the Semaphore module.
There are two methods of accessing a semaphore resource:
The McBSP provides these functions:
If an internal clock source is used, the CLKGDV field of the Sample Rate Generator Register (SRGR) must always be set to a value of 1 or greater.
For more information, see the Multichannel Buffered Serial Port (McBSP) for KeyStone Devices User's Guide.
The following tables assume testing over recommended operating conditions.
NO. | MIN | MAX | UNIT | |||
---|---|---|---|---|---|---|
2 | tc(CKRX) | Cycle time, CLKR/X | CLKR/X ext | 2P or 20(2)(3) | ns | |
3 | tw(CKRX) | Pulse duration, CLKR/X high or CLKR/X low | CLKR/X ext | P-1(4) | ns | |
5 | tsu(FRH-CKRL) | Setup time, external FSR high before CLKR low | CLKR int | 14 | ns | |
CLKR ext | 4 | |||||
6 | th(CKRL-FRH) | Hold time, external FSR high after CLKR low | CLKR int | 6 | ns | |
CLKR ext | 3 | |||||
7 | tsu(DRV-CKRL) | Setup time, DR valid before CLKR low | CLKR int | 14 | ns | |
CLKR ext | 4 | |||||
8 | th(CKRL-DRV) | Hold time, DR valid after CLKR low | CLKR int | 3 | ns | |
CLKR ext | 3 | |||||
10 | tsu(FXH-CKXL) | Setup time, external FSX high before CLKX low | CLKR int | 14 | ns | |
CLKR ext | 4 | |||||
11 | th(CKXL-FXH) | Hold time, external FSX high after CLKX low | CLKR int | 6 | ns | |
CLKR ext | 3 |
NO. | PARAMETER | MIN | MAX | UNIT | ||
---|---|---|---|---|---|---|
1 | td(CKSH-CKRXH) | Delay time, CLKS high to CLKR/X high for internal CLKR/X generated from CLKS input. | 1 | 14.5 | ns | |
2 | tc(CKRX) | Cycle time, CLKR/X | CLKR/X int | 2P or 20(2)(3) | ns | |
3 | tw(CKRX) | Pulse duration, CLKR/X high or CLKR/X low | CLKR/X int | C - 2(4) | C + 2(4) | ns |
4 | td(CKRH-FRV) | Delay time, CLKR high to internal FSR valid | CLKR int | -4 | 5.5 | ns |
4 | CLKR int | 1 | 14.5 | ns | ||
9 | td(CKXH-FXV) | Delay time, CLKX high to internal FSX valid | CLKX int | -4 | 5.5 | ns |
CLKX ext | 1 | 14.5 | ||||
12 | tdis(CKXH-DXHZ) | Disable time, DX Hi-Z following last data bit from CLKX high | CLKX int | -4 | 7.5 | ns |
CLKX ext | 1 | 14.5 | ||||
13 | td(CKXH-DXV) | Delay time, CLKX high to DX valid | CLKX int | -4 + D1(5) | 5.5 + D2(5) | ns |
CLKX ext | 1 + D1(5) | 14.5 + D2(5) | ||||
14 | td(FXH-DXV) | Delay time, FSX high to DX valid applies ONLY when in data delay 0 (XDATDLY = 00b) mode | FSX int | -4 + D1(6) | 5 + D2(6) | ns |
FSX ext | -2 + D1(6) | 14.5 + D2(6) |
NO. | MIN | MAX | UNIT | ||
---|---|---|---|---|---|
1 | tsu(FRH-CKSH) | Setup time, FSR high before CLKS high | 4 | ns | |
2 | th(CKSH-FRH) | Hold time, FSR high after CLKS high | 4 | ns |
The universal parallel port (uPP) peripheral is a multichannel, high-speed parallel interface with dedicated data lines and minimal control signals. It is designed to interface cleanly with high-speed analog-to-digital converters (ADCs) or digital-to-analog converters (DACs) with up to 16-bits of data width (per channel). It may also be interconnected with field-programmable gate arrays (FPGAs) or other uPP devices to achieve high-speed digital data transfer. It can operate in receive mode, transmit mode, or duplex mode, in which its individual channels operate in opposite directions.
The uPP peripheral includes an internal DMA controller to maximize throughput and minimize CPU overhead during high-speed data transmission. All uPP transactions use the internal DMA to provide data to or retrieve data from the I/O channels. The DMA controller includes two DMA channels, which typically service separate I/O channels. The uPP peripheral also supports data interleave mode, in which all DMA resources service a single I/O channel. In this mode, only one I/O channel may be used.
The features of the uPP include:
For more information, see the Universal Parallel Port (uPP) for KeyStone Devices User's Guide.
BYTE ADDRESS | ACRONYM | REGISTER DESCRIPTION |
---|---|---|
0x0258 0000 | UPPID | uPP Peripheral Identification Register |
0x0258 0004 | UPPCR | uPP Peripheral Control Register |
0x0258 0008 | UPDLB | uPP Digital Loopback Register |
0x0258 0010 | UPCTL | uPP Channel Control Register |
0x0258 0014 | UPICR | uPP Interface Configuration Register |
0x0258 0018 | UPIVR | uPP Interface Idle Value Register |
0x0258 001C | UPTCR | uPP Threshold Configuration Register |
0x0258 0020 | UPISR | uPP Interrupt Raw Status Register |
0x0258 0024 | UPIER | uPP Interrupt Enabled Status Register |
0x0258 0028 | UPIES | uPP Interrupt Enable Set Register |
0x0258 002C | UPIEC | uPP Interrupt Enable Clear Register |
0x0258 0030 | UPEOI | uPP End-of-Interrupt Register |
0x0258 0040 | UPID0 | uPP DMA Channel I Descriptor 0 Register |
0x0258 0044 | UPID1 | uPP DMA Channel I Descriptor 1 Register |
0x0258 0048 | UPID2 | uPP DMA Channel I Descriptor 2 Register |
0x0258 0050 | UPIS0 | uPP DMA Channel I Status 0 Register |
0x0258 0054 | UPIS1 | uPP DMA Channel I Status 1 Register |
0x0258 0058 | UPIS2 | uPP DMA Channel I Status 2 Register |
0x0258 0060 | UPQD0 | uPP DMA Channel Q Descriptor 0 Register |
0x0258 0064 | UPQD1 | uPP DMA Channel Q Descriptor 1 Register |
0x0258 0068 | UPQD2 | uPP DMA Channel Q Descriptor 2 Register |
0x0258 0070 | UPQS0 | uPP DMA Channel Q Status 0 Register |
0x0258 0074 | UPQS1 | uPP DMA Channel Q Status 1 Register |
0x0258 0078 | UPQS2 | uPP DMA Channel Q Status 2 Register |
NO. | MIN | MAX | UNIT | |||
---|---|---|---|---|---|---|
1 | tc(INCLK) | Cycle time, CHn_CLK | SDR mode | 13.33 | ns | |
DDR mode | 26.66 | |||||
2 | tw(INCLKH) | Pulse width, CHn_CLK high | SDR mode | 5 | ns | |
DDR mode | 10 | |||||
3 | tw(INCLKL) | Pulse width, CHn_CLK low | SDR mode | 5 | ns | |
DDR mode | 10 | |||||
4 | tsu(STV-INCLKH) | Setup time, CHn_START valid before CHn_CLK high | 4 | ns | ||
5 | th(INCLKH-STV) | Hold time, CHn_START valid after CHn_CLK high | 0.8 | ns | ||
6 | tsu(ENV-INCLKH) | Setup time, CHn_ENABLE valid before CHn_CLK high | 4 | ns | ||
7 | th(INCLKH-ENV) | Hold time, CHn_ENABLE valid after CHn_CLK high | 0.8 | ns | ||
8 | tsu(DV-INCLKH) | Setup time, CHn_DATA/XDATA valid before CHn_CLK high | 4 | ns | ||
9 | th(INCLKH-DV) | Hold time, CHn_DATA/XDATA valid after CHn_CLK high | 0.8 | ns | ||
10 | tsu(DV-INCLKL) | Setup time, CHn_DATA/XDATA valid before CHn_CLK low | 4 | ns | ||
11 | th(INCLKL-DV) | Hold time, CHn_DATA/XDATA valid after CHn_CLK low | 0.8 | ns | ||
19 | tsu(WTV-OUTCLKL) | Setup time, CHn_WAIT valid before CHn_CLK high | 4 | ns | ||
20 | th(INCLKL-WTV) | Hold time, CHn_WAIT valid after CHn_CLK high | 0.8 | ns | ||
21 | tc(2xTXCLK) | Cycle time, 2xTXCLK input clock(1) | 6.66 | ns |
NO. | PARAMETER | MIN | MAX | UNIT | ||
---|---|---|---|---|---|---|
12 | tc(OUTCLK) | Cycle time, CHn_CLK | SDR mode | 13.33 | ns | |
DDR mode | 26.66 | |||||
13 | tw(OUTCLKH) | Pulse width, CHn_CLK high | SDR mode | 5 | ns | |
DDR mode | 10 | |||||
14 | tw(OUTCLKL) | Pulse width, CHn_CLK low | SDR mode | 5 | ns | |
DDR mode | 10 | |||||
15 | td(OUTCLKH-STV) | Delay time, CHn_START valid after CHn_CLK high | 1 | 11 | ns | |
16 | td(OUTCLKH-ENV) | Delay time, CHn_ENABLE valid after CHn_CLK high | 1 | 11 | ns | |
17 | td(OUTCLKH-DV) | Delay time, CHn_DATA/XDATA valid after CHn_CLK high | 1 | 11 | ns | |
18 | td(OUTCLKL-DV) | Delay time, CHn_DATA/XDATA valid after CHn_CLK low | 1 | 11 | ns |
The C6654 device supports advanced event triggering (AET). This capability can be used to debug complex problems as well as understand performance characteristics of user applications. AET provides the following capabilities:
For more information on AET, see the following documents in Section 9.2:
The C6654 device supports trace. Trace is a debug technology that provides a detailed, historical account of application code execution, timing, and data accesses. Trace collects, compresses, and exports debug information for analysis. Trace works in real-time and does not impact the execution of the system.
For more information on board design guidelines for trace advanced emulation, see the 60-Pin Emulation Header Technical Reference.
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
1 | tw(DPnH) | Pulse duration, DPn/EMUn high detected at 50% Voh | 2.4 | ns | |
1 | tw(DPnH)90% | Pulse duration, DPn/EMUn high detected at 90% Voh | 1.5 | ns | |
2 | tw(DPnL) | Pulse duration, DPn/EMUnlow detected at 50% Voh | 2.4 | ns | |
2 | tw(DPnL)10% | Pulse duration, DPn/EMUnlow detected at 10% Voh | 1.5 | ns | |
3 | tsko(DPn) | Output skew time, time delay difference between DPn/EMUnpins configured as trace | -1 | 1 | ns |
tskp(DPn) | Pulse skew, magnitude of difference between high-to-low (tphl) and low-to-high (tplh) propagation delays. | 600 | ps | ||
tσλδπ_o(DPn) | Output slew rate DPn/EMUn | 3.3 | V/ns |
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
1 | tw(DPnH) | Pulse duration, DPn/EMUn high detected at 50% Voh with 60/40 duty cycle | 4 | ns | |
1 | tw(DPnH)90% | Pulse duration, DPn/EMUn high detected at 90% Voh | 3.5 | ns | |
2 | tw(DPnL) | Pulse duration, DPn/EMUn low detected at 50% Voh with 60/40 duty cycle | 4 | ns | |
2 | tw(DPnL)10% | Pulse duration, DPn/EMUn low detected at 10% Voh | 3.5 | ns | |
3 | tsko(DPn) | Output skew time, time delay difference between DPn/EMUn pins configured as trace | -1 | 1 | ns |
tskp(DPn) | Pulse skew, magnitude of difference between high-to-low (tphl) and low-to-high (tplh) propagation delays. | 1 | ns | ||
tσλδπ_o(DPn) | Output slew rate DPn/EMUn | 3.3 | V/ns |
The JTAG interface is used to support boundary scan and emulation of the device. The boundary scan supported allows for an asynchronous TRST and only the 5 baseline JTAG signals (e.g., no EMU[1:0]) required for boundary scan. Most interfaces on the device follow the Boundary Scan Test Specification (IEEE1149.1), while all of the SerDes (SGMII) support the AC-coupled net test defined in AC-Coupled Net Test Specification (IEEE1149.6).
It is expected that all compliant devices are connected through the same JTAG interface, in daisy-chain fashion, in accordance with the specification. The JTAG interface uses 1.8-V LVCMOS buffers, compliant with the Power Supply Voltage and Interface Standard for Nonterminated Digital Integrated Circuit Specification (EAI/JESD8-5).
For maximum reliability, the C6654 DSP includes an internal pulldown (IPD) on the TRST pin to ensure that TRST will always be asserted upon power up and the DSP's internal emulation logic will always be properly initialized when this pin is not routed out. JTAG controllers from Texas Instruments actively drive TRST high. However, some third-party JTAG controllers may not drive TRST high but expect the use of an external pullup resistor on TRST. When using this type of JTAG controller, assert TRST to initialize the DSP after powerup and externally drive TRST high before attempting any emulation or boundary scan operations.
NO. | MIN | MAX | UNIT | ||
---|---|---|---|---|---|
1 | tc(TCK) | Cycle time, TCK | 34 | ns | |
1a | tw(TCKH) | Pulse duration, TCK high (40% of tc) | 13.6 | ns | |
1b | tw(TCKL) | Pulse duration, TCK low(40% of tc) | 13.6 | ns | |
3 | tsu(TDI-TCK) | input setup time, TDI valid to TCK high | 3.4 | ns | |
3 | tsu(TMS-TCK) | input setup time, TMS valid to TCK high | 3.4 | ns | |
4 | th(TCK-TDI) | input hold time, TDI valid from TCK high | 17 | ns | |
4 | th(TCK-TMS) | input hold time, TMS valid from TCK high | 17 | ns |
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
2 | td(TCKL-TDOV) | Delay time, TCK low to TDO valid | 13.6 | ns |