I.MX6ULL 从NXP官方获取uboot并且移植

从NXP获取uboot并且安装NXP官方开发板配置编译

1、NXP官方获取:uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

2、解压缩:tar -vxjf boot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

3、打开configs目录

4、利用官方的配置文件编译uboot

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
命令敲打之后会自动编译uboot
5、编译成功画面

 6、避免每次编译uboot需要重新输入命令麻烦,可以创建sh脚本文件

imx_6ull_evk_defconfig.sh

# ! /bin/bash
make ARCH = arm CROSS_COMPILE = arm - linux - gnueabihf - distclean
make ARCH = arm CROSS_COMPILE = arm - linux - gnueabihf
mx6ull_14x14_evk_emmc_defconfig
make V = 1 ARCH = arm CROSS_COMPILE = arm - linux - gnueabihf - - j16
赋予权限:chmod 777 imx_6ull_evk_defconfig.sh
执行:./imx_6ull_evk_defconfig.sh

将uboot移植匹配 到自己的开发板atk

1、打开configs文件,将官方配置文件复制一份,并且改名

cd configs
cp mx6ull_14x14_evk_emmc_defconfig mx6ull_alientek_emmc_defconfig
将mx6ull_alientek_emmc_defconfig内容做如下修改:
1 CONFIG_SYS_EXTRA_OPTIONS = "IMX_CONFIG=board/freescale/mx6ull_alientek_
emmc/imximage.cfg,MX6ULL_EVK_EMMC_REWORK"
2 CONFIG_ARM = y
3 CONFIG_ARCH_MX6 = y
4 CONFIG_TARGET_MX6ULL_ALIENTEK_EMMC = y
5 CONFIG_CMD_GPIO = y

2、添加开发板对应的头文件

include/configs目录下
cp include/configs/mx6ullevk.h include/configs/mx6ull_alientek_emmc.h
#ifndef __MX6ULLEVK_CONFIG_H
#define __MX6ULLEVK_CONFIG_H
改为
#ifndef __MX6ULL_ALIENTEK_EMMC_CONFIG_H
#define __MX6ULL_ALIENTEK_EMMC_CONFIG_H
mx6ull_alientek_emmc.h 里面的内容比较多,这个头文件是用作配置剪裁uboot功能的:
示例代码 33.2.2.1 mx6ull_alientek_emmc.h 文件
1 /*
2 * Copyright (C) 2016 Freescale Semiconductor, Inc.
3 *
4 * Configuration settings for the Freescale i.MX6UL 14x14 EVK board.
5 *
6 * SPDX-License-Identifier: GPL-2.0+
7 */
8 #ifndef __MX6ULL_ALEITENK_EMMC_CONFIG_H
9 #define __MX6ULL_ALEITENK_EMMC_CONFIG_H
10
11
12 #include < asm / arch / imx - regs . h >
13 #include < linux / sizes . h >
14 #include "mx6_common.h"
15 #include < asm / imx - common / gpio . h >
16
......
28
29 #define is_mx6ull_9x9_evk () CONFIG_IS_ENABLED ( TARGET_MX6ULL_9X9_EVK )
30
31 #ifdef CONFIG_TARGET_MX6ULL_9X9_EVK
32 #define PHYS_SDRAM_SIZE SZ_256M
33 #define CONFIG_BOOTARGS_CMA_SIZE "cma=96M "
34 # else
35 #define PHYS_SDRAM_SIZE SZ_512M
36 #define CONFIG_BOOTARGS_CMA_SIZE ""
37 /* DCDC used on 14x14 EVK, no PMIC */
38 #undef CONFIG_LDO_BYPASS_CHECK
39 #endif
40
41 /* SPL options */
42 /* We default not support SPL
43 * #define CONFIG_SPL_LIBCOMMON_SUPPORT
44 * #define CONFIG_SPL_MMC_SUPPORT
45 * #include "imx6_spl.h"
46 */
47
48 #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
49
50 #define CONFIG_DISPLAY_CPUINFO
51 #define CONFIG_DISPLAY_BOARDINFO
52
53 /* Size of malloc() pool */
54 #define CONFIG_SYS_MALLOC_LEN ( 16 * SZ_1M )
55
56 #define CONFIG_BOARD_EARLY_INIT_F
57 #define CONFIG_BOARD_LATE_INIT
58
59 #define CONFIG_MXC_UART
60 #define CONFIG_MXC_UART_BASE UART1_BASE
61
62 /* MMC Configs */
63 #ifdef CONFIG_FSL_USDHC
64 #define CONFIG_SYS_FSL_ESDHC_ADDR USDHC2_BASE_ADDR
65
66 /* NAND pin conflicts with usdhc2 */
67 #ifdef CONFIG_SYS_USE_NAND
68 #define CONFIG_SYS_FSL_USDHC_NUM 1
69 # else
70 #define CONFIG_SYS_FSL_USDHC_NUM 2
71 #endif
72 #endif
73
74 /* I2C configs */
75 #define CONFIG_CMD_I2C
76 #ifdef CONFIG_CMD_I2C
77 #define CONFIG_SYS_I2C
78 #define CONFIG_SYS_I2C_MXC
79 #define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */
80 #define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */
81 #define CONFIG_SYS_I2C_SPEED 100000
82
......
89
90 #define CONFIG_SYS_MMC_IMG_LOAD_PART 1
91
92 #ifdef CONFIG_SYS_BOOT_NAND
93 #define CONFIG_MFG_NAND_PARTITION "mtdparts=gpmi
nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs) "
94 # else
95 #define CONFIG_MFG_NAND_PARTITION ""
96 #endif
97
98 #define CONFIG_MFG_ENV_SETTINGS \
99 "mfgtool_args=setenv bootargs console=${console},${baudrate} " \
......
111 "bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr}
${fdt_addr};\0" \
112
113 # if defined ( CONFIG_SYS_BOOT_NAND )
114 #define CONFIG_EXTRA_ENV_SETTINGS \
115 CONFIG_MFG_ENV_SETTINGS \
116 "panel=TFT43AB\0" \
......
126 "bootz ${loadaddr} - ${fdt_addr}\0"
127
128 # else
129 #define CONFIG_EXTRA_ENV_SETTINGS \
130 CONFIG_MFG_ENV_SETTINGS \
131 "script=boot.scr\0" \
......
202 "fi;\0" \
203
204 #define CONFIG_BOOTCOMMAND \
205 "run findfdt;" \
......
216 "else run netboot; fi"
217 #endif
218
219 /* Miscellaneous configurable options */
220 #define CONFIG_CMD_MEMTEST
221 #define CONFIG_SYS_MEMTEST_START 0x80000000
222 #define CONFIG_SYS_MEMTEST_END ( CONFIG_SYS_MEMTEST_START +
0x8000000 )
223
224 #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
225 #define CONFIG_SYS_HZ 1000
226
227 #define CONFIG_STACKSIZE SZ_128K
228
229 /* Physical Memory Map */
230 #define CONFIG_NR_DRAM_BANKS 1
231 #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
232
233 #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
234 #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
235 #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
236
237 #define CONFIG_SYS_INIT_SP_OFFSET \
238 ( CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE )
239 #define CONFIG_SYS_INIT_SP_ADDR \
240 ( CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET )
241
242 /* FLASH and environment organization */
243 #define CONFIG_SYS_NO_FLASH
244
......
255
256 #define CONFIG_SYS_MMC_ENV_DEV 1 /* USDHC2 */
257 #define CONFIG_SYS_MMC_ENV_PART 0 /* user area */
258 #define CONFIG_MMCROOT "/dev/mmcblk1p2" /* USDHC2 */
259
260 #define CONFIG_CMD_BMODE
261
......
275
276 /* NAND stuff */
277 #ifdef CONFIG_SYS_USE_NAND
278 #define CONFIG_CMD_NAND
279 #define CONFIG_CMD_NAND_TRIMFFS
280
281 #define CONFIG_NAND_MXS
282 #define CONFIG_SYS_MAX_NAND_DEVICE 1
283 #define CONFIG_SYS_NAND_BASE
0x40000000
284 #define CONFIG_SYS_NAND_5_ADDR_CYCLE
285 #define CONFIG_SYS_NAND_ONFI_DETECTION
286
287 /* DMA stuff, needed for GPMI/MXS NAND support */
288 #define CONFIG_APBH_DMA
289 #define CONFIG_APBH_DMA_BURST
290 #define CONFIG_APBH_DMA_BURST8
291 #endif
292
293 #define CONFIG_ENV_SIZE
SZ_8K
294 # if defined ( CONFIG_ENV_IS_IN_MMC )
295 #define CONFIG_ENV_OFFSET
( 12 * SZ_64K )
296 #elif defined ( CONFIG_ENV_IS_IN_SPI_FLASH )
297 #define CONFIG_ENV_OFFSET
( 768 * 1024 )
298 #define CONFIG_ENV_SECT_SIZE ( 64 * 1024 )
299 #define CONFIG_ENV_SPI_BUS
CONFIG_SF_DEFAULT_BUS
300 #define CONFIG_ENV_SPI_CS
CONFIG_SF_DEFAULT_CS
301 #define CONFIG_ENV_SPI_MODE
CONFIG_SF_DEFAULT_MODE
302 #define CONFIG_ENV_SPI_MAX_HZ CONFIG_SF_DEFAULT_SPEED
303 #elif defined ( CONFIG_ENV_IS_IN_NAND )
304 #undef CONFIG_ENV_SIZE
305 #define CONFIG_ENV_OFFSET
( 60 << 20 )
306 #define CONFIG_ENV_SECT_SIZE ( 128 << 10 )
307 #define CONFIG_ENV_SIZE
CONFIG_ENV_SECT_SIZE
308 #endif
309
310
311 /* USB Configs */
312 #define CONFIG_CMD_USB
313 #ifdef CONFIG_CMD_USB
314 #define CONFIG_USB_EHCI
315 #define CONFIG_USB_EHCI_MX6
316 #define CONFIG_USB_STORAGE
317 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
318 #define CONFIG_USB_HOST_ETHER
319 #define CONFIG_USB_ETHER_ASIX
320 #define CONFIG_MXC_USB_PORTSC
( PORT_PTS_UTMI | PORT_PTS_PTW )
321 #define CONFIG_MXC_USB_FLAGS
0
322 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
323 #endif
324
325 #ifdef CONFIG_CMD_NET
326 #define CONFIG_CMD_PING
327 #define CONFIG_CMD_DHCP
328 #define CONFIG_CMD_MII
329 #define CONFIG_FEC_MXC
330 #define CONFIG_MII
331 #define CONFIG_FEC_ENET_DEV
1
332
333 # if ( CONFIG_FEC_ENET_DEV == 0 )
334 #define IMX_FEC_BASE
ENET_BASE_ADDR
335 #define CONFIG_FEC_MXC_PHYADDR 0x2
336 #define CONFIG_FEC_XCV_TYPE RMII
337 #elif ( CONFIG_FEC_ENET_DEV == 1 )
338 #define IMX_FEC_BASE
ENET2_BASE_ADDR
339 #define CONFIG_FEC_MXC_PHYADDR 0x1
340 #define CONFIG_FEC_XCV_TYPE
RMII
341 #endif
342 #define CONFIG_ETHPRIME
"FEC"
343
344 #define CONFIG_PHYLIB
345 #define CONFIG_PHY_MICREL
346 #endif
347
348 #define CONFIG_IMX_THERMAL
349
350 #ifndef CONFIG_SPL_BUILD
351 #define CONFIG_VIDEO
352 #ifdef CONFIG_VIDEO
353 #define CONFIG_CFB_CONSOLE
354 #define CONFIG_VIDEO_MXS
355 #define CONFIG_VIDEO_LOGO
356 #define CONFIG_VIDEO_SW_CURSOR
357 #define CONFIG_VGA_AS_SINGLE_DEVICE
358 #define CONFIG_SYS_CONSOLE_IS_IN_ENV
359 #define CONFIG_SPLASH_SCREEN
360 #define CONFIG_SPLASH_SCREEN_ALIGN
361 #define CONFIG_CMD_BMP
362 #define CONFIG_BMP_16BPP
363 #define CONFIG_VIDEO_BMP_RLE8
364 #define CONFIG_VIDEO_BMP_LOGO
365 #define CONFIG_IMX_VIDEO_SKIP
366 #endif
367 #endif
368
369 #define CONFIG_IOMUX_LPSR
370
......
375 #endif
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 的速度为多少。
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 中的话,环境变量偏移地址为 12*64KB 。如
果环境变量保存在 SPI FLASH 中的话,偏移地址为 768*1024 。如果环境变量保存在 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

3、添加开发板对应板级文件夹

3.1 NXP I.MX 系列芯片的所有板级文件夹都存放在 board/freescale 目录下

cd board/freescale/
cp mx6ullevk/ -r mx6ull_alientek_emmc
进 入 mx6ull_alientek_emmc 目 录 中 , 将 其 中 的 mx6ullevk.c 文 件 重 命 名 为
mx6ull_alientek_emmc.c ,如下:
cd mx6ull_alientek_emmc
mv mx6ullevk.c mx6ull_alientek_emmc.c

3.2修改mx6ull_alientek_emmc 目录下的 Makefile 文件

1 # ( C ) Copyright 2015 Freescale Semiconductor , Inc .
2 #
3 # SPDX - License - Identifier : GPL - 2.0 +
4 #
5
6 obj - y := mx6ull_alientek_emmc . o
7
8 extra - $ ( CONFIG_USE_PLUGIN ) := plugin . bin
9 $ ( obj )/ plugin . bin : $ ( obj )/ plugin . o
10
$ ( OBJCOPY ) - O binary -- gap - fill 0xff $ < $@
重点是第 6 行的 obj-y ,改为 mx6ull_alientek_emmc.o,这样才会编译 mx6ull_alientek_emmc.c这个文件

3.3修改mx6ull_alientek_emmc 目录下的 imximage.cfg 文件

imximage.cfg 中的下面一句:
PLUGIN board/freescale/mx6ullevk/plugin.bin 0x00907000
改为:
PLUGIN board/freescale/mx6ull_alientek_emmc /plugin.bin 0x00907000

3.4 修改 mx6ull_alientek_emmc 目录下的 Kconfig 文件

1 if TARGET_MX6ULL_ALIENTEK_EMMC
2
3 config SYS_BOARD
4 default "mx6ull_alientek_emmc"
5
6 config SYS_VENDOR
7 default "freescale"
8
9 config SYS_SOC
10 default "mx6"
11
12 config SYS_CONFIG_NAME
13 default "mx6ull_alientek_emmc"
14
15 endif

3.5 修改 mx6ull_alientek_emmc 目录下的 MAINTAINERS 文件

1 MX6ULL_ALIENTEK_EMMC BOARD
2 M : Peng Fan < peng . fan@nxp . com >
3 S : Maintained
4 F : board / freescale / mx6ull_alientek_emmc /
5 F : include / configs / mx6ull_alientek_emmc . h
3.6 修改 U-Boot 图形界面配置文件
修改文件 arch/arm/cpu/armv7/mx6/Kconfig
在207行加入如下内容:
1 config TARGET_MX6ULL_ALIENTEK_EMMC
bool "Support mx6ull_alientek_emmc"
select MX6ULL
select DM
select DM_THERMAL
在最后一行的 endif 的前一行添加如下内容:
1 source "board/freescale/mx6ull_alientek_emmc/Kconfig"

4、使用新的板子配置文件编译uboot

新建 mx6ull_alientek_emmc.sh 文件,输入如下内容:
1 # ! /bin/bash
2 make ARCH = arm CROSS_COMPILE = arm - linux - gnueabihf - distclean
3 make ARCH = arm CROSS_COMPILE = arm - linux - gnueabihf - ( 加空格 )
mx6ull_alientek_emmc_defconfig
4 make V = 1 ARCH = arm CROSS_COMPILE = arm - linux - gnueabihf - - j16
给脚本文件赋予权限并且运行:
chmod 777 mx6ull_alientek_emmc.sh
./mx6ull_alientek_emmc.sh
编译完成之后,执行如下指令,看新添加的mx6ull_alientek_emmc.h是否被编译进去:
grep -nR "mx6ull_alientek_emmc.h"
5、uboot LCD驱动修改适配
要考虑的点:
LCD 所使用的 GPIO ,查看 uboot LCD IO 配置是否正确。
LCD 背光引脚 GPIO 的配置。
LCD 配置参数是否正确。
打开文件 mx6ull_alientek_emmc.c ,查看修改LCD配置参数:
1 struct display_info_t const displays [] = {{
2     . bus = MX6UL_LCDIF1_BASE_ADDR ,
3     . addr = 0 ,
4     . pixfmt = 24 ,
5     . detect = NULL ,
6     . enable = do_enable_parallel_lcd ,
7     . mode = {
8     . name = "TFT7016" ,
9     . xres = 1024 ,
10   . yres = 600 ,
11   . pixclock = 19531 , //修改的适配TFT70167寸显示屏参数
12   . left_margin = 140 , //HBPD
13   . right_margin = 160 , //HFPD
14   . upper_margin = 20 , //VBPD
15   . lower_margin = 12 , //VFBD
16   . hsync_len = 20 , //HSPW
17   . vsync_len = 3 , //VSPW
18   . sync = 0 ,
19   . vmode = FB_VMODE_NONINTERLACED
20 } } };
打开 mx6ull_alientek_emmc.h ,找到所有如下语句:
panel=TFT43AB
将其改为:
panel=TFT7016
也就是设置 panel TFT7016 panel 的值要与示例代码 33.2.6.4 中的 .name 成员变量的值 一致。修改完成以后重新编译一遍 uboot 并烧写到 SD 中启动。
重新启动uboot,打印panel的值,有可能还是TFT43AB,
因为之前有将环境变量保存到 EMMC 中, uboot 启动以后会先从 EMMC 中读取环境
变量,如果 EMMC 中没有环境变量的话才会使用 mx6ull_alientek_emmc.h 中的默认环境变量.
setenv panel TFT7016
saveenv
uboot系统会打印enc write to emmc ... Ok
  • 18
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值