|
我想通过skyeye模拟s3c2410,然后通过u-boot引导vmlinux和initrd.img
首先,我已经独立地而且成功地干了下面两件事了:
第一件事:我已经成功地在skyeye模拟s3c2410的情况下将u-boot跑起来了,用到的skyeye.conf如下:
#skyeye config file sample
cpu: arm920t
mach: s3c2410x
#all peripherals I/O mapping area
mem_bank: map=I, type=RW, addr=0x48000000, size=0x20000000
#mem_bank: map=I, type=RW, addr=0x19000300, size=0x00000020
#physical memory
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00080000, file=./u-boot, boot=yes
mem_bank: map=M, type=RW, addr=0x30000000, size=0x04000000
load_addr:base=0x30000000, mask=0xFFFFFF
因为u-boot本身有flash和sdram的起始地址和大小的限制,所以必须保证下面这两句话:
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00080000(flash的)
mem_bank: map=M, type=RW, addr=0x30000000, size=0x04000000(SDRam的)
第二件事:我通过skyeye-testsuite-1.2.5 在没有u-boot的情况下将vmlinux和initrd.img跑起来了,用到的skyeye.conf:
# skyeye config file for S3C2410X
cpu: arm920t
mach: s3c2410x
# physical memory
mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00800000
mem_bank: map=M, type=RW, addr=0xc0800000, size=0x00800000, file=./initrd.img
mem_bank: map=M, type=RW, addr=0xc1000000, size=0x01000000
# all peripherals I/O mapping area
mem_bank: map=I, type=RW, addr=0x48000000, size=0x20000000
mem_bank: map=I, type=RW, addr=0x19000300, size=0x00000020
net: type=cs8900a, base=0x19000300, size=0x20,int=9, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
lcd: type=s3c2410x, mod=gtk
#dbct:state=on
根据我个人理解,从上面的skyeye.conf 可知,initrd.img 起始位置必须在0xc0800000,这可能是在做vmlinux这个内核的时候已经指定好了的。
现在我想做的就是将两者结合,想通过u-boot引导vmlinux和initrd.img,我尝试改写了skyeye.conf:
#skyeye config file sample
cpu: arm920t
mach: s3c2410x
#all peripherals I/O mapping area
mem_bank: map=I, type=RW, addr=0x48000000, size=0x20000000
#mem_bank: map=I, type=RW, addr=0x19000300, size=0x00000020
#physical memory
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00080000, file=./u-boot, boot=yes
mem_bank: map=M, type=RW, addr=0x30000000, size=0x04000000
mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00800000
mem_bank: map=M, type=RW, addr=0xc0800000, size=0x00800000, file=./initrd.img
load_addr:base=0x30000000, mask=0xFFFFFF
然后运行skyeye,成功运行u-boot后,然后go 0xc0800000,结果就出错了。
有哪位高手能帮我想想这个skyeye.conf到底该怎么写啊??? |
|