文本文件  |  49行  |  1.7 KB

MPP configuration
-----------------
Multi-Purpose Ports (MPP) are configurable through platform PCDs.
In order to set desired pin multiplexing, .dsc file needs to be modified.
(OpenPlatformPkg/Platforms/Marvell/Armada/{platform_name}.dsc - please refer to
Documentation/Build.txt for currently supported {platftorm_name} )
Following PCDs are available:

 gMarvellTokenSpaceGuid.PcdMppChipCount

Indicates how many different chips are placed on board. So far up to 4 chips
are supported.

Every MPP PCD has <Num> part where
 <Num> stands for chip ID (order is not important, but configuration will be
 set for first PcdMppChipCount chips).

Below is example for the first chip (Chip0).

 gMarvellTokenSpaceGuid.PcdChip0MppReverseFlag

Indicates that register order is reversed. (Needs to be used only for AP806-Z1)

 gMarvellTokenSpaceGuid.PcdChip0MppBaseAddress

This is base address for MPP configuration register.

 gMarvellTokenSpaceGuid.PcdChip0MppPinCount

Defines how many MPP pins are available.

 gMarvellTokenSpaceGuid.PcdChip0MppSel0
 gMarvellTokenSpaceGuid.PcdChip0MppSel1
 gMarvellTokenSpaceGuid.PcdChip0MppSel2

This registers defines functions of 10 pins in ascending order.

Examples
--------
#APN806-A0 MPP SET
 gMarvellTokenSpaceGuid.PcdChip0MppReverseFlag|FALSE
 gMarvellTokenSpaceGuid.PcdChip0MppBaseAddress|0xF06F4000
 gMarvellTokenSpaceGuid.PcdChip0MppRegCount|3
 gMarvellTokenSpaceGuid.PcdChip0MppSel0|{ 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0 }
 gMarvellTokenSpaceGuid.PcdChip0MppSel1|{ 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }

Set pin 6 and 7 to 0xa function:
 gMarvellTokenSpaceGuid.PcdChip0MppSel0|{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xa, 0x0, 0x0 }