Compact Flash - lost interrupt

Ben Warren bwarren at qstreams.com
Thu Nov 30 09:35:44 EST 2006


Hello,

I'm bringing up the Compact Flash interface on a custom board and am
almost there, but not quite.  I've seen many messages in the past about
the 'lost interrupt' message, but I couldn't find anything corresponding
closely to my situation.  Can anyone shed some light?

Here's a snippet of Linux booting:

*******************************
## Booting image at 00200000 ...
   Image Name:   Linux-2.6.17
   Created:      2006-11-29  19:38:51 UTC
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    1103335 Bytes =  1.1 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
Using MPC834x SYS machine description

<snip>

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with
idebus=xx
hda: TOSHIBA THNCF512MDG, ATA DISK drive
ide0 at 0xd1064000-0xd1064007,0xd106600d on irq 20
hda: max request size: 128KiB
hda: 1000944 sectors (512 MB) w/2KiB Cache, CHS=993/16/63
 hda:<4>hda: lost interrupt
hda: lost interrupt
hda: lost interrupt
hda: lost interrupt
hda: lost interrupt
 hda1

<snip>

prism login:

*******************************

As you can see, the device is found and eventually the IDE driver
assigns it ID hda1, but something's amiss.

When I try to partition the drive I get the same thing:

~ # fdisk /dev/hda
hda: lost interrupt
hda: lost interrupt

Command (m for help): p

Disk /dev/hda: 512 MB, 512483328 bytes
16 heads, 63 sectors/track, 993 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *           1         992      499936+   6  FAT16


The Compact Flash is configured in 'True IDE' mode on the local bus of a
400MHz MPC8349 processor.  I've set the UPM timing according to the
Toshiba app note that's floating around, and the interrupt is tied to
IRQ4 (Interrupt #20).  The fact that the driver probe can read
information about the drive tells me that the memory bus is at least
marginally functional.  Interrupts are firing:

~ # cat /proc/interrupts
           CPU0
  9:        127   IPIC   Level     serial
 14:          0   IPIC   Level     i2c-mpc
 15:          0   IPIC   Level     i2c-mpc
 16:          0   IPIC   Level     mpc83xx_spi
 20:         12   IPIC   Edge      ide0
 21:        547   IPIC   Edge      eth2
BAD:          0

I'm using a driver supplied by Kumar Gala called 'cfide.c'.  I've tried
a couple of quite different CF cards, with the same result on both.

Here's a portion of the kernel .config file:

#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECD is not set
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_IDE_TASK_IOCTL is not set

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_CFIDE=y
# CONFIG_BLK_DEV_IDEDMA is not set
# CONFIG_IDEDMA_AUTO is not set
# CONFIG_BLK_DEV_HD is not set


thanks,
Ben




More information about the Linuxppc-embedded mailing list