差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:arm-embedded:uboot:ccmp-uboot [2024/11/05 12:06] robindigi:arm-embedded:uboot:ccmp-uboot [2024/11/05 23:18] (当前版本) robin
行 24: 行 24:
 </code> </code>
 其中解包op-tee镜像出来的得到的nt-fw.bin是uboot不带设备树的文件。 其中解包op-tee镜像出来的得到的nt-fw.bin是uboot不带设备树的文件。
 +====修改内核设备树====
 +内核设备树是从uboot启动进入系统时加载的设备树,它和uboot时的可以不一样。一般地,自定义的板子,linux也要同样改好ccmp25-plc.dts和相关的makefile,然后在local.conf里加上这句:
 +<code>
 +KERNEL_DEVICETREE += "ccmp25-plc.dtb"
 +</code>
 +
 +在devshell里直接编译
 +<code>
 +bitbake -c devshell linux-dey
 +</code>
 +应用改动,然后make dtbs,编译出本地修改的相关的设备树ccmp25-plc.dtb
 =====修改U-Boot 源码===== =====修改U-Boot 源码=====
 在工作区域修改U-Boot,首先要编译一个,以便拉取源码到工作区域。要清空之前的编译结果: 在工作区域修改U-Boot,首先要编译一个,以便拉取源码到工作区域。要清空之前的编译结果:
行 64: 行 75:
 cd tmp/work/ccmp25_dvk-dey-linux/u-boot-dey/2022.10-r0/git cd tmp/work/ccmp25_dvk-dey-linux/u-boot-dey/2022.10-r0/git
 mv configs/ccmp25-dvk_defconfig ~/temp/ mv configs/ccmp25-dvk_defconfig ~/temp/
-ln -s ~/mygit/github/ccmp25-plc/uboot/configs/ccmp25-dvk_defconfig configs/ccmp25-dvk_defconfig+cp ~/mygit/github/ccmp25-plc/uboot/configs/ccmp25-dvk_defconfig configs/ccmp25-dvk_defconfig
 mv arch/arm/dts/ccmp25-dvk-u-boot.dtsi ~/temp/ mv arch/arm/dts/ccmp25-dvk-u-boot.dtsi ~/temp/
 mv arch/arm/dts/ccmp25-dvk.dts ~/temp/ mv arch/arm/dts/ccmp25-dvk.dts ~/temp/
 mv arch/arm/dts/Makefile ~/temp mv arch/arm/dts/Makefile ~/temp
-ln -s ~/mygit/github/ccmp25_dt/uboot-dts/ccmp25-plc.dts arch/arm/dts/ccmp25-dvk.dts +ln -s ~/mygit/github/ccmp25_dt/uboot-dts/ccmp25-plc.dts arch/arm/dts/ccmp25-plc.dts 
-ln -~/mygit/github/ccmp25_dt/uboot-dts/ccmp25-dvk-u-boot.dtsi arch/arm/dts/ccmp25-dvk-u-boot.dtsi +cp ~/mygit/github/ccmp25_dt/uboot-dts/ccmp25-plc.dts arch/arm/dts/ccmp25-dvk.dts 
-ln -s ~/mygit/github/ccmp25_dt/uboot-dts/Makefile +cp ~/mygit/github/ccmp25_dt/uboot-dts/ccmp25-dvk-u-boot.dtsi arch/arm/dts/ccmp25-dvk-u-boot.dtsi 
-在上面操作中,我们用链接文件(即修改版的uboot)替代了,并且ccmp25-dvk.dts也和新增加的ccmp25-plc.dts链接到同一个修改版的uboot所用的设备树。 +cp ~/mygit/github/ccmp25_dt/uboot-dts/Makefile 
-复查一下,确保路径正确,链接文件颜色是常蓝色+在上面操作中,我们原本用链接文件(即修改版的uboot)替代了,并且ccmp25-dvk.dts也和新增加的ccmp25-plc.dts链接到同一个修改版的uboot所用的设备树。注意,默认的设备树dts和dtsi不可用链接文件,改为cp拷贝进去则可以。 
 +复查一下,确保文件正
 ls -la arch/arm/dts/ccm* ls -la arch/arm/dts/ccm*
 </code> </code>
行 101: 行 113:
 </code> </code>
  
-验证无误后,再更新 +验证无误后,再bitbake core-image-base编译出所有镜像,最后更新 
 +<code>
 update fip-a tftp fip-ccmp25-dvk-optee.bin update fip-a tftp fip-ccmp25-dvk-optee.bin
 +</code>
  
  
- 
-linux也同样改好ccmp25-plc.dts和相关的makefile,然后在local.conf里加上这句:KERNEL_DEVICETREE += "ccmp25-plc.dtb" 
-编译出相关的ccmp25-plc.dtb 
- 
-接着编译 
-<code> 
-bitbake core-image-base 
-</code> 
- 
-注意:bitbake -c cleanall u-boot-dey也会删除tfa和fip目录,而deploy目录下也有u-boot,里面似乎是来自deploy-u-boot-dey/u-boot,所以在打包tfa和fip时,只改deploy-u-boot-dey/u-boot够了么? 
 =====修改U-Boot设备树===== =====修改U-Boot设备树=====
 修改源代码,在添加不同设备树的场景并不适用。并且git目录在bitbake -c cleansstate或cleanall时,都会被清空。因此,直正的修改需要发生在DEY的源码区,也就是sources里。 修改源代码,在添加不同设备树的场景并不适用。并且git目录在bitbake -c cleansstate或cleanall时,都会被清空。因此,直正的修改需要发生在DEY的源码区,也就是sources里。