Abstract:
Systems and methods are disclosed for providing memory address translation for a memory management system. One embodiment of such a system comprises a memory device and an application processor in communication via a system interconnect. The application processor comprises test code for testing one or more of a plurality of hardware devices. Each of the hardware devices has a corresponding system memory management unit (SMMU) for processing memory requests associated with the hardware device to the memory device. The system further comprises a client-side address translation system in communication with the system interconnect and the plurality of SMMUs. The client-side address translation system is configured to selectively route stimulus traffic associated with the test code to a client port on one or more of the plurality of SMMUs for testing the corresponding hardware devices.
Abstract:
A method and system for tracking transactions associated with a system memory management unit (“SMMU”) includes receiving a plurality of memory requests from a plurality of processing elements and storing contents of each memory request in a transaction history buffer (“THB”). The contents of a memory request stored in the THB may comprise at least one of a security bit; a Virtual Machine Identifier (“VMID”); a Stream identifier (“SID”); a SMMU Context Bank that was used; and whether or not the virtual address was present in the translation look-aside buffer. A status for a lock command for the THB may be stored in the transaction history buffer. Action taken by the SMMU in response to a memory request may also be stored in the THB. With this data stored in the THB, root causes for errors within the portable computing device may be determined.