kernel里获取uboot的环境变量

来源:互联网 发布:淘宝联系卖家的软件 编辑:程序博客网 时间:2024/05/20 02:30

在uboot项目板级配置中添加环境变量到系统,重要,一定要在bootargs里添加,内核才能访问到

diff --git a/include/configs/gxtvbb_p301_v1.h b/include/configs/gxtvbb_p301_v1.hold mode 100644new mode 100755index 1996553..afd3ef4--- a/include/configs/gxtvbb_p301_v1.h+++ b/include/configs/gxtvbb_p301_v1.h@@ -71,6 +71,7 @@        "firstboot=1\0"\        "upgrade_step=0\0"\        "loadaddr=1080000\0"\+       "mode=WAKEUP_NONE\0" \        "panel_type=lvds_2\0" \        "outputmode=1080p60hz\0" \        "panel_reverse=0\0" \@@ -109,6 +110,7 @@                "androidboot.selinux=disabled "\                "logo=${display_layer},loaded,${fb_addr} "\                "vout=${outputmode},enable "\+               "switch_wakeup=${mode} " \                "panel_type=${panel_type} hdmitx= "\                "osd_reverse=${osd_reverse} video_reverse=${video_reverse} "\                "bl_off=${bl_off} "\
storeargs=setenv bootargs rootfstype=ramfs init=/init console=ttyS0,115200 no_console_suspend earlyprintk=aml-uart,0xc81004c0 androidboot.selinux=disabled logo=${display_layer},loaded,${fb_addr} vout=${outputmode},enable switch_wakeup=${mode} panel_type=${panel_type} hdmitx= osd_reverse=${osd_reverse} video_reverse=${video_reverse} bl_off=${bl_off} jtag=${jtag} ramoops.pstore_en=1 ramoops.record_size=0x8000 ramoops.console_size=0x4000 androidboot.firstboot=${firstboot}; setenv bootargs ${bootargs} androidboot.hardware=amlogic;run cmdline_keys; 

内核可使用如下接口访问uboot中的环境变量

static int __init switch_wakeup_function(char *s){        if(NULL != s)            {                    sprintf(switch_wakeup,"%s",s);            uboot_str = s;            }       // printk("%s %d:%s",__FUNCTION__,__LINE__,s);    printk("wakeup_function:%c %c\n",s[0],s[1]);        return 0;}__setup("switch_wakeup=", switch_wakeup_function);

函数switch_wakeup_function中的char *s的值即为从uboot传进来的环境变量的值

0 0