u-boot如何传入一个自定义参数给内核?然后内核又是怎样解析?

u-boot怎么传入一个自定义参数给内核??然后内核又是怎样解析??
各位好,想请假下大家,我想在u-boot启动的时候自定义一个参数,然后传给内核,内核解析后,根据参数传入的不同而初始化不同的硬件。这个该怎么设计?求指教

------解决方案--------------------
我向你介绍一种办法, 你作为参考。

uboot里面有一个命令叫linux_args,是一个字符串描述,uboot启动linux时将linux_args作为参数传给linux, linux把这个启动参数叫cmdline, 在linux启动过程中,相应的模块会捕获这个cmdline里的内容,一旦发现有自身模块的相关描述, 那么就会按照这些描述来实现初始化。

我的uboot里的linux_args里有有描述了flash相关有关的内容:
Dream 5220 # printenv 
linux_args=mtdparts=octeon_nor0:1m(BOOT),7m(LINUX),21m(CONFIG),3m(MD)

linux启动后, /mtd/cmdlinepart.c 会捕获到"mtdparts="部分的内容, 之后按照这些描述来初始化flash分区。

在linux启动阶段,start_kernel 也会把这个cmdline 打印出来:
Kernel command line:  bootoctlinux 0x1dd00000 coremask=0x1 mtdparts=octeon_nor0:1m(BOOT),7m(LINUX),21m(CONFIG),3m(MD)  console=t0

你在shell界面下可以查看到这个cmdline的内容:
root@(none):~# cat /proc/cmdline 
 bootoctlinux mtdparts=octeon_nor0:1m(BOOT),7m(LINUX),24m(CONFIG) console=ttyS0,115200

你只需要做三件事:
第一, 在uboot界面下使用linux_args命令添加你的描述. 
第二, __setup() 函数就是linux的模块里用来捕获cmdline里有关自身描述的。你查一下这个资料。
第三, 实现你的module.

另外, 你也可以将你的描述信息在uboot里面用现成的命令写到eeprom等设备里面,之后你在linux添加一个module去eeprom里面查找相关的信息,同样可以实现根据不同的参数来init 不同的hw。这个办法也是可行的。

接贴。
u-boot如何传入一个自定义参数给内核?然后内核又是怎样解析?