要求: 根据不同的cmdline设置值,选择不同的液晶尺寸参数配置驱动。
步骤:
1. 首先设置cmdline。
在uboot里,设置命令如下:
setenv bootargs 'console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:dev=lcd,bpp=32 video=mxcfb2:off video=mxcfb3:off vmalloc=256M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M screen_type=1'
saveenv // 保存参数
其中,里边的 screen_type 是自己定义的参数。
2. 在kernel的驱动代码里,添加如下:
static int __init screen_set(char *str)
{
printk("zsm %s: str[0] = %s\n", __func__, str);
return 1;
}
__setup("screen_type=", screen_set);
说明:
虽然也可以使用cat /proc/cmdline 的方式读取字符串,然后解析字符串的方式传递参数;但显然这种方式必须保证系统的文件系统启动后才行;这样就不能保证在显示的时候可以正常执行。