All,
I am running a SanDisk Compact Flash disk under linux 2.4.21. The
compact flash SDCFB-256-101-80 works 100%. The problem is this model has
been discontinued and replaced with an SDCFB-256-201-80. This has a new
internal controller it would seem. During kernel boot it will attempt to
detect the partitions on the drive, and hang at this point. The new
controller seems to support DMA, while the old one didn't. If I disable
DMA (ide=nodma), then the kernel will not hang, and will boot up
correctly. However, the drives are unusable. You cannot read/write from
them. Even an fdisk fails, it displays the partition table but when you
press 'q' to quit it hangs, and then begins sending kernel debug "hdc
lost interrupt".
I also get the following boot messages, which were not present on the
old model:
hdc: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: task_no_data_intr: error=0x04 { DriveStatusError }
I am running a stock standard 2.4.21.
Any ideas?
Regards
Garth Marran
Michael,
The original SanDisk I checked passed 100%, it has been running in the
field now for about 6 months without any hassles. It is just this new
model that they have released.
The major problem is I have a release in about 2 weeks, which means I do
not have time to do testing on a new product, and we cannot get any of
the older versions.
hdc=flash is used to make the kernel scan for a slave when it detects a
flash disk. We are already using this option because we have two
SanDisks on the same bus, master and slave.
I thought IDE was a standard that a single driver would work with all
devices? I cannot understand how a new controller (if it really does
conform to the standards), cannot work.
It is working a little, because it responds to all the ATA interface
commands and returns readable information if you for example query the
status. Also, the kernel does detect the SANDISK CFB info string
correctly on boot.
Regards
Garth
-----Original Message-----
From: Michael C. B. Ashley [mailto:[email protected]]
Sent: Monday, November 24, 2003 11:50 AM
To: gmlinux
Subject: re: New model of SanDisk compact flash not working
Hi Garth,
I have had lots of trouble with SanDisk CF disks. So much so that I have
given up on them and am using an alternative IDE solid state drive
(M-Systems IDE Plus - seems to work, I'm getting 8MB/sec from hdparm
-tT).
Have you tried "hdc=flash"?
If you search for "flash" in the IDE code you will find cryptic comments
about flash drives not properly implementing standards.
Good luck!
Michael
On Mon, 2003-11-24 at 09:32, gmlinux wrote:
> I also get the following boot messages, which were not present on the
> old model:
> hdc: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
> hdc: task_no_data_intr: error=0x04 { DriveStatusError }
try building a kernel with CONFIG_IDEDISK_MULTI_MODE
and use 'hda=noprobe' on the kernel command line.
/ karl
I seem to have sorted out the problem.
It was definately a dma problem causing the hang, confirmed by Peter
Missel, thanks Peter. See the quote below:
"DMA not being part of the CF standard yet, SanDisk and IBM are a bit
ahead
of the game. The problem you're running into is that the vast majority
of
CF-IDE adapters do not connect the DMA request and grant signals. Hence,
the
system BIOS and OS drivers see a DMA capable drive on a DMA capable IDE
channel, and set things up to use DMA. Instant hang - you know that
already."
It seems the adaptor is missing a few hardware lines, confirmed on my
side.
I can get the drive up with an "ide=nodma".
The drive is still unusable, unable to read or write from it. However,
if I "dd" an image from the previous version of drive, in otherwords
creating the partition and filesystem etc, the drive seems to work okay.
Maybe the default filesystem that comes on the drive was causing some
issues.
Other than that I think we will just have to wait for the hardware
adaptor to catch up with the flash technology.
Garth