The T2080 has 3 PAMUs. How can I found out which T2080 SOC peripheral devices are connected to which PAMU?
I need to know this for avoiding cache collisions when selecting LIODNs. Without this knowledge, I have to assume that only 32 ppace cache entries are available, which is tight for my networking solution (using 18 qman sw portals). But if I knew which devices were connected to which PAMU, the number of available ppace cache entries increases to 96.
Basically, if a T2080 peripheral device has a LIODN, I need to know which PAMU is going to cache the ppace entry.
I have pieced some of this together from various device trees, etc., but could not find anything definitive. Obviously the knowledge is out there, but I can't find it anywhere. Just knowing which bus (e.q OCeaN) is connected is not enough. If all I know is the bus, then I need to know which devices are on each bus.
Thanks.
It turned out that we do not disclose the physical PAMU assignments. Our recommendation is to have all the PAMUs point to a common set of PAACTs that have PAACEs for all possible logical I/O devices (LIODs)--even if a particular PAMU was not assigned to those LIODs.
Customers should treat the PAMUs as generically as possible. That is, program every PAMU the same and not worry if a specific PAMU is assigned to a specific set of assets
Thank you for the response.
We do treat all PAMUs equally and program them with a common set of PAACTs (per recommendation). My question is not about how we treat the PAMUs. It is about how we select LIODN values.
We need to select LIODN numbers so as to minimized cache thrashing in the PAMUs. That can only be done by knowing what devices are connected to which PAMUs. The PAMUs will still be treated equally, just LIODN number selection changes.
The linux FSL device tree includes the concept "iommu-parent" as in:
----------------------------
- fsl,iommu-parent
: <phandle>
Phandle to the single, specific PAMU controller node to which
this device is connect. The PAMU topology is represented in
the device tree to assist code that dynamically determines the
best LIODN values to minimize PAMU cache thrashing.
/include/ "qoriq-dma-0.dtsi"
dma@100300 {
fsl,iommu-parent = <&pamu0>;
fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */
};
----------------------------
Our goal is to assign LIODNs to the devices so as to minimize PAMU cache thrashing. That is my goal. But need to know the connectivity to do that. Will still treat PAMUs generically.