Various xps_mailbox driver issues are addressed in this Answer Record.
1. The number of virtual instances (physical interfaces) of a mailbox attached to the processor are enumerated incorrectly. Only physical instances are currently enumerated, which makes the value incorrect when both interfaces of a mailbox are connected to the same processor.
2. Mailboxes connected via FSL do not have the FSL IDs for the send and receive interface enumerated correctly in the xparameters.h.
3. When used in FSL model, the XMbox_Read function uses the wrong FSL ID to read from the mailbox.
4. When used in the FSL model, the driver uses incorrect MicroBlaze FSL instructions to read from the mailbox. This will lead to the driver not really pushing/pulling data to and from the mailbox.
5. The xparameters.h is not defined correctly for a mailbox core connected to the PPC440 processor.
A tactical patch has been created to address the above issues. Issue number 1 will be fixed in 10.1 Service Pack 3. Issues 2 through 5 will be fixed in 11.1.
1. Download the patch from:
2a. Unzip the patch into the drivers directory in your peripheral repository and library. For example, if your repository is C:\EDK_Repository and your library is C:\EDK_Repository\library1, you will unzip the patch into C:\EDK_Repository\library1\drivers. In XPS, set the Project > Project Options > Device and Repository tab > Project Peripheral Repository to reflect your repository, that is, C:\EDK_Repository.
2b. Unzip the patch into your project's drivers directory.
3. Clean software and re-run libgen to incorporate the new drivers.