|
俺下了那个 kernel_paramter 的 patch, 看 code 还是挺美好的。不过到现在没用成。
俺滴 conf 长这样:
#skyeye config file sample
cpu: arm7tdmi
mach: at91
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000
mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=./romfs.img
mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000
mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000
mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000
mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000
#set nic info
net: type=cs8900a, base=0xfffa0000, size=0x20,int=17, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
kernel_parameters: default_cmdline="root=/dev/rom0 ether=17,0xfffa0000,eth0", addr=0x00000100
#end
显然我在 atmel 的 arch.c 里加了一行:
BOOT_PARAMS(0x00000100)
跟了 skyeye 的 code, 挺美好滴。 ATAG_CMDLINE 设了,r2 也设了。
可 gdb 跟 linux 一看就全不是这么回事了。r2 显然没用,start_kernel 前就给干掉了;好在 BOOT_PARAMS(0x00000100) 在 setup_arch 里找到了 tag,可跟到 parse_tag 里一看全是 ATAG_CORE, 就没有看到 ATAG_CMDLINE, 而且 ATAG_CORE 显然也还有问题,在 setup_arch 的 paging_init 就 hang 了。
麻烦写这个 patch 的兄弟出来吱一声,俺就不乱改了。 |
|