^

AR# 30904 10.1 EDK, MPMC v4.00.a - NPI accesses do not access the correct address when C_PIM_OFFSET is used

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.

AR# 30904
Date Created 05/12/2008
Last Updated 12/15/2012
Status Active
Type General Article
Feed Back