problems with Ultra DMA operations

E

Eug

Hi there!

I have the following problem. I develop FPGA IP core for ATA HDD. I
have tested it on 40 GB 2.5" Fujitsu HDD. PIO and Ultra DMA operated
fine. When I switched to Maxtor DiamondMax HDD (3.5" 60 and 200 GB) it
was found out that after I perform Ultra DMA write operation (DMA
Write) I get different results using PIO and Ultra DMA read:
- if I read sector using Ultra DMA commands (DMA Read), I get data
which was written earlier using PIO write commands (Write Sector) not
written by Ultra DMA write commands.
- if I read sector using PIO command (Read Sector), I get data which
was written by Ultra DMA write command. The strange thing is that if I
read the same sector again using PIO command, I get data which was
written earlier using PIO write commands.

What can be the problem?
I have tried to turn off cache and read-ahead options but it didn't
help.
Thanks in advance.
Eug
 
N

Nick

Hi there!

I have the following problem. I develop FPGA IP core for ATA HDD. I
have tested it on 40 GB 2.5" Fujitsu HDD. PIO and Ultra DMA operated
fine. When I switched to Maxtor DiamondMax HDD (3.5" 60 and 200 GB) it
was found out that after I perform Ultra DMA write operation (DMA
Write) I get different results using PIO and Ultra DMA read:
- if I read sector using Ultra DMA commands (DMA Read), I get data
which was written earlier using PIO write commands (Write Sector) not
written by Ultra DMA write commands.
- if I read sector using PIO command (Read Sector), I get data which
was written by Ultra DMA write command. The strange thing is that if I
read the same sector again using PIO command, I get data which was
written earlier using PIO write commands.

What can be the problem?
I have tried to turn off cache and read-ahead options but it didn't
help.
Thanks in advance.
Eug


Are you sure the Maxtor is error proof ? I had similar problems with
Western Digital when accessing to bad sectors using PIO ; i got
sectors from the cache.

Nick
 
A

Arno Wagner

Previously Eug said:
Hi there!
I have the following problem. I develop FPGA IP core for ATA HDD. I
have tested it on 40 GB 2.5" Fujitsu HDD. PIO and Ultra DMA operated
fine. When I switched to Maxtor DiamondMax HDD (3.5" 60 and 200 GB) it
was found out that after I perform Ultra DMA write operation (DMA
Write) I get different results using PIO and Ultra DMA read:
- if I read sector using Ultra DMA commands (DMA Read), I get data
which was written earlier using PIO write commands (Write Sector) not
written by Ultra DMA write commands.
- if I read sector using PIO command (Read Sector), I get data which
was written by Ultra DMA write command. The strange thing is that if I
read the same sector again using PIO command, I get data which was
written earlier using PIO write commands.
What can be the problem?
I have tried to turn off cache and read-ahead options but it didn't
help.
Thanks in advance.
Eug

You should not mix access modes. At the very least you need to flush
the disk cache after changing access modes. In current PCs, access
modes are mostly static during operation so disk vendors do not
expect mixed accesses. I would say this is a bug in the disk
firmware, but one unlikely to matter in most applications.

Arno
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top