在飛凌嵌入式OKMX8MQ-C開發板上有兩個PCIe接口,對應著兩個PCIe差分時鐘,兩路PCIe分別用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。
很多使用FETMX8MQ-C核心板的用戶在自制底板時會不做PCIe部分,故而不會焊PCIe的差分時鐘,等到使用出廠鏡像驗證底板時發現會出現無法正常啟動的問題。
今天,小編將總結常見的2種自制底板無PCIe導致的問題及其對應解決辦法以供大家參考。
1.“使用出廠鏡像啟動時發現無法正常啟動”
問題描述——
客戶自制底板去掉PCIe燒錄出廠鏡像,啟動時出現的卡死信息:
產生原因——
PCIe影響了啟動,需要在設備樹里把跟PCIe有關的功能關閉。
解決辦法——
修改內核設備樹:
viOK8MQ-linux-kernel/arch/arm64/boot/dts/freescale/ok8mq-evk.dts
將設備樹中的PCIe全部從“okay”改為“disabled”,重新編譯。編譯后會在
/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。
完成上述修改后重新編譯并用新的鏡像進行燒寫。正常啟動后打印信息如下(紅框中是在上述卡住位置向后繼續啟動的打印信息):
注意:飛凌目前提供的最小系統方案也是沒有設計PCIe的,故用戶如果使用了飛凌的最小系統方案,也需要按照上述方法進行修改。
2.“使用TF卡進行燒寫時發現燒寫一半卡住”
問題描述——
客戶自制底板去掉PCIe,使用TF卡燒寫時看到命令行打印信息在下述位置卡住:
注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不會太遠。
產生原因——
燒寫引導鏡像中的PCIe的啟動影響了燒寫,需要替換燒寫工具中的內核階段引導鏡像。
解決辦法——
首先按照問題中的方法修改內核設備樹并編譯。進入“
OK8MQ-linux-sdk/tools/update”路徑,可看到該路徑下有很多dtb文件:
用編譯生成的“images/boot”路徑下的ok8mq-evk.dtb替換掉當前路徑下的ok8mq-evk.dtb。
執行編譯命令,生成新的燒寫工具:
使用新生成的update.itb替換掉完成制卡后TF卡中的update.itb,正常進行TF卡燒寫。
進入OK8MQ-linux-sdk/tools/sdfuse路徑,可看到新生成的燒寫工具update.itb。
注意:
- 我們的燒寫工具部分源碼是不開源的,若您確實需要做相應更改請聯系您的對接銷售,由我們幫您修改。
- OTG燒寫不會因沒有PCIe而受到影響。
上述的兩個問題就是用戶在自制底板去掉PCIe時可能會遇到的兩種問題。當然,只設計了一路PCIe的情況也需要注意:
如果自制底板只做了一路PCIe,只焊了一個時鐘芯片,也是會影響啟動的。那么也需要修改設備樹,關閉未做出的那一路PCIe;
如果自制底板只做了一路PCIe,而差分時鐘焊的不是與接口對應的,那在命令行用lspci命令查詢就會找不到設備。
以上就是OKMX8MQ-C平臺目前針對底板去掉PCIe存在的問題提出的解決辦法,可供大家在設計i.MX8MQ的底板時參考。
-
ARM
+關注
關注
134文章
9057瀏覽量
366877 -
嵌入式
+關注
關注
5072文章
19026瀏覽量
303517 -
Linux
+關注
關注
87文章
11232瀏覽量
208952 -
PCIe
+關注
關注
15文章
1227瀏覽量
82454 -
開發板
+關注
關注
25文章
4959瀏覽量
97214
發布評論請先 登錄
相關推薦
評論