From: "João Ramos" <joao.ramos@inov.pt>
To: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: H Hartley Sweeten <hartleys@visionengravers.com>,
Ryan Mallon <ryan@bluewatersys.com>,
linux-arm-kernel@lists.arm.linux.org.uk,
linux-ide@vger.kernel.org
Subject: Re: EP93xx PIO IDE driver proposal
Date: Thu, 07 May 2009 12:01:55 +0100 [thread overview]
Message-ID: <4A02BFA3.2000200@inov.pt> (raw)
In-Reply-To: <4A02AB9C.4050107@inov.pt>
>>> +static u8 ep93xx_ide_readb(unsigned long base, unsigned long addr)
>>> +{
>>> + u32 reg;
>>> +
>>> + reg = ((addr & 0x07) << 2) | ((addr >> 3) & 0x03) | IDECTRL_DIORN |
>>> + IDECTRL_DIOWN;
>>> + writel(reg, IDE_REGISTER(IDECTRL));
>>> + ndelay(25);
>>> +
>>> + reg &= ~IDECTRL_DIORN;
>>> + writel(reg, IDE_REGISTER(IDECTRL));
>>> + ndelay(70);
>>> +
>>> + while (!ep93xx_ide_check_iordy())
>>> + cpu_relax();
>>> +
>>> + reg |= IDECTRL_DIORN;
>>> + writel(reg, IDE_REGISTER(IDECTRL));
>>> + ndelay(25);
>>> +
>>> + return readl(IDE_REGISTER(IDEDATAIN));
>>>
>> Hey, how this even works (if the data doesn't get latched
>> somehow)?! You
>> should read the register right *before* the deassertion of -DIORx! The
>> minimum data hold time is only 5 ns and the data lines will be tristated
>> within 30 ns maximum...
>>
EP93xx User's Guide, Section 27 - 14 (IDEDataIn register Description)
<quote>:
"In PIO mode read operation, this register is the Input Data Registers,
containing the register contents or the data read from the device. The
register is loaded from the DD pins at the positive edge of the DIORn
signal. The register is read-only in this operation. ... "
Meaning, the data is latched from the data bus at the positive edge of
DIORn, and transfered into the IDEDATAIN register.
The above procedure is correct, according to this.
[...]
>
>>> +static void
>>> +ep93xx_ide_writeb(unsigned long base, u8 value, unsigned long addr)
>>> +{
>>> + u32 reg;
>>> +
>>> + reg = ((addr & 0x07) << 2) | ((addr >> 3) & 0x03) | IDECTRL_DIORN |
>>> + IDECTRL_DIOWN;
>>> + writel(reg, IDE_REGISTER(IDECTRL));
>>> + ndelay(25);
>>> +
>>> + writel(value, IDE_REGISTER(IDEDATAOUT));
>>>
>> Hum, do you know at which moments this controller starts/stops driving
>> data lines on the IDE bus? After DIOWx- assertion/deassertion?
>>
>
> I will look into that. I based this source code in the CPU's user guide,
> which tips a correct procedure for reading/writing in PIO mode.
> But I will check that, as I already had some trouble with the user's
> guide...
>
EP93xx User's Guide, Section 27 - 13 (IDEDataOut register Description)
<quote>:
"In PIO mode write operation, this register is the Output Data
Registers, containing the register contents or the data to be written to
the device. The register is driven onto the DD pins when DIOWn is low.
The register is both read write in this operation. ..."
Meaning, according to this, the procedure is correct. First we prepare
the data in the IDEDATAOUT register, then we assert DIOWn and data from
IDEDATAOUT is transfered to the data bus.
Regards,
João
--
************************************************************************
João Ramos <joao.ramos@inov.pt>
INOV INESC Inovação - ESTG Leiria
Escola Superior de Tecnologia e Gestão de Leiria
Edíficio C1, Campus 2
Morro do Lena, Alto do Vieiro
Leiria
2411-901 Leiria
Portugal
Tel: +351244843424
Fax: +351244843424
************************************************************************
next prev parent reply other threads:[~2009-05-07 11:03 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <49CCD7C4.8000207@inov.pt>
[not found] ` <49CFDD8F.1030306@bluewatersys.com>
[not found] ` <BD79186B4FD85F4B8E60E381CAEE1909014E2E09@mi8nycmail19.Mi8.com>
[not found] ` <49D0CAE4.9090306@inov.pt>
2009-03-30 15:34 ` EP93xx PIO IDE driver proposal Sergei Shtylyov
2009-05-04 11:24 ` João Ramos
2009-05-05 12:04 ` Sergei Shtylyov
2009-05-06 14:17 ` João Ramos
2009-05-06 17:05 ` Sergei Shtylyov
2009-05-07 9:36 ` João Ramos
2009-05-07 11:01 ` João Ramos [this message]
2009-05-07 13:53 ` Alan Cox
2009-05-07 15:33 ` João Ramos
2009-05-08 12:04 ` Bartlomiej Zolnierkiewicz
2009-05-08 12:16 ` João Ramos
2009-05-08 12:40 ` Bartlomiej Zolnierkiewicz
2009-05-08 13:30 ` Sergei Shtylyov
2009-05-08 14:09 ` Bartlomiej Zolnierkiewicz
2009-05-08 17:28 ` João Ramos
2009-05-08 18:02 ` Bartlomiej Zolnierkiewicz
2009-05-08 18:16 ` João Ramos
2009-05-08 18:55 ` Bartlomiej Zolnierkiewicz
2009-05-08 20:24 ` joao.ramos
2009-05-08 21:01 ` Sergei Shtylyov
2009-05-08 22:07 ` Bartlomiej Zolnierkiewicz
2009-05-11 11:10 ` João Ramos
2009-05-12 16:49 ` Sergei Shtylyov
2009-05-12 17:23 ` Bartlomiej Zolnierkiewicz
2009-05-13 11:01 ` João Ramos
2009-05-17 15:20 ` Bartlomiej Zolnierkiewicz
2009-05-22 17:52 ` Sergei Shtylyov
2009-05-13 14:18 ` João Ramos
2009-05-14 19:44 ` Bartlomiej Zolnierkiewicz
2009-05-15 17:01 ` João Ramos
2009-05-17 16:16 ` Bartlomiej Zolnierkiewicz
2009-05-18 13:49 ` João Ramos
2009-05-19 13:06 ` Bartlomiej Zolnierkiewicz
2009-05-19 13:20 ` João Ramos
2009-05-19 13:56 ` Bartlomiej Zolnierkiewicz
2009-05-19 14:05 ` João Ramos
2009-05-19 15:50 ` João Ramos
2009-06-06 15:26 ` Sergei Shtylyov
2009-06-22 10:01 ` Bartlomiej Zolnierkiewicz
2009-05-14 16:30 ` Sergei Shtylyov
2009-05-14 16:36 ` Sergei Shtylyov
2009-05-14 18:58 ` Bartlomiej Zolnierkiewicz
2009-05-11 13:20 ` João Ramos
2009-05-12 16:41 ` Bartlomiej Zolnierkiewicz
2009-05-12 16:57 ` Sergei Shtylyov
2009-05-12 16:01 ` João Ramos
2009-05-12 16:30 ` Bartlomiej Zolnierkiewicz
2009-05-12 16:45 ` João Ramos
2009-05-07 16:52 ` H Hartley Sweeten
2009-05-07 22:09 ` Ryan Mallon
2009-05-07 22:31 ` H Hartley Sweeten
2009-05-07 22:51 ` Ryan Mallon
2009-05-07 23:01 ` H Hartley Sweeten
2009-05-07 23:12 ` Ryan Mallon
2009-05-07 23:32 ` João Ramos
2009-05-07 23:58 ` H Hartley Sweeten
2009-05-08 11:23 ` Sergei Shtylyov
2009-05-08 12:47 ` João Ramos
[not found] ` <49D12669.4030207@bluewatersys.com>
2009-03-31 10:36 ` Sergei Shtylyov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A02BFA3.2000200@inov.pt \
--to=joao.ramos@inov.pt \
--cc=hartleys@visionengravers.com \
--cc=linux-arm-kernel@lists.arm.linux.org.uk \
--cc=linux-ide@vger.kernel.org \
--cc=ryan@bluewatersys.com \
--cc=sshtylyov@ru.mvista.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).