Flash memory failure

G

Guest

Guest
Archived from groups: comp.sys.ibm.pc.hardware.storage (More info?)

Hi,

I have 3 flash memory chips xD Picture Cards I am trying to recover
data from. They apparently all failed in the same camera when they
became 100% full of photos.

I have tried to read them in three readers, that all work with a good
chip.

They fail with a error message of 'Device not ready' (error status code
2). 'Test Unit Ready' also says that the chip is not ready.

My questions are

1) Do the chips have any embedded firmware? If so, how can it be
updated, or rewritten.

2) Is it possible to access the chips through the USB port directly. I
can open the USB hub, but do not seem able to get through USBSTOR to
get to the chip directly.

3) Are there any hardware devices that may help?


Any guidance, or data sheet references would be appreciated.

I am programming on Windows XP, with C++ MFC (V7). I am happy to
attempt programming down to a very low level.

Thanks


Michael Cotgrove
www.cnwrecovery.co.uk
 
G

Guest

Guest
Archived from groups: comp.sys.ibm.pc.hardware.storage (More info?)

xD Picture Memory is totally encapsulated, and about 2-3mm thick.

Thanks for informing me that there is no firmware.

Somehow, the USB reader thinks that the chip is 'Nnot ready'. I would
be happy to suspect that there is a hardware failure except my customer
stated that each chip worked until totally full, and then fell over. I
have a failed 64MB, 128MB and 256MB chip. I would like to think that
something has become corrupted, and hence am looking at a very low
level read method.

Documentation on how to access USB, memory card readers at a low level
seems very scarce, does anybody have any ideas where I can look?

Data layout does not worry me, but no data is a difficult starting
point.

Thanks

Michael
 
G

Guest

Guest
Archived from groups: comp.sys.ibm.pc.hardware.storage (More info?)

<mscotgrove@aol.com> wrote in message news:1126123845.040819.46800@g44g2000cwa.googlegroups.com...
>
> I have 3 flash memory chips xD Picture Cards I am trying to recover
> data from. They apparently all failed in the same camera when they
> became 100% full of photos.
>
> I have tried to read them in three readers, that all work with a good
> chip.
>
> They fail with a error message of 'Device not ready' (error status code
> 2). 'Test Unit Ready' also says that the chip is not ready.
>
> My questions are
>
> 1) Do the chips have any embedded firmware? If so, how can it be
> updated, or rewritten.
>
Compact Flash uses an IDE interface, so it has a controller of some sort.

> 2) Is it possible to access the chips through the USB port directly. I
> can open the USB hub, but do not seem able to get through USBSTOR to
> get to the chip directly.
>
I doubt chip accesss is possible. USB storage uses SCSI 2/3 commands.
You can open \\.\PhysicalDrive# and use SPTI as descibed in the DDK.
I would start with a IOCTL_DISK_GET_DRIVE_GEOMETRY.

There is the Astra32 utility that gives you basic USB and SCSI info.
There are probably more utilities of this sort on Linux live CDs.

> 3) Are there any hardware devices that may help?
>
> Any guidance, or data sheet references would be appreciated.
>
> I am programming on Windows XP, with C++ MFC (V7). I am happy to
> attempt programming down to a very low level.
 
G

Guest

Guest
Archived from groups: comp.sys.ibm.pc.hardware.storage (More info?)

Previously mscotgrove@aol.com wrote:
> Hi,

> I have 3 flash memory chips xD Picture Cards I am trying to recover
> data from. They apparently all failed in the same camera when they
> became 100% full of photos.

> I have tried to read them in three readers, that all work with a good
> chip.

> They fail with a error message of 'Device not ready' (error status code
> 2). 'Test Unit Ready' also says that the chip is not ready.

> My questions are

> 1) Do the chips have any embedded firmware? If so, how can it be
> updated, or rewritten.

> 2) Is it possible to access the chips through the USB port directly. I
> can open the USB hub, but do not seem able to get through USBSTOR to
> get to the chip directly.

> 3) Are there any hardware devices that may help?


> Any guidance, or data sheet references would be appreciated.

> I am programming on Windows XP, with C++ MFC (V7). I am happy to
> attempt programming down to a very low level.

If it is a hardware problem, you might consider de-soldering the
flash chips (if that is possible wuth this type of card) and
reading them directly in a flash reader. The flash chips do not
have firmware, but there is an interfacte chip that makes them
look like a storage device and that does have some kind of logic
and/or firmware.

If you access the flash chips directly, you will still have to
figure out the data layout, but you will get all the data.

Arno
 
G

Guest

Guest
Archived from groups: comp.sys.ibm.pc.hardware.storage (More info?)

<mscotgrove@aol.com> wrote in message news:1126193911.004695.138160@g14g2000cwa.googlegroups.com
> xD Picture Memory is totally encapsulated, and about 2-3mm thick.
>
> Thanks for informing me that there is no firmware.

He didn't say that. There isn't any that you can get to.

>
> Somehow, the USB reader thinks that the chip is 'not ready'.

Presumably because of the Memory saying so.

> I would be happy to suspect that there is a hardware failure except my
> customer stated that each chip worked until totally full, and then fell over.

> I have a failed 64MB, 128MB and 256MB chip. I would like to think that
> something has become corrupted, and hence am looking at a very low level
> read method.

Sounds like the error is already 'low level' and I don't think you can
circumvent the USB protocol (or the device's firmware, for that matter).

>
> Documentation on how to access USB, memory card readers at a low le-
> vel seems very scarce, does anybody have any ideas where I can look?

That's suspecting a particular problem with driver/usb interface.
Trying a different reader or different USB interface should answer
that question for you.

>
> Data layout does not worry me, but no data is a difficult starting point.

Yes, it appears to be a physical problem (memory internal firmware
falling over) rather than a logical one.
It would be interesting to know what the Memory mfgr thinks of it.

>
> Thanks
>
> Michael
 
G

Guest

Guest
Archived from groups: comp.sys.ibm.pc.hardware.storage (More info?)

Previously mscotgrove@aol.com wrote:
> xD Picture Memory is totally encapsulated, and about 2-3mm thick.

> Thanks for informing me that there is no firmware.

> Somehow, the USB reader thinks that the chip is 'Nnot ready'. I would
> be happy to suspect that there is a hardware failure except my customer
> stated that each chip worked until totally full, and then fell over. I
> have a failed 64MB, 128MB and 256MB chip. I would like to think that
> something has become corrupted, and hence am looking at a very low
> level read method.

> Documentation on how to access USB, memory card readers at a low level
> seems very scarce, does anybody have any ideas where I can look?

My guess would be that these devices show up as standard USB storage.
The command set for that is the reduced SCSI command set for
fixed disks, if I remember correctly. USB itself is just the transport
infrastructure, the command-set is SCSI, you can look into the
SCSI (draft) standards on the web.

As to how to send something over USB, best look into the USB API
documentation for your OS.

However if the device states that it is not ready that will not help.

> Data layout does not worry me, but no data is a difficult starting
> point.

Agreed.

Hmmm. Maybe this is a design problem in the translation logic
that is as good as a hardware error after it hits.

What about getting one of these devices yourself and writing to
it until it is full and see whether you can re-create the problem,
just to be sure?

Arno
 
G

Guest

Guest
Archived from groups: comp.sys.ibm.pc.hardware.storage (More info?)

"Arno Wagner" <me@privacy.net> wrote in message news:3odppsF5g6t9U1@individual.net
> Previously mscotgrove@aol.com wrote:
> > xD Picture Memory is totally encapsulated, and about 2-3mm thick.
>
> > Thanks for informing me that there is no firmware.
>
> > Somehow, the USB reader thinks that the chip is 'Nnot ready'. I would
> > be happy to suspect that there is a hardware failure except my customer
> > stated that each chip worked until totally full, and then fell over. I
> > have a failed 64MB, 128MB and 256MB chip. I would like to think that
> > something has become corrupted, and hence am looking at a very low
> > level read method.
>
> > Documentation on how to access USB, memory card readers at a low level
> > seems very scarce, does anybody have any ideas where I can look?
>
> My guess would be that these devices show up as standard USB storage.

> The command set for that is the reduced SCSI command set for
> fixed disks, if I remember correctly.

Yeah, that makes a lot of sense, fixed disk command set for so obviously
removable devices.

> USB itself is just the transport infrastructure, the command-set
> is SCSI, you can look into the SCSI (draft) standards on the web.

>
> As to how to send something over USB, best look into the USB API
> documentation for your OS.
>
> However if the device states that it is not ready that will not help.
>
> > Data layout does not worry me, but no data is a difficult starting
> > point.
>
> Agreed.
>
> Hmmm. Maybe this is a design problem in the translation logic
> that is as good as a hardware error after it hits.
>
> What about getting one of these devices yourself and writing to
> it until it is full and see whether you can re-create the problem,
> just to be sure?
>
> Arno
 
G

Guest

Guest
Archived from groups: comp.sys.ibm.pc.hardware.storage (More info?)

The suggestions I see, do conclude that chip could be logically
corrupted in a way that looks the same as hardware failure.

Is it possible to re-configure such chips with a standard USB card
reader/writer, or does one require special hardware?

On the question of instruction set, it does respond with normal SCSI
type commands, but does not have a Read Buffer, or Wtrite Buffer
commands, which are often used to update firmware etc

Astra32 does not detect the failed chip, but does see a working one