2006-10-19 20:28:38

by Kristen Carlson Accardi

[permalink] [raw]
Subject: [patch] libata: use correct map_db values for ICH8


Use valid values for ICH8 map_db. With the old values, when the
controller was in Native mode, and SCC was 1 (drives configured for
IDE), any drive plugged into a slave port was not recognized. For
Combined Mode (and SCC is still 1), 2 is a value value for MAP.map_value,
and needs to be recognized.

Signed-off-by: Kristen Carlson Accardi <[email protected]>
---
drivers/ata/ata_piix.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- 2.6-git.orig/drivers/ata/ata_piix.c
+++ 2.6-git/drivers/ata/ata_piix.c
@@ -432,9 +432,9 @@ static const struct piix_map_db ich8_map
.present_shift = 8,
.map = {
/* PM PS SM SS MAP */
- { P0, NA, P1, NA }, /* 00b (hardwired) */
+ { P0, P2, P1, P3 }, /* 00b (hardwired when in AHCI) */
{ RV, RV, RV, RV },
- { RV, RV, RV, RV }, /* 10b (never) */
+ { IDE, IDE, NA, NA }, /* 10b (IDE mode) */
{ RV, RV, RV, RV },
},
};


2006-10-20 09:07:05

by Tejun Heo

[permalink] [raw]
Subject: Re: [patch] libata: use correct map_db values for ICH8

Hello, Kristen.

Kristen Carlson Accardi wrote:
> Use valid values for ICH8 map_db. With the old values, when the
> controller was in Native mode, and SCC was 1 (drives configured for
> IDE), any drive plugged into a slave port was not recognized. For
> Combined Mode (and SCC is still 1), 2 is a value value for MAP.map_value,
> and needs to be recognized.
>
> Signed-off-by: Kristen Carlson Accardi <[email protected]>

Do you guys have doc update related to this? The doc and spec update
still indicate that MAP value is reserved to 00b. Anyways, if you say
that's right...

Acked-by: Tejun Heo <[email protected]>

--
tejun

2006-10-20 16:26:47

by Kristen Carlson Accardi

[permalink] [raw]
Subject: Re: [patch] libata: use correct map_db values for ICH8

On Fri, 20 Oct 2006 18:06:53 +0900
Tejun Heo <[email protected]> wrote:

> Hello, Kristen.
>
> Kristen Carlson Accardi wrote:
> > Use valid values for ICH8 map_db. With the old values, when the
> > controller was in Native mode, and SCC was 1 (drives configured for
> > IDE), any drive plugged into a slave port was not recognized. For
> > Combined Mode (and SCC is still 1), 2 is a value value for MAP.map_value,
> > and needs to be recognized.
> >
> > Signed-off-by: Kristen Carlson Accardi <[email protected]>
>
> Do you guys have doc update related to this? The doc and spec update
> still indicate that MAP value is reserved to 00b. Anyways, if you say
> that's right...
>
> Acked-by: Tejun Heo <[email protected]>
>
> --
> tejun
As far as I know, this has always been documented.
The datasheet is located here:
http://developer.intel.com/design/chipsets/datashts/313056.htm

Indicates that 10b is valid for combined mode. Make sure you are looking
at device 31 function 2 - for 31 function 5 it is hardwired to 00b, but
for function 2, it can be 00 or 10. This was not very clear, so it's
easy to understand how this could have been misunderstood. See
section 11.1.33 in the notes, or do a search on "combined mode" through
the doc, and you'll see that MV can be 10b when SCC is 01 on device 31
function 2.

2006-10-20 16:35:31

by Tejun Heo

[permalink] [raw]
Subject: Re: [patch] libata: use correct map_db values for ICH8

Kristen Carlson Accardi wrote:
>> Do you guys have doc update related to this? The doc and spec update
>> still indicate that MAP value is reserved to 00b. Anyways, if you say
>> that's right...
>>
>> Acked-by: Tejun Heo <[email protected]>
>>
> As far as I know, this has always been documented.
> The datasheet is located here:
> http://developer.intel.com/design/chipsets/datashts/313056.htm

Yeap, that's what I've been looking at for the whole time.

> Indicates that 10b is valid for combined mode. Make sure you are looking
> at device 31 function 2 - for 31 function 5 it is hardwired to 00b, but
> for function 2, it can be 00 or 10. This was not very clear, so it's
> easy to understand how this could have been misunderstood. See
> section 11.1.33 in the notes, or do a search on "combined mode" through
> the doc, and you'll see that MV can be 10b when SCC is 01 on device 31
> function 2.

Ah... you're right. Thanks for pointing out.

--
tejun