Re: [PATCH] ATA: pata_at91.c bugfixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(Cc again linux-ide)

> >>This is not clear for me. Maybe we talk about different things or I
> >>have wrong
> >>understanding of ATA timings.
> >>Can you please look at "Standard Read Cycle" for AT91SAM9 MCU
> >>http://www.kicad.ru/files/AT91SAM9G20%20bus%20timing.pdf
> >>, CompactFlash connection schematic
> >>http://www.kicad.ru/files/CF%20for%20AT91SAM9%20(True%20IDE%20mode).pdf
> >>and comment my thoughts?
> >Full "External Bus Interface" section from AT91 spec is important,
> >because is describe how SMC works internally in CF True IDE mode.
> 
> You can look at it here:
> http://www.atmel.com/dyn/resources/prod_documents/doc6384.pdf
> 12 MB, Pages 159-200.

I know where AT91 documentation can be downloaded from.

> >>* The NCS signal is not the same as CS1, CS2 ATA signals! It used only to
> >>   enable data bus transceiver U2.
> >Well, they are different signals but connected together. All of these are
> >controlled by NCS: CFCE1 (CS1), CFCE2 (CS2), CFRNW (DIR), CFCS0 (OE)
> >if SMC is configured in True IDE mode.
> 
> I must repeat again - NCS ("CFCS1" from schematic) are completely
> different signal for different purpose, then A0, A1, A2, CS0, CS1.
> It used only to enable data bus transceiver U2.

So, how in your opinion CS0 and CS1 are controlled? IMO there
are delivered from CFCE1 and CFCE2, which itself are delivered
from NCS. Here is corresponding quote from atmel documentation
you cited above:

"The CFCE1 and CFCE2 waveforms are identical to the corresponding NCSx waveform"

> I think it is much better do not simply keep
> 
> cs_setup = 0;
> cs_pulse = cycle; /* cs_hold = 0 */
> 
> as you propose, but better to keep good balance and assume:
> 
> cs_setup = setup / 2;

Again. If you do this, real t1 time - ADDR "A02, A01, A00, -CS0, -CS1"
valid to "-IORD / -IOWR" edge, on ATA bus will be equal "setup / 2" not
"setup" as it should. Actually only time between -CS0, -CS1 and
-IORD/-IOWR will not be correct, address lines are established at the
beginning of SMC cycle, as you pointed.
 
> This is because at high master clock frequency, "cs_pulse" value
> physically can not be as large as "cycle" (SMC HW limitations).

There is no point to consider times of rising and falling edges
of electric signal in discussion here, they are small enough and
can be ignored. AFAIK NCS pulse time equal to cycle time is pretty
valid SMC setting, there is no reason to not utilize that.

> So, I still don't understand why you think that my equations is not right.
> If you think another way, then please explain your idea better then
> a few words.

I'm sorry, I'm not able to explain things different than I did in this
and my previous emails.

Stanislaw
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux