入手一块飞凌嵌入式 imx8mm开发板. 但是本人需要修改其显示分辨率, 但是飞凌嵌入式不提供其u-boot源码, 也不提供其显示驱动源码. 同时飞凌不提供安卓11镜像和源码
无奈,下载nxp官方源码, 自己找驱动源码,自行移植.
以下为个人移植NXP官方u-boot到飞凌PCBA的过程, 如有侵犯厂家权利, 请联系删除.
1,按照nxp说明.下载安卓11源码.(有可能google安卓服务器无法访问.可以用清华大学服务器代替谷歌服务器.)
2,修改UbootKernelBoardConfig.mk,增加自己的板子”imx8mm_newboard”
源地址如下:
/nvme/r11.0.0_1.0.0/android_build/device/nxp/imx8m/evk_8mm/UbootKernelBoardConfig.mk
TARGET_BOOTLOADER_CONFIG := imx8mm-newboard:imx8mm_newboard_evk_android_defconfig
3,拷贝制作自己的android_deconfig
a) imx8mm_ddr4_evk_android_defconfig,并重命名为imx8mm_newboard_evk_android_defconfig
源地址如下:: /nvme/r11.0.0_1.0.0/android_build/vendor/nxp-opensource/uboot-imx/configs/imx8mm_ddr4_evk_android_defconfig
b) imx8mm_newboard_evk_android_defconfig中,找到原有设备树文件描述,
CONFIG_DEFAULT_DEVICE_TREE="imx8mm-ddr4-evk"
CONFIG_DEFAULT_FDT_FILE="imx8mm-ddr4-evk.dtb"
修改为
CONFIG_DEFAULT_DEVICE_TREE="imx8mm-newboard-evk"
CONFIG_DEFAULT_FDT_FILE="imx8mm-newboard-evk.dtb"
c) 为了能顺利下载,还需要修改 同文件夹虾的这个配置文件, 用于下载 imx8mm_ddr4_evk_android_uuu_defconfig. 同样需要修改配置树为如下:
CONFIG_DEFAULT_DEVICE_TREE="imx8mm-newboard-evk"
CONFIG_DEFAULT_FDT_FILE="imx8mm-newboard-evk.dtb"
4, 制作自己的设备树:
拷贝imx8mm-ddr4-evk.dts,并重命名为imx8mm-newboard-evk.dts
源地址如下:
/nvme/r11.0.0_1.0.0/android_build/vendor/nxp-opensource/uboot-imx/arch/arm/dts/imx8mm-ddr4-evk.dts
a) NXP的usdhc1被用为wlan,需要注释掉.
b) gpmi-nand-1被用作外置存储器,注释掉.
pinctrl_usdhc2_gpio: usdhc2grpgpio {
fsl,pins = <
/*MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x1c4*/
MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41
MX8MM_IOMUXC_SD2_CED_B_GPIO2_IO12 0x1c4 //这一条没有添加,导致SD卡没有被选中, 烧录时,uboot中一直提示无法找到MMC
>;
};
&usdhc2 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; //这一条没有添加,导致SD卡没有被选中, 烧录时,uboot中一直提示无法找到MMC
bus-width = <4>;
vmmc-supply = <®_usdhc2_vmmc>;
status = "okay";
};
c)修改PMIC驱动. 这块板子的PMIC芯片为bd71847. NXP源码中是bd71837.
实际上不修改NXP原有设备树也可以启动.
至此, Uboot便可以启动了.