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这个变量了
公司有多种类型的产品,处理器相同,外围 电路不同(例如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这个变量了
相关文章推荐
- Linux下MySQL的备份与还原
- how to install mqtt in linux (Linux环境下安装mosquitto)
- linux 输入子系统(2) platform device
- linux设置时区和自动同步时间
- Xenlism WildFire: Linux 桌面的极简风格图标主题
- Xenlism WildFire: Linux 桌面的极简风格图标主题
- Linux 小知识
- golang开发环境mac下编译linux环境文件
- linux下c程序进程地址空间分布
- 记录使用vmware workstation11安装CentOS-6.6-x86_64-minimal.iso过程中遇到的问题及解决办法
- linux openssh源码安装
- centos 7 安装注意事项
- 使用yum快速升级CentOS 6.5内核到 3.10.28
- centos6.6 安装pip
- windows下通过rsync备份AD域控文件到linux服务器
- linux杂记
- Linux Performance Tools
- linux下登录mysql
- linux的权限管理以及特殊权限SUID,SGID,Sticky
- Linux进程间通信(一) - 管道