本文档主要介绍如何设备树uboot修改默认启动参数。iTOP-iMX6 开发板烧写好之后,默认是 android 系统 9.7 寸屏幕的系统参数和屏幕参数,如下图所示。输入以下命令查看默认启动参数 printenv 1 重要的环境变量 比较重要的环境变量或者说经常使用的环境变量,已经在上图中的红色方框中。 主要是:bootsystem、lcdtype 和 bootargs。这些参数都可以在 uboot 源码中进行设置。具体文件为:“iTOP-iMX6_android6.0.1/bootable/bootloader/uboot-imx/common/board_r.c”文件。 2 默认启动系统设置 默认启动系统参数是:bootsystem。打开“board.c”文件。搜索关键词“bootsystem”,找到如下代码: 通过修改“p = CONFIG_BOOT_SYSTEM;”语句,可以修改默认的启动系统参数,例如p = "android"; ,p ="qt";,p = "ubuntu"; 。 3 默认屏幕设置 默认屏幕参数是:lcdtype。打开“board.c”文件,搜索关键词“lcdtype”。找到如下代码。 通过修改“p = "CONFIG_DISPLAY_LCD_TYPE";”语句,可以修改默认屏幕设置。在上面截图的程序中可以看到设置的是CONFIG_DISPLAY_LCD_TYPE为9.7寸屏幕,如果要设置其他屏幕,将CONFIG_DISPLAY_LCD_TYPE改为如下图红框中的数字即可。通过“sprintf();”函数设置了相应屏幕的“displayArgs”值。 4 默认 bootargs 参数设置 打开“board.c”文件。搜索关键词“bootargs”。找到如下代码。 可以在此处修改“bootargs”参数设置。 上面介绍到的详细代码如下: if(!strcmp(p, "android")) { sprintf(bootargs, "console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init %s androidboot.hardware=freescale cma=384M", displayArgs); //setenv("bootcmd", "fatload mmc 2:1 0x12000000 boot.img;boota 0x12000000"); if(0 == lcd_flags)//9.7 inch { setenv("bootcmd", "fatload mmc 2:1 0x12000000 boot-topeet_9.7.img;boota 0x12000000"); } else if(1 == lcd_flags)//7 inch { setenv("bootcmd", "fatload mmc 2:1 0x12000000 boot-topeet_7.img;boota 0x12000000"); } else if(2 == lcd_flags)//10.1 inch { setenv("bootcmd", "fatload mmc 2:1 0x12000000 boot-topeet_10.1.img;boota 0x12000000"); } else { setenv("bootcmd", "fatload mmc 2:1 0x12000000 boot-topeet_9.7.img;boota 0x12000000"); } } else if((!strcmp(p, "qt")) || (!strcmp(p, "ubuntu"))) { sprintf(bootargs, "console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M %s root=/dev/mmcblk3p2 rootwait rw", displayArgs); if(0 == lcd_flags)//9.7 inch { setenv("bootcmd", "fatload mmc 2:1 0x12000000 topeet_9.7inch.dtb;fatload mmc 2:1 0x13000000 zImage;bootz 0x13000000 - 0x12000000"); } else if(1 == lcd_flags)//7 inch { setenv("bootcmd", "fatload mmc 2:1 0x12000000 topeet_7inch.dtb;fatload mmc 2:1 0x13000000 zImage;bootz 0x13000000 - 0x12000000"); } else if(2 == lcd_flags)//10.1 inch { setenv("bootcmd", "fatload mmc 2:1 0x12000000 topeet_10.1inch.dtb;fatload mmc 2:1 0x13000000 zImage;bootz 0x13000000 - 0x12000000"); } else { setenv("bootcmd", "fatload mmc 2:1 0x12000000 topeet_9.7inch.dtb;fatload mmc 2:1 0x13000000 zImage;bootz 0x13000000 - 0x12000000"); } }
|