日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android bsp调试环境,【经验】R-Car Android P5.1.3 bsp emmc启动出错解析及解决方法

發布時間:2024/1/1 Android 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android bsp调试环境,【经验】R-Car Android P5.1.3 bsp emmc启动出错解析及解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

R-Car作為瑞薩搶占高端車載產品市場的拳頭產品,也是當前在自動駕駛領域有著強大競爭力的一個產品系列。瑞薩可以提供包括軟硬件資源在內的整套開發支持,通過與多家全球頂級方案商的合作,可以給客戶提供完整的解決方案,大大方便客戶的產品開發。R-Car系列作為高端的SoC產品,可以支持包括Linux,Android、QNX、Intergrity在內的多種操作系統,其中Android在智能座艙產品上應用比較廣,目前提供的最新版本為Android P5.1.3。最近在測試Android P5.1.3的emmc啟動時遇到了一些問題,本文主要對該問題現象及解決方法做了介紹。

在編譯完成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操作說明中的地址信息不一致,因此導致找不到emmc的相關參數表。因此我們在燒寫時需要對地址信息進行匹配修改。emmc的燒寫是以block為單位,一個block的地址區間大小為0x200,源碼定義的地址除以0x200就能得到相應的存儲block。但是在燒寫地址做出匹配修改后,問題依然存在。根據錯誤log追查源碼,發現是在bl2_rcar_setup.c中的avb_ab_flow()函數返回錯誤,經過追查代碼,發現該部分代碼對于emmc啟動并無太大作用,于是將該函數屏蔽后重新編譯,燒寫后emmc啟動正常,問題得到解決。將源碼修改輸出成patch文件,內容如下:

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。

總結

以上是生活随笔為你收集整理的android bsp调试环境,【经验】R-Car Android P5.1.3 bsp emmc启动出错解析及解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。