差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
digi:arm-embedded:uboot:ccmp-uboot [2024/11/05 11:02] – robin | digi:arm-embedded:uboot:ccmp-uboot [2024/11/05 23:18] (当前版本) – robin | ||
---|---|---|---|
行 24: | 行 24: | ||
</ | </ | ||
其中解包op-tee镜像出来的得到的nt-fw.bin是uboot不带设备树的文件。 | 其中解包op-tee镜像出来的得到的nt-fw.bin是uboot不带设备树的文件。 | ||
+ | ====修改内核设备树==== | ||
+ | 内核设备树是从uboot启动进入系统时加载的设备树,它和uboot时的可以不一样。一般地,自定义的板子,linux也要同样改好ccmp25-plc.dts和相关的makefile,然后在local.conf里加上这句: | ||
+ | < | ||
+ | KERNEL_DEVICETREE += " | ||
+ | </ | ||
+ | |||
+ | 在devshell里直接编译 | ||
+ | < | ||
+ | bitbake -c devshell linux-dey | ||
+ | </ | ||
+ | 应用改动,然后make dtbs,编译出本地修改的相关的设备树ccmp25-plc.dtb | ||
=====修改U-Boot 源码===== | =====修改U-Boot 源码===== | ||
在工作区域修改U-Boot,首先要编译一个,以便拉取源码到工作区域。要清空之前的编译结果: | 在工作区域修改U-Boot,首先要编译一个,以便拉取源码到工作区域。要清空之前的编译结果: | ||
行 64: | 行 75: | ||
cd tmp/ | cd tmp/ | ||
mv configs/ | mv configs/ | ||
- | ln -s ~/ | + | cp ~/ |
mv arch/ | mv arch/ | ||
mv arch/ | mv arch/ | ||
mv arch/ | mv arch/ | ||
- | ln -s ~/ | + | ln -s ~/ |
- | ln -s ~/ | + | cp ~/ |
- | ln -s ~/ | + | cp ~/ |
- | 在上面操作中,我们用链接文件(即修改版的uboot)替代了,并且ccmp25-dvk.dts也和新增加的ccmp25-plc.dts链接到同一个修改版的uboot所用的设备树。 | + | cp ~/ |
- | 复查一下,确保路径正确,链接文件颜色是正常蓝色 | + | 在上面操作中,我们原本用链接文件(即修改版的uboot)替代了,并且ccmp25-dvk.dts也和新增加的ccmp25-plc.dts链接到同一个修改版的uboot所用的设备树。注意,默认的设备树dts和dtsi不可用链接文件,改为cp拷贝进去则可以。 |
+ | 复查一下,确保文件正确 | ||
ls -la arch/ | ls -la arch/ | ||
</ | </ | ||
行 81: | 行 93: | ||
ls -la ../ | ls -la ../ | ||
</ | </ | ||
- | linux也同样改好ccmp25-plc.dts和相关的makefile,然后在local.conf里加上这句:KERNEL_DEVICETREE += "ccmp25-plc.dtb" | + | 注意,此时我们用bitbake -C compile u-boot-dey,会发现原来的build/ |
- | 编译出相关的ccmp25-plc.dtb | + | < |
+ | cp deploy-u-boot-dey/ | ||
+ | cd ~/temp | ||
+ | dtc -I dtb -O dts -o uboot.dts u-boot-ccmp25-dvk.dtb | ||
+ | cat uboot.dts |grep dummy | ||
+ | </ | ||
+ | 我们在自己修改的uboot的设备树中加入了dummy节点,而这里没有,说明修改版没有应用上。如果不想深究,可以用编译出来的ccmp25-plc.dtb来替代所有的ccmp25-dvk.dtb | ||
+ | < | ||
+ | cp build/ | ||
+ | cp build/ | ||
+ | bitbake tf-a-stm32mp | ||
+ | </ | ||
+ | 再测试一下: | ||
+ | < | ||
+ | cp tmp/ | ||
+ | fiptool unpack ~/ | ||
+ | dtc -I dtb -O dts -o uboot.dts hw-config.bin | ||
+ | </ | ||
- | 接着编译 | + | 验证无误后,再bitbake core-image-base编译出所有镜像,最后更新 |
< | < | ||
- | bitbake core-image-base | + | update fip-a tftp fip-ccmp25-dvk-optee.bin |
</ | </ | ||
- | 注意:bitbake -c cleanall u-boot-dey也会删除tfa和fip目录,而deploy目录下也有u-boot,里面似乎是来自deploy-u-boot-dey/ | + | |
=====修改U-Boot设备树===== | =====修改U-Boot设备树===== | ||
修改源代码,在添加不同设备树的场景并不适用。并且git目录在bitbake -c cleansstate或cleanall时,都会被清空。因此,直正的修改需要发生在DEY的源码区,也就是sources里。 | 修改源代码,在添加不同设备树的场景并不适用。并且git目录在bitbake -c cleansstate或cleanall时,都会被清空。因此,直正的修改需要发生在DEY的源码区,也就是sources里。 |