skyeye模拟pxa255的lubbock,跑u-boot-1.1.6的问题,请指教
在用skyeye模拟pxa255的lubbock,跑u-boot-1.1.6的的时候,出现以下显示后在无任何显示,请各位帮忙看看# skyeye -e u-boot
big_endian is false.
arch: arm
cpu info: xscale, pxa25x, 69052100, fffffff0, 2
mach info: name pxa_lubbock, mach_init addr 0x806d8a0
uart_mod:1, desc_in:/dev/ttyS0, desc_out:/dev/ttyS0, converter:
SKYEYE: use xscale mmu ops
Loaded FLASH ./u-boot.bin
start addr is set to 0xa3080000 by exec file.
SKYEYE: xscale_cp15_mcr wrote UNKNOWN - reg 14, reg15 0xa3080698
SKYEYE: xscale_cp15_mcr wrote UNKNOWN - reg 14, reg15 0xa308069c
SKYEYE: xscale_cp15_mcr wrote UNKNOWN - reg 14, reg15 0xa30806a0
SKYEYE: cp14_mcr unknown cp14 regs!!!!!!
以下是我的skyeye.conf文件:
cpu: pxa25x
#--------------------------------------------------------------------------------
# below is the machine(development board) config info
# machine(develop board) maybe at91 or ep7312
mach: pxa_lubbock
#-------------------------------------------------------------------------------
#NOTICE: this parameter is useless for skyeye-V0.3.1+
# have 7 memory bank (include RAM, ROM, mapped IO space)
# below is the memory config info
#mem_num: 4
# map=M means ram/rom, map=I means mapped IO space, F means flash,
# type=RW means can be read or written,
# type=R means read only,
# addr=0x..... means the mem bank's beginning address,
# size=0x..... means the mem bank's memory size,
# file=... is the filesystem image file, used for uclinux4skyeye or armlinux4skyeye
mem_bank: map=F, type=RW, addr=0x00000000, size=0x02000000,file=./u-boot.bin, boot=yes
mem_bank: map=F, type=RW, addr=0x04000000, size=0x02000000
mem_bank: map=M, type=RW, addr=0xa0000000, size=0x04000000
mem_bank: map=M, type=RW, addr=0xa4000000, size=0x00000000
mem_bank: map=M, type=RW, addr=0xa8000000, size=0x00000000
mem_bank: map=M, type=RW, addr=0xac000000, size=0x00000000
#mem_bank: map=I, type=RW, addr=0x40000000, size=0x0c000000
#uart: fd_in=/dev/ttyS0, fd_out=/dev/ttyS0
#set nic info state=on/off mac=xx:xx:xx:xx:xx:xx ethmod=tuntap/vnet hostip=dd.dd.dd.dd
#net: state=on, mac=08:00:3e:26:0a:5b, ethmod=tuntap, hostip=192.168.0.21
最先开始调试时只能出现
root@jian u-boot-1.1.6]# skyeye -e u-boot
big_endian is false.
arch: arm
cpu info: xscale, pxa25x, 69052100, fffffff0, 2
mach info: name pxa_lubbock, mach_init addr 0x806d8a0
uart_mod:1, desc_in:/dev/ttyS0, desc_out:/dev/ttyS0, converter:
SKYEYE: use xscale mmu ops
Loaded FLASH ./u-boot.bin
start addr is set to 0xa3080000 by exec file.
改动方面:
后来用gdb单步跟踪u-boot,一步一步的追下去,发现在内存配置时有2个等待延迟(大概是对内存配置完后还要等待其稳定的意思),这两个延迟会造成死循环,所以把延迟时间设置为0,多出现以下信息:
SKYEYE: xscale_cp15_mcr wrote UNKNOWN - reg 14, reg15 0xa3080698
SKYEYE: xscale_cp15_mcr wrote UNKNOWN - reg 14, reg15 0xa308069c
SKYEYE: xscale_cp15_mcr wrote UNKNOWN - reg 14, reg15 0xa30806a0
SKYEYE: cp14_mcr unknown cp14 regs!!!!!!
接着继续跟踪,发现波特率设置方面在u-boot的lubbock.h下设置的波特率115200没起作用(不知道为什么),因此在函数里会跑到一个hang的死循环,我直接在此函数里将波特率写死为115200。后面还有一些微小的改动吧,不记得了
接着跟踪,发现跑到serial.c的printf函数时候函数经常跑飞,不知这个问题怎么解决,是不是什么地方配置有问题,请各位大虾解答!!非常感激!!! 再补充一下,u-boot里面已经跑到display_banner()函数里面去了,从跟踪来看,也到了打印u-boot版本信息的语句,但是u-boot的版本信息之类的字体就是打印不出来,是不是串口配置有问题?请问该怎么配置?谢谢!! 个人感觉是波特率没配置好,skyeye好像没有配置波特率的方法?问问大家怎么在conf里面配置串口波特率? 没人给点意见吗?我现在单步跟踪已经到打印uboot版本信息的这一步了,但在终端就是看不到打印信息,是不是要用minicom来看打印信息啊?大家给点建议也是好的 ksh@server:/opt/source/u-boot-1.2.0>
ksh@server:/opt/source/u-boot-1.2.0> make ARCH=arm lubbock_config
ksh@server:/opt/source/u-boot-1.2.0> make ARCH=arm
ksh@server:/opt/source/u-boot-1.2.0> cat skyeye.conf
cpu: pxa25x
mach: pxa_lubbock
mem_bank: map=I, type=RW, addr=0x40000000, size=0x0c000000
mem_bank: map=M, type=RW, addr=0xa0000000, size=0x00800000
mem_bank: map=M, type=RW, addr=0xa0800000, size=0x00800000
mem_bank: map=M, type=RW, addr=0xa1000000, size=0x00800000
mem_bank: map=M, type=RW, addr=0xa1800000, size=0x02800000
#lcd:state=on,type=pxa,mod=gtk
#dbct:state=on
ksh@server:/opt/source/u-boot-1.2.0> /home/ksh/cvs/skyeye/skyeye-v1/trunk/skyeye -e u-boot
Your elf file is little endian.
arch: arm
cpu info: xscale, pxa25x, 69052100, fffffff0, 2
mach info: name pxa_lubbock, mach_init addr 0x41e850
uart_mod:0, desc_in:, desc_out:, converter:
SKYEYE: use xscale mmu ops
exec file "u-boot"'s format is elf32-little.
load section .text: addr = 0xa3080000size = 0x000167bc.
load section .glue_7: addr = 0xa30967bcsize = 0x00000000.
load section .glue_7t: addr = 0xa30967bcsize = 0x00000000.
load section .rodata: addr = 0xa30967c0size = 0x000006f4.
load section .rodata.str1.8: addr = 0xa3096eb8size = 0x00004753.
load section .data: addr = 0xa309b610size = 0x00001ab8.
load section .u_boot_cmd: addr = 0xa309d0c8size = 0x00000468.
not load section .bss: addr = 0xa309d530size = 0x00035000 .
not load section .debug_line: addr = 0x00000000size = 0x000065d1 .
not load section .debug_info: addr = 0x00000000size = 0x00015fb7 .
not load section .debug_abbrev: addr = 0x00000000size = 0x000055d7 .
not load section .debug_aranges: addr = 0x00000000size = 0x000007a0 .
not load section .debug_frame: addr = 0x00000000size = 0x00002be4 .
not load section .debug_pubnames: addr = 0x00000000size = 0x00002086 .
not load section .debug_str: addr = 0x00000000size = 0x000044a0 .
not load section .comment: addr = 0x00000000size = 0x000003f0 .
not load section .debug_ranges: addr = 0x00000000size = 0x000008e8 .
call ARMul_InitSymTable,kernel filename is u-boot.
start addr is set to 0xa3080000 by exec file.
SKYEYE: xscale_cp15_mcr wrote UNKNOWN - reg 14, reg15 0xa3080698
SKYEYE: xscale_cp15_mcr wrote UNKNOWN - reg 14, reg15 0xa308069c
SKYEYE: xscale_cp15_mcr wrote UNKNOWN - reg 14, reg15 0xa30806a0
SKYEYE: cp14_mcr unknown cp14 regs!!!!!!
SKYEYE:Error in mem_read_word, no bank found, NumInstrs 388226, mem_read_word addr = 40000 no bank
U-Boot 1.2.0 (May 14 2008 - 15:43:11)
DRAM:64 MB
SKYEYE:Error in mem_read_word, no bank found, NumInstrs 392756, mem_read_word addr = 0 no bank
SKYEYE:Error in mem_read_word, no bank found, NumInstrs 392809, mem_read_word addr = 4000000 no bank
Flash:0 kB
*** Warning - bad CRC, using default environment
Hit any key to stop autoboot:3 你好,谢谢你的回复,从你给出的信息看,是不需要串口的,:)
那配置成功和memory有关吗,我看到很多的内存配置都有如下的信息,如:
mem_bank: map=I, type=RW, addr=0x40000000, size=0x0c000000
就是配置I/O的映射空间,这个是不是必须的?再次谢谢你的回复!! 我晕,我把你的skyeye.conf的内容全部拷贝到我的conf里面,居然直接就可以跑起来了哦。。。
我之前那个conf文件是参照u-boot.1.1.6里面的关于lubbock的设置参数改的。。。
虽然可以跑成功,但我还是有点糊涂,难道skyeye模拟的时候不用参照具体的硬件开发板的设置吗?如果是的,那么这样在硬件开发板没出来的情况下进行模拟,能保证将来也能在具体的开发板上运行吗?谢谢你的回复!!
页:
[1]