android bsp调试环境,【经验】R-Car Android P5.1.3 bsp emmc启动出错解析及解决方法
R-Car作為瑞薩搶占高端車載產(chǎn)品市場的拳頭產(chǎn)品,也是當(dāng)前在自動駕駛領(lǐng)域有著強大競爭力的一個產(chǎn)品系列。瑞薩可以提供包括軟硬件資源在內(nèi)的整套開發(fā)支持,通過與多家全球頂級方案商的合作,可以給客戶提供完整的解決方案,大大方便客戶的產(chǎn)品開發(fā)。R-Car系列作為高端的SoC產(chǎn)品,可以支持包括Linux,Android、QNX、Intergrity在內(nèi)的多種操作系統(tǒng),其中Android在智能座艙產(chǎn)品上應(yīng)用比較廣,目前提供的最新版本為Android P5.1.3。最近在測試Android P5.1.3的emmc啟動時遇到了一些問題,本文主要對該問題現(xiàn)象及解決方法做了介紹。
在編譯完成Android P5.1.3后按照flash writer的參考地址燒寫,IPL啟動階段BL2提示:
[??? 0.110615] ERROR:?? GPT signature is incorrect
[??? 0.113659] ERROR:?? Failed to load GPT table
檢查IPL的sa6.c源碼以及makefile文件看到,默認的啟動方式為emmc啟動,但是在源碼中多了一個emmc_ipl_addr.h的地址信息文件,其中描述的cert_header_sa6、bl31、optee以及uboot的存儲地址均與flash writer操作說明中的地址信息不一致,因此導(dǎo)致找不到emmc的相關(guān)參數(shù)表。因此我們在燒寫時需要對地址信息進行匹配修改。emmc的燒寫是以block為單位,一個block的地址區(qū)間大小為0x200,源碼定義的地址除以0x200就能得到相應(yīng)的存儲block。但是在燒寫地址做出匹配修改后,問題依然存在。根據(jù)錯誤log追查源碼,發(fā)現(xiàn)是在bl2_rcar_setup.c中的avb_ab_flow()函數(shù)返回錯誤,經(jīng)過追查代碼,發(fā)現(xiàn)該部分代碼對于emmc啟動并無太大作用,于是將該函數(shù)屏蔽后重新編譯,燒寫后emmc啟動正常,問題得到解決。將源碼修改輸出成patch文件,內(nèi)容如下:
diff --git a/plat/Renesas/rcar/bl2_rcar_setup.c b/plat/renesas/rcar/bl2_rcar_setup.c
index 3583766..47d403d 100644
--- a/plat/renesas/rcar/bl2_rcar_setup.c
+++ b/plat/renesas/rcar/bl2_rcar_setup.c
@@ -786,19 +786,20 @@ static void rcar_bl2_early_platform_setup(const meminfo_t *mem_layout)
LOSSY_FMT2, LOSSY_ENA_DIS2);
#endif /* #if (RCAR_LOSSY_ENABLE == 1) */
-??????? if (isSwitchPressed()) {
-???????????????? NOTICE("BL2: Force boot from HyperFlash.\n");
-???????????????? rcar_io_setup();
-???????????????? return;
-??????? }
+?????? isSwitchPressed();
+?????? //if (isSwitchPressed()) {
+?????? //????? NOTICE("BL2: Force boot from HyperFlash.\n");
+?????? //????? rcar_io_setup();
+?????? //????? return;
+?????? //}
/* Initialise the IO layer and register platform IO devices */
if((modemr_boot_dev == MODEMR_BOOT_DEV_EMMC_25X1) ||
(modemr_boot_dev == MODEMR_BOOT_DEV_EMMC_50X8)) {
#if (RCAR_BOOT_EMMC == 1)
-???????????????? if (avb_ab_flow() != AVB_AB_FLOW_RESULT_OK)
-?????????????????????????? rcar_io_setup();
-???????????????? else
+??????????????? //if (avb_ab_flow() != AVB_AB_FLOW_RESULT_OK)
+??????????????? //????? rcar_io_setup();
+??????????????? //else
#endif
rcar_io_emmc_setup();
} else {
以上就是R-Car Android P5.1.3 bsp emmc啟動所遇到的問題及解決方法,該測試以R-Car H3為例,同樣適用于R-Car M3。
總結(jié)
以上是生活随笔為你收集整理的android bsp调试环境,【经验】R-Car Android P5.1.3 bsp emmc启动出错解析及解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GetFLV.v9.1.1.5-load
- 下一篇: uiautomatorViewer无法获