SemiDrive G9H Safety_UART 配置到 AP 的方法

關鍵字 :SemiDriveG9HSafety_UARTAP

一、概述

本文介紹芯馳 G9H 平台外設 Safety_UART 如何配置到 AP 域使用的操作方法

1、硬體平台

G9H開發板(SD012_G9H)REF_A02)

2、軟體基線版本:

G9_PTG5.1.2

3、編譯配置:

G9H_Ref_LinuxK510_1G_mcal_emmc_Honister_3200.json

4、調試環境 & 工具:

        芯馳 SDToolBox_R2.24.0501;

12V 電源適配器

5、開發板實物圖片


圖1 G9H 開發板
 圖1 G9H 開發板

6、測試環境搭建:

        給開發板供電,連接 log 串口

二、修改 & 測試步驟

1、修改代碼:本文以 UART8 為例

① 刪除 UATR8 在 safety 域的配置

步驟1:

修改文件位置:buildsystem/rtos/lk_boot/chipcfg/generate/g9h/projects/default/safety/domain_res.h

圖2 uart8 在 safety 域的配置1

圖2 uart8 在 safety 域的配置1

步驟2:

修改文件位置:buildsystem/rtos/lk_boot/chipcfg/generate/g9h/projects/default/safety/domain_res_cnt.h

圖3 uart8 在 safety 域的配置2

圖3 uart8 在 safety 域的配置2


② 在 dts 中增加 UART8 配置

修改文件位置:buildsystem/yocto/source/linux5.10/arch/arm64/boot/dts/semidrive/g9h_ref.dts

圖4 dts 中的修改 

圖4 dts 中的修改

圖4 dts 中的修改


③ UART8 做 handover

修改文件位置:buildsystem/rtos/lk_boot/chipcfg/generate/g9h/projects/default/handover_res.h

圖5 uart8 做 handover

圖5 uart8 做 handover

④ 刪除 UART8 的 delete-node

修改文件位置:buildsystem/yocto/source/linux5.10/arch/arm64/boot/dts/semidrive/g9h_ap.dtsi

圖6 delete-node

圖6 delete-node

2、測試驗證

       修改以上代碼後,進行編譯,編譯、打包後,將鏡像通過 semidrive 的工具下載到開發板中,具體步驟方法不贅述

最終結果:

在 linux 下輸入指令:ls -l /sys/class/tty/ttyS* 

紅框中圈出的 304C0000 設備對於的就是 UART8 的地址

 圖7  linux tty log

 圖7  linux tty log

參考文檔

《SemiDrive 高性能車載處理器基於 Domain 的資源分配指南》

《SemiDrive Linux BSP User Manual》




歡迎在博文下方留言評論,我們會及時回復您的問題。

如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com   
作者:九

更多資訊,請掃碼關注我們!
 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論

闫文凯

闫文凯

2 個月前
你好,我使用g9h开发板尝试把safety安全域下的eth1配置到ap域下。参考文档和您的步骤,目前是可以在linux下看到网络节点,并能配置静态ip的。可是并不能和pc端ping通。实际测量网卡的mdio和mdc引脚的波形发现,只有mdc时钟的信号没有mdio的波形。使用devmem读取linux下网卡寄存器的信息0xfC384000/0x3c384000在linux端会报bus error,在safety安全域下可以正常读取寄存器的值0x00020008。麻烦请问这是什么原因,您这边有完整的示例可以分享吗?
闫文凯

闫文凯

2 個月前
你好,我使用g9h开发板尝试把safety安全域下的eth1配置到ap域下。参考文档和您的步骤,目前是可以在linux下看到网络节点,并能配置静态ip的。可是并不能和pc端ping通。实际测量网卡的mdio和mdc引脚的波形发现,只有mdc时钟的信号没有mdio的波形。使用devmem读取linux下网卡寄存器的信息0xfC384000/0x3c384000在linux端会报bus error,在safety安全域下可以正常读取寄存器的值0x00020008。麻烦请问这是什么原因,您这边有完整的示例可以分享吗?