高通平台EFS的製作

2021-08-01 08:31:50 字數 2939 閱讀 3015

用來製作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通訊的乙個關鍵是如何判...