# Getting started

Source: [https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html)

Before you begin, set up your infrastructure as described in the [Qualcomm Linux Build Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/introduction.html).

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export getting-started.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="11.5994in" height="2.51421in" viewbox="0 0 835.156 181.023" xml:space="preserve" color-interpolation-filters="sRGB" class="st9"><v:documentproperties v:langid="1033" v:metric="true" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-1 .st1 { fill: #3253dc; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: #ffffff; font-family: Arial; font-size: 1.00001em }
.svg-1 .st3 { fill: #ffffff; fill-opacity: 0.95; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st4 { fill: #002eb5; font-family: Symbol; font-size: 1.10001em }
.svg-1 .st5 { font-size: 1em }
.svg-1 .st6 { font-family: Arial; font-size: 0.833333em }
.svg-1 .st7 { fill: #39a3b5; stroke: #39a3b5; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st8 { fill: #3253dc; stroke: #3253dc; stroke-linecap: butt; stroke-width: 1 }
.svg-1 .st9 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="0.0393701" v:pagescale="0.0393701" v:drawingunits="24" v:shadowoffsetx="8.50394" v:shadowoffsety="-8.50394"></v:pageproperties>	<g id="group34-1" transform="translate(18.375,-18.5)" v:mid="34" v:groupcontext="group">		<title>Sheet.34</title>		<g id="shape19-2" v:mid="19" v:groupcontext="shape" transform="translate(7.99361E-14,-53.4612)">			<title>Sheet.19</title>			<desc>Identify interface status</desc>			<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197" v:verticalalign="0"></v:textblock>			<v:textrect cx="110.755" cy="136.042" width="221.52" height="89.9622"></v:textrect>			<rect x="0" y="91.0607" width="221.511" height="89.9622" rx="5.66929" ry="5.66929" class="st1"></rect>			<text x="49.06" y="111.86" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist><v:newlinechar></v:newlinechar>Identify interface status</text>			</g>		<g id="shape20-5" v:mid="20" v:groupcontext="shape" transform="translate(19.8052,-9.84646)">			<title>Rectangle.20</title>			<desc>Obtain bootup logs List enabled devices</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:verticalalign="0"></v:textblock>			<v:textrect cx="110.755" cy="133.189" width="221.52" height="95.6683"></v:textrect>			<rect x="0" y="85.3545" width="221.511" height="95.6683" rx="8.50394" ry="8.50394" class="st3"></rect>			<text x="4" y="101.23" class="st4" v:langid="1033"><v:paragraph v:indentfirst="-18" v:indentleft="18" v:spafter="3" v:bullet="1" v:bulletsize="-1.2" v:bulletspace="5.66929"></v:paragraph><v:tablist></v:tablist><tspan class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">Obtain bootup logs<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.427em" class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">List enabled devices</tspan></text>			</g>		<g id="shape22-14" v:mid="22" v:groupcontext="shape" transform="translate(277.525,-53.3092)">			<title>Sheet.22</title>			<desc>Enable required interface</desc>			<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197" v:verticalalign="0"></v:textblock>			<v:textrect cx="110.755" cy="136.042" width="221.52" height="89.9622"></v:textrect>			<rect x="0" y="91.0607" width="221.511" height="89.9622" rx="5.66929" ry="5.66929" class="st1"></rect>			<text x="43.71" y="111.86" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist><v:newlinechar></v:newlinechar>Enable required interface</text>			</g>		<g id="shape23-17" v:mid="23" v:groupcontext="shape" transform="translate(295.348,-9.84646)">			<title>Rectangle.23</title>			<desc>UART software SPI software I2C software PCIe software USB sof...</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:verticalalign="0"></v:textblock>			<v:textrect cx="110.755" cy="132.762" width="221.52" height="96.5215"></v:textrect>			<rect x="0" y="84.5013" width="221.511" height="96.5215" rx="8.50394" ry="8.50394" class="st3"></rect>			<text x="4" y="100.38" class="st4" v:langid="1033"><v:paragraph v:indentfirst="-18" v:indentleft="18" v:spafter="3" v:bullet="1" v:bulletsize="-1.2" v:bulletspace="5.66929"></v:paragraph><v:tablist></v:tablist><tspan class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">UART software<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.427em" class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">SPI software<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.427em" class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">I2C software<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.427em" class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">PCIe software<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.427em" class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">USB software</tspan></text>			</g>		<g id="shape24-35" v:mid="24" v:groupcontext="shape" transform="translate(556.523,-53.806)">			<title>Sheet.24</title>			<rect x="0" y="91.0607" width="221.511" height="89.9622" rx="5.66929" ry="5.66929" class="st7"></rect>		</g>		<g id="shape25-37" v:mid="25" v:groupcontext="shape" transform="translate(556.022,-54.1856)">			<title>Sheet.25</title>			<desc>Verify interface status</desc>			<v:textblock v:margins="rect(4,4,4,4)" v:tabspace="42.5197" v:verticalalign="0"></v:textblock>			<v:textrect cx="110.755" cy="136.042" width="221.52" height="89.9622"></v:textrect>			<rect x="0" y="91.0607" width="221.511" height="89.9622" rx="5.66929" ry="5.66929" class="st1"></rect>			<text x="53.06" y="111.86" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist><v:newlinechar></v:newlinechar>Verify interface status</text>			</g>		<g id="shape26-40" v:mid="26" v:groupcontext="shape" transform="translate(576.77,-9.84646)">			<title>Rectangle.26</title>			<desc>UART verification SPI verification I2C verification PCIe veri...</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:verticalalign="0"></v:textblock>			<v:textrect cx="110.755" cy="132.762" width="221.52" height="96.5215"></v:textrect>			<rect x="0" y="84.5013" width="221.511" height="96.5215" rx="8.50394" ry="8.50394" class="st3"></rect>			<text x="4" y="100.38" class="st4" v:langid="1033"><v:paragraph v:indentfirst="-17.01" v:indentleft="17.01" v:spafter="3" v:bullet="1" v:bulletsize="-1.2" v:bulletspace="5.66929"></v:paragraph><v:tablist></v:tablist><tspan class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">UART verification<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.427em" class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">SPI verification<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.427em" class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">I2C verification<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.427em" class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">PCIe verification<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.427em" class="st5" v:isbullet="true">·</tspan><tspan class="st6"> </tspan><tspan class="st6">USB verification</tspan></text>			</g>		<g id="group29-58" transform="translate(223.967,-105.378)" v:mid="29" v:groupcontext="group">			<title>Sheet.29</title>			<g id="shape30-59" v:mid="30" v:groupcontext="shape">				<title>Sheet.30</title>				<path d="M1.64 173.21 L42.62 173.21 L37.75 178.09 C37.11 178.72 37.11 179.75 37.75 180.39 C38.38 181.02 39.41							 181.02 40.05 180.39 L47.72 172.72 C48.35 172.11 48.38 171.11 47.77 170.47 C47.75 170.45 47.73 170.43							 47.72 170.41 L40.05 162.75 C39.44 162.11 38.43 162.09 37.8 162.69 C37.78 162.71 37.76 162.73 37.74							 162.75 C37.11 163.35 37.08 164.36 37.69 164.99 C37.71 165.01 37.73 165.03 37.74 165.05 L42.62 169.93							 L1.64 169.93 C0.74 169.93 0 170.66 0 171.57 C0 172.48 0.74 173.22 1.64 173.22 L1.64 173.21 Z" class="st8"></path>			</g>		</g>		<g id="group32-61" transform="translate(501.492,-105.548)" v:mid="32" v:groupcontext="group">			<title>Sheet.32</title>			<g id="shape33-62" v:mid="33" v:groupcontext="shape">				<title>Sheet.33</title>				<path d="M1.64 173.21 L42.62 173.21 L37.75 178.09 C37.11 178.72 37.11 179.75 37.75 180.39 C38.38 181.02 39.41							 181.02 40.05 180.39 L47.72 172.72 C48.35 172.11 48.38 171.11 47.77 170.47 C47.75 170.45 47.73 170.43							 47.72 170.41 L40.05 162.75 C39.44 162.11 38.43 162.09 37.8 162.69 C37.78 162.71 37.76 162.73 37.74							 162.75 C37.11 163.35 37.08 164.36 37.69 164.99 C37.71 165.01 37.73 165.03 37.74 165.05 L42.62 169.93							 L1.64 169.93 C0.74 169.93 0 170.66 0 171.57 C0 172.48 0.74 173.22 1.64 173.22 L1.64 173.21 Z" class="st8"></path>			</g>		</g>	</g></g>
</svg>

## Identify interface status

Source: [https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html)

The default interface status indicates the status of the interfaces during bootup. To
            identify the interface status, you must ensure that the interfaces are registered
            successfully and obtain the list of enabled interfaces.

### Obtain the bootup logs

Source: [https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html)

### About this task

To obtain the bootup logs of the device, do the following:

### Procedure

1. Open the SSH shell in permissive mode. For more information on how to run SSH,
                    see the [Use SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/how_to.html#use-ssh) section.
2. Obtain the logs of the enabled interfaces by running the following
                    command.
                
dmesgCopy to clipboard

The following output is displayed.

        [    0.434365] msm_serial: driver initialized
        [    0.799123] 994000.serial: ttyMSM0 at MMIO 0x994000 (irq = 139, base_baud = 0) is a MSM
        [    0.801937] 99c000.serial: ttyHS1 at MMIO 0x99c000 (irq = 140, base_baud = 0) is a MSM
        [    0.804563] serial serial0: tty port ttyHS1 registered
         
        [ 0.720945] usbhub_rest_vreg GPIO handle specifies active low - ignored
        [    0.815241] dwc3-qcom 8c00000.usb: Adding to iommu group 4
        [    5.195974] dwc3-qcom a600000.usb: Adding to iommu group 18
        [    5.229464] qcom_pmic_glink pmic-glink: Failed to create device link (0x180) with a600000.usb
        [    6.195825] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
        [    6.450338] usb 1-1: new high-speed USB device number 2 using xhci_hcd
        [    6.664583] usbcore: registered new device driver onboard-usb-hub
        [    6.730998] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd
        [    7.083668] usb 2-1.1: new SuperSpeed USB device number 3 using xhci_hcd
        [    7.217287] 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, 02:fe:ee:05:44:23
        [    7.217415] usbcore: registered new interface driver ax88179_178a
        [   10.223140] dwc3-qcom a600000.usb: request 0000000000000000 was not queued to ep0ouCopy to clipboard
3. Connect the UART serial port to log in to the console.
                
![](data:image/png;base64,UklGRuYzAABXRUJQVlA4INozAACQYAGdASqiAcUBPwFysVCrJz6qqlRcM9AgCWRu8YWy7Uuotf/pdquTj7n+X9Oq6/7n/B8kpwn/g8/h7T/s+sb9YewZ0EPOH5r/my79J6EHTR45VMzg4dVb0DzR9ztBw3DyU93/6/d3F0Ln/z4GH/qMYmlBAGW/vZmtKSRqgAoVhC3rNUZbkQhKli/kp0Ghiik8b5aU26hmV2R0rvVlqMzuEvvczzloCNc7zl25vtQBbzQUTXaHdn0zS/NfzzbJufgPoHg5es6f7uxJ/pkVU6M+04G7Q9uTky1qeIw9fV09EUw4v9J7FOsyZP6UdNbz5LpvRPkjL+bAu1kopttLZ5phqKlNo4wemBRlXAXv1P+dMdS5AZoBCjSVSHQsewFmgTl177Tkv13ZlxtvvwDfQUhSPq/x4mXwEO0RXOSskKklS3F+na63Db/ykn+vQEhL8IqN7UL7YvCrt5xtMdjKZHv1RkXDDhmdzb+oueT560cttrZMLtlcJEKmDpJPZbLkdUBaXw5o61mNi07qLhi4spQxBD6M1w85GzUxv7ptwKEB8UBt4HzFuGQVjjLPn6DJ6yxQY8FHFOOrw4F+e3CjDlfDh+5KmW7jGD2BICslPOeWO5LdI0DHVWtMk2P7U6B8k57er7lPr0+hlP3q1qU0XLMM2PdCu7/aXwMz8tdGKHo+Q2iz5iLLJHeHuNsvAWPGXDbu+IQKmSxwvkfOh0kNY/lgNn8xHpq2eeurhaUQKxWMRS2yM3IXKMn5SiPSl4bmtU96RdVpZSbQfEDHj9WGaXCOD5Dz8kMLvUv/S/xI9dHCtBDWx/Gog7jxQym62f16KWtF6ypBe0/zQknzWE2OPfxkw0BGzCnRrYH/2FZ2sYEw3PB+ajfUq8PKSZ1VOfZx/AG30fr8YGiIa7S6b2jaKQA39F0pDiMzAafHbL3lzPgXjDsuwQEg1q3EQD689/E9EbvjRV2YLTgdRw36VssfgX9hl7vgWy9HYEG65Rj4dxdY6GFla5uNqIWHEJejZQAdbZHpi86Bwlael9H5yq94dEWK698JwnuWJLw1tzv41NahCvXli6JOoUViWS8WJXDHSwWNK757VcixbOgh/GCdo+W1J5ES+f8n80PuPiMPCug5z6w0p968xJqZkyKy7pghd/v8qnE+pO3fmoG4szGQ33c8ctFDoY7Igof7w8Kc/DaWcLxzkr1C6O5HDJ+kDBk1oUggdb6l9Vtj4zJ20P+7PK5AWFBoXIFxhjzu/3FZzio5BAiG1mXX0tLK1OcbEhAMMpOeiXymp/0QidmPP0p/lhd6T9NUT5upqdeA8KNh7tjrPkFgt6LD0T69Q6kDpP7yZJYM75OQrh9RUL8yE3QjbII47ioIW6H9FGFrALR3he5NIvVkYsek7+oGTwFqPNlZIJMWLaz2mSe5cPVWCfN8O/kbdxDHP8IN/58zTGzPU8AGqzHHMtjHraHwdWdAbQ9zWgmlXuZHCLzV50HQ22WUpOww/mO6wXCDnILn0ewbZ86e8NtyyT2JJvfOc5LVLp03NSRgBMwAyWj4jiRuNkw1yPwjQ0H8F1l/1fhy2zcB5no//csV/D1KpjpJD5yk20N8RlhwEiIEo3gOrgyegijBlOFsUjCPYnwFoNuzJ/4KyXF8/pxp3Gn/r/yIs8nKC8bGwKskGchqkTf078cERYJgvcB+A0XJX/8V15d+wxNFbIXBJuEPU+bxMPVph+TMnK3kWYj4kfqa3rCp1aCijTCjKTlfoSOGMMs31UOlR50fmuNsqAfl9nT/mpkNITWO/SSzM3o91PF9fqf/78pJkvnsy5dzD3f0bnD8nv/+RDot7sq/M0GmWydjXa7OZaStw+6kjmwEfE+j0BW8lr69CmA1K9GDO5O2r46idX4lvc8kJgKMenlZmiQC4Nb/rExP9a8KsX8P7s9OgzpART0Levm5/0OhT9E3YdfKOtR2+n1hy9nqMfp6jDUKVF9WUg1kZvy94Hgc/9MmazjDBOfP6BXWOhO6HUPPYzQ/0HcNa1YoOlNxFM8RbSB5ik6E2ixFFqWT7+4PFUT+lQE8hZzfPKpzGIrQhR+PYUc3kC3x5FS4RCXAqskkIwiLul6R04wiRA9OtFl8eIsm1nZIDNCoY3yeZ79xOHNqmeYnz3a1IdAAPgMd71ZHwMC2Iz7zOxYHxnmBQHzdvjL3dPvKmfQmgWXfxjegaUwY1dRWO5RfrnO7xQOn5k32f+AOi+ptmVmmbrgUNvtuwF6jUM/NU/K2K76/J1MxJ0nvt8qy7MYP0TAyoBLcZgSz28l83Ga7jzvFasnzeQF+/p9xJqQBWf83S8uDPAMaXTSDrTYKFb6fU6ndqKxae7RMtVHOu/K6Him7FI8hVHlgzK+XrkkfebtuB5j57ACwrh9DWh82cRm6jg65aZxhSY4J+UyAdun+L17vUtcCDGUMMBRn/T5BpbPOfJFU7qnaios5E+E3icuwaVKcKeF5wyvgy5MzkxjLYEps7lcsOfwe95OwKYzaD+E+zjS/+Jg0Ov6aoBbAkE8Kv5rmzMACeotKY76jMHjCCqWxw1EqCFm8DQJXIKz0S9oNMvf3Jjx3/pFksZNEXowLDo7R85Lh55EZcXsvapReIJPZ5w0/Y8HCoJe8S1q3brkEAgzRXZfhoZz9mWvfGvj6XaFYKvgfaHMzjwJmgIb1nyK3ZZ/sTFFtI/s9YxxU5L8/qFHrrqvFyjWq4bDv5cFVfoHTfsjTmVOmPlkQNfgmnt8iya+rUF7yEdsgN9vEj0XotNtR6sn6cd7ez2PIRqFkMsl51lSpeXL7Teq4DVp1Ce3JM0ws8uATdAuav+/nJJFn9fSxptwaNBNXxsAKJHM3FRvHqs5R0DXT2lzFFf6INyw+HmKcCWP3e/JKVRtTTVbDgcdqyvr5G6C5Y2loZmNLqk36gXYOlnLiMw9nz847C0/cS3Jpt/AR2ig8CqxTPOsk0Hl99KJ/LoLwU3uR+8fQP0QC/gsqrvLk05zz7yslqwBnWohuP2KjnNv5ojMpNIRQ9CZzeLTZ9qYGcluK8klMCYPG23hvGELHfAn7IGbjuJM3YRdcj8oPpKeCZEIWYEIikHIsG8lARCdFP0M8bszKZW50bTXdf5OmstAZx1C4iadVwZZzNV+kZ9yzjOwjPsc6o07dLSqfGDisbl2hkbCTD+8IZHXlIsQq7UQFiK2088HGHZbK2AGMA0ljK0+8QA0QvH2LRm+aSoUtOKwDh/7P9mnkUSajgeZTlV04y5AGFrX6My+JJy4/jlOa2HeZVxv339HvGteEcys5DhOXxtognjf+2fRspjKn0/A9+nF5b/jPv+FFgpoRqV+iO2A9/m2LUWOJEhVEzbE4mbcm6WnK6sG1kzf9E8mSVfpeQK97ZWDxdp69l0WGQjJUOQpcisC1oDs0FNDo0WPNXKH5jMHXHaCpSrsWRQxGzErvMeeb9m10n/2dePXp629NcX/+ug2kJ9A0nIVr3Ag+PxOajnp1KBGlykDIO9Qx5ZeoTwiIAI63zmoeKhTDS6Wv7DCWc/O67bBedK4FFacxuLHliCnNw++97Jd1Uj12QZ7TG9Loz1Dh1Hum7Ztl7wvDN5SeqkI/AlYBg/t+jYct0qX9SkHOsKq/bdJN5HLRs3+/RtWXybgW3GaYF81eTSZjhP1po8zMsmoIbvE0beg2kCPT/yMCd60zdL2fh8OTpp6NFQ4o/k+6MLwWS3E3Ru/uJ/mtLP+aVTt96xGkLvTzGvHVBv+TZqJjLhu7sKUWFAzOYo7lW7ft9wAA/uOmrNJsjvcWJeVHUrL4zrlsoshrV2m3n35AVSgRFcpggSzRACISin3f7RIyWbXZ7sdttHD2sZ20pL8RbCUKFtcWfm6HLXm5e5sBPOPj3k10C0d9AswvO7xx5vCWALMlRJaoHmL2BPEh2frWpBRiImx0e1lFmYZ32H5R82oPc0o3I01hpeBrx0UyHhs2U1vDC535/VlzTvamei4SNjIv+uZ7Gmyq9upl3a1/5LXrgbmwFoQfaNN67DYAm56gFfiH94tCJAFhS1JlugDHvDDEo5nYd55u5HcNiF0ukbo10Vre5yKAj0QpJxqwlWegw7C/8fvwWKOktGlr6EDcX+6Qz5Qhsvt2lYE1HG5Ck+owwfaq7nSA16uZ+Wm7I/UzWGt3vXsMPT7dQNv7t+U0QIndIzde48qwmWAYTtAVLVfY9bp+vn6cNfIJ6qXPrnLcsc8n2M4qKafXl3s7SJb8EwcLZ8SzwHhvDOXioV67hhKgjKUiGcehN9Zu8rZ1QKMlIYvqua0I/X9i8TxeVB9V8oK9RBdMxKXHHJoTqhmMEKMUC9qL6BQw2yGzbP7kQiypHCbUATosdXhhWSBWOQOW6Xqxu3dGFsXJoXDMGQFvpxQl4Vo7s8Uz4QgZt1+pulDJ/UO4PXmHqL7uT/kVYmOmSygnG/b6L0qa52mXKBBsmh3AmEoLxXHS/e2okOjqbJoTLYWVU8+kXjJsEd7FJ/KN3NXY0bfCgKTH9kHi70ApfacFIkzqyXugt89XmYkexEwW6ikBs8NUHGvLK5JPECy7OtSoMeLUY02e5/fgVYd27Zjs4OVhqJPKnCaC4VdvX2DiIDPXDg8tKANyva6rmjzQfOunLgwHR5bMq286hXGGPft1W6TFKYCbHCZumMDCiOOCl2zf/QPKFA1JXMi5toyHOPYt27o5Nn5LVTHQZhnmC+4s1xlnjYfc79aOR9jNlyNu/zJeJfEmilDA5bTW5ZtJqobz7vepUVCtZp1KxTg5KVN0Ktx7GtsZtPQ+2wQwGnF6QYkXTvno0MWSJIk4BIMHXNm3rLNtSreSVv3bKCCSo25NqpfqlUvm+H1yXEjaSCYYddW2ezEN5IXUiwM7OUGF/3wVWtvGJ8/k8ft17qEUcVHZ1x2uiG9IcQsO3kdXK/bIGJpf5QlPWUKCJPVIFk9reYcKl+WJTwGQ03GPJLFrzcmA74EzsbX7GgPBxV+NZ6FAiGzqcaCMG4rqf8We2op8K09EEivIBtpKMa/XJoZVG1+px/ot2138PJPE1V8hXulqxK0IRuXYFFisdr78O6DyXd4yoNkaBVkYyPh3YvwqI6kUdqbsbIkWUU3SpwL6Vy7T5d/ygIjnZj/AtYiwIm9mGEQpk93raJ94SNsa5MX15HYNoZL1pmayiiu8vwVW0bQu2wTzC/I/ugNTu6Crsa83fcz0DLATqW2T13WszWD0gDF3sSLvllGy2B+EK9ebOPx6MJqSYkb5ylTbH4jXdctF8eRC1rItV9Qb4ywOuLG+gc4skqZJ6Gvgd9RkhbukkYqpBOpuDQ7bMXH9WimeQNVxMaXtAiYWDq/sTOd/gGqF2wyDRBDEhbT9sXin2ujKE7lyXiBwtESSyK6AoYws0un8SDGlHQjdVla7mbWdY+vFvN/HH6d6d3GkO6/sqpq6Any7qpPZvXTBbjEPNWlZjSkVsQxJp3vVjAXZqZPYqNRcLTYajbXE0sJyv/bYa4JfHfa1BSq4/RjhwDd+2cAko1FU+wtHpFlW9tkKLOiz9tWhjwFmp6ghWfRSKFa4K96WHloCqyHRd6m8o4KazF58Hg8dVj5ixFR+QQ7BY5XKeY+nuuP1AzU6DgBTAONbIOHPxgf97Gl9ODZY8nrBiCEkSi+nxAbOmtaHUdlRPkvnlPm/94zN/FG2tJD0euQroCabTA3fe0LNwHnER20K2GbWUftFRDJ2Xf7I6Rgi8/EUNciSSqqe19GO4CToXUVwwfBFAixCURTvumOBtyJONMtFl3lOJSwt+K0Y/9PzQcTs20/E+15XHQP2lD9gLbU1iG3R0EHfOsWMxwweuaheDyazoXwTV3tquQ6meXFtCMa7PoL4nHSxaJu5jnbz8/5EhFWVMoNAtDsrQt7tHnCwITOje3uC4hnY5Y33HkPGkaqTflvwAmeJZtRvoGCbVg9GauJqD5+mQSyZZjMbT4L1SixhDb+PEhfw3o4nrObfBU7Q11Qz8btS+PuVoY0x4HTvZsX3c/EahcMzyH84wt1YuKMrJXyvmZsEDcT1AZVDBp5EtABkShJAE++jCcgxMSEdDAsUCSPuF6whcK0dqVLfF/jSIlegX02ZwJkn8p1AzfMoXFEjtQ8Te2DGuG6AgTSl/dg/4FmB4WU4ZCtIRy4AWvoTlXLT0/1zCkR2D8D/ASaWpyGQkKKg02VMyYmCXkE2h3jhxumqTm/Kfa2yeIhpOemhBEwifxbFdRZK/n3fy19N1Qh61fi7Ohx98tL+bsPL7wR1x4Vdf+C8pZOmhwdzDdeicmj2GfGFd4rh1+YXS7X0Jb0NHoxEpGOLICSjB0HS7GeZfv3H86JVNWmVYSFne/9QnoQxKngStXW6BFCZQZ2L5C0x5ArLKa47vOynn+6W/vJSOpUWvkTAjbxGIFkAWatDuzbB8njPh5aYzJL/lCq/3eEj9W9CMjY3yeXq8l6USe/HoJbtlRppQzEInzYOX70Vl7EDCcIMxr5eKBdAthiQfy2kRNjqEXavbbJBkCoZn/8amsNH4u5Nz2H5eMrkSHX9BrwZsAGLMJLFNf4aC2j6D63wPh76Yr+fDiUjSQ5NxHik74fh19JJgBXhTFny/l89H8c/FKudmyW9fliMkx4CRLJVnGha1FhiOMEoVB8JGm9wmYD4vajCPynj0aNBhMoXwhWtyxiW1vYfbqrY/+69CdUQ+oDKLDx3CyMsvjRhpsNgbxhg/tr68QuWMdgm1Tk3mNMl3JwzZ7fjYbt67idsE2Kc5LApjWwSFhu+JjM7/9Szxz01s1SrrbhjBWVIaG49LHcGTs7/BLVziXuNsQgkxORIu0O4Pi3mueAx8tbU22tQQ79pdBI0fhKlSM8E62VPB7T6Q5qwO9iPXn8LQnMG14QU8J5nrqioQoKhX3IJP61O76zJWBiY5P3kUzXUECplJcHTJzKSy67DeYx+hvuv/WJU97WaHN2EgSGLYc12BOaTihIKKE8owvui5qcK/KbNAx4UK/lFoYgxtVBzc96QY9YkeuyAsn/44+/3bTtUTPPkrGxFZWLKERh+zSnD9HC516rAib5THtLW6jOfbN4+D5eLVkVUVu8njPC4ixzRFm0xdBShyASFwsWfMFOHxevjAV+kDUE23fzwIIiNKTR9IxEfVxWvwzDcLpba5CXiFWEYSLEaDzGCBEfxK8dxA1pSmOF4vIaJtediIrZcYygQbZK+C4hVKo238igj62ezy7hxhNS6ttpHU0nuC9xM2kQIf+Jy0ZXwCHHcF6j7UBNWRqXLwwpI1UQx/3cpnTobWnlNArzYcU78YVWOlvyRiiTqKWDSFY7kDPzVinPgTAUAnFObJekvsXxtcevAqt/XfnDSTNj1bB9M+rQCucYF3NKiJQ6K0F8zxqqbKIHvTBPeRW9fCTOz3PcgFcTbabVWXvsPvKlHWgaB0C9RoZ/B8d55KX6O0rttboWC2D5tDMDCiJOhGIUP42y1fwyU2uH+NnSCscGZS4ahaT+egcFDTMQZcaD3Yf3tOD41oge/E93LEwKkPb75cUxQ66OVyAuls3D5XrI8VxqPJ1vllyxxeeixgSYrIsRbSNulyEJmh5/DD7FxHo3Ex5C/bLy9z3+DwqtfxrYle9Dxr3BqboiZMfo+6QVUDOpup1tGLCiKhyizuwEt1v+9kavxzXD5ElvUHPV+AY80hQ/lG4JK5IDvh5G0a5y873Rvgrzkqe44YMrHoPwKVPPzhe7+GzfQJnrpVNMpPC4s6zuAKF+gHPM4CJG0TgnIFniYUGuqNgPLSxh/aPzluK/xQ/aicl8cROko910pKBXmejdSdhSp+5kk4Fq5pwcTu3Ci5llgNJWj9MqFizPzkIutA6X1ioeH0Ixz7TaNSa6bwJW7wHOOwSitTyzjG3h7k7oJ68wCZMg8mulgcW+HcZ6YzlcxTDrkbMZSZZRclympdeNcNAB1qpXA2l8SyGKyXdP9j8wnVI3iO3og/NxC1gmd6AIlkxg2Bgm7KF+XXBGgz+M7Bc4XMe+pDsaOfro02ydSwXUyckNroyD0+gvij+LmYcMquojqyFZ0jAwJpAlEtx9A+DtTttvjcRZ1xWJtN3svN4RnnwxzLR0fH/5+MklEgNmehQkyzc10eQ4jTeuxpr1dw8gsJlAMgDX3peBJjRDsVVvFBFXaEHZfxdjzmnCQKyt4SRbtWmHMKPtUG7oiLK1bM5z7JYx3E8WARgSEG8oRGCIkAGJFHO44YhSaHHu4nNbtgarb8jGuVlhZYqWEmT/kBlITQ2mz5UemGlDCCaD/Bkji3iKbHOb7fba5XrdH2rVzuxuVBkv9h3hgGRRrhropwKYtQd5zwaqM/q11y4Ee21MsWB3lIad9s20OafJI0G0o5CPLTpOoO0hi2MwzC4R3dFsQ0H8LQtRSayOh3R0bfDbVU59hPRjg49wY3MlyBxGOVcqc1dLOFtlbuPvcl1+X1CL2dj9aBW75AfDVh+XF6x+sg2x9c0275UjminYCL+7PIZKGdTvjoB+KKcRN1w3BDA/icokJX15NFB6A084kv2yv96aIxwlMp/Qq7gzm0/qEqlhJb+s2mplDWje+mEqx51LJlfFeAABTe0j4/AYtOP+DnD47pWeKIkOuMPz0cBuRsEPy7yctEUylOwuhr0zx8ZC8vXQgImyKivGZEuGI56sHfIIY+ZACR3DwALhwoOpjMzNoaNc1mjDc2qsPN0fzyX10HtZBqeqzN74QqKicQyHkXpDx9p/tFQh7wy0Q23HS6y2BbOneQvmHrHtMyYAzfGvGI2gjdNa4PfW5nvwu3dTEOtB550HXrjJ+ystuMU/PRcONQutkp/DQiPsg8n/qzaJak6qfQUA17wo6PUD2Yxb6Ilg6xJWPMaW0278nBLUOBG8tVb7NsqaIjVBqGFCUmkCwQKdA/4bDbPfG4rc32AKEDQVhtuqYyruuHEFj23JMcIP1aMCaNta2/ufExVu+eZUY7gLkVMjCo12lTP4QFC1TbrPWf324ytd0eGbwY2xf85M8CkE9KD1ucKuS9mZPnxpJOqkzyFEZj6PFZHVQBHcduodigtI93pGtS59Rn4trCqahINKluxx+RvIyqmBLF6fFXUaMejpczCCe1AykMItbVEfaJIC/d5nwX+80+iDKPvjieAhSgLzfZVDLldE085BVZa5iT9hn1tGQns7R/cvQC/whGtD7jliCdznxEra/Of3EHxaCp7ysONBolCIUZ696mB948X1RA8Wo1LF41BdcS7wPar3l7FDMidkz2rvssarPyykstvHOBWuKWSPeTvqeh7NsWlqF6cZDj3ZGH17lM/tmkJhuR7Kt1RkKww1vvmiUhjd8f4SASLzeKMD4mrKg0xX93MQQXKVF/cqTl8hxVTGD20EJg3ZzWPfLScMC55syNs873pWwoLN4EfE1+bRvkxqdOqoLO4kO6U0blzIFf7N2fecVWAeVH8NvP4QrTnhlXUkhHUVrtVglX/fqwSwiF+4LMAlHbBPfsYrAUkFwQNlUwfeh3hc86ZLORsMmI8gb52bDBtCsqs4zvMGg2QffX7KQE88wSxdpEkycf7Bi/89OXhBQoP6QGtRdOQnscEfl0RRXkpd5tWKQ/zEsdK3M4oPd2H84mDDXEzD0H3l4SYuHsYWif0E6YDhn4zt00AUxi5WcnYWUQeHlzkFf5HUBvhnh5kHqqIEi9HzJ1qfzvmjoFJgEy7vh+qbTPZxtMY2aEp1WOyPkGz1Yo6PJbSSedHz/ACTQusalY96zEJCTimtePrg4K2dIu9AhJBvPpNIS1NVUEjCT+S54wmbIKtqYZXU8kIKgQ/PRjiL+NN9QRfGnVJNEPYyrvy+dwaLByU/KeBQVCgNCCfqhKLheTylBYJF7z+YMg1xhgUwlDQym1xAU9Ce6sJFTF4kLQzHNLd28OXnAjOf/exnilNihC2LWgr1ajpL1UYcHxGqhYA2xOs8m1l5tWqsCTNKqxdFMF2WepE3CEhrjINp2QBBxdnS0v6+1w1XE5YqPERyfjAhpXOvbT/mt4s0UaaLH+1CmzXZgWnb9lyjq+ey1hOBXflNSEaTsPusUbn3pj96ojUxS0Er9ZK9QxZdlH0w4Voit7wQABMy+/8YvPQvKkTkN4/dyCcVSrnMu04dGIZGSRQ0PV67yiVGSgz9syqs20QNyRwB+nSdCQGLA95/0xx8YTeb6sbY6zKwxniMRHxiTsDbC6D9CuWsCjm/WTzCDczfhKwLbvGeHKea98y3JjW2NqXwdb8MutEMh+j2aCHkOTHq2GUI11rSNZa0RK/u5ngcwbndzfw8ndjjbbBL1tfZqjPksj6Ex+Q9aC+JbCal2s/lI4OCtO/UZeFIhtvKnL/FfklWng+UXZy+i9+YnMD0emObKV/v3QB4M9EOD/yIpgp3BCkkP95wRFD+CWOyWogb1ym2FrmZ6zItjiVnVsEHHBvIRG61yfPleuFG6s4uJ8qLGxpPk+SY6CdL0oXjypqkcMI7QRGYi+nl6Z/Dp5ValKH9FMwTeC9Stuojv6pOZnBfuYWJMj1hWmbNx44C0siT6Hwkg/A+Vxrgr3NfsjkzP5Z5fdzUK8FO8UzqnZyEZ2QGSSfZTJDTsug66Bq1L8bJaEkhqtMd5tPTDZDkLrAiEoT1/+qSXOwoPqBJrzYX17ZPHE5hE92ZsYte9SG2tRJrRX8hHMoi93PaTXbXGoZjufT8O1RN1aTVpV/n8djsUcxhsTN2VpjBqMe6xFMFuBdUJdg5sg5d8y1x0Yl7xlMyOAPIk+9GmZxzdptaQiGuPTzyhNqdWgjb6nSI0wN/DXEay0gOeRYfj2WnmexAw2BmnHadcEJ5Nn3MVmsQIbMyHrPfLVbY3ma7FtV26U/KkuGz6CUPmiEj7MlZ8Qi+DAL2RDkxiiMIOJj73FewdHM3PXZ5wluvhyMlwkLgXTPdx26hygwVkVHjVb6xHZ6rmI0p2WwIEEb/C7eyn2ODU7qtn0Jg487dwa3n6ccYsTgQxQGYinAHY5FRhhnuQtUfG/MhKHSqk2/v5jLSaWjIKl6tYEdW6ynxTooMOW8K04qDYaYpm72kk3HUSwzr8ZG8mHi5KNX2RBW8DwxdrR+Vm8SAGHq6TjkibFSZlY4udTRXOQ63M4Fdftd+/e5tH2ALbinKonDnpAA1PMRGozE1UHcPjrTfM9XJVxuzuWZVpyknwG185oYKxTkjHtuvZVoAJRLYxXwuxjaZrzb44gOj9wg63yTAow7d2TAncItmlIWaKzm98ZuBOWQGgIXoTylhFy98UFNPVap+lqkfUcsEtidl3C3uYuoRVNwyZs0L+h4dHBqlJm9KkivR1CyK2eSL7TM8Ol+ngrVY9dYCyUZJwJYKS3EMP3AGMkeJ3B7FIrcPDDq9Np7HGwbbPT4Yl7jBLFd8gJHOQN5w+S4S/u8pw4WHsiBMhYczkqKGZua2Qrp2zgPSwqTyxbUOrv9bZ78x2s+GcXhdmTd6APShZn1BsrYqZMCyE1TPYpPzlc3n/Q+D6fdQFG8PrMeTgZJ6KsvQCcmH2og2KywTvLr6cAWlgUbukbI8AYbf+92ILpMKXAqhk4N4BGxlHRqhE7ilhskHnSeEmT5QGI2bmjXegOtvKp0G81zhiot667ujzLdWd+RHJyaKPgiZRdLyMJDm3bOg1zukQcHLQPm86UBfrF96I3GKUnqoiyfcjvXLp20QsNtkc6MGwlpNPF900wLa0VO1ojEtkGrDcE+NGhW/8vHy6ECGEG/lU0T/ZX0rPI6nHyucY2Da0ppdG9uk7K10+0ibrTSIxphI3rcet9C9KjogQ5e7KgVLTUEbaFQ2Nf16bp2axqbG3plwKkwv1IQfTI7bWgjorNF7Omm8zdjv1SZ4z89YgV9NpNTHfEq31lyJRxhcGdA09pAnRXjyt5IdCKnTHRp9JyRIvqIVVrtl9WJVQzBhVUoPMCmceHH8NzI8COUqi98JXJE2Mbz53hC+zQlsbkRVC2iaQizjVlZZt941gwNGvlivIA8vq1X7e5HCs6RDWKkFQSEJ58gzUQeJWKOJhHPb4tawFtGT4ADyw6fa2k7f7YlGLKR/NGiJL4FVJuh5Pbnl0i5ME6dyAZpiNTU2dgLSX1VBj4TGkRC9ywIRXG56KGVEu3SyTApLWxqQly3U/JhkR1PKqyIR6mf3aPZl8rKcZqztjLcovwo5+0cPOYk/5ONkMHPjWsHBjYVuI5gepU2cHhz7Jyah6G8zCtLUrBtPdoLf/oIpz2UsSrTvriV1JREAL5AScMxd3AkfAisInWY2drAeP5Ns9eMPBbxRKkK1cs6gTqhy9exj4EB+naWoAM812xy69Td0gZE7uvHYbxqXzhtZ8w6kh9pNFTkbo2C34v/GuDij+3UL/gFJES9XUBFU56VjjR9cEYa6VduPZA9Dkz6WGwhdQxC/ZsvGnQgFUJvQqasYX8U6TiC1enI7Wa5IxIjemikgaQFhbe3sObYO55LpM4ZlL6osOsugf5CQDLLxgma2RB6p8S7K2IsVF96bac/xssaePgqnzLa562ak6CbU46w+tKOOe8wjm/WgM7Dn11sUhQVdAJhuKjWRHvdipoy0/of4ZUdYWlIy/Tt8IjIApInrz3jzqiKDU1x/e5UbJVbqA9TNmUaXYEN26GT0BuOEiCCocvjV0woMWDU2rYcN4UqJ2WHrEslniOAKJMj1+VbENq29uwsfXEuOlwB6hrsyIwhRB6tMLF96XbH2NDom/Us5c/jdv0UC0k3aCYcN3Pf4/z2mJJgVPuI2lMTIxELbvB84iZtgZNt2eJYfh5TR8USJB+9eyOfZeBO4jG5RbdWHjbT2dIHlBkxz6D8eCjK/6g9I2qdssIJuxYcCTkR+r852fbqk6CjtFYJ7g3Y8wk6xX2vTeu7OyiB8YOBO5CrODOiN9razKj3wm6OB86ql+skPYwQ2sC6aiHaQWa/Ox68zRYLKt+O10AX5yicUYn0SIdDfSFPOTHUVA8WgY9Q2gMD5Hj3b2IaHd7LBCPWry3AglI/46vDpHsOYXIvFt+XlNkjhjiSYvW2YHjq9LjWBM9GnbXN9nwCPyMN9OEi9/n0uOtRyAGXKuW7D813Vxhpggpu1hq7PE/yZT48mYI8JquyNdE7AUc0OblsoMw5tAzci6QFBCxzsAwOqHL2zIDiBt+voJu0nxt4Mo/oADaWvS8GA8i29zyQkFbVIAo92H4r8BMsIuOMIcRWCmR94CBIwPA6pUjVXUxme62hBMU/lpeMaHB302aHsXin+6meYF55iSCNaKb42XuRKAe1WfdAkaO4Wk/OrCvjLX0/AhWrZ3WUYIWBfG2qY8d2lF4RdF+bjuL1/LU6YFsp2RumD4a7Y46CznZadgYtsvnoimwebGltTd2FYo73AzVHBrB66o29P5vUvf/DYeirlobtGVVkkeFQmmzCXCtBJrLsH15msUP74oURdqH20WPDXrmTPVii4T4db33qDx+SlfB1N8tUHjgHw5gOSiaC1YIUEP7Gx8fDkuG1Ca55uBhAm5RSbdkCXCEyZ0NWIOTZLuwpmZNeYjv7RiJb/B0okfyjboVvOdpa3i0pRc52yfkDJbxjgJnC5rK+woEpXGI7BljqxI6cmvhzKM8XRXZOfeXV2cif6z6DCpW2G57YBQYngwHk868R+XYVmVX+MQv9+er8m4bvQX3TwkMINRjgofuyBp27NjkU8MXqQLPofNZVIA8LgQRf96l1ukmXZTXNohIdgL1/Lbxphz8DLHrfrkTLFg0lbfnBi109bayH9cCuMYOum0Xr5rpvMNtq0RLF5CTX+aR7qIRIPmX3M4wIvPum9frbmR3e1zZ3cw85naEhYz+kf+Lx3jRDgfKHGPLgzWccDGWPXwnIGDiL/Keeo2Z/ie2Xc+VoFkYlkk25rrODYqLGPmGAweq0KsvBSr1eqpCMfIk5GKlHkVfzhreJc+uyZmUCQ6A/iGPPIdfUli2q56DFgiWxQQmt+p2PLDO7THNj3roqQWYhc0PECTNaQlzByQAsueOojYXAeO1aRmFcey39ZGyakZJRE2uC6r+DPC1NFtW+l+jzox8GU3za7CEsAH93aT88xNJ4wS2j7HGHbJTJpHCv/+yhWAJN38i+XAMqpmAclJetB1GB2FftR6exvX47UN+es90Cj7lyHzPYU+4PPIsIAchkxshQZJE+ojo7AQ7yVNTLgUJFrhZq+7x9Yz6YlhJ9P/gQN3FMq+Hk35Z6CY1OWb320FpJpa4U5Noajcgl2899VM/PBiNgGd9SY/PqP+el2y4ZxdU6PlbYO6++T5oUCgREuoBFBeRaku4mzV7CgLJFgsuW67hfVRuzYwoAdvdUvdyL4HqNcQyW2CC44XPkOnwlRpwjhdKGbbV2MxnJBgUYedg4MdBzNRa0HbYR1LyHkU1PAea2obkS0aTZ8yCzqO8brf7Sv+aoXQVrFOUGNb6cLfFLjpawvgXN9xgFbTMn9K7A+szmBeiRqWg73Hm5ZA9YDIj/6/JaiAwGYpMGF51dFSLHaLc5VpkgZKLDgH6CKy43LmF1KDN6aJCHUca7SuADYbPxAfnCPEbDdiBgttfJdwTp2Ppp+qiQI8DvBuQjsMZTdTt2cgLT+KDJRif/J5ytRLkjOefzph4pm20Dw40etgAGXImb7/bItXrzqCBM5q7GiJw+fAyVmL+J61mqu3foJH7F1j37bIbpkkIW2ik9ZnXTrq2bFL/FFrYukqK1okXvy9TVK0Hnv67tSAZezbOqUipKvA7nFKwZoXgyq+VvrJ/1kAhfoioW6AUY6L+oqyaqIxfF+iMa1PfrBCi3CfTkNK9nRmYIu5lZGSLYFr5PTSZNcLlkxvdbjJyKcP3yfQEfHd3oL3d24lps0ZtT/a5xi+Kq4Wy5Wa/bbY9XWtG25GsgDs4CYTCEJSS/PUr1MsOIDFJ54Jrtx6YinhpLaU815xJRFq6jexDkYDKJ2NGdCsi2sam+SQOfp1fsdAIpJNymVjP/A08Rzlvu9suVejQbebzcl49MPkZfib4FmepXXmx4R6l2K0H+ffCjo+yRB+6o8X2AUJQexJTAICUas2nAhaqpUvyS6k94+lp5V6fn/AvxPdl4uArLnE6XrkYlsJgrxW36qnJNhEK103pvEUQszwkriU7tc9/bTcZg8HIEi6YQ/5IrrhSrXu/xN6L4CPa1ucmG0jELLQJ49PYTvkxcVmx0Lba3VysECY4ZmJRP2HVmvgfvLoWX49Pv8NTJLQdBnsHzSkC6PNJ3s6Hzn2F0WZJDFjmxjzJaVVr52Tst9cHgGrSD4+j3hHwnLpFgVZGZqOHJa6S2/AWmkQm/cRYuiNE1jBVOZVOrJV0UKc5o5EkPQcT3+OyhCMHxKPDccscOFiVfuK0Z1EFTCGGaD5tlQJLuV4RVqvGDfCQwlGxPVNYQ6KEp016DDqlDMLcMcGaA4lPBo5+lmpBQg9WsJ0Hdp7Z01HAPBPgMX5D7YxKViILBMkhnstb8JCIMFthuNvKuf0pxfr/Ae0LQbd6N9s6FGtg7G4nRdjDXA1RacSYqxcjCW1N7fLxUmrg6+SUZTvWw/cDcDtJDXTJa7pZPSBkH6zmKqiX+akCmzjwqsVCo4VT7bvZKgFlbmeOkDBDSwSIZWebqGgbyNjIlfTCBBg3HJWi2JWOdsUFwuF9o/7VfHGY85YXiAMAizYTNUCzjBjDN6vt0EXDDDGLUhkPjT6W8Ew8f9RMKUmXKH4tfHemtBPVnlLyTJBzcrIMwOsoexvfjGE1RO88EobSm0myCaR/9Dq7U1PCOwni7G1MLGBu0f309PZzLmJj0yulg048DjPiW7dqtT5jCZ+kRWcJ4nz5eZ+Hx5Nep5KSwhXnmShe1y/geNVMbQUqctfTRDTIRM9BlSQJcd/oh248l776CsvXjyTMPPYQvzDLRK+2DzC10BtPvWuBR6R7wBNMOLBswK/y5Bc+cyFhnu/dWRAv2m9jUnRQQGlOJkNwFD80f639jLxfAVeE5fOjKi96sWTMZnv9R9MonMZn8nXwY8bpik0gdUjIKKh+ssC4ijah7V3gWTcngIOl2WWFNJqaoEFmShc7a3Dx+5pIb4UqKuGzZggam9L61W78he8ZuO8oHlk/YlFVefqJOOjEMk/9U16SyGZe447sxZytcmumvvjRfXIHuokLxqsDhH92SeVNY5LlE7IDSo1ckYtbxWAPnMXwBHXWIUoPznoxDI4EM+sNsj7wGjgGRn+1TqM978nqL6ps2sswmzaX68YVssxLT+riyGI2vCT5874rXdjiHkuxpNF4GntnGSZcRqpq4w/XOpKsPdO7Q1d0i1uEfVQHlWz6LDyJvYozfFVw1SRIJfR9neEgG8ayz/gdh2Utxv7GD6sYTZuEj2t1jP/JapEQisr5kxoDTwgFgJstI+hx1lU6hGviQOfAPuKx7a7UfhqmJglmOwGfZ2ybKeXfDwCuTunEwciUeodAVzte9qEENh6B7hV6ONy3LxwxoR3DnRHVNzwB4Ax8dgxouZ9pKUp3hQZX8PtMGFRJwQUDb3afW90LXnPFomq+pjJ/Z0OcIjwSWiH8YRphgIF5UZPSq54qHaVk7VwmO+qCi5cWyAXKi+JEHz9R8wQBU1ToNxImMAB/C08TInuMEieKlvD8zzaR9tWqzXsOFFK8WYcJYWyPyF7X65wohcDUTH4ZQz3OcMh+LvDPr/6HbTEuQQ124StWxMGebCuV4ftsLJrurPbatWL4ZErFlNS3YX7olYAWWxLkkkY9ZJFlPpZ2an09DypvC/LsiJChSA+FD8/8Ns2lLTdA6XXRQnaaoxLy04t4ZJYipOi8lOAsRCcpT0ASxbc6ht3lMWZPvXiAFaEIV5x5+42p8n/mZLg/pKcNtkYvFE5BuEr7D6kdKn2obNNht4OcgDrDCgXJJQPCd7MfXXLzLf1vNxgchxuwML2iBSa7U8b0oCfccEPExvUr03fP3hqInuikVNg0azrYgrxStqMUFBRVYcGYp8g3N/YSHsP4peK9rhttjxRbVSD8LJmHgwC5WFe/rQhrZqEtt/irjf05ZW3ltNAJ8tBrltv6IUCoFeIv0BIIE9biCltBM/I4z7UkExzmEVsQoC+iXLSfott3rUaHFmm/in/eHJp3kAVMTAOaYjuj8rcpOTZOlQUjUZFClBY2yXuJ/peOQhMQmOJmDctJygjNgGm4R8osQLLI2qL+bsqLDh/W3qrMwQkE6nZ9FIfDBXmkCS2cX2LNTxPfQKTgqBAsBOPB4udYXY/ijTUYEnffws/g6/U4vZT7FTHqBIlIqUmLl8J8qtF8Tm2jEmFvUPH47pRh4pjGDna5iXQWT20uo1koj3woRN64Xw8M03FpsF/2/OIL07NuDvSorLB1myANexay3qJ5d8Z1a1nXesDrXMXQ2kNOeYuOskOahhN5rilZKavcJrjhLNkIn3Q3GgFpm1vFfmgAe0iz5SIU6VQhOIabb7v/BH/5pgDZ6+gFlgGx4RebgPdgCUZ9kIE+kiljOVdB9hsUAAN5vengTjHXo3u46pF3kAruGMZIehqjfULh1FM7E898eIHlT+2Fp8NOq1L/Tu/lKx3ibrfoyBmMYXi7LEYXmHWGhKiWzjsRyHV1+mrQ/W4J6HKR/hlT6QD/GgEn0vkqBhTohB76TNTB60c6VqgJciQSbcMsTFENbDMh2ZkqEVga4dwOwlHAkVRQ3EAQDfwSWygrncD6XK71c3KAAAAAA==)

### List enabled interfaces on devices 

Source: [https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html)

To obtain the list of the enabled interfaces, do the following:

- For UART, run the following
                    command.

        ls /dev/tty*Copy to clipboard

    The
                    following output is
                displayed.

        /dev/tty    /dev/tty21 /dev/tty35  /dev/tty49  /dev/tty62   /dev/ttyp4
        /dev/tty0   /dev/tty22 /dev/tty36  /dev/tty5   /dev/tty63   /dev/ttyp5
        /dev/tty1   /dev/tty23 /dev/tty37  /dev/tty50  /dev/tty7    /dev/ttyp6
        /dev/tty10  /dev/tty24 /dev/tty38  /dev/tty51  /dev/tty8    /dev/ttyp7
        /dev/tty11  /dev/tty25 /dev/tty39  /dev/tty52  /dev/tty9    /dev/ttyp8
        /dev/tty12  /dev/tty26 /dev/tty4   /dev/tty53  /dev/ttyMSM0 /dev/ttyp9
        /dev/tty13  /dev/tty27 /dev/tty40  /dev/tty54  /dev/ttyS0   /dev/ttypa
        /dev/tty14  /dev/tty28 /dev/tty41  /dev/tty55  /dev/ttyS1   /dev/ttypb
        /dev/tty15  /dev/tty29 /dev/tty42  /dev/tty56  /dev/ttyS2   /dev/ttypc
        /dev/tty16  /dev/tty3  /dev/tty43  /dev/tty57  /dev/ttyS3   /dev/ttypd
        /dev/tty17  /dev/tty30 /dev/tty44  /dev/tty58  /dev/ttynull /dev/ttype
        /dev/tty18  /dev/tty31 /dev/tty45  /dev/tty59  /dev/ttyp0   /dev/ttypf
        /dev/tty19  /dev/tty32 /dev/tty46  /dev/tty6   /dev/ttyp1
        /dev/tty2   /dev/tty33 /dev/tty47  /dev/tty60  /dev/ttyp2
        /dev/tty20  /dev/tty34 /dev/tty48  /dev/tty61  /dev/ttyp3Copy to clipboard
- For I2C, run the following
                    command.

        ls /dev/i2c*Copy to clipboard

    The
                    following output is
                displayed.

        /dev/i2c-0  /dev/i2c-1 /dev/i2c-16Copy to clipboard
- For SPI, run the following
                    command.

        ls /dev/spi*Copy to clipboard

    The
                    following output is displayed.

        cd dev   
        ls | grep spidev
        spidev14.0Copy to clipboard
- For PCIe, obtain the enumeration log. For more information on PCIe probe logs, see
                    [PCIe-related configurations](https://docs.qualcomm.com/doc/80-70017-8/topic/pcie.html#pcie-software-support-feature-for-qps615__section_xbl_hhd_l1c) and [QPS615 switch support](https://docs.qualcomm.com/doc/80-70017-8/topic/pcie.html#pcie-software-support-feature-for-qps615__section_nmw_5jd_l1c).

## Load Linux firmware on QUP v3 serial engine

Source: [https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html)

The QUP v3 serial engine loads the firmware for the required protocol onto the serial
            engine. The configuration of protocols (I2C, SPI, I3C) and communication modes ([FIFO](https://docs.qualcomm.com/doc/80-70017-8/topic/references.html#qup-v3-supported-transfer-modes__ul_unp_cdt_qzb), [GSI](https://docs.qualcomm.com/doc/80-70017-8/topic/references.html#qup-v3-supported-transfer-modes__b_zzd_rsp_rcc)), is done in a secure execution environment, such as Qualcomm® Trusted
            Execution Environment (TEE) `devcfg`. For open-source development, this
            configuration is performed in the Linux `devkit`, allowing for the
            nonsecure use cases. However, for secure use cases, TEE `devcfg` is
            used.

### Default configuration

The default configuration for each serial engine, including the selected mode of data
                transmission and ownership, is in the
                    /TZ.XF.5.0/core.tz/2.0/settings/buses/qup\_accesscontrol/qupv3/config/lemans/QUPAC\_Access.c
                file.

In the default configuration, Linux owns all the serial engines. All secure use cases
                are handled from TEE.

    const QUPv3_se_security_permissions_type qupv3_perms_default =
    {
      /*   PeriphID,         ProtocolID,               Mode,      NsOwner,         bAllowFifo, bLoad, bModExcl  */
      /*QUPV3_0_SE0*/
      /*QUPV3_0_SE1*/
      /*QUPV3_0_SE2*/
      { QUPV3_0_SE3, QUPV3_PROTOCOL_UART_4W,   QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // BT UART (2nd Hastings)
      { QUPV3_0_SE4, QUPV3_PROTOCOL_UART_2W,   QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // VIP UART/SPI (SOC SLAVE)
      /*QUPV3_0_SE5*/                                                                                       // Spare
      { QUPV3_1_SE0, QUPV3_PROTOCOL_I2C,       QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // I2C Carplay
      /*QUPV3_1_SE1*/
      { QUPV3_1_SE2, QUPV3_PROTOCOL_UART_2W,   QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // Tuner
      { QUPV3_1_SE3, QUPV3_PROTOCOL_UART_2W,   QUPV3_MODE_FIFO,   AC_HLOS,            TRUE, FALSE, FALSE }, // Debug UART
      { QUPV3_1_SE4, QUPV3_PROTOCOL_I2C,       QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // I2C A2B Controller & Audio port expander
      { QUPV3_1_SE5, QUPV3_PROTOCOL_UART_2W,   QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // GNSS
      /*QUPV3_1_SE6*/
      { QUPV3_2_SE0, QUPV3_PROTOCOL_SPI,       QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // FPGA
      { QUPV3_2_SE1, QUPV3_PROTOCOL_I2C,       QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // PCIe I2C MUX
      { QUPV3_2_SE2, QUPV3_PROTOCOL_SPI,       QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // SPI - Audio
      { QUPV3_2_SE3, QUPV3_PROTOCOL_UART_4W,   QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // BT UART
      { QUPV3_2_SE4, QUPV3_PROTOCOL_I2C,       QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // I2C Display 1
      { QUPV3_2_SE5, QUPV3_PROTOCOL_I2C,       QUPV3_MODE_FIFO,   AC_HLOS,            TRUE,  TRUE, FALSE }, // I2C Sensor
      /*QUPV3_2_SE6 */
      { QUPV3_3_SE0,  QUPV3_PROTOCOL_SPI,       QUPV3_MODE_FIFO,   AC_HLOS,           TRUE,  FALSE, FALSE }, // SPI
    };
    Copy to clipboard

### Load Linux firmware

To load the Linux firmware, do the following:
1. Enable CONFIG\_QUP\_FW\_LOAD in the following files:
    - `CONFIG_QCOM_QUP_FW_LOAD=y` in
                                    arch/arm64/configs/qcom\_defconfig
    - `CONFIG_QCOM_QUP_FW_LOAD=m` in
                                    arch/arm64/configs/qcom\_vm\_defconfig
2. To load the firmware with the required protocol, include the
                            `qcom,load-firmware` property in the device tree
                        node.
3. Configure the transfer
                        mode.

        GENI_SE_INVALID,  	// 0
        GENI_SE_FIFO,	//1
        GENI_SE_DMA,	//2
        GENI_GPI_DMA,	//3
        Copy to clipboard
4. Load the firmware to the serial engine. 
For example, when QUPv3\_2\_SE2
                            (0x00888000) is loaded from Linux through the FIFO mode of communication
                            use the following DTSI
                            property.

        spi16: spi@888000 {
                 compatible = "qcom,geni-spi";
                 reg = <0x0 0x00888000 0x0 0x4000>;
                 interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
                 clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
                 clock-names = "se";
                 interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
                         &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
                         <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
                         &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
                         <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
                         &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
                 interconnect-names = "qup-core",
                         "qup-config",
                         "qup-memory";
                 power-domains = <&rpmhpd SA8775P_CX>;
                        dmas = <&gpi_dma2 0 2 QCOM_GPI_SPI>,
                        <&gpi_dma2 1 2 QCOM_GPI_SPI>;
                        dma-names = "tx", "rx";
                 address-cells = <1>;
                 #size-cells = <0>;   qcom,load-firmware;   xfer-mode = <1>;
                 status = "disabled";
                           };
        Copy to clipboard
5. Load the GPI
                        firmware.

        gpi_dma2: qcom,gpi-dma@800000  {		#dma-cells = <3>;		compatible = "qcom,sm6350-gpi-dma";		reg = <0x0 0x00800000 0x0 0x60000>;		interrupts = <GIC_SPI 588 IRQ_TYPE_LEVEL_HIGH>,		     <GIC_SPI 589 IRQ_TYPE_LEVEL_HIGH>,			     <GIC_SPI 590 IRQ_TYPE_LEVEL_HIGH>,	     <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH>,			     <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH>,		     <GIC_SPI 593 IRQ_TYPE_LEVEL_HIGH>,			     <GIC_SPI 594 IRQ_TYPE_LEVEL_HIGH>,			     <GIC_SPI 595 IRQ_TYPE_LEVEL_HIGH>,			     <GIC_SPI 596 IRQ_TYPE_LEVEL_HIGH>,			     <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH>,			     <GIC_SPI 598 IRQ_TYPE_LEVEL_HIGH>,			     <GIC_SPI 599 IRQ_TYPE_LEVEL_HIGH>;		dma-channels = <12>;		dma-channel-mask = <0xfff>;
        iommus = <&apps_smmu 0x5b6 0x0>;
        qcom,load-firmware;
        xfer-mode = <3>;		status = "disabled";	};
        Copy to clipboard

## Enable required interfaces

Source: [https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html)

To enable an interface, do the following:

- For UART, see the [UART software](https://docs.qualcomm.com/doc/80-70017-8/topic/uart.html#uart_software) section.
- For SPI, see the [SPI software](https://docs.qualcomm.com/doc/80-70017-8/topic/spi.html#spi_software) section.
- For I2C, see the [I2C software](https://docs.qualcomm.com/doc/80-70017-8/topic/i2c.html#i2c-software) section.
- For PCIe, see the [PCIe software](https://docs.qualcomm.com/doc/80-70017-8/topic/pcie.html#pcie-software) section.
- For USB, see the [USB software](https://docs.qualcomm.com/doc/80-70017-8/topic/usb.html#usb-software) section.

## Verify interface status

Source: [https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70017-8/topic/get-started.html)

To verify the functioning of the different interfaces, do the following:

- For UART, see the [UART verification](https://docs.qualcomm.com/doc/80-70017-8/topic/uart.html#uart_verification) section.
- For SPI, see the [SPI verification](https://docs.qualcomm.com/doc/80-70017-8/topic/spi.html#spi_verification) section.
- For I2C, see the [I2C verification](https://docs.qualcomm.com/doc/80-70017-8/topic/i2c.html#i2c-verification) section.
- For PCIe, verify the connected endpoint with the following command.

        lspciCopy to clipboard

    The following output is
                displayed.

        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
- For USB, verify the device and host as follows:
    - Device: Connect the USB Type-C port and verify the enumerated log with the
                        host PC.

            adb devicesCopy to clipboard

        The
                            following output is
                        displayed.

            List of devices attached
            541eb4ba        deviceCopy to clipboard
    - Host: Connect a USB device such as a mouse, or a pen drive, and verify
                        device detection with the following
                            command.

            lsusbCopy to clipboard

        The
                            following output is
                        displayed.

            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 hubCopy to clipboard

Last Published: Jan 31, 2025

[Previous Topic
Overview of peripheral interfaces](https://docs.qualcomm.com/bundle/publicresource/80-70017-8/topics/overview-of-wired-interfaces.md) [Next Topic
UART](https://docs.qualcomm.com/bundle/publicresource/80-70017-8/topics/uart.md)