久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > 迅為IMX6Q開發板非設備樹uboot-修改默認環境變量

迅為IMX6Q開發板非設備樹uboot-修改默認環境變量

發布人:daybydayi 時間:2021-01-07 來源:工程師 發布文章

iTOP-iMX6 開發板燒寫好之后,默認是 android 系統 9.7 寸屏幕的系統參數和屏幕參數。如下圖。本文檔主要介紹如何修改默認啟動參數.

70.1  重要的環境變量
比較重要的環境變量或者說經常使用的環境變量,已經在上圖中的紅色方框中。主要是:bootsystem、lcdtype 和 bootargs。這些參數都可以在 uboot 源碼中進行設置。具體文件為:“iTOP-iMX6_android4.4.2/bootable/bootloader/uboot-imx/lib_arm/board.c”文件。
70.2  默認啟動系統設置
默認啟動系統參數是:bootsystem。打開“board.c”文件。搜索關鍵詞“bootsystem”,找到如下代碼:

通過修改“p = "android";”語句,可以修改默認的啟動系統參數。下面的程序中,可以看見用到了“boot_system_flags”標志位。搜索該標志位,可以找到如下內容。

70.3  默認屏幕設置
默認屏幕參數是:lcdtype。打開“board.c”文件。搜索關鍵詞“lcdtype”。找到如下代碼。

通過修改“p = "9.7";”語句,可以修改默認屏幕設置。在上面截圖的程序中可以看到,通過”sprintf();”函數設置了相應屏幕的“displayArgs”值。
70.4 認 默認 bootargs  參數設置
打開“board.c”文件。搜索關鍵詞“bootargs”。找到如下代碼。

可以在此處修改“bootargs”參數設置。
上面介紹到的詳細代碼如下:

{

p = getenv("bootsystem");

if (NULL == p) {

printf("*** Warning use default bootsystem:android ***\n");

p = "android";

setenv("bootsystem", (char *)p);

saveenv();

}

printf("Boot system :%s\n", p);

if(!strcmp(p, "android"))

{

boot_system_flags = 0;

}

else if(!strcmp(p, "qt"))

{

boot_system_flags = 1;

}

else if(!strcmp(p, "ubuntu"))

{

boot_system_flags = 2;

}

p = getenv("lcdtype");

if (NULL == p) {

printf("*** Warning use default lcdtype:9.7 ***\n");

p = "9.7";

setenv("lcdtype", (char *)p);

saveenv();

}

printf("LCD type:%s\n", p);

if(!strcmp(p, "9.7"))

{

lcd_type = 0;

//sprintf(displayArgs, "video=mxcfb0:dev=ldb,LDB-XGA,bpp=32 video=mxcfb1:off

video=mxcfb2:off fbmem=30M");

sprintf(displayArgs, "video=mxcfb0:dev=ldb,LDB-XGA,if=RGB666,bpp=32 ldb=sin1

video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb2:off fbmem=48M");

}

else if(!strcmp(p, "7.0"))

{

lcd_type = 1;

//sprintf(displayArgs, "video=mxcfb0:dev=ldb,LDB-7inch,bpp=32 video=mxcfb1:off

video=mxcfb2:off fbmem=30M");

sprintf(displayArgs, "video=mxcfb0:dev=ldb,LDB-7inch,if=RGB666,bpp=32 ldb=sin1

video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb2:off fbmem=48M");

}

else if(!strcmp(p, "4.3"))

{

lcd_type = 2;

//sprintf(displayArgs, "video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off

video=mxcfb2:off fbmem=10M");

sprintf(displayArgs, "video=mxcfb0:dev=lcd,VGA_480272,if=RGB24,bpp=32

video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb2:off fbmem=48M");

}

/* add by cym 20170814 */

else if(!strcmp(p, "1024x600"))

{

lcd_type = 3;

//sprintf(displayArgs, "video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off

video=mxcfb2:off fbmem=10M");

sprintf(displayArgs, "video=mxcfb0:dev=lcd,VGA_1024600,if=RGB24,bpp=32

video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb2:off fbmem=48M");

}

/* end add */

else if(!strcmp(p, "hdmi"))

{

sprintf(displayArgs, "video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32

video=mxcfb1:off video=mxcfb2:off fbmem=48M");

}

else

{

sprintf(displayArgs, "video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off

video=mxcfb2:off fbmem=10M");

}

if(0 == boot_system_flags)//Android

{

sprintf(bootargs, "console=ttymxc2,115200 init=/init %s vmalloc=400M

androidboot.console=ttymxc2 androidboot.hardware=freescale

androidboot.serialno=1a0d39d4e3013411", displayArgs);

//

setenv("bootargs", bootargs);

// sprintf(bootargs, "console=NULL init=/init %s vmalloc=400M androidboot.console=NULL

androidboot.hardware=freescale androidboot.serialno=1a0d39d4e3013411", displayArgs);

setenv("bootargs", bootargs);

p = getenv("bootcmd");

if((p == NULL) || (strstr(p, "booti mmc3"))

|| (strstr(p, "mmc dev 3; mmc read 0x10800000 0x800 0x3000; bootm")))

{

setenv("bootcmd", "booti mmc3");

}

}

else if(1 == boot_system_flags)//QT

{

sprintf(bootargs, "console=ttymxc0,115200 %s root=/dev/mmcblk0p1 rootwait",

displayArgs);

setenv("bootargs", bootargs);

p = getenv("bootcmd");

if((p == NULL) || (strstr(p, "booti mmc3"))

|| (strstr(p, "mmc dev 3; mmc read 0x10800000 0x800 0x3000;

bootm")))

{

setenv("bootcmd", "mmc dev 3; mmc read 0x10800000 0x800 0x3000; bootm");

}

}

else if(2 == boot_system_flags)//Ubuntu

{

sprintf(bootargs, "console=ttymxc0,115200 %s root=/dev/mmcblk0p1 rootwait

bootsystem=%s", displayArgs, getenv("bootsystem"));

setenv("bootargs", bootargs);

p = getenv("bootcmd");

if((p == NULL) || (strstr(p, "booti mmc3"))

|| (strstr(p, "mmc dev 3; mmc read 0x10800000 0x800 0x3000;

bootm")))

{

setenv("bootcmd", "mmc dev 3; mmc read 0x10800000 0x800 0x3000; bootm");

}

}

}




*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞:

相關推薦

技術專區

關閉