I2C3 和 I2C4 默認不是劃給 AP 域的資源,但是客戶有特別需求的時候,可以 從 Safety 域 Handover 到 AP 域,本文就是在這樣的需求下產生的一份修改記錄。
1.修改資源分配
(1)修改 ecockpit 中 domain_res.h 文件中的資源配置
vim rtos/lk_boot/chipcfg/generate/x9_mid/projects/ms_serdes/ecockpit/domain_res.h
(2)修改 ecockpit 中 domain_res_cnt.h 文件中的 I2C 資源總數
vim rtos/lk_boot/chipcfg/generate/x9_mid/projects/ms_serdes/ecockpit/domain_res_cnt.h
(3)修改需要 handover 的資源
vim rtos/lk_boot/chipcfg/generate/x9_mid/projects/ms_serdes/handover_res.h
(4)去掉 safety 中的 I2C3 和 I2C4 資源
vim rtos/lk_boot/chipcfg/generate/x9_mid/projects/ms_serdes/safety/domain_res.h
(5)修改 safety 中的 I2C 資源總數
vim rtos/lk_boot/chipcfg/generate/x9_mid/projects/ms_serdes/safety/domain_res_cnt.h
(6)在防火牆中添加I2C3 和 I2C4
vim rtos/lk_boot/chipcfg/generate/x9_mid/projects/ms_serdes/firewall_cfg.h
2.修改 AP 域 dts 配置
(1)在 dts 中添加 I2C 資源。
vim android10/kernel/arch/arm64/boot/dts/semidrive/x9_mid_ecockpit-import.dtsi
(2)打開 dts 中的開關。
vim android10/kernel/arch/arm64/boot/dts/semidrive/x9_mid_ms_native_ivi_serdes.dts
(3)在 Android 內核 i2c 驅動中的 dev 結構增加 max_sclk 成員。
vim android10/kernel/drivers/i2c/busses/i2c-designware-core.h
(4)在 Android 內核 i2c 驅動中添加如下內容。
vim android10/kernel/drivers/i2c/busses/i2c-designware-platdrv.c
3.編譯驗證
(1)配置編譯環境
source lunch_sd.sh -c X9M_MS_NativeAndroidUser_Serdes_3G_emmc_3200.json -b X9_PTG4.3 -u customer_c
(2)編譯打包
make lk
make freertos
make android
make genpac
(3) 燒寫後進入 android 的 sys/class/i2c-adapter/ 目錄下查看是否生成 i2c 設備節點
4.總結
本文講了把 I2C3 和 I2C4 從 Safety 域 Handover 到 AP 域,因為這兩路默認不是劃給 AP 域的資源,但是客戶有特別需求的時候,可以進行 Handover,本文給出了詳細的修改方法和步驟,客戶可以參考完成 Handover。
5.參考資料
[1]《SemiDrive_基於 Domain 的資源分配指南_Rev0.5》
[2]《X9_SDK_用戶手冊_Rev1.7》
芯馳 X9系列相關博文:
《基於芯馳 X9HP PTG4.3 修改 4G DDR Layout》
《基於芯馳 X9HP PTG4.1 修改 UART10 作為 linux 串口輸出》
《基於芯馳 X9E PTG4.3 添加 PMU CTRLx 的控制驅動》
歡迎在博文下方留言評論,我們會及時回復您的問題。
如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com 作者:好景虛設
更多資訊,請掃碼關注我們!
評論