您的位置:首页 > 运维架构 > Linux

linux内核接收来自u-boot的自定义参数

2015-10-09 14:51 483 查看
需求:

公司有多种类型的产品,处理器相同,外围 电路不同(例如AD/DA, PWM,开关量采集,继电器输出等),以前不同的设备单独编译一个内核,一个设备对应一套内核代码,这样极不利于代码维护,现在的方案是在内核初始化阶段从u-boot命令行中获取一个自定义参数,然后根据这个参数来初始化不同的硬件。

实现方法:

u-boot 命令行参数:

bootargs=console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=9,2048 rootfstype=ubifs rootwait=1device_type=1;

device_type=1就是内核需要接收并解析的自定义参数

在内核中:

自定义头文件:

1 #ifndef __KLHA_DEVICE_INCLUDE

2 #define __KLHA_DEVICE_INCLUDE

3 unsigned int device_type;

4 #endif

在文件arch/arm/mach-omap2/board-am335xevm.c

加入:

93 /*从U-BOOT中获取设备类型 */

94 static int __init device_type_setup(char *str)

95 {

96 device_type = simple_strtol(str, NULL, 0);

97 pr_info("KLHA ================> device_type = %d\n", device_type);

98 return 1;

99 }

100 __setup("device_type=", device_type_setup);

以后内核的其他部份就可以全用device_type这个变量了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: