NPI accesses do not access the correct address when C_PIM<Port_Num>_OFFSET is used. How does the offset parameter affect the address range of a particular MPMC port?
The MPMC data sheet has been updated to explain the function of the C_PIM<Port_Num>_OFFSET.
C_PIM<Port_Num>_BASEADDR+C_PIM<Port_Num>_OFFSET represents the base physical memory address that the corresponding port is allowed to access.
For example, if C_PIM<Port_Num>_OFFSET is 0x00000000, C_PIM<Port_Num>_BASEADDR represents the physical address of memory.
If your total memory size is 0x03FFFFFF, a C_PIM_<Port_Num>_BASEADDR value of 0x00000000 goes to physical address 0x00000000.
A value of 0x01000000 goes to physical address 0x01000000. A value of 0x04000000 goes to physical address 0x00000000.
If you increase the C_PIM_<Port_Num>_OFFSET to 0x02000000, a C_PIM_<Port_Num>_BASEADDR value of 0x00000000 goes to physical address 0x02000000.
A value of 0x01000000 goes to physical address 0x03000000.
A value of 0x04000000 goes to physical address 0x02000000.
This documentation update will be included in MPMCv4.02.a, to be released in EDK 10.1, Service Pack 2.