# Architecture

Source: [https://docs.qualcomm.com/doc/80-70015-26/topic/architecture.html](https://docs.qualcomm.com/doc/80-70015-26/topic/architecture.html)

The following figure shows the architecture and its components involved in communicating
            data over Ethernet on RB3 Gen 2 development kit.

Figure : Ethernet architecture on RB3 Gen 2 development kit
            
            <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export ethernet-arch.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" width="6.24306in" height="8.97139in" viewbox="0 0 449.5 645.94" xml:space="preserve" color-interpolation-filters="sRGB" class="st19"><style>.svg-1 .st1 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: #4a5a75; stroke: #4a5a75; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st3 { fill: #ffffff; font-family: Arial; font-size: 1.00001em }
.svg-1 .st4 { fill: #acbacf; stroke: #acbacf; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st5 { fill: #000000; font-family: Arial; font-size: 1.00001em }
.svg-1 .st6 { fill: #7ba0ff; stroke: #7ba0ff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st7 { fill: #dee3ec; stroke: #dee3ec; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st8 { fill: none; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st9 { stroke: #000000; stroke-dasharray: 3, 3; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st10 { marker-end: url("#mrkr4-37"); marker-start: url("#mrkr4-35"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st11 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.28409090909091 }
.svg-1 .st12 { fill: #ffffff; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st13 { fill: #000000 }
.svg-1 .st14 { stroke: #000000; stroke-dasharray: 0, 4.5; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-1 .st15 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st16 { fill: #000000; font-family: Arial; font-size: 1.00001em; font-weight: bold }
.svg-1 .st17 { fill: #ffffff; font-family: Arial; font-size: 0.833336em }
.svg-1 .st18 { fill: #000000; font-family: Arial; font-size: 0.833336em }
.svg-1 .st19 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend4">		<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"></path>	</g>	<marker id="mrkr4-35" class="st11" refx="6.68" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(3.52) "></use>	</marker>	<marker id="mrkr4-37" class="st11" refx="-7.04" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(-3.52,-3.52) "></use>	</marker></defs><g>	<title>VBackground-1</title>	<g id="shape1000-1">		<title>Solid.1000</title>		<rect x="0" y="0" width="449.5" height="645.94" class="st1"></rect>	</g></g><g>	<title>Page-1</title>	<g id="shape1-3" transform="translate(169.625,-591.69)">		<title>Sheet.1</title>		<desc>Applications</desc>		<rect x="0" y="618.94" width="105.188" height="27" class="st2"></rect>		<text x="20.24" y="636.04" class="st3">Applications</text>		</g>	<g id="shape2-6" transform="translate(83.5625,-483.69)">		<title>Sheet.2</title>		<desc>Linux kernel network stack</desc>		<rect x="0" y="600.94" width="277.313" height="45" class="st4"></rect>		<text x="67.96" y="627.04" class="st5">Linux kernel network stack</text>		</g>	<g id="shape3-9" transform="translate(159.5,-426.19)">		<title>Sheet.3</title>		<desc>Ethernet/switch driver</desc>		<rect x="0" y="618.94" width="124.875" height="27" class="st6"></rect>		<text x="4.75" y="636.04" class="st5">Ethernet/switch driver</text>		</g>	<g id="shape4-12" transform="translate(159.5,-366.69)">		<title>Sheet.4</title>		<desc>PHY driver 1, 2,...n</desc>		<rect x="0" y="618.94" width="124.875" height="27" class="st6"></rect>		<text x="11.75" y="636.04" class="st5">PHY driver 1, 2,...n</text>		</g>	<g id="shape5-15" transform="translate(149.413,-257.145)">		<title>Sheet.5</title>		<desc>Ethernet/switch hardware</desc>		<rect x="0" y="618.94" width="144" height="27" class="st7"></rect>		<text x="4.3" y="636.04" class="st5">Ethernet/switch hardware</text>		</g>	<g id="shape6-18" transform="translate(149.337,-205.69)">		<title>Sheet.6</title>		<desc>PHY hardware 1, 2,...n</desc>		<rect x="0" y="618.94" width="144" height="27" class="st7"></rect>		<text x="11.3" y="636.04" class="st5">PHY hardware 1, 2,...n</text>		</g>	<g id="shape7-21" transform="translate(149.937,-151.271)">		<title>Sheet.7</title>		<desc>RJ45/IX 1, 2,…n</desc>		<rect x="0" y="618.94" width="144" height="27" class="st7"></rect>		<text x="27.98" y="636.04" class="st5">RJ45/IX 1, 2,…n</text>		</g>	<g id="shape8-24" transform="translate(19.375,-349.69)">		<title>Sheet.8</title>		<rect x="0" y="368.19" width="411.25" height="277.75" class="st8"></rect>	</g>	<g id="shape9-26" transform="translate(19.375,-560.94)">		<title>Sheet.9</title>		<path d="M0 645.94 L409.45 645.94" class="st9"></path>	</g>	<g id="shape10-29" transform="translate(868.377,54.5) rotate(90)">		<title>Sheet.10</title>		<path d="M6.68 645.94 L7.04 645.94 L55.33 645.94" class="st10"></path>	</g>	<g id="shape11-38" transform="translate(867.811,171.756) rotate(90.8211)">		<title>Sheet.11</title>		<path d="M6.68 645.94 L7.04 645.94 L23.24 645.94" class="st10"></path>	</g>	<g id="shape12-45" transform="translate(867.877,219.75) rotate(90)">		<title>Sheet.12</title>		<path d="M6.68 645.94 L7.04 645.94 L25.31 645.94" class="st10"></path>	</g>	<g id="shape13-52" transform="translate(18.5,-133.69)">		<title>Sheet.13</title>		<rect x="0" y="482.66" width="412.5" height="163.279" class="st8"></rect>	</g>	<g id="shape14-54" transform="translate(867.315,296.25) rotate(90)">		<title>Sheet.14</title>		<path d="M6.68 645.94 L7.04 645.94 L44.71 645.94" class="st10"></path>	</g>	<g id="shape15-61" transform="translate(867.315,388.795) rotate(90)">		<title>Sheet.15</title>		<path d="M6.68 645.94 L7.04 645.94 L17.41 645.94" class="st10"></path>	</g>	<g id="shape16-68" transform="translate(867.315,440.25) rotate(90)">		<title>Sheet.16</title>		<path d="M6.68 645.94 L7.04 645.94 L19.96 645.94" class="st10"></path>	</g>	<g id="group17-75" transform="translate(154.937,-54.6898)">		<title>Laptop</title>		<g id="shape18-76" transform="translate(0,-4.57335)">			<title>Sheet.18</title>			<path d="M0 645.94 L49 645.94 L49 640.76 L44.8 633.61 L3.95 633.61 L0 640.76 L0 645.94 ZM44.94 632.44 L44.94 609.82						 C44.94 607.54 43.1 605.69 40.84 605.69 L8.05 605.69 C5.78 605.69 3.95 607.54 3.95 609.82 L3.95 632.44						 L44.94 632.44 Z" class="st12"></path>		</g>		<g id="shape19-78" transform="translate(4.82109,-10.3337)">			<title>Sheet.19</title>			<path d="M1.98 642.37 L0 645.94 L39.27 645.94 L37.29 642.37 L1.98 642.37 Z" class="st13"></path>		</g>		<g id="shape20-81" transform="translate(7.90035,-22.378)">			<title>Sheet.20</title>			<rect x="0" y="627.364" width="33.1998" height="18.5757" class="st12"></rect>		</g>	</g>	<g id="group21-83" transform="translate(238.812,-54.6898)">		<title>Laptop.21</title>		<g id="shape22-84" transform="translate(0,-4.57335)">			<title>Sheet.22</title>			<path d="M0 645.94 L49 645.94 L49 640.76 L44.8 633.61 L3.95 633.61 L0 640.76 L0 645.94 ZM44.94 632.44 L44.94 609.82						 C44.94 607.54 43.1 605.69 40.84 605.69 L8.05 605.69 C5.78 605.69 3.95 607.54 3.95 609.82 L3.95 632.44						 L44.94 632.44 Z" class="st12"></path>		</g>		<g id="shape23-86" transform="translate(4.82109,-10.3337)">			<title>Sheet.23</title>			<path d="M1.98 642.37 L0 645.94 L39.27 645.94 L37.29 642.37 L1.98 642.37 Z" class="st13"></path>		</g>		<g id="shape24-89" transform="translate(7.90035,-22.378)">			<title>Sheet.24</title>			<rect x="0" y="627.364" width="33.1998" height="18.5757" class="st12"></rect>		</g>	</g>	<g id="shape25-91" transform="translate(826.815,492.25) rotate(90)">		<title>Sheet.25</title>		<path d="M6.68 645.94 L7.04 645.94 L46.51 645.94" class="st10"></path>	</g>	<g id="shape26-98" transform="translate(907.481,492.25) rotate(90)">		<title>Sheet.26</title>		<path d="M6.68 645.94 L7.04 645.94 L46.58 645.94" class="st10"></path>	</g>	<g id="shape27-105" transform="translate(210.5,-87.4395)">		<title>Sheet.27</title>		<path d="M0 645.94 L22.5 645.94" class="st14"></path>	</g>	<g id="shape28-108" transform="translate(18.875,-567.94)">		<title>Sheet.28</title>		<desc>User space</desc>		<rect x="0" y="632.44" width="72" height="13.5" class="st15"></rect>		<text x="5.65" y="642.79" class="st5">User space</text>		</g>	<g id="shape29-111" transform="translate(18.875,-538.69)">		<title>Sheet.29</title>		<desc>Kernel space</desc>		<rect x="0" y="632.44" width="85.5" height="13.5" class="st15"></rect>		<text x="7.73" y="642.79" class="st5">Kernel space</text>		</g>	<g id="shape30-114" transform="translate(356.375,-606.19)">		<title>Sheet.30</title>		<desc>APSS</desc>		<rect x="0" y="632.44" width="72" height="13.5" class="st15"></rect>		<text x="19.66" y="642.79" class="st16">APSS</text>		</g>	<g id="shape31-117" transform="translate(182.25,-318.19)">		<title>Sheet.31</title>		<desc>PCIe connect</desc>		<rect x="0" y="632.44" width="85.5" height="13.5" class="st1"></rect>		<text x="6.73" y="642.79" class="st5">PCIe connect</text>		</g>	<g id="shape32-120" transform="translate(19.75,-274.875)">		<title>Sheet.32</title>		<desc>Ethernet hardware</desc>		<rect x="0" y="632.44" width="112.5" height="13.5" class="st15"></rect>		<text x="4" y="642.79" class="st5">Ethernet hardware</text>		</g>	<g id="shape1002-123" transform="translate(105.5,-18.375)">		<title>Sheet.1002</title>		<desc>Developer specific</desc>		<rect x="0" y="624.34" width="94.5" height="21.6" class="st2"></rect>		<text x="6.4" y="638.14" class="st17">Developer specific</text>		</g>	<g id="shape1003-126" transform="translate(204.875,-18.375)">		<title>Sheet.1003</title>		<desc>Open-source</desc>		<rect x="0" y="624.34" width="72" height="21.6" class="st4"></rect>		<text x="7.1" y="638.14" class="st18">Open-source</text>		</g>	<g id="shape1004-129" transform="translate(281.75,-18.375)">		<title>Sheet.1004</title>		<desc>Software</desc>		<rect x="0" y="624.34" width="72" height="21.6" class="st6"></rect>		<text x="16.27" y="638.14" class="st18">Software</text>		</g>	<g id="shape1005-132" transform="translate(358.725,-18.625)">		<title>Sheet.1005</title>		<desc>Hardware</desc>		<rect x="0" y="624.34" width="72" height="21.6" class="st7"></rect>		<text x="14.33" y="638.14" class="st18">Hardware</text>		</g></g>
</svg>

The components of Ethernet architecture are described as follows.

| Component | Description |
| --- | --- |
| Application processor subsystem (APSS) | <ul class="ul" id="overview__ul_h4f_js5_tbc"><br>                                <li class="li">Runs on a Linux-based operating system.</li><br><br>                            </ul> |
| Ethernet driver | <ul class="ul" id="overview__ul_vtt_555_tbc"><br>                                <li class="li">A software driver in the Linux kernel.</li><br><br>                                <li class="li">Provides data connectivity over a wired Ethernet interface.</li><br><br>                            </ul> |
| PHY driver | <ul class="ul" id="overview__ul_npz_fs5_tbc"><br>                                <li class="li">A low-level driver dedicated to manage the Ethernet physical<br>                                    layer.</li><br><br>                                <li class="li">Implements a software state machine required to handle the<br>                                    lifecycle of PHY, from initialization to link<br>                                    establishment.</li><br><br>                                <li class="li">Interacts with an underlying management data input/output (MDIO)<br>                                    to access the PHY register and perform operations such as<br>                                    detecting alive and/or linked PHYs.</li><br><br>                            </ul> |
| Ethernet hardware (RB3 Gen 2 development kit) | <ul class="ul" id="overview__ul_fhx_ws5_tbc"><br>                                <li class="li">Both QEP and AQR PHYs are validated on RB3 Gen 2 development<br>                                        kit.<ul class="ul" id="overview__ul_vts_1t5_tbc"><br>                                        <li class="li">QEP PHY for 2.5 GbE is available by default on SGMII<br>                                            interface. It is enabled and verified on a 1 x QEP8121<br>                                            IX connector.</li><br><br>                                        <li class="li">AQR PHY for 10 GbE is optional and may not be available<br>                                            on the development kit. If available, it is verified on<br>                                            a 1 x AQR113C IX connector.</li><br><br>                                        <li class="li">For more information, see <a href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-251/rb3_mainboard_connectors.html" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-251/rb3_mainboard_connectors.html')">RB3 Gen 2 main board<br>                                                and interposer block diagram</a>.</li><br><br>                                    </ul><br><div class="note note" id="overview__note_vxs_hv5_4bc"><span class="notetitle">Note:</span> The outputs shown in the<br>                                        subsequent sections are based on the verification of both<br>                                        QEP8121 and AQR113C PHYs.</div><br></li><br><br>                                <li class="li">To bring up hardware configurations other than the configuration<br>                                    provided by Qualcomm, see <a href="https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html#attach_other_ethernet_phy_components">Bring up alternate hardware enablement</a>.</li><br><br>                                <li class="li">For more information on Universal Serial Bus (USB) Ethernet<br>                                    connection, see <a href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-251/rb3_gen2_ethernet.html" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-251/rb3_gen2_ethernet.html')">Ethernet</a>.</li><br><br>                            </ul> |

Last Published: Oct 14, 2024

[Previous Topic
Features](https://docs.qualcomm.com/bundle/publicresource/80-70015-26/topics/features.md) [Next Topic
Tools](https://docs.qualcomm.com/bundle/publicresource/80-70015-26/topics/tools.md)