用來製作efs的機器稱為a,用來驗證efs的機器稱為b。
1.在
modem_proc/core/storage/efs/inc/fs_config_i.h中增加以下三行:
#ifndef feature_efs_enable_factory_image_security_hole
#define feature_efs_enable_factory_image_security_hole
#endif
2.對於沒有使能secure boot的device,在
modem_proc/core/storage/fs_tar/src/fs_tar.c中增加一行:
#define feature_fs_tar_allow_dummy_key
使能了secure boot的device,不需要定義上面的巨集。
3.清除modem後重新編譯,編譯完成後進入common/build目錄執行指令碼python update_common_info.py,將新生成的common/build/bin/asic/non-hlos.bin檔案通過fastboot燒進手機的modem分割槽。
4.重啟手機,開啟qpst software download軟體,切換到restore頁面,usb連線手機,將qcn檔案(該qcn檔案配置了若干nv項)燒入手機,手機會自動重啟。
5.重啟就緒後,連線usb線至手機,確保qpst software download軟體開啟,將modem_proc/core/storage/tools/efsreadimage.pl檔案放到c:\users\yuntaohe\desktop\efs目錄下,開啟windows上的cmd視窗,進入c:\users\yuntaohe\desktop\efs目錄下,執行perl efsreadimage.pl -z,在當前目錄下會生成新檔案fs_image.tar.gz。
6.將fs_image.tar.gz上傳到ubuntu的modem_proc/core/storage/tools/qdst/目錄下,在該目錄下執行python qdstmbn.py fs_image.tar.gz,生成fs_image.tar.gz.mbn
7.將fs_image.tar.gz.mbn和modem_proc/build/ms/bin/8909.gen.prod/efs_image_meta.bin複製到modem_proc/core/bsp/efs_image_header/tools目錄下,在該目錄下執行python efs_image_create.py efs_image_meta.bin fs_image.tar.gz.mbn,生成fs_image.tar.gz.mbn.img。
至此,efs製作完成,efs的驗證過程如下:
1.對於沒有使能secure boot的device,在modem_proc/core/storage/fs_tar/src/fs_tar.c中增加一行:
#define feature_fs_tar_allow_dummy_key
使能了secure boot的device,不需要定義上面的巨集。
2.清除modem後重新編譯,編譯完成後進入common/build目錄執行指令碼python update_common_info.py,重新生成common/build/bin/asic/non-hlos.bin檔案。
3.生成全0的二進位制檔案:在linux下執行dd if=/dev/zero of=zero.bin bs=count=1,modem_st1 size參看rawprogram0_unspare.xml檔案:
size_in_kb="1536.0" sparse="false" start_byte_hex="0x8680000" start_sector="275456" />
本例中,modem_st1 size
= 1536 * 1024 = 1572864。
4.將步驟2生成的non-hlos.bin
和步驟3生成的zero.bin
以及生成efs的fs_image.tar.gz.mbn.img放入刷機包中。
5.修改刷機包中的rawprogram0_unspare.xml檔案:-
--+zero.bin" label="modemst1" num_partition_sectors="3072" physical_partition_number="0" size_in_kb="1536.0" sparse="false" start_byte_hex="0x8680000" start_sector="275456" />
+zero.bin" label="modemst2" num_partition_sectors="3072" physical_partition_number="0" size_in_kb="1536.0" sparse="false" start_byte_hex="0x8800000" start_sector="278528" />
+fs_image.tar.gz.mbn.img" label="fsg" num_partition_sectors="3072" physical_partition_number="0" size_in_kb="1536.0" sparse="false" start_byte_hex="0xc008000" start_sector="393280" />
6.用qfil刷機後,usb連線pc,用qxdm檢視若干nv是否生效。
注:若b機器使能了secure boot,那麼生成的efs檔案fs_image.tar.gz.mbn.img需要經過簽名後放入刷機包。
高通平台Bring up
3.2.amss 部分編譯 主要由以下部分構成 adsp,boot,debug,modem,rpm,trustzone,wcnss,分別根據高通的說明編譯這些模組,不過其中有些模組我們不會改,直接用release的binary檔案就行,比如 debug,rpm,trustzone,wcnss。3.3...
高通平台mipi panel kernel讀包方法
熟悉高通平台mipi panel kernel讀包方法,我想我們可以是的同一客戶要是使用2塊mipi panel的話我想我們可以通過讀取id來下不同序列而不用更換boot.img,還有能否讀id可以說明mipi通訊是否正常。還有我們只需在lk下面讀一次id再對全域性變數賦值通過lk傳遞到kernel...
高通平台 USB OTG功能
1 什麼是otg?usb otg 是usbon the go 的縮寫,即 otg技術就是實現在沒有 host 的情況下,實現裝置間的資料傳送。2 硬體介面 5根線 usb hs id usb hs d p usb hs d m usb vbus in gnd3 otg線 otg通訊的乙個關鍵是如何判...