No Eide interface found

Hi

Background: Ours is an embedded system, .boot, OS and all application sw lies in a CF which is connected thro a IDE interface. In .boot we ll start the IDE driver, mount the QNX partition, common servers like pipe, mqueue, serial driver’s etc are run. (we are using QNX 6.2.0)

Problem: some 1 out of 100 times our system is hanging in the startup screen, it says
“No eide interface found”,
“mount: can’t mount / (type qnx4))”
“mount: possible reason: no such device or address”

Have any one of you had come across such problems?
Is there any root cause or solution??

Thanks in Advance
J

J,

Are you using diskboot in your .boot image (ie your build file)?

If you are I’d recommend getting rid of it and just starting the devb-eide driver manually. Diskboot can suffer from some timing problems that cause it to not detect CF cards.

Tim

Thanks Tim for the reply,

Actually we are not using Diskboot command in our Build file(.boot file)
Below is our build file


[+compress]
[virtual=x86,bios] .bootstrap = {
startup-bios -Nmachine-name
PATH=/proc/boot:/bin:/sbin:/usr/sbin:/usr/bin:/usr/photon/bin:/ LD_LIBRARY_PATH=/proc/boot:/dev/shmem:/lib:/lib/dll:/usr/lib:/usr/photon/lib:/usr/photon/dll procnto -v
}
[+script] .script = {

Start up some consoles

devc-con -n4 &
reopen /dev/con1

Start the pci server

seedres	
pci-bios &
waitfor /dev/pci

start IDE driver

    devb-eide eide nobmstr eide slave blk auto=partition &
waitfor /dev/hd0t77 60


mount /dev/hd0t77 /
mount /dev/hd0t78 /App
mount /dev/hd0t79 /Logs

#Then other sservies and drivers are started…


The System is getting hanged from “start IDE driver” onwards…

Any inputs???

Thanks in Advance
JK

JK,

We also use a CF card on a PC104 board. I’ve never had any issues. My build file looks like:

[virtual=x86,bios +compress] boot = {
    # Reserve 64k of video memory to handle multiple video cards 
    startup-bios -s64k

    # PATH is the *safe* path for executables (confstr(_CS_PATH...))
    # LD_LIBRARY_PATH is the *safe* path for libraries (confstr(_CS_LIBPATH))
	#    i.e. This is the path searched for libs in setuid/setgid executables.
    PATH=/proc/boot:/bin:/sbin:/usr/bin:/usr/sbin LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/opt/lib procnto
}

[+script] startup-script = {
    # To save memory make everyone use the libc in the boot image!
    # For speed (less symbolic lookups) we point to libc.so.2 instead of
    # libc.so
    procmgr_symlink ../../proc/boot/libc.so.2 /usr/lib/ldqnx.so.2

    # Default user programs to priorty 10, other scheduler (pri=10o)
    display_msg "amproBoard Build Ver 1.0"

    [pri=10o] PATH=/proc/boot pci-bios &
    devc-con -n4 &
       
    # Disk Driver
    devb-eide blk cache=2m,automount=hd0t79:/ & 

      # Wait until the disk manifests itself
    display_msg "waiting for drive to mount"
    waitfor /x86  10

    # Some common servers and drivers (serial) 	
    display_msg "starting some drivers"
    pipe &
    mqueue &
    devc-pty -n32 &
    devc-ser8250 -u1 3f8,4 2f8,3 -u3 3e8,11 -u4 2e8,10 &

    # Do all the system init from /etc/rc.d/rc.sysinit
    display_msg "run the sysinit file"
    sh /etc/rc.d/rc.sysinit

    # Start the console sessions for logging in	
    reopen /dev/con1
    [+session] login &
		
    reopen /dev/con2
    [+session] login &

    reopen /dev/con3
    [+session] login &

    reopen /dev/con4
    [+session] login &
}

The only real differences in how we start are:

  1. You specify nobmstr (not sure why you do that since CF supports it or mine do)
  2. I automount my only partition and you enumate your 3 partitions.
  3. You have the slave option turned on (do you have slave devices?).

My comments would be:

  1. We use SanDisk Ultra 2’s for our CF card (2 gigs in size). What kinds are you using? Maybe the problem is the cards themselves not responding or not responding in a timely manner to devb-eide.

  2. I’d check the BIOS on your board to see if there is anything you can do/change for IDE devices in terms of timing.

  3. Not sure why you have the eide option twice on the devb-eide line.

  4. I’d get rid of the slave option unless you have a slave device like CD-Rom that you need. You might in fact issue a noslave instead because that speeds up devb-eide because it then ignores looking for slave devices.

  5. Maybe the issue is with the auto=partition option. Maybe try automounting your / partition and then doing the others in rc.local

Tim