采用SEED DM6467的评估板
如题,板子上电初次启动总会出现如下错误:
sii9134 reg initialized.
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
Palm Chip BK3710 IDE Register Fail
Initializing USB Mass Storage driver…
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
mice: PS/2 mouse device common for all mice
Registering Audio Devices. Total communication peripherals (ASP) : 2
Codec with ID = 0 on ASP = 0 is initialized.Using minor number : 3
Configuring the McASP as Master
Configuring the McASP 1 for DIT
SPDIF on ASP = 1 isinitialized.Using minor number : 19
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 8192 bind 16384)
NET: Registered protocol family 1
NET: Registered protocol family 17
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
device=eth0, addr=192.168.0.201, mask=255.255.255.0, gw=192.168.0.1,
host=192.168.0.201, domain=, nis-domain=(none),
bootserver=255.255.255.0, rootserver=255.255.255.0, rootpath=
Looking up port of RPC 100003/2 on 255.255.255.0
RPC: sendmsg returned error 22
portmap: RPC call returned error 22
Root-NFS: Unable to get nfsd port number from server, using default
Looking up port of RPC 100005/1 on 255.255.255.0
RPC: sendmsg returned error 22
portmap: RPC call returned error 22
Root-NFS: Unable to get mountd port number from server, using default
RPC: sendmsg returned error 22
mount: RPC call returned error 22
Root-NFS: Server returned error -22 while mounting /tftpboot/192.168.0.201
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "hdb1" or unknown-block(2,0)
Please append a correct "root=" boot option
Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
但是按下复位键重启的时候却可以正常启动,顺利挂载进入文件系统!如下:
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
ide0: BM-DMA at 0xe1066000-0xe1066007, BIOS settings: hda:pio, hdb:pio
IRQ LOCK: IRQ22 is locking the system, disabled
Initializing USB Mass Storage driver…
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
mice: PS/2 mouse device common for all mice
Registering Audio Devices. Total communication peripherals (ASP) : 2
Codec with ID = 0 on ASP = 0 is initialized.Using minor number : 3
Configuring the McASP as Master
Configuring the McASP 1 for DIT
SPDIF on ASP = 1 isinitialized.Using minor number : 19
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 8192 bind 16384)
NET: Registered protocol family 1
NET: Registered protocol family 17
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
device=eth0, addr=192.168.0.201, mask=255.255.255.0, gw=192.168.0.1,
host=192.168.0.201, domain=, nis-domain=(none),
bootserver=255.255.255.0, rootserver=255.255.255.0, rootpath=
kjournald starting. Commit interval 5 seconds
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on hdb1, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem).
Freeing init memory: 164K
INIT: version 2.85 booting
Mounting a tmpfs over /dev…done.
Creating initial device nodes…done.
Activating swap…done.
Remounting root filesystem…done.
Calculating module dependencies
WARNING: Couldn't open directory /lib/modules/2.6.10_mvl401-davinci_evm-PSP_01_30_00_070: No such file or directory
FATAL: Could not open /lib/modules/2.6.10_mvl401-davinci_evm-PSP_01_30_00_070/modules.dep.temp for writing: No such file or directory
Loading modules:
Checking all file systems: fsck
fsck 1.35 (28-Feb-2004)
Mounting local filesystems: mount nothing was mounted
Cleaning: /tmp /var/lock /var/run done.
Setting up networking (ifupdown) ..
Cleaning: /etc/network/run/ifstate done.
Starting network interfaces: done.
Starting hotplug subsystem:
pci
pci [success]
usb
usb [success]
isapnp
isapnp [success]
ide
ide [success]
input
input [success]
scsi
scsi [success]
done.
Starting portmap daemon: portmap.
done.
Setting pseudo-terminal access permissions…done.
Updating /etc/motd…done.
INIT: Entering runlevel: 3
Starting NFS common utilities: statd lockd.
Starting internet superserver: inetd.
Starting MontaVista target tools daemon: mvltdmvltd version 2.1 MontaVista Software,Inc.
mvltd[1029]: started on port 34577
.
MontaVista(R) Linux(R) Professional Edition 4.0.1 (0600980)
192.168.0.201 login:
问题很是奇怪,本人觉得首先是硬盘没有检测到的,但至于为什么初次上电就会检测硬盘失败,则毫无头绪,研究了好半天,追查到drivers/ide/ide-probe.c文件中的do_probe函数中有句话:
SELECT_DRIVE(drive);
其实质就是执行了:HWIF(drive)->OUTB(drive->select.all, IDE_SELECT_REG);这句话
即是将drive->select.all写到了IDE_SELECT_REG定义的端口上,但是我发现初次上电启动的时候,这句话并没有将drive->select.all的值写进去,我打印出来的IDE_SELECT_REG指定的地址处的值没有被改变,很奇怪!
我甚至将这句话展开手写了一遍:hwif->OUTB(drive->select.all, hwif->io_ports[IDE_SELECT_OFFSET]);发现系统初次上电启动仍然不能将drive->select.all写入到hwif->io_ports[IDE_SELECT_OFFSET]这个地址中,而按下板子上的复位键,我跟踪的时候发现可以正确写入!
目前一头雾水,不知道该如何处理了,请各位帮忙看看~先谢过了!
Louis:
你的复位是热复位还是冷复位?可以检查一下上电时序。
jason lu:
回复 Louis:
Louis
你的复位是热复位还是冷复位?可以检查一下上电时序。
Louis:
回复 jason lu:
查一下芯片的DATASHEET,一般说来,在datasheet里面都有专门一章介绍电源部分的,会有Power sequence的要求,用示波器抓一下波形,看是否与datasheet的要求一致。
jason lu:
回复 Louis:
不是Power sequence的问题吧,如果是这样那应该连uboot都起不来吧.
板子上有两个硬盘接口,我把硬盘线连接到另一个接口上就好了,呵呵
还没有看 不知道这是不是所谓的主从接口的问题,有空可以看看
SLAVE为从接口,一般为灰色,用于接在该接口上的第二个IDE设备,如光驱。MASTER为主接口,一般为黑色,用来连接该IDE接口上的主要设备,如硬盘。 因此对于计算机内部的任一条80芯数据线,正确的接法是: 1、只有一个硬盘时请将MASTER接在硬盘上。 2、只有一个光驱时请将MASTER接在光驱上。 3、如果有一个光驱和一个硬盘,请将SLAVE接在光驱上,MASTER接在硬盘上