# Getting started: Set up the device interface Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70030-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-70030-254/introduction.html). Figure : Interface workflow ## Identify the interface status Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html) The default interface status indicates the status of the interfaces during bootup. To identify the interface status, successfully register the interfaces and obtain the list of enabled interfaces. ### Obtain the bootup logs Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70030-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 or use the ADB shell. For more information about how to run SSH, see the [Use SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-254/how_to.html#use-ssh) section. 2. Obtain the logs of the enabled interfaces by running the following command. dmesgCopy to clipboard Output: [ 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,UklGRuJUAABXRUJQVlA4INZUAAAwoQKdASqfApQCPwFusVOrNz6wqHF8s9AgCU3feK6KXz1zLrbT2juAAs0Km5J9vnf/9b0F+LfB36X+K+4P5l8pnnPN3gufyD/a+jt/yf792Rv716Xv6d/3PVR9R3+j9RP/l9U56AHSw/uR6QH//7PjhC+4r/gdqn9J/5cv74n/682vz7/6/9HsU/7vGn8c/zeRDpJ68eGTkx/itrlOq/+3nz/K//aXkbwoAQCRvnPfAoL2bWU93azr/xWbyHn+iP5miP5f9dWWxZhvraXiVOq6uXNzVSG4y+ofWfJgjDy1OovDBYSVg5Pura5uu/gWPnYpjDdeFiIZUBfYCNZ6jD0qaAzqF3ylzOGmxk5WInbsEsTCGrObDIZp+kWw4QQldj1eOwsxFuRThP2xqm0Gd4LajTX2opu1z0+UjADOVdah7hRs3p+eITpMQ9aR44LvOCA4WhAqzjL+XByeaNlD09u4vYsb6jI696Facy1EJPO3K73EtCErRbc54xuIZi5fDkAG530mlXrs2IY9LgsZZISzHouhP6n41lfpKNTlDAgwivw7Xpj1oFiL861a4x59m9XvaP34QKqxcQeKY+6RTICIUh6PwXnC4u8RFuig3KDzfiyhdXu5pauTcVbK8PKB7A3B/KOOqfS9PT1JGD4iIl2Nbj7tmAnq176EBbrQn4mBw70SwpMsMl5GkIk7sH2F5P62+l3JcgTAT/42uashCn3Diao+qO1Hx2dyX54PkqGQhiTYM8QIfsKK26HyZGA5NaDOT31//tHkCM99VJ0oG7xjOR09KXorTXMmFxs52Cjf3F0fbpDQcpFiBgbZTYlwzTKgxgK9PYgGi9TjEexEmZhh109HaHugxvH/HOGZFrgkhuzV6mrnVfUZv5D9fzynRkeB3FXpKNejJ9OlLyLGKc5M+09Qp29qkcBtSNJA6+vLZyQjsAXfjnabqmjzOCdhoOgzOcZZCZLGnkST/E+Ksyn0fzUi8by8cpooqQoYWTivePwacCQ1ly3xy9eBSaIJ+T5F8fW3KHJXF7OL0dxiJ/9ih6Yaez2ZeF7v5Q9zoL0bXBRnGSZzZmjyo7vYz+K2pPS6F3w1t1KXOxlCFNRAD+NpMRWj1EnFDrXByN6FRsY78eMb2CXJPtGOtaFgquPgYaX9y7+J5rmz6Tz8rtRxwe3VkJMY0rg2XJ5ssM2RxGPEv7l1bFGdCKoaGPXJl0FWYBVIz4pKRdUUxiPzfwzp/y6iV26/Kn5r+RZCabNX3+VSaHeH+CJqbQUjWXRXo0yz/Xz2QH46juNERnenj6205UGjQQE4Chuba5cfXNO7iTz6kFivf5PvOUGehnk519IO5/5t9CVwJMflUUXDipkvlD5Wb9UuV+tKAkO76TFOFUH6nKvYfY8zurugyzJpafqPL7/mU0766lnwztXDjjQDZsYnM2ptfcZtXPTAyNJqDnWLWx0333GvOajWKDD0RORhRYNUfWBI9Etm4MCxRKU6oNUMds6c32gc6xkJjmlHiJSrdZvlnqFY6NB9rn87jDnufxuqDq/H7z7KHotgaN9rBk3rSrj2gnYCNUoiZ8BIyoWKizdK8n7bZwVoAVpp+uXQqHEVEqACB+OHc22OeNnQCqsHTcgVU9zYU3frNunkiHipn/hcScrHKpye/ISy4F2lLmDw83P83Deqz3pFUOqVkpk+qO8f+OseJZIEOxjVKkr+GOQ3tR0XorLvp4qmRPLKaSRpQo3+YAN/KeD92kZ4ncRRuGciAijfsECjOZkE5fDmodw7R+y4kYfraDodeER2RhdPk+ZFWS+F24VjAAgVC0cbZfXo2FGZje9kPGxzvQJi2r/52f+9U7AU+nv2sSU8RMGFmYDfHDpfC1UFC2jYR+jnSz+pGCO0FicFK/yy6PaKgGf7MRO1EkoD8zbbB53LllFH391waGBJJnPoJWE0EaWbPiyO8o8KwlDkvdHbEakC1MZlWpy9ant+h4dNAYnRKGmFXdeMbyjucZjnfAWuBOGA4f5eTlCZI7QihjFKiAij04PQ2+rsGOjNWi0WWNrUW7emRHJxpKBu6AWnEeXiSBnjVnvKcPwGt/XJAvSVFsNdpL0gIIsQu31m2k2IEz5IavdJ+ITGfbuZve2sP+HRkd011vzM0IfoQM5T2bz0EsW/fFFY2faWCbdt2zbSKBiLHeEI0SnBzVBstkils/CUwSy1WKSM+lrYdzbeP9Q1AMI0OLITGg457ifhiEgL+2ngP3s3rkc7C1nmS/Xnkl4twi0nj8GwTfbZ+ZUWlTWHnvlt38dT+QYY0oAZtqlGKzx0Dx6/LtS1rku1DNrPVIsz011JYxAUoj5UcBSr7ZP1qDZ/gtYIRsGIBsE2TBp6cNqAyG5+svdOI5C/VCGYvbFeeFFNNAUMKc24VJzw74tCKpC5Oshf9vrb02Zuffb/lP9IFndJITgHkgKgu3UNKtaALubEBqe3DfdirISc07S8ezmmgEKZ/0JyJF8Z8KOBUItB+wveBwfY7H092hxktVUJRFVamfa1/wV1Z9ZiWWkZvm8ZBRgsVPWs8c2synu/cxJA5xNJACL8j4SsLCwNdr67pwq2s9D1Hf4yMYEAhXQhYPiuN/jkwYbPBSJ4sbObxFsUnP5z2bW1nyKaqE7+heki6aL7QjF009dIqfdNTYgPQZSO2QiNd5Wz8b4YCQt6QwOy33LOdyiFJ3Tdwz369BhMrPZBGP5KmNHt/4YVs1b/0heZn9Jbwz16FhsNws087lfLn7dhty+vzWT3W3p+4WTewabeMUbymhKFwUV0wRiFijM3S0FweLCJDhDixM03/VCBJR5zaLpGi7kWrktAJRHRKVNUZmmk2KHi0+u3MEdtOhL0SIXFjnbYlNOS7ONw2HA68F1L6mij78DCxq5xZgixVvo+9vtTUHdaB0wzaN/9OYD8Us/8KXhaFfUTevfAX15ft3DGYbgB34JY7n30kM76Brq1tz9JLOcPa5u13eGqcnGa9i49dr6fO/GqoHVpjIpBwRQ32ySl3wmPj6TSb1WjAvolAe6IYGqKWS4JMGGOBzSbVWtzt0r+wx+k1pXoti+AcMRQtzvwP6cQWHIZ33w32mb6Yb+ny4wI6W3f1DMh77wxDxfYLh+qmIQSlUlVksVWcuamxz9znYMuwsquu2/43rm5vV68Yly1CZEYKNGm/GPRJtlR6YW89fs2tKjxloPYJj+7O+c1NxiebjznPam7Eu1MfRVWgXteu1A7BPfWBsOZ70HX+zEVqZrQb//avKcWb9bNygld1REUEoVCbyv/6on/zfmSnTkBdlXXKGPHwH/9sHkmz3l3YG0WjNvWotKNwZrpIGxAIYLTpWgGNjk81nOQAHLoRTq4+fS2CXqyLUzcEpfeJVu7GOCYKfFfRezqfyyLrHBGn5loIHVo6rjRJ1vGPQQM+YIJOZR5vIb+9ZvMnv7Efx1DOigG5DpsNtlsg7qeksEeGMnUqnsDm3R2p38maH7/b7VwsHs1/OYzv4KEtBkPeo7YrG+jjYMPst2k+QZM/Lo7sYe0/fU1Kavc4QuqQvR/au3hc9Z9mF+K2FAzjbVaAKB1aY+KX+Rlz1Vc4TR2YASxufs2rtPtpGiujnZKR9Vtf7NDKG6EKQC+ehddLLjw5onRnAIVQ3iEEgrSjV1XXa9IzgCzsj5/SSmSxRNYjbHEL9wzQkk2CEzEfwTtc/VT9wv3SzZf/ItgUw1pk5eQSqCVOXm8SVylwQw02KMCYQsEZSjPd1kACHDSJZTWl08KtSa1PbdiMJDVlOqH1DTBlPU8BDSiOSZa4kRnAFWJyK/5+BgfQUDiYL2vJOc8MSXNrZ2Y/FZElUq+ErFr23xju91lSf8JSPNNLe77NibOuIrEfo4Tn9gAQOzUfcFUgoc45NSvi0YVqZz0rR9QCAJJ1wgnN5c8gcWmWZ9CAzYwS314zACgs76zDshnuZhQtuQMoPV9qG4q5moNnULqcHefQYjkixrlQW5Y8sM2P8ys+RQ3cUuPOdZXzKqBp7+GsZVHrXF2od03e8fXKpEr7cOuZwPaw+1i3vEZUQSfObMS1g3DTH7XSpHetiodUfWQnt6or31ZbFpJpiDVrReeM8yvIsTU+M/fEdZknQGEbTBlmjWfhLjE3HvbdiJn8ZgDo6P6pSE5lWtfDCRkL0rYg9ViUfNYk4GtCqg093dEhqIpqpW0/QiDg/BusgLklhgMa7M+Zj3Smmfab3yLHpnPerYKaKY3OT1Hr6sxIg9zmDHFU5k08Xo3JDFkaEx9OsIZ0H4yGs8WzdvDYW+/nVwg6U+3UnmgEpqCx9puVFms/jI/2Bq/IAxDgXfrIRjYbfBFvw4tyjXTK+by+PvfErDix+/wnMgvJ5Z5UWHqGNQhKpcsKbJl0Xwkomc8Oez6TXK22cToLTyrayD2vh2gyIe5M0QfixkumVjGdQmp2Ii8fHn77wkb+z4TkXZ7+IsbdMC26ncL+LJPCrIMhl5orzJgQp0uNpNFFzhuxz8gk+Fhl9FPeMzzwEcnl5xb8bqkwV0sEgvCEL4pOQYQrjMxzm/D2n8ijPqtqwdtknpinMxt4EcWJE3xgFVw5ScHVHG0zxu1ie4pRp8Vq1XSp9zaORJ1anDJBAMXO/AnlPv5nnHHXeCFM837J3f8XfiHegW58VidyGLwJSND8iC6qYJ8hPt714pndIfDEKbCZOlCChqSqHroXhiev9nvX6J5rchidn9Vij/nuWAVFmkEk6QGNM+723r9XgyrbIG5h5HyxUluwWdf0cu841U29UL7+rURNRnz/PHnIpRQMyjH1FZJGkfTktqD9OyK5Hg7UCYLZVEP+FA72LFiHqDu8Vx/zKmbLkolwWnEeDS2hltE46GklUtHv9Ek/ZKZAiNQF55lqH+IesIaMXmNXaTlS7eJjcnDVmHm1qVrZnuJdircoIybVvbbLR0pXV23XSywtSywwOAXBg8MRlSYOopQoBuvE+MMQ/X7cuY6BDYJQprJDFrpMi97uqBrR5qgQ0eO4+IA0T6QiguaAN/Vc72Cb3jCtxZyXqfrRhYJtFlwdHG75PF40z2IFaO/5jGGSUG25Pa7lABzXoi/vGIntrLxIluwNCniPyfFaEExV3L4tZRkDaZnTsDBl+yYMY2EOBhVrYjfyA9/ZwIhLVAuxXQ1oSeVgVSEASXCpiO0h1iwNJoPPxd5FGd/+zZHsfNE0G93hsYxXfZuyh9OYv1tP2RUEdVKsr34A4yEooD87Jw6oY+CS8AUjuCt5QK21PdLViNiKTtLXzcK7NVuYaE5hGzzLrPOXB/L61z/LHnyFQvnNp1NufNVYUwLyzM+GVemkXj3clwFkkSGLYf+EINYzJsHE5rWjeRNpwW2hdUdtAG66pNxpZV781eLhEY0vaLD0IuBO2AIu2zljOxQAKTAm1D0oDBfPy+YusS3YghUporAgP/98SnkrI2Jjr+P4Nye9A2YEgg30dC9IF6wLu40CBDtfAuD1hwXxo+DqfBGIOcB6kWmW/iqnt7FRjwu7P/AoE4QPAGWIKtXFKcMldK4OJxYQ/X6xeT3jrC+vBBWpjvyV457BE2RBFzeYlS/lACYgvPe2tVlZ8S3IFCTD3saL3kmze3NPY4NyNAtMFVVv0YD8q4kQFuw0Hs+WG247Bkd/XkWgzj37wxhTZADEoqeX7VmEOBk0zmbGaeOiNt+pegkns4ZmJE7YUS0Ceok7MSSXcv/Wd1Dlm/66AcSTaaj1lYlUcKlp1wQmECcAyY33ct91oeNLjwTB1+0WX2GZOw0F5N+P+M27JrEu4dXXVNXsEaANEQBToZxFnwVQwIjyI7efnxMy0EAUCbAQMOXx3rJvHk6QB+78f8fogkBnXSRbCiu+awCVdcIgstoK8BDsLtPzAUXLjTtkK82FPTrBIA2o0JLF5udn2xWY1Yhoqw/EKzYCj2C0ZYA6Q/5fyvHp6QrNhxAC5dIfNkrWB6dubveReSXLBA2+eCvNk3/wi5y3PAglp0GwIBxRDXeQ5tnIRdRct8bwQt/enedc+GSgkzaFza45uhHWp0fybwK/fuUGKvKbvBeuaKLxOT6zfANDd/JnEwgKcrh15+F6a285u65zh3s4FRJqFs02H95WpondceYqdDwWELZsIiv//rlANpaD75xr2qkXeWu/v5YJEfx2xQEr/zd+yI8fkLAZ9b0S4B3E6Y5siMzhV6TQKNO6TwnqMfnmiDqxspgx8Em5oRZhjg12qzb8CjsCtrgj6Y77WUyJKe5Ya/QaLgWK+rhwxt6jjgNRM15t3wDqZugaYvy/g1cta3+MtY/sqF8vw+h6n3Kr3Uss5W4ISgpLI0DWjiCXZpl9qxbj9CGEgmkZfvk2MonhJsjJ2VyAjWe0T9uTtu26euAdQPC2wuK/Hc47wD/MrGu9o2pY0nAmUzrpmm///poRPYa/abcwEKM96o0FNmoC5i/k+N+nx5U1SWc7XWhaLIsW9vE1dCnIGMQg27qwv5LYUX5WE0EZq2Lmttizllc7ZZKTKWfpVhs0Q3zSqt1sY/8rk6okPfXRFMWxEbVtB/6fMGf/gf4WrnT5bgLn0yaJjud5AXUVO/A/Ohp68ZvpqPtq1zNNZ8YsJzxctpVkrgAgm2ZBHwbDMbGKQqM8UR9nkm4E/A11v2xPNtdOUs2zzEP5luTscVlffim6+3LZhf4TDJGyR2ra8ft8GqoYx2YM9R1bbrUcJo24HS55wYFkA83mi5Gb8gYdPQQq9Vqz3znLl/Kmmtce+g3Y5atn0PvL8WDcmLp9r7jwBvc2GaJJ03QfhfmLt7V3eZSZZmxNRX3WJhpwXl0Z9cY+KqMUNVdZD2DAkoWxrPbEYehKG9PpYlinAcc5VQY7TgsqaoRz8U2Uh0Iqi/ZQ0S8q+aGCVkzbZO0VP2imKjTZ5rPTz1A4aPcx4PlBkv4Y+o6z/tKgHOwX6O8JW2KRSwthC4vHDY5UFYOaXwBSok9Rpai0OeS61X38SuXXglXgKhUyC5wHziWmzwpMaIT3V5JywoehKJcQ0m6reeBI/B8lLR2oKiDNlb9P5ySh1qgAn1Ov3tfkZ4eHx+tnGUTTcupw33nXaCGA5hoHIfph8vI/xUSK5U/KUyd4m5dTf8ZuO84trLsZs4NE/rpivUxm+YpdbtD3VlE4jf7bPms0s0/v+R6NnBEgXX8w8HZoo57V/YcMWFiabYejZwRcfiKjURVUaAA/AwbU4NWEd9uYRSGIuK+ltAdAt6VtFez675N30CJoZ90fSJXBDry3wdG0v3q2dZFFg5CdDo19s4MGrotccGPVdpi++XRVmbSCJNCFAruUSUF5qUGAj+xMTVG7WX9AyX67VqdYJwOCy8COmig0lVx98t9sv5PGmlBEJ6Zcf6oukXTm+xmCeq9WxPpIk+Nb2rBA3ooe2t8ye5QfRrbMoZM/IAIRJgIaAq1GId1lYJFyIx/0DE+990u3hC29tbhmVuD23hYqn6XQ5wcerXptA7oxUxx4h7u6yb8ezG07SpoFW5RKmP0DEPnqSxAaQ/eOEjPuF4/zdkkd21bgdw01cpmVc/L8YMt+yzB2EMOCclNva2igWIoMFpIocLzHADZbCfmx08K6mFHavQrDXtWMxrk1Qg+/rcBPbA47F7WqFCGH4ZZmrNM/z22H8iTV7zNZCn1IZP3zXxnpcriEftqGAfa0Dz5sNt4KKUjyIiyhGgnFFr4f6ZWJTkBpGSiGq/bMfRSOQ/QYuR49NDp6xCPFzYFAAdeWk4yCp9Q6fY5idcrq1Nn/LJ3Vixw/ze8rz+eOjb+oEh5WQgxs7JMxvPz2TIcInB1G4S2L+neceq+UScZquuyRWI7RWWabJ+SNc8WpJrc5T2vO/MRMFlfjQ7UO6urorIR+I4JBNYRT9OhO68OMshsgZ/KTYyIV9ZRZtD6wNQj50nGrAGwsgYwab9F9ixsIiuncAcqFBaIBndxWavJPeAjK29qU8MCv/iKYpF2CkdVUHwr56Om/4JsvM+JJZpAndueUFzL1eA6C8k0VPYrVDt12ZHDrMTYBRO8pC1LoyzW1ym3E6U7A1QQ3WHw/kcnCVOhHhu5Fk/ldWPbTBoHsKvfm/Sb7chMqa9F7UNXnr1F2dyXWrdFYg7BElZnf8j4IViTVnSssoISVcInSf4Q9vQaE35R0J0M0YlJgGcm0UCZAb6/aQ3OSgRC+qw/QRASUhqycZMhXn0P2KHE7zM3BvPlZABefJx5k9Y8LltRj9bGYg/AryWSoXDZUKFgxFCb5ckX3VWiivvi9ykbtRreIxTbLJV2uix185KzUEr682y5BzSyWP80vpNNHcpaKoyhL8kop5D/L2DGO0P7SiCp26DvyYTZtVH+qHU3j2Ax08we99i9pIdW/QYyOWu8ahFAH7douKA+fAOX5RFigWmMpBGITHGuPjTg0pwlWzlm3bzXwCWA6v8wdIfAwfgV3o6QhBt/7h6DwiSP/xDwR+DpRYS59Z4t4oxfa6/7lQ9STRB3XHB5CjSWovd0rtQxBGtyWILiS7tYlz5g+9UuiUkf11SlAjcsPYbsiS2gVz73Ug/0GjTxpk5BVL7QaTE6f3q6Pn+B46rvpILEqvLJoM2wvo34j+h1RPKgqZd4Y5jOHhv/n1UeBIjavsAi5p8J4YE4MF6JXwTrMBTbYKSDA0gx3iCjgTZ2Yzmanl9CnU/QDBSB18i4IbPs9pJFxfUwaBhVAAGjbsbTrET+TpvTGcZ2kZqOx6VvI31LVYImJgXLwx3Zl1roV08aGxqP2a135eCNVH9j83Ezs+XpjJpERRp/q8FYNMLwEdRNVfvBJ2uFzBXlMGwcTxx3aHmYKwYi/Qz9ckrFIzEOXiBsNzC1ZlXXMxo0JAcM5Jw0D7cPHGgPmOAjJ51TFfA6i+Rw36WhW3wgTgIWM2qEIVVdeFirfmj1U+0QVucHFq6v1iK48FuL7xOYLKkiVeUaKInV2EQDYgH9qafM17zWLq+MIVuJ1HbRMmnNVAbJSyk9vsH1AL/WtnYej0ffLWBI708XzUYmoo+gReD4gL9jHofmLQLFCIbcOt/4Vv8b4PanKWLgakAbXLr9MR4yWTRVtStClEdR25ZDO4ux6Iga8WqCRRYHnYh5roxEWXyvoWoTOOyres5kgGzAol617ALuyli01fK0U0tTeyIAsEl2vzLc31a/hCP4lOSKg9wdS7pzPtU51cskEWySaaGv8+D3IKWSCe2lbKdnp1bDBYOy3jsOdB9zM1Yw7RbGVJ9J08WLuRxIhaiHdr+afK2OejH5DTHmgB2Jw5cnQzwsqsPeUjw8HmBi3WZnaymwvZxnpkdzbqF3kUNKwbKl4lQUAjRfRCqpL4EWkQuV1uBiighGc6mr0quIksRqHA6dDW2GTsPEsUO/wiZEphIEmkHIwuEv8vuLMlnrnV9zBjkNE4R1+l8zfQeWd9+ZgAR6z+onitrReakHq5iceuL39OeBlh2AmiTZyUqAtFVM9V490IHJz19YTfjghAGdqCYmkRuAZp36DV5dp+yMS2uLsvKTlsZR4/9zF+B32Tz5Off8f1JuAe7kLnqPMcbY/HC4PiTkl9m/rmyeI2Wnh92aSFQe7R/ao4/jrcN+N5IaGPIP+hCS32oy5hlF6MnkEiXDn+NrIoBf31djtcvMBsBNS8pzjSD2r+E1Ebxx4RGXX6fIgziHL1IQYQDwW6nMiIZFnqV5pQIthXBPzUeyb08PqRFCUq1D8Zt1us0xuCLpjTWRHDNBWbJgNyVy/LY1cI6MipHBYSCgQUBQfs/1sUeKyh9w1PsBGX6p5cvSZoZp/3Nz4ui48Yl1RPRPgzbCAzxMWcHyrS/68O0lRhl9X3qQWyFCbWec1tTzkl8scol/P7dRHc4C+MWl+oa4rogujQGqK6tfOIEH+UbaulBqhfNwvBt9pOxqbRMXrLJW8GBEClynp3iA8iRiRSIFsQMmv/khIxBipeTyygWm0hQVim0QC2NH06A7lzO5aBtcsAOUaYmi9B00/MuTIaAwssgojYwfWs1dlkQhiSKdEddQGmduvW7/eaB6nYUXXqrdYWneT4OFI2hDRadETNQXFoKj515V725JASTnnmufXaUMMDojUXradxfPFEmDQ6XLCnO4dpUnVTnuBGP/aBtvDy5KtAVrK2xK1kcsfLYHjeoJCTNKqUgBilyu0+0P4HS4fEjoKHDIbJX9OTZ/yT8vFzfEGDhg0r+xou7SAUJJdmvpis9EAfG4duQhhUnXY6B8YW0c23bWGWNDnEv1BZKPA37JSgC2JUeQzwT0I2rWJ51zvVgn/xXAKnIRbLcCq6HhcvNzAKPFyFQXdeugtQ/BeZzrVxg4o1BNAC6DorewNGhrT93To7GekdfDBqAqq5odrz3hQlmFpIzrtgdWOhPqfmbiHZ9WLNTJypi0cFE0ek889Zb+i53u1PlD0jWCCQCO+e3JOMFlzWJL8AawWabVxtxdLZljYwc6P/IF9uF0oN9V0AAqaFAYsRjWwPHim5zxD6beMXyO22MVj1f3vX6hgG+BWBWVI8IiUnkCQvgz4XGW+T3n8zjLPbuGcO+l+k6JQ5e4kUcUux2KIyVyfnDZT5yWrW9RoZmWKRKGjRShCgShv99R14QGFxrTJMRYVF7UNhUp+bgV55ivC+PFWp8L/uDF7OQlEWE0860C/pt58Yda1A+sbLmWnhhJCetwzhs04GSOgS1rliSEtOxkztaTj1WcGMfS4hpjU70ieZ4T/g7gaqPj65xee/Zqi2Agx9CiCZA1UPSM2f8tNdC5wNW+miAlY1V/uhAmxgi8g5gQoqEzMNDy3tqXNplpFXWLQqXOLRecA9vsaccoq1Uz4lkUDzbOP6tALzNMaHyeWD2WQYYc4x34AClzMttvGS/lzkNFo7fRC4e2lKae0uzsfhFRVk7l/y/7VgYix8B5Jvc741qxwslVCuPt4A6gEEIdYh3kSj4zE9OHqynb2c7M0+pLpIGuUs1RzI/PQ/HcFQ5cuSKJF7mxP9gwhXlUFd5y34IRNlruMPM7qSeMfjW/eeObK5Ai9kG3j5qzZdhTg89WXYY+aqHccJZyM+sjuoi2XrOKGMyZLi1KA0x8EiEvXnnaudl8iikbB0lbfFJRLOsPlcABE1Pa6XAEOL20e9Ukk9s2ywbD3dHEdOxjWqazF4fZHdmVlBnudDyGZKfhZnGPr53OB31SWAI8ImunEzhoah6eyBem/si4FhBBh+nxOJy5xN49SBbKJeKeaAzkfttcPt4zUjcxtVHIhR28AxL7fmKog/1r16kRPum5MW9A2KvUapKvqskLNTHQuIgW6F4nKKwLIlfsZOiyzB07GCeSUUPir1V240mpierbE7x1IC+HFv//qgwFdKUYWYz4SaVVpQjjvPItgwyn3XnPlKc2tK1bFyXM42cwrHyC1tknXqVf5VbxLrbSFfX3HdsjW1AG5cEEA0XFZeHhY0YkCbmub9S55/PYJ8FxAdkcN5J6WhnitZHEg/ro1yZn9DWfnbY731ZWhzIM+VeZ1ZCMbYiO/Qce48iLLlgfL0ozLRnQzuCkJ40TWxh1LxepASblQ878phRBiN2M8a2asGJ/oArevIH0Oah70AecMar9XwPomTWZXSVFTapDINpdYeDImI6kATMnuAW3QUVcYWEg/8zZhMsYmxclUq1ffJavJU6ca0wle2Kb/wMQRc50C90nT2+dplLU3y6tBlE/6egW76uxk6afPBtn3ZYVRMA1ptWxLWiNIqfIsRO0EEcXAkgZ2kH2MbAxlNGIIRVbe/kn5tv9F4XphBqnnGLmJHTydAAUD+qnxGFbtTVWSjtfY1yFyyqSNgzxwqinXxIGbx7Vi8UJzpXHbt9i+6suJ283r9y63TXtE9dYGQRuzSRuu0L23xHKNr/N29Mf323diqZmoOwQyJMAlWT1iJrcSY9KdJamWkOVVBH0+Ozde7ujrQNIsBKhqyvb9FUSUnqOxtIyUTqUYFBELg2/S588HetYAF8m8o4UWMkXvhKKzH+cyKh8WS7TZKk85mB/+G0AhrbCSIcEgOeZY6j1mOAOBKbYLz5sNL1mj8XtamEJ+LZ8ElD/vclmMseJs13L4v7sVFVOH00lBBKFR6SopXfOLBz8dmKEu2H0duN9QuNgIiMD43LR4kH8ThPcbyyv0c6m9aJpnPTQ4IHMimnqHE6fdHxA4WyvmtNuX1NOVsApO5AQClMjoRuaczR9fvCBmHXaIIKxRFTQS9ZSMI6j0MPTHm6tnfO1SREZxiGM7r7Unb9KFCCyVudi+Muj0TliDVEz08vJhxOh6NsKATIepeyaoyx/D/zvNyXBhsLdZLSz7MEhx0ntjEGS1h/00SM5N3pGUE4TiT8EfEOBwXRA+m8FhshtQ4O1ib/8A3qBi33m5QHABcVNV/+cKIgF+LAqtOt7JJ1RQED+gxqJ4eUlgIfD1Kx4+e07gUn2LmbFdJoutzvNCVQ7ebt4HEDO8o+5p7fyVDGljk5Az/6d+aXue74vgSxeJhOx2/vdCppCET0jMqt+sJueZ05E0sZwaDAVMVU/ufT4ziUl5m2EKacC9Duo5Ts1UBudGhMivoR5sW0P1qTP7u85w9ydmA45AnOJkV/0wHLF1O60VYjOU7r739j6L/GQe4Uot2bI+2ZRMTcYU0N5rz7EM7aBo8rD0xbSX/kT2nJyk7A3BJZSOIgBtvqpl63KVJS/ySWUhEOGEPxXzZ8DuWoqaUhd0Rg/bSoSeeig0DwuqPcbmIr/etX/2k1du4lYZNRSDiyIgAb50ejKvQ8J5tYeAW3RDMpmpZDwCu10G0Nk91cWbzymUgQap+gno0+NOGCFy7SNK+WWXDu41R8JjBhFR9ni6U8S/l6K+vmo9y27qsGBvaaEKu69NWgSphBZ23Gt6RfsoMpwZ9DpQS+pDK0awAb8tBtgJJkTJXTH5aIn8/mbYTmmyPzq7UwogF8Py5iLLRJLgolVfTcr/t7Jlf1jNS0L9R8aI3PZd8HJ4bOD6tPg3/O5BIU3kq/8gSlX6MRBRVb+b+d+IXkCDhFMRtDozizaZ5nlZWO0l5jVXO06zWBf++vGAyw2jv78GPJg4L+teWSliupXEg1lmQkTSK0e4X2Jm/F5p7ytsWAG8UvgQKQWOX1v9LgkTocuHs8X5tVWCVtoGD680ol2D/qe3JdxU3J2BTmnOw15vrgWtvUXdGOK7yxSPrgOUaT6DMvl8Wtv34xqci1gO1JxNPYBcbOFnsCd9FoBhNhZ7FH4fFI1IEl8tTXnQs6rHWE5HnS7p2BthQ4CMk39IoBQ5KO8lrfscb1O6feZIAAhNyO1+z2nIj0Cw9dc4qEgRXCK3AWATVxiwOHyXN+yl9RmoGPoQEIcXsKEXgTQaB0U1RwGCTKXlPbOU8rPbZ9CHIKZNSgCOpA10QurROmOqO0dTx7bz/708cO0GEIXX8fVgE7ZWNPlhP9g3FFlHjhsKGvjNtEog4l66cH102iBgD2h2JdH9FgoXHGGnJwXTJmUtmAoxBVgPpTbEhR6l33DzTiNZ8pZRlUNfRFoqO6hsd9BV7Vng1I7CQXsx2VFWmlRIozy4JP2D1qnCSGS7lI2MpPBVOqeHlIrPpGfgzKmT2HCFNyEFNpQPHgD1Scw6CTVeaOdoHikDOzWycfjhL5XWgIdnR4NT2bQuT+jtQkyLipdb9gKJP1HShyqLMzb+lCJD5+jg0DBUfBaV69EwlwLZzPREijHE4bHCke+bcxUNVwXbPEsZLDYvOsYCUcXoQsYOxsxVHKtQGN0XahVqv+HKbSD3ORMOdLZBBjVEgzRj65SQVDIXWSArmDYNurZawSkeW4myqC3cTl6eY2KYtLW+HaoKKQXNoNjeqkZN/X86dPK8u5JmYJX9DgGi8Mu39Sk0kB2Xoi/UZjUXbjW3DCl3yAPjlJ1e405SefvH1CvBrXhph19MglmLOA/cdLZf5D92RPwGe4F10neqRn93wwIPsY5UNsDWKVnOwoSvhBTMx+uN0n6miJozhf50ThAjV2ns8o1/+kJUDC7NQEgZ+svG7nZHlCc7prnaXhYiR4NI++frR7xuomJfiFgYwivBVwG8qs1Bnf/1QzUD+foJklGSyo4ZoXR48My5K3mMRNIn1mRvon/+WLs8og1tZBbPZNWDQCOrYIv7aMJzYykE/H5v37iOX1e/fLkSjIQ1ikyNyTPcbnwyD62YvF4+1RNwP5Mqm/33fpTwUXAdoD4nmBsxa4HW9irxJrGBq0dK2HTqqdFARINh+GWUa29FVlUe3QEtrFEsAC+wiGwjSA2zAWm+jIzVQs8a4i/F8WrXZrcHpE01UoVxPAi5DvUZFTn4f7bkkJKB90uUquTU11YnFGHWSXpbbVaEliyGewOXNATnqNJEh772FkknnkJhKKWFjQsBoCc1BuNd8ClIMY8DxkaO8Vy1kitiJXEk2KRJEpyAHkK+Yqj+jnMdG6Xbrev1YKJPHMlXikhjO/mHlT9pClVK7EU9CNhCM+P937jfVQXRMtDOUFJ5foQlxlqRftTsbtAwcZ6hn7bvNEWtVOmQ867Zf0NUSNM2t7rr3+oxWpJwbRZwiO6OBWi2WzKBxwMlC0Lr/USNOYPrBQzWmCTA0VTNHT5N3QBSrMq6ZFvsok6+ntjP9Xmzyv4lhrNPYjrrc4TpC+OC/jewJChGS9SSI7V65WO8pYDEdVlHLTtvO92CGbtYmKKU2D2KytoeooWzeSy6K+ZxZ2AMo4a0H2RL3MCZaa/AdtJHN/E3/KM6iRUKvbIBC7AZEa+dw6HHT5s7s8AqWgJL/7SrXjdfbOmSZHswCfNN9bZlMpIvmSoHRm2iKcV+b22+1rFD1iXLoZFT6eJKsUs26XfAu2EW+mB206Yd+JxbGoOs9RxHXWPblEK2HQRCxlcvfrLbXRzDwuF1PPoSJmhCf++lwdi6P5oaoHpmv0ThIQA4YheIQ9iBq635TG7o05cJ49GkqgBSlrztwNQKW2Gi/oM6pfWoe6wE1TBI1Iky/VOTQAJaKQOhZe7rAxA/1TjJ+2/17eCp25wplaerpVv/fRXGLTrOp4BlSFhBcCbSQzOqhinaMOj0V9zuuMNxeo53T0yyvHamWIFVDCB1gC0guiSkoL/Na/2GoHC2XR4wBeTV3Z0AEQCKizCnbCa7x6Qz9InJ15qRVb4JjWd6Eq+hh1T5y2YhvYdIVxQAK7K+LLWy5FCdIox2TmdP6kr7ZdorPiMMEqyx8qH6x+zYCO2g+Seog+DRX/VbFGqWUClrRFxPYi4T/wnbl4GMzwHcaer68zVXjRCBDnTWhiyfpR4aEmAO8wHL6ScZA7Y7VVI5A8a9tsJo6EkBPbb2q+lJK8gAIrYIIpKtZxO1AFWqbYWsRuucVjA78n8iAUnJ2Dy/gF58aVUVV9pa30MK0bMsq4oeVtQmnMJtJxQe6PI6J3Dc/eKunZTnUBw8r5T7T/9D3gZcL8sddYhnGKVoCiTtmAr3KQUAX65rpUPgDLB5Bj1R5zYdbmf23+WvADlm+BRAGF7uHcsdehC1WDJW7t6w969RicjdnXaZhMLjhxYpYkaT4Y2WjvbBxfyNxmbxBB4RRbXORL71houvnRqJY6/PT2OXySXW9NH2JVc6Rur7NSCRhRx25TonRJFLUOipvg8UTn6pQzADSe4skS6sDeb5QBCNh3i11VSMbRH3dSLYVAXjyoMgcCwTLXPp0dDO659DrF5vv/4b2wSiC28j9XsS84EzIzr30Qr0x9o/ACL+aF2S3eBuLjg7sSfCc9dHhaJrtA7aTV9iGb1F7BQ0e8zSr6fNZXMmgE+Z3Zq8K5Hh7IodtvSkH65jSrk5TBsHm7fLFHSxl2vUxzK/M00uA0vpljmBEXZzpYWSE9RKrA5WFpNff7plpCtPcXEu6f5V36v8Otk7/V4UqKJL73bRvJsFTU8yVCCfK5etlWf+aJf/7skukxTrsz9la7eiLfqZAyyCqccVikkpSl/WMV5nwmSvSVj4651E7QEubNXYKP6c7uTMqzs9bTA+h/kVtbt5hoV4KDjGMhSY/SrKjqdJ0rjAzM8xJ/GNvjJgx8o/t2LN3xTEaf5NGMWycM/pxQAMa28+lHaWSV8ELw+Z0BbuUwkeY0fJFeXAt03yP91+V890BY8nkNxzK83og20WRk42GyXgMrnd28qa5w1cM7Mj8mSCUrbioVFKO7+pg67Ib0YrBrRZdIg3VmyH2RirjCPLu+igT/8I82jS3PUntEj2t3hflp0XHKz1bYiHqnfdcyAFURcckbm9JcWqS93r9eMx6FpIO+8EAAEAZChmk9j0efDUCdpaR/MwAvgJGVqKmk9lozvagQc/jlfbmFrQMlsxiiLomX9R/dh/0J/6N5vOJzEZRMkqV/HPjNoZsKqzXT4VSZPswn9BtYmpEYPGit6ZRkzC+A5NIZduUPK7y7oWLbxGUZELLwHhs+no4XhVexbyl5MKEp58L34ZckenpsEg6XX4MgqzwNkPM50EOucVGQdzMZjU9HRq7G1503nSOvk2Z6qJ8cvbdjQLDeHXbKHH+VXJJDmxCx6/etG3V/GWktzhh2YepwA6JUfvDEVuSUbWUh9sZbrRmnkLgbdjaSkBaL53ftQMn9Ge1PXvkd/dd4Z4rAJMO5yKaZrfSkS0yBhBOqXi8+2uXXRgj82G+h1BUEMg92r/AsSib0zyyDLphXW0gyZAS20qFMuS3zDWOzuuXbuxbPdCtx50YVHscocJxS9QsUnzuIozqEKr4sXNk4mdpAPBgnJlsfgO2ovnrp+Adwc6T9hoCknG0tYObsz/9eZyOlUaNGYfHHTyyfbJ8msBkxi+zYkMjy1iX0rlbl5Bq/3eS6k6D2dL/h6xRrOZYTOB4AFokdH9CHInQ4yi/n+rZMp+nPbb7iKnpYW5KTE47o/7nwP7iH2cg3NxiQzkk9ALE+8Q/59FLoUugY5UIZqGykVAW+MnlYRDQPB8xXAiEdwDBHSBztYDb8Ll4qV/kU3p9dfso8lVl3J3unCXWNIXo5b/XUJpYeURJ6mj9s5Vhsz9VJ7oPqekfm6Ab3kIFODCEKbb411fK4DluwvbFqoVUqZjcMdjcgk6nnPRxnLxM1Upi29Vcc5qazza+aGotXQlsNqhhVoFqmVki8zpJ4e2wumZApQt+sz7qONET8vmDxCdt9R4UKD6fW+IC0LYi6+yzH2CPYOAlDEDfhL26xv3fKsvVQ9MQEW/U3ZCf4uO4oDT1tWGiTr+yf6qtBFXJ6rbszdMz29owJSWOwo3S7kHulMJRisjN0nB+TIiJ31ztm1Zp56Lj77FQcC2B05WXC+jG5eIWALH588QcXWmn6VFZQZHZiVlkdGT/EipTAQnWr8M3uJj19AmOx6BT7ObriwhMHV3W/QLBOj2VFEYxd3F2/4RPtgUa2VXP+iK0Umeks6mAab57YY6FUjpibHAl6kYQLm3Kd1GHdNzmokp6t3lkwR/6H/YovDg+9TCbaI+hIGH9S4Oi6CxDnf9Q6qDlOqELBgEHBAVwLFzQaWm9RLZHxXmaw1enPsIbWOOlH/ou+Em/663FQa6ka2A0Gkg1ZDHqhAUsuBASimFA5bDEcF0yf0t8kuawjpAeeGpXJrh2vwGSbAa9JichRtvgg9Xy2zAAAAPTuLBxJ0qwqSyKu9HaUfhV671arLDJ+ZpSegWVA47fEI/2cQX+e+Ykd22nD+7pJyfABB2d8vZZP2I+5kPuzg32vvVA9gn9UVCcSWS0viW93D7egFs/Zu0w0oILSdQevX5Gf0L3pXMdYvWBjVl4sFJVXz+FeqCdzcLXZT/1u2Cn333pECGN7Ex4r63mR1wdPNPEE3KPCu0ksS4Ck1rvO0+bn/INjtA+vjPOjnDrDsfhXEHSNJezsIlktuX/4+/44E1iamAmvvi6qf0URqhw5FN5Tae3+VTAZC6kF/Tyu7O5Y74DqVOUvZsp+SSo+zxUJTNeMvI5Gp3OENkKsJ+fOd0lMuAVXvsi/ITQXXeJica6p0ekPMJw8Sdm0w1clnWbZG2io1D3VC9u/QKZTSbq4QOhEgtpEXrUR+X5GvopGh0WKgGXH8Np4b7lqndPU0rusjJANE4A3TpDbbBqjzN9unAxosWjkTcqyyP7gywPJe6nVgNaPehlQCpCWbD1ycIwu/KOSyPeIoiwTKHMsfIj03kBIX//ExCkw/E5XyYjYNdoS0DIUwcob4x0VWctUhXmSCyTE++KLMGnxtvwO5BuJhwpgSlquqM/RfBH9QIbxR1KkmFkA3jeGBlvs410jVQNAE16BvTQAbvlvFOWGwgvb5TjNAU4X4fkC3bMqzdhVYUPdM1E4SX6UeJj4xrtYwZm2q8CZrJXtN6m/CVrQkY3grmqQlsrDW7VxIzrU1O8LzRKOjtPfhQ5sVe5ns8CV+3IxQLUu41XGw9QyPhe2s51mzofdLt3HZZ+yIueCStXF03Mjic9VmaAd2p/o4YTDQXAXa4l7DivnejVzF8ai2JiSIaAItEqUSYDp/0A9j2XfrGi0SDtN3RhfhyCcrMCwEU/4kl5dT0LA84pkozApeFo5un59SYmYDzWULvKlvdFxkIrPYYt+cX3VI6550Uz0EXnIvdm1bZiDmIdehW0+iunmYgLB8Nj40SpQu4B+TskJrAIzz2040eGqUTiuQ93MYrgqwe6hPryJ5hrfF7NUsK/Afc2LSy3SFgytaESDk6J4l8BxbOIhDLj0jq2vJ0y6qPPmleDDbeO0AveFlsKdIY6ZzT099YQDvjaQRQDi0MuKiCamYEiGAm14D5AFEEWDWfsMhKd6swWUF9nY+1KyASzqvrk3KB8smj4RggEr3J50TEoWTjCAZ+apQwImB1V6LEjpDO44Cb/WZZKhHffi6rfMpkPfNlOG0vnIg5JOTikVIcRePy38WtNNJKOgq+j7HAaiIKzGG43p2q5IAVmw/TBQmgmiVZOMUWawBxs2zZA3XALrMB+skKVTU39M2KW6hvFmcbxxhOGx6EtVb6GIk/qmwGDbmOOwxW73IvOdPNMH+VaLQl5Z593QLW4Px9nIa7WrBuEKQ6U3TzErrAOgBJJflc7/p4+1MxO50ESii2otA5ZRgDDgHpciiQoVYdHPU9qhbyNrthIkanyufmau8rGXisPQEDGnQRIO4v4ZX1ujJJXQakraRDgUkqhjTqBusyV2P4oZsPxO+97BBCvrsHP9QNE0rBjBeos231j7k9+QOaTNUgIcJRCucP04OM83Kd5bNc5EAzslOLsUz3zsdmI9cewT60k1vE0d8YadP24oFjzPmHSrzFdb7aXrAe9VhkHdMF7lSV9tOyqMvtarv2Z88dqYY5deSwoJ30ynlW/xdahUARA1XiwgAmkZ/QEqYa0NHTE0F5T4qxOUkw96BUCYoftF1MqvBf9Eg2jStJahmECANydAxdt5JFxu33yZJNNUmYOPJhiG9l1b7kcx/fGy7kJAQpxRuujIg2WZPJoZkfOv5dkhP5d6TCcbRG3iaMD10ZsUXikODTxtC7TZ1h1O3NdloghglNcAf030bQAAB1hjCPhgK22JeYbcvVBlvNWRa8843Qc+lc+4baMUCTyqjfx9czqoMemM1ZTUkRzb+eYVnYjFhJ43YR+DiSr8gunmEURwZdNczGPw6aYuTkmtRQHYzW966iPgBtmpqYxQasM006aNLZ8cMwxYahz7gqxJDFyznP8xXkVXvBBCybG5ljqE4r6vZBnIQCeGRAH234BF8GLIcdQvPzep/FqbpvwLWG1sXZkcf3KntXbqR8rb90lY/S2b/bYBMwp05jCykJOAo4MPYoACa9aoNqcK6KXygM66dModHpS3gExYx8oXR8Qyy3J6+k8O38YZieMVK5KrA9UBQCpYlkHkFfbepq5pV0qIgnMgiG1tLHtBJUKzDgg8bk7fLN45mSgJz1omEDuBqQhluTv9icdkbslrB0I4yic1h0giPxFjuaJqnh6//r1OPdZ1jVs5J+1DWviOXK5QWlwyLa6O2tGwj96n3kPWHx9U3t554KWB/wCXPCLaq/4w3G/e7HRBG8pmB6p8zsjL/ume964yWPetHa20mzcKbYDQEe6glPRRhAVwyZDDZGTklR2ZPQX6Qui9IvxUc9NRNB8Ad7pzYz21NIkf+4ZSI0g5h9qqDbKxinHp4/oVzmFLsNjqbNIJVfzAtIX7bN9A5iAAHT5XvM+WAoJvYCYdTjNwWf2aOujmPgUmrYwu8wMEuRifdzXS6kAcM4tNS5xcL2fp54oRE+xRIJVGitmZb6fIBO2eo1PiMi6kNKBZ7mdMQT7LkCCxq5GJeiF6SNqlKgd0rNH8ndAm9LJHO23Ci2xQtrU06F9kfHYazI+BKoo8x8jFv22nKFct3z55iHarMznI+E6ovLRal65vCcTo9n1I5BpYL6QTAbNNmizjHIymAc916B8HNejHjW+fr08dhV5SR12r2MlSRuHLtULCQy7aHBpYv69YlVqwBN/l/uMIObRczwHf/nJUJpez90gHPN8h38+DGjLQYml/ZIdB6+C34OTWw45LW8gxEK2RLDh9uuVZ4yxvTrNewcAJPGVFkcqMRM5MbvvU4YiMEgqNXJeg9ZHY8nSFHR31O+JQsh4/wKTd9bNizR5iWcci6HSlXHU+Jzpvo7OuY9u2LrBIHod3QnzpWXuWPXm9rCpla3+MYny721eZiWPkYm8qXM3dqmhP8jMYw62iJeoIjl+IaSMOUBhUu3qH5fvtZ/+bwzmZ5a9VuvVfzVZ8pBE8C8hjPmQ92+4dC74SFAO4ZH22lulciOM9dDwxiEIP+iKyQE6LXHy1SarIs6YzLrWjsYkDhM4bRwQm1UsCJr4uVXe0frpgdIl/6bgiHTwo/iB9zuyBM9+6GK8YtztsNa1olOJriNUJAzImodCX7w5EkuWKXXzFwfLo+WG2KegjWUzHs7i4Npvd0JuA/BBGicAh5lFMiR2fY1dANIHXGbxph19XF/2LymUng/MdaPUpdp8B2K5zGRMhyR4Hck6lSHUtvkJ4y3TfZRSc2aGSzkOX+92Nnw3hTYAyFCqIjjoGt3vVleNWvqokgx3yNhK/KppPz1ATtWPAbmBwKlwH2ex5wCxbquXJ5+6a2YDneDXGJUqZt8qRVdQw6l0kpPFz6rpY7y+FOKH5DZ7eofebOJ9J2Gf15vMjW7h0Z6nOmq+MDnpSx53LoPfdMVgHYD7vqjMtvlOCONf6AElKR8gM3V1LN0BFHNl6wY2ihUGea4djUJCENQqrkiGWX9VPAE8U5U0gUARl5Lc8SI/zY7X3icVW53b4w243vOvdhxV+n58sUOwMxncXpI9hokTxYjFZzMQtnjZzBQxSxU3T4m7tqlRDowgKX4ezktu3Trb8SjdNlEeRWuUFIuqd1ApGU38z3MQACyOl7P3dWK3IX/xadF+e8rqEsvNQibGMVQ3fC30OgTtjCp3ZlYWjiKOn2nfWGspBJoL9CRtEdcJWHDBbMt+q+YX9Fh63hcqzWh53RUyNPMDUAdtj4lh9n9lqDollZovFqKsa2DcoAgzN9rBmipN5xU7013v/oHWl8+ja8S0jfONPji4OwL1g9/Cu/IzxibrzCCYDFI5jHEjijinG1cBcM3IE24eVbwThJrBJwcdE/OuJah6kSLw1nE87e7/nsPGV4Fmb9eTX4lQQkRg/Qfjvu8tXqY7bi99SHqMH2RfhN9d6zlB6OGbtaDrrjkQmoM9lsvXYQf5wNhD7z0lKM+EfK/XEQqLXBc+21VTefGGspWp4XBD8k7pzwWuRRreEUtOS5uUPlaBZkEaIHkqhtjRgL+GLIEPU2FAPtKkOkdjZ0w1g66o8QaGvhqccdbnbdgdFSCOMxUbGYXlBdRNnJDZwEV3paOY+Dk+abWTi35Wcmd4b9AoTUz0y3/59vTaxxwUgWqaAr5HAi4L496G398MZ9iD/yfnKR0mquAhVh5OojsjgAXOGQ/51MTjiByG/3s3Pie1eifMOEnGsSXBPSGiUMroWZgpeF/gq+WOUwff5LwmEXj9u8kHmpThl3VUq0khugBxkaUbZgrU0AULiY1g2kohTXgpoExYqRuFPWXOaiNpMegoEQL/dMf62ndiK5yWC+SLxuwyYNNAmpLjzFr4/PA0qZn0yWFsUQ4DwZq13RLt6uUPJvi9MBF+NJCLnn2lQbxtEeBXW9fabT1BBuA+uJAYZwqZlCsvFi4dCQ/QUGKxaUOr1KvEVxOQNKOZjHIhWTNCBDSf0uBTeZnwtWLA+tDKqvOb0xPxwYaGlAx+yACxtscS/qCJRHV2VGGssxtI/f0i9XnlFFyeDqU9MkMA89hwk8GwGxXWZnqwfxdt2xbey3uDRaS5wySMdcMuVmln9VLyVTtJWtdoEQ9zyn5FBJsnGjIGYWvb1rAvSoVyQKQTu0PHIt0cLg9Ycbc6MsYlM0aII9+PeP+x+OJ4FPH7so+hvCCg2GsSldX/4zMRR9k0durxSL2gWjXTPft3dxt5OCz6REfJTRaNR1OLjTkyxTdsSastpvDaJ9q1kBPjetCPVClssM2i8tvD/XOoQjvepNoPRJqCO1QvoLCV0kd7ljDEqRxtkpcsA4TFGfA5BV4hXqlqPOop5t90Jf6IycQa/7rBROi7efZiptR73IczpNTCW9jlP34QdcpUjHjK/vGvdBhLtQLEWDePVXLToezj2gd/9qQUn5j0A4dli4jpkDb/h37eBd6O0CzKAuBsQDyV9TEI0cXYmieFhL0F6Fh8+94SwBHXV0yj0XZ1NX1IHh6xCz9SoVl5LmgTcUQMaZwhDD/oBPck4EhnNxc+R4elt/9WbX7CNT1Y5shbeEduKu/4weKvM6v0E77W68qWzfFc2pfdD0rmDPPZWvBV26COvsQsKK0+YkycaCc8v1Zyt/3sUE7hMphzf2EcqEhqhHN+8B7i6ALQCf/8YnW/Tl+yVFRgt01PXyHn54/hn1rm6kTz04Cc4WcfWR9x862OTD3oFtA+zFzVzys9cf+u7AfHq4awCShVggEwcSWjZV9tuC60Fdw2gFVr7OQCcS4IhrtcXABEfUigUfidwyrSYFcg4jm4OcP11G7/hr4Dx5Y7zE27jAfaR5Srlc8AQ/t1l2p08tsVeuxEc0BFvJ5Uj38FWCn+UOHz3WcgziBLPGfw19b32l8hnLcPnGkcmxE/WkGj2XdCVWHEDPskqDQovBcdA8z4GXG9jE4G0H0QjpAx1C+vUtXv+4JQKYmrAXBeJbj1m++wXmJPSG04OiugC1KlLk0wnnuYC3D52stV+WwJOGkE9FCoELJRbX+oC/vw8XcRutuwAPUb06trKQbFAiGFtzNOodSobMm53p3VKKcphcuYBnR1DIYblfYasKk/CYAUwF3lSsPQvoWlFLeItTsdm9LAU5XdpWOKsEc9QJFjb9D7j5KizQJXXHYlJlsIU954lp/P17r0+Y/5yh/xO8K1/N6jscNlIgTlDbVps+7s2CmpWYmFBpyI7nHKCGeJ0NJnOo8HyWeRUc7eBsbemoJfClrPNwoi+WKgyEH+M1hg+L4gklEDtl59KYHmUqTjFyXGThlkxyX58cfdZ18qVNM49bW1HZMQnAjurhgL/Lh6xwpgm++aHRMPjVVLNekAfwFegQ9mWqaGOCUO+5weE713SVhx4wJoi4I4cHQ/HHGLHcdMZKViD8qK0CMSb/P5Eyxg4nvB7Wpb5urYsIAqKC7tdAaX9t45Q4Mn1/M1IYh/41hWfKtQXRdD0zme7oAVBXOKfdwgg5/KCAPN4llscnwO8CfICkBBqXQ4E7uuXMsihRGOehGB561LXgevQwOu/c1jqWauhpT5M/v/cHPCjX27EyCTDxO+/2Kf94BIPgO0x7dDbP1SSeuRN20qyN4tb5H0y6Gf7frUn2Vae9gaqaqYmntzbFeTccdrguldXYx4BpVm2lx13H2r54ljaRGrQ1cW7nM4LHu14kHtlmp3S4+VSeWmPch+aPp9iSG3A5cvPeleSs/qgjg0PbnmMwps6HyzGyubc1G9aT73P2ptAYBYhhwZS0DdfhXlsydY3HuMNFpaG7wGWA7R0QknkVsabxnvb43LycbOopbg3PRNdXTHib/vjUC9MUrQ1ev7IP7onBNk06KfJiDKDAiL5++pF67NOefGtBJP2wEqbozAE5eGjrYJfFVX7TxQ4i+vQf7LVCYr7wyAYybwUckKBqtPY4hUp6cFpsHDdgj4j0sftAzRDL6JDwHc64ihWdCMC9RGskKh2ZGfu+Vr6ZWtITQ93e97Cof6BZCjqsNE0mSb6SBwMs+MMsnD/89NIRuSxkLCUG75sy8cRTd3iuwqi6jseDZa+JKhx2l+RDWNI5g8svNq75F+Z7WBpWmaN38ie7hLJRA3HMABzYXbB1i4kLoK4HA3nRlAHSRoHvvWFirGzC/h3wjoAaon7s8jlNFQL5IzdpvsvGOBRz+At8EgfB6IeZxdXrhSuYr6oqkTScxu/klfWCRI+pMr9JyeD2N+aneA6CBHFTChMJGtDz6LKgzTrYYkXFAPIRShpuZ96wBP7x92l18A0/wiHHnHR+TiNSAOkf3k1+Udw0QAQqgYZDP+hBGH0uuB2siqBjaLOJOBTqR12KkLp9eah/d55LEXr/vGVFr46AYQ4cLc95e/Ww5h9gRz6huu3E/cO8a5Oi2L8z3/bjIojY/U/8urd54ECg8E7rOcY4MVxEYVQUs9P4B4jYvo2elTK+j/X4ZybCrZ8MjFmYqtkPctH5khYVBPfNLA9QyZbDDekuwZXXohxe7MG0086UtgPREJbpLp/qcaIj/G/UlbhdZdZ7InrD7FNDDeeLYsLiwi/XHSJiBE3sAJWhc/pUNmW9IORRL3XWF8jE5cAR0//wi+b4MbJFXiYz03RtSIU4ZjQXB3nvaK4RMWsecRCR8EFFxfOaGzrlJmkSfRorizcD3h722GvCUDzqaKVL1akCsxF6lPbYshiwl9HXc/SKuzUbgrmQ6FZcswOWH07ko7gPk3VOk3DEKgyqgnB1NE0TUzfX14IPSE2ZOM/ZUnNi5psCd+uCpL3zh2BKzh1R/s2s9FI2+ejY/UoW3P5MO4WOP56ntKZDYsC4acE6e7/VaKvykMv49ZefdZUETPm3ftIPm4KMH0rOEnQ06yPQJx2tpeqex0+fi4jctivqSfP3EiVdchdVIkB0ck/pqScsoRiTln6S07JCl6Lcr/LHtXNGcBBAoYqL7lxlS5CP9374w0NzKpP7MSnnkbIGQA5wQX1X9Bb2wZsoFZqD0wQ2vmRN1u9UvA6MrYvQFUXn66SXohYUJz2isx7+vaLCd0F5PTtIz5sSf6nyqyOHM28thrauZcZ75ZOnin3m+MaZsvGZw+WbsKDFlgzrCukQhPYu3tb8oHlF8s3GQ9p7xNyTQvoTjB5fN6WTr/B3q6oqdmI1jgAWruga/MM9dnMeGV7yisdxIDcoDR6PI8kqznLb4sQz1Rs+4ke+xiHR5qg9vJDrDcC37T/s02YFJJDATghGLq/hruzjTnpaTVT7S4Ni0L/t0ClhuKLREI5lyjuR90V6OBj8cJ6rcUkK9QyIfNpIMw4xXP/CgAPNGM+ebw217FPgBC42JcB3P2cUi/fmtLwn6EevrLQqyF+T0xB/UxRGgDq25nYUBe65rjM/V/OC4NKOhjQu/e6GKr/RXRQW483+ptbsUVoEM17i3/E617rrZ5i9PNn92Rg3z85BA3XcRtbGZE6SlB2IqP02MNjLqlNXgIp+DLcdKHOud0u+qQTwQHeryhf0GjdBdxGvEFH98VoEvYGA5nQuiqs3f8ehBdwjaeO5OUvv+5CnFV+rapF48dK1TMJKK4gOSL6Da4GrYiZjbSsFNDBzhDTGoUqfABWdQvODxTnsbFTI1lH5fLaFteGzhDOKLkSqt7c9il4L4KunorgrRCmiuL3ad5Gq+t9iCs3quThq+rd1/IdRz0m+b7631orB4/RnkRHW28Nq3uWkhuT9GITTr0+awdsH+2gZ/pA+cEB1soPfDXR4MkTxPbERONGaXCd1nGcS3bRqrkebg61M1dfAHZFheAk2s/Kb41H2WhEHTF8XAu+ypo0igqN7VUF41lIFzc58JZ56tahG+9agNuUgNEy1XyNW+nptxpZ972fszJK4Nm566foTvBaviSpBtIIfTSpTNZo2d+u5GAq9daCfV5eXh73it2yoxS1NfJu0HgmmQR3brmPJ4DE0Z/+MYQZ2W9TcQ2qbPo46fhkUtdqNoDVdy2517wozO0O1cwr3YYmtZI6+optrFokJM4sKUGWEfYqDxuKwoI/xMyr3n0szrwbI6kJI/nvQRizY4ovzJ4HUeb4DIYeok3haYJK0DPIomyOjvXFcpyobtWfVLwiCpdJ1kUiS/NkUCr7AUMcjJkq3XB/RRssHS2W7rONsq5kXZQtU7J/HV1jkQClwwo9N8HML5YOC818ycgMPDPyuvK/IXt+zhVmDnrc4ovBzyYV/caD9bV4/qoaoFCP2b7+dCD/t+ye93j0iNv3VCw1GtRoq5OwesMPx6p9S8nXp48SjUhhOFOSgmTF10py0HZc/1cG7x04u0+9gGVfpF88EsIy/GI2IdTGewUXZgjLL0nClp4pjNbWPZnkWJ7+SoH+IPDW5sViEFvBZJUGVsK62z+Fy17E38QGKe+2ebn0Ry9BWA5pZrxXqXJcj9mKX5D7Q+XrwCJzqrejnPBg/R4DmpZ8sMr/dhmdfPX7pl6BAXmWM3+dkL9toW+5C5viBECntBN7oMEnTRspFZMgUPevjI3dp9vAD/f0zIz0p0I0IqkznyuXBZCuiQoUFQbTkQ1Wl0jKkL70id6Q9RHpidO0nxEoN4DkIGWRgpcIeM8apuJXUuRaRFcYJK/y0tNeqnm3qKldA0oszCOkrFAJk/kLwKnFFQ8eZpD8AArt7kqSqXsFNqIyoEdh9qfZFc4FcJGK6mH5kwbxkAeLDxAUP+PM/I69e1ykQhXfnQSKUNt53U0x1tyrm7V9J/UroftEiQYBW2zOpnB0+HuEOzgF1NVpcGEVT5U5Uzu0azZVbtIMrQsbPN9qyqzFMcTFoyVAB3u5lOQWNW2YleQv8WxXfDd4JQrHpAfTip9309GMVV2KLzeBAg5/6S8vBh1wR9w4cW5cQgnsTlBP+594h9abd3m1u95rcEhrPe7JN4g3uHcr/A7znCM4+50iDgBu1jDFE+kNzL6DECS3d+Tb9A6BX/t1pAtmvj5XPgz9i+7cptMAZkoNjHd/5If8KgOp7KP32M/x637ghACcATiZOfJT2XxlyN9E2sIOLtNhaky2ggP4SG2pE1oADbe6fH1yx59pIDge2bfaB4fBKVS3fgNp+l/ssw8ctQU1BQmGDv/iz6gTYyQlwZ6XXuKNvmB009ZX/QEUA13bwN6i19ipUiYr7CDgzw5K5AYm6ArSB/IY+L/tBkw4Lc6Cu5xpmHANWsB7G/YQDiLf380OEw7Lw0GIxsuZIjbrdNl87Y39NNUlf2AGqijIy7xDFou15tL4rwzrjCKhz5Q/UVdggWPRybGUwd90ra3Ojixe/Ag4je2SzRQER20/ZN9jaEYY/vTlVdScMrsgdJntu3CkSBTNoUMltOrILXZM/DSoAkdAYrgy0gLSOISQoSeUxGjsBarVnyVObULpgdxvyPWecS72gNk0Alg2+A/gj7bJ+20kRWxl6O+idm5/fLRPGuC+Sr/Qh6tetvNaqPshNW4gzdigGUBi81YxcT4upNIB57T/VkGgKqz7hHY70VMkUW/IYLTVX+tUO0TCeiHlEUu5rkogiiXIqihy3zBbtG+XBuNoLPcrzKSnEIW5um4COBTVwbkQog8yOY8+ppe6tadMVgkGINtt96y/5QYIFtvkWQlKUm7yYcWy9/5vDrqmTSIuh6tq5mT/wLdcp0O51PnT2hYyNFV+aNRIMD/WX/LnBK7ml65pqF86H0zqTYl/m9aRz3F5Acl3GRdn66JCXoqq5kzmIGXnXsn2htxU1aUGLTi358o3P5SiXcs4aWIWmsyI039vBRrcBZAZX3GAu94vuAel5IIMV7gf33T5zkShqa9c8RTvfqyb6saiNBdYTFJP9zVddqNL11+otC79osEluqwpo0tEj1mRovQ9w7LKBCsqgWM85Uw0dvwbwUfs9ZZuzuB1J0m7wfPe0kUYIcqe+4wuRUz9KOndC7IT13lUOso9XVPxgQCcvf3Y4YXMMOR+J9UZCKxk1ORwyfTICUyqjHKI5D5/WnusTjDf93Ks/DMXuD3nr4Pqfg6/QFQ7s9rj/9297eSf+xQtwSLgPuVn7P7DbN5Y6oF4NU1Bqk3Mn+Bs6LTh8NDWUf0BuH9MrwVMypYktG7ccEWASDDNgIIfCdlpKqWXOt5/ePW7httJCYjIhxIKJ2T1bakaCnpIKtlSy/ql6z3aqVDpk8v92ap35yInG4cPbQrBpAtdfNdB5d3I16Ln9flF9bKVCZbHQB3D+b8qo0S7usS7Ta0WOb4/iMnJ2+Tzjed0dJYynysLUt2c1JHckWVE3ZAo4Zu/3iN9ZMdiFfOILVQa1Pw22F2CzfqTxue0LHwmfR3lTw3gOlU4vC3BA8q+lRAWNxw/g59gsFnUNhdR03wcQU+92QJwZXCqWFG/E9MLHD0gGigf0FejKZ5w0s0MNeSQ9IhBzh5DU+GJ2Qu1mUZGDIwlcAazHu2Vf8gRkX9SR61HWJxEj0m7vABDbSBxYkMQU9ia3X8CIOzIW4NKAIZ9viToE52YwAAAAAADGZMlfdoAQ6VB2RAH4I6ntIOVYreg6qnYRZVFoEZCReFb9QqopiTcT77qxCFXRedkJIO9sxUgk3ueRK3IpCucGLIDhEmBkAqdakDicAAAhFaygJHehLfLmjX0HFCmELXRGAADeMEsgv/I0nQBxOe/53ar5LDkoyXv3AkI4nD/G9uY/VojvvNML1C4MAM4sOPQN10rtnY5o8MeAs2n+zk7G7OTsbs5AL6oi6ag9TPFogIivR6w9XWU++NmnG0W6u21U83Y/+3bqBr/5gAAA) ### List enabled interfaces on devices Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70030-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 Output: /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 - By default, SPI isn't enabled. To enable SPI, see [SPI software device tree configuration](https://docs.qualcomm.com/doc/80-70030-8/topic/spi.html#spi_software). To verify if SPI is enabled, run the following command. ls /dev/spi*Copy to clipboard The following output is displayed. spidev14.0Copy to clipboard - For PCIe, obtain the enumeration log. For more information about PCIe probe logs, see [PCIe-related configurations](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html#pcie-software-support-feature-for-qps615__section_xbl_hhd_l1c) and [QPS615 switch support](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html#pcie-software-support-feature-for-qps615__section_nmw_5jd_l1c). ## Load QUP v3 serial engine firmware using Linux kernel Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html) This document explains the QUP v3 serial engine firmware loading mechanism using the Linux kernel. It describes the transition from a TrustZone-based architecture—which had fixed protocol assignments and limited flexibility—to a Linux-based approach that enables dynamic protocol assignment, easier debugging, and simplified development through device tree configuration. QUP v3 contains multiple serial engines that can be configured as follows: - I2C - SPI - UART ### 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. 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 firmware The firmware files are at /lib/firmware/qcom/<target-name>/qupv3fw.elf. 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. Identify available serial engines by checking the platform device tree for serial engine nodes. Typical SE numbering: SE0, SE1, SE2, ..., SE15 (varies by platform). grep -r "qupv3_se" arch/arm64/boot/dts/qcom/Copy to clipboard Note:You can choose the required protocol based on your interface requirements. - **I2C**: Sensors, EEPROMs, PMICs - **SPI**: Displays, flash memory, ADCs - **UART**: Console, GPS, Bluetooth 3. Configure device tree by adding or modifying serial engine nodes to the device tree file. - Sample I2C configuration: &qupv3_se5_i2c { status = "okay"; clock-frequency = <400000>; /* 400 KHz */ sensor@48 { compatible = "vendor,sensor"; reg = <0x48>; }; }; Copy to clipboard - Sample SPI configuration: &qupv3_se6_spi { status = "okay"; spi-max-frequency = <50000000>; /* 50 MHz */ flash@0 { compatible = "vendor,spi-flash"; reg = <0>; spi-max-frequency = <25000000>; }; }; Copy to clipboard - Sample UART configuration: &qupv3_se7_uart { status = "okay"; /delete-property/ interrupts; interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>; }; Copy to clipboard Optional: Enable GSI DMA for high-throughput devices. qcom,enable-gsi-dma:Copy to clipboard 4. Switch the serial engine protocol. For example, I2C to SPI. 1. Original I2C configuration: &qupv3_se5_i2c { status = "disabled"; }; &qupv3_se5_spi { status = "okay"; flash@0 { compatible = "vendor,flash"; reg = <0>; }; }; Copy to clipboard 2. New configuration (SPI) /* Disable I2C on SE5 */ &qupv3_se5_i2c { status = "disabled"; }; /* Enable SPI on SE5 */ &qupv3_se5_spi { status = "okay"; flash@0 { compatible = "vendor,flash"; reg = <0>; }; };Copy to clipboard Note: Reboot device for changes to take effect. For more information about the patch series, see the following resources: - Main patch series for driver implementation: - [https://lore.kernel.org/all/20250911043256.3523057-1-viken.dadhaniya@oss.qualcomm.com/](https://lore.kernel.org/all/20250911043256.3523057-1-viken.dadhaniya@oss.qualcomm.com/) - Key changes: Firmware loading infrastructure, GSI DMA support, protocol initialization, error handling improvements - Device tree bindings and examples: - [https://lore.kernel.org/all/20250923161107.3541698-1-viken.dadhaniya@oss.qualcomm.com/](https://lore.kernel.org/all/20250923161107.3541698-1-viken.dadhaniya@oss.qualcomm.com/) - [https://lore.kernel.org/all/20250925042605.1388951-1-viken.dadhaniya@oss.qualcomm.com/](https://lore.kernel.org/all/20250925042605.1388951-1-viken.dadhaniya@oss.qualcomm.com/) - [https://lore.kernel.org/all/20250924035409.3976652-1-viken.dadhaniya@oss.qualcomm.com/](https://lore.kernel.org/all/20250924035409.3976652-1-viken.dadhaniya@oss.qualcomm.com/) - Includes: Device tree binding documentation, Platform-specific examples, migration guides Table : Device tree properties | Property | Type | Description | Required | | --- | --- | --- | --- | | `status` | string | Enable/disable SE
(`okay`/`disabled`) | Yes | | `qcom,enable-gsi-dma:` | boolean | Enable GSI DMA mode | No | | `clock-frequency` | u32 | I2C clock frequency (Hz) | No | | `spi-max-frequency` | u32 | SPI max frequency (Hz) | No | | `pinctrl-names` | string array | Pin control state names | Recommended | | `pinctrl-0` | phandle | Default pin configuration | Recommended | **Common clock frequencies** - I2C - Standard mode: 100 kHz - Fast mode: 400 kHz - Fast mode plus: 1 MHz - High speed: 3.4 MHz - SPI - Low speed: 1–10 MHz - Medium speed: 10–50 MHz - High speed: 50–100 MHz ### Data transfer modes QUP v3 serial engines support two main data transfer modes: FIFO mode and GSI DMA mode. FIFO mode is the default and is best suited for small, frequent transfers with minimal configuration. Generic software interface (GSI) DMA mode leverages DMA channels for bulk data transfers with additional configuration. The table below summarizes the key features and conditions for each mode. Table : FIFO and GSI DMA mode features | Attribute | FIFO mode | GSI DMA mode | | --- | --- | --- | | **Data path** | Uses internal FIFO buffers | Uses GSI DMA mode | | **Best for** | Small, frequent transfers; simple device communication | Large or bulk transfers; high-throughput devices (touchscreen,
display) | | **Overhead** | Lower overhead | Higher setup overhead, but offloads CPU for large
transfers | | **Configuration** | Default mode; no special configuration needed | Requires ` qcom,enable-gsi-dma:` property in device
tree | | **DMA channel use** | Not required | Requires available DMA channels; limited by platform | | **Performance** | Lower throughput for large data; low latency | Higher throughput for large data; CPU efficient | | **When to use** | When DMA channels are limited, or for low-latency/small
transfers | For transfer size > 32 bytes, or for bulk/high-speed data | | **Limitations** | Not optimal for large or high-speed transfers | Limited by number of DMA channels; not all SEs may support GSI
DMA | | **Device tree example** | Omit `qcom,enable-gsi-dma:` property | Add `qcom,enable-gsi-dma:` property | | **Debugging** | Standard Linux debugging tools; kernel logs | Similar to FIFO, but also includes DMA allocation logs | **Sample GSI mode configurations** - I2C with GSI DMA mode &qupv3_se8_i2c { status = "okay"; qcom,enable-gsi-dma: /* I2C devices that benefit from DMA */ touchscreen@38 { compatible = "vendor,touchscreen"; reg = <0x38>; }; };Copy to clipboard - SPI with GSI DMA mode &qupv3_se9_spi { status = "okay"; qcom,enable-gsi-dma: /* SPI devices with large data transfers */ display@0 { compatible = "vendor,display"; reg = <0>; spi-max-frequency = <50000000>; }; };Copy to clipboard ### Use cases - Multiple serial engines with different protocols /* SE5: I2C for sensors (FIFO mode) */ &qupv3_se5_i2c { status = "okay"; clock-frequency = <400000>; sensor@48 { compatible = "vendor,sensor"; reg = <0x48>; }; }; /* SE6: SPI for display (FIFO mode) */ &qupv3_se6_spi { status = "okay"; spi-max-frequency = <50000000>; display@0 { compatible = "vendor,display"; reg = <0>; }; }; /* SE7: UART for console */ &qupv3_se7_uart { status = "okay"; }; /* SE8: I2C for touchscreen (GSI DMA mode) */ &qupv3_se8_i2c { status = "okay"; qcom,enable-gsi-dma: touchscreen@38 { compatible = "vendor,touchscreen"; reg = <0x38>; }; }; /* SE9: SPI for high-speed flash (GSI DMA mode) */ &qupv3_se9_spi { status = "okay"; qcom,enable-gsi-dma: flash@0 { compatible = "vendor,flash"; reg = <0>; spi-max-frequency = <100000000>; }; };Copy to clipboard - Multiple QUP instances: - `qupv3_0` (QUP0): SE0-SE7 - `qupv3_1` (QUP1): SE8-SE15 /* QUP0 SE5 */ &qupv3_0_se5_i2c { status = "okay"; }; /* QUP1 SE5 */ &qupv3_1_se5_i2c { status = "okay"; };Copy to clipboard - Pin Multiplexing Ensure correct pin configuration: &qupv3_se5_i2c { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&qup_i2c5_default>; pinctrl-1 = <&qup_i2c5_sleep>; }; &tlmm { qup_i2c5_default: qup-i2c5-default { mux { pins = "gpio25", "gpio26"; function = "qup5"; }; config { pins = "gpio25", "gpio26"; drive-strength = <2>; bias-disable; }; }; qup_i2c5_sleep: qup-i2c5-sleep { mux { pins = "gpio25", "gpio26"; function = "gpio"; }; config { pins = "gpio25", "gpio26"; drive-strength = <2>; bias-pull-up; }; }; }; Copy to clipboard - Performance optimization Table : Mode selection | Mode | When to use | | --- | --- | | GSI DMA mode
(`qcom,enable-gsi-dma:`) | Transfer sizes > 32 bytes regularly, High-throughput
devices (touchscreens, displays), Bulk data transfers, CPU
efficiency is critical | | FIFO mode | Small, frequent transfers, Low-latency requirements,
Limited DMA channels available, Simple device
communication | ### Troubleshooting - Debug commands # List all I2C buses ls -la /sys/bus/i2c/devices/ # List all SPI buses ls -la /sys/bus/spi/devices/ # Check UART devices ls -la /dev/ttyHS* Copy to clipboard - Kernel logs # QUP-related messages dmesg | grep -i qup # GENI (Generic Interface) messages dmesg | grep -i geni # Firmware loading messages dmesg | grep -i firmware # DMA-related messages dmesg | grep -i dma Copy to clipboard - Device tree verification # Check compiled device tree dtc -I fs /sys/firmware/devicetree/base | grep -A 20 qupv3 Copy to clipboard The following table lists the common issues noticed during troubleshooting. Table : Common issues and solutions | Issue | Symptoms | Solutions | | --- | --- | --- | | Firmware Loading Failed | `qcom-geni-se`: firmware request
failed |

  1. Verify firmware files
    exist.
    ls -la /lib/firmware/qcom/Copy to clipboard


  2. Check kernel
    config.
    CONFIG_FW_LOADER=y
    CONFIG_FW_LOADER_USER_HELPER=y
    Copy to clipboard


  3. Verify firmware path in driver.


| | Serial engine not probing | |

  1. Check device tree
    status.
    status = "okay"; /* Not "ok" or "enable" */Copy to clipboard


  2. Verify compatible string matches driver.


  3. Check kernel
    logs

    dmesg | grep -i qup
    dmesg | grep -i geni
    Copy to clipboard


| | Protocol conflict | `qcom-geni-se`: serial engine is already in
use | Ensure only one protocol enabled per serial
engine.


/* WRONG - Both enabled */
&qupv3_se5_i2c {
status = "okay";
};
&qupv3_se5_spi {
status = "okay";
};
/* CORRECT - Only one enabled */
&qupv3_se5_i2c {
status = "okay";
};
&qupv3_se5_spi {
status = "disabled";
};
Copy to clipboard | | DMA allocation failed | `qcom-geni-se`: GSI DMA allocation
failed |

  1. Check available DMA channels.


  2. Remove qcom,enable-gsi-dma: from some
    serial engine.


  3. Use FIFO mode for less critical devices.


| | Pin Mux conflict | |

  1. Verify pin
    configuration.
    cat /sys/kernel/debug/pinctrl/*/pinmux-pinsCopy to clipboard


  2. Check for pin conflicts with other peripherals.


  3. Ensure correct function selected in
    pinctrl.


| ## Enable required interfaces Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html) To enable an interface, do the following: - For UART, see the [UART software device tree configuration](https://docs.qualcomm.com/doc/80-70030-8/topic/uart.html#uart_software) section. - For SPI, see the [SPI software device tree configuration](https://docs.qualcomm.com/doc/80-70030-8/topic/spi.html#spi_software) section. - For I2C, see the [I2C software device tree configuration](https://docs.qualcomm.com/doc/80-70030-8/topic/i2c.html#i2c-software) section. - For PCIe, see the [PCIe software driver configuration](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html#pcie-software) section. - For USB, see the [Configure USB boot loader](https://docs.qualcomm.com/doc/80-70030-8/topic/usb.html#usb-configuration) section. ## Verify interface status Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html](https://docs.qualcomm.com/doc/80-70030-8/topic/get-started.html) To verify the functioning of the different interfaces, do the following: - For UART, see the [Verify UART interface](https://docs.qualcomm.com/doc/80-70030-8/topic/uart.html#uart_verification) section. - For SPI, see the [SPI verification](https://docs.qualcomm.com/doc/80-70030-8/topic/spi.html#spi_verification) section. - For I2C, see the [Verify I2C interface](https://docs.qualcomm.com/doc/80-70030-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 Note: The output may vary depending on the underlying hardware. - For USB, load the USB firmware to detect the device connection, and 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: Jul 03, 2026 [Previous Topic Dragonwing IQ-615 interface overview](https://docs.qualcomm.com/bundle/publicresource/80-70030-8/topics/iq-615-interface-overview.md) [Next Topic UART](https://docs.qualcomm.com/bundle/publicresource/80-70030-8/topics/uart.md)