SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
A standalone MMU2 module is included at the system level, primarily for use by the PCIe_SS1 and PCIe_SS2 controller. This provides several benefits including protection of the MPU host memory regions from corruption by PCIe_SS1 and PCIe_SS2 accidental accesses.
PCIe controller initiated (by remote side) traffic can be optionally routed through the MMU2 as controlled by a Control Core Module register bit. The PCIe_SS1 and PCIe_SS2 routing allows these sub-systems to be used to perform transfers.
By default, the CTRL_MODULE_CORE instance located CTRL_CORE_CONTROL_IO_1[20] MMU2_DISABLE bit is set to 0b0 and the MMU2 is functionally enabled. Despite this, the PCIe_SS1 and PCIe_SS2 controller traffic still bypasses this MMU.
In order, for PCIe_SS1 and PCIe_SS2 master traffic to be routed through the MMU2, the
CTRL_MODULE_CORE bits: CTRL_CORE_SMA_software_7[13] PCIE_SS1_MMU_ROUTE_ENABLE and CTRL_CORE_SMA_software_7[12] PCIE_SS2_MMU_ROUTE_ENABLE, must be set to 0b1 by user software.
Accesses are directed to the MMU2 by the L3_MAIN switch fabric through the use of a 33-rd address bit. For the PCIe_SS1 and PCIe_SS2 master port, the value of the 33rd bit is actually defined by the above mentioned control module CTRL_CORE_SMA_software_7 register bits. For descriptions of the CTRL_CORE_SMA_software_7 register bitfields related to MMU2 route controls, refer to the Control Module Register Manual, in the chapter, Control Module.
For more information on device MMU2 functionality and register settings, refer to the MMU Functional Description and MMU Register Manual, in the chapter, Memory Management Units, respectively.