首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

初次上电起动检测硬盘失败,复位重启却正常

2013-12-28 
初次上电启动检测硬盘失败,复位重启却正常本帖最后由 jason__lu 于 2013-03-25 10:35:40 编辑采用SEED DM6

初次上电启动检测硬盘失败,复位重启却正常
本帖最后由 jason__lu 于 2013-03-25 10:35:40 编辑 采用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 2
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]这个地址中,而按下板子上的复位键,我跟踪的时候发现可以正确写入!

目前一头雾水,不知道该如何处理了,请各位帮忙看看~先谢过了!  

帮忙顶贴。。。

我只知道我上次居然连硬盘线都连错了。。。初次上电起动检测硬盘失败,复位重启却正常
我只知道我们那个板子的硬盘刚开始也总是反应不过来。。。慢慢就好了。。。
大牛研究的好透彻喔初次上电起动检测硬盘失败,复位重启却正常

热点排行