高通平台啟動流程

2021-10-17 19:32:22 字數 1809 閱讀 8580

高通平台的啟動流程如下:

現對各個階段說明如下:

pm檢測到系統上電,將會給msm發出上電復位訊號,要求msm復位。這樣ap(kryo應用處理器)將會退出reset狀態。

注:kryo是qualcomm technologies推出的首款定製設計的64位cpu。

在ap處理器側,應用主引導引導程式(應用pbl)執行。pbl:primary boot loader 是不可改變的bootloader。pbl的作用是硬體初始化、配置資料等。 (該部分是在內部rom中執行 )

a. 對extensible boot loader (xbl) region #1 進行身份認證,並將其從引導裝置(as tcm)載入到l2。

b. 驗證xbl region #2 (ddr/sdi equivalent)並將其載入到片上內部儲存器(ocimem),然後跳轉到xbl region #1

在 xbl region #1中,xbl對pmic映象進行身份認證並將其從引導裝置載入到內部緩衝區 (該部分是在imem中執行 )

a. 對qsee進行身份認證,並將其從引導裝置載入到pimem

qsee - qualcomm secure execution environment

b. 對qhee (hypervisor) image 進行身份認證,並將其從引導裝置載入到ddr

qhee - qualcomm hypervisor execution environment

c. 對rpm firmware image 進行身份認證,並將其從引導裝置載入 rpm code ram

d. 對little kernel(lk) boot (or xbl region #3)進行身份認證,並將其從啟動裝置載入到ddr

xbl region #1 結束工作,下一步由qsee執行 (以下是在ddr中執行 )

qsee使rpm退出reset狀態,啟動並執行rpm firmware

qsee建立乙個安全的環境,並跳轉到qhee image,啟動並執行它

qsee跳轉到lk boot(or xbl region #3),啟動並執行

lk boot (or xbl region #3)對hlos kernel進行身份驗證,並進行裝載 (hlos - high-level operating system指作業系統,比如windows、linux、android等)。以android系統為例,這裡裝載完成後,開始執行linux。

hlos kernel 通過pil把mba載入到ddr

(mba - modem boot authenticator pil - peripheral image loader)

hlos kernel 使hexagon modem dsp退出reset狀態(從kernel log也可以看到,8-9s左右modem才復位)

modem pbl將mba從ddr複製到modem tcm,對mba進行身份認證,並跳轉到mba image

hlos通過pil把amss modem image載入到ddr

mba對modem image進行身份認證,然後跳轉到modem(這裡modem才真正跑起來)

hlos通過pil載入venus、 lpass 和 ssc images到ddr

hlos使venus、 lpass 和 ssc退出reset狀態,並通過乙個安全的smc呼叫(監控模式)啟動執行各個子系統。

注意:縱向是執行的儲存裝置(在**執行),橫向是執行的單元(包括多個處理器以及dsp)。

以msm8953為例,其內部包含有多個dsp和ap的:

監控平台啟動步驟

1 在所有的資料夾中,包括logger 日誌 portal backend 服務端 portal frontend 前端 sdk web資料夾中執行 npm i,然後在跟目錄下執行 npm i 2 在根目錄中執行 npm run start 3 在api proxy 頁面開啟 api 到4000 4...

UVM平台啟動和結束

uvm中通過objection機制來控制驗證平台的關閉。在每個phase中,uvm會檢查是否有objection被提起 raise objection 如果有,那麼等待這個objection被撤銷 drop objection 後停止 如果沒有,則馬上結束當前phase。raise objectio...

高通平台Bring up

3.2.amss 部分編譯 主要由以下部分構成 adsp,boot,debug,modem,rpm,trustzone,wcnss,分別根據高通的說明編譯這些模組,不過其中有些模組我們不會改,直接用release的binary檔案就行,比如 debug,rpm,trustzone,wcnss。3.3...