2006-08-09 16:00:28

by Mikael Pettersson

[permalink] [raw]
Subject: Re: libata pata_pdc2027x success on sparc64

Albert Lee writes:
> Sergei Shtylyov wrote:
> > Hello.
> >
> > Mikael Pettersson wrote:
> >
> >> In contrast, the old IDE pdc202xx_new driver had lots
> >> of problems with CRC errors causing it to disable DMA.
> >
> >
> > Hm, from my experience it usually falls back to UltraDMA/44 and then
> > the thing startrt working...
> >
> >> I wasn't able to manually tune it above udma3 without
> >> getting more errors. This isn't sparc64-specific: I've
> >> had similar negative experience with the old IDE Promise
> >> drivers in a PowerMac.
> >
> >
> > This happens because the "old" driver misses the PLL calibration code.
> > You may want to try these Albert's patches:
> >
> > http://marc.theaimsgroup.com/?t=110992452800002&r=1&w=2
> > http://marc.theaimsgroup.com/?t=110992471500002&r=1&w=2
> > http://marc.theaimsgroup.com/?t=110992490100002&r=1&w=2
> > http://marc.theaimsgroup.com/?t=111019238400003&r=1&w=2
> >
> > It looks like they were never considered for accepting into the kernel
> > while they succesfully solve this issue. Maybe Albert could try pushing
> > them into -mm tree once more?
> >
>
> Hi,
>
> The libata version has three improvements compared to the IDE version.
>
> 1. The PLL calibration patches in the above URLs (for IDE)
> still need more improvement as done in the pdc_read_counter()
> of the libata version.
>
> 2. The Promise 2027x adapters check the "set features - xfer mode"
> and set the timing register automatically. However, the automatically
> set values are not correct under 133MHz. Libata has a hook
> pdc2027x_post_set_mode() to set the values back by software.
>
> 3. ATAPI DMA is supported (please see pdc2027x_check_atapi_dma()).
> Maybe we also need to add this to the IDE version.

Do you know how large the difference is between the 20267 (old driver)
and the 20269 (new driver) in the areas touched by these patches?
Long ago I tried a 20267 PCI card in my PowerMac, and it had the same
issues that the 20269 card had. So I'm interested in porting the
calibration/timing fixes to pdc202xx_old.c.

/Mikael


2006-08-09 16:04:37

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: libata pata_pdc2027x success on sparc64

Hello.

Mikael Pettersson wrote:

> > The libata version has three improvements compared to the IDE version.
> >
> > 1. The PLL calibration patches in the above URLs (for IDE)
> > still need more improvement as done in the pdc_read_counter()
> > of the libata version.
> >
> > 2. The Promise 2027x adapters check the "set features - xfer mode"
> > and set the timing register automatically. However, the automatically
> > set values are not correct under 133MHz. Libata has a hook
> > pdc2027x_post_set_mode() to set the values back by software.
> >
> > 3. ATAPI DMA is supported (please see pdc2027x_check_atapi_dma()).
> > Maybe we also need to add this to the IDE version.

> Do you know how large the difference is between the 20267 (old driver)
> and the 20269 (new driver) in the areas touched by these patches?

Immense. They belong to the different families, register compatibe only in
the standard PCI/BM IDE regisrer set -- hence was the driver split.

> Long ago I tried a 20267 PCI card in my PowerMac, and it had the same
> issues that the 20269 card had. So I'm interested in porting the
> calibration/timing fixes to pdc202xx_old.c.

They don't apply to this driver at all. The "older" chip family didn't
have the PLL to calibrate. It must be some different issue.

> /Mikael

WBR, Sergei

2006-08-09 16:16:15

by Mikael Pettersson

[permalink] [raw]
Subject: Re: libata pata_pdc2027x success on sparc64

Sergei Shtylyov writes:
> Hello.
>
> Mikael Pettersson wrote:
>
> > > The libata version has three improvements compared to the IDE version.
> > >
> > > 1. The PLL calibration patches in the above URLs (for IDE)
> > > still need more improvement as done in the pdc_read_counter()
> > > of the libata version.
> > >
> > > 2. The Promise 2027x adapters check the "set features - xfer mode"
> > > and set the timing register automatically. However, the automatically
> > > set values are not correct under 133MHz. Libata has a hook
> > > pdc2027x_post_set_mode() to set the values back by software.
> > >
> > > 3. ATAPI DMA is supported (please see pdc2027x_check_atapi_dma()).
> > > Maybe we also need to add this to the IDE version.
>
> > Do you know how large the difference is between the 20267 (old driver)
> > and the 20269 (new driver) in the areas touched by these patches?
>
> Immense. They belong to the different families, register compatibe only in
> the standard PCI/BM IDE regisrer set -- hence was the driver split.
>
> > Long ago I tried a 20267 PCI card in my PowerMac, and it had the same
> > issues that the 20269 card had. So I'm interested in porting the
> > calibration/timing fixes to pdc202xx_old.c.
>
> They don't apply to this driver at all. The "older" chip family didn't
> have the PLL to calibrate. It must be some different issue.

OK, in that case let's forget about the 20267. It's not _that_ important :-)