• IMX6ULL——U-boot移植(超级详细,手把手教学)(二)


    移植U-boot修改源码

    完善驱动参数

    复制并修改配置参数

    在这一步我们复制官方的参数配置文件,并在此基础上修改为适合我们自己板子的文件

    在 configs 目录下创建默认配置文件,复制 mx6ull_14x14_evk_emmc_defconfig,然后重命名为 mx6ull_myboard_emmc_defconfig

    cd configs/
    cp mx6ull_14x14_evk_emmc_defconfig  mx6ull_myboard_emmc_defconfig
    
    • 1
    • 2

    在这里插入图片描述

    修改我们刚刚复制出来文件的参数

    sudo gedit mx6ull_myboard_emmc_defconfig
    
    • 1

    在这里我们使用双击的方式或者命令的方式打开文件
    在这里插入图片描述
    修改文件内容如下:

    CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ull_myboard_emmc/imximage.cfg,MX6ULL_EVK_EMMC_REWORK"
    CONFIG_ARM=y
    CONFIG_ARCH_MX6=y
    CONFIG_TARGET_MX6ULL_MYBOARD_EMMC=y
    CONFIG_CMD_GPIO=y
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里我们要注意的是最后一行,后面不要带有空格或是换行,否则.imx无法编译成功

    添加头文件

    在include/configs文件目录下,复 制include/configs/mx6ullevk.h,并重命名为mx6ull_myboard_emmc.h

    cp include/configs/mx6ullevk.h include/configs/mx6ull_myboard_emmc.h
    gedit include/configs/mx6ull_myboard_emmc.h
    
    • 1
    • 2

    在这里插入图片描述
    替换恒定义头文件(第八行九行)

    #ifndef __MX6ULL_MYBOARD_EMMC_CONFIG_H
    #define __MX6ULL_MYBOARD_EMMC_CONFIG_H

    在这里插入图片描述
    在这里插入图片描述

    修改DDR的大小

    在这里插入图片描述

    替换为:

    #define is_mx6ull_9x9_evk()	CONFIG_IS_ENABLED(PHYS_SDRAM_SIZE)
    
    #ifdef CONFIG_TARGET_MX6ULL_9X9_EVK
    #define PHYS_SDRAM_SIZE		SZ_256M
    #define CONFIG_BOOTARGS_CMA_SIZE   "cma=96M "
    #else
    #define PHYS_SDRAM_SIZE		SZ_512M
    #define CONFIG_BOOTARGS_CMA_SIZE   "cma=96M "
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    修改LCD驱动

    #if defined(CONFIG_SYS_BOOT_NAND)
    #define CONFIG_EXTRA_ENV_SETTINGS \
    	CONFIG_MFG_ENV_SETTINGS \
    	"panel=TFT43AB\0" \
    	"fdt_addr=0x83000000\0" \
    	"fdt_high=0xffffffff\0"	  \
    	"console=ttymxc0\0" \
    	"bootargs=console=ttymxc0,115200 ubi.mtd=4 "  \
    		"root=ubi0:rootfs rootfstype=ubifs "		     \
    		CONFIG_BOOTARGS_CMA_SIZE \
    		"mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
    	"bootcmd=nand read ${loadaddr} 0x4000000 0x800000;"\
    		"nand read ${fdt_addr} 0x5000000 0x100000;"\
    		"bootz ${loadaddr} - ${fdt_addr}\0"
    
    #else
    #define CONFIG_EXTRA_ENV_SETTINGS \
    	CONFIG_MFG_ENV_SETTINGS \
    	"script=boot.scr\0" \
    	"image=zImage\0" \
    	"console=ttymxc0\0" \
    	"fdt_high=0xffffffff\0" \
    	"initrd_high=0xffffffff\0" \
    	"fdt_file=undefined\0" \
    	"fdt_addr=0x83000000\0" \
    	"boot_fdt=try\0" \
    	"ip_dyn=yes\0" \
    	"panel=TFT43AB\0" \
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    在这里插入图片描述

    替换代码(注意代码对应行数)

    #if defined(CONFIG_SYS_BOOT_NAND)
    #define CONFIG_EXTRA_ENV_SETTINGS \
    	CONFIG_MFG_ENV_SETTINGS \
    	"panel=ATK_TFT\0" \
    	"fdt_addr=0x83000000\0" \
    	"fdt_high=0xffffffff\0"	  \
    	"console=ttymxc0\0" \
    	"bootargs=console=ttymxc0,115200 ubi.mtd=4 "  \
    		"root=ubi0:rootfs rootfstype=ubifs "		     \
    		CONFIG_BOOTARGS_CMA_SIZE \
    		"mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
    	"bootcmd=nand read ${loadaddr} 0x4000000 0x800000;"\
    		"nand read ${fdt_addr} 0x5000000 0x100000;"\
    		"bootz ${loadaddr} - ${fdt_addr}\0"
    
    #else
    #define CONFIG_EXTRA_ENV_SETTINGS \
    	CONFIG_MFG_ENV_SETTINGS \
    	"script=boot.scr\0" \
    	"image=zImage\0" \
    	"console=ttymxc0\0" \
    	"fdt_high=0xffffffff\0" \
    	"initrd_high=0xffffffff\0" \
    	"fdt_file=undefined\0" \
    	"fdt_addr=0x83000000\0" \
    	"boot_fdt=try\0" \
    	"ip_dyn=yes\0" \
    	"panel=ATK_TFT\0" \
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    修改文件索引

    "if test $board_name = EVK && test $board_rev = 9X9; then " \
    					"setenv fdt_file imx6ull-9x9-evk.dtb; fi; " \
    				"if test $board_name = EVK && test $board_rev = 14X14; then " \
    					"setenv fdt_file imx6ull-14x14-evk.dtb; fi; " \
    				"if test $fdt_file = undefined; then " \
    					"echo WARNING: Could not determine dtb to use; fi; " \
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    修改为

    "setenv fdt_file imx6ull-myboard-emmc.dtb; " \
    
    • 1

    在这里插入图片描述

    修改网口为0,且使用SMSC芯片

    #define CONFIG_FEC_MXC_PHYADDR          0x2
    #define CONFIG_FEC_XCV_TYPE             RMII
    #elif (CONFIG_FEC_ENET_DEV == 1)
    #define IMX_FEC_BASE			ENET2_BASE_ADDR
    #define CONFIG_FEC_MXC_PHYADDR		0x1
    #define CONFIG_FEC_XCV_TYPE		RMII
    #endif
    #define CONFIG_ETHPRIME			"FEC"
    
    #define CONFIG_PHYLIB
    #define CONFIG_PHY_MICREL
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    修改为

    #define CONFIG_FEC_MXC_PHYADDR          0x0
    #define CONFIG_FEC_XCV_TYPE             RMII
    #elif (CONFIG_FEC_ENET_DEV == 1)
    #define IMX_FEC_BASE			ENET2_BASE_ADDR
    #define CONFIG_FEC_MXC_PHYADDR		0x1
    #define CONFIG_FEC_XCV_TYPE		RMII
    #endif
    #define CONFIG_ETHPRIME			"FEC"
    
    #define CONFIG_PHYLIB
    #define CONFIG_PHY_SMSC
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    到这里,头文件就修改完成了!

  • 相关阅读:
    【NOI模拟赛】思门弄数(数论,链表)
    95.qt qml-诺谦通用可扩展多功能QML界面
    【毕业设计】深度学习车道线检测与识别系统 - python 机器视觉
    U2Net 网络结构详解
    解决java.text.ParseException: Unparseable date: “invalid_date“
    AI在材料科学中的应用
    《深入浅出WPF》学习笔记
    JupyterNotebook的快捷键
    Web基础 - JavaScript
    Qt/C++中的异步编程
  • 原文地址:https://blog.csdn.net/qq_45922805/article/details/126845668