==== ccmp25plc optee处理 ====
在ccmp25plc第一版ST官方设计中,GPIO使用了PH4,PZ2这两个引脚,其中早期的Digi设备树中,这两个引脚在optee中被配置为安全的GPIO引脚,
https://github.com/digi-embedded/optee_os/blob/4.0.0/stm/maint/core/arch/arm/dts/ccmp25-dvk-rif.dtsi#L487
https://github.com/digi-embedded/optee_os/blob/4.0.0/stm/maint/core/arch/arm/dts/ccmp25-dvk-rif.dtsi#L559
如果你打算将它们用作普通GPIO引脚,可以将两者的代码更改为非安全模式(只需复制它们相邻行的参数)。
在官方dey的源码路径中编译:
~/native-dey/workspace/ccmp25/tmp/work/ccmp25_dvk-dey-linux/optee-os-stm32mp/4.0.0-stm32mp-r1/git/core/arch/arm/dts
bitbake -c devshell optee-os-stm32mp
ls ../build/optee-ccmp25-dvk/core/arch/arm/dts/ -la
查看当前日期
bitbake -c devshell optee-os-stm32mp
make ${EXTRA_OEMAKE} LIBGCC_LOCATE_CFLAGS=--sysroot=/home/robin/native-dey/workspace/ccmp25/tmp/work/ccmp25_dvk-dey-linux/optee-os-stm32mp/4.0.0-stm32mp-r1/recipe-sysroot PLATFORM=stm32mp2 CRYPTOGRAPHY_OPENSSL_NO_LEGACY=yes CFG_EMBED_DTB_SOURCE_FILE=ccmp25-dvk.dts
上面命令可编译optee,但这样编译只在output目录里,optee-os-stm32mp配方属于meta-st-stm32mp层,optee 系统会被tf-a-stm32mp配方合并到uboot中,生成的二进制固件镜像程序(FIP)是 tmp/deploy/images/ccmp25-dvk/fip-ccmp25-dvk-optee-emmc.bin -> fip/fip-ccmp25-dvk-optee-emmc.bin
正确的做法是用一个optee-os-stm32mp 的bbappend来打patch,以便更改DT,注意,meta-custom中,一般bbappend一般把文件放在dey目录下,而不是files,更改示例在:
https://github.com/peyoot/meta-custom/blob/7d26d633cb711a4d54cbbaad62e185cd82d56dc9/recipes-security/optee/optee-os-stm32mp_4.0.0.bbappend
注意到在2025年5/13的commits中,已经把这两个引脚改为普通的GPIO。所以相应的,我们可以移除ccmp25plc的对应配方。
==== 编译ccmp25plc镜像 ====
配置文件:
DISTRO_FEATURES:append = " rt"
IMAGE_INSTALL:append = " custom-service"
其中custom-service会把ST PLC demo也编译进镜像