02.08.2013 Views

P4080 PCIe Adapter SDK User Guide Production Release

P4080 PCIe Adapter SDK User Guide Production Release

P4080 PCIe Adapter SDK User Guide Production Release

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Freescale Semiconductor<br />

1.4 USDPAA Overview<br />

USDPAA is a software framework that allows the development of Linux user space applications on<br />

the <strong>P4080</strong> that have direct access to software portals for the DPAA buffer manager (BMan) and the<br />

DPAA queue manager (Qman). Refer to [2] for further details of USDPAA 2.3 <strong>SDK</strong>.<br />

Software portals are memory mapped hardware components. The items within them (message ring,<br />

dequeue ring, etc.) have specific addresses in the SoC’s physical address map just like regular memory<br />

does. USDPAA works by permitting the physical address ranges that correspond to software portals to be<br />

mapped into the virtual (technically “effective” in the Power architecture nomenclature) address space of<br />

user space processes. Thus, the user space application can use normal load and store instructions to perform<br />

operations on the portals.<br />

Portals must be accessed using correct instruction sequences, and also the memory range for the portals<br />

must be mapped using the correct cache attributes. For this reason, the USDPAA software includes both<br />

the user space driver for the portals and also an access and control API packaged as a user space library.<br />

Figure 2 C-Language APIs Accesses Memory Mapped Device<br />

The USDPAA framework assumes the context of a single SMP Linux instance on an SoC such as the<br />

<strong>P4080</strong>. There is no dependence on the Freescale Embedded Hypervisor, and this document assumes that<br />

it is not used. USDPAA is intended to fulfill much the same function as the Freescale Light-Weight-<br />

Executive but in a different deployment context and in a more flexible manner.<br />

Specifically, the SMP Linux instance may contain many user spaces processes. These processes can be<br />

(and normally are) multi-threaded using the pthreads facility of Linux. Define a “USDPAA thread” as a<br />

thread that has been allocated a BMan and a QMan software portal for its use via direct access. A<br />

“USDPAA process” is a Linux user space process that contains at least one USDPAA thread.<br />

Clearly, the number of USDPAA threads is limited by the number of software portals that the particular<br />

SoC provides. The <strong>P4080</strong> provides 10 QMan and 10 BMan software portals. The available portals must<br />

© Freescale Semiconductor, Inc., 2011. All rights reserved.<br />

Freescale Confidential Proprietary Page 5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!