目录
拷贝一份stm32mp157d-ed1.dts文件,重命名为stm32mp157d-atk.dts
拷贝一份stm32mp15xx-edx.dtsi文件,重命名为stm32mp157d-atk.dtsi
修改stm32mp157d-atk.dts文件,将12行原有的内容改为
#include "stm32mp157d-atk.dtsi"
打开Makefile.sdk文件
添加dts文件到编译列表,将刚刚修改的stm32mp157d-atk.dts文件进行添加,只需添加文件名,无需添加后缀,如果不添加,将不会对其进行编译
进入源码目录,进行编译
make -f ../Makefile.sdk all //编译,采用上一级目录的Makefile.sdk文件
make -f ../Makefile.sdk all -j8 //编译,采用上一级目录的Makefile.sdk文件,采用8个内核进行进行编译
在build/trusted目录下,就出现了atk的文件,但是这部分文件是没有用的,源码部分完全没有修改
修改dtsi文件
修改设备树电源管理
找到i2c4设备信息,把pmic的内容全部删除,仅留下下列信息
更换其他设备的电源信息
把vin信息更换为下列电源信息
vddcore: regulator-vddcore {
compatible = "regulator-fixed";
regulator-name = "vddcore";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1350000>;
regulator-off-in-suspend;
regulator-always-on;
};
v3v3: regulator-3p3v {
compatible = "regulator-fixed";
regulator-name = "v3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-off-in-suspend;
regulator-always-on;
};
vdd: regulator-vdd {
compatible = "regulator-fixed";
regulator-name = "vdd";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-off-in-suspend;
regulator-always-on;
};
vdd_usb: regulator-vdd-usb {
compatible = "regulator-fixed";
regulator-name = "vdd_usb";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-off-in-suspend;
regulator-always-on;
};
修改TF卡和EMMC设备树
修改sdmmc1、sdmmc2信息
修改为下面的信息
&sdmmc1 {
pinctrl-names = "default";
pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
st,neg-edge;
broken-cd;
bus-width = <4>;
vmmc-supply = <&v3v3>;
status = "okay";
};
&sdmmc2 {
pinctrl-names = "default";
pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
non-removable;
st,neg-edge;
bus-width = <8>;
vmmc-supply = <&v3v3>;
vqmmc-supply = <&v3v3>;
status = "okay";
};
修改USB OTG设备树
修改为下面的内容
&usbotg_hs {
phys = <&usbphyc_port1 0>;
phy-names = "usb2-phy";
usb-role-switch;
status = "okay";
};
再在下面添加一个设备信息
&usbphyc {
status = "okay";
};
编译
修改Makefile.sdk文件
只需要编译atk文件,同时可以减少编译时间
将编译的文件改为stm32mp157d-atk
开始编译
make -f ../Makefile.sdk all //编译,采用上一级目录的Makefile.sdk文件
make -f ../Makefile.sdk all -j8 //编译,采用上一级目录的Makefile.sdk文件,采用8个内核进行进行编译
这个时候的atk文件才是有用的
烧录
将编译好的tf-a-stm32mp157d-atk-trusted.stm32烧写进STM32MP157DAA开发板,重启开发板,串口输出TF-A信息,TF-A移植成功。