# Architecture The boot architecture includes boot loaders and board support packages (BSP) images that are used at each stage of boot. The boot loaders are involved at different stages of the boot process until the Linux kernel and applications are enabled. ## Boot loader The boot loader software runs when the system is powered on and serves as an interface for loading the operating system and other required applications. Qualcomm chipsets, including the ones supported by Qualcomm Linux, use a multistage boot process as follows: ![../../_images/boot-loader-latest-10-01.png](data:image/png;base64,UklGRoIdAABXRUJQVlA4THUdAAAvyMM9AH/lppEkScrhT2NJHY6z9uswZkFAaCTJkZTLH9YxOCj27VQ4aBtJklxUlj/A724y/3d4oBBEEJUVXayL9xBqSBCVLmpWmRFqujBEqIhQgZrwAYgvygYUCBUmKIwFoPIe5mCZAQAVqLl/D6jYAIEgAAKQIAzFgADCAjN2iwRRA4kISkYJNQT+j59MgBnX9wFbJKACEDYg0QRRCYJAuH95/zPDcv3mPYS9OL+O7X7+cn4fxvmTOQGA5y+V43YR739+95tUILeNJEkS/Tc7s2ru3W9ETECf6a/fGy7phRIMl6XMUK6vSrd09MIrD280qmdgkDWa3rOzy6EOddf6hIdp6bj1Nf3LO2HYtk1tJFce6u2kd5bZ20nPLHWylBwOMzMzM0cHwswMQ52BhcGe+Exv/UixZKtmug+UXW/Z5XLX+0X0fwJ8O5JkSZJtW1+zPuL2uH6oXsfvu4Vn5K26x/QXBZQVMChgrBH9n4De/5/6nTvHBuox9t+cpxjFeYphnKcY4zzFGOcpxjhPMcZ5ijHOU4xxnmKM8xRjnKcY4zzFGOcpxjhPMcZ5ijHOU4xxnmKM8xRjnKcY4zzFGOcpxjhPMcZ5ijHOU4xxnmKM8xRjnKcY4zzFGOcpxjhPMcZ5ijHOU4xxnmKM8xRjnKcY4zzFGOcpxjhPMcZ5ijHOU4xxnmKM8xRjnKcY4zzFGOcpxjhPMcZ5ijHOU4xxnmKM8xRjnKcY4zzFGOcpxjhPMcZ5ijHOU4xxnmKM8xRjnJ/gP3eQtglCGQLcQTJvE4QyBLBDWCg7xSCUnWIQypDbd9vtdx5c7kpy0zjMuG0LaiBDa89dS4+9+/vHTj11/vKgI8+mT3uYdz+2dNeea2srW30evK4jLW66m7y5KqiBDKe1/sdOXBx09LjY7R9qzvVbq/feuK8rLU0nbmu3cbveTabsSkvTidvabdLy3Xv/6UM/P37m7IW/D7pxuGBktvjwv+z1S1VAUYbPnn1vPTro+GO7b1bf7C7/+Pt+dOzUU+cvDzrybPq0R/jAC5b6exoyo3/8A+HYqfn08qAjz6a7HuEDbqm/pwn+0NqnNi4NurnZ+Owzh68vBzWQITPrv/HsQAPN6/uzWp61uOtjJ+Kgo8fFx7ceOFDbAeNlEdnR40K8QU1Ls/ccZ7efvW+PLwVFGSpXXr6gJi5we3WzfW87Ouj4Y/H7axl7OcqOPxa/v4YDd7z1HLu/ffuVg2WgKENk9bPUSOsqmt31hrPUQPOmrQOVHfBvMqz5e70HUu/Bawu9CAkZACOwpZq9CtbnCyXjkC+Ak00hz75p60BVt7/ib9TD8auulIEayLDYt/e7A62ch+UqbnvZgpq4ePntFV15+YK11+AA2MbF+aHIxctvr6b/lYE+fqNfBmogQ2LPxkAzN2YV9D890MjPrVbipmxgRekIw0pvHT8cfNL125DT1QpuwE+pkz/vHSwBRRkK/Z8NtNP3y+zb+52BVv4g2FI2/IANizABAMkXIYkAIAJLMiAuDfGWYDxgAKkBoW46YKsDcDSZywY2TwBIQ/iDvTeUWj5NvVxIGSjKEFj/AjU0hhKzjYFmbsxKzThoXuaLyuEaOixvLFMPCPOCa1yW42H5aumzAtLyRbgxK3Pvbwe6KZMyUJT2WWqpLXb3D6mdv1gt4ThoQ2QCk+Eh9DJs3YxBa7zDDWw1OA5bN+MmNGkHy8yckzxQi6As4qvwF6vF1r8y0M9FKANFadtDf6grItPnnQQaRfZ7arNIajrEV5tPixz+DDX0i+uFgmHTAiMM6YBSm2ULpX3n+DrAF5tlu2lttgLAFvCkwbkU6y/DL64Xegl1NJSCorTs+WwIfLuQVPW/ztDiuMi/UkttIcumuizfgP0ZBZyP7FsSAGId9WVoizz0ey3540OloCitWvlWAwzJBMhpOnAkA3xFwQ/2rXneoZ/W1EMgHZDUV6DJrIb8yGF9Pg3qk5r9Nf4wLTCdN4ZAIB0g1TXbZdDKWxKIF812eY/0CDlwPOBFKL/2fFpgTD0dl4OitOnwkYYwBXjAAaRBAhgGwJMMABBJCw+C1kN+JJAMAPylANQAbLkAjloAWz3ALBJQmw39aUemeeusWQBHC0tS7FCg3lT8NBwXGLO5HpmG1cnyOCxvrMcmTPaFlOW5M2TGvPReNdf8QhznrXxLU2ReDorSotUnGpJkATYnbQAgMiIzBXBI3cyrTEPSIx16WJ43sWyNC2OxDA2uF+B82mQ177/qooUV4CQpqGn5OaGazHuKn+db85y5NIhJyrIOL0dtiH5DQSkc5+LleMdJReZYC9KVDaRf+VvznPuOaEqcVwBFac/yZgOyQyqQOZ4JEGkhzAQcLSw1KIP6ADwdEEkwJls3qcFhmUDogMtNu0ndhIfUpi9+wc3lnP6RygDYlAOAQCYA8D0P0CoMcNQAUgsWwLxK4GNHTWAuA6QWQH+oAC4DMGpDrIBUkw3nTUemOdPYpG4dpzmrT2rKxFUBRWkN2JTA1MkCkRGG9AgpICuhNnNIXzmSAlBgSQa2UFrwHsuowVE30Cajh7BZbpv9FYjcrUlFDmlLkgEwzBuufVlqcu1Xy7MKrq/W/18Nrlub5ZsOy2OxLIfltrjmBfDNk9UcN9GVictZ3tSUS1IJFGWIPcDcyiIsWaTIZj5AwDUvKPdb8stdt1lR6AXSIpKMgCVJgSWTo3BpC8rgeH2RusnFIbXpDzAO6IESRoO2wPWNZOsmXQbHoDXYNq3JMUnfvrmcI5u6AskBdRUVK8roskgYixgE9YEI0AGRBGOydZPvCYQOOKQG7SY1CYd0+dXAii0yhaQBIHmsSygNjg1wbhw9xKJZ7hehukk3rSZzCHXI90BpwSWAI5Q222Q5JvM+Ip/aCk2Doowsj8wCDemNbE96pFMPy7pgc7JJluNh2RbL0OA6P0wgA+CBUueONpCfkfcO8fWK0HhL/5cOijKqaIAkQPIK5kOeJAMAr1oX1XmHARy1IYvUA8zFAMafwiMw0wFCwOcEx+UtLXiVutmLIb35okkH9EAJo0G/J9m6STdtwTFohe2mXf5r1ewXUH8hUJSh1EqoV795bQ6ZjhaWTIBIARCHa9wKrvlqeRYG13nxcjS4tjbX8EK/WKaHZdksj8NyWyzrmzRrC75XwecB82kbhVIPobwsk2U6pEX/ML1/ht6/FRSlGzTpXxBdyjEBHEkLQxogOkB4ywDSVw2MKwMYPzCqCYzqAKm632BdVBN6aG2IZmtdyr+L4g0bOJ8V2V/DpH6U5mdofi8oSgcowL8iDaxj+zN+pHhH8sdP95wPletkXC6G/g4DcBxSBW2AsgHKAUYP0dAGHLUh7g1QagEsEhhtgLo0O+EUcAFIPUQDagFs9UAcQk1AbTb0d4CijL6/x6sBBWrhgQgkgKUHAgk4CkAKPDdAabChTOBeMMBYAG0BWw02BBAWwL4AXDwAlwP8IkV8g8NSQYftcI0XzXU8LAMIHZZ3lnpYHg2u+wPXANiaF9rDMjUujAUQl+B6Ac63gKJsB1ieV4AsA6Dc/HHDcTPDNS4QBtcPLGt1uO4LRC7iwlhcQ5NrLQ7xseW+LF8I9fWGdLkZN2OzXTZbg7KIyzEJCzRojVutQZts3aQDeqBstssGhe2QLpt9OQ7hctNuUpPwkNr0xU+sCYqy7SBVaBvK4PiHbUAbeC24bD2kNn1vKxwLdDMalMFWk3G5aZvUZIrQYS+G/DLB+XoCpHrYghbAflGsPYRuWqGE0mY7QApqs4XSAjetJnNva3A8xKVhEVpw2UCbjB7CZrlt9veBonSFBJEWmY4MyFabvTrMv1Tb5YtZlENqMkoUmzikWrA62iz3vaPJrILlMTh3NtAm43VY5ot9Ky/lOhmXq/wWCnA0OGzVAqgP1M+THPsDQbnfkt8MitIRYJgHVyBuGfxLl2wm2YzDtj6Wnzb3gnK/I27FYn4k3bRugrmoySyE8vqRoBW2a2gNxmTrJh3QA/W2Q2jeG1KDdpOahEO6/GZQlE6QIKSEpEFggCdJULea6XRNFYweOG6WhqRHyBLEbjJADVAGx7kxpDffkozLO0Nq0Dapmz6EN4dUk1SD/SnxHYbl0QOozbJsoJprfmhY3lnqYVkaXFsbqDcUy1uHZVsAQWhwnW8HRekCFjEvFPPWIbtckdqgwfYVbCHCdJOCsCA1Wb4wuM676MPy3mHZFktNrr0oQh3WdVmfj4Ffz7kc1WCr9qXUiw2kH7Ih+lYDpdbFawKj+iYHQuKODVmkHshDqgGM3w+K0gEAl2cysudeQZdrRg12g5dWCyjmETuJydagVeBszgsDGN/ihvZcvGdDFqleVBNo14FqLfQzivwOd5O5/PoN2ouv2QgoyshzAFPZLEDdElyHC0o9AH9umWICP4L+MjfHrzn0tzrgX+FhOT8KFGX0mSJMeZI09L34myvwuiFdrGOxCKN7xf4iid8p4Pwd+OfS/ixQlI6QMDsnsP8xHGIxsO+hmAN0z83XKPpb/bU3BYoy6lCNpe/xd5cLgLNoVUAK8SrAt/7XAIoy0mjgyuSWzfpYBDvfJpK44xG2n0BRRppHrKa8ddidLtQDp6BvGEght00EijLKEgTW30yHE9Rga0O5eUl6ZDtG2O0hUJQRRmMaEGGXS8oG1SBvsFiCsE0EijLCEsTaDvNX14yf7xG3i0BRRtev/wtIfgFYbhuBUK5eNfVpCeI2EijKVatf/79vEMpOMQhlpxiEslMMQtkpBqHsFINQdopBKDvFIJSdYhDKTjEIZXtbs8xvdKBzf5HoFevQZLktzs8HoVwDS5BZomDn/l4ecJTGdNyaN0D+VOGV/X1y+3VvjC9zu/4d8B9877Uwkgw4WWin393heySac7/jYx1+2e8y/BNSFFwro7d6t1PdaTHAUQFeDdBqAqUdDaEBVG49QKPRarSdwbaAvCTs305RcO3sUHqArQmc3A4DXDZw1ATOiw1QLwAuCZQHSGDn1uJopwKkTiRpAfmiw8MAZQNlAamy4f8B4wYoNYHSAvKnYN8LbTRad66GUsZMbcqmNbbm1tz+h2Nxj9FidIdm6uZ3UxRcQ5Pj4Wim7tTF1kzdocW4U4dVhxq5itadmqlNWRxlHHRojTFaD+PQWozuuJW6Qzu0GN2hhNqhHWqkZupgMbrj27Hc3hstavE6W7UOpea2UTtv7K32B9S9VTlFqTfWo8k1fwVFwbW2bLWoO6UTFqV2Ll6X6r6lHkrNfaM47p0WZakuSvdW5dw5eljtrcqRflGqOy1KtfZW5Xy3UEk/cC7HAeoFc3FQ3WnHJW5Eq3Mv1GQ5g2q8Gl/mdv3zKQqadFjvO6fuWJ8V4Yy+Ef2TGWQmd4aX9a9FsDx31MHDMixgXugAsRqgdFDdecNsKexQTaAd1GQ5d+pSi2Q5Mi90gHBwmSznJyj2e1Tgm7XL309R0LDyo4e33f7hAkkmODeuuX2/7h3KGNdv8GbCWQyU+4UKvKXzpDnZmqTeaO++oV3fGCj3rfat38PmaF/yI8pZRC8OpeZ+w95qo3nhxc5VUSq/l6JAD2j3z5egEERHD3Wjw+L8/ezU3O8qzg3NXkSreUc5h1Jz3zl025vjobRe7fyUnR+LVjM81GLnD2KEDuXhFq1DLYbS2GZoU284HAt0h/aronU4Zuj+vRQF7WmgPcAfBwBJGSBkRSvAAmi1gFQH2C8KYL/YwKgH2JcAdFAHZUO5gVhJAvVLkA5+sMO/xc9pSg+jTX3MjRppphazyK3NC1qHMkObumNwLEKLo/GqaB3Om4rW4dzJrU1oph5O0Tqcn+GQuiH3rQIo1wNsNYHyDR6gQw3oeGEBlJqw49XL+i0UBe35gxbHQ3ko6UFaCB1CXrTu1OB4OBajOzyUMitGh7Po0EN5OJqpsbXjVqg7tCDFBEcztal/L5ZeD4C+wQ1sNYBxWUAOtSiAUhMoV5vUjRpbbWAyVxZA+YaCYwGUdwrIoTSBowVQfrMfdvHjt0BR0IJ1La6XUikpTzKYYtfYaox7q3IWL0u1bl2z1aIOqnWrtSg12BxkRj2UmvtHEwgAkpABzqEsgL0oTrEsDeAC8GLvhF1AqRs4OtEQBow6QGuxIVPt+Cn+Uf5aO1T6b0RR0IbyZcB+oQUARxtIRuT9AerSlzZZjgn5Qg1gFgKtBsvTcfHW6GFpcgIpEOqguvOH86S1KQe9MDqcF15ja2wdymjd+YLxELpTd2gxDluhHHQoi7ZIPZRG//fAANq/EEVBu7ShFwV/KFWowK329cBeBdt6pRvGGJdv83aKAfHXcKSYYqVaH8jUCdXsxeudKqMTFqV2Oqi5tSij1cFiVMai/ovwezZNUdA67VzsVIaUJxlMIeXc2HlD/8RiUM8d3dvcq2F1Lv2iOB+jMXooNfcPR1JQTA1g7jRqs9wOUG/AwzLuHRn1UMVRd9rh/3RQFLSsUWMvOjQihUiHJI/WoW4UrcMZSjMXh1Je7FBpD6NNGVuHKkZ54UY1tlhEa4Y29esE27o11CW9CbzH9accKvp/OigK2rIO3cBWgzYADgltACDMK4DyhgVQ2kC63sCJvTCBVg+AagClA8wrN+BZjJ7RBMrfZlDPncOoDneU84bivCVaHVwZTf0suT82X2u04y3FWeX+AgB7BZCfVJxfp+MvS1HQkn+EQ+dQyh3aZaQWLa1DvcGNGvmR4Vj0qyb84XZ+qZ2f9wWHVpPSYtSMv42/wyYpCq4CCXMoN3Biv2iWowGMFkD5Djew/YgDtK8O/U+D8bpTO1SL82+OouBqzO9c1I8T0GoBqRv4g5pbi/IA+xKAunNDrjZgx4a4JFAfym1HQ6iMyhSph73ocFkcm/J2AWzduSEvQP9CHRYD1IatNsBRE3a0FpDqAPuXUxRcM+n0p+GPRVuM7tCdyiihnR6OZmpsHcrNKL1wpzZbY2umHs47aI19w6KN7XLvlTEK9B1Gh+NmlFZa47cKTcbiOKgZmqmbthjd4aGU+dUUBddKCurH2WqHe6tyFrk9GWW22WpRf0I12x3q3vfUTg+qe79F7bxjk7jOG602wKxKtS6h7u2Een6rox1qjKXaYVEq7d6qnMVP3RRFwbBJkAeQXy259pvmBet/YN+2nlYPJstZTLh7T3EMlqdZbnde8lZcwmGZ74hL3DI5bxjXwVmoAYw7L+lOtX69Vg+Ag2q0yXJMyF9NUTC0ilEzvtpWi3lLx6tR3fGvUru+FBU1OaExLjtdf0Z499OgX3SsivPC6FWwrb+RA8e+174e2L+XomB4dagW5xu491cozt8SpK5Tv9lWO9x5y+iw2Ftzr4bPO9SnxWhddgy1klns1OhFrgb13JpQz19AbnVjUSrtzhs68WspCtqVAICQJhggkIwAQh7lywLysoHjofRQ5oZxgH7HAH0BQhuoD8WGYwOjFpDqAK020GoA9Rdz+NU4FmPROpxVszU5ehhtykgt+jPMUNmfkambcThmvDi0mpQOow4uD6Xckq3xF7BTBzRTN23ROpyhNPO3UhS0K8KRHqSBY0RkRKRDjkAvij+6Q3fooe5QOpTGvlWoQ1m00pqhHa5XGRqojR7GYjS3Q2lsBy2OubXj34oGRi2A0gPlYbRRPQCqAYwfOVA3TKB9sdwfEBjm0Cq50gC21wIIX27gxL4j0H8BAnE4mrBjtABKG0h/KUVByxxJJilP0gi9JxnybIDRvVU5clRvpRqjHl6wLI1WBztUmVvLUGOrjNphp2oZox4W18unDqEAIJDBkAyGRAAQ1QDKHeqgGxgPMAqEmh3QB/gl/ikOt89m/BXrUxS0jXQA4GhCKtAEkkmBa3BMlnOoi3e2yrpWWzVDGfVQOy/Rt8aX0VocdTD3RVmXAVs9wPlNBKRDLARHwTG3dlgczW2HHspDKa2NJschNfd/O4rRxr8CRUHrHJBQ6jLabJdvO95dHepbHV83tGpA/S7pIkLS7sU1WjmL66VTNcbcWhzt/G+HA+BfgaKgWcubVXhLMhTynmTIiV5ku3NVnEVd/ryKfotGq4MdF+Z9MmqHO1fRN7TzojFv21weOjSALxFJhvQAR+3wDyrQLzbLvhX/9fhVa1IUNGxtUkUwZEShiIQOOcOogxatw3GHFiOt8Wo4urmXW4dj0crWDD+hKQ9jMbrD4ejGRo1tbD2ct03Whg8ZgFCFGlAWJ7fXDX9W2/W/PMubmnJJalEUNO2BI1XQAHBICvB7AEKOBRCqBVDqBkYPMK8cIHzBNVUHaFUg1ILzHhsYtYBQBwh1A1sFOLrzPUdMzmJziJDBUlI+JSTtvmiMZvOfhe696PjJNpdzZFNXIDlrU02ZrNahKGjcyrcr0UI7z7l7OiwCSJrXMiLyJFIgE5Sx9XB0QN2h0gvZepifabKWI5P2/OHWKR2YTxuY6N9hspZjjmhKvK8GRUHz8LCuoJd7TxwW9AA8yQCYkAoAnArwH7XYqgm0GrQCHH+mIybHxOHwH0qj/fxof80jJmfl25pi59UpCtqw/mc9sSEP3xoaXxHfS/2a357nzK2u2HkOHtYU9CpXFLQCL9aTKQo+b3QkhiP14V7+w80z0gMkywGA5/cACACQHkAkw4sMvJiGMGBWAEa7N3TnhhQ4dqjRetAE0MMmNIBv8XAvf/0vWvLX9coUBS155Ks68tVZkcO/HBVAHCl/DgWCbR4SRkgGhBRERjjSvIf0hhREBggp2ArlsDLaBUebtkA7LI7F/9a93amyL2psHerr/Xm9AF6iJQFVKwragtXf6MeuQ+F/GxWj9sUoOm2eJ+lflDpJkq6QQyTpLQOYUnNrUR8JtUON1oNGOxuNsVTzcnRCNfvrTVH00a9pyHhRlaKgPdizoRsbMxRf/4KOfP3hQg+7xr2HZGJSJA0AKRDhSAbDYMqcj+RHyk5z8hxKbSA9lDbL/eW+/nAh9P+kHaaPitVA0KaDe3+iF+MgJfCcn+vH79ZQXCYtMngtTw6Hg9i7Uxs0X6XfcrKGksunNWMhqFhR0Cpg7Us6AemVn23oxsYMZWdsmCfpbUpAMhZyiCS9bYF0eiJbGTVeDN9iY4ayB5/1c6341UQqUhS0Df1XntCFReijwhv3/lgvfh36pRh8sxAZEVMRJ0kU4mtBCmIbNq1BabRuXhipRX+tX+/tlwJWRSP+3aFiRUH7cFP/zWd1wOz256h27Ss68c1DqHKyaNRrAUSm6AFE40mD92TQA4hsw3B0h3qA3bwwgPFLLyaotP/qv2nC+HXPRcWKgmEA7F9619GuN7Z+Pyrvv+qELixe80yv2sVrTjQosNMu8Eyv4oNX3nFOA6zauqNXsVAwJIBbH7z3kycudrW4mE7sCuq8svqWszpg3u5cr2rn5kYHzs6dQ/VLs/cd73iz9+/xvaoVBcMDwMrhAy/8wI+OnXr6/OWuNJs+5RE++I8HDq/0at+/9O6jXW/8Xn8QdYqP4643jl5Q79wc+vzGpY5mNr58/0M3oXI1EAyXzOu33L037kNHXppO3NYtaOp0ffKJExe7Wlx8uv/8O1B3HHN3cbG+rhoXu/3xHWjgyqG9//zRnx8/c/bC3ztSuGBktvBu72SOGhUFw0hv9x8+8A8f+dGxU0+fv9yVZtOnPIJbPPvwSq+Z86lbfCQc87vnZ11pNn3KI7jFsw+v9Bp881b/7oPXoRsvbiIZUbMaCK66ZPYfmK7esYSO7K84Y9hrOs3URY+O7K84Y9jTexkIrtJsOxYKdoaNwzNsHJ5h4/AMG4dn2Dg8w8bhGTYOz7BxeIaNw7f7zx2k32ocvv18B6nfaRyexN9pHJ5h4/AMG4dn2Dg8w8bhGTYOz7BxeIaNwzNsHJ5h4/AMG4dn2Dg8w8bhGTYOz7BxeIaNwzNsHJ5h4/AMG4dn2Dg8w8bhGTYOz7BxeIaNwzNsHJ5h4/AMG4dn2Dg8w8bhGTYOz7BxeIaNwzNsHJ5h4/AMG4dn2Dg8w8bhGTYOz7BxeIaNwzNsHJ5h4/AMG4dn2Dg8w8bhGTYOz7BxeIaNwzNsHJ5h4/AMG4dn2Dg8w8bhGTYOz7BxeIaNwzNsHJ5h4vAQ4/AUE57i78QvDgA=) ### Primary boot loader (PBL) - Establishes a secure root-of-trust (RoT) and secure boot process for applications. For more information, see [Secure boot](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-11/secure-boot.html). - Identifies the primary storage device and loads the secondary boot loader called the eXtensible boot loader (XBL). If any recoverable error occurs while loading the XBL image, the PBL enters the emergency download (EDL) mode. For more information on how EDL mode is detected, see [Enumeration of EDL device manager](https://docs.qualcomm.com/doc/80-70017-4/topic/examples.html#edl-device-manager-enumeration). - Loads XBL segments into the boot SoC internal memory. For more information on how PBL loads the XBL segments, see [Cold boot architecture](https://docs.qualcomm.com/doc/80-70017-4/topic/architecture.html#cold-boot-architecture). ### eXtensible Boot Loader (XBL) - Initializes the hardware, firmware images, CPU cache, MMU, boot device, PMIC, and DDR. - Sets up the RAM dump USB driver, USB charging, thermal check, power management integrated circuit ([PMIC](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-4/pmic-developer-touchpoints.html)), and low-power double data rate (LPDDR) clock functions. - Collects the RAM dump over USB to the host PC. - Loads and verifies the Qualcomm^®^ Trusted Execution Environment (Qualcomm TEE), Qualcomm Hypervisor, and UEFI image. - Provides the XBL configuration (XBL\_CFG), which is part of the cold boot flow and includes PMIC and other driver settings. - Provides XBL with a Qualcomm-signed ELF segment to initialize the external protection units (xPU). - XBL\_CFG is a standalone binary with platform-specific configurations and settings. The XBL uses the XBL\_CFG driver to load and configure the required settings. The driver uses the binary to provide on-demand read access to each setting of XBL\_CFG. ### Unified Extensible Firmware Interface (UEFI) .
Last Published: Dec 30, 2024
UEFI is the software interface between an operating system (OS) and the platform firmware. It includes data tables with platform information, along with the boot and runtime service calls that the OS and its loader can use. Together, they create a standard environment for booting an operating system and running UEFI applications. Qualcomm uses TianocoreEDK2, an open-source implementation available at [http://www.tianocore.org/edk2/](https://github.com/tianocore/tianocore.github.io/wiki/EDK-II/) which follows the [UEFI specification](https://uefi.org/specs/UEFI/2.10/). There are two build options, which are: - Retail build: Has minimal debug features and an optimal memory footprint, making it ideal for production environments. - Debug build: Ideal for development environments, with all debug features enabled. For developing a UEFI application, see [Unified Extensible Firmware Interface (UEFI)](https://docs.qualcomm.com/doc/80-70017-4/topic/uefi-develop.html#uefi-develop). ### systemd-boot OS manager systemd-boot is a UEFI boot manager which executes configured EFI images. It supports systems with UEFI firmware exclusively and does the following: - Loads boot entry information from the EFI system partition (ESP), typically mounted at `/efi`, `/boot`, or `/boot/efi` during the Linux OS runtime and from the extended boot loader partition (XBOOTLDR) (mounted to `/boot`). The configuration file fragments, kernels, initial RAM disk (initrd), and other EFI images must be located within the ESP or XBOOTLDR. - Reads simple and generic boot loader configuration files, and selects one file per boot loader entry. All the files are in the ESP partition. To ensure that the Qualcomm Linux kernel can be directly run as an EFI image, use the `CONFIG_EFI_STUB` compilation option. For more information on: - EFI boot stub, see [https://docs.kernel.org/admin-guide/efi-stub.html](https://docs.kernel.org/admin-guide/efi-stub.html). - A sample structure of the EFI partition, see [Systemd-boot in Qualcomm Linux Yocto Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-27/platform_software_features.html#systemd-boot). ## Cold boot architecture A cold boot starts the system from a power-off state. This process begins with the PBL. The following figure shows the cold boot flow: ![../../_images/boot-arch.png](data:image/png;base64,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) **Figure : Cold boot flow** The cold boot process operates in two security modes: Secure and Nonsecure. At the EL0, EL1, and EL2 [exception levels](https://developer.arm.com/documentation/102412/0103/Privilege-and-Exception-levels/Exception-levels), the boot core can operate in either Secure or Nonsecure mode, however at the EL3 it always operates in Secure mode. For more information on the security modes, see [Software Security Architecture](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-11/architecture.html). The Linux kernel runs in the Nonsecure EL1 state. After the security settings are completed in the secure EL3 state, the XBL may switch to the UEFI nonsecure EL1 state. The cold boot sequence involves the following steps: 1. After a reset, the boot core exits the Reset state and executes the PBL. The PBL initializes the hardware clocks, CPU caches, memory management unit (MMU), and identifies the boot device based on the boot option settings. 2. The PBL loads and authenticates the XBL from the boot device. The XBL runs the security setup in EL3 Secure state and performs the following tasks: 1. Initializes the hardware, firmware images, CPU cache, MMU, boot device, PMIC, and DDR. 2. Loads and authenticates the Qualcomm TEE image from the boot device. 3. Loads and authenticates the Qualcomm Hypervisor image. 4. Loads and authenticates the UEFI image. 5. Makes a secure channel manager (SCM) call to jump to the Qualcomm TEE image. SCM is the driver that communicates with Qualcomm TEE using a [secure monitor call](https://developer.arm.com/documentation/ddi0333/latest/programmer-s-model/exceptions/secure-monitor-call--smc-) (SMC). 3. The Qualcomm TEE sets up the secure environment and runs the Qualcomm Hypervisor image. 4. The Qualcomm Hypervisor hands over control to UEFI, which then loads and authenticates the systemd-boot EFI image using the [UEFI secure boot](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-11/enable-uefi-secure-boot.html). 5. The systemd-boot image loads and authenticates the Qualcomm Linux kernel image, and then passes control to the Qualcomm Linux kernel. If kernel-based virtual machine (KVM) mode is enabled, UEFI will shutdown Qualcomm Hypervisor and exit the UEFI boot services; it then passes off the control to Linux KVM in EL2. 6. The Qualcomm Linux kernel launches the Linux application such as the bash shell. ## Update and recovery The firmware on a device is updated using a capsule, through the UEFI. This process involves encapsulating the firmware update payload in a capsule [.cap file], which is then processed by the system firmware to update the device’s firmware. Note The mentioned capsule update is applicable to Qualcomm Linux advanced/custom variant only. To generate a capsule, see [Capsule generation in UEFI](https://docs.qualcomm.com/doc/80-70017-4/topic/tools.html#capsule-generation-in-uefi). ### Update device firmware Updating device firmware involves installing new software onto a device’s firmware, which is the low-level software that controls the hardware. This process can improve the device’s performance, fix bugs, add new features, or enhance security. To update the device firmware through a capsule, do the following: 1. **Preparation**: The OS creates a capsule containing the firmware update. 2. **Staging**: This capsule is accessible in the EFI system partition (ESP). [/EFI/UpdateCapsule/<capsule>.cap], before the OS loads. 3. **Reboot**: The OS will trigger the capsule update and reboot the system to enter the UEFI environment. 4. **Update Initiation**: The UEFI firmware detects the capsule and starts the update process. 5. **Verification**: The firmware checks the capsule’s integrity and authenticity. 6. **Installation**: The firmware is updated using the capsule’s data. 7. **Completion**: The system reboots again to complete the update. In this process, the firmware update payload is encapsulated in a.cap file. This capsule (.cap) file is then processed to ensure secure and reliable firmware updates. ### **UEFI variables involved in capsule update** Communication between the OS and UEFI uses protocols and services to interact with platform firmware. UEFI offers a standard boot environment, data tables with platform information, and boot/runtime service calls for the OS loader and OS. The UEFI variables for capsule updates include: | Variable name | Description | | --- | --- | | OsIndications | This variable is owned by the OS and is used to indicate the features the OS wants the firmware to enable or the OS wants the firmware to take. This variable is set by OS and cleared by UEFI. | | OsIndicationsSupported | This variable is owned by the firmware and indicates which of the OS indication features and actions the firmware supports. | | OsTrialBootStatus | | | EFI system resource table (ESRT) | The ESRT table is set by the UEFI after the capsule update. | For more information on OsIndications and OsIndicationsSupported see [https://uefi.org/specs/UEFI/2.10/08_Services_Runtime_Services.html?highlight=osindications#exchanging-information-between-the-os-and-firmware](https://uefi.org/specs/UEFI/2.10/08_Services_Runtime_Services.html?highlight=osindications#exchanging-information-between-the-os-and-firmware). Note - If there is more than one capsule in the ESP partition [in EFI/UpdateCapsule], then all the capsules are considered for the update and are updated alphabetically. - All the UEFI non-volatile variables are stored in the rollback protection memory block (RPMB) partition, which needs to be in a Provisioned state. The RPMB is autoprovisioned on a Qualcomm secure-boot enabled device. On Qualcomm non-secure devices RPMB is not autoprovisioned and can be provisioned with test keys. If RPMB is provisioned with test keys on non-secure devices, it cannot be re-provisioned with a device key while enabling Qualcomm secureboot on the device. The rpmbClient app can be used for RPMB provisioning from Linux. For more information, see [Qualcomm Security Linux Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-11/bring-up.html#verify-trustzone/device-configuration/hypervisor-image-loading). ### EFI System Resource Table (ESRT) for Capsule Update Status from HLOS > > > The EFI System Resource Table (ESRT) is an optional mechanism for identifying the device and the system firmware resources to target firmware updates. Each ESRT entry describes a firmware resource that can be updated and reports the status of the last attempted update. > The entries in ESRT, which are used to report status of the last attempted update are: | **ESRT Field** | **Description** | | --- | --- | | FwClass | The firmware class field contains a GUID that identifies a firmware component that can be updated through *UpdateCapsule().* | | FwType | Identifies the type of firmware resource. | | FwVersion | The firmware version field represents the current version of the firmware resource. The value must always increase as a larger number represents a newer version. | | LowestSupportedFwVersion | The lowest firmware resource version to which a firmware resource can be rolled back for the specified system/device. | | CapsuleFlags | The capsule flags field contains the *CapsuleGuid* flags (bits 0- 15) as defined in the *EFI\_CAPSULE\_HEADER* that is set in the capsule header. | | LastAttemptVersion | The field describes the last firmware version for which an update was attempted (uses the same format as the firmware version). | | LastAttemptStatus | The field describes the result of the last firmware update attempt for the firmware resource entry. | ESRT content is exposed by the OS from the sysfs path: /sys/firmware/efi/esrt/entries/entry0/ sh-5.1# cd /sys/firmware/efi/esrt/entries/entry0/ sh-5.1# ls capsule_flags fw_type last_attempt_status lowest_supported_fw_version w_class fw_version last_attempt_version Copy to clipboard ESRT table is set by UEFI after the capsule update. X is the firmware version before the capsule update. Y is the version of the firmware, which is available in the capsule [.cap] file. | **Last attempted firmware version** | **Current firmware version** | **last\_attempt satus** | **Capsule update scenario** | | --- | --- | --- | --- | | Y | Y | 0 | Update success | | Y | X | 1 | Capsule update failure | | 0 | X | 0 | Capsule meta-data failure | | Y | X | 0 | Firmware rollback done | For more information on ESRT, see [Firmware Update and Reporting - UEFI Specification 2.10 documentation](https://uefi.org/specs/UEFI/2.10/23_Firmware_Update_and_Reporting.html#efi-system-resource-table) The flowchart explains how the device firmware is updated using the UEFI capsule solution/method using different UEFI variables along with the rollback support. ![../../_images/Capsule-flowchart.png](data:image/png;base64,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) 1. **Initiation**: The over the air (OTA) update process starts, and the OS prepares to update the capsule, signaling the UEFI (through setting `OsIndications`) to begin the update. The OS sets a `TrialBootMaxCount` to track the number of trial boots allowed and then reboots the device. 2. **UEFI update**: Upon reboot, the system checks for `OsIndications`. If present, it performs the capsule update, updates the EFI system resource table (ESRT), clears `OsIndications`, and if `TrialBootMaxCount` is set, enables `TrialBootEnabled` and reboots the system again. 3. **Trialboot handling**: - If the `OsIndications` are not set, the system checks if the `TrialBootEnabled` is active. - If the `TrialBootEnabled` is active and the `TrialBootCount` equals the `TrialBootMaxCount`, it checks the rollback count. - If a rollback is allowed, the UEFI reverts to the firmware, updates the ESRT, and reboots. - If a rollback is not allowed, it indicates that the rollback limit is reached. - If the `TrialBootCount` is less than the `TrialBootMaxCount`, it increments the `TrialBootCount` and continues the process. 4. **Completion**: The system boots to the OS, checks the ESRT, and if the OS boots successfully, it resets the `TrialBootEnabled` field. 5. **Result**: - If `TrialBootEnabled` is not active, the OTA update is confirmed as complete. - The system clears the `OtaTrialBootStatus` and sets the `LwSupportedFwVersion` to the current firmware version to disable rollback. 6. **Recovery**: If a firmware capsule update fails during the update process, UEFI has a recovery mechanism to maintain the stability and functionality. A high level overview of the recovery process: - **Rollback**: If a rollback is allowed, UEFI reverts to the previous firmware version. This involves restoring the firmware to the state before the update attempt. - **ESRT update**: The ESRT is updated to reflect the rollback. - **Reboot**: After the rollback is complete, the UEFI triggers a reboot to ensure it is running the previous, stable firmware version. This process ensures that the update is applied and allows for rollback if any issues are encountered during the trial period. ### Authentication and signing Authentication is essential for firmware updates to ensure security and stability. It guarantees that only updates from trusted sources are applied, preventing malicious or unauthorized updates. By verifying the digital signature of the capsule, it ensures the update has not been tampered with during transmission and that only verified and tested updates are installed. This reduces the risk of system crashes or malfunctions due to faulty firmware. To authenticate capsule-based system firmware updates using the instructions from the Tianocore GitHub page, follow these steps: 1. **Generate signing keys**: - Use OpenSSL command line utilities to create a new self-signed X.509 certificate chain. This involves generating a private key and a corresponding public certificate. - The private key is used to sign the firmware update capsules, while the public certificate is used by the UEFI firmware to verify the signature. 2. **Sign the firmware update capsule**: - Use the signing keys to sign the firmware update capsule. This ensures that the capsule is authenticated and has not been tampered with. - The signing process typically involves creating a hash of the firmware update payload and then encrypting this hash with the private key to create a digital signature. - Place these certificates in a folder named `Certificates’. Sample files available in this folder might include `QcFMPCert.pem`, `QcFMPRoot.pub.pem`, and `QcFMPSub.pub.pem`. 3. **Verify the capsule**: - The UEFI firmware will use the public certificate to verify the digital signature on the capsule. If the signature is valid and matches the trusted certificate, the firmware update process will proceed. - The `QcFMPRoot.cer` (or `NewRoot.cer`) should be provided in the boot DT at `/sw/uefi/uefiplat/QcCapsuleRootCert`. This verification step ensures that only authorized firmware updates are applied to the system. Last Published: Dec 30, 2024 [Previous Topic Getting started](https://docs.qualcomm.com/bundle/publicresource/80-70017-4/topics/getting-started.md) [Next Topic Interfaces](https://docs.qualcomm.com/bundle/publicresource/80-70017-4/topics/interfaces.md)