添加开发板默认配置文件

①先在 configs 目录下创建默认配置文件,复制 mx6ull_14x14_evk_emmc_defconfig,然后重命名为 mx6ull_mybsp_emmc_defconfig,命令如下:

cd configs
cp mx6ull_14x14_evk_emmc_defconfig  mx6ull_mybsp_emmc_defconfig



终端输入:sudo gedit mx6ull_mybsp_emmc_defconfig
然后将文件 mx6ull_mybsp_emmc_defconfig 中的内容改成下面的:

CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ull_mybsp_emmc/imximage.cfg,MX6ULL_EVK_EMMC_REWORK"
CONFIG_ARM=y
CONFIG_ARCH_MX6=y
CONFIG_TARGET_MX6ULL_MYBSP_EMMC=y
CONFIG_CMD_GPIO=y


提示:尾巴不要带空格,否则.imx无法编译成功

添加开发板对应的头文件

在 目 录 include/configs 下 添 加 I.MX6ULL-ALPHA 开 发 板 对 应 的 头 文 件 , 复 制include/configs/mx6ullevk.h,并重命名为 mx6ull_mybsp_emmc.h,命令如下:

cp include/configs/mx6ullevk.h include/configs/mx6ull_mybsp_emmc.h
gedit include/configs/mx6ull_mybsp_emmc.h

拷贝完成以后将:

#ifndef __MX6ULLEVK_CONFIG_H
#define __MX6ULLEVK_CONFIG_H

改为:

#ifndef __MX6ULL_MYBSP_EMMC_CONFIG_H
#define __MX6ULL_MYBSP_EMMC_CONFIG_H

修改LED屏幕型号

TFT43AB 改为 TFT7016

"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; " \

修改为:

"setenv fdt_file imx6ull-mybsp-emmc.dtb; " \

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

CONFIG_FEC_MXC_PHYADDR 0x2 改 0x0
#define CONFIG_PHY_MICREL 改 #define CONFIG_PHY_SMSC

追加宏定义。
#define CONFIG_FAT_WRITE /* 使能fatwrite命令 */

到此为止,uboot修改完毕。

下面介绍这份配置文件含义:

第 14 行, 添加了头文件 mx6_common.h,如果在 mx6ull_mybsp_emmc.h 中没有发现有配置某个功能或命令,但是实际却存在的话,可以到 mx6_common.h 文件里面去找一下。
第 29~39 行, 设置 DRAM 的大小,宏 PHYS_SDRAM_SIZE 就是板子上 DRAM 的大小,如果用的NXP官方的9X9 EVK开发板的话DRAM大小就为256MB。 否则的话默认为512MB,正点原子的 I.MX6U-ALPHA 开发板用的是 512MB DDR3。
第 50 行, 定义宏 CONFIG_DISPLAY_CPUINFO,uboot 启动的时候可以输出 CPU 信息。
第 51 行, 定义宏 CONFIG_DISPLAY_BOARDINFO, uboot 启动的时候可以输出板子信息。
第 54 行, CONFIG_SYS_MALLOC_LEN 为 malloc 内存池大小,这里设置为 16MB。
第 56 行, 定义宏 CONFIG_BOARD_EARLY_INIT_F,这样 board_init_f 函数就会调用board_early_init_f 函数。
第 57 行, 定义宏 CONFIG_BOARD_LATE_INIT,这样 board_init_r 函数就会调用
board_late_init 函数。
第 59、60 行, 使能 I.MX6ULL 的串口功能,宏 CONFIG_MXC_UART_BASE 表示串口寄存器基地址,这里使用的串口 1,基地址为 UART1_BASE,UART1_BASE 定义在文件arch/arm/include/asm/arch-mx6/imx-regs.h 中,imx-regs.h 是 I.MX6ULL 寄存器描述文件,根据imx-regs.h 可得到 UART1_BASE 的值如下:

UART1_BASE = (ATZ1_BASE_ADDR + 0x20000) = AIPS1_ARB_BASE_ADDR + 0x20000 = 0x02000000 +  0x20000 = 0X02020000


第63、 64行, EMMC接在I.MX6ULL的USDHC2上, 宏CONFIG_SYS_FSL_ESDHC_ADDR为 EMMC 所使用接口的寄存器基地址,也就是 USDHC2 的基地址。

第 67~72 行, 跟 NAND 相关的宏,因为 NAND 和 USDHC2 的引脚冲突,因此如果使用NAND 的只能使用一个 USDHC 设备(SD 卡)。如果没有使用 NAND,那么就有两个 USDHC 设备(EMMC 和 SD 卡), 宏 CONFIG_SYS_FSL_USDHC_NUM 表示 USDHC 数量。 EMMC 版本的核心版没有用到 NAND,所以 CONFIG_SYS_FSL_USDHC_NUM=2。

第 75~81, 和 I2C 有关的宏定义,用于控制使能哪个 I2C,I2C 的速度为多少。

第 92~96 行, NAND 的分区设置,如果使用 NAND 的话,默认的 NAND 分区为:"mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs) ",分区结果如表所示:
NAND 的分区是可以调整的, 比如 boot 分区我们用不了 64M 这么大, 因此可以将其改小,其他的分区一样的。

第 98~111 行, 宏 CONFIG_MFG_ENV_SETTINGS 定义了一些环境变量,使用 MfgTool 烧写系统时候会用到这里面的环境变量。

第 113~202 行 , 通 过 条 件 编 译 来 设 置 宏 CONFIG_EXTRA_ENV_SETTINGS , 宏CONFIG_EXTRA_ENV_SETTINGS 也是设置一些环境变量,此宏会设置 bootargs 这个环境变量,后面我们会详细分析这个宏定义。

第 204~217 行, 设置宏 CONFIG_BOOTCOMMAND,此宏就是设置环境变量 bootcmd 的值。后面会详细的分析这个宏定义。

第 220~222 行, 设置命令 memtest 相关宏定义,比如使能命令 memtest,设置 memtest 测试的内存起始地址和内存大小。

第 224 行, 宏 CONFIG_SYS_LOAD_ADDR 表示 linux kernel 在 DRAM 中的加载地址,也就是 linux kernel 在 DRAM 中的存储首地址,CONFIG_LOADADDR=0X80800000。

第 225 行, 宏 CONFIG_SYS_HZ 为系统时钟频率,这里为 1000Hz。

第 227 行, 宏 CONFIG_STACKSIZE 为栈大小,这里为 128KB。

第 230 行, 宏 CONFIG_NR_DRAM_BANKS 为 DRAM BANK 的数量,I.MX6ULL 只有一个DRAM BANK,我们也只用到了一个 BANK,所以为 1。

第 231 行, 宏 PHYS_SDRAM 为 I.MX6ULL 的 DRAM 控制器 MMDC0 所管辖的 DRAM 范围起始地址,也就是 0X80000000。

第 233 行, 宏 CONFIG_SYS_SDRAM_BASE 为 DRAM 的起始地址。

第 234 行, 宏 CONFIG_SYS_INIT_RAM_ADDR 为 I.MX6ULL 内部 IRAM 的起始地址(也就是 OCRAM 的起始地址),为 0X00900000。

第 235 行, 宏 CONFIG_SYS_INIT_RAM_SIZE 为 I.MX6ULL 内部 IRAM 的大小(OCRAM的大小),为 0X00040000=128KB。

第 237~240 行, 宏 CONFIG_SYS_INIT_SP_OFFSET 和 CONFIG_SYS_INIT_SP_ADDR 与初始 SP 有关,第一个为初始 SP 偏移,第二个为初始 SP 地址。

第256行, 宏CONFIG_SYS_MMC_ENV_DEV为默认的MMC设备, 这里默认为USDHC2,也就是 EMMC。

**第 257 行,**宏 CONFIG_SYS_MMC_ENV_PART 为模式分区,默认为第 0 个分区。

第 258 行, 宏 CONFIG_MMCROOT 设置进入 linux 系统的根文件系统所在的分区, 这里设置为"/dev/mmcblk1p2",也就是 EMMC 设备的第 2 个分区。第 0 个分区保存 uboot,第 1 个分区保存 linux 镜像和设备树,第 2 个分区为 Linux 系统的根文件系统。

**第 277~291 行,**与 NAND 有关的宏定义,如果使用 NAND 的话。

第 293 行, 宏 CONFIG_ENV_SIZE 为环境变量大小,默认为 8KB。

第 294~308 行, 宏 CONFIG_ENV_OFFSET 为环境变量偏移地址,这里的偏移地址是相对于存储器的首地址。如果环境变量保存在 EMMC 中的话,环境变量偏移地址为 1264KB。如果环境变量保存在 SPI FLASH 中的话,偏移地址为 7681024。如果环境变量保存在 NAND 中的话,偏移地址为 60<<20(60MB),并且重新设置环境变量的大小为 128KB。

第 312~323 行, 与 USB 相关的宏定义。

第 325~342 行, 与网络相关的宏定义,比如使能 dhcp、ping 等命令。第 331 行的宏CONFIG_FEC_ENET_DEV 指定 uboot 所使用的网口,I.MX6ULL 有两个网口,为 0 的时候使用 ENET1,为 1 的时候使用 ENET2。宏 IMX_FEC_BASE 为 ENET 接口的寄存器首地址,宏CONFIG_FEC_MXC_PHYADDR 为网口 PHY 芯片的地址。宏 CONFIG_FEC_XCV_TYPE 为PHY 芯片所使用的接口类型,I.MX6U-ALPHA 开发板的两个 PHY 都使用的 RMII 接口。

第 344~END, 剩下的都是一些配置宏,比如 CONFIG_VIDEO 宏用于开启 LCD,CONFIG_VIDEO_LOGO 使能 LOGO 显示,CONFIG_CMD_BMP 使能 BMP 图片显示指令。这样就可以在 uboot 中显示图片了,一般用于显示 logo。

/** Copyright (C) 2016 Freescale Semiconductor, Inc.** Configuration settings for the Freescale i.MX6UL 14x14 EVK board.** SPDX-License-Identifier:  GPL-2.0+*/
#ifndef __MX6ULL_MYBSP_EMMC_CONFIG_H
#define __MX6ULL_MYBSP_EMMC_CONFIG_H#include <asm/arch/imx-regs.h>
#include <linux/sizes.h>
#include "mx6_common.h"
#include <asm/imx-common/gpio.h>/* uncomment for PLUGIN mode support */
/* #define CONFIG_USE_PLUGIN *//* uncomment for SECURE mode support */
/* #define CONFIG_SECURE_BOOT */#ifdef CONFIG_SECURE_BOOT
#ifndef CONFIG_CSF_SIZE
#define CONFIG_CSF_SIZE 0x4000
#endif
#endif#define is_mx6ull_9x9_evk()   CONFIG_IS_ENABLED(TARGET_MX6ULL_9X9_EVK)#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   ""
/* DCDC used on 14x14 EVK, no PMIC */
#undef CONFIG_LDO_BYPASS_CHECK
#endif/* SPL options */
/* We default not support SPL* #define CONFIG_SPL_LIBCOMMON_SUPPORT* #define CONFIG_SPL_MMC_SUPPORT* #include "imx6_spl.h"
*/#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG#define CONFIG_DISPLAY_CPUINFO
#define CONFIG_DISPLAY_BOARDINFO/* Size of malloc() pool */
#define CONFIG_SYS_MALLOC_LEN       (16 * SZ_1M)#define CONFIG_BOARD_EARLY_INIT_F
#define CONFIG_BOARD_LATE_INIT#define CONFIG_MXC_UART
#define CONFIG_MXC_UART_BASE        UART1_BASE/* MMC Configs */
#ifdef CONFIG_FSL_USDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR   USDHC2_BASE_ADDR/* NAND pin conflicts with usdhc2 */
#ifdef CONFIG_SYS_USE_NAND
#define CONFIG_SYS_FSL_USDHC_NUM    1
#else
#define CONFIG_SYS_FSL_USDHC_NUM    2
#endif
#endif/* I2C configs */
#define CONFIG_CMD_I2C
#ifdef CONFIG_CMD_I2C
#define CONFIG_SYS_I2C
#define CONFIG_SYS_I2C_MXC
#define CONFIG_SYS_I2C_MXC_I2C1     /* enable I2C bus 1 */
#define CONFIG_SYS_I2C_MXC_I2C2     /* enable I2C bus 2 */
#define CONFIG_SYS_I2C_SPEED        100000/* PMIC only for 9X9 EVK */
#define CONFIG_POWER
#define CONFIG_POWER_I2C
#define CONFIG_POWER_PFUZE3000
#define CONFIG_POWER_PFUZE3000_I2C_ADDR  0x08
#endif#define CONFIG_SYS_MMC_IMG_LOAD_PART  1#ifdef CONFIG_SYS_BOOT_NAND
#define CONFIG_MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs) "
#else
#define CONFIG_MFG_NAND_PARTITION ""
#endif#define CONFIG_MFG_ENV_SETTINGS \"mfgtool_args=setenv bootargs console=${console},${baudrate} " \CONFIG_BOOTARGS_CMA_SIZE \"rdinit=/linuxrc " \"g_mass_storage.stall=0 g_mass_storage.removable=1 " \"g_mass_storage.file=/fat g_mass_storage.ro=1 " \"g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF "\"g_mass_storage.iSerialNumber=\"\" "\CONFIG_MFG_NAND_PARTITION \"clk_ignore_unused "\"\0" \"initrd_addr=0x83800000\0" \"initrd_high=0xffffffff\0" \"bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};\0" \

#if defined(CONFIG_SYS_BOOT_NAND)
#define CONFIG_EXTRA_ENV_SETTINGS \CONFIG_MFG_ENV_SETTINGS \"panel=TFT7016\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=TFT7016\0" \"mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \"mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \"mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \"mmcautodetect=yes\0" \"mmcargs=setenv bootargs console=${console},${baudrate} " \CONFIG_BOOTARGS_CMA_SIZE \"root=${mmcroot}\0" \"loadbootscript=" \"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \"bootscript=echo Running bootscript from mmc ...; " \"source\0" \"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \"mmcboot=echo Booting from mmc ...; " \"run mmcargs; " \"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \"if run loadfdt; then " \"bootz ${loadaddr} - ${fdt_addr}; " \"else " \"if test ${boot_fdt} = try; then " \"bootz; " \"else " \"echo WARN: Cannot load the DT; " \"fi; " \"fi; " \"else " \"bootz; " \"fi;\0" \"netargs=setenv bootargs console=${console},${baudrate} " \CONFIG_BOOTARGS_CMA_SIZE \"root=/dev/nfs " \"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \"netboot=echo Booting from net ...; " \"run netargs; " \"if test ${ip_dyn} = yes; then " \"setenv get_cmd dhcp; " \"else " \"setenv get_cmd tftp; " \"fi; " \"${get_cmd} ${image}; " \"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \"if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \"bootz ${loadaddr} - ${fdt_addr}; " \"else " \"if test ${boot_fdt} = try; then " \"bootz; " \"else " \"echo WARN: Cannot load the DT; " \"fi; " \"fi; " \"else " \"bootz; " \"fi;\0" \"findfdt="\"if test $fdt_file = undefined; then " \"setenv fdt_file imx6ull-mybsp-emmc.dtb; ""fi;\0" \#define CONFIG_BOOTCOMMAND \"run findfdt;" \"mmc dev ${mmcdev};" \"mmc dev ${mmcdev}; if mmc rescan; then " \"if run loadbootscript; then " \"run bootscript; " \"else " \"if run loadimage; then " \"run mmcboot; " \"else run netboot; " \"fi; " \"fi; " \"else run netboot; fi"
#endif/* Miscellaneous configurable options */
#define CONFIG_CMD_MEMTEST
#define CONFIG_SYS_MEMTEST_START    0x80000000
#define CONFIG_SYS_MEMTEST_END      (CONFIG_SYS_MEMTEST_START + 0x8000000)#define CONFIG_SYS_LOAD_ADDR     CONFIG_LOADADDR
#define CONFIG_SYS_HZ           1000#define CONFIG_STACKSIZE        SZ_128K/* Physical Memory Map */
#define CONFIG_NR_DRAM_BANKS        1
#define PHYS_SDRAM          MMDC0_ARB_BASE_ADDR#define CONFIG_SYS_SDRAM_BASE        PHYS_SDRAM
#define CONFIG_SYS_INIT_RAM_ADDR    IRAM_BASE_ADDR
#define CONFIG_SYS_INIT_RAM_SIZE    IRAM_SIZE#define CONFIG_SYS_INIT_SP_OFFSET \(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
#define CONFIG_SYS_INIT_SP_ADDR \(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)/* FLASH and environment organization */
#define CONFIG_SYS_NO_FLASH#ifdef CONFIG_SYS_BOOT_QSPI
#define CONFIG_FSL_QSPI
#define CONFIG_ENV_IS_IN_SPI_FLASH
#elif defined CONFIG_SYS_BOOT_NAND
#define CONFIG_SYS_USE_NAND
#define CONFIG_ENV_IS_IN_NAND
#else
#define CONFIG_FSL_QSPI
#define CONFIG_ENV_IS_IN_MMC
#endif#define CONFIG_SYS_MMC_ENV_DEV        1   /* USDHC2 */
#define CONFIG_SYS_MMC_ENV_PART     0   /* user area */
#define CONFIG_MMCROOT          "/dev/mmcblk1p2"  /* USDHC2 */#define CONFIG_CMD_BMODE#ifdef CONFIG_FSL_QSPI
#define CONFIG_QSPI_BASE        QSPI0_BASE_ADDR
#define CONFIG_QSPI_MEMMAP_BASE     QSPI0_AMBA_BASE#define CONFIG_CMD_SF
#define CONFIG_SPI_FLASH
#define CONFIG_SPI_FLASH_BAR
#define CONFIG_SF_DEFAULT_BUS       0
#define CONFIG_SF_DEFAULT_CS        0
#define CONFIG_SF_DEFAULT_SPEED 40000000
#define CONFIG_SF_DEFAULT_MODE      SPI_MODE_0
#define CONFIG_SPI_FLASH_STMICRO
#endif/* NAND stuff */
#ifdef CONFIG_SYS_USE_NAND
#define CONFIG_CMD_NAND
#define CONFIG_CMD_NAND_TRIMFFS#define CONFIG_NAND_MXS
#define CONFIG_SYS_MAX_NAND_DEVICE  1
#define CONFIG_SYS_NAND_BASE        0x40000000
#define CONFIG_SYS_NAND_5_ADDR_CYCLE
#define CONFIG_SYS_NAND_ONFI_DETECTION/* DMA stuff, needed for GPMI/MXS NAND support */
#define CONFIG_APBH_DMA
#define CONFIG_APBH_DMA_BURST
#define CONFIG_APBH_DMA_BURST8
#endif#define CONFIG_ENV_SIZE           SZ_8K
#if defined(CONFIG_ENV_IS_IN_MMC)
#define CONFIG_ENV_OFFSET       (12 * SZ_64K)
#elif defined(CONFIG_ENV_IS_IN_SPI_FLASH)
#define CONFIG_ENV_OFFSET       (768 * 1024)
#define CONFIG_ENV_SECT_SIZE        (64 * 1024)
#define CONFIG_ENV_SPI_BUS      CONFIG_SF_DEFAULT_BUS
#define CONFIG_ENV_SPI_CS       CONFIG_SF_DEFAULT_CS
#define CONFIG_ENV_SPI_MODE     CONFIG_SF_DEFAULT_MODE
#define CONFIG_ENV_SPI_MAX_HZ       CONFIG_SF_DEFAULT_SPEED
#elif defined(CONFIG_ENV_IS_IN_NAND)
#undef CONFIG_ENV_SIZE
#define CONFIG_ENV_OFFSET       (60 << 20)
#define CONFIG_ENV_SECT_SIZE        (128 << 10)
#define CONFIG_ENV_SIZE         CONFIG_ENV_SECT_SIZE
#endif/* USB Configs */
#define CONFIG_CMD_USB
#ifdef CONFIG_CMD_USB
#define CONFIG_USB_EHCI
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
#define CONFIG_USB_HOST_ETHER
#define CONFIG_USB_ETHER_ASIX
#define CONFIG_MXC_USB_PORTSC  (PORT_PTS_UTMI | PORT_PTS_PTW)
#define CONFIG_MXC_USB_FLAGS   0
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
#endif#ifdef CONFIG_CMD_NET
#define CONFIG_CMD_PING
#define CONFIG_CMD_DHCP
#define CONFIG_CMD_MII
#define CONFIG_FEC_MXC
#define CONFIG_MII
#define CONFIG_FEC_ENET_DEV     1#if (CONFIG_FEC_ENET_DEV == 0)
#define IMX_FEC_BASE            ENET_BASE_ADDR
#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
#endif#define CONFIG_IMX_THERMAL#ifndef CONFIG_SPL_BUILD
#define CONFIG_VIDEO
#ifdef CONFIG_VIDEO
#define CONFIG_CFB_CONSOLE
#define CONFIG_VIDEO_MXS
#define CONFIG_VIDEO_LOGO
#define CONFIG_VIDEO_SW_CURSOR
#define CONFIG_VGA_AS_SINGLE_DEVICE
#define CONFIG_SYS_CONSOLE_IS_IN_ENV
#define CONFIG_SPLASH_SCREEN
#define CONFIG_SPLASH_SCREEN_ALIGN
#define CONFIG_CMD_BMP
#define CONFIG_BMP_16BPP
#define CONFIG_VIDEO_BMP_RLE8
#define CONFIG_VIDEO_BMP_LOGO
#define CONFIG_IMX_VIDEO_SKIP
#endif
#endif#define CONFIG_FAT_WRITE /* 使能fatwrite命令 */#define CONFIG_IOMUX_LPSR#if defined(CONFIG_ANDROID_SUPPORT)
#include "mx6ullevk_android.h"
#endif#endif

[I.MX6UL] U-Boot移植(三) 在 U-Boot 中添加自己的开发板相关推荐

  1. stm32mp157系统移植 | 移植ST官方5.10内核到小熊派开发板

    Linux内核移植流程 移植Linux内核到一个新的板子上时,需要以下步骤: (1)选择一个硬件设计接近的板子,基于此板相关文件开始移植 (2)拷贝单板配置文件(arch/arm/configs) ( ...

  2. 3. mysql的注解驱动的三种方式_上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。...

    1.引入依赖 org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot- ...

  3. linux驱动:TI+DM8127+GPIO(三)之omap_hwmod中添加GPIO资源

    三.[GPIO驱动框架>向omap_hwmod中添加GPIO资源] ***将GPIO硬件信息添加到注册到omap_hwmod_list列表中 Arch/arm/plat-omap/include ...

  4. 洋桃电子STM32物联网入门30步笔记三、CubeMX图形化编程、设置开发板上的IO口

    此文档作为对杨桃电子视频的整理,B站链接:第四集 一.开启RCC的外部时钟.包括外部高速时钟HSE和外部低速时钟LSE 时钟配置三个选项的含义: 选择禁用的话就只能使用内部时钟 旁路时钟源一般是有源晶 ...

  5. (转)Spring Boot 2 (三):Spring Boot 开源软件都有哪些?

    http://www.ityouknow.com/springboot/2018/03/05/spring-boot-open-source.html 2016年 Spring Boot 还没有被广泛 ...

  6. C# 处理PPT水印(三)—— 在PPT中添加多行(平铺)文本水印效果

    在PPT幻灯sql教程片中,可通过java基础教程添加形状python基础教程的方式,来实现c#教程类似水印的效vb.net教程果,可添加单一文本水印效果,即幻灯片中只有一个文本水印:也可以添加多行( ...

  7. ABF平台设计(三)-优酷中后台低代码开发方案

    背景 我们团队绝大多数工作都是在开发各种中后台应用,也一直在探索如何提升中后台应用开发的效率.为此我们建设了ABF平台,能在ABF平台上一站式完成应用创建.权限控制.开发.部署等,这篇文章将介绍ABF ...

  8. 将linux内核烧进arm板,ARM开发板上uClinux内核移植

    <ARM开发板上uClinux内核移植>由会员分享,可在线阅读,更多相关<ARM开发板上uClinux内核移植(19页珍藏版)>请在人人文库网上搜索. 1.纷傲掌秀悸篷益哑檀扬 ...

  9. 移植Linux 3.4.2内核到JZ2440开发板(超精讲)

    Linux 3.4.2内核移植到JZ2440开发板 0.开发环境 虚拟机:VMware workstation 16 pro 宿主机操作系统:Ubuntu 16.04 开发板:JZ2440 移植内核版 ...

  10. 小熊派开发板移植RT-FOTA

    前言 买了小熊派的开发板,将demo code验证完成之后就放下了.刚好最近工作也在做OTA相关的开发,发现自己对于升级的功能还不够了解,在码云找到了一位大神基于RTThread的RT-FOTA代码, ...

最新文章

  1. GHOST还原教程详细
  2. 如何提高python的运行效率_几个提升Python运行效率的方法之间的对比
  3. 除了 k8s,留给 k 和 s 中间的数字不多了!
  4. Writing for Myself.part2
  5. SQL Server 2016新特性:Live Query Statistics
  6. LiveVideoStackCon 2019北京你来吗?
  7. JVM调优总结(七)-典型配置举例1
  8. StevenBoyd--Convex optimization--0. Contents
  9. SCPPO(二十):系统统一身份认证的改造之路
  10. CSDN开发者云平台体验
  11. 论项目整体管理-软考论文整理一
  12. go 获取是第几周_golang判断当前时间是第几周的方法
  13. MIUI9线刷包精简
  14. CSDN博客排名前15名
  15. RabbitMQ之消息确认机制(事务+Confirm) - 朱小厮的博客 - CSDN博客
  16. 语句摘抄——第18周
  17. 性能优化之MySQL优化
  18. Project Professional安装:Windows Installer(MSI)与即点即用
  19. WSL下的NeoVim安装与配置
  20. 使用Django创建bolg的后台页面 (精简版)NO.2

热门文章

  1. 文化部要求巨人网络整改《巨人》游戏
  2. JavaScript 表格小游戏
  3. 元宇宙商标现在都怎么样了
  4. 学计算机打字,学电脑打字用什么方法学的最快
  5. 清华推出“脑机绘梦”,把脑电信号变成绘画元素!雨果奖得主用了也说好
  6. MongoDB入门3——更新文档和修改器1
  7. 江北计算机学校,江北【计算机专业职高】找哪家
  8. Could not resolve placeholder '***' in string value ${****}
  9. 【大学四年自学Java的学习路线】写了一个月
  10. 【EXLIBRIS】编·译·著