10.07.2015 Views

Intel 80310 I/O Processor Chipset AAU Coding Techniques

Intel 80310 I/O Processor Chipset AAU Coding Techniques

Intel 80310 I/O Processor Chipset AAU Coding Techniques

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.

<strong>Intel</strong> ® <strong>80310</strong> I/O <strong>Processor</strong> <strong>Chipset</strong> <strong>AAU</strong> <strong>Coding</strong> <strong>Techniques</strong>Code Commentary4.0 Code Commentary4.1 Section ObjectivesPrimary Objective: To identify and describe aspects of the implementation that relate to <strong>80310</strong>hardware and standard operating system issues.Secondary Objective: Provide additional background on the linux APIs to facilitate reading thecode and understanding the implementation.This code was written to be integrated in the Linux Kernel. Therefore Linux data structures andAPIs defined and optimized by the Linux community are used.Recommended Approach to understanding code is to begin with aau_init() and follow function callsequence in Figure 2, “<strong>AAU</strong> State Trace Diagram” on page 16. Also see sections provided foradditional implementation support:• Appendix B, “Example Calling Source Code”• Appendix C, “MMU Functions for <strong>Intel</strong> ® XScale Microarchitecture”4.1.1 File Organization OverviewThere are three files included in Appendix A:• \include\aau.h• \src\aau.h• \src\aau.cFile \include\aau.h includes the public definitions and function APIs. Note that the publicdata structure definition of struct aau_sgl_t is cast to private definition struct sw_aau_t.Files \src\aau.h and \src\aau.c include private definitions, APIs and function calls. NoteAPIs that are static are private and local to the file, and those that are not static are publiccalls. The static modifier localize the functions to the c file and the symbol is not exported.4.1.1.1 Key Data Structure and Use of CastingThe primary data structure used by application to initiate an <strong>AAU</strong> transaction is stuct aau_sgl_t(see code line 72). When the application is filling our the source and destination address in thedescriptor, physical addresses not virtual addresses are required. The aau_sgl_t is cast to datastructure sw_aau_t for processing (line 444). Note the descriptors are chained together withinfunction aau_queue_buffer, line 463.26 White Paper

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

Saved successfully!

Ooh no, something went wrong!