SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
A domain dependency is a binary relationship between two clock domains. A clock domain A is said to depend on a clock domain B when a module in clock domain B provides services to a module in clock domain A. As a result, clock domain B must be active when clock domain A is active so that the module in clock domain B is accessible by the module in clock domain A.
Dependency between two clock domains can also exist if one clock domain serves to ensure communication between two modules (for example, the clock domain of the device interconnect).
Thus, a clock domain can support the types of clock domain dependencies described in the following sections.
Table 3-16 and Table 3-17 detail all the domain dependencies:
Static/dynamic dependencies from below domains to right-side domains | L4CFG | ATL | DMA | IPU2 | L3INSTR | L3MAIN1 | COREAON | CUSTEFUSE | DSP1 | DSP2 | DSS | EVE1 | EVE2 | GPU |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VIP | 0/na | 0/na | 0/na | 0/na | 0/na | 1/0 | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na |
L4CFG | na/n1a | na/na | 0/1 | na/na | 0/0 | 0/35 | 0/6 | 0/1 | 0/na | 0/na | na/na | na/na | na/na | na/na |
DMA | SW/na | 0/na | na/na | SW/na | 0/na | 1/0 | 0/na | 0/na | 0/na | 0/na | SW/na | 0/na | 0/na | 0/na |
IPU2 | SW/na | SW/na | 0/na | na/na | 0/na | SW/1 | 0/na | 0/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na |
DSP1 | 0/na | SW/na | 0/na | SW/na | 0/na | SW/3 | 0/na | 0/na | na/na | SW/na | SW/na | SW/na | SW/na | SW/na |
DSP2 | 0/na | SW/na | 0/na | SW/na | 0/na | SW/3 | 0/na | 0/na | SW/na | na/na | SW/na | SW/na | SW/na | SW/na |
L3INSTR | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na |
L3MAIN1 | 0/1 | 0/na | 0/na | 0/1 | 0/0 | na/na | 0/na | 0/na | 0/1 | 0/1 | 0/2 | 0/1 | 0/1 | 0/1 |
DSS | 0/na | 0/na | 0/na | 0/na | 0/na | 1/0 | 0/na | 0/na | 0/na | 0/na | na/na | na/na | na/na | 0/na |
EMU | 0/na | 0/na | 0/na | 0/na | 0/na | 0/1 | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na |
EVE1 | 0/na | 0/na | 0/na | 0/na | 0/na | 1/0 | 0/na | 0/na | 0/na | 0/na | 0/na | na/na | SW/na | 0/na |
EVE2 | 0/na | 0/na | 0/na | 0/na | 0/na | 1/0 | 0/na | 0/na | 0/na | 0/na | 0/na | SW/na | na/na | 0/na |
GPU | 0/na | 0/na | 0/na | 0/na | 0/na | 1/0 | 0/na | 0/na | 0/na | 0/na | 0/na | na/na | na/na | na/na |
IPU1 | SW/na | SW/na | na/na | SW/na | na/na | SW/1 | 0/na | 0/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na |
IVA | 0/na | 0/na | 0/na | 0/na | 0/0 | 1/0 | 0/na | 0/na | 0/na | 0/na | 0/na | na/na | na/na | 0/na |
GMAC | na/na | 0/na | na/na | 0/na | na/na | 1/0 | 0/na | 0/na | 0/na | 0/na | na/na | na/na | na/na | na/na |
L3INIT | SW/na | 0/na | 0/na | 0/na | 0/na | 1/0 | 0/na | 0/na | 0/na | 0/na | 0/na | na/na | na/na | 0/na |
L4PER1 | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | 0/na | 0/1 | na/na | na/na | na/na |
L4PER2 | na/na | 0/1 | na/na | SW/na | na/na | 1/0 | na/na | na/na | SW/na | SW/na | na/na | na/na | na/na | na/na |
L4PER3 | na/na | na/na | na/na | 0/na | na/na | 0/4 | na/na | na/na | 0/na | 0/na | na/na | na/na | na/na | na/na |
L4SEC | 0/na | na/na | 0/na | 0/na | 0/na | 1/0 | 0/na | 0/na | 0/na | 0/na | 0/na | na/na | na/na | 0/na |
MPU | SW/na | na/na | 0/na | SW/na | 0/na | SW/1 | 0/na | 0/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na |
VPE | na/na | 0/na | na/na | 0/na | na/na | 1/0 | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na |
PCIE | SW/na | SW/na | na/na | 0/na | na/na | 1/0 | 0/na | na/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na |
Static/dynamic dependencies from below domains to right-side domains | IPU1 | CAM | EMU | IPU | IVA | GMAC | L3INIT | L4PER1 | L4PER2 | L4PER3 | L4SEC | MPU | RTC | EMIF | VPE | WKUPAON | PCIe |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VIP | 0/na | na/na | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na | 0/na | SW/na | 0/na | 0/na | 0/na |
L4CFG | na/na | 0/na | na/na | na/na | na/na | na/na | 0/2 | na/na | na/na | na/na | na/na | 0/1 | na/na | 0/1 | na/na | na/na | na/na |
DMA | SW/na | 0/na | 0/na | SW/na | SW/na | 0/na | SW/na | SW/na | SW/na | SW/na | SW/na | 0/na | na/na | SW/na | 0/na | SW/na | SW/na |
IPU2 | SW/na | SW/na | 0/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | 0/na | na/na | SW/na | SW/na | SW/na | SW/na |
DSP1 | 0/na | SW/na | 0/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | 0/na | na/na | SW/na | SW/na | SW/na | SW/na |
DSP2 | 0/na | SW/na | 0/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | 0/na | na/na | SW/na | SW/na | SW/na | SW/na |
L3INSTR | na/na | na/na | 0/0 | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na |
L3MAIN1 | 0/1 | 0/0 | 0/na | 0/na | 0/2 | 0/na | 0/na | 0/1 | 0/4 | 0/1 | 0/4 | 0/na | na/na | 0/2 | na/na | 0/1 | 0/2 |
DSS | 0/na | 0/na | 0/na | na/na | SW/na | na/na | 0/na | 0/na | na/na | na/na | 0/na | 0/na | na/na | SW/na | na/na | 0/na | na/na |
EMU | 0/na | 0/na | na/na | 0/na | 0/na | na/na | 0/na | 0/na | na/na | na/na | 0/na | 0/0 | na/na | 0/na | na/na | 0/na | na/na |
EVE1 | 0/na | na/na | na/na | na/na | SW/na | na/na | na/na | na/na | na/na | na/na | na/na | 0/na | na/na | SW/na | na/na | na/na | na/na |
EVE2 | 0/na | na/na | na/na | na/na | SW/na | na/na | na/na | na/na | na/na | na/na | na/na | 0/na | na/na | SW/na | na/na | na/na | na/na |
GPU | 0/na | 0/na | 0/na | na/na | SW/na | na/na | 0/na | 0/na | na/na | na/na | 0/na | 0/na | na/na | SW/na | na/na | 0/na | na/na |
IPU1 | na/na | SW/na | na/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | na/na | na/na | SW/na | SW/na | SW/na | SW/na |
IVA | 0/na | 0/na | 0/na | na/na | na/na | na/na | 0/na | 0/na | na/na | na/na | 0/na | 0/na | na/na | SW/na | na/na | 0/na | na/na |
GMAC | 0/na | na/na | na/na | 0/na | na/na | na/na | na/na | na/na | SW/na | na/na | na/na | 0/na | na/na | SW/na | na/na | na/na | na/na |
L3INIT | 0/na | 0/na | 0/na | na/na | SW/na | na/na | na/na | SW/na | na/na | SW/na | SW/na | 0/na | na/na | SW/na | na/na | SW/na | na/na |
L4PER1 | 0/na | na/na | na/na | 0/2 | na/na | na/na | 0/2 | na/na | na/na | na/na | 0/4 | na/na | na/na | na/na | na/na | na/na | na/na |
L4PER2 | SW/na | na/na | na/na | 0/1 | na/na | 0/1 | 0/1 | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na |
L4PER3 | 0/na | 0/3 | na/na | 0/4 | na/na | na/na | 0/8 | na/na | na/na | na/na | na/na | na/na | 0/1 | na/na | 0/1 | na/na | na/na |
L4SEC | 0/na | 0/na | 0/na | na/na | 0/na | na/na | 0/na | SW/na | na/na | na/na | na/na | 0/na | na/na | SW/na | na/na | 0/na | na/na |
MPU | SW/na | SW/na | 0/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | na/na | na/na | SW/2 | SW/na | SW/na | SW/na |
VPE | 0/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | na/na | SW/na | na/na | na/na | na/na | SW/na | na/na | na/na | na/na |
PCIE | SW/na | SW/na | na/na | SW/na | SW/nac | SW/na | SW/na | SW/na | SW/na | SW/na | SW/na | 0/na | na/na | SW/na | SW/na | na/na | na/na |
When a static dependency is hardware-coded between two domains directly linked by one or several interconnect interfaces, then the corresponding dynamic dependency is useless.
Emulation domain (DAP initiator) has no static dependency with any other domain. It has, however, a dynamic dependency with the L3_MAIN2 interconnect. A domain that can access an emulation domain does not have static or dynamic dependency with it.
Domain dependencies are chosen such that any access (even from EMU/DAP) towards a nondisabled target is always completed normally. Using static dependencies allows having minimal access latencies by keeping necessary domains on whenever the initiator is not standby. This may be at the expense of additional power consumption because some domains may stay on while not in use for a long time. By disabling static dependencies, applicative access is still completed normally by waking up, if applicable, the necessary domain on the path from the initiator to the target. Power consumption can be optimized at the expense of additional access latencies.
Once the CM_<Clock domain>_CLKSTCTRL[1:0] CLKTRCTRL has been set to SW_WKUP, then SW has to poll for PM_<Clock_domain>_PWRSTST[1:0] PowerStateSt = 0x03 and PM_<Clock_domain>_PWRSTST[20] InTransition = 0x00 before update MODULEMODE bit field.