TEE OS 開發基於OP-Tee,MTK平臺的移植方法
最近一直在研究TEE OS,經過一斷時間,終於把自己的OS移植到MTK平臺!
現在把主要的方法記錄一下,
1. 下載程式碼
- $ mkdir open-tee //建立目錄
- $ cd open-tee //切換到建立的目錄
- $ repo init -u https://github.com/OP-TEE/manifest.git -m default.xml --repo-url=git://codeaurora.org/tools/repo.git
- //初始化repo,
- $repo sync //開始獲取OP-TEE原始碼
則需要切換到.repo目錄中,將manifest.xml檔案中的所有的.git都刪除
2. 編譯
1. $ cd build //切換到build目錄
2 $ make -f mediatek.mk optee-os //編譯工程
3.平臺修改
參考optee_os\documentation\porting_guidelines.md
仔細研讀裡面的關鍵說明,根據實際修改
#ifndef PLATFORM_CONFIG_H
#define PLATFORM_CONFIG_H
/* Make stacks aligned to data cache line length */
#define STACK_ALIGNMENT64
/* 8250 UART */
#define CONSOLE_UART_BASE0xcafebabe /* UART0 */
#define CONSOLE_BAUDRATE115200
#define CONSOLE_UART_CLK_IN_HZ19200000
#define DRAM0_BASE0x00000000
#define DRAM0_SIZE0x40000000
/* Below ARM-TF */
#define CFG_SHMEM_START0x08000000
#define CFG_SHMEM_SIZE(4 * 1024 * 1024)
4, ATF 程式碼下載optee
https://github.com/ARM-software/arm-trusted-firmware
仔細研究相關平臺的ATF啟動流程,並加log列印
5. 移植kernel驅動部分
linux核心程式碼,在./driver/tee目錄下存放的是tee對應的驅動程式,
已經關鍵的資料結構檔案./include/linux/tee_drv.h;
6. Android tee守護程序tee-supplicant
編譯android版本
7. 理解整個程式碼架構
8. 解決問題方法和途徑
有好幾個不錯的提問網站,而且有好多問題和原始碼參考。
特別是那些老外,真心不錯,你給他發郵件,問題必回,我想這大概就是老外的開源精神!
提問: