-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Build: (bc45bf0) Added PG344 Design Considerations
- Loading branch information
1 parent
749536a
commit d1e24e4
Showing
10 changed files
with
366 additions
and
1 deletion.
There are no files selected for viewing
Binary file added
BIN
+20.8 KB
...ocs/QDMA_Subsystem_for_PCIExpress_IP_Driver/PG344_important_design_considerations.doctree
Binary file not shown.
Binary file modified
BIN
+0 Bytes
(100%)
pciedebug/build/doctrees/docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/index.doctree
Binary file not shown.
Binary file not shown.
61 changes: 61 additions & 0 deletions
61
...ubsystem_for_PCIExpress_IP_Driver/PG344_important_design_considerations.rst.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
.. _PG302_important_design_considerations: | ||
|
||
|
||
Important Design Considerations from PG302 | ||
========================================== | ||
|
||
.. container:: Introduction | ||
|
||
When tackling design issues, navigating a lengthy product guide can be overwhelming. To streamline your troubleshooting process, this article lists essential design considerations directly from the product guide, highlighting key points to keep in mind. This article condenses over 200 pages into a focused, 10-12 page summary, making it easier to access the most relevant information quickly. For full details, be sure to click the provided link to explore each consideration further in the original product guide. | ||
|
||
.. note:: | ||
:class: highlight-box | ||
|
||
**Link**: `Resets <https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/Resets?tocId=h1v7mXtUbwccVJ7YmHm9Jg>`_ | ||
|
||
- If your board is designed to use the same PCIe edge connectors to operate with CPM and PL PCIE, then AMD recommend using PS reset using the Control Interface and Processing System (CIPS) IP core. | ||
|
||
.. note:: | ||
:class: highlight-box | ||
|
||
**Link**: `Descriptor Engine <https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/Descriptor-Engine?tocId=zPLzp4_2KsOEq1OQBKu9mA>`_ | ||
|
||
- The descriptor engine will have only one DMA read outstanding per queue at a time and can read as many descriptors as can fit in a queue is associated with interrupt aggregation, AMD recommends that the status descriptor be turned off, and instead the DMA status be received from the interrupt aggregation ring. | ||
|
||
.. note:: | ||
:class: highlight-box | ||
|
||
**Link**: `H2C Stream Engine <https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/H2C-Stream-Engine?tocId=8B1g_MoJi9B~JYNKl5PE8w>`_ | ||
|
||
- The total length of all descriptors put together must be less than 64 KB. | ||
- A packet with multiple descriptors straddling is not allowed due to the lack of per queue storage. | ||
|
||
.. note:: | ||
:class: highlight-box | ||
|
||
**Link**: `C2H Stream Engine <https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/C2H-Stream-Engine?tocId=kLLbtbEfgONrsb5bysKeHQ>`_ | ||
|
||
- In Simple Bypass Mode, the engine does not track anything for the queue, and the user logic can define its own method to receive descriptors. The user logic is then responsible for delivering the packet and associated descriptor through the simple bypass interface. | ||
- The ordering of the descriptors fetched by a queue in the bypass interface and the C2H stream interface must be maintained across all queues in bypass mode. | ||
|
||
.. note:: | ||
:class: highlight-box | ||
|
||
**Link**: `AXI Memory Mapped Bridge Master Interface <https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/AXI-Memory-Mapped-Bridge-Master-Interface>`_ | ||
|
||
- The AXI MM Bridge Master interface is used for high bandwidth access to AXI Memory Mapped space from the host. The interface supports up to 32 outstanding AXI reads and writes. One or more PCIe BAR of any physical function (PF) or virtual function (VF) can be mapped to the AXI-MM bridge master interface. This selection must be made prior to design compilation. | ||
- Note that all VFs belonging to the same PF share the same PCIe to AXI translation vector. Therefore, the AXI address space of each VF is concatenated together. Use VFG_OFFSET to calculate the actual starting address of AXI for a particular VF. | ||
|
||
.. note:: | ||
:class: highlight-box | ||
|
||
**Link**: `AXI Memory Mapped Bridge Slave Interface <https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/AXI-Memory-Mapped-Bridge-Slave-Interface>`_ | ||
|
||
- The AXI-MM Bridge Slave interface is used for high bandwidth memory transfers between the user logic and the Host. AXI to PCIe translation is supported through the AXI to PCIe BARs. The interface will split requests as necessary to obey PCIe MPS and 4 KB boundary crossing requirements. Up to 32 outstanding read and write requests are supported. | ||
|
||
.. note:: | ||
:class: highlight-box | ||
|
||
**Link**: `Interrupt Module <https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/Interrupt-Module>`_ | ||
|
||
- Queue-based interrupts and user interrupts are allowed on PFs and VFs, but error interrupts are allowed only on PFs. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
241 changes: 241 additions & 0 deletions
241
...l/docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/PG344_important_design_considerations.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,241 @@ | ||
<!DOCTYPE html> | ||
<html class="writer-html5" lang="en" > | ||
<head> | ||
<meta charset="utf-8" /> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
|
||
<!-- OneTrust Cookies Consent Notice start for xilinx.github.io --> | ||
|
||
<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-document-language="true" type="text/javascript" charset="UTF-8" data-domain-script="03af8d57-0a04-47a6-8f10-322fa00d8fc7" ></script> | ||
<script type="text/javascript"> | ||
function OptanonWrapper() { } | ||
</script> | ||
<!-- OneTrust Cookies Consent Notice end for xilinx.github.io --> | ||
<!-- Google Tag Manager --> | ||
<script type="text/plain" class="optanon-category-C0002">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': | ||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], | ||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= | ||
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); | ||
})(window,document,'script','dataLayer','GTM-5RHQV7');</script> | ||
<!-- End Google Tag Manager --> | ||
<title>Important Design Considerations from PG302 — PCIe Debug K-Map 1.0 documentation</title> | ||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> | ||
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> | ||
<link rel="stylesheet" href="../../_static/_static/custom.css" type="text/css" /> | ||
<!--[if lt IE 9]> | ||
<script src="../../_static/js/html5shiv.min.js"></script> | ||
<![endif]--> | ||
|
||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> | ||
<script src="../../_static/jquery.js"></script> | ||
<script src="../../_static/underscore.js"></script> | ||
<script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
<script src="../../_static/doctools.js"></script> | ||
<script src="../../_static/js/theme.js"></script> | ||
<link rel="index" title="Index" href="../../genindex.html" /> | ||
<link rel="search" title="Search" href="../../search.html" /> | ||
</head> | ||
|
||
<body class="wy-body-for-nav"> | ||
|
||
<!-- Google Tag Manager --> | ||
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-5RHQV7" height="0" width="0" style="display:none;visibility:hidden" class="optanon-category-C0002"></iframe></noscript> | ||
<!-- End Google Tag Manager --> | ||
<div class="wy-grid-for-nav"> | ||
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
<div class="wy-side-scroll"> | ||
<div class="wy-side-nav-search"> | ||
<a href="../../index.html" class="icon icon-home"> PCIe Debug K-Map | ||
<img src="../../_static/xilinx-header-logo.svg" class="logo" alt="Logo"/> | ||
</a> | ||
<div class="version"> | ||
1.0 | ||
</div> | ||
<div role="search"> | ||
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> | ||
<input type="text" name="q" placeholder="Search docs" /> | ||
<input type="hidden" name="check_keywords" value="yes" /> | ||
<input type="hidden" name="area" value="default" /> | ||
</form> | ||
</div> | ||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
<p class="caption" role="heading"><span class="caption-text">PCIe Debug (General)</span></p> | ||
<ul> | ||
<li class="toctree-l1"><a class="reference internal" href="../PCIe_Collaterals/index.html">PCIe Collaterals</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../PCIe_Common_Issues/index.html">PCIe Common Issues</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../PCIe_Debug_General_Techniques/index.html">PCIe General Debug Techniques</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../Link_Training/index.html">Link Training Issue</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../Simulation_Issue/index.html">Simulation Issue</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../Interrupt/index.html">Interrupt Issue</a></li> | ||
</ul> | ||
<p class="caption" role="heading"><span class="caption-text">Versal ACAP</span></p> | ||
<ul> | ||
<li class="toctree-l1"><a class="reference internal" href="../Versal_ACAP_CPM_Mode_for_PCI_Express/index.html">Versal ACAP CPM Mode for PCI Express</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../Versal_ACAP_Integrated_Block_for_PCI_Express/index.html">Versal ACAP Integrated Block for PCI Express</a></li> | ||
</ul> | ||
<p class="caption" role="heading"><span class="caption-text">UltraScale+</span></p> | ||
<ul> | ||
<li class="toctree-l1"><a class="reference internal" href="../UltraScale%2B_Devices_Integrated_Block_for_PCIExpress/index.html">UltraScale+ Devices Integrated Block for PCIExpress</a></li> | ||
</ul> | ||
<p class="caption" role="heading"><span class="caption-text">XDMA/Bridge Subsystem</span></p> | ||
<ul> | ||
<li class="toctree-l1"><a class="reference internal" href="../DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/index.html">DMA/Bridge Subsystem for PCI Express (XDMA IP/Driver)</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/index.html">DMA/Bridge Subsystem for PCI Express (Bridge IP Endpoint)</a></li> | ||
</ul> | ||
<p class="caption" role="heading"><span class="caption-text">QDMA</span></p> | ||
<ul> | ||
<li class="toctree-l1"><a class="reference internal" href="index.html">QDMA Subsystem for PCIExpress (IP/Driver)</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="qdma_conceptual_topics/index.html">QDMA Conceptual Topics</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="qdma_debug_topics/index.html">QDMA Debug Topics</a></li> | ||
</ul> | ||
<p class="caption" role="heading"><span class="caption-text">Embedded PCI Express</span></p> | ||
<ul> | ||
<li class="toctree-l1"><a class="reference internal" href="../PS_PCIe_PL_PCIe_Root_Port_Driver/index.html">Documentation & Debugging Resources</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.html">Versal CPM4 PCIe Root Port Design (Linux)</a></li> | ||
</ul> | ||
|
||
</div> | ||
</div> | ||
</nav> | ||
|
||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: black" > | ||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
<a href="../../index.html">PCIe Debug K-Map</a> | ||
</nav> | ||
|
||
<div class="wy-nav-content"> | ||
<div class="rst-content"> | ||
<div role="navigation" aria-label="Page navigation"> | ||
<ul class="wy-breadcrumbs"> | ||
<li><a href="../../index.html" class="icon icon-home"></a> »</li> | ||
<li>Important Design Considerations from PG302</li> | ||
<li class="wy-breadcrumbs-aside"> | ||
<a href="../../_sources/docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/PG344_important_design_considerations.rst.txt" rel="nofollow"> View page source</a> | ||
</li> | ||
</ul> | ||
<hr/> | ||
</div> | ||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | ||
<div itemprop="articleBody"> | ||
|
||
<div class="section" id="important-design-considerations-from-pg302"> | ||
<span id="pg302-important-design-considerations"></span><h1>Important Design Considerations from PG302<a class="headerlink" href="#important-design-considerations-from-pg302" title="Permalink to this heading">¶</a></h1> | ||
<div class="introduction docutils container"> | ||
<p>When tackling design issues, navigating a lengthy product guide can be overwhelming. To streamline your troubleshooting process, this article lists essential design considerations directly from the product guide, highlighting key points to keep in mind. This article condenses over 200 pages into a focused, 10-12 page summary, making it easier to access the most relevant information quickly. For full details, be sure to click the provided link to explore each consideration further in the original product guide.</p> | ||
</div> | ||
<div class="highlight-box admonition note"> | ||
<p class="admonition-title">Note</p> | ||
<p><strong>Link</strong>: <a class="reference external" href="https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/Resets?tocId=h1v7mXtUbwccVJ7YmHm9Jg">Resets</a></p> | ||
<ul class="simple"> | ||
<li><p>If your board is designed to use the same PCIe edge connectors to operate with CPM and PL PCIE, then AMD recommend using PS reset using the Control Interface and Processing System (CIPS) IP core.</p></li> | ||
</ul> | ||
</div> | ||
<div class="highlight-box admonition note"> | ||
<p class="admonition-title">Note</p> | ||
<p><strong>Link</strong>: <a class="reference external" href="https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/Descriptor-Engine?tocId=zPLzp4_2KsOEq1OQBKu9mA">Descriptor Engine</a></p> | ||
<ul class="simple"> | ||
<li><p>The descriptor engine will have only one DMA read outstanding per queue at a time and can read as many descriptors as can fit in a queue is associated with interrupt aggregation, AMD recommends that the status descriptor be turned off, and instead the DMA status be received from the interrupt aggregation ring.</p></li> | ||
</ul> | ||
</div> | ||
<div class="highlight-box admonition note"> | ||
<p class="admonition-title">Note</p> | ||
<p><strong>Link</strong>: <a class="reference external" href="https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/H2C-Stream-Engine?tocId=8B1g_MoJi9B~JYNKl5PE8w">H2C Stream Engine</a></p> | ||
<ul class="simple"> | ||
<li><p>The total length of all descriptors put together must be less than 64 KB.</p></li> | ||
<li><p>A packet with multiple descriptors straddling is not allowed due to the lack of per queue storage.</p></li> | ||
</ul> | ||
</div> | ||
<div class="highlight-box admonition note"> | ||
<p class="admonition-title">Note</p> | ||
<p><strong>Link</strong>: <a class="reference external" href="https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/C2H-Stream-Engine?tocId=kLLbtbEfgONrsb5bysKeHQ">C2H Stream Engine</a></p> | ||
<ul class="simple"> | ||
<li><p>In Simple Bypass Mode, the engine does not track anything for the queue, and the user logic can define its own method to receive descriptors. The user logic is then responsible for delivering the packet and associated descriptor through the simple bypass interface.</p></li> | ||
<li><p>The ordering of the descriptors fetched by a queue in the bypass interface and the C2H stream interface must be maintained across all queues in bypass mode.</p></li> | ||
</ul> | ||
</div> | ||
<div class="highlight-box admonition note"> | ||
<p class="admonition-title">Note</p> | ||
<p><strong>Link</strong>: <a class="reference external" href="https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/AXI-Memory-Mapped-Bridge-Master-Interface">AXI Memory Mapped Bridge Master Interface</a></p> | ||
<ul class="simple"> | ||
<li><p>The AXI MM Bridge Master interface is used for high bandwidth access to AXI Memory Mapped space from the host. The interface supports up to 32 outstanding AXI reads and writes. One or more PCIe BAR of any physical function (PF) or virtual function (VF) can be mapped to the AXI-MM bridge master interface. This selection must be made prior to design compilation.</p></li> | ||
<li><p>Note that all VFs belonging to the same PF share the same PCIe to AXI translation vector. Therefore, the AXI address space of each VF is concatenated together. Use VFG_OFFSET to calculate the actual starting address of AXI for a particular VF.</p></li> | ||
</ul> | ||
</div> | ||
<div class="highlight-box admonition note"> | ||
<p class="admonition-title">Note</p> | ||
<p><strong>Link</strong>: <a class="reference external" href="https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/AXI-Memory-Mapped-Bridge-Slave-Interface">AXI Memory Mapped Bridge Slave Interface</a></p> | ||
<ul class="simple"> | ||
<li><p>The AXI-MM Bridge Slave interface is used for high bandwidth memory transfers between the user logic and the Host. AXI to PCIe translation is supported through the AXI to PCIe BARs. The interface will split requests as necessary to obey PCIe MPS and 4 KB boundary crossing requirements. Up to 32 outstanding read and write requests are supported.</p></li> | ||
</ul> | ||
</div> | ||
<div class="highlight-box admonition note"> | ||
<p class="admonition-title">Note</p> | ||
<p><strong>Link</strong>: <a class="reference external" href="https://docs.amd.com/r/en-US/pg344-pcie-dma-versal/Interrupt-Module">Interrupt Module</a></p> | ||
<ul class="simple"> | ||
<li><p>Queue-based interrupts and user interrupts are allowed on PFs and VFs, but error interrupts are allowed only on PFs.</p></li> | ||
</ul> | ||
</div> | ||
</div> | ||
|
||
|
||
</div> | ||
</div> | ||
|
||
|
||
<footer> | ||
|
||
<hr/> | ||
|
||
<div role="contentinfo"> | ||
<p>© Copyright 2021-2022, Advanced Micro Devices, Inc. | ||
<span class="lastupdated">Last updated on October 24, 2022. | ||
</span></p> | ||
</div> | ||
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--16"> | ||
<div class="aem-GridColumn aem-GridColumn--xxxlarge--none aem-GridColumn--xsmall--16 aem-GridColumn--offset--xsmall--0 aem-GridColumn--xlarge--none aem-GridColumn--xxlarge--none aem-GridColumn--default--none aem-GridColumn--offset--large--1 aem-GridColumn--xlarge--12 aem-GridColumn--offset--default--0 aem-GridColumn--xxlarge--10 aem-GridColumn--offset--xlarge--2 aem-GridColumn--offset--xxlarge--3 aem-GridColumn--offset--xxxlarge--4 aem-GridColumn--xsmall--none aem-GridColumn--large--none aem-GridColumn aem-GridColumn--large--14 aem-GridColumn--xxxlarge--8 aem-GridColumn--default--16"> | ||
<div class="container-fluid sub-footer"> | ||
|
||
<div class="row"> | ||
<div class="col-xs-24"> | ||
<p><a target="_blank" href="https://www.amd.com/en/corporate/copyright">Terms and Conditions</a> | <a target="_blank" href="https://www.amd.com/en/corporate/privacy">Privacy</a> | <a target="_blank" href="https://www.amd.com/en/corporate/cookies">Cookie Policy</a> | <a target="_blank" href="https://www.amd.com/en/corporate/trademarks">Trademarks</a> | <a target="_blank" href="https://www.amd.com/system/files/documents/statement-human-trafficking-forced-labor.pdf">Statement on Forced Labor</a> | <a target="_blank" href="https://www.amd.com/en/corporate/competition">Fair and Open Competition</a> | <a target="_blank" href="https://www.amd.com/system/files/documents/amd-uk-tax-strategy.pdf">UK Tax Strategy</a> | <a target="_blank" href="https://docs.xilinx.com/v/u/9x6YvZKuWyhJId7y7RQQKA">Inclusive Terminology</a> | <a href="#cookiessettings" class="ot-sdk-show-settings">Cookies Settings</a></p> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
</br> | ||
|
||
|
||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
|
||
|
||
</footer> | ||
</div> | ||
</div> | ||
</section> | ||
</div> | ||
<script> | ||
jQuery(function () { | ||
SphinxRtdTheme.Navigation.enable(true); | ||
}); | ||
</script> | ||
<script type="text/javascript"> | ||
$(document).ready(function() { | ||
$(".toggle > *").hide(); | ||
$(".toggle .header").show(); | ||
$(".toggle .header").click(function() { | ||
$(this).parent().children().not(".header").toggle(400); | ||
$(this).parent().children(".header").toggleClass("open"); | ||
}) | ||
}); | ||
</script> | ||
|
||
|
||
</body> | ||
</html> |
Binary file not shown.
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.