# PCIe

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

如下图所示，PCIe 采用双向连接同时发送和接收信息。

Figure : PCIe 设备连接链路
            
            <!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by Microsoft Visio, SVG Export pcie-device-packet-flow.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" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="6.26473in" height="1.37159in" viewbox="0 0 451.061 98.7545" xml:space="preserve" color-interpolation-filters="sRGB" class="st12"><v:documentproperties v:langid="1033">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-1 .st1 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749997 }
.svg-1 .st2 { fill: #ffffff; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999996 }
.svg-1 .st3 { fill: #000000; font-family: Arial; font-size: 0.833336em }
.svg-1 .st4 { font-family: SimHei; font-size: 1em }
.svg-1 .st5 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999996 }
.svg-1 .st6 { fill: #000000; font-family: SimHei; font-size: 0.833336em }
.svg-1 .st7 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999996 }
.svg-1 .st8 { font-family: Arial; font-size: 1em }
.svg-1 .st9 { marker-end: url("#mrkr13-28"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999996 }
.svg-1 .st10 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.28409010054493 }
.svg-1 .st11 { marker-start: url("#mrkr13-34"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999996 }
.svg-1 .st12 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend13">		<path d="M 3 1 L 0 0 L 3 -1 L 3 1 " style="stroke:none"></path>	</g>	<marker id="mrkr13-28" class="st10" v:arrowtype="13" v:arrowsize="2" v:setback="10.56" refx="-10.56003005471" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(-3.5200100182366,-3.5200100182366) "></use>	</marker>	<marker id="mrkr13-34" class="st10" v:arrowtype="13" v:arrowsize="2" v:setback="0" refx="0" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(3.5200100182366) "></use>	</marker></defs><g v:mid="1" v:index="1" v:groupcontext="backgroundPage">	<v:userdefs>		<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>	</v:userdefs>	<title>VBackground-1</title>	<v:pageproperties width="6.26473" height="1.37159" v:drawingscale="0.0393701" v:pagescale="0.0393701" v:drawingunits="24" v:shadowoffsetx="8.5039" v:shadowoffsety="-8.5039"></v:pageproperties>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(0.000510797,-3.81664E-05)">		<title>Solid</title>		<v:userdefs>			<v:ud v:nameu="Background" v:val="VT0(0):26"></v:ud>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"></v:ud>			<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>		</v:userdefs>		<rect x="0" y="7.63328E-05" width="451.06" height="98.7544" class="st1"></rect>	</g></g><g v:mid="0" v:index="2" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="0.0393701" v:pagescale="0.0393701" v:drawingunits="24" v:shadowoffsetx="8.5039" v:shadowoffsety="-8.5039"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape1-3" v:mid="1" v:groupcontext="shape" transform="translate(18.5005,-19.9157)">		<title>Square</title>		<desc>PCIe device A</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)" v:tabspace="42.5196"></v:textblock>		<v:textrect cx="28.3459" cy="70.4081" width="56.7" height="56.6926"></v:textrect>		<rect x="0" y="42.0618" width="56.6926" height="56.6926" class="st2"></rect>		<text x="17.23" y="66.91" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>PCIe <v:lf></v:lf><tspan x="13.62" dy="1.275em" class="st4">设备</tspan> A</text>		</g>	<g id="shape2-7" v:mid="2" v:groupcontext="shape" transform="translate(375.867,-19.4096)">		<title>Square.2</title>		<desc>PCIe device B</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)" v:tabspace="42.5196"></v:textblock>		<v:textrect cx="28.3459" cy="70.4081" width="56.7" height="56.6926"></v:textrect>		<rect x="0" y="42.0618" width="56.6926" height="56.6926" class="st2"></rect>		<text x="17.23" y="66.91" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>PCIe <v:lf></v:lf><tspan x="13.62" dy="1.275em" class="st4">设备</tspan> B</text>		</g>	<g id="shape3-11" v:mid="3" v:groupcontext="shape" transform="translate(84.9133,-66.0814)">		<title>Rectangle</title>		<desc>Packet</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)" v:tabspace="42.5196"></v:textblock>		<v:textrect cx="28.3459" cy="91.6678" width="56.7" height="14.1732"></v:textrect>		<rect x="0" y="84.5813" width="56.6926" height="14.1732" class="st5"></rect>		<text x="13.35" y="94.67" class="st6" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>数据包</text>		</g>	<g id="shape4-14" v:mid="4" v:groupcontext="shape" transform="translate(312.19,-18.4999)">		<title>Rectangle.8</title>		<desc>Packet</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)" v:tabspace="42.5196"></v:textblock>		<v:textrect cx="28.3459" cy="91.6678" width="56.7" height="14.1732"></v:textrect>		<rect x="0" y="84.5813" width="56.6926" height="14.1732" class="st5"></rect>		<text x="13.35" y="94.67" class="st6" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>数据包</text>		</g>	<g id="shape5-17" v:mid="5" v:groupcontext="shape" transform="translate(133.404,-44.0103)">		<title>工作表.5</title>		<desc>Link (1 bit to 32 bits wide)</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)" v:tabspace="42.5196"></v:textblock>		<v:textrect cx="95.6684" cy="92.9435" width="191.34" height="11.622"></v:textrect>		<rect x="0" y="87.1325" width="191.338" height="11.622" class="st7"></rect>		<text x="48.16" y="96.19" class="st6" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>链路（<tspan class="st8">1 </tspan>到<tspan class="st8"> </tspan><tspan class="st8">32 </tspan>位宽）</text>		</g>	<g id="shape6-23" v:mid="6" v:groupcontext="shape" transform="translate(75.6993,-65.0783)">		<title>工作表.6</title>		<path d="M0 98.75 L290.11 98.75 L290.11 98.75" class="st9"></path>	</g>	<g id="shape7-29" v:mid="7" v:groupcontext="shape" transform="translate(74.7897,-35.2134)">		<title>工作表.7</title>		<path d="M0 98.75 L10.2 98.75 L10.56 98.75 L300.67 98.75" class="st11"></path>	</g></g>
</svg>

设备间的路径称为 <dfn class="term">链路</dfn>。由一个或多个发送/接收对组成。一对链路称为一个 <dfn class="term">通道</dfn>。Qualcomm Linux 设备中的 PCIe 设备连接支持 16 个通道。通道数量或 <dfn class="term">链路宽度</dfn> 为 x4。关于 PCIe 的更多信息，请参阅 [https://pcisig.com/specifications/pciexpress/technical_library/pciexpress_whitepaper.pdf](https://pcisig.com/specifications/pciexpress/technical_library/pciexpress_whitepaper.pdf)。

下表列出了设备的 PCIe 连接类型。

Table : PCIe 连接

| PCIe 类型 | 说明 |
| :---: | --- |
| 根复合体 (RC) | 将 CPU 连接到 PCIe 拓扑。 |
| Switch | 连接 2 个以上端口并充当数据包路由器 |
| 桥接器 | 连接不同的总线，例如 PCIe 连接到 PCIe，或者 PCIe 连接到外设组件互连 (PCI)。 |
| 端点 (EP) | 位于 PCIe 拓扑树结构的底部，只有一个上游端口。 |
| 传统端点 | 使用较旧的 PCI 总线操作来支持向后兼容性 |

## PCIe 主机模式枚举功能

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

当系统首次通电时，系统主机处理器上运行的配置软件知道存在总线 0（如果支持 PCIe）。该软件并不了解总线拓扑或连接到总线的任何设备。枚举过程将发现系统中存在的各种总线、设备和功能。

当枚举完成后，将对系统中的下述每一条总线进行编号：
- 主总线编号为直连到桥接器主接口（朝向根复合体）的总线的编号。
- 辅助总线编号标示与桥接器直连的辅助接口（远离根复合体）的总线。
- 从属总线编号标明存在于桥接器下游侧的最大编号总线。

BDF 编号是每个设备的唯一标识码。事务层数据包 (TLP) 的基于 ID 的路由方法使用该编号。PCIe 主机模式枚举过程涉及以下操作：

1. 链路训练
2. 扫描总线上的设备
3. 注册

有关 PCIe 设备初始化和枚举过程的更多信息，可访问 [https://www.kernel.org/doc/html/latest/PCI/index.html](https://www.kernel.org/doc/html/latest/PCI/index.html)。

## PCIe 分层架构

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

下图所示为 PCIe 的分层架构模型。

Figure : PCIe 分层架构
            
            <!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by Microsoft Visio, SVG Export pcie-architecture.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" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="7.8092in" height="8.48308in" viewbox="0 0 562.262 610.782" xml:space="preserve" color-interpolation-filters="sRGB" class="st13"><v:documentproperties v:langid="1033">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-2 .st1 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-2 .st2 { fill: #ffffff; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st3 { fill: #000000; font-family: SimHei; font-size: 1.00001em }
.svg-2 .st4 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st5 { fill: #000000; font-family: Arial; font-size: 1.00001em }
.svg-2 .st6 { marker-start: url("#mrkr13-50"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st7 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.28409082917371 }
.svg-2 .st8 { fill: none; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st9 { marker-end: url("#mrkr13-90"); marker-start: url("#mrkr13-50"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st10 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st11 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-2 .st12 { fill: #000000; font-family: Calibri; font-size: 1.00001em }
.svg-2 .st13 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend13">		<path d="M 3 1 L 0 0 L 3 -1 L 3 1 " style="stroke:none"></path>	</g>	<marker id="mrkr13-50" class="st7" v:arrowtype="13" v:arrowsize="2" v:setback="0" refx="0" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(3.5200009902064) "></use>	</marker>	<marker id="mrkr13-90" class="st7" v:arrowtype="13" v:arrowsize="2" v:setback="0" refx="-0" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(-3.5200009902064,-3.5200009902064) "></use>	</marker></defs><g v:mid="1" v:index="1" v:groupcontext="backgroundPage">	<v:userdefs>		<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>	</v:userdefs>	<title>VBackground-1</title>	<v:pageproperties width="7.8092" height="8.48308" v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(0.000620934,0)">		<title>Solid</title>		<v:userdefs>			<v:ud v:nameu="Background" v:val="VT0(0):26"></v:ud>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"></v:ud>			<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>		</v:userdefs>		<rect x="0" y="0" width="562.262" height="610.782" class="st1"></rect>	</g></g><g v:mid="0" v:index="2" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape1-3" v:mid="1" v:groupcontext="shape" transform="translate(119.131,-551.131)">		<title>Rectangle</title>		<desc>Transaction</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.9994" cy="592.782" width="108" height="36"></v:textrect>		<rect x="0" y="574.782" width="108" height="36" class="st2"></rect>		<text x="42" y="596.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>事务</text>		</g>	<g id="shape2-6" v:mid="2" v:groupcontext="shape" transform="translate(335.131,-551.131)">		<title>Rectangle.3</title>		<desc>Transaction</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.9994" cy="592.782" width="108" height="36"></v:textrect>		<rect x="0" y="574.782" width="108" height="36" class="st2"></rect>		<text x="42" y="596.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>事务</text>		</g>	<g id="shape3-9" v:mid="3" v:groupcontext="shape" transform="translate(119.131,-479.131)">		<title>Rectangle.4</title>		<desc>Data link</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.9994" cy="592.782" width="108" height="36"></v:textrect>		<rect x="0" y="574.782" width="108" height="36" class="st2"></rect>		<text x="30" y="596.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>数据链路</text>		</g>	<g id="shape4-12" v:mid="4" v:groupcontext="shape" transform="translate(335.131,-479.131)">		<title>Rectangle.5</title>		<desc>Data link</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.9994" cy="592.782" width="108" height="36"></v:textrect>		<rect x="0" y="574.782" width="108" height="36" class="st2"></rect>		<text x="30" y="596.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>数据链路</text>		</g>	<g id="shape5-15" v:mid="5" v:groupcontext="shape" transform="translate(119.131,-263.131)">		<title>Rectangle.6</title>		<desc>Physical</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="53.9994" cy="520.782" width="108" height="180"></v:textrect>		<rect x="0" y="430.782" width="108" height="180" class="st2"></rect>		<text x="42" y="445.58" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>物理</text>		</g>	<g id="shape6-18" v:mid="6" v:groupcontext="shape" transform="translate(119.131,-362.131)">		<title>Rectangle.7</title>		<desc>Logical sub-block</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.9994" cy="588.282" width="108" height="45"></v:textrect>		<rect x="0" y="565.782" width="108" height="45" class="st2"></rect>		<text x="30" y="591.88" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>逻辑子块</text>		</g>	<g id="shape7-21" v:mid="7" v:groupcontext="shape" transform="translate(119.131,-299.131)">		<title>Rectangle.8</title>		<desc>Electrical sub-block</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.9994" cy="588.282" width="108" height="45"></v:textrect>		<rect x="0" y="565.782" width="108" height="45" class="st2"></rect>		<text x="30" y="591.88" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>电气子块</text>		</g>	<g id="shape8-24" v:mid="8" v:groupcontext="shape" transform="translate(130.342,-263.131)">		<title>工作表.8</title>		<desc>Rx</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="12.3744" cy="601.782" width="24.76" height="18"></v:textrect>		<rect x="0" y="592.782" width="24.75" height="18" class="st4"></rect>		<text x="5.04" y="605.38" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Rx</text>		</g>	<g id="shape9-27" v:mid="9" v:groupcontext="shape" transform="translate(191.131,-263.131)">		<title>工作表.9</title>		<desc>Tx</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="12.3744" cy="601.782" width="24.76" height="18"></v:textrect>		<rect x="0" y="592.782" width="24.75" height="18" class="st4"></rect>		<text x="5.71" y="605.38" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Tx</text>		</g>	<g id="shape10-30" v:mid="10" v:groupcontext="shape" transform="translate(335.131,-263.131)">		<title>Rectangle.14</title>		<desc>Physical</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="53.9994" cy="520.782" width="108" height="180"></v:textrect>		<rect x="0" y="430.782" width="108" height="180" class="st2"></rect>		<text x="42" y="445.58" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>物理</text>		</g>	<g id="shape11-33" v:mid="11" v:groupcontext="shape" transform="translate(335.131,-362.131)">		<title>Rectangle.15</title>		<desc>Logical sub-block</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.9994" cy="588.282" width="108" height="45"></v:textrect>		<rect x="0" y="565.782" width="108" height="45" class="st2"></rect>		<text x="30" y="591.88" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>逻辑子块</text>		</g>	<g id="shape12-36" v:mid="12" v:groupcontext="shape" transform="translate(335.131,-299.131)">		<title>Rectangle.16</title>		<desc>Electrical sub-block</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.9994" cy="588.282" width="108" height="45"></v:textrect>		<rect x="0" y="565.782" width="108" height="45" class="st2"></rect>		<text x="30" y="591.88" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>电气子块</text>		</g>	<g id="shape13-39" v:mid="13" v:groupcontext="shape" transform="translate(346.342,-263.131)">		<title>工作表.13</title>		<desc>Rx</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="12.3744" cy="601.782" width="24.76" height="18"></v:textrect>		<rect x="0" y="592.782" width="24.75" height="18" class="st4"></rect>		<text x="5.04" y="605.38" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Rx</text>		</g>	<g id="shape14-42" v:mid="14" v:groupcontext="shape" transform="translate(407.131,-263.131)">		<title>工作表.14</title>		<desc>Tx</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="12.3744" cy="601.782" width="24.76" height="18"></v:textrect>		<rect x="0" y="592.782" width="24.75" height="18" class="st4"></rect>		<text x="5.71" y="605.38" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Tx</text>		</g>	<g id="shape15-45" v:mid="15" v:groupcontext="shape" transform="translate(146.131,-209.135)">		<title>工作表.15</title>		<path d="M0 556.78 L0 566.98 L0 567.34 L0 610.78 L279 610.78 L279 556.78" class="st6"></path>	</g>	<g id="shape16-51" v:mid="16" v:groupcontext="shape" transform="translate(200.131,-236.135)">		<title>工作表.16</title>		<path d="M162 583.78 L162 593.98 L162 594.34 L162 610.78 L0 610.78 L0 583.78" class="st6"></path>	</g>	<g id="shape17-56" v:mid="17" v:groupcontext="shape" transform="translate(227.131,-560.135)">		<title>1-D double</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M4.5 597.28 L4.5 592.78 L0 601.78 L4.5 610.78 L4.5 606.28 L103.5 606.28 L103.5 610.78 L108 601.78 L103.5 592.78					 L103.5 597.28 L4.5 597.28 Z" class="st8"></path>	</g>	<g id="shape18-58" v:mid="18" v:groupcontext="shape" transform="translate(227.131,-488.135)">		<title>1-D double.25</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M4.5 597.28 L4.5 592.78 L0 601.78 L4.5 610.78 L4.5 606.28 L103.5 606.28 L103.5 610.78 L108 601.78 L103.5 592.78					 L103.5 597.28 L4.5 597.28 Z" class="st8"></path>	</g>	<g id="shape19-60" v:mid="19" v:groupcontext="shape" transform="translate(227.131,-344.135)">		<title>1-D double.26</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M4.5 597.28 L4.5 592.78 L0 601.78 L4.5 610.78 L4.5 606.28 L103.5 606.28 L103.5 610.78 L108 601.78 L103.5 592.78					 L103.5 597.28 L4.5 597.28 Z" class="st8"></path>	</g>	<g id="shape20-62" v:mid="20" v:groupcontext="shape" transform="translate(29.1318,-137.131)">		<title>Rectangle.27</title>		<desc>Framing</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9994" cy="592.782" width="72.01" height="36"></v:textrect>		<rect x="0" y="574.782" width="72" height="36" class="st2"></rect>		<text x="24" y="596.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>组帧</text>		</g>	<g id="shape21-65" v:mid="21" v:groupcontext="shape" transform="translate(101.131,-137.131)">		<title>Rectangle.28</title>		<desc>Sequence number</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9994" cy="592.782" width="72.01" height="36"></v:textrect>		<rect x="0" y="574.782" width="72" height="36" class="st2"></rect>		<text x="18" y="596.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>序列号</text>		</g>	<g id="shape22-68" v:mid="22" v:groupcontext="shape" transform="translate(173.131,-137.131)">		<title>Rectangle.29</title>		<desc>Header</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9994" cy="592.782" width="72.01" height="36"></v:textrect>		<rect x="0" y="574.782" width="72" height="36" class="st2"></rect>		<text x="24" y="596.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>报头</text>		</g>	<g id="shape23-71" v:mid="23" v:groupcontext="shape" transform="translate(245.131,-137.131)">		<title>Rectangle.30</title>		<desc>Payload data</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9994" cy="592.782" width="72.01" height="36"></v:textrect>		<rect x="0" y="574.782" width="72" height="36" class="st2"></rect>		<text x="12" y="596.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>净荷数据</text>		</g>	<g id="shape24-74" v:mid="24" v:groupcontext="shape" transform="translate(317.131,-137.131)">		<title>Rectangle.31</title>		<desc>ECRC</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9994" cy="592.782" width="72.01" height="36"></v:textrect>		<rect x="0" y="574.782" width="72" height="36" class="st2"></rect>		<text x="19" y="596.38" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>ECRC</text>		</g>	<g id="shape25-77" v:mid="25" v:groupcontext="shape" transform="translate(389.131,-137.131)">		<title>Rectangle.32</title>		<desc>LCRC</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9994" cy="592.782" width="72.01" height="36"></v:textrect>		<rect x="0" y="574.782" width="72" height="36" class="st2"></rect>		<text x="19.66" y="596.38" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>LCRC</text>		</g>	<g id="shape26-80" v:mid="26" v:groupcontext="shape" transform="translate(461.131,-137.131)">		<title>Rectangle.33</title>		<desc>Framing</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9994" cy="592.782" width="72.01" height="36"></v:textrect>		<rect x="0" y="574.782" width="72" height="36" class="st2"></rect>		<text x="24" y="596.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>组帧</text>		</g>	<g id="shape27-83" v:mid="27" v:groupcontext="shape" transform="translate(29.1318,-29.1352)">		<title>工作表.27</title>		<path d="M0 502.78 L0 512.98 L0 513.34 L0 610.78 L504 610.78 L504 513.34 L504 502.78" class="st9"></path>	</g>	<g id="shape28-91" v:mid="28" v:groupcontext="shape" transform="translate(101.131,-65.1352)">		<title>工作表.28</title>		<path d="M0 538.78 L0 548.98 L0 549.34 L0 610.78 L360 610.78 L360 549.34 L360 538.78" class="st9"></path>	</g>	<g id="shape29-98" v:mid="29" v:groupcontext="shape" transform="translate(173.131,-101.135)">		<title>工作表.29</title>		<path d="M0 574.78 L0 584.98 L0 585.34 L0 610.78 L216 610.78 L216 585.34 L216 574.78" class="st9"></path>	</g>	<g id="shape30-105" v:mid="30" v:groupcontext="shape" transform="translate(265.5,-20.1312)">		<title>工作表.30</title>		<desc>Physical layer</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="22.4995" cy="601.782" width="45" height="18"></v:textrect>		<rect x="0" y="592.782" width="45" height="18" class="st10"></rect>		<text x="4.5" y="605.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>物理层</text>		</g>	<g id="shape31-108" v:mid="31" v:groupcontext="shape" transform="translate(252,-56.1312)">		<title>工作表.31</title>		<desc>Data link layer</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="35.9995" cy="601.782" width="72" height="18"></v:textrect>		<rect x="0" y="592.782" width="72" height="18" class="st10"></rect>		<text x="6" y="605.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>数据链路层</text>		</g>	<g id="shape32-111" v:mid="32" v:groupcontext="shape" transform="translate(265.5,-92.1312)">		<title>工作表.32</title>		<desc>Transaction layer</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="22.4996" cy="601.782" width="45" height="18"></v:textrect>		<rect x="0" y="592.782" width="45" height="18" class="st10"></rect>		<text x="4.5" y="605.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>事务层</text>		</g>	<g id="shape33-114" v:mid="33" v:groupcontext="shape" transform="translate(256.5,-574.407)">		<title>工作表.33</title>		<desc>TLP</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.7494" cy="601.782" width="49.5" height="18"></v:textrect>		<rect x="0" y="592.782" width="49.5" height="18" class="st11"></rect>		<text x="16.2" y="605.38" class="st12" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>TLP</text>		</g>	<g id="shape34-117" v:mid="34" v:groupcontext="shape" transform="translate(256.5,-502.717)">		<title>工作表.34</title>		<desc>DLLP</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.7494" cy="601.782" width="49.5" height="18"></v:textrect>		<rect x="0" y="592.782" width="49.5" height="18" class="st11"></rect>		<text x="12.91" y="605.38" class="st12" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>DLLP</text>		</g>	<g id="shape35-120" v:mid="35" v:groupcontext="shape" transform="translate(241.252,-358.407)">		<title>工作表.35</title>		<desc>Ordered set</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.4994" cy="601.782" width="81" height="18"></v:textrect>		<rect x="0" y="592.782" width="81" height="18" class="st11"></rect>		<text x="22.5" y="605.38" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>有序集</text>		</g></g>
</svg>

各层交换的传输单元如下。

- 物理层实体之间交换有序集合。
- 数据链路层实体之间交换数据链路层数据包 (DLLP)。
- 事务层实体之间交换事务层数据包 (TLP)。

下表列出了 PCIe 架构中的三个层及其相应的功能。

| 层 | 功能 |
| --- | --- |
| 物理层 | 逻辑子块：链路训练、初始化和维护。 |
| 物理层 | 物理子模块：8b/10b 编解码、并串转换和串并转换。 |
| 数据链路层 | 对 DLLP 数据包进行组装和拆解。 |
| 数据链路层 | 生成和验证链路层 CRC (LCRC)。 |
| 数据链路层 | 应答和无应答协议（重放错误的 TLP）。 |
| 事务层 | 对 TLP 数据包进行组装和拆解。 |
| 事务层 | 生成和验证端到端 CRC (ECRC)。 |
| 事务层 | 流量控制接收关于可使用 DLLP 接收缓存大小信息的实体广播。 |
| 事务层 | 服务质量 (QoS)：流量类别 (TC) 到虚拟通道 (VC) 的映射。 |
| 事务层 | 事务排序：在 VC 内实施事务排序规则。 |
|  |  |
|  |  |
|  |  |
|  |  |

PCI 为每个功能定义了一个专用的配置地址空间块，如下图所示。软件将确定存在的功能、对其进行配置并检查和控制其状态。
Figure : PCIe 配置地址空间
                
                <!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by Microsoft Visio, SVG Export pcie-compatible-configuration-space.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" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="12.7116in" height="12.1282in" viewbox="0 0 915.235 873.23" xml:space="preserve" color-interpolation-filters="sRGB" class="st8"><v:documentproperties v:langid="1033">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-3 .st1 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-3 .st2 { fill: #ffffff; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-3 .st3 { fill: #000000; font-family: Arial; font-size: 1.00001em }
.svg-3 .st4 { font-family: SimHei; font-size: 1em }
.svg-3 .st5 { fill: #000000; font-family: SimHei; font-size: 1.00001em }
.svg-3 .st6 { font-family: Arial; font-size: 1em }
.svg-3 .st7 { font-size: 1em }
.svg-3 .st8 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="1" v:index="1" v:groupcontext="backgroundPage">	<v:userdefs>		<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>	</v:userdefs>	<title>VBackground-1</title>	<v:pageproperties width="12.7116" height="12.1282" v:drawingscale="0.0138889" v:pagescale="0.0138889" v:drawingunits="29" v:shadowoffsetx="8.50394" v:shadowoffsety="-8.50394"></v:pageproperties>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(0,-0.0005)">		<title>Solid</title>		<v:userdefs>			<v:ud v:nameu="Background" v:val="VT0(0):26"></v:ud>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"></v:ud>			<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>		</v:userdefs>		<rect x="0" y="0.00120918" width="915.235" height="873.229" class="st1"></rect>	</g></g><g v:mid="0" v:index="2" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="0.0138889" v:pagescale="0.0138889" v:drawingunits="29" v:shadowoffsetx="8.50394" v:shadowoffsety="-8.50394"></v:pageproperties>	<g id="shape1-3" v:mid="1" v:groupcontext="shape" transform="translate(18.5,-808.471)">		<title>Rectangle</title>		<desc>Type 0 configuration space</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="102.86" y="854" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Type 0 <tspan class="st4">配置空间</tspan></text>		</g>	<g id="shape2-7" v:mid="2" v:groupcontext="shape" transform="translate(18.5,-715.954)">		<title>Rectangle.2</title>		<desc>Device ID</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="73.4375" cy="850.101" width="146.9" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="146.875" height="46.2585" class="st2"></rect>		<text x="53.77" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>设备<tspan class="st6"> </tspan><tspan class="st6">ID</tspan></text>		</g>	<g id="shape3-12" v:mid="3" v:groupcontext="shape" transform="translate(18.5,-530.92)">		<title>Rectangle.6</title>		<desc>Base address register 0</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="111.87" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>基址寄存器<tspan class="st6"> </tspan><tspan class="st6">0</tspan></text>		</g>	<g id="shape4-17" v:mid="4" v:groupcontext="shape" transform="translate(18.5,-484.662)">		<title>Rectangle.7</title>		<desc>Base address register 1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="111.87" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>基址寄存器<tspan class="st6"> </tspan><tspan class="st6">1</tspan></text>		</g>	<g id="shape5-22" v:mid="5" v:groupcontext="shape" transform="translate(18.5,-438.403)">		<title>Rectangle.8</title>		<desc>Base address register 2</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="111.87" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>基址寄存器<tspan class="st6"> </tspan><tspan class="st6">2</tspan></text>		</g>	<g id="shape6-27" v:mid="6" v:groupcontext="shape" transform="translate(18.5,-392.145)">		<title>Rectangle.9</title>		<desc>Base address register 3</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="111.87" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>基址寄存器<tspan class="st6"> </tspan><tspan class="st6">3</tspan></text>		</g>	<g id="shape7-32" v:mid="7" v:groupcontext="shape" transform="translate(18.5,-345.886)">		<title>Rectangle.10</title>		<desc>Base address register 4</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="111.87" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>基址寄存器<tspan class="st6"> </tspan><tspan class="st6">4</tspan></text>		</g>	<g id="shape8-37" v:mid="8" v:groupcontext="shape" transform="translate(18.5,-299.627)">		<title>Rectangle.11</title>		<desc>Base address register 5</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="111.87" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>基址寄存器<tspan class="st6"> </tspan><tspan class="st6">5</tspan></text>		</g>	<g id="shape9-42" v:mid="9" v:groupcontext="shape" transform="translate(18.5,-253.369)">		<title>Rectangle.12</title>		<desc>Card bus CIS pointer</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="103.54" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>卡总线<tspan class="st6"> </tspan><tspan class="st6">CIS </tspan>指针</text>		</g>	<g id="shape10-47" v:mid="10" v:groupcontext="shape" transform="translate(18.5,-160.852)">		<title>Rectangle.14</title>		<desc>Expansion ROM base address</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="105.54" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>扩展<tspan class="st6"> </tspan><tspan class="st6">ROM </tspan>基址</text>		</g>	<g id="shape11-52" v:mid="11" v:groupcontext="shape" transform="translate(18.5,-114.593)">		<title>Rectangle.15</title>		<desc>Reserved</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="93.4659" cy="850.101" width="186.96" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="186.932" height="46.2585" class="st2"></rect>		<text x="81.47" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>保留</text>		</g>	<g id="shape12-55" v:mid="12" v:groupcontext="shape" transform="translate(18.5,-68.3345)">		<title>Rectangle.16</title>		<desc>Reserved</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="134.87" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>保留</text>		</g>	<g id="shape13-58" v:mid="13" v:groupcontext="shape" transform="translate(18.5,-22.076)">		<title>Rectangle.17</title>		<desc>Max_Lat</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="36.7187" cy="850.101" width="73.46" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="73.4375" height="46.2585" class="st2"></rect>		<text x="13.71" y="853.7" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Max_Lat</text>		</g>	<g id="shape14-61" v:mid="14" v:groupcontext="shape" transform="translate(434.225,-712.379)">		<title>Square</title>		<desc>00</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>00</text>		</g>	<g id="shape15-64" v:mid="15" v:groupcontext="shape" transform="translate(434.225,-666.121)">		<title>Square.73</title>		<desc>04</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>04</text>		</g>	<g id="shape16-67" v:mid="16" v:groupcontext="shape" transform="translate(434.225,-619.862)">		<title>Square.74</title>		<desc>08</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>08</text>		</g>	<g id="shape17-70" v:mid="17" v:groupcontext="shape" transform="translate(434.225,-573.603)">		<title>Square.75</title>		<desc>0C</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="19.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0C</text>		</g>	<g id="shape18-73" v:mid="18" v:groupcontext="shape" transform="translate(434.225,-527.345)">		<title>Square.76</title>		<desc>10</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>10</text>		</g>	<g id="shape19-76" v:mid="19" v:groupcontext="shape" transform="translate(434.225,-481.086)">		<title>Square.77</title>		<desc>14</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>14</text>		</g>	<g id="shape20-79" v:mid="20" v:groupcontext="shape" transform="translate(434.225,-434.828)">		<title>Square.78</title>		<desc>18</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>18</text>		</g>	<g id="shape21-82" v:mid="21" v:groupcontext="shape" transform="translate(434.225,-388.569)">		<title>Square.79</title>		<desc>1C</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="19.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>1C</text>		</g>	<g id="shape22-85" v:mid="22" v:groupcontext="shape" transform="translate(434.225,-342.311)">		<title>Square.80</title>		<desc>20</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>20</text>		</g>	<g id="shape23-88" v:mid="23" v:groupcontext="shape" transform="translate(434.225,-296.052)">		<title>Square.81</title>		<desc>24</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>24</text>		</g>	<g id="shape24-91" v:mid="24" v:groupcontext="shape" transform="translate(434.225,-249.794)">		<title>Square.82</title>		<desc>28</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>28</text>		</g>	<g id="shape25-94" v:mid="25" v:groupcontext="shape" transform="translate(434.225,-203.535)">		<title>Square.83</title>		<desc>2C</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="19.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>2C</text>		</g>	<g id="shape26-97" v:mid="26" v:groupcontext="shape" transform="translate(434.225,-157.277)">		<title>Square.84</title>		<desc>30</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>30</text>		</g>	<g id="shape27-100" v:mid="27" v:groupcontext="shape" transform="translate(434.225,-111.018)">		<title>Square.85</title>		<desc>34</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>34</text>		</g>	<g id="shape28-103" v:mid="28" v:groupcontext="shape" transform="translate(434.225,-64.759)">		<title>Square.86</title>		<desc>38</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="20.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>38</text>		</g>	<g id="shape29-106" v:mid="29" v:groupcontext="shape" transform="translate(434.225,-18.5005)">		<title>Square.87</title>		<desc>3C</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="846.525" width="53.43" height="53.4091"></v:textrect>		<rect x="0" y="819.821" width="53.4091" height="53.4091" class="st2"></rect>		<text x="19.03" y="850.13" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>3C</text>		</g>	<g id="shape30-109" v:mid="30" v:groupcontext="shape" transform="translate(152.023,-715.954)">		<title>Rectangle.88</title>		<desc>Vendor ID</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="80.1136" cy="850.101" width="160.25" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="160.227" height="46.2585" class="st2"></rect>		<text x="60.45" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>厂商<tspan class="st6"> </tspan><tspan class="st6">ID</tspan></text>		</g>	<g id="shape31-114" v:mid="31" v:groupcontext="shape" transform="translate(18.5,-669.696)">		<title>Rectangle.89</title>		<desc>Status</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="73.4375" cy="850.101" width="146.9" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="146.875" height="46.2585" class="st2"></rect>		<text x="61.44" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>状态</text>		</g>	<g id="shape32-117" v:mid="32" v:groupcontext="shape" transform="translate(152.023,-669.696)">		<title>Rectangle.90</title>		<desc>Command</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="79.8634" cy="850.101" width="159.75" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="159.727" height="46.2585" class="st2"></rect>		<text x="67.86" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>命令</text>		</g>	<g id="shape33-120" v:mid="33" v:groupcontext="shape" transform="translate(18.5,-623.437)">		<title>Rectangle.91</title>		<desc>Class code</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="93.4659" cy="850.101" width="186.96" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="186.932" height="46.2585" class="st2"></rect>		<text x="75.47" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>类代码</text>		</g>	<g id="shape34-123" v:mid="34" v:groupcontext="shape" transform="translate(152.023,-623.437)">		<title>Rectangle.92</title>		<desc>Revision ID</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="80.1136" cy="850.101" width="160.25" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="160.227" height="46.2585" class="st2"></rect>		<text x="60.45" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>版本<tspan class="st6"> </tspan><tspan class="st6">ID</tspan></text>		</g>	<g id="shape35-128" v:mid="35" v:groupcontext="shape" transform="translate(18.5,-577.179)">		<title>Rectangle.93</title>		<desc>BIST</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="850.101" width="53.43" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="53.4091" height="46.2585" class="st2"></rect>		<text x="13.37" y="853.1" class="st3" v:langid="2052"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>BIST</text>		</g>	<g id="shape36-131" v:mid="36" v:groupcontext="shape" transform="translate(71.9091,-577.179)">		<title>Rectangle.95</title>		<desc>Header type</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="40.307" cy="850.101" width="80.64" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="80.6141" height="46.2585" class="st2"></rect>		<text x="16.31" y="853.1" class="st5" v:langid="2052"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>报头类型</text>		</g>	<g id="shape37-134" v:mid="37" v:groupcontext="shape" transform="translate(152.023,-577.179)">		<title>Rectangle.96</title>		<desc>Controller latency timer</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="44.6247" cy="850.101" width="89.27" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="89.2494" height="46.2585" class="st2"></rect>		<text x="26.62" y="847.1" class="st5" v:langid="2052"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>控制器<v:lf></v:lf><tspan x="14.62" dy="1em" class="st7">延迟定时器</tspan></text>		</g>	<g id="shape38-138" v:mid="38" v:groupcontext="shape" transform="translate(18.5,-207.11)">		<title>Rectangle.102</title>		<desc>Subsystem ID</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="73.4375" cy="850.101" width="146.9" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="146.875" height="46.2585" class="st2"></rect>		<text x="47.77" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>子系统<tspan class="st6"> </tspan><tspan class="st6">ID</tspan></text>		</g>	<g id="shape39-143" v:mid="39" v:groupcontext="shape" transform="translate(165.375,-207.11)">		<title>Rectangle.103</title>		<desc>Subsystem vendor ID</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="73.4375" cy="850.101" width="146.9" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="146.875" height="46.2585" class="st2"></rect>		<text x="35.77" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>子系统厂商<tspan class="st6"> </tspan><tspan class="st6">ID</tspan></text>		</g>	<g id="shape40-148" v:mid="40" v:groupcontext="shape" transform="translate(165.375,-114.593)">		<title>Rectangle.104</title>		<desc>Capabilities pointer</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="73.4375" cy="850.101" width="146.9" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="146.875" height="46.2585" class="st2"></rect>		<text x="49.44" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>功能指针</text>		</g>	<g id="shape41-151" v:mid="41" v:groupcontext="shape" transform="translate(91.9375,-22.076)">		<title>Rectangle.105</title>		<desc>Max_Gnt</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="40.0568" cy="850.101" width="80.14" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="80.1136" height="46.2585" class="st2"></rect>		<text x="15.71" y="853.7" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Max_Gnt</text>		</g>	<g id="shape42-154" v:mid="42" v:groupcontext="shape" transform="translate(238.812,-22.076)">		<title>Rectangle.107</title>		<desc>Interrupt line</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="36.7187" cy="850.101" width="73.46" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="73.4375" height="46.2585" class="st2"></rect>		<text x="18.72" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>中断线</text>		</g>	<g id="shape43-157" v:mid="43" v:groupcontext="shape" transform="translate(407.52,-808.471)">		<title>Rectangle.108</title>		<desc>Byte offset</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="53.4091" cy="850.101" width="106.84" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="106.818" height="46.2585" class="st2"></rect>		<text x="29.41" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>字节偏移</text>		</g>	<g id="shape44-160" v:mid="44" v:groupcontext="shape" transform="translate(602.985,-808.471)">		<title>Rectangle.109</title>		<desc>Type 1 configuration space</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="102.86" y="854" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Type 1 <tspan class="st4">配置空间</tspan></text>		</g>	<g id="shape45-164" v:mid="45" v:groupcontext="shape" transform="translate(602.985,-715.954)">		<title>Rectangle.110</title>		<desc>Device ID</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="73.4375" cy="850.101" width="146.9" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="146.875" height="46.2585" class="st2"></rect>		<text x="53.77" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>设备<tspan class="st6"> </tspan><tspan class="st6">ID</tspan></text>		</g>	<g id="shape46-169" v:mid="46" v:groupcontext="shape" transform="translate(602.985,-530.92)">		<title>Rectangle.111</title>		<desc>Base address register 0</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="111.87" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>基址寄存器<tspan class="st6"> </tspan><tspan class="st6">0</tspan></text>		</g>	<g id="shape47-174" v:mid="47" v:groupcontext="shape" transform="translate(602.985,-484.662)">		<title>Rectangle.112</title>		<desc>Base address register 1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="111.87" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>基址寄存器<tspan class="st6"> </tspan><tspan class="st6">1</tspan></text>		</g>	<g id="shape48-179" v:mid="48" v:groupcontext="shape" transform="translate(602.985,-392.145)">		<title>Rectangle.114</title>		<desc>Secondary status</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="76.7019" cy="850.101" width="153.43" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="153.404" height="46.2585" class="st2"></rect>		<text x="58.7" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>辅状态</text>		</g>	<g id="shape49-182" v:mid="49" v:groupcontext="shape" transform="translate(602.985,-345.886)">		<title>Rectangle.115</title>		<desc>Memory limit</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="76.7019" cy="850.101" width="153.43" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="153.404" height="46.2585" class="st2"></rect>		<text x="52.7" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>内存限制</text>		</g>	<g id="shape50-185" v:mid="50" v:groupcontext="shape" transform="translate(602.985,-299.628)">		<title>Rectangle.116</title>		<desc>Prefetchable memory limit</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="76.7019" cy="850.101" width="153.43" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="153.404" height="46.2585" class="st2"></rect>		<text x="34.7" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>可预取内存限制</text>		</g>	<g id="shape51-188" v:mid="51" v:groupcontext="shape" transform="translate(602.985,-253.369)">		<title>Rectangle.117</title>		<desc>Prefetchable base upper 32 bits</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="94.87" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>可预取基址高<tspan class="st6"> </tspan><tspan class="st6">32 </tspan>位</text>		</g>	<g id="shape52-193" v:mid="52" v:groupcontext="shape" transform="translate(602.985,-160.852)">		<title>Rectangle.118</title>		<desc>I/O limit upper 16 bits</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="73.4375" cy="850.101" width="146.9" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="146.875" height="46.2585" class="st2"></rect>		<text x="45.77" y="846.2" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>I/O <tspan class="st4">限制高<v:lf></v:lf></tspan><tspan x="59.1" dy="1.3em" class="st7">16 </tspan><tspan class="st4">位</tspan></text>		</g>	<g id="shape53-199" v:mid="53" v:groupcontext="shape" transform="translate(602.985,-114.593)">		<title>Rectangle.119</title>		<desc>Reserved</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="93.4659" cy="850.101" width="186.96" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="186.932" height="46.2585" class="st2"></rect>		<text x="81.47" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>保留</text>		</g>	<g id="shape54-202" v:mid="54" v:groupcontext="shape" transform="translate(602.985,-68.3345)">		<title>Rectangle.120</title>		<desc>Expansion ROM base address</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="105.54" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>扩展<tspan class="st6"> </tspan><tspan class="st6">ROM </tspan>基址</text>		</g>	<g id="shape55-207" v:mid="55" v:groupcontext="shape" transform="translate(602.985,-22.076)">		<title>Rectangle.121</title>		<desc>Bridge control</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="66.7613" cy="850.101" width="133.55" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="133.523" height="46.2585" class="st2"></rect>		<text x="48.76" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>桥控制</text>		</g>	<g id="shape56-210" v:mid="56" v:groupcontext="shape" transform="translate(737.008,-715.954)">		<title>Rectangle.122</title>		<desc>Vendor ID</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="79.8634" cy="850.101" width="159.75" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="159.727" height="46.2585" class="st2"></rect>		<text x="60.2" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>厂商<tspan class="st6"> </tspan><tspan class="st6">ID</tspan></text>		</g>	<g id="shape57-215" v:mid="57" v:groupcontext="shape" transform="translate(602.985,-669.696)">		<title>Rectangle.123</title>		<desc>Status</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="67.0116" cy="850.101" width="134.05" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="134.023" height="46.2585" class="st2"></rect>		<text x="55.01" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>状态</text>		</g>	<g id="shape58-218" v:mid="58" v:groupcontext="shape" transform="translate(737.008,-669.696)">		<title>Rectangle.124</title>		<desc>Command</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="79.8634" cy="850.101" width="159.75" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="159.727" height="46.2585" class="st2"></rect>		<text x="67.86" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>命令</text>		</g>	<g id="shape59-221" v:mid="59" v:groupcontext="shape" transform="translate(602.985,-623.437)">		<title>Rectangle.125</title>		<desc>Class code</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="93.4659" cy="850.101" width="186.96" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="186.932" height="46.2585" class="st2"></rect>		<text x="75.47" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>类代码</text>		</g>	<g id="shape60-224" v:mid="60" v:groupcontext="shape" transform="translate(737.008,-623.437)">		<title>Rectangle.126</title>		<desc>Revision ID</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="79.8634" cy="850.101" width="159.75" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="159.727" height="46.2585" class="st2"></rect>		<text x="60.2" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>版本<tspan class="st6"> </tspan><tspan class="st6">ID</tspan></text>		</g>	<g id="shape61-229" v:mid="61" v:groupcontext="shape" transform="translate(602.985,-577.179)">		<title>Rectangle.127</title>		<desc>BIST</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="26.7045" cy="850.101" width="53.43" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="53.4091" height="46.2585" class="st2"></rect>		<text x="13.37" y="853.1" class="st3" v:langid="2052"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>BIST</text>		</g>	<g id="shape62-232" v:mid="62" v:groupcontext="shape" transform="translate(816.621,-577.179)">		<title>Rectangle.128</title>		<desc>Cache line size</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="40.0568" cy="850.101" width="80.14" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="80.1136" height="46.2585" class="st2"></rect>		<text x="10.06" y="853.1" class="st5" v:langid="2052"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>缓存线大小</text>		</g>	<g id="shape63-235" v:mid="63" v:groupcontext="shape" transform="translate(656.394,-577.179)">		<title>Rectangle.129</title>		<desc>Header type</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="44.0098" cy="850.101" width="88.04" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="88.0196" height="46.2585" class="st2"></rect>		<text x="20.01" y="853.1" class="st5" v:langid="2052"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>报头类型</text>		</g>	<g id="shape64-238" v:mid="64" v:groupcontext="shape" transform="translate(736.878,-577.179)">		<title>Rectangle.130</title>		<desc>Primary latency timer</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="40.0568" cy="850.101" width="80.14" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="80.1136" height="46.2585" class="st2"></rect>		<text x="4.06" y="853.1" class="st5" v:langid="2052"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>主延迟定时器</text>		</g>	<g id="shape65-241" v:mid="65" v:groupcontext="shape" transform="translate(602.724,-207.11)">		<title>Rectangle.131</title>		<desc>Prefetchable limit upper 32 bits</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="146.875" cy="850.101" width="293.77" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="293.75" height="46.2585" class="st2"></rect>		<text x="94.87" y="854" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>可预取限制高<tspan class="st6"> </tspan><tspan class="st6">32 </tspan>位</text>		</g>	<g id="shape66-246" v:mid="66" v:groupcontext="shape" transform="translate(734.173,-114.593)">		<title>Rectangle.133</title>		<desc>Capabilities pointer</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="81.2807" cy="850.101" width="162.59" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="162.561" height="46.2585" class="st2"></rect>		<text x="57.28" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>功能指针</text>		</g>	<g id="shape67-249" v:mid="67" v:groupcontext="shape" transform="translate(736.507,-22.076)">		<title>Rectangle.135</title>		<desc>Interrupt pin</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="40.0568" cy="850.101" width="80.14" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="80.1136" height="46.2585" class="st2"></rect>		<text x="16.06" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>中断引脚</text>		</g>	<g id="shape68-252" v:mid="68" v:groupcontext="shape" transform="translate(816.621,-22.076)">		<title>Rectangle.136</title>		<desc>Interrupt line</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="40.0568" cy="850.101" width="80.14" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="80.1136" height="46.2585" class="st2"></rect>		<text x="22.06" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>中断线</text>		</g>	<g id="shape69-255" v:mid="69" v:groupcontext="shape" transform="translate(734.016,-160.852)">		<title>Rectangle.138</title>		<desc>I/O base upper 16 bits</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="81.2807" cy="850.101" width="162.59" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="162.561" height="46.2585" class="st2"></rect>		<text x="53.61" y="846.2" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>I/O <tspan class="st4">基址高<v:lf></v:lf></tspan><tspan x="66.94" dy="1.3em" class="st7">16 </tspan><tspan class="st4">位</tspan></text>		</g>	<g id="shape70-261" v:mid="70" v:groupcontext="shape" transform="translate(756.388,-299.628)">		<title>Rectangle.141</title>		<desc>Prefetchable memory base</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="70.1731" cy="850.101" width="140.37" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="140.346" height="46.2585" class="st2"></rect>		<text x="28.17" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>可预取内存基址</text>		</g>	<g id="shape71-264" v:mid="71" v:groupcontext="shape" transform="translate(756.388,-345.886)">		<title>Rectangle.144</title>		<desc>Memory base</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="70.1731" cy="850.101" width="140.37" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="140.346" height="46.2585" class="st2"></rect>		<text x="46.17" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>内存基址</text>		</g>	<g id="shape72-267" v:mid="72" v:groupcontext="shape" transform="translate(756.388,-392.145)">		<title>Rectangle.146</title>		<desc>I/O limit</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="36.7187" cy="850.101" width="73.46" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="73.4375" height="46.2585" class="st2"></rect>		<text x="15.05" y="854" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>I/O <tspan class="st4">限制</tspan></text>		</g>	<g id="shape73-271" v:mid="73" v:groupcontext="shape" transform="translate(829.826,-392.145)">		<title>Rectangle.147</title>		<desc>I/O base</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="33.4543" cy="850.101" width="66.93" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="66.9087" height="46.2585" class="st2"></rect>		<text x="11.79" y="854" class="st3" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>I/O <tspan class="st4">基址</tspan></text>		</g>	<g id="shape74-275" v:mid="74" v:groupcontext="shape" transform="translate(602.994,-438.403)">		<title>Rectangle.150</title>		<desc>Secondary latency timer</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="33.4543" cy="850.101" width="66.93" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="66.9087" height="46.2585" class="st2"></rect>		<text x="15.45" y="846.5" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>辅延迟<v:lf></v:lf><tspan x="15.45" dy="1.2em" class="st7">定时器</tspan></text>		</g>	<g id="shape75-279" v:mid="75" v:groupcontext="shape" transform="translate(756.213,-438.403)">		<title>Rectangle.148</title>		<desc>Secondary bus number</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="40.0568" cy="850.101" width="80.14" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="80.1136" height="46.2585" class="st2"></rect>		<text x="10.06" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>辅总线编号</text>		</g>	<g id="shape76-282" v:mid="76" v:groupcontext="shape" transform="translate(167.835,-22.076)">		<title>Rectangle.106</title>		<desc>Interrupt pin</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="36.7187" cy="850.101" width="73.46" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="73.4375" height="46.2585" class="st2"></rect>		<text x="12.72" y="853.7" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>中断引脚</text>		</g>	<g id="shape77-285" v:mid="77" v:groupcontext="shape" transform="translate(238.812,-577.179)">		<title>Rectangle.94</title>		<desc>Cache line size</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="36.7187" cy="850.101" width="73.46" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="73.4375" height="46.2585" class="st2"></rect>		<text x="6.72" y="853.1" class="st5" v:langid="2052"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>缓存线大小</text>		</g>	<g id="shape78-288" v:mid="78" v:groupcontext="shape" transform="translate(668.193,-438.403)">		<title>Rectangle.151</title>		<desc>Subordinate bus number</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="44.0098" cy="850.101" width="88.04" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="88.0196" height="46.2585" class="st2"></rect>		<text x="26.01" y="846.5" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>子总线<v:lf></v:lf><tspan x="32.01" dy="1.2em" class="st7">编号</tspan></text>		</g>	<g id="shape79-292" v:mid="79" v:groupcontext="shape" transform="translate(829.826,-438.403)">		<title>Rectangle.149</title>		<desc>Primary bus number</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197"></v:textblock>		<v:textrect cx="33.4543" cy="850.101" width="66.93" height="46.2585"></v:textrect>		<rect x="0" y="826.972" width="66.9087" height="46.2585" class="st2"></rect>		<text x="15.45" y="846.5" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>主总线<v:lf></v:lf><tspan x="21.45" dy="1.2em" class="st7">编号</tspan></text>		</g></g>
</svg>

## PCIe 软件驱动程序配置

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

PCIe 控制器驱动程序用于初始化 PCIe 资源并执行链路训练。当训练成功后，控制器驱动程序将调用 PCIe 框架进行链路枚举，例如发现端点、识别客户端驱动程序，以及探测这些驱动程序。有关 PCIe 框架和客户端驱动程序 PCIe 注册的更多信息，请参阅 [https://www.kernel.org/doc/html/latest/PCI/index.html](https://www.kernel.org/doc/html/latest/PCI/index.html)。

### 链路训练

链路训练包括以下操作：
1. [https://github.com/torvalds/linux/blob/master/drivers/pci/controller/dwc/pcie-qcom.c](https://github.com/torvalds/linux/blob/master/drivers/pci/controller/dwc/pcie-qcom.c) 处的 PCIe 驱动程序
                                                  `pcie-qcom.c`
                                                文件从设备树中获取所需的资源，例如调节器、时钟。
2. PCIe 驱动程序调用 Synopsys DesignWare® 核心主机驱动程序
                                                  pcie-designware-host.c 文件（位于
                                                  [https://github.com/torvalds/linux/blob/master/drivers/pci/controller/dwc/pcie-designware-host.c](https://github.com/torvalds/linux/blob/master/drivers/pci/controller/dwc/pcie-designware-host.c)）来初始化根复合体。
3. Synopsys DesignWare 核心驱动程序执行所有必要的初始化。
4. Synopsys DesignWare 核心驱动程序调用函数指针来执行主机初始化。
5. Qualcomm PCIe 驱动程序执行 PHY 开机，启用所有调节器和时钟。
6. Synopsys DesignWare 核心驱动程序通过调用函数指针来启动链路训练。

### 硬件初始化

驱动程序初始化和配置 PCIe 硬件模块并执行链路训练。初始化发生在调用 `platform _probe()`驱动程序函数之后。

    static int qcom_pcie_probe(struct platform_device *pdev)
    {
    
            // get PCIe resources
    
            ret = dw_pcie_host_init(pp);  // call DWC framework to host intialisation like MSI, MSIx and controller init 
            if (ret) {
                    dev_err(dev, "cannot initialize host\n");
                    goto err_phy_exit;
            }
    
    };
    
    static const struct of_device_id qcom_pcie_match[] = {
            { .compatible = "qcom,pcie-sc7280", .data = &cfg_1_9_0 },
            {}
    
    };
    
    static struct platform_driver qcom_pcie_driver = {
            .probe = qcom_pcie_probe,
            .driver = {
                    .name = "qcom-pcie",
                    .suppress_bind_attrs = true,
                    .of_match_table = qcom_pcie_match,
            },
    };Copy to clipboard

当对 Synopsys DesignWare 核心驱动程序进行初始化时，也会初始化 MSI、MSIx 和控制器。驱动程序调用 Qualcomm 函数指针来启动链路训练。

    static int qcom_pcie_start_link(struct dw_pcie *pci)
    {
            struct qcom_pcie *pcie = to_qcom_pcie(pci);
    
            /* Enable Link Training state machine */
            if (pcie->cfg->ops->ltssm_enable)
                    pcie->cfg->ops->ltssm_enable(pcie);
    
            return 0;
    }
    
    static int qcom_pcie_link_up(struct dw_pcie *pci)
    {
            u16 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP);
            u16 val = readw(pci->dbi_base + offset + PCI_EXP_LNKSTA);
    
            return !!(val & PCI_EXP_LNKSTA_DLLLA); // checks the link is up or not
    }
    static const struct dw_pcie_ops dw_pcie_ops = {
            .link_up = qcom_pcie_link_up,
            .start_link = qcom_pcie_start_link,
    };Copy to clipboard

Synopsys DesignWare 核心驱动程序等待链路激活以枚举 PCI 框架。Qualcomm PCIe 驱动程序仅启用链路训练。

Note:  WLAN EP 连接默认启用 PCIE\_0 根复合体实例。

## 启用 QPS615 PCIe switch

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

本节介绍如何在 Qualcomm Linux 硬件 SoC 中启用 QPS615 PCIe switch。`PCIe1` 实例支持 QPS615
            switch 端点。下图显示了 QPS615 端点和连接。

Figure : QPS615 PCIe switch 连接图
            
            <!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by Microsoft Visio, SVG Export qps615-pcie-switch.svg qps615-pcie-switch-connection-d -->
<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" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="7.54589in" height="6.32918in" viewbox="0 0 543.304 455.701" xml:space="preserve" color-interpolation-filters="sRGB" class="st17"><v:documentproperties v:langid="1033">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-4 .st1 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-4 .st2 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-4 .st3 { fill: #ffffff; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-4 .st4 { fill: #ffffff; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-4 .st5 { fill: #000000; font-family: Arial; font-size: 1.00001em }
.svg-4 .st6 { font-family: SimHei; font-size: 0.666659em }
.svg-4 .st7 { font-size: 0.666659em }
.svg-4 .st8 { fill: #000000; font-family: Arial; font-size: 0.75em }
.svg-4 .st9 { font-size: 1em }
.svg-4 .st10 { font-family: SimHei; font-size: 1em }
.svg-4 .st11 { fill: none; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-4 .st12 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-4 .st13 { fill: #000000; font-family: SimHei; font-size: 0.833336em }
.svg-4 .st14 { font-family: Arial; font-size: 1em }
.svg-4 .st15 { fill: #000000; font-family: SimHei; font-size: 1.00001em }
.svg-4 .st16 { font-family: Arial; font-size: 0.666659em }
.svg-4 .st17 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="1" v:index="1" v:groupcontext="backgroundPage">	<v:userdefs>		<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>	</v:userdefs>	<title>VBackground-1</title>	<v:pageproperties width="7.54589" height="6.32918" v:drawingscale="0.0138889" v:pagescale="0.0138889" v:drawingunits="29" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(0.00012769,0)">		<title>Solid</title>		<v:userdefs>			<v:ud v:nameu="Background" v:val="VT0(0):26"></v:ud>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"></v:ud>			<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>		</v:userdefs>		<rect x="0" y="0" width="543.304" height="455.701" class="st1"></rect>	</g></g><g v:mid="0" v:index="2" v:groupcontext="foregroundPage">	<v:userdefs></v:userdefs>	<title>qps615-pcie-switch-connection-diagram</title>	<v:pageproperties v:drawingscale="0.0138889" v:pagescale="0.0138889" v:drawingunits="29" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape1-3" v:mid="1" v:groupcontext="shape" transform="translate(18.5002,-113.99)">		<title>工作表.1</title>		<rect x="0" y="223.645" width="506.304" height="232.056" class="st2"></rect>	</g>	<g id="shape2-5" v:mid="2" v:groupcontext="shape" transform="translate(503.708,661.385) rotate(180)">		<title>Simple Double Arrow.1011</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="ArrowType" v:prompt="" v:val="VT0(3):26"></v:ud>		</v:userdefs>		<path d="M0 443.7 L12 431.71 L12 437.7 L452.11 437.7 L452.11 431.71 L464.11 443.7 L452.11 455.7 L452.11 449.7 L12 449.7					 L12 455.7 L0 443.7 Z" class="st3"></path>	</g>	<g id="shape3-7" v:mid="3" v:groupcontext="shape" transform="translate(717.855,154.394) rotate(90)">		<title>Simple Double Arrow.1012</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="ArrowType" v:prompt="" v:val="VT0(3):26"></v:ud>		</v:userdefs>		<path d="M0 443.7 L12 431.71 L12 437.7 L44.26 437.7 L44.26 431.71 L56.26 443.7 L44.26 455.7 L44.26 449.7 L12 449.7 L12					 455.7 L0 443.7 Z" class="st3"></path>	</g>	<g id="shape4-9" v:mid="4" v:groupcontext="shape" transform="translate(717.855,224.712) rotate(90)">		<title>Simple Double Arrow.1013</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="ArrowType" v:prompt="" v:val="VT0(3):26"></v:ud>		</v:userdefs>		<path d="M0 443.7 L12 431.71 L12 437.7 L44.88 437.7 L44.88 431.71 L56.88 443.7 L44.88 455.7 L44.88 449.7 L12 449.7 L12					 455.7 L0 443.7 Z" class="st3"></path>	</g>	<g id="shape5-11" v:mid="5" v:groupcontext="shape" transform="translate(557.135,224.712) rotate(90)">		<title>Simple Double Arrow.1014</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="ArrowType" v:prompt="" v:val="VT0(3):26"></v:ud>		</v:userdefs>		<path d="M0 443.7 L12 431.71 L12 437.7 L44.88 437.7 L44.88 431.71 L56.88 443.7 L44.88 455.7 L44.88 449.7 L12 449.7 L12					 455.7 L0 443.7 Z" class="st3"></path>	</g>	<g id="shape6-13" v:mid="6" v:groupcontext="shape" transform="translate(870.698,224.712) rotate(90)">		<title>Simple Double Arrow.1015</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="ArrowType" v:prompt="" v:val="VT0(3):26"></v:ud>		</v:userdefs>		<path d="M0 443.7 L12 431.71 L12 437.7 L44.88 437.7 L44.88 431.71 L56.88 443.7 L44.88 455.7 L44.88 449.7 L12 449.7 L12					 455.7 L0 443.7 Z" class="st3"></path>	</g>	<g id="shape7-15" v:mid="7" v:groupcontext="shape" transform="translate(39.5962,-143.086)">		<title>工作表.7</title>		<desc>QPS615 DSP 1 Bus 2 Dev 1 Func 0 | BDF 0x208</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="73.8358" cy="440.189" width="147.68" height="31.0238"></v:textrect>		<rect x="0" y="424.677" width="147.672" height="31.0238" class="st4"></rect>		<text x="32.15" y="438.72" class="st5" v:langid="2052"><v:paragraph v:spline="-1.1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QPS615 DSP 1<v:newlinechar></v:newlinechar><tspan x="15.45" dy="1.306em" class="st6">总线</tspan><tspan class="st7"> </tspan><tspan class="st7">2 </tspan><tspan class="st6">设备</tspan><tspan class="st7"> </tspan><tspan class="st7">1 </tspan><tspan class="st6">功能</tspan><tspan class="st7"> </tspan><tspan class="st7">0 |BDF 0x208</tspan></text>		</g>	<g id="shape8-27" v:mid="8" v:groupcontext="shape" transform="translate(197.816,-143.086)">		<title>工作表.8</title>		<desc>QPS615 DSP 2 Bus 2 Dev 2 Func 0 | BDF 0x210</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="73.8358" cy="440.189" width="147.68" height="31.0238"></v:textrect>		<rect x="0" y="424.677" width="147.672" height="31.0238" class="st4"></rect>		<text x="32.15" y="438.29" class="st5" v:langid="2052"><v:paragraph v:spline="-1.1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QPS615 DSP 2<v:newlinechar></v:newlinechar><v:paragraph v:horizalign="1"></v:paragraph><tspan x="15.45" dy="1.388em" class="st6">总线</tspan><tspan class="st7"> </tspan><tspan class="st7">2 </tspan><tspan class="st6">设备</tspan><tspan class="st7"> </tspan><tspan class="st7">2 </tspan><tspan class="st6">功能</tspan><tspan class="st7"> </tspan><tspan class="st7">0 |BDF 0x210</tspan></text>		</g>	<g id="shape9-39" v:mid="9" v:groupcontext="shape" transform="translate(356.036,-143.086)">		<title>工作表.9</title>		<desc>QPS615 VDSP Bus 2 Dev 3 Func 0 | BDF 0x218</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="73.8358" cy="440.189" width="147.68" height="31.0238"></v:textrect>		<rect x="0" y="424.677" width="147.672" height="31.0238" class="st4"></rect>		<text x="33.15" y="438.29" class="st5" v:langid="2052"><v:paragraph v:spline="-1.1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QPS615 VDSP<v:newlinechar></v:newlinechar><v:paragraph v:horizalign="1"></v:paragraph><tspan x="15.45" dy="1.388em" class="st6">总线</tspan><tspan class="st7"> </tspan><tspan class="st7">2 </tspan><tspan class="st6">设备</tspan><tspan class="st7"> </tspan><tspan class="st7">3 </tspan><tspan class="st6">功能</tspan><tspan class="st7"> </tspan><tspan class="st7">0 |BDF 0x218</tspan></text>		</g>	<g id="shape10-51" v:mid="10" v:groupcontext="shape" transform="translate(356.036,-26.501)">		<title>工作表.10</title>		<desc>eEP PCIe embedded EP Bus 5 Dev 0 Func 0 | BDF 0x500 Bus 5 Dev...</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="73.8358" cy="426.552" width="147.68" height="58.2985"></v:textrect>		<rect x="0" y="397.402" width="147.672" height="58.2985" class="st4"></rect>		<text x="65.33" y="407.99" class="st8" v:langid="2052"><v:paragraph v:spline="-1.1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>eEP<v:newlinechar></v:newlinechar><v:newlinechar></v:newlinechar><tspan x="41.83" dy="2.269em" class="st9">PCIe </tspan><tspan class="st10">嵌入式</tspan> EP<v:newlinechar></v:newlinechar><tspan x="6.9" dy="1.192em" class="st10">总线</tspan> 5 <tspan class="st10">设备</tspan> 0 <tspan class="st10">功能</tspan> 0 | BDF 0x500<v:newlinechar></v:newlinechar><tspan x="6.9" dy="1.192em" class="st10">总线</tspan> 5 <tspan class="st10">设备</tspan> 0 <tspan class="st10">功能</tspan> 1 | BDF 0x501</text>		</g>	<g id="shape11-62" v:mid="11" v:groupcontext="shape" transform="translate(25.4522,-18.5)">		<title>工作表.11</title>		<rect x="0" y="127.701" width="488" height="328" class="st11"></rect>	</g>	<g id="shape12-64" v:mid="12" v:groupcontext="shape" transform="translate(275.452,-361.164)">		<title>工作表.12</title>		<desc>Gen3 x2 Bus #1</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.7678" cy="440.189" width="49.54" height="31.0238"></v:textrect>		<rect x="0" y="424.677" width="49.536" height="31.0238" class="st12"></rect>		<text x="13.76" y="431.64" class="st8" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Gen3<v:newlinechar></v:newlinechar><tspan x="20.02" dy="1.2em" class="st9">x2<v:lf></v:lf></tspan><tspan x="12.01" dy="1.275em" class="st10">总线</tspan> 1</text>		</g>	<g id="shape13-69" v:mid="13" v:groupcontext="shape" transform="translate(272.916,-261.894)">		<title>工作表.13</title>		<desc>Bus #2</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.7678" cy="444.451" width="49.54" height="22.5"></v:textrect>		<rect x="0" y="433.201" width="49.536" height="22.5" class="st12"></rect>		<text x="10.6" y="447.7" class="st13" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>总线<tspan class="st14"> </tspan><tspan class="st14">2</tspan></text>		</g>	<g id="shape14-74" v:mid="14" v:groupcontext="shape" transform="translate(115.416,-93.308)">		<title>工作表.14</title>		<desc>Gen3 x2 Bus #3</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.7678" cy="434.605" width="49.54" height="42.192"></v:textrect>		<rect x="0" y="413.509" width="49.536" height="42.192" class="st12"></rect>		<text x="13.76" y="426.05" class="st8" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Gen3<v:newlinechar></v:newlinechar><tspan x="20.02" dy="1.2em" class="st9">x2<v:lf></v:lf></tspan><tspan x="12.01" dy="1.275em" class="st10">总线</tspan> 3</text>		</g>	<g id="shape15-79" v:mid="15" v:groupcontext="shape" transform="translate(274.916,-99.404)">		<title>工作表.15</title>		<desc>Gen3 x1 Bus #4</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.7678" cy="434.605" width="49.54" height="42.192"></v:textrect>		<rect x="0" y="413.509" width="49.536" height="42.192" class="st12"></rect>		<text x="13.76" y="431.45" class="st8" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist><v:lf></v:lf>Gen3<v:newlinechar></v:newlinechar><tspan x="20.02" dy="1.2em" class="st9">x1<v:lf></v:lf></tspan><tspan x="12.01" dy="1.275em" class="st10">总线</tspan> 4</text>		</g>	<g id="shape16-84" v:mid="16" v:groupcontext="shape" transform="translate(426.952,-104)">		<title>工作表.16</title>		<desc>Gen3 x2 Bus #5</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.7678" cy="444.451" width="49.54" height="22.5"></v:textrect>		<rect x="0" y="433.201" width="49.536" height="22.5" class="st12"></rect>		<text x="13.76" y="435.9" class="st8" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Gen3<v:newlinechar></v:newlinechar><tspan x="20.02" dy="1.2em" class="st9">x2<v:lf></v:lf></tspan><tspan x="12.01" dy="1.275em" class="st10">总线</tspan> 5</text>		</g>	<g id="shape17-89" v:mid="17" v:groupcontext="shape" transform="translate(45.4522,-316.5)">		<title>工作表.17</title>		<desc>Device</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="42.2883" cy="442.678" width="84.58" height="26.0465"></v:textrect>		<rect x="0" y="429.654" width="84.577" height="26.0465" class="st12"></rect>		<text x="30.29" y="446.28" class="st15" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>设备</text>		</g>	<g id="shape18-92" v:mid="18" v:groupcontext="shape" transform="translate(872.155,313.201) rotate(90)">		<title>Simple Double Arrow.1041</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="ArrowType" v:prompt="" v:val="VT0(3):26"></v:ud>		</v:userdefs>		<path d="M0 443.7 L12 431.71 L12 437.7 L44.88 437.7 L44.88 431.71 L56.88 443.7 L44.88 455.7 L44.88 449.7 L12 449.7 L12					 455.7 L0 443.7 Z" class="st3"></path>	</g>	<g id="shape19-94" v:mid="19" v:groupcontext="shape" transform="translate(718.155,51.2785) rotate(90)">		<title>Simple Double Arrow.1043</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="ArrowType" v:prompt="" v:val="VT0(3):26"></v:ud>		</v:userdefs>		<path d="M0 443.7 L12 431.71 L12 437.7 L44.26 437.7 L44.26 431.71 L56.26 443.7 L44.26 455.7 L44.26 449.7 L12 449.7 L12					 455.7 L0 443.7 Z" class="st3"></path>	</g>	<g id="shape20-96" v:mid="20" v:groupcontext="shape" transform="translate(718.155,313.201) rotate(90)">		<title>Simple Double Arrow.1044</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="ArrowType" v:prompt="" v:val="VT0(3):26"></v:ud>		</v:userdefs>		<path d="M0 443.7 L12 431.71 L12 437.7 L44.88 437.7 L44.88 431.71 L56.88 443.7 L44.88 455.7 L44.88 449.7 L12 449.7 L12					 455.7 L0 443.7 Z" class="st3"></path>	</g>	<g id="shape21-98" v:mid="21" v:groupcontext="shape" transform="translate(557.155,313.701) rotate(90)">		<title>Simple Double Arrow.1045</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="ArrowType" v:prompt="" v:val="VT0(3):26"></v:ud>		</v:userdefs>		<path d="M0 443.7 L12 431.71 L12 437.7 L44.88 437.7 L44.88 431.71 L56.88 443.7 L44.88 455.7 L44.88 449.7 L12 449.7 L12					 455.7 L0 443.7 Z" class="st3"></path>	</g>	<g id="shape22-100" v:mid="22" v:groupcontext="shape" transform="translate(200.452,-302.476)">		<title>工作表.22</title>		<desc>QPS615 USP Bus 1 Dev 0 Func 0 | BDF 0x100</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="73.8358" cy="440.189" width="147.68" height="31.0238"></v:textrect>		<rect x="0" y="424.677" width="147.672" height="31.0238" class="st4"></rect>		<text x="37.15" y="438.72" class="st5" v:langid="2052"><v:paragraph v:spline="-1.1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QPS615 USP<v:newlinechar></v:newlinechar><tspan x="14.33" dy="1.306em" class="st6">总线</tspan><tspan class="st7"> </tspan><tspan class="st7">1 </tspan><tspan class="st6">设备</tspan><tspan class="st7"> </tspan><tspan class="st7">0 </tspan><tspan class="st6">功能</tspan><tspan class="st7"> </tspan><tspan class="st7">0 | BDF 0x100</tspan></text>		</g>	<g id="shape23-112" v:mid="23" v:groupcontext="shape" transform="translate(201.164,-406.177)">		<title>工作表.23</title>		<desc>Root complex Bus 0 Dev 0 Func 0 | BDF 0x000</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="73.8358" cy="440.189" width="147.68" height="31.0238"></v:textrect>		<rect x="0" y="424.677" width="147.672" height="31.0238" class="st4"></rect>		<text x="49.84" y="438.72" class="st15" v:langid="2052"><v:paragraph v:spline="-1.1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>根复合体<v:newlinechar></v:newlinechar><tspan x="14.33" dy="1.306em" class="st7">总线</tspan><tspan class="st16"> </tspan><tspan class="st16">0 </tspan><tspan class="st7">设备</tspan><tspan class="st16"> </tspan><tspan class="st16">0 </tspan><tspan class="st7">功能</tspan><tspan class="st16"> </tspan><tspan class="st16">0 | BDF 0x000</tspan></text>		</g></g>
</svg>

可在以下位置访问 Qualcomm PCIe 驱动程序文档：
- [https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/pci/qcom%2Cpcie-sc8280xp.yaml](https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/pci/qcom%2Cpcie-sc8280xp.yaml)
- [https://elixir.bootlin.com/linux/v6.6.48/source/Documentation/devicetree/bindings/pci/qcom,pcie.yaml](https://elixir.bootlin.com/linux/v6.6.48/source/Documentation/devicetree/bindings/pci/qcom,pcie.yaml)
- [https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/phy/qcom%2Csc8280xp-qmp-pcie-phy.yaml](https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/phy/qcom%2Csc8280xp-qmp-pcie-phy.yaml)

### PCIe 相关配置

默认情况下，将启用以下配置来支持 QPS615 switch。禁用 QPS615 switch 默认支持（通过还原代码更改）可将其用于其他 PCIe 端点。

请将以下补丁应用至 /arch/arm64/configs/qcom\_addons.config 文件，以便启用 PCIe
                相关的
                `configs`。

    QCLINUX: arm64: defconfig: qcom:
    diff --git a/arch/arm64/configs/qcom_addons.config b/arch/arm64/configs/qcom_addons.config
    index 46555f9..a83f417 100644
    --- a/arch/arm64/configs/qcom_addons.config
    +++ b/arch/arm64/configs/qcom_addons.config
    @@ -25,3 +25,4 @@
     CONFIG_VIRT_DRIVERS=y
     CONFIG_QCOM_SMP2P_SLEEPSTATE=m
     CONFIG_QCOM_SOC_DEBUG=y
    +CONFIG_QCOM_QPS615_PCIE_SWITCH=y
    diff --git a/arch/arm64/configs/qcom_defconfig b/arch/arm64/configs/qcom_defconfig
    index 7293680..730122c 100644
    --- a/arch/arm64/configs/qcom_defconfig
    +++ b/arch/arm64/configs/qcom_defconfig
    @@ -173,6 +173,7 @@
     CONFIG_HOTPLUG_PCI=y
     CONFIG_HOTPLUG_PCI_ACPI=y
     CONFIG_PCI_HOST_GENERIC=y
    +CONFIG_PCIE_DW_PLAT_HOST=y
     CONFIG_PCIE_QCOM=y
     CONFIG_PCI_ENDPOINT=y
     CONFIG_PCI_ENDPOINT_CONFIGFS=y
    @@ -793,3 +794,5 @@
     CONFIG_CORESIGHT_TPDM=m
     CONFIG_CORESIGHT_DUMMY=m
     CONFIG_MEMTEST=y
    +CONFIG_PCIEASPM=y
    +CONFIG_PCIEASPM_POWER_SUPERSAVE=y
    Copy to clipboard

### 向端点提供 always-on 的 refclk 信号 

在 PCIe 低功耗状态（例如 L1.1 或 L1.2）下，PHY 停止向端点提供 `refclk`。但是，必须向端点提供
                    `refclk` 信号。如果端点通过将 `clkreq` 置为有效恢复与 L0
                的链接，则根复合体必须向端点提供 `refclk`。由于开关板设计方面的原因，某些配备 PCIe QPS615 switch 的设备无法将
                    `clkreq` 信号从端点向主机驱动。用户可以添加一个标志，以确保 `refclk`
                始终提供给端点。

请将以下补丁应用于 [https://github.com/torvalds/linux/blob/master/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c](https://github.com/torvalds/linux/blob/master/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c) 处的 phy-qcom-qmp-pcie.c
                文件，以便使 `refclk` 保持 always-on
                状态。

    phy: qcom-qmp-pcie:
    --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
    +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
    @@ -43,6 +43,8 @@
     /* QPHY_PCS_STATUS bit */
     #define PHYSTATUS				BIT(6)
     #define PHYSTATUS_4_20				BIT(7)
    +/* PCS_PCIE_ENDPOINT_REFCLK_CNTRL */
    +#define EPCLK_ALWAYS_ON_EN			BIT(6)
     
     #define PHY_INIT_COMPLETE_TIMEOUT		10000
     
    @@ -2293,6 +2295,8 @@
     	struct phy *phy;
     	int mode;
     
    +	bool refclk_always_on;
    +
     	struct clk_fixed_rate pipe_clk_fixed;
     };
     
    @@ -3238,6 +3242,10 @@
     	qmp_pcie_configure(pcs, tbls->pcs, tbls->pcs_num);
     	qmp_pcie_configure(pcs_misc, tbls->pcs_misc, tbls->pcs_misc_num);
     
    +	if (qmp->refclk_always_on && cfg->regs[QPHY_PCS_ENDPOINT_REFCLK_CNTRL])
    +		qphy_setbits(pcs_misc, cfg->regs[QPHY_PCS_ENDPOINT_REFCLK_CNTRL],
    +			     EPCLK_ALWAYS_ON_EN);
    +
     	if (cfg->lanes >= 4 && qmp->tcsr_4ln_config) {
     		qmp_pcie_configure(serdes, cfg->serdes_4ln_tbl, cfg->serdes_4ln_num);
     		qmp_pcie_init_port_b(qmp, tbls);
    @@ -3760,6 +3768,12 @@
     	if (ret)
     		goto err_node_put;
     
    +	qmp->refclk_always_on = of_property_read_bool(dev->of_node, "qcom,refclk-always-on");
    +	if (qmp->refclk_always_on && !qmp->cfg->regs[QPHY_PCS_ENDPOINT_REFCLK_CNTRL]) {
    +		dev_err(dev, "refclk is always on is present but refclk cntrl offset is not present\n");
    +		goto err_node_put;
    +	}
    +
     	ret = phy_pipe_clk_register(qmp, np);
     	if (ret)
     		goto err_node_put;
     Copy to clipboard

### 消息信号中断 (MSI)

当前 MSI 映射未包含所有向量。Qualcomm Linux 硬件 SoC 支持八个向量。每个向量支持 32 个 MSI。因此，总共支持 256 个 MSI。

有关添加该 PCIe 实例支持的所有 MSI 组的信息，可访问 [https://lore.kernel.org/linux-arm-msm/f1168212-bc6e-4570-869c-2870d6f248ad@linaro.org/T/](https://lore.kernel.org/linux-arm-msm/f1168212-bc6e-4570-869c-2870d6f248ad@linaro.org/T/)。

### QPS615 switch 支持

当添加用于控制对 QPS615 PCIe switch 供电的所有 GPIO 作为固定调压器时，QPS615 驱动程序将启用通过调压器框架进行供电。此外，还会执行 I2C
                写操作来配置 QPS615 switch。添加 PCIe 节点作为 QPS615 节点的依赖项可以使 PCIe 驱动程序在 QPS615
                驱动程序探测之后进行探测，从而确保 switch 已上电并准备好进行枚举。当 QPS615 无法切换时，CLKREQ
                    引脚会导致设备崩溃。这是一个已知的限制。因此，`refclk` 设置为 always-on。

### QPS615 switch 设备树绑定

要添加 QPS615 switch 设备树绑定，应对
                    /arch/arm64/boot/dts/qcom/&lt;chipset&gt;-addons-rb3.dts
                文件应用以下补丁。

    QCLINUX: dt-bindings: pci: qps615:
    diff --git a/arch/arm64/boot/dts/qcom/<chipset>-addons-rb3.dts b/arch/arm64/boot/dts/qcom/<chipset>-addons-rb3.dts
    index 109ad08..7baf505 100644
    --- a/arch/arm64/boot/dts/qcom/<chipset>-addons-rb3.dts
    +++ b/arch/arm64/boot/dts/qcom/<chipset>-addons-rb3.dts
    @@ -14,6 +14,82 @@
     / {
     	model = "Qualcomm Technologies, Inc. <chipset>-addons RB3 platform";
     	compatible = "qcom,<chipset>-addons-rb3","qcom,sc7280";
    +
    +	qps615_0p9_vreg: qps615-0p9-vreg {
    +		compatible = "regulator-fixed";
    +		regulator-name = "qps615_0p9_vreg";
    +		gpio = <&pm8350c_gpios 2 0>;
    +		regulator-min-microvolt = <1000000>;
    +		regulator-max-microvolt = <1000000>;
    +		enable-active-high;
    +		regulator-enable-ramp-delay = <4300>;
    +	};
    +
    +	qps615_1p8_vreg: qps615-1p8-vreg {
    +		compatible = "regulator-fixed";
    +		regulator-name = "qps615_1p8_vreg";
    +		gpio = <&pm8350c_gpios 3 0>;
    +		vin-supply = <&qps615_0p9_vreg>;
    +		regulator-min-microvolt = <1800000>;
    +		regulator-max-microvolt = <1800000>;
    +		enable-active-high;
    +		regulator-enable-ramp-delay = <10000>;
    +	};
    +
    +	qps615_rsex_vreg: qps615-rsex-vreg {
    +		compatible = "regulator-fixed";
    +		regulator-name = "qps615_rsex_vreg";
    +		gpio = <&pm8350c_gpios 1 0>;
    +		vin-supply = <&qps615_1p8_vreg>;
    +		regulator-min-microvolt = <1800000>;
    +		regulator-max-microvolt = <1800000>;
    +		enable-active-high;
    +		regulator-enable-ramp-delay = <10000>;
    +	};
    +
    +	usb_hub_1p05_vreg: usb-hub-1p05-vreg {
    +		compatible = "regulator-fixed";
    +		regulator-name = "usb_hub_1p05_vreg";
    +		gpio = <&pm7250b_gpios 4 0>;
    +		vin-supply = <&qps615_rsex_vreg>;
    +		regulator-min-microvolt = <1000000>;
    +		regulator-max-microvolt = <1000000>;
    +		enable-active-high;
    +		regulator-enable-ramp-delay = <5000>;
    +	};
    +
    +	usb_hub_3p3_vreg: usb-hub-3p3-vreg {
    +		compatible = "regulator-fixed";
    +		regulator-name = "usb_hub_3p3_vreg";
    +		gpio = <&pm7250b_gpios 1 0>;
    +		vin-supply = <&usb_hub_1p05_vreg>;
    +		regulator-min-microvolt = <3300000>;
    +		regulator-max-microvolt = <3300000>;
    +		enable-active-high;
    +		regulator-enable-ramp-delay = <10000>;
    +	};
    +
    +	usb_hub_rest_vreg: usb-hub-rest-vreg {
    +		compatible = "regulator-fixed";
    +		regulator-name = "usb_hub_rest_vreg";
    +		gpio = <&pm8350c_gpios 4 0>;
    +		vin-supply = <&usb_hub_3p3_vreg>;
    +		regulator-min-microvolt = <3300000>;
    +		regulator-max-microvolt = <3300000>;
    +		enable-active-high;
    +	};
    +};
    +
    +&i2c0 {
    +	clock-frequency = <100000>;
    +	status = "okay";
    +
    +	qps615_switch: pcie-switch@77 {
    +		compatible = "qcom,switch-i2c";
    +		reg = <0x77>;
    +		vdda-supply = <&usb_hub_rest_vreg>;
    +		status = "okay";
    +	};
     };
     
     &i2c1 {
    @@ -216,6 +292,14 @@
     	};
     };
     
    +&pcie1 {
    +	dummy-supply = <&qps615_switch>;
    +};
    +
    +&pcie1_phy {
    +	qcom,refclk-always-on;
    +};
    +
    
    &pm8350c_gpios {
    pm8008i-reset-state {
    pm8008i_active: pm8008i-active-pins {
    
    Documentation/devicetree/bindings/pci/qps615-switch.yaml Documentation/devicetree/bindings/pci/qps615-switch.yaml
    new file mode 100644
    index 0000000..f59e068
    --- /dev/null
    +++ b/Documentation/devicetree/bindings/pci/qps615-switch.yaml
    @@ -0,0 +1,41 @@
    +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
    +%YAML 1.2
    +---
    +$id: http://devicetree.org/schemas/pci/qps615-switch.yaml#
    +$schema: http://devicetree.org/meta-schemas/core.yaml#
    +
    +title: Qualcomm Technologies, Inc. (QTI)  PCIe switch
    +
    +maintainers:
    +  - Chundru Krishna chaitanya <quic_krichai@quicinc.com>
    +
    +properties:
    +  compatible:
    +    enum:
    +      - qcom,switch-i2c
    +
    +  reg:
    +    maxItems: 1
    +
    +  vdda-supply:
    +    description: A phandle to the core analog power supply
    +
    +required:
    +  - compatible
    +  - reg
    +  - vdda-supply
    +
    +additionalProperties: false
    +
    +examples:
    +  - |
    +      i2c {
    +          #address-cells = <1>;
    +          #size-cells = <0>;
    +          qps615: pcie-switch@77 {
    +              compatible = "qcom,switch-i2c";
    +              reg = <0x077>;
    +              vdda-supply = <&foo>;
    +          };
    Copy to clipboard

### QPS615 switch 驱动程序

添加了用于 QPS615 PCIe switch 上电的驱动程序。它通过 I2C 执行基本初始化。初始化序列位于驱动程序通过
                    request\_firmware API 请求的固件镜像中。

要添加 QPS615 switch 驱动程序，应在 /drivers/pci/controller/Kconfig
                文件中应用以下补丁。

    QCLINUX: pci: controller: misc:
    diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
    index c0c3f28..d68e701 100644
    --- a/drivers/pci/controller/Kconfig
    +++ b/drivers/pci/controller/Kconfig
    @@ -345,4 +345,5 @@
     source "drivers/pci/controller/cadence/Kconfig"
     source "drivers/pci/controller/dwc/Kconfig"
     source "drivers/pci/controller/mobiveil/Kconfig"
    +source "drivers/pci/controller/misc/Kconfig"
     endmenu
    diff --git a/drivers/pci/controller/Makefile b/drivers/pci/controller/Makefile
    index 37c8663..015f711b 100644
    --- a/drivers/pci/controller/Makefile
    +++ b/drivers/pci/controller/Makefile
    @@ -43,6 +43,7 @@
     # pcie-hisi.o quirks are needed even without CONFIG_PCIE_DW
     obj-y				+= dwc/
     obj-y				+= mobiveil/
    +obj-y				+= misc/
     
    # The following drivers are for devices that use the generic ACPI
    diff --git a/drivers/pci/controller/misc/Kconfig b/drivers/pci/controller/misc/Kconfig
    new file mode 100644
    index 0000000..0acea3f
    --- /dev/null
    +++ b/drivers/pci/controller/misc/Kconfig
    @@ -0,0 +1,10 @@
    
    +# SPDX-License-Identifier: GPL-2.0
    +config QCOM_QPS615_PCIE_SWITCH
    +	bool "QCOM QPS615 PCIe Switch Driver"
    +	depends on PCuart
    +	help
    +	 This adds support to enable QPS615 PCIe switch power. And after powering on the switch do
    +	 switch initialization through I2C writes. The I2C data is parsed from the requested
    +	 firmware.
    +
    +	 Say Y to compile this driver.
    diff --git a/drivers/pci/controller/misc/Makefile b/drivers/pci/controller/misc/Makefile
    new file mode 100644
    index 0000000..1c2b99e
    --- /dev/null
    +++ b/drivers/pci/controller/misc/Makefile
    @@ -0,0 +1,2 @@
    +# SPDX-License-Identifier: GPL-2.0
    +obj-$(CONFIG_QCOM_QPS615_PCIE_SWITCH) += qps615.o
    
    Change in arm64: dts: qcom: <chipset>-rb3g2: Add PCIe nodes. 
    Enable PCIe1 controller and its corresponding PHY nodes on
    <chipset>-rb3g2 platform. As there are multiple endpoints connected through PCIe switch add smmu id for each BDF.
    
    diff --git a/arch/arm64/boot/dts/qcom/<chipset>-rb3.dts b/arch/arm64/boot/dts/qcom/<chipset>-rb3.dts
    index 5adce1f..f995a53 100644
    --- a/arch/arm64/boot/dts/qcom/<chipset>-rb3.dts
    +++ b/arch/arm64/boot/dts/qcom/<chipset>-rb3.dts
    @@ -512,6 +512,32 @@
     	bias-bus-hold;
     };
     
    +&pcie1 {
    +	perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
    +
    +	pinctrl-0 = <&pcie1_reset_n>, <&pcie1_wake_n>;
    +	pinctrl-names = "default";
    +
    +	iommu-map = <0x0 &apps_smmu 0x1c80 0x1>,
    +		    <0x100 &apps_smmu 0x1c81 0x1>,
    +		    <0x208 &apps_smmu 0x1c84 0x1>,
    +		    <0x210 &apps_smmu 0x1c85 0x1>,
    +		    <0x218 &apps_smmu 0x1c86 0x1>,
    +		    <0x300 &apps_smmu 0x1c87 0x1>,
    +		    <0x400 &apps_smmu 0x1c88 0x1>,
    +		    <0x500 &apps_smmu 0x1c89 0x1>,
    +		    <0x501 &apps_smmu 0x1c90 0x1>;
    +
    +	status = "okay";
    +};
    +
    +&pcie1_phy {
    +	vdda-phy-supply = <&vreg_l10c_0p88>;
    +	vdda-pll-supply = <&vreg_l6b_1p2>;
    +
    +	status = "okay";
    +};
    +
     &qup_uart5_rx {
     	drive-strength = <2>;
     	bias-pull-up;
    @@ -604,6 +630,21 @@
     		bias-disable;
     	};
     
    +	pcie1_reset_n: pcie1-reset-n-state {
    +		pins = "gpio2";
    +		function = "gpio";
    +		drive-strength = <16>;
    +		output-low;
    +		bias-disable;
    +	};
    +
    +	pcie1_wake_n: pcie1-wake-n-state {
    +		pins = "gpio3";
    +		function = "gpio";
    +		drive-strength = <2>;
    +		bias-pull-up;
    +	};
    +
     	qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
     		pins = "gpio28";
     		function = "gpio";
    
    Copy to clipboard

### 保存和恢复配置空间 QPS615 switch

在电源管理待机状态下保留 PCIe 桥接设备的配置空间。在电源管理恢复状态下恢复 PCIe 桥接设备的配置空间。对于使用 QPS615 PCIe switch 连接的 PCIe 端点来说，此方法至关重要，能确保其正常运行。

    diff --git a/drivers/pci/controller/misc/qps615.c b/drivers/pci/controller/misc/qps615.c
    index 7d63efb..10048cd 100644
    --- a/drivers/pci/controller/misc/qps615.c
    +++ b/drivers/pci/controller/misc/qps615.c
    @@ -5,6 +5,7 @@
     #include <linux/firmware.h>
     #include <linux/i2c.h>
     #include <linux/module.h>
    +#include <linux/pci.h>
     
     #define DRV_NAME		"qps615-switch-i2c"
     
    @@ -235,6 +236,24 @@
     }
     module_init(qps615_i2c_init);
     
    +static void qcom_pcie_resume_early(struct pci_dev *pdev)
    +{
    +	pci_restore_state(pdev);
    +}
    +
    +DECLARE_PCI_FIXUP_CLASS_RESUME_EARLY(PCI_ANY_ID,
    +				PCI_ANY_ID, PCI_CLASS_BRIDGE_PCI_NORMAL, 0,
    +				qcom_pcie_resume_early);
    +
    +static void qcom_pcie_suspend_late(struct pci_dev *pdev)
    +{
    +	pci_save_state(pdev);
    +}
    +
    +DECLARE_PCI_FIXUP_CLASS_SUSPEND_LATE(PCI_ANY_ID,
    +				PCI_ANY_ID, PCI_CLASS_BRIDGE_PCI_NORMAL, 0,
    +				qcom_pcie_suspend_late);
    +
     MODULE_AUTHOR("Krishna Chaitanya Chundru <quic_krichai@quicinc.com>");
     MODULE_DESCRIPTION("QPS615 PCIE Switch driver");
     MODULE_LICENSE("GPL");
    Copy to clipboard

以下是来自 QPS615 设备枚举的 PCIe 内核驱动程序日志示例。

    [    7.254674] qcom-pcie 1c08000.pci: supply vdda not found, using dummy regulator
    [    7.285224] qcom-pcie 1c08000.pci: supply vddpe-3v3 not found, using dummy regulator
    [    7.299688] qcom-pcie 1c08000.pci: host bridge /soc@0/pci@1c08000 ranges:
    [    7.313713] qcom-pcie 1c08000.pci: IO 0x0040200000..0x00402fffff -> 0x0000000000
    [    7.329778] qcom-pcie 1c08000.pci: MEM 0x0040300000..0x005fffffff -> 0x0040300000
    [    7.479174] qcom-pcie 1c08000.pci: iATU: unroll T, 8 ob, 8 ib, align 4K, limit 1024G
    [    7.577792] qcom-pcie 1c08000.pci: PCIe Gen.3 x2 link up
    [    7.648353] qcom-pcie 1c08000.pci: PCI host bridge to bus 0001:00
    [    7.654618] pci_bus 0001:00: root bus resource [bus 00-ff]
    [    7.654620] pci_bus 0001:00: root bus resource [io  0x0000-0xfffff]
    [    7.654622] pci_bus 0001:00: root bus resource [mem 0x40300000-0x5fffffff]
    [    7.654633] pci 0001:00:00.0: [17cb:010b] type 01 class 0x060400
    [    7.665893] pci 0001:00:00.0: reg 0x10: [mem 0x00000000-0x00000fff]
    [    7.684913] pci 0001:00:00.0: PME# supported from D0 D3hot D3cold
    [    7.700502] pci 0001:01:00.0: [1179:0623] type 01 class 0x060400
    [    7.710817] pci 0001:01:00.0: PME# supported from D0 D3hot D3cold
    [    7.733698] pci 0001:01:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    7.738818] pci 0001:02:01.0: [1179:0623] type 01 class 0x060400
    [    7.751157] pci 0001:02:01.0: PME# supported from D0 D3hot D3cold
    [    7.763174] pci 0001:02:02.0: [1179:0623] type 01 class 0x060400
    [    7.777084] pci 0001:02:02.0: PME# supported from D0 D3hot D3cold
    [    7.792832] pci 0001:02:03.0: [1179:0623] type 01 class 0x060400
    [    7.815659] pci 0001:02:03.0: PME# supported from D0 D3hot D3cold
    Copy to clipboard

## 通过 PCIe switch 启用 USB 接口

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

本节提供有关如何通过 Qualcomm Linux 硬件 SoC 中的 PCIe switch 激活 USB 接口的说明。PCIE1 实例连接到 QPS615 switch 的端点，QPS615 的下游端口连接到 PCIe 转 USB 端点。有关使用 QPS615 进行 PCIe 转 USB 端点连接的信息，请参见 [https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-251/rb3_hardware_overview.html](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-251/rb3_hardware_overview.html) 中的主板和转接板框图。

Note: Dragonwing IQ-9075 PCIe 软件不支持 USB。

### 启用 PCIe 转 USB 控制器的电源

为通过 QPS615 switch 连接的 PCIe 转 USB 控制器开启电源，并使用 GPIO162 对连接的外部 USB 集线器进行复位操作。本方法是正确检测 USB 外设并使其正常工作的必要条件。

    diff --git a/arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsi
    index bf95b66..4a76a36 100644
    --- a/arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsi
    +++ b/arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsi
    @@ -40,6 +40,37 @@
     		regulator-enable-ramp-delay = <10000>;
     	};
     
    +	upd_3p3_vreg: upd_3p3_vreg {
    +		compatible = "regulator-fixed";
    +		regulator-name = "upd_3p3_vreg";
    +		gpio = <&pm7250b_gpios 1 0>;
    +		vin-supply = <&qps615_rsex_vreg>;
    +		regulator-min-microvolt = <3300000>;
    +		regulator-max-microvolt = <3300000>;
    +		enable-active-high;
    +		regulator-enable-ramp-delay = <10000>;
    +		regulator-always-on;
    +	};
    +
    +	upd_rest_vreg: upd_rest_vreg {
    +		compatible = "regulator-fixed";
    +		regulator-name = "upd_rest_vreg";
    +		gpio = <&pm8350c_gpios 4 0>;
    +		vin-supply = <&upd_3p3_vreg>;
    +		regulator-min-microvolt = <3300000>;
    +		regulator-max-microvolt = <3300000>;
    +		enable-active-high;
    +		regulator-always-on;
    +	};
    +
    +	usbhub_rest_vreg: usbhub_rest_vreg {
    +		compatible = "regulator-fixed";
    +		regulator-name = "usbhub_rest_vreg";
    +		pinctrl-names = "default";
    +		pinctrl-0 = <&pcie1_usb_hub_reset_default>;
    +		gpio = <&tlmm 162 GPIO_ACTIVE_LOW>;
    +		enable-active-high;
    +	};
     };
     
     &i2c0 {
    @@ -165,6 +196,14 @@
     		bias-pull-down;
     		input-enable;
     	};
    +
    +	pcie1_usb_hub_reset_default: pcie1_usb_hub_reset_default {
    +		pins = "gpio162";
    +		function = "gpio";
    +		drive-strength = <2>;
    +		output-high;
    +		bias-pull-down;
    +	};
     };
     Copy to clipboard

### 避免 PCIe 转 USB 控制器过早切换 

由于固件未加载，请确保 PCIe 转 USB 控制器跳过 `usb_early-handoff`。采取此预防措施是为了避免对启动时长造成任何不利影响。

    diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
    index 2665832..c3d488f 100644
    --- a/drivers/usb/host/pci-quirks.c
    +++ b/drivers/usb/host/pci-quirks.c
    @@ -1260,6 +1260,11 @@
     			return;
     	}
     
    +	/* Skip handoff for Renesas PCI USB controller on QCOM SOC */
    +	if ((pdev->vendor == PCI_VENDOR_ID_RENESAS) &&
    +		(pcie_find_root_port(pdev)->vendor == PCI_VENDOR_ID_QCOM))
    +		return;
    +
     	if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI &&
     			pdev->class != PCI_CLASS_SERIAL_USB_OHCI &&
     			pdev->class != PCI_CLASS_SERIAL_USB_EHCI &&
    Copy to clipboard

### 下载 PCIe 转 USB 控制器固件

要访问 [https://www.renesas.com/us/en/products/interface/usb-switches-hubs/upd720201-usb-30-host-controller#design_development](https://www.renesas.com/us/en/products/interface/usb-switches-hubs/upd720201-usb-30-host-controller#design_development) 下载固件，应先进行注册并登录 [https://www.renesas.com/](https://www.renesas.com/)。

Note: 为防止命令失败，请在更新 Renesas 固件之前，按照[设置设备](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-251/set_up_the_device.html)部分中的说明更新软件。

1. 通过在 Linux 主机上运行以下命令来创建 `usb_fw.img` 镜像并复制 USB 固件。

        dd if=/dev/zero of=usb_fw.img bs=4k count=240Copy to clipboard

        mkfs -t ext4 usb_fw.imgCopy to clipboard

        mkdir usb_fwCopy to clipboard

        sudo mount -o loop usb_fw.img usb_fw/Copy to clipboard

        sudo cp -rf renesas_usb_fw.mem usb_fwCopy to clipboard

        sudo umount usb_fwCopy to clipboard
2. 以 fastboot 模式启动设备。

        adb rootCopy to clipboard

        adb shellCopy to clipboard

        reboot bootloaderCopy to clipboard
3. 当设备处于 fastboot 模式时，运行以下命令。

        fastboot devicesCopy to clipboard

示例输出：

        7dc85f5e         fastbootCopy to clipboard
4. 将 `usb_fw.img`
                        镜像刷写到设备。

        fastboot erase usb_fwCopy to clipboard

        fastboot flash usb_fw  usb_fw.imgCopy to clipboard

        fastboot rebootCopy to clipboard

命令失败示例：

        c:\>fastboot erase usb_fw
        Erasing 'usb_fw'                                   FAILED (remote: 'Check device console.')
        fastboot: error: Command failedCopy to clipboard
5. 要验证固件是否已成功更新，请运行以下命令。

        dmesgCopy to clipboard

固件更新成功后的日志示例。

        [    6.589462] usbcore: registered new device driver onboard-usb-hub
        [    6.653277] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd
        [    7.013061] usb 2-1.1: new SuperSpeed USB device number 3 using xhci_hcd
        [    7.120657] ax88179_178a 2-1.1:1.0 eth0: register 'ax88179_178a' at usb-0001:04:00.0-1.1, ASIX AX88179 USB 3.0 Gigabit Ethernet, 3e:9e:5e:ff:d3:fb
        [    7.120767] usbcore: registered new interface driver ax88179_178a
        Copy to clipboard

### PCIe 转 USB 设备枚举参考的 PCIe 内核驱动程序日志

可以运行以下命令查看设备信息：

- 要显示 USB 中的设备信息，请运行以下命令。

        lsusbCopy to clipboard

随即显示以下消息。

        Bus 002 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
        Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub
        Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
        Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
        Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
        Copy to clipboard
- 要显示 PCIe 中的设备信息，请运行以下命令。

        lspciCopy to clipboard

随即显示以下消息。

        0001:00:00.0 PCI bridge: Qualcomm Device 010b
        0001:01:00.0 PCI bridge: Toshiba Corporation Device 0623
        0001:02:01.0 PCI bridge: Toshiba Corporation Device 0623
        0001:02:02.0 PCI bridge: Toshiba Corporation Device 0623
        0001:02:03.0 PCI bridge: Toshiba Corporation Device 0623
        0001:04:00.0 USB controller: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller (rev 03)
        0001:05:00.0 Ethernet controller: Toshiba Corporation Device 0220
        0001:05:00.1 Ethernet controller: Toshiba Corporation Device 0220
        Copy to clipboard

## 级联连接 QPS615 switch

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

级联连接 QPS615 switch 以启用额外的以太网、PCIe 和 USB 端口。

Note: 仅 QCS6490 支持此功能。

下图显示了两台 QPS615 switch 级联连接到 PCIE1，另一台 QPS615 switch 连接到 PCIE2。

<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by Microsoft Visio, SVG Export qps615-switches-cascade.svg qps615-switches-cascade -->
<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" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="13.21in" height="6.21167in" viewbox="0 0 951.12 447.24" xml:space="preserve" color-interpolation-filters="sRGB" class="st27"><v:documentproperties v:langid="1033"></v:documentproperties>
<style>.svg-5 .st1 { fill: #ffffff; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-5 .st2 { fill: #ffffff; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.24 }
.svg-5 .st3 { fill: #000000; font-family: SimHei; font-size: 0.833336em }
.svg-5 .st4 { font-family: Arial; font-size: 1em }
.svg-5 .st5 { fill: #000000; font-family: Arial; font-size: 0.833336em }
.svg-5 .st6 { font-size: 1em }
.svg-5 .st7 { fill: #000000; font-family: Calibri; font-size: 0.583328em }
.svg-5 .st8 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-5 .st9 { fill: #000000; font-family: Arial; font-size: 0.75em }
.svg-5 .st10 { fill: #000000; font-family: Arial; font-size: 0.625008em }
.svg-5 .st11 { fill: #000000; font-family: Arial; font-size: 1.00001em }
.svg-5 .st12 { font-family: SimHei; font-size: 1em }
.svg-5 .st13 { fill: none; stroke: none; stroke-width: 1 }
.svg-5 .st14 { fill: none }
.svg-5 .st15 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-5 .st16 { marker-end: url("#mrkr13-255"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-5 .st17 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.34246575342466 }
.svg-5 .st18 { marker-start: url("#mrkr13-261"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-5 .st19 { fill: #ffffff; stroke: none; stroke-linecap: butt; stroke-width: 7.2 }
.svg-5 .st20 { fill: #000000; font-family: Arial; font-size: 0.583328em }
.svg-5 .st21 { fill: #000000; font-family: Arial; font-size: 1.16666em }
.svg-5 .st22 { fill: #000000; font-family: SimHei; font-size: 1.16666em }
.svg-5 .st23 { stroke: #000000; stroke-dasharray: 0.75, 1.5; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-5 .st24 { fill: #000000; font-family: Arial; font-size: 0.75em; font-weight: bold }
.svg-5 .st25 { fill: #000000; font-family: Arial; font-size: 0.666664em }
.svg-5 .st26 { fill: #000000; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.24 }
.svg-5 .st27 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend13">		<path d="M 3 1 L 0 0 L 3 -1 L 3 1 " style="stroke:none"></path>	</g>	<marker id="mrkr13-255" class="st17" v:arrowtype="13" v:arrowsize="0" v:setback="0" refx="-0" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(-2.92,-2.92) "></use>	</marker>	<marker id="mrkr13-261" class="st17" v:arrowtype="13" v:arrowsize="0" v:setback="0" refx="0" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(2.92) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>qps615-switches-cascade</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Flowchart" v:index="0"></v:layer>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(136.398,-19.12)">		<title>Rectangle.24</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="37.2402" width="246.477" height="410" class="st1"></rect>	</g>	<g id="shape2-3" v:mid="2" v:groupcontext="shape" transform="translate(126.375,-27.12)">		<title>Rectangle.23</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="60.2402" width="20.046" height="387" class="st2"></rect>	</g>	<g id="shape3-5" v:mid="3" v:groupcontext="shape" transform="translate(391.875,-18.12)">		<title>Rectangle.12</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="37.2402" width="108" height="410" class="st1"></rect>	</g>	<g id="shape4-7" v:mid="4" v:groupcontext="shape" transform="translate(513.375,-18.12)">		<title>Rectangle.27</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="37.2402" width="419.625" height="410" class="st1"></rect>	</g>	<g id="shape5-9" v:mid="5" v:groupcontext="shape" transform="translate(499.875,-27.12)">		<title>Rectangle.26</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="60.2402" width="18" height="387" class="st2"></rect>	</g>	<g id="shape6-11" v:mid="6" v:groupcontext="shape" transform="translate(18.375,-18.12)">		<title>Rectangle</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="37.2402" width="108" height="410" class="st1"></rect>	</g>	<g id="shape7-13" v:mid="7" v:groupcontext="shape" transform="translate(121.875,-391.62)">		<title>Square</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape8-15" v:mid="8" v:groupcontext="shape" transform="translate(121.875,-373.62)">		<title>Square.3</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape9-17" v:mid="9" v:groupcontext="shape" transform="translate(121.875,-324.12)">		<title>Square.4</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape10-19" v:mid="10" v:groupcontext="shape" transform="translate(121.875,-342.12)">		<title>Square.5</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape11-21" v:mid="11" v:groupcontext="shape" transform="translate(121.875,-306.12)">		<title>Square.6</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape12-23" v:mid="12" v:groupcontext="shape" transform="translate(121.875,-202.62)">		<title>Square.7</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape13-25" v:mid="13" v:groupcontext="shape" transform="translate(121.875,-157.12)">		<title>Square.8</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape14-27" v:mid="14" v:groupcontext="shape" transform="translate(121.875,-120.87)">		<title>Square.9</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape15-29" v:mid="15" v:groupcontext="shape" transform="translate(121.875,-87.3138)">		<title>Square.10</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape16-31" v:mid="16" v:groupcontext="shape" transform="translate(121.875,-33.8702)">		<title>Square.11</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape17-33" v:mid="17" v:groupcontext="shape" transform="translate(495.375,-391.62)">		<title>Square.13</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape18-35" v:mid="18" v:groupcontext="shape" transform="translate(495.375,-373.62)">		<title>Square.14</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape19-37" v:mid="19" v:groupcontext="shape" transform="translate(495.375,-338.12)">		<title>Square.16</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape20-39" v:mid="20" v:groupcontext="shape" transform="translate(495.375,-306.12)">		<title>Square.17</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape21-41" v:mid="21" v:groupcontext="shape" transform="translate(495.375,-202.62)">		<title>Square.18</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape22-43" v:mid="22" v:groupcontext="shape" transform="translate(495.375,-154.12)">		<title>Square.19</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape23-45" v:mid="23" v:groupcontext="shape" transform="translate(495.375,-121.049)">		<title>Square.20</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape24-47" v:mid="24" v:groupcontext="shape" transform="translate(495.375,-90.1352)">		<title>Square.21</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape25-49" v:mid="25" v:groupcontext="shape" transform="translate(495.375,-33.8702)">		<title>Square.22</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape26-51" v:mid="26" v:groupcontext="shape" transform="translate(196.125,-234.12)">		<title>Rectangle.28</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="325.74" width="56" height="121.5" class="st1"></rect>	</g>	<g id="shape27-53" v:mid="27" v:groupcontext="shape" transform="translate(247.625,-301.852)">		<title>Square.33</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape28-55" v:mid="28" v:groupcontext="shape" transform="translate(247.625,-284.977)">		<title>Square.34</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape29-57" v:mid="29" v:groupcontext="shape" transform="translate(247.625,-257.745)">		<title>Square.35</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape30-59" v:mid="30" v:groupcontext="shape" transform="translate(247.625,-240.87)">		<title>Square.36</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape31-61" v:mid="31" v:groupcontext="shape" transform="translate(828.375,-369.12)">		<title>Rectangle.58</title>		<desc>Full size PCIe x4 #1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.8125" cy="426.99" width="79.63" height="40.5"></v:textrect>		<rect x="0" y="406.74" width="79.625" height="40.5" class="st1"></rect>		<text x="12.31" y="424.24" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>全尺寸<tspan class="st4"> </tspan><tspan class="st4">PCIe <v:lf></v:lf></tspan><tspan x="27.58" dy="1.225em" class="st4">x4 #1</tspan></text>		</g>	<g id="shape32-67" v:mid="32" v:groupcontext="shape" transform="translate(828.375,-306.12)">		<title>Rectangle.59</title>		<desc>PCIe m.2 B key 5G</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.8125" cy="426.99" width="79.63" height="40.5"></v:textrect>		<rect x="0" y="406.74" width="79.625" height="40.5" class="st1"></rect>		<text x="18.97" y="423.99" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>PCIe m.2  <v:lf></v:lf><tspan x="19.25" dy="1.2em" class="st6">B key 5G</tspan></text>		</g>	<g id="shape33-71" v:mid="33" v:groupcontext="shape" transform="translate(828.375,-243.12)">		<title>Rectangle.60</title>		<desc>PCIe m.2 B key NVMe</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.8125" cy="426.99" width="79.63" height="40.5"></v:textrect>		<rect x="0" y="406.74" width="79.625" height="40.5" class="st1"></rect>		<text x="18.97" y="423.99" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>PCIe m.2  <v:lf></v:lf><tspan x="12.03" dy="1.2em" class="st6">B key NVMe</tspan></text>		</g>	<g id="shape34-75" v:mid="34" v:groupcontext="shape" transform="translate(828.375,-110)">		<title>Rectangle.64</title>		<desc>Full size PCIe x4 #2</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.8125" cy="426.99" width="79.63" height="40.5"></v:textrect>		<rect x="0" y="406.74" width="79.625" height="40.5" class="st1"></rect>		<text x="12.31" y="424.24" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>全尺寸<tspan class="st4"> </tspan><tspan class="st4">PCIe <v:lf></v:lf></tspan><tspan x="27.58" dy="1.225em" class="st4">x4 #2</tspan></text>		</g>	<g id="shape35-81" v:mid="35" v:groupcontext="shape" transform="translate(828.375,-45.1202)">		<title>Rectangle.65</title>		<desc>PCIe m.2 E key Wi-Fi</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.8125" cy="426.99" width="79.63" height="40.5"></v:textrect>		<rect x="0" y="406.74" width="79.625" height="40.5" class="st1"></rect>		<text x="18.97" y="423.99" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>PCIe m.2  <v:lf></v:lf><tspan x="14.26" dy="1.2em" class="st6">E key Wi</tspan>-Fi</text>		</g>	<g id="shape36-85" v:mid="36" v:groupcontext="shape" v:layermember="0" transform="translate(702.375,-338.745)">		<title>And gate</title>		<desc>AND</desc>		<v:custprops>			<v:cp v:nameu="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langid="1033"></v:cp>			<v:cp v:nameu="Duration" v:lbl="Duration" v:type="2" v:langid="1033"></v:cp>			<v:cp v:nameu="Resources" v:lbl="Resources" v:langid="1033"></v:cp>		</v:custprops>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(2,2,2,2)"></v:textblock>		<v:textrect cx="9.14063" cy="439.928" width="18.3" height="14.625"></v:textrect>		<path d="M0 432.62 L0 447.24 L10.97 447.24 A7.31251 7.31251 -180 0 0 10.97 432.62 L0 432.62 Z" class="st2"></path>		<text x="2.7" y="442.03" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>AND</text>		</g>	<g id="shape37-88" v:mid="37" v:groupcontext="shape" v:layermember="0" transform="translate(702.375,-256.807)">		<title>And gate.68</title>		<desc>AND</desc>		<v:custprops>			<v:cp v:nameu="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langid="1033"></v:cp>			<v:cp v:nameu="Duration" v:lbl="Duration" v:type="2" v:langid="1033"></v:cp>			<v:cp v:nameu="Resources" v:lbl="Resources" v:langid="1033"></v:cp>		</v:custprops>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(2,2,2,2)"></v:textblock>		<v:textrect cx="9.14063" cy="439.928" width="18.3" height="14.625"></v:textrect>		<path d="M0 432.62 L0 447.24 L10.97 447.24 A7.31251 7.31251 -180 0 0 10.97 432.62 L0 432.62 Z" class="st2"></path>		<text x="2.7" y="442.03" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>AND</text>		</g>	<g id="shape38-91" v:mid="38" v:groupcontext="shape" v:layermember="0" transform="translate(702.375,-153.531)">		<title>And gate.69</title>		<desc>AND</desc>		<v:custprops>			<v:cp v:nameu="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langid="1033"></v:cp>			<v:cp v:nameu="Duration" v:lbl="Duration" v:type="2" v:langid="1033"></v:cp>			<v:cp v:nameu="Resources" v:lbl="Resources" v:langid="1033"></v:cp>		</v:custprops>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(2,2,2,2)"></v:textblock>		<v:textrect cx="9.14063" cy="439.928" width="18.3" height="14.625"></v:textrect>		<path d="M0 432.62 L0 447.24 L10.97 447.24 A7.31251 7.31251 -180 0 0 10.97 432.62 L0 432.62 Z" class="st2"></path>		<text x="2.7" y="442.03" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>AND</text>		</g>	<g id="shape39-94" v:mid="39" v:groupcontext="shape" transform="translate(54.875,-389.37)">		<title>Sheet.39</title>		<desc>GPIO_116</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="20.97" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_116</text>		</g>	<g id="shape40-97" v:mid="40" v:groupcontext="shape" transform="translate(54.875,-370.12)">		<title>Sheet.40</title>		<desc>GPIO_124</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="20.97" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_124</text>		</g>	<g id="shape41-100" v:mid="41" v:groupcontext="shape" transform="translate(18.375,-338.62)">		<title>Sheet.41</title>		<desc>PM73250C GPIO_01</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="52.875" cy="440.49" width="105.75" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="105.75" height="13.5" class="st8"></rect>		<text x="16.7" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>PM73250C GPIO_01</text>		</g>	<g id="shape42-103" v:mid="42" v:groupcontext="shape" transform="translate(56.625,-321.34)">		<title>Sheet.42</title>		<desc>GPIO_02</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="25.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_02</text>		</g>	<g id="shape43-106" v:mid="43" v:groupcontext="shape" transform="translate(56.375,-304.06)">		<title>Sheet.43</title>		<desc>GPIO_79</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="25.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_79</text>		</g>	<g id="shape44-109" v:mid="44" v:groupcontext="shape" transform="translate(56.625,-199.37)">		<title>Sheet.44</title>		<desc>GPIO_03</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="25.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_03</text>		</g>	<g id="shape45-112" v:mid="45" v:groupcontext="shape" transform="translate(56.625,-155.37)">		<title>Sheet.45</title>		<desc>GPIO_78</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="25.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_78</text>		</g>	<g id="shape46-115" v:mid="46" v:groupcontext="shape" transform="translate(56.625,-119.12)">		<title>Sheet.46</title>		<desc>GPIO_87</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="25.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_87</text>		</g>	<g id="shape47-118" v:mid="47" v:groupcontext="shape" transform="translate(56.625,-86.2838)">		<title>Sheet.47</title>		<desc>GPIO_88</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="25.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_88</text>		</g>	<g id="shape48-121" v:mid="48" v:groupcontext="shape" transform="translate(56.625,-32.6202)">		<title>Sheet.48</title>		<desc>GPIO_89</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="25.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_89</text>		</g>	<g id="shape49-124" v:mid="49" v:groupcontext="shape" transform="translate(200.375,-337.37)">		<title>Sheet.49</title>		<desc>RESX</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.75" cy="440.49" width="49.51" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="49.5" height="13.5" class="st8"></rect>		<text x="4" y="443.19" class="st9" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>RESX</text>		</g>	<g id="shape50-127" v:mid="50" v:groupcontext="shape" transform="translate(200.375,-299.12)">		<title>Sheet.50</title>		<desc>GPIO_02</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.75" cy="440.49" width="49.51" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="49.5" height="13.5" class="st8"></rect>		<text x="7.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_02</text>		</g>	<g id="shape51-130" v:mid="51" v:groupcontext="shape" transform="translate(194.125,-281.84)">		<title>Sheet.51</title>		<desc>CLK_REQ_B</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="28" cy="440.49" width="56.02" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="56" height="13.5" class="st8"></rect>		<text x="7.82" y="442.74" class="st10" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>CLK_REQ_B</text>		</g>	<g id="shape52-133" v:mid="52" v:groupcontext="shape" transform="translate(200.054,-254.549)">		<title>Sheet.52</title>		<desc>GPIO_03</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.75" cy="440.49" width="49.51" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="49.5" height="13.5" class="st8"></rect>		<text x="7.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_03</text>		</g>	<g id="shape53-136" v:mid="53" v:groupcontext="shape" transform="translate(196.125,-236.911)">		<title>Sheet.53</title>		<desc>CLK_REQ_C</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="26.375" cy="440.49" width="52.76" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="52.75" height="13.5" class="st8"></rect>		<text x="4.15" y="442.74" class="st10" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>CLK_REQ_C</text>		</g>	<g id="shape54-139" v:mid="54" v:groupcontext="shape" transform="translate(619.875,-232.62)">		<title>Rectangle.88</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="325.74" width="56" height="121.5" class="st1"></rect>	</g>	<g id="shape55-141" v:mid="55" v:groupcontext="shape" transform="translate(615.875,-338.62)">		<title>Square.89</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape56-143" v:mid="56" v:groupcontext="shape" transform="translate(671.375,-300.352)">		<title>Square.90</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape57-145" v:mid="57" v:groupcontext="shape" transform="translate(671.375,-283.477)">		<title>Square.91</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape58-147" v:mid="58" v:groupcontext="shape" transform="translate(671.375,-256.12)">		<title>Square.92</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape59-149" v:mid="59" v:groupcontext="shape" transform="translate(671.375,-239.37)">		<title>Square.93</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape60-151" v:mid="60" v:groupcontext="shape" transform="translate(624.125,-335.87)">		<title>Sheet.60</title>		<desc>RESX</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.75" cy="440.49" width="49.51" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="49.5" height="13.5" class="st8"></rect>		<text x="4" y="443.19" class="st9" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>RESX</text>		</g>	<g id="shape61-154" v:mid="61" v:groupcontext="shape" transform="translate(624.125,-297.62)">		<title>Sheet.61</title>		<desc>GPIO_02</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.75" cy="440.49" width="49.51" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="49.5" height="13.5" class="st8"></rect>		<text x="7.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_02</text>		</g>	<g id="shape62-157" v:mid="62" v:groupcontext="shape" transform="translate(617.875,-280.34)">		<title>Sheet.62</title>		<desc>CLK_REQ_B</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="28" cy="440.49" width="56.02" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="56" height="13.5" class="st8"></rect>		<text x="7.82" y="442.74" class="st10" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>CLK_REQ_B</text>		</g>	<g id="shape63-160" v:mid="63" v:groupcontext="shape" transform="translate(623.804,-253.049)">		<title>Sheet.63</title>		<desc>GPIO_03</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.75" cy="440.49" width="49.51" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="49.5" height="13.5" class="st8"></rect>		<text x="7.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_03</text>		</g>	<g id="shape64-163" v:mid="64" v:groupcontext="shape" transform="translate(619.875,-235.411)">		<title>Sheet.64</title>		<desc>CLK_REQ_C</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="26.375" cy="440.49" width="52.76" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="52.75" height="13.5" class="st8"></rect>		<text x="4.15" y="442.74" class="st10" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>CLK_REQ_C</text>		</g>	<g id="shape65-166" v:mid="65" v:groupcontext="shape" transform="translate(308.875,-233.62)">		<title>Rectangle.99</title>		<desc>uPD PCIe to USB</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="31.5" cy="428.34" width="63" height="37.8"></v:textrect>		<rect x="0" y="409.44" width="63" height="37.8" class="st1"></rect>		<text x="4.82" y="424.14" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>uPD PCIe <tspan x="11.5" dy="1.275em" class="st12">转</tspan> USB</text>		</g>	<g id="shape66-170" v:mid="66" v:groupcontext="shape" transform="translate(546.125,-243.62)">		<title>Rectangle.101</title>		<desc>CLK buffer</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="28" cy="430.44" width="56.02" height="33.6"></v:textrect>		<rect x="0" y="413.64" width="56" height="33.6" class="st1"></rect>		<text x="16.33" y="426.14" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK <tspan x="16" dy="1.287em" class="st12">缓存</tspan></text>		</g>	<g id="shape67-174" v:mid="67" v:groupcontext="shape" transform="translate(547.875,-83.6202)">		<title>Rectangle.102</title>		<desc>CLK buffer</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="28" cy="430.44" width="56.02" height="33.6"></v:textrect>		<rect x="0" y="413.64" width="56" height="33.6" class="st1"></rect>		<text x="16.33" y="426.14" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK <tspan x="16" dy="1.287em" class="st12">缓存</tspan></text>		</g>	<g id="shape68-178" v:mid="68" v:groupcontext="shape" transform="translate(428,-396.12)">		<title>Sheet.68</title>		<desc>GPIO_BBB</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="17.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_BBB</text>		</g>	<g id="shape69-181" v:mid="69" v:groupcontext="shape" transform="translate(428,-377.37)">		<title>Sheet.69</title>		<desc>GPIO_F</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="30.49" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_F</text>		</g>	<g id="shape70-184" v:mid="70" v:groupcontext="shape" transform="translate(400.625,-347.37)">		<title>Sheet.70</title>		<desc>PCIE1_RST_N GPIO_CC</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="48.3125" cy="440.49" width="96.63" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="96.625" height="13.5" class="st8"></rect>		<text x="32.11" y="437.79" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>PCIE1_RST_N <tspan x="52.12" dy="1.2em" class="st6">GPIO_CC</tspan></text>		</g>	<g id="shape71-188" v:mid="71" v:groupcontext="shape" transform="translate(400.375,-315.62)">		<title>Sheet.71</title>		<desc>PCIE1_CLK_REQ_N GPIO_DD</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="48.3125" cy="440.49" width="96.63" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="96.625" height="13.5" class="st8"></rect>		<text x="8.09" y="437.79" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>PCIE1_CLK_REQ_N <tspan x="52.12" dy="1.2em" class="st6">GPIO_DD</tspan></text>		</g>	<g id="shape72-192" v:mid="72" v:groupcontext="shape" transform="translate(416.375,-212.83)">		<title>Sheet.72</title>		<desc>PCIE1_WAKE_N GPIO_EE</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.4375" cy="440.49" width="80.9" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="80.875" height="13.5" class="st8"></rect>		<text x="7.86" y="437.79" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>PCIE1_WAKE_N <tspan x="37.37" dy="1.2em" class="st6">GPIO_EE</tspan></text>		</g>	<g id="shape73-196" v:mid="73" v:groupcontext="shape" transform="translate(429.75,-159.12)">		<title>Sheet.73</title>		<desc>GPIO_U</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="33.75" cy="440.49" width="67.5" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="67.5" height="13.5" class="st8"></rect>		<text x="29.49" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_U</text>		</g>	<g id="shape74-199" v:mid="74" v:groupcontext="shape" transform="translate(400.625,-128.263)">		<title>Sheet.74</title>		<desc>PCIE2_RST_N GPIO_FF</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="48.3125" cy="440.49" width="96.63" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="96.625" height="13.5" class="st8"></rect>		<text x="32.11" y="437.79" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>PCIE2_RST_N <tspan x="54.12" dy="1.2em" class="st6">GPIO_FF</tspan></text>		</g>	<g id="shape75-203" v:mid="75" v:groupcontext="shape" transform="translate(400.625,-98.4566)">		<title>Sheet.75</title>		<desc>PCIE1_CLK_REQ_N GPIO_GG</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="48.3125" cy="440.49" width="96.63" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="96.625" height="13.5" class="st8"></rect>		<text x="8.09" y="437.79" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>PCIE1_CLK_REQ_N <tspan x="51.12" dy="1.2em" class="st6">GPIO_GG</tspan></text>		</g>	<g id="shape76-207" v:mid="76" v:groupcontext="shape" transform="translate(400.625,-43.2502)">		<title>Sheet.76</title>		<desc>PCIE2_WAKE_N GPIO_HH</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="48.3125" cy="440.49" width="96.63" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="96.625" height="13.5" class="st8"></rect>		<text x="23.6" y="437.79" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>PCIE2_WAKE_N <tspan x="52.12" dy="1.2em" class="st6">GPIO_HH</tspan></text>		</g>	<g id="shape77-211" v:mid="77" v:groupcontext="shape" transform="translate(620.375,-68.6202)">		<title>Rectangle.114</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="325.74" width="56" height="121.5" class="st1"></rect>	</g>	<g id="shape78-213" v:mid="78" v:groupcontext="shape" transform="translate(616.375,-174.62)">		<title>Square.115</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape79-215" v:mid="79" v:groupcontext="shape" transform="translate(671.875,-136.352)">		<title>Square.116</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape80-217" v:mid="80" v:groupcontext="shape" transform="translate(671.875,-119.477)">		<title>Square.117</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape81-219" v:mid="81" v:groupcontext="shape" transform="translate(671.875,-93.1023)">		<title>Square.118</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape82-221" v:mid="82" v:groupcontext="shape" transform="translate(671.875,-75.3702)">		<title>Square.119</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="shape83-223" v:mid="83" v:groupcontext="shape" transform="translate(624.625,-171.87)">		<title>Sheet.83</title>		<desc>RESX</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.75" cy="440.49" width="49.51" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="49.5" height="13.5" class="st8"></rect>		<text x="4" y="443.19" class="st9" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>RESX</text>		</g>	<g id="shape84-226" v:mid="84" v:groupcontext="shape" transform="translate(624.625,-133.62)">		<title>Sheet.84</title>		<desc>GPIO_02</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.75" cy="440.49" width="49.51" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="49.5" height="13.5" class="st8"></rect>		<text x="7.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_02</text>		</g>	<g id="shape85-229" v:mid="85" v:groupcontext="shape" transform="translate(618.375,-116.34)">		<title>Sheet.85</title>		<desc>CLK_REQ_B</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="28" cy="440.49" width="56.02" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="56" height="13.5" class="st8"></rect>		<text x="7.82" y="442.74" class="st10" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>CLK_REQ_B</text>		</g>	<g id="shape86-232" v:mid="86" v:groupcontext="shape" transform="translate(624.304,-89.0488)">		<title>Sheet.86</title>		<desc>GPIO_03</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="24.75" cy="440.49" width="49.51" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="49.5" height="13.5" class="st8"></rect>		<text x="7.98" y="443.19" class="st9" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>GPIO_03</text>		</g>	<g id="shape87-235" v:mid="87" v:groupcontext="shape" transform="translate(620.375,-71.4116)">		<title>Sheet.87</title>		<desc>CLK_REQ_C</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="26.375" cy="440.49" width="52.76" height="13.5"></v:textrect>		<rect x="0" y="433.74" width="52.75" height="13.5" class="st8"></rect>		<text x="4.15" y="442.74" class="st10" v:langid="1033"><v:paragraph v:horizalign="2"></v:paragraph><v:tablist></v:tablist>CLK_REQ_C</text>		</g>	<g id="group88-238" transform="translate(146.421,-396.12)" v:mid="88" v:groupcontext="group">		<title>Sheet.88</title>		<g id="shape89-239" v:mid="89" v:groupcontext="shape">			<title>Sheet.89</title>			<path d="M0 447.24 L234 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape90-241" v:mid="90" v:groupcontext="shape">			<title>Sheet.90</title>			<path d="M0 447.24 L234 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L234 447.24" class="st15"></path>		</g>	</g>	<g id="group91-244" transform="translate(146.421,-376.92)" v:mid="91" v:groupcontext="group">		<title>Sheet.91</title>		<g id="shape92-245" v:mid="92" v:groupcontext="shape">			<title>Sheet.92</title>			<path d="M0 447.24 L234 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape93-247" v:mid="93" v:groupcontext="shape">			<title>Sheet.93</title>			<path d="M0 447.24 L234 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L234 447.24" class="st15"></path>		</g>	</g>	<g id="shape94-250" v:mid="94" v:groupcontext="shape" transform="translate(146.421,-328.12)">		<title>Sheet.94</title>		<path d="M0 447.24 L42.63 447.24 L42.99 447.24 L49.2 447.24" class="st16"></path>	</g>	<g id="shape95-256" v:mid="95" v:groupcontext="shape" transform="translate(147.501,-310.119) rotate(0.138344)">		<title>Sheet.95</title>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L49.7 447.24" class="st18"></path>	</g>	<g id="shape96-262" v:mid="96" v:groupcontext="shape" transform="translate(256.625,-262.245)">		<title>Sheet.96</title>		<desc>RST_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="26.125" cy="447.24" width="52.26" height="0"></v:textrect>		<path d="M0 447.24 L45.68 447.24 L46.04 447.24 L52.25 447.24" class="st16"></path>		<rect v:rectcontext="textBkgnd" x="14.651" y="443.04" width="22.948" height="8.39987" class="st19"></rect>		<text x="14.65" y="449.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RST_N</text>		</g>	<g id="shape97-269" v:mid="97" v:groupcontext="shape" transform="translate(267.321,-245.242) rotate(1.37043)">		<title>Sheet.97</title>		<desc>CLK_REQ_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="26.1325" cy="447.24" width="52.27" height="0"></v:textrect>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L52.26 447.24" class="st18"></path>		<rect v:rectcontext="textBkgnd" x="5.319" y="443.04" width="41.6269" height="8.39987" class="st19"></rect>		<text x="5.32" y="449.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK_REQ_N</text>		</g>	<g id="group98-276" transform="translate(396.375,-396.12)" v:mid="98" v:groupcontext="group">		<title>Sheet.98</title>		<g id="shape99-277" v:mid="99" v:groupcontext="shape">			<title>Sheet.99</title>			<path d="M0 447.24 L99 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape100-279" v:mid="100" v:groupcontext="shape">			<title>Sheet.100</title>			<path d="M0 447.24 L99 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L99 447.24" class="st15"></path>		</g>	</g>	<g id="group101-282" transform="translate(495.375,516.36) rotate(180)" v:mid="101" v:groupcontext="group">		<title>Sheet.101</title>		<g id="shape102-283" v:mid="102" v:groupcontext="shape">			<title>Sheet.102</title>			<path d="M0 447.24 L99 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape103-285" v:mid="103" v:groupcontext="shape">			<title>Sheet.103</title>			<path d="M0 447.24 L99 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L99 447.24" class="st15"></path>		</g>	</g>	<g id="shape104-288" v:mid="104" v:groupcontext="shape" transform="translate(306.375,-306.352)">		<title>Sheet.104</title>		<path d="M0 447.24 L65.43 447.24 L65.79 447.24 L72 447.24" class="st16"></path>	</g>	<g id="shape105-293" v:mid="105" v:groupcontext="shape" transform="translate(256.625,-289.477)">		<title>Sheet.105</title>		<desc>CLK_REQ_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="60.875" cy="447.24" width="121.76" height="0"></v:textrect>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L121.75 447.24" class="st18"></path>		<rect v:rectcontext="textBkgnd" x="40.0616" y="443.04" width="41.6269" height="8.39987" class="st19"></rect>		<text x="40.06" y="449.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK_REQ_N</text>		</g>	<g id="shape106-300" v:mid="106" v:groupcontext="shape" transform="translate(404.375,-306.12)">		<title>Sheet.106</title>		<path d="M91 410.74 L84.79 410.74 L84.43 410.74 L0 410.74 L0 447.24" class="st18"></path>	</g>	<g id="group107-305" transform="translate(400.368,-306.174) rotate(0.511529)" v:mid="107" v:groupcontext="group">		<title>Sheet.107</title>		<g id="shape108-306" v:mid="108" v:groupcontext="shape">			<title>Sheet.108</title>			<path d="M0 447.24 L8 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape109-308" v:mid="109" v:groupcontext="shape">			<title>Sheet.109</title>			<path d="M0 447.24 L8 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L8 447.24" class="st15"></path>		</g>	</g>	<g id="shape110-311" v:mid="110" v:groupcontext="shape" transform="translate(390.559,-288.874) rotate(-0.745069)">		<title>Sheet.110</title>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L16.04 447.24" class="st18"></path>	</g>	<g id="group111-316" transform="translate(495.375,583.86) rotate(180)" v:mid="111" v:groupcontext="group">		<title>Sheet.111</title>		<g id="shape112-317" v:mid="112" v:groupcontext="shape">			<title>Sheet.112</title>			<path d="M0 447.24 L82.96 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape113-319" v:mid="113" v:groupcontext="shape">			<title>Sheet.113</title>			<path d="M0 447.24 L82.96 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L82.96 447.24" class="st15"></path>		</g>	</g>	<g id="group114-322" transform="translate(859.652,136.62) rotate(90)" v:mid="114" v:groupcontext="group">		<title>Sheet.114</title>		<g id="shape115-323" v:mid="115" v:groupcontext="shape">			<title>Sheet.115</title>			<path d="M0 447.24 L21.5 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape116-325" v:mid="116" v:groupcontext="shape">			<title>Sheet.116</title>			<path d="M0 447.24 L21.5 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L21.5 447.24" class="st15"></path>		</g>	</g>	<g id="shape117-328" v:mid="117" v:groupcontext="shape" transform="translate(380.421,688.102) rotate(180)">		<title>Sheet.117</title>		<desc>WAKE_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="117" cy="447.24" width="234.01" height="0" transform="rotate(180)"></v:textrect>		<path d="M0 447.24 L227.43 447.24 L227.79 447.24 L234 447.24" class="st16"></path>		<rect v:rectcontext="textBkgnd" x="-131.781" y="-451.44" width="29.5617" height="8.39987" transform="rotate(180)" class="st19"></rect>		<text x="-131.78" y="-445.14" transform="rotate(180)" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>WAKE_N</text>		</g>	<g id="shape118-335" v:mid="118" v:groupcontext="shape" transform="translate(495.375,687.36) rotate(180)">		<title>Sheet.118</title>		<path d="M0 447.24 L92.43 447.24 L92.79 447.24 L99 447.24" class="st16"></path>	</g>	<g id="shape119-340" v:mid="119" v:groupcontext="shape" transform="translate(828.375,687.779) rotate(180)">		<title>Sheet.119</title>		<desc>WAKE_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="155.25" cy="447.24" width="310.5" height="0" transform="rotate(180)"></v:textrect>		<path d="M0 447.24 L303.93 447.24 L304.29 447.24 L310.5 447.24" class="st16"></path>		<rect v:rectcontext="textBkgnd" x="-170.031" y="-451.44" width="29.5617" height="8.39987" transform="rotate(180)" class="st19"></rect>		<text x="-170.03" y="-445.14" transform="rotate(180)" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>WAKE_N</text>		</g>	<g id="group120-347" transform="translate(146.421,-160.906)" v:mid="120" v:groupcontext="group">		<title>Sheet.120</title>		<g id="shape121-348" v:mid="121" v:groupcontext="shape">			<title>Sheet.121</title>			<path d="M0 447.24 L234 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape122-350" v:mid="122" v:groupcontext="shape">			<title>Sheet.122</title>			<path d="M0 447.24 L234 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L234 447.24" class="st15"></path>		</g>	</g>	<g id="group123-353" transform="translate(146.421,-121.849)" v:mid="123" v:groupcontext="group">		<v:userdefs></v:userdefs>		<title>Sheet.123</title>		<desc>RST_N</desc>		<g id="shape124-354" v:mid="124" v:groupcontext="shape" transform="translate(0,-4.19987)">			<title>Sheet.124</title>			<path d="M0 447.24 L234 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape125-356" v:mid="125" v:groupcontext="shape" transform="translate(0,-4.19987)">			<title>Sheet.125</title>			<path d="M0 447.24 L234 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L234 447.24" class="st15"></path>		</g>		<g id="shape126-359" v:mid="126" v:groupcontext="shape" transform="translate(105.526,5.68434E-14)">			<title>Sheet.126</title>			<rect x="0" y="438.84" width="22.948" height="8.39987" class="st19"></rect>		</g>		<g id="shape123-361" v:mid="123" v:groupcontext="groupContent">			<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>			<v:textrect cx="117" cy="443.04" width="234.01" height="0"></v:textrect>			<text x="105.53" y="445.14" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RST_N</text>			</g>	</g>	<g id="group127-363" transform="translate(146.375,-90.1063)" v:mid="127" v:groupcontext="group">		<v:userdefs></v:userdefs>		<title>Sheet.127</title>		<desc>PCIE2_CLK_REQ_N</desc>		<g id="shape128-364" v:mid="128" v:groupcontext="shape" transform="translate(0,-4.01387)">			<title>Sheet.128</title>			<path d="M2.05 447.24 L0 446.87 L234 446.87 L2.05 447.24 Z" class="st13"></path>		</g>		<g id="shape129-366" v:mid="129" v:groupcontext="shape" transform="translate(0,-4.01387)">			<title>Sheet.129</title>			<path d="M2.05 447.24 L0 446.87 L234 446.87 L2.05 447.24 Z" class="st14"></path>			<path d="M2.05 447.24 L0 446.87 L234 446.87" class="st15"></path>		</g>		<g id="shape130-369" v:mid="130" v:groupcontext="shape" transform="translate(84.1247,5.68434E-14)">			<title>Sheet.130</title>			<rect x="0" y="438.84" width="65.7507" height="8.39987" class="st19"></rect>		</g>		<g id="shape127-371" v:mid="127" v:groupcontext="groupContent">			<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>			<v:textrect cx="117" cy="443.04" width="234.01" height="0.372165"></v:textrect>			<text x="84.12" y="445.14" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>PCIE2_CLK_REQ_N</text>			</g>	</g>	<g id="shape131-373" v:mid="131" v:groupcontext="shape" transform="translate(144.375,-39.1202)">		<title>Sheet.131</title>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L234 447.24" class="st18"></path>	</g>	<g id="group132-378" transform="translate(398.634,-159.114) rotate(0.28937)" v:mid="132" v:groupcontext="group">		<title>Sheet.132</title>		<g id="shape133-379" v:mid="133" v:groupcontext="shape">			<title>Sheet.133</title>			<path d="M0 447.24 L99 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape134-381" v:mid="134" v:groupcontext="shape">			<title>Sheet.134</title>			<path d="M0 447.24 L99 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L99 447.24" class="st15"></path>		</g>	</g>	<g id="group135-384" transform="translate(398.634,-126.043) rotate(0.28937)" v:mid="135" v:groupcontext="group">		<title>Sheet.135</title>		<g id="shape136-385" v:mid="136" v:groupcontext="shape">			<title>Sheet.136</title>			<path d="M0 447.24 L99 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape137-387" v:mid="137" v:groupcontext="shape">			<title>Sheet.137</title>			<path d="M0 447.24 L99 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L99 447.24" class="st15"></path>		</g>	</g>	<g id="group138-390" transform="translate(395.73,-94.4919) rotate(-0.082678)" v:mid="138" v:groupcontext="group">		<title>Sheet.138</title>		<g id="shape139-391" v:mid="139" v:groupcontext="shape">			<title>Sheet.139</title>			<path d="M0 447.24 L99 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape140-393" v:mid="140" v:groupcontext="shape">			<title>Sheet.140</title>			<path d="M0 447.24 L99 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L99 447.24" class="st15"></path>		</g>	</g>	<g id="shape141-396" v:mid="141" v:groupcontext="shape" transform="translate(399.763,-39.1074) rotate(0.434048)">		<title>Sheet.141</title>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L99 447.24" class="st18"></path>	</g>	<g id="group142-401" transform="translate(517.875,-159.12)" v:mid="142" v:groupcontext="group">		<title>Sheet.142</title>		<g id="shape143-402" v:mid="143" v:groupcontext="shape">			<title>Sheet.143</title>			<path d="M0 447.24 L82.5 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape144-404" v:mid="144" v:groupcontext="shape">			<title>Sheet.144</title>			<path d="M0 447.24 L82.5 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L82.5 447.24" class="st15"></path>		</g>	</g>	<g id="shape145-407" v:mid="145" v:groupcontext="shape" transform="translate(600.375,-159.12)">		<title>Sheet.145</title>		<path d="M16 427.24 L9.79 427.24 L9.43 427.24 L0 427.24 L0 447.24" class="st18"></path>	</g>	<g id="shape146-412" v:mid="146" v:groupcontext="shape" transform="translate(517.875,-124.12)">		<title>Sheet.146</title>		<path d="M0 447.24 L10.5 447.24 L10.5 424.38 L90.5 424.38 L90.5 410.1 L95.93 410.1 L96.29 410.1 L102.5 410.1" class="st16"></path>	</g>	<g id="group147-417" transform="translate(522.375,-93.551)" v:mid="147" v:groupcontext="group">		<title>Sheet.147</title>		<g id="shape148-418" v:mid="148" v:groupcontext="shape">			<title>Sheet.148</title>			<path d="M0 447.24 L13.66 447.24 L13.66 406.67 L98 406.67 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape149-420" v:mid="149" v:groupcontext="shape">			<title>Sheet.149</title>			<path d="M0 447.24 L13.66 447.24 L13.66 406.67 L98 406.67 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L13.66 447.24 L13.66 406.67 L98 406.67" class="st15"></path>		</g>	</g>	<g id="group150-423" transform="translate(1039.24,313.12) rotate(90)" v:mid="150" v:groupcontext="group">		<title>Sheet.150</title>		<g id="shape151-424" v:mid="151" v:groupcontext="shape">			<title>Sheet.151</title>			<path d="M0 447.24 L16.9 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape152-426" v:mid="152" v:groupcontext="shape">			<title>Sheet.152</title>			<path d="M0 447.24 L16.9 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L16.9 447.24" class="st15"></path>		</g>	</g>	<g id="group153-429" transform="translate(584.851,-146.977)" v:mid="153" v:groupcontext="group">		<title>Sheet.153</title>		<g id="shape154-430" v:mid="154" v:groupcontext="shape">			<title>Sheet.154</title>			<path d="M0 447.24 L0 400.1 L107.72 400.1 L107.72 430.1 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape155-432" v:mid="155" v:groupcontext="shape">			<title>Sheet.155</title>			<path d="M0 447.24 L0 400.1 L107.72 400.1 L107.72 430.1 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L0 400.1 L107.72 400.1 L107.72 430.1" class="st15"></path>		</g>	</g>	<g id="group156-435" transform="translate(675.598,-163.816) rotate(-2.11374)" v:mid="156" v:groupcontext="group">		<title>Sheet.156</title>		<g id="shape157-436" v:mid="157" v:groupcontext="shape">			<title>Sheet.157</title>			<path d="M0 447.24 L10.29 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape158-438" v:mid="158" v:groupcontext="shape">			<title>Sheet.158</title>			<path d="M0 447.24 L10.29 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L10.29 447.24" class="st15"></path>		</g>	</g>	<g id="group159-441" transform="translate(692.281,-105.089)" v:mid="159" v:groupcontext="group">		<title>Sheet.159</title>		<g id="shape160-442" v:mid="160" v:groupcontext="shape">			<title>Sheet.160</title>			<path d="M0 379.15 L0 447.15 L11.72 447.24 L0 379.15 Z" class="st13"></path>		</g>		<g id="shape161-444" v:mid="161" v:groupcontext="shape">			<title>Sheet.161</title>			<path d="M0 379.15 L0 447.15 L11.72 447.24 L0 379.15 Z" class="st14"></path>			<path d="M0 379.15 L0 447.15 L11.72 447.24" class="st15"></path>		</g>	</g>	<g id="group162-447" transform="translate(699.742,796.983) rotate(-179.699)" v:mid="162" v:groupcontext="group">		<title>Sheet.162</title>		<g id="shape163-448" v:mid="163" v:groupcontext="shape">			<title>Sheet.163</title>			<path d="M0 447.24 L21.22 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape164-450" v:mid="164" v:groupcontext="shape">			<title>Sheet.164</title>			<path d="M0 447.24 L21.22 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L21.22 447.24" class="st15"></path>		</g>	</g>	<g id="group165-453" transform="translate(517.875,-378.12)" v:mid="165" v:groupcontext="group">		<title>Sheet.165</title>		<g id="shape166-454" v:mid="166" v:groupcontext="shape">			<title>Sheet.166</title>			<path d="M0 447.24 L74.5 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape167-456" v:mid="167" v:groupcontext="shape">			<title>Sheet.167</title>			<path d="M0 447.24 L74.5 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L74.5 447.24" class="st15"></path>		</g>	</g>	<g id="shape168-459" v:mid="168" v:groupcontext="shape" transform="translate(592.375,-343.12)">		<title>Sheet.168</title>		<path d="M23.5 447.24 L17.29 447.24 L16.93 447.24 L0 447.24 L0 412.24" class="st18"></path>	</g>	<g id="shape169-464" v:mid="169" v:groupcontext="shape" transform="translate(517.875,-324.12)">		<title>Sheet.169</title>		<desc>RST_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="2"></v:textblock>		<v:textrect cx="51" cy="437.24" width="102.03" height="20"></v:textrect>		<path d="M0 427.24 L66.5 427.24 L66.5 447.24 L95.43 447.24 L95.79 447.24 L102 447.24" class="st16"></path>		<rect v:rectcontext="textBkgnd" x="39.5259" y="426.44" width="22.948" height="16.7997" class="st19"></rect>		<text x="39.53" y="432.74" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RST_N<v:newlinechar></v:newlinechar></text>		</g>	<g id="shape170-471" v:mid="170" v:groupcontext="shape" transform="translate(517.875,-310.12)">		<title>Sheet.170</title>		<desc>CLK_REQ_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="51" cy="447.24" width="102.03" height="0"></v:textrect>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L102 447.24" class="st18"></path>		<rect v:rectcontext="textBkgnd" x="30.1865" y="443.04" width="41.6269" height="8.39987" class="st19"></rect>		<text x="30.19" y="449.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK_REQ_N</text>		</g>	<g id="group171-478" transform="translate(600.375,-324.12)" v:mid="171" v:groupcontext="group">		<title>Sheet.171</title>		<g id="shape172-479" v:mid="172" v:groupcontext="shape">			<title>Sheet.172</title>			<path d="M0 447.24 L0 403.24 L94 403.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape173-481" v:mid="173" v:groupcontext="shape">			<title>Sheet.173</title>			<path d="M0 447.24 L0 403.24 L94 403.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L0 403.24 L94 403.24" class="st15"></path>		</g>	</g>	<g id="group174-484" transform="translate(694.375,-349.714)" v:mid="174" v:groupcontext="group">		<title>Sheet.174</title>		<g id="shape175-485" v:mid="175" v:groupcontext="shape">			<title>Sheet.175</title>			<path d="M8 447.24 L0 447.24 L0 428.83 L8 447.24 Z" class="st13"></path>		</g>		<g id="shape176-487" v:mid="176" v:groupcontext="shape">			<title>Sheet.176</title>			<path d="M8 447.24 L0 447.24 L0 428.83 L8 447.24 Z" class="st14"></path>			<path d="M8 447.24 L0 447.24 L0 428.83" class="st15"></path>		</g>	</g>	<g id="group177-490" transform="translate(694.375,-268.12)" v:mid="177" v:groupcontext="group">		<title>Sheet.177</title>		<g id="shape178-491" v:mid="178" v:groupcontext="shape">			<title>Sheet.178</title>			<path d="M0 361.24 L0 367.65 L0 447.24 L0 361.24 Z" class="st13"></path>		</g>		<g id="shape179-493" v:mid="179" v:groupcontext="shape">			<title>Sheet.179</title>			<path d="M0 361.24 L0 367.65 L0 447.24 L0 361.24 Z" class="st14"></path>			<path d="M0 361.24 L0 367.65 L0 447.24" class="st15"></path>		</g>	</g>	<g id="group180-496" transform="translate(683.551,-260.609) rotate(0.406931)" v:mid="180" v:groupcontext="group">		<title>Sheet.180</title>		<g id="shape181-497" v:mid="181" v:groupcontext="shape">			<title>Sheet.181</title>			<path d="M0 447.24 L22 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape182-499" v:mid="182" v:groupcontext="shape">			<title>Sheet.182</title>			<path d="M0 447.24 L22 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L22 447.24" class="st15"></path>		</g>	</g>	<g id="group183-502" transform="translate(683.176,626.291) rotate(-177.54)" v:mid="183" v:groupcontext="group">		<title>Sheet.183</title>		<g id="shape184-503" v:mid="184" v:groupcontext="shape">			<title>Sheet.184</title>			<path d="M0 447.24 L8.01 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape185-505" v:mid="185" v:groupcontext="shape">			<title>Sheet.185</title>			<path d="M0 447.24 L8.01 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L8.01 447.24" class="st15"></path>		</g>	</g>	<g id="group186-508" transform="translate(680.375,-304.852)" v:mid="186" v:groupcontext="group">		<title>Sheet.186</title>		<g id="shape187-509" v:mid="187" v:groupcontext="shape">			<title>Sheet.187</title>			<path d="M0 447.24 L6.29 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape188-511" v:mid="188" v:groupcontext="shape">			<title>Sheet.188</title>			<path d="M0 447.24 L6.29 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L6.29 447.24" class="st15"></path>		</g>	</g>	<g id="group189-514" transform="translate(686.375,-304.852)" v:mid="189" v:groupcontext="group">		<title>Sheet.189</title>		<g id="shape190-515" v:mid="190" v:groupcontext="shape">			<title>Sheet.190</title>			<path d="M16 409.69 L0 409.69 L0.29 447.24 L16 409.69 Z" class="st13"></path>		</g>		<g id="shape191-517" v:mid="191" v:groupcontext="shape">			<title>Sheet.191</title>			<path d="M16 409.69 L0 409.69 L0.29 447.24 L16 409.69 Z" class="st14"></path>			<path d="M16 409.69 L0 409.69 L0.29 447.24" class="st15"></path>		</g>	</g>	<g id="shape192-520" v:mid="192" v:groupcontext="shape" transform="translate(35.375,-412.691)">		<title>Sheet.192</title>		<desc>QPS6490</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="37" cy="441.24" width="74.01" height="12"></v:textrect>		<rect x="0" y="435.24" width="74" height="12" class="st8"></rect>		<text x="6.65" y="445.44" class="st21" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QPS6490</text>		</g>	<g id="shape193-523" v:mid="193" v:groupcontext="shape" transform="translate(162,-413.168)">		<title>Sheet.193</title>		<desc>Interposer</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="96.0625" cy="441.24" width="192.16" height="12"></v:textrect>		<rect x="0" y="435.24" width="192.125" height="12" class="st8"></rect>		<text x="75.06" y="445.44" class="st22" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>转接板</text>		</g>	<g id="shape194-526" v:mid="194" v:groupcontext="shape" transform="translate(404.375,-413.168)">		<title>Sheet.194</title>		<desc>Mainboard</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="42.6875" cy="441.24" width="85.38" height="12"></v:textrect>		<rect x="0" y="435.24" width="85.375" height="12" class="st8"></rect>		<text x="28.69" y="445.44" class="st22" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>主板</text>		</g>	<g id="shape195-529" v:mid="195" v:groupcontext="shape" transform="translate(585,-412.215)">		<title>Sheet.195</title>		<desc>Industrial mezzanine</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="139.5" cy="441.24" width="279" height="12"></v:textrect>		<rect x="0" y="435.24" width="279" height="12" class="st8"></rect>		<text x="89.7" y="445.79" class="st22" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>工业<tspan class="st4"> </tspan><tspan class="st4">mezzanine</tspan></text>		</g>	<g id="group196-534" transform="translate(184.375,-328.12)" v:mid="196" v:groupcontext="group">		<title>Sheet.196</title>		<g id="shape197-535" v:mid="197" v:groupcontext="shape">			<title>Sheet.197</title>			<path d="M0 447.24 L0 409.24 L122 409.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape198-537" v:mid="198" v:groupcontext="shape">			<title>Sheet.198</title>			<path d="M0 447.24 L0 409.24 L122 409.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L0 409.24 L122 409.24" class="st15"></path>		</g>	</g>	<g id="group199-540" transform="translate(753.615,81.1202) rotate(90)" v:mid="199" v:groupcontext="group">		<title>Sheet.199</title>		<g id="shape200-541" v:mid="200" v:groupcontext="shape">			<title>Sheet.200</title>			<path d="M0 447.24 L59.77 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape201-543" v:mid="201" v:groupcontext="shape">			<title>Sheet.201</title>			<path d="M0 447.24 L59.77 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L59.77 447.24" class="st15"></path>		</g>	</g>	<g id="group202-546" transform="translate(256.911,-306.352)" v:mid="202" v:groupcontext="group">		<title>Sheet.202</title>		<g id="shape203-547" v:mid="203" v:groupcontext="shape">			<title>Sheet.203</title>			<path d="M0 447.24 L49.75 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape204-549" v:mid="204" v:groupcontext="shape">			<title>Sheet.204</title>			<path d="M0 447.24 L49.75 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L49.75 447.24" class="st23"></path>		</g>	</g>	<g id="shape205-552" v:mid="205" v:groupcontext="shape" transform="translate(195.625,-318.12)">		<title>Sheet.205</title>		<desc>QPS615</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="28" cy="439.24" width="56.02" height="16"></v:textrect>		<rect x="0" y="431.24" width="56" height="16" class="st8"></rect>		<text x="4.99" y="442.84" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QCS615</text>		</g>	<g id="shape206-555" v:mid="206" v:groupcontext="shape" transform="translate(619.875,-312.977)">		<title>Sheet.206</title>		<desc>QPS615 #1</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="28" cy="436.365" width="56.02" height="21.75"></v:textrect>		<rect x="0" y="425.49" width="56" height="21.75" class="st8"></rect>		<text x="10.74" y="433.67" class="st24" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QCS615  <tspan x="22.99" dy="1.2em" class="st6">#1</tspan></text>		</g>	<g id="shape207-559" v:mid="207" v:groupcontext="shape" transform="translate(620.375,-149.245)">		<title>Sheet.207</title>		<desc>QPS615 #2</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="28" cy="436.365" width="56.02" height="21.75"></v:textrect>		<rect x="0" y="425.49" width="56" height="21.75" class="st8"></rect>		<text x="10.74" y="433.67" class="st24" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QCS615  <tspan x="22.99" dy="1.2em" class="st6">#2</tspan></text>		</g>	<g id="group208-563" transform="translate(517.875,-159.12)" v:mid="208" v:groupcontext="group">		<title>Sheet.208</title>		<g id="shape209-564" v:mid="209" v:groupcontext="shape">			<title>Sheet.209</title>			<path d="M0 212.24 L16 212.24 L16 447.24 L0 212.24 Z" class="st13"></path>		</g>		<g id="shape210-566" v:mid="210" v:groupcontext="shape">			<title>Sheet.210</title>			<path d="M0 212.24 L16 212.24 L16 447.24 L0 212.24 Z" class="st14"></path>			<path d="M0 212.24 L16 212.24 L16 447.24" class="st15"></path>		</g>	</g>	<g id="shape211-569" v:mid="211" v:groupcontext="shape" transform="translate(378.375,-27.12)">		<title>Rectangle.25</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="60.2402" width="18" height="387" class="st2"></rect>	</g>	<g id="shape212-571" v:mid="212" v:groupcontext="shape" transform="translate(720.656,-330)">		<title>Sheet.212</title>		<path d="M0 431.18 L79.34 431.18 L79.34 447.24 L101.15 447.24 L101.51 447.24 L107.72 447.24" class="st16"></path>	</g>	<g id="shape213-576" v:mid="213" v:groupcontext="shape" transform="translate(723.77,-264.109) rotate(0.398912)">		<title>Sheet.213</title>		<desc>RST2_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.8607" cy="447.24" width="107.73" height="0"></v:textrect>		<path d="M0 447.24 L101.15 447.24 L101.51 447.24 L107.72 447.24" class="st16"></path>		<rect v:rectcontext="textBkgnd" x="40.4402" y="443.04" width="26.841" height="8.39987" class="st19"></rect>		<text x="40.44" y="449.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RST2_N</text>		</g>	<g id="shape214-583" v:mid="214" v:groupcontext="shape" transform="translate(720.656,-140)">		<title>Sheet.214</title>		<path d="M0 426.4 L79.34 426.4 L79.34 447.24 L101.15 447.24 L101.51 447.24 L107.72 447.24" class="st16"></path>	</g>	<g id="group215-588" transform="translate(720.375,-70.0002)" v:mid="215" v:groupcontext="group">		<title>Sheet.215</title>		<g id="shape216-589" v:mid="216" v:groupcontext="shape">			<title>Sheet.216</title>			<path d="M0 416.09 L79.63 416.09 L79.62 447.24 L0 416.09 Z" class="st13"></path>		</g>		<g id="shape217-591" v:mid="217" v:groupcontext="shape">			<title>Sheet.217</title>			<path d="M0 416.09 L79.63 416.09 L79.62 447.24 L0 416.09 Z" class="st14"></path>			<path d="M0 416.09 L79.63 416.09 L79.62 447.24" class="st15"></path>		</g>	</g>	<g id="group218-594" transform="translate(800,-70.0002)" v:mid="218" v:groupcontext="group">		<title>Sheet.218</title>		<g id="shape219-595" v:mid="219" v:groupcontext="shape">			<title>Sheet.219</title>			<path d="M0 447.24 L28.38 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape220-597" v:mid="220" v:groupcontext="shape">			<title>Sheet.220</title>			<path d="M0 447.24 L28.38 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L28.38 447.24" class="st15"></path>		</g>	</g>	<g id="shape221-600" v:mid="221" v:groupcontext="shape" transform="translate(517.875,-40.0002)">		<title>Sheet.221</title>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L282.12 447.24 L282.12 430.1 L310.5 430.1" class="st18"></path>	</g>	<g id="group222-605" transform="translate(805,-56.902)" v:mid="222" v:groupcontext="group">		<title>Sheet.222</title>		<g id="shape223-606" v:mid="223" v:groupcontext="shape">			<title>Sheet.223</title>			<path d="M0 447.24 L0 384.14 L23.38 384.14 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape224-608" v:mid="224" v:groupcontext="shape">			<title>Sheet.224</title>			<path d="M0 447.24 L0 384.14 L23.38 384.14 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L0 384.14 L23.38 384.14" class="st15"></path>		</g>	</g>	<g id="shape225-611" v:mid="225" v:groupcontext="shape" transform="translate(680.875,-79.8702)">		<title>Sheet.225</title>		<desc>CLK_REQ2_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="73.75" cy="447.24" width="147.5" height="0"></v:textrect>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L147.5 447.24" class="st18"></path>		<rect v:rectcontext="textBkgnd" x="50.99" y="443.04" width="45.5199" height="8.39987" class="st19"></rect>		<text x="50.99" y="449.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK_REQ2_N</text>		</g>	<g id="shape226-618" v:mid="226" v:groupcontext="shape" transform="translate(680.875,-123.977)">		<title>Sheet.226</title>		<desc>CLK_REQ1_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="73.75" cy="447.24" width="147.5" height="0"></v:textrect>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L147.5 447.24" class="st18"></path>		<rect v:rectcontext="textBkgnd" x="50.99" y="443.04" width="45.5199" height="8.39987" class="st19"></rect>		<text x="50.99" y="449.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK_REQ1_N</text>		</g>	<g id="shape227-625" v:mid="227" v:groupcontext="shape" transform="translate(680.375,-245.268)">		<title>Sheet.227</title>		<desc>CLK_REQ2_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="74" cy="442.508" width="148" height="9.46332"></v:textrect>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L135.62 447.24 L135.62 437.78 L148 437.78" class="st18"></path>		<rect v:rectcontext="textBkgnd" x="51.24" y="441.777" width="45.5199" height="8.39987" class="st19"></rect>		<text x="51.24" y="448.08" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK_REQ2_N</text>		</g>	<g id="shape228-632" v:mid="228" v:groupcontext="shape" transform="translate(776,-346.058)">		<title>Sheet.228</title>		<path d="M0 447.24 L0 393.3 L45.8 393.3 L46.16 393.3 L52.37 393.3" class="st16"></path>	</g>	<g id="shape229-637" v:mid="229" v:groupcontext="shape" transform="translate(680.375,-287.977)">		<title>Sheet.229</title>		<desc>CLK_REQ1_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="59.8125" cy="447.24" width="119.63" height="0"></v:textrect>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L119.62 447.24" class="st18"></path>		<rect v:rectcontext="textBkgnd" x="37.0525" y="443.04" width="45.5199" height="8.39987" class="st19"></rect>		<text x="37.05" y="449.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK_REQ1_N</text>		</g>	<g id="group230-644" transform="translate(800,-287.977)" v:mid="230" v:groupcontext="group">		<title>Sheet.230</title>		<g id="shape231-645" v:mid="231" v:groupcontext="shape">			<title>Sheet.231</title>			<path d="M28.37 425.22 L0 425.22 L0 447.24 L28.37 425.22 Z" class="st13"></path>		</g>		<g id="shape232-647" v:mid="232" v:groupcontext="shape">			<title>Sheet.232</title>			<path d="M28.37 425.22 L0 425.22 L0 447.24 L28.37 425.22 Z" class="st14"></path>			<path d="M28.37 425.22 L0 425.22 L0 447.24" class="st15"></path>		</g>	</g>	<g id="group233-650" transform="translate(784,-287.977)" v:mid="233" v:groupcontext="group">		<title>Sheet.233</title>		<g id="shape234-651" v:mid="234" v:groupcontext="shape">			<title>Sheet.234</title>			<path d="M44.37 355.22 L0 355.22 L0 447.24 L44.37 355.22 Z" class="st13"></path>		</g>		<g id="shape235-653" v:mid="235" v:groupcontext="shape">			<title>Sheet.235</title>			<path d="M44.37 355.22 L0 355.22 L0 447.24 L44.37 355.22 Z" class="st14"></path>			<path d="M44.37 355.22 L0 355.22 L0 447.24" class="st15"></path>		</g>	</g>	<g id="group236-656" transform="translate(808,-206.701)" v:mid="236" v:groupcontext="group">		<title>Sheet.236</title>		<g id="shape237-657" v:mid="237" v:groupcontext="shape">			<title>Sheet.237</title>			<path d="M20.37 264.57 L0 264.57 L0 447.24 L20.37 264.57 Z" class="st13"></path>		</g>		<g id="shape238-659" v:mid="238" v:groupcontext="shape">			<title>Sheet.238</title>			<path d="M20.37 264.57 L0 264.57 L0 447.24 L20.37 264.57 Z" class="st14"></path>			<path d="M20.37 264.57 L0 264.57 L0 447.24" class="st15"></path>		</g>	</g>	<g id="shape239-662" v:mid="239" v:groupcontext="shape" transform="translate(192.125,-340.12)">		<title>Square.29</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="438.24" width="9" height="9" class="st2"></rect>	</g>	<g id="group240-664" transform="translate(792,-206.701)" v:mid="240" v:groupcontext="group">		<title>Sheet.240</title>		<g id="shape241-665" v:mid="241" v:groupcontext="shape">			<title>Sheet.241</title>			<path d="M36.37 333.94 L0 333.94 L0 447.24 L36.37 333.94 Z" class="st13"></path>		</g>		<g id="shape242-667" v:mid="242" v:groupcontext="shape">			<title>Sheet.242</title>			<path d="M36.37 333.94 L0 333.94 L0 447.24 L36.37 333.94 Z" class="st14"></path>			<path d="M36.37 333.94 L0 333.94 L0 447.24" class="st15"></path>		</g>	</g>	<g id="shape243-670" v:mid="243" v:groupcontext="shape" transform="translate(727.625,-340)">		<title>Sheet.243</title>		<desc>RST1_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18.1875" cy="440.24" width="36.39" height="14"></v:textrect>		<rect x="0" y="433.24" width="36.375" height="14" class="st8"></rect>		<rect v:rectcontext="textBkgnd" x="4.76716" y="436.04" width="26.841" height="8.39987" class="st19"></rect>		<text x="4.77" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RST1_N</text>		</g>	<g id="shape244-674" v:mid="244" v:groupcontext="shape" transform="translate(739.625,-153.531)">		<title>Sheet.244</title>		<desc>RST1_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18.1875" cy="440.24" width="36.39" height="14"></v:textrect>		<rect x="0" y="433.24" width="36.375" height="14" class="st8"></rect>		<rect v:rectcontext="textBkgnd" x="4.76716" y="436.04" width="26.841" height="8.39987" class="st19"></rect>		<text x="4.77" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RST1_N</text>		</g>	<g id="shape245-678" v:mid="245" v:groupcontext="shape" transform="translate(741.625,-93.8345)">		<title>Sheet.245</title>		<desc>RST2_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18.1875" cy="440.24" width="36.39" height="14"></v:textrect>		<rect x="0" y="433.24" width="36.375" height="14" class="st8"></rect>		<rect v:rectcontext="textBkgnd" x="4.76716" y="436.04" width="26.841" height="8.39987" class="st19"></rect>		<text x="4.77" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RST2_N</text>		</g>	<g id="shape246-682" v:mid="246" v:groupcontext="shape" transform="translate(539.625,-143)">		<title>Sheet.246</title>		<desc>RST1_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18.1875" cy="440.24" width="36.39" height="14"></v:textrect>		<rect x="0" y="433.24" width="36.375" height="14" class="st8"></rect>		<rect v:rectcontext="textBkgnd" x="4.76716" y="436.04" width="26.841" height="8.39987" class="st19"></rect>		<text x="4.77" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RST1_N</text>		</g>	<g id="shape247-686" v:mid="247" v:groupcontext="shape" transform="translate(536.687,-126)">		<title>Sheet.247</title>		<desc>CLK_REQ_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="26.375" cy="440.24" width="52.76" height="14"></v:textrect>		<rect x="0" y="433.24" width="52.75" height="14" class="st8"></rect>		<rect v:rectcontext="textBkgnd" x="5.5615" y="436.04" width="41.6269" height="8.39987" class="st19"></rect>		<text x="5.56" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK_REQ_N</text>		</g>	<g id="shape248-690" v:mid="248" v:groupcontext="shape" transform="translate(149.427,170.02) rotate(-90)">		<title>Sheet.248</title>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L32.9 447.24" class="st18"></path>	</g>	<g id="shape249-695" v:mid="249" v:groupcontext="shape" transform="translate(594.381,-225.714)">		<title>Sheet.249</title>		<path d="M0 429.33 L0 435.54 L0 435.9 L0 447.24 L96 447.24 L96 384.98" class="st18"></path>	</g>	<g id="shape250-700" v:mid="250" v:groupcontext="shape" transform="translate(568,-220)">		<title>Sheet.250</title>		<path d="M0 423.62 L0 429.83 L0 430.19 L0 447.24 L136 447.24 L136 421.97" class="st18"></path>	</g>	<g id="shape251-705" v:mid="251" v:groupcontext="shape" transform="translate(592.476,-62.8573)">		<title>Sheet.251</title>		<path d="M0 426.48 L0 432.69 L0 433.05 L0 447.24 L96 447.24" class="st18"></path>	</g>	<g id="shape252-710" v:mid="252" v:groupcontext="shape" v:layermember="0" transform="translate(702.094,-93.8345)">		<title>And gate.70</title>		<desc>AND</desc>		<v:custprops>			<v:cp v:nameu="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langid="1033"></v:cp>			<v:cp v:nameu="Duration" v:lbl="Duration" v:type="2" v:langid="1033"></v:cp>			<v:cp v:nameu="Resources" v:lbl="Resources" v:langid="1033"></v:cp>		</v:custprops>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(2,2,2,2)"></v:textblock>		<v:textrect cx="9.14063" cy="439.928" width="18.3" height="14.625"></v:textrect>		<path d="M0 432.62 L0 447.24 L10.97 447.24 A7.31251 7.31251 -180 0 0 10.97 432.62 L0 432.62 Z" class="st2"></path>		<text x="2.7" y="442.03" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>AND</text>		</g>	<g id="group253-713" transform="translate(1136.19,323.263) rotate(90)" v:mid="253" v:groupcontext="group">		<title>Sheet.253</title>		<g id="shape254-714" v:mid="254" v:groupcontext="shape">			<title>Sheet.254</title>			<path d="M0 447.24 L61.12 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape255-716" v:mid="255" v:groupcontext="shape">			<title>Sheet.255</title>			<path d="M0 447.24 L61.12 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L61.12 447.24" class="st15"></path>		</g>	</g>	<g id="shape256-719" v:mid="256" v:groupcontext="shape" transform="translate(568,-54.2859)">		<title>Sheet.256</title>		<path d="M0 417.91 L0 424.12 L0 424.48 L0 447.24 L132 447.24 L132 421.66" class="st18"></path>	</g>	<g id="shape257-724" v:mid="257" v:groupcontext="shape" transform="translate(800,-214.952)">		<title>Sheet.257</title>		<path d="M28.38 447.24 L22.17 447.24 L21.81 447.24 L16.19 447.24 L0 447.24 L0 398.62" class="st18"></path>	</g>	<g id="group258-729" transform="translate(780.302,-190.745)" v:mid="258" v:groupcontext="group">		<title>Sheet.258</title>		<g id="shape259-730" v:mid="259" v:groupcontext="shape">			<title>Sheet.259</title>			<path d="M0 392.24 L0 447.24 L51.77 447.24 L0 392.24 Z" class="st13"></path>		</g>		<g id="shape260-732" v:mid="260" v:groupcontext="shape">			<title>Sheet.260</title>			<path d="M0 392.24 L0 447.24 L51.77 447.24 L0 392.24 Z" class="st14"></path>			<path d="M0 392.24 L0 447.24 L51.77 447.24" class="st15"></path>		</g>	</g>	<g id="shape261-735" v:mid="261" v:groupcontext="shape" transform="translate(828.375,-171.12)">		<title>Rectangle.61</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<rect x="0" y="392.24" width="79.625" height="55" class="st1"></rect>	</g>	<g id="shape262-737" v:mid="262" v:groupcontext="shape" transform="translate(828.375,-208.571)">		<title>Sheet.262</title>		<desc>GPIO-CC PASSTHRU</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.8125" cy="440.24" width="79.63" height="14"></v:textrect>		<rect x="0" y="433.24" width="79.625" height="14" class="st8"></rect>		<text x="4.81" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>GPIO-CC PASSTHRU</text>		</g>	<g id="shape263-740" v:mid="263" v:groupcontext="shape" transform="translate(828.375,-198.571)">		<title>Sheet.263</title>		<desc>GPIO-EE PASSTHRU</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.8125" cy="440.24" width="79.63" height="14"></v:textrect>		<rect x="0" y="433.24" width="79.625" height="14" class="st8"></rect>		<text x="5.2" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>GPIO-EE PASSTHRU</text>		</g>	<g id="shape264-743" v:mid="264" v:groupcontext="shape" transform="translate(828.375,-186.19)">		<title>Sheet.264</title>		<desc>GPIO-DD PASSTHRU</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40.4375" cy="440.24" width="80.9" height="14"></v:textrect>		<rect x="0" y="433.24" width="80.875" height="14" class="st8"></rect>		<text x="5.43" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>GPIO-DD PASSTHRU</text>		</g>	<g id="shape265-746" v:mid="265" v:groupcontext="shape" transform="translate(827.899,-174.93)">		<title>Sheet.265</title>		<desc>HS PASSTHRU</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.8125" cy="442.8" width="79.63" height="8.88"></v:textrect>		<rect x="0" y="438.36" width="79.625" height="8.88" class="st8"></rect>		<text x="11.36" y="445.2" class="st25" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>HS PASSTHRU</text>		</g>	<g id="shape266-749" v:mid="266" v:groupcontext="shape" transform="translate(192.742,549.86) rotate(180)">		<title>Sheet.266</title>		<path d="M0 447.24 L6.21 447.24 L6.57 447.24 L46.32 447.24" class="st18"></path>	</g>	<g id="shape267-754" v:mid="267" v:groupcontext="shape" transform="translate(143.375,-296)">		<title>Sheet.267</title>		<desc>CLK_REQ_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="26.375" cy="440.24" width="52.76" height="14"></v:textrect>		<rect x="0" y="433.24" width="52.75" height="14" class="st8"></rect>		<rect v:rectcontext="textBkgnd" x="5.5615" y="436.04" width="41.6269" height="8.39987" class="st19"></rect>		<text x="5.56" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CLK_REQ_N</text>		</g>	<g id="shape268-758" v:mid="268" v:groupcontext="shape" transform="translate(322,-299.352)">		<title>Sheet.268</title>		<desc>RST_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18.1875" cy="440.24" width="36.39" height="14"></v:textrect>		<rect x="0" y="433.24" width="36.375" height="14" class="st8"></rect>		<rect v:rectcontext="textBkgnd" x="6.71366" y="436.04" width="22.948" height="8.39987" class="st19"></rect>		<text x="6.71" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RST_N</text>		</g>	<g id="shape269-762" v:mid="269" v:groupcontext="shape" transform="translate(536.034,800.929) rotate(180)">		<title>Sheet.269</title>		<path d="M0 447.24 L11.59 447.24 L11.95 447.24 L18.16 447.24" class="st16"></path>	</g>	<g id="group270-767" transform="translate(787.615,213.62) rotate(90)" v:mid="270" v:groupcontext="group">		<title>Sheet.270</title>		<g id="shape271-768" v:mid="271" v:groupcontext="shape">			<title>Sheet.271</title>			<path d="M0 447.24 L25.34 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape272-770" v:mid="272" v:groupcontext="shape">			<title>Sheet.272</title>			<path d="M0 447.24 L25.34 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L25.34 447.24" class="st15"></path>		</g>	</g>	<g id="shape273-773" v:mid="273" v:groupcontext="shape" transform="translate(238.273,-33.0002)">		<title>Sheet.273</title>		<desc>WAKE_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="26.375" cy="440.24" width="52.76" height="14"></v:textrect>		<rect x="0" y="433.24" width="52.75" height="14" class="st8"></rect>		<rect v:rectcontext="textBkgnd" x="11.5941" y="436.04" width="29.5617" height="8.39987" class="st19"></rect>		<text x="11.59" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>WAKE_N</text>		</g>	<g id="shape274-777" v:mid="274" v:groupcontext="shape" transform="translate(659.25,-30.9526)">		<title>Sheet.274</title>		<desc>WAKE_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="26.375" cy="440.24" width="52.76" height="14"></v:textrect>		<rect x="0" y="433.24" width="52.75" height="14" class="st8"></rect>		<rect v:rectcontext="textBkgnd" x="11.5941" y="436.04" width="29.5617" height="8.39987" class="st19"></rect>		<text x="11.59" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>WAKE_N</text>		</g>	<g id="shape275-781" v:mid="275" v:groupcontext="shape" transform="translate(531.494,-376.052)">		<title>Circle</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape276-783" v:mid="276" v:groupcontext="shape" transform="translate(338.375,-204.283)">		<title>Circle.289</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape277-785" v:mid="277" v:groupcontext="shape" transform="translate(304.476,-304.571)">		<title>Circle.290</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape278-787" v:mid="278" v:groupcontext="shape" transform="translate(182,-326)">		<title>Circle.291</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape279-789" v:mid="279" v:groupcontext="shape" transform="translate(582.476,-145.524)">		<title>Circle.292</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape280-791" v:mid="280" v:groupcontext="shape" transform="translate(590,-131.714)">		<title>Circle.293</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape281-793" v:mid="281" v:groupcontext="shape" transform="translate(531.518,-157.715)">		<title>Circle.294</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape282-795" v:mid="282" v:groupcontext="shape" transform="translate(698,-78.0002)">		<title>Circle.295</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="group283-797" transform="translate(680.875,-140.852)" v:mid="283" v:groupcontext="group">		<title>Sheet.283</title>		<g id="shape284-798" v:mid="284" v:groupcontext="shape">			<title>Sheet.284</title>			<path d="M0 447.24 L5.79 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape285-800" v:mid="285" v:groupcontext="shape">			<title>Sheet.285</title>			<path d="M0 447.24 L5.79 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L5.79 447.24" class="st15"></path>		</g>	</g>	<g id="group286-803" transform="translate(239.427,306.388) rotate(-90)" v:mid="286" v:groupcontext="group">		<title>Sheet.286</title>		<g id="shape287-804" v:mid="287" v:groupcontext="shape">			<title>Sheet.287</title>			<path d="M0 447.24 L16.29 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape288-806" v:mid="288" v:groupcontext="shape">			<title>Sheet.288</title>			<path d="M0 447.24 L16.29 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L16.29 447.24" class="st15"></path>		</g>	</g>	<g id="group289-809" transform="translate(703.631,737.291) rotate(179.839)" v:mid="289" v:groupcontext="group">		<title>Sheet.289</title>		<g id="shape290-810" v:mid="290" v:groupcontext="shape">			<title>Sheet.290</title>			<path d="M0 447.24 L15.71 447.24 L0 447.24 Z" class="st13"></path>		</g>		<g id="shape291-812" v:mid="291" v:groupcontext="shape">			<title>Sheet.291</title>			<path d="M0 447.24 L15.71 447.24 L0 447.24 Z" class="st14"></path>			<path d="M0 447.24 L15.71 447.24" class="st15"></path>		</g>	</g>	<g id="shape292-815" v:mid="292" v:groupcontext="shape" transform="translate(690.476,-162.857)">		<title>Circle.300</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape293-817" v:mid="293" v:groupcontext="shape" transform="translate(790,-205.524)">		<title>Circle.302</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape294-819" v:mid="294" v:groupcontext="shape" transform="translate(806,-205.048)">		<title>Circle.303</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape295-821" v:mid="295" v:groupcontext="shape" transform="translate(798,-261.429)">		<title>Circle.304</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape296-823" v:mid="296" v:groupcontext="shape" transform="translate(782,-286.19)">		<title>Circle.305</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape297-825" v:mid="297" v:groupcontext="shape" transform="translate(774.667,-344.571)">		<title>Circle.306</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape298-827" v:mid="298" v:groupcontext="shape" transform="translate(804,-55.0478)">		<title>Circle.307</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape299-829" v:mid="299" v:groupcontext="shape" transform="translate(595.048,-307.143)">		<title>Circle.308</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape300-831" v:mid="300" v:groupcontext="shape" transform="translate(599.048,-322.286)">		<title>Circle.309</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape301-833" v:mid="301" v:groupcontext="shape" transform="translate(702,-241.714)">		<title>Circle.310</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape302-835" v:mid="302" v:groupcontext="shape" transform="translate(688,-285.619)">		<title>Circle.311</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 445.24 A2 2 0 0 1 4 445.24 A2 2 0 0 1 0 445.24 Z" class="st26"></path>	</g>	<g id="shape303-837" v:mid="303" v:groupcontext="shape" transform="translate(144,-321)">		<title>Sheet.303</title>		<desc>RST_N</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18.1875" cy="440.24" width="36.39" height="14"></v:textrect>		<rect x="0" y="433.24" width="36.375" height="14" class="st8"></rect>		<rect v:rectcontext="textBkgnd" x="6.71366" y="436.04" width="22.948" height="8.39987" class="st19"></rect>		<text x="6.71" y="442.34" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RST_N</text>		</g>	<g id="shape304-841" v:mid="304" v:groupcontext="shape" transform="translate(100,-154)">		<title>Sheet.304</title>		<desc>LGA pattern</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="37" cy="349.24" width="74.01" height="196" transform="rotate(-90)"></v:textrect>		<rect x="0" y="251.24" width="74" height="196" class="st8"></rect>		<text x="-374.91" y="40.95" transform="rotate(-90)" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>LGA <tspan class="st12">模式</tspan></text>		</g>	<g id="shape305-845" v:mid="305" v:groupcontext="shape" transform="translate(333.281,-160)">		<title>Sheet.305</title>		<desc>500 pin connector</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.8594" cy="349.24" width="107.72" height="196" transform="rotate(-90)"></v:textrect>		<rect x="0" y="251.24" width="107.719" height="196" class="st8"></rect>		<text x="-384.92" y="57.76" transform="rotate(-90)" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>500 <tspan class="st12">引脚接口</tspan></text>		</g>	<g id="shape306-849" v:mid="306" v:groupcontext="shape" transform="translate(455.604,-164)">		<title>Sheet.306</title>		<desc>HS/LS connectors</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="53.8594" cy="349.24" width="107.72" height="196" transform="rotate(-90)"></v:textrect>		<rect x="0" y="251.24" width="107.719" height="196" class="st8"></rect>		<text x="-380.25" y="57.76" transform="rotate(-90)" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>HS/LS <tspan class="st12">接口</tspan></text>		</g></g>
</svg>

要启动所有端点的链路训练和枚举，请执行以下操作：
1. 要复位 QPS615 switch，请切换 QPS615 #1 和 QPS615 #2 的 RESX GPIO。
2. 要控制端点复位，请触发 PERST。两台 switch 共享 PERST。

这些设备可以直接连接到 QPS615 switch。PCIe RC0 连接到 WLAN 端点。以下差异是由于 PCIe 节点层次结构造成的。
- Switch 连接设备：
    - QPS615 PCIe 树节点层次结构是静态固定的。
    - 所有用于切换 USP 和 DSP 端口的节点均在 PCIe 初始化期间创建。
    - Switch DSP 端口之一代表 WLAN。
    - 如果禁用 WLAN 节点，则会禁用 WLAN 设备，但 PCIe 下游端口保持启用状态并返回默认的最大链路宽度。
- 直连 WLAN 设备：
    - 仅禁用单个节点。
    - 当 WLAN 禁用时，返回 <samp class="ph systemoutput">Invalid</samp> 参数。

## 启用 NVMe over PCIe

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

本节介绍可如何启用 NVMe over PCIe 进行存储扩展。要验证 NVMe 是否通过 PCIe 接口连接，请执行以下操作：

1. 要显示 PCIe 设备信息，请运行以下命令。

        lspciCopy to clipboard

输出：

        0000:00:00.0 PCI bridge: Qualcomm Device 01150000:01:00.0 Network controller: Qualcomm QCNFA765 Wireless Network Adapter (rev 01)0001:00:00.0 PCI bridge: Qualcomm Device 01150001:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PROCopy to clipboard
2. 找到 PCIe 日志。

        dmesg | grep pcieCopy to clipboard

输出：

        [    0.000000] Kernel command line:  root=/dev/disk/by-partlabel/system rw rootwait console=ttyMSM0,115200n8 
        pcie_pme=nomsi net.ifnames=0 pci=noaer kpti=off kasan=off kasan.stacktrace=off swiotlb=128 earlycon reboot=panic_warm page_owner=on qcom_scm.download_mode=1 slub_debug=FZP,
        zs_handle,zspage;FZPU mitigations=auto kernel.sched_pelt_multiplier=4 rcupdate.rcu_expedited=1 rcu_nocbs=0-7 no-steal-acc vfio_iommu_type1.allow_unsafe_interrupts=1 fw_devlink.strict=1[    3.842071] qcom-pcie 1c00000.pci: supply vdda not found, using dummy regulator[    3.845339] qcom-pcie 1c10000.pci: supply vdda not found, using dummy regulator[    3.845428] qcom-pcie 1c10000.pci: supply vddpe-3v3 not found, using dummy regulator[    3.845508] qcom-pcie 1c10000.pci: host bridge /pci@1c10000 ranges:[    3.845519] qcom-pcie 1c10000.pci:       IO 0x0060200000..0x00602fffff -> 0x0000000000[    3.845526] qcom-pcie 1c10000.pci:      MEM 0x0060300000..0x007fffffff -> 0x0060300000[    3.848154] qcom-pcie 1c00000.pci: supply vddpe-3v3 not found, using dummy regulator[    3.854556] qcom-pcie 1c00000.pci: host bridge /pci@1c00000 ranges:[    3.860574] qcom-pcie 1c00000.pci:       IO 0x0040200000..0x00402fffff -> 0x0000000000[    3.867362] qcom-pcie 1c00000.pci:      MEM 0x0040300000..0x005fffffff -> 0x0040300000[    3.963275] qcom-pcie 1c10000.pci: iATU: unroll T, 32 ob, 8 ib, align 4K, limit 1024G[    3.990385] qcom-pcie 1c00000.pci: iATU: unroll T, 32 ob, 8 ib, align 4K, limit 1024G[    4.072091] qcom-pcie 1c10000.pci: PCIe Gen.4 x2 link up[    4.080241] qcom-pcie 1c10000.pci: PCI host bridge to bus 0001:00[    4.291824] pcieport 0001:00:00.0: Adding to iommu group 9[    4.551677] pcieport 0001:00:00.0: PME: Signaling with IRQ 256[    4.572484] WARNING: CPU: 3 PID: 89 at drivers/pci/controller/dwc/pcie-qcom.c:1430 qcom_pcie_icc_update+0xf8/0x144[    4.595291] pc : qcom_pcie_icc_update+0xf8/0x144[    4.595293] lr : qcom_pcie_icc_update+0x9c/0x144[    4.640742]  qcom_pcie_icc_update+0xf8/0x144[    4.640745]  qcom_pcie_probe+0x234/0x30c[    4.988519] qcom-pcie 1c00000.pci: Phy link never came up[    5.302179] qcom-pcie 1c00000.pci: PCI host bridge to bus 0000:00[    5.372008] pcieport 0000:00:00.0: Adding to iommu group 10[    5.378905] pcieport 0000:00:00.0: PME: Signaling with IRQ 257[   11.564590] pcieport 0000:00:00.0: BAR 14: assigned [mem 0x40400000-0x405fffff]Copy to clipboard
3. 要找到 NVMe 目录，请运行以下命令。

        ls -lh /dev/nvme*Copy to clipboard

输出：

        crw-------. 1 root root 508,  0 Jan  1 00:00 /dev/nvme0brw-rw----. 1 root disk 259, 30 Jan  1 00:00 /dev/nvme0n1Copy to clipboard

## PCIe 客户端驱动程序示例

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

客户端驱动程序定义 `device-id` 表和 `pci_driver` 结构体，并注册到 PCIe
            框架。以下是一些 PCIe 客户端驱动程序示例，供参考。

- 用于保存特定于客户端的私有数据的示例数据结构。

        struct sample_driver_data {
            int driver_data;
        };Copy to clipboard
- 示例驱动程序：用户可以根据驱动程序特定的数据结构提供数据。

        struct sample_driver_data info = {};Copy to clipboard
- 包含驱动程序特定数据的示例设备 ID 表。客户端驱动程序使用 `0x306` 设备 ID
                    进行注册。

        static const struct pci_device_id sample_pci_id_table[] = {
            { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, PCI_VENDOR_ID_QCOM, 0x010c),
                .driver_data = (kernel_ulong_t) &info },
            {  } 
        };
        MODULE_DEVICE_TABLE(pci, sample_pci_id_table);Copy to clipboard

Note: `MODULE_DEVICE_TABLE(pci,
                        sample_pci_id_table);` 为必填项。
- 包含客户端驱动程序名称、 `pci-id` 表和回调的示例 `pci_driver` 数据结构。向 PCI
                框架注册时会传递指向该结构的指针。

        static struct pci_driver sample_pci_driver = {
              .name           = "Sample-PCI-Client-driver",        /* Give the name that suites your driver description */
              .id_table       = sample_pci_id_table,               /* pci core driver will compare from ids's supplied in this table with the enumerated endpoints */
              .probe          = sample_pci_probe,                  /* probe function is invoked by the PCI f/w when id matches with the endpoint id's */
              .remove         = sample_pci_remove,                 /* Remove function is invoked by PCI f/w when senses the attached endpoint/function is detached or down */
              .driver.pm      = &sample_pci_pm_ops                 /* pm ops that will be called from the pci core driver*/
        };Copy to clipboard
- 要注册 PCI 固件，请从 `module_init()` 中调用
                    `pci_register_driver(&sample_pci_driver)`。

        module_pci_driver(sample_pci_driver);Copy to clipboard

## PCIe 调通

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

有关 PCIe 调通的信息，请参阅 [PCIe 相关配置](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html#pcie-software-support-feature-for-qps615__section_xbl_hhd_l1c)和 [QPS615 switch 支持](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html#pcie-software-support-feature-for-qps615__section_nmw_5jd_l1c)。

## PCIe 功耗优化

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

PCIe 定义了两种功耗管理方法。
- 功耗管理软件，用于确定每个设备的功耗管理功能并分别对各个设备进行管理
- 不需要软件干预的系统，例如主动状态功耗管理 (ASPM)

当链路上未传输任何数据包时，设备会将链路置于节能状态。

### PCIe L0 链路状态

PCIe 功耗管理定义了以下 L0 链路状态：
- L0：活动状态，在该状态下启用所有 PCIe 事务和其他操作
- L0s：具有低恢复延迟的 ASPM 状态（节能待机状态）

### PCIe 设备状态

PCIe 功耗管理定义了以下设备状态：

- D0（必选）：设备处于完全 ON 状态，此时存在两个子状态
    - D0<sub class="ph sub">uninitialized</sub>：当设备退出复位状态后等待枚举和配置时，该功能处于 D0<sub class="ph sub">uninitialized</sub> 状态。
    - D0<sub class="ph sub">active</sub>
        - 当完成枚举和配置过程后，该功能处于 D0<sub class="ph sub">active</sub> 状态。
        - 当系统软件启用一个或多个（任意组合）功能参数（如内存空间启用、I/O 空间启用或 BME 位）时，该功能将进入 D0<sub class="ph sub">active</sub> 状态。
- D1（可选）：轻度休眠状态
    - 除了 PME 消息之外，该功能无法发起 TLP
    - 除了配置事务之外，该功能不能充当其他事务的目标对象。
    - 该功能通过发出设定 PM 控制和状态寄存器的软件命令来进入 D1 状态。
- D2（可选）：深度休眠状态
    - 除了 PME 消息之外，该功能无法发起 TLP
    - 除了配置事务之外，该功能不能充当其他事务的目标对象。
    - 该功能通过发出设定 PM 控制和状态寄存器的软件命令来进入 D2 状态。
- D3（必选）：设备处于最低功耗状态，此时该功能必须支持两种 D3 状态
- D3<sub class="ph sub">hot</sub>
    - 除了 PME 消息之外，该功能无法发起 TLP。
    - 除了配置事务之外，该功能不能充当其他事务的目标对象。
    - 该功能通过设定功耗状态位域发出软件命令来进入 D3<sub class="ph sub">hot</sub> 状态。
- D3<sub class="ph sub">cold</sub>：设备进入 D3<sub class="ph sub">cold</sub> 状态并断电；当恢复供电时，设备进入 D0<sub class="ph sub">uninitialized</sub> 状态。

## PCIe 验证

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

有关 PCIe 验证的信息，请参阅 [PCIe 相关配置](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html#pcie-software-support-feature-for-qps615__section_xbl_hhd_l1c)和 [QPS615 switch 支持](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html#pcie-software-support-feature-for-qps615__section_nmw_5jd_l1c)。

## 调试 PCIe 问题

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

`lspci` 和 `setpci` 命令为 Linux
            发行版的本机命令。这两条命令提供多种级别的输出，并且还可用于在某个时间点查看 PCI 总线上训练的不同组件的功能和状态。这些功能大多反映的是 PCIe
            基本规范所需的配置空间寄存器。更多详细信息，可访问 [https://pcisig.com/specifications](https://pcisig.com/specifications)。如需查看使用说明，可运行以下命令。

    lspci --helpCopy to clipboard

以下功能有助于解决 PCIe 问题。
- 显示设备信息

        lspciCopy to clipboard

随即显示以下消息。

        0001:00:00.0 PCI bridge: Qualcomm Device 010b
        0001:01:00.0 PCI bridge: Toshiba Corporation Device 0623
        0001:02:01.0 PCI bridge: Toshiba Corporation Device 0623
        0001:02:02.0 PCI bridge: Toshiba Corporation Device 0623
        0001:02:03.0 PCI bridge: Toshiba Corporation Device 0623
        0001:04:00.0 USB controller: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller (rev 03)
        0001:05:00.0 Ethernet controller: Toshiba Corporation Device 0220
        0001:05:00.1 Ethernet controller: Toshiba Corporation Device 0220Copy to clipboard
- 显示设备控制寄存器中的 PCIe 设备和厂商 ID。

        lspci -nvmmCopy to clipboard

随即显示以下消息。

        Slot:   0001:00:00.0
        Class:  0604
        Vendor: 17cb
        Device: 010b
        DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0
        IOMMUGroup:     33
         
        Slot:   0001:01:00.0
        Class:  0604
        Vendor: 1179
        Device: 0623
        DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0
        IOMMUGroup:     33
         
        Slot:   0001:02:01.0
        Class:  0604
        Vendor: 1179
        Device: 0623
        DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev1_fn0
        IOMMUGroup:     33
         
        Slot:   0001:02:02.0
        Class:  0604
        Vendor: 1179
        Device: 0623
        DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev2_fn0
        IOMMUGroup:     33
         
        Slot:   0001:02:03.0
        Class:  0604
        Vendor: 1179
        Device: 0623
        DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev3_fn0
        IOMMUGroup:     33
         
        Slot:   0001:04:00.0
        Class:  0c03
        Vendor: 1912
        Device: 0014
        Rev:    03
        ProgIf: 30
        DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev2_fn0/pcie1_bus4_dev0_fn0
        IOMMUGroup:     33
         
        Slot:   0001:05:00.0
        Class:  0200
        Vendor: 1179
        Device: 0220
        SVendor:        1179
        SDevice:        0001
        DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev3_fn0/qps615_eth0,qps615_eth0@pcie1_rp
        IOMMUGroup:     33
         
        Slot:   0001:05:00.1
        Class:  0200
        Vendor: 1179
        Device: 0220
        SVendor:        1179
        SDevice:        0001
        DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev3_fn0/qps615_eth1,qps615_eth1@pcie1_rp
        IOMMUGroup:     33Copy to clipboard

有关 PCIe 调试的更多信息，可访问 [https://www.kernel.org/doc/html/v4.17/driver-api/pci.html](https://www.kernel.org/doc/html/v4.17/driver-api/pci.html)。

## PCIe 示例

Source: [https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html](https://docs.qualcomm.com/doc/80-70022-8SC/topic/pcie.html)

有关上游设备树参考的信息，请参阅以下文件。
- QCS6490 和 QCS5430：[https://git.linaro.org/kernel-org/linux-next.git/tree/arch/arm64/boot/dts/qcom/sc7280.dtsi](https://git.linaro.org/kernel-org/linux-next.git/tree/arch/arm64/boot/dts/qcom/sc7280.dtsi)
- Dragonwing IQ-9075: [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/sa8775p.dtsi](https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/sa8775p.dtsi)
- Dragonwing IQ-615: [https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/tree/arch/arm64/boot/dts/qcom/qcs615.dtsi?h=arm64-for-6.16](https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/tree/arch/arm64/boot/dts/qcom/qcs615.dtsi?h=arm64-for-6.16)
- [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/controller/dwc/pcie-qcom.c?h=v6.8-rc6#n1634](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/controller/dwc/pcie-qcom.c?h=v6.8-rc6#n1634)

有关 Qualcomm Linux 硬件 SoC 的设备树节点的信息，请参阅以下 DTSI 文件。
- QCS6490 和 QCS5430：[https://git.linaro.org/kernel-org/linux-next.git/tree/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts](https://git.linaro.org/kernel-org/linux-next.git/tree/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts)
- Dragonwing IQ-9075: [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/sa8775p.dtsi](https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/sa8775p.dtsi)
- Dragonwing IQ-615: [https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/tree/arch/arm64/boot/dts/qcom/qcs615.dtsi?h=arm64-for-6.16](https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/tree/arch/arm64/boot/dts/qcom/qcs615.dtsi?h=arm64-for-6.16)

### 客户端和 PCI 驱动程序操作流程示例

下图显示了 PCIe 客户端驱动程序为客户端配置 PCIe 驱动程序的步骤。
![](data:image/png;base64,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)

### 客户端和 PCI 驱动程序高层调用流程示例

下图显示了 PCIe 客户端驱动程序与 PCIe 驱动程序之间的高层调用流程和调用详细信息。
![](data:image/png;base64,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)

Last Published: Nov 05, 2025

[Previous Topic
I3C](https://docs.qualcomm.com/bundle/publicresource/80-70022-8SC/topics/i3c.md) [Next Topic
USB](https://docs.qualcomm.com/bundle/publicresource/80-70022-8SC/topics/usb.md)