mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
To: Linux kernel mailing list <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] IDE 80-core cable detect - chipset-specific code to over-ride eighty_ninty_three()
Date: Tue, 10 Feb 2004 15:41:31 +0100	[thread overview]
Message-ID: <200402101541.31033.bzolnier@elka.pw.edu.pl> (raw)
In-Reply-To: <200402101816.28067.athol_SPIT_SPAM@idl.net.au>

On Tuesday 10 of February 2004 08:16, Athol Mullen wrote:
> Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> wrote:
> > On Monday 09 of February 2004 03:50, Athol Mullen wrote:
>
> (Don't CC.  I read lkml via linux.kernel newsgroup.)
>
> >> +     u16 cr_flag             = 0x10 << drive->dn;
> >>
> >> +                         pci_read_config_word(dev, 0x54, &reg54);
> >> +                         return ((reg54 & cr_flag) ? 1 : 0);
> >
> > This is plain wrong, piix.c already does it for you.
> > piix.c:init_hwif_piix():
>
> The penny drops...
>
> I missed this code because I was looking for cable detection on
> a drive-by-drive basis, and this is taking drives in pairs.
>
> That's why the drive was being correctly initialised as a UDMA5
> drive even though eighty_ninty_three() was returning zero.
>
> The existing code was written before the ICH5 came out, and will
> always work for ICH4 and older, but is wrong in its method of
> detecting 80-core cables on an ICH5, and could fail if SATA and
> PATA drives are mixed and used in compatability mode.  The bit
> flags should be taken on a drive-by-drive basis, because the ICH5
> is capable of logical mapping such as:
>
> SATA0 -> IDE0 Master
> SATA1 -> IDE0 Slave
> PATA0 master -> IDE1 Master
> PATA1 master -> IDE1 Slave
>
> Note that this now sees two PATA drives on different physical
> interfaces looking like master and slave on one interface.  In this
> scenario, if PATA1 has a 40-core and PATA0 an 80-core or vise versa,
> both would be detected as having 80-core with the existing code.
>
> Why do I feel like I just pulled the lid off a can of worms?

:-)

> The options are essentially that we:
> 1. Always force the SATA interfaces into native mode and PATA
>    into native or normal mode (desirable - the compatability mode
>    described above make only 2 PATA drives visible),
> 2. Modify the above code to work on a drive-by-drive basis instead
>    of interface-by-interface (according to Intel, this is the
>    correct answer),
> 3. Do nothing, and hope nobody notices.  :-)

Solution 1. is good also for other things, but changes order of the drives
so it is 2.7.x thing.  For now you can just add code for ICH5 setting
hwif->udma_four only if both drives report 80-c, something like:

	if ((reg54h & mask) == mask)
		ata66 = 1;

--bart


  reply	other threads:[~2004-02-10 14:36 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1n9OA-6lu-17@gated-at.bofh.it>
     [not found] ` <1n9OA-6lu-23@gated-at.bofh.it>
     [not found]   ` <1n9OA-6lu-15@gated-at.bofh.it>
     [not found]     ` <1nu6y-XO-3@gated-at.bofh.it>
2004-02-10  7:16       ` Athol Mullen
2004-02-10 14:41         ` Bartlomiej Zolnierkiewicz [this message]
     [not found] <1mLsS-6Oq-7@gated-at.bofh.it>
     [not found] ` <1mLsS-6Oq-9@gated-at.bofh.it>
     [not found]   ` <1mLsS-6Oq-5@gated-at.bofh.it>
     [not found]     ` <1mRHV-4Xn-7@gated-at.bofh.it>
2004-02-09  2:50       ` Athol Mullen
2004-02-09 20:04         ` Willy Tarreau
2004-02-10  0:24         ` Bartlomiej Zolnierkiewicz
     [not found] <1mtPj-7oQ-3@gated-at.bofh.it>
     [not found] ` <1mwNn-1xb-27@gated-at.bofh.it>
2004-02-08  0:45   ` Athol Mullen
2004-02-08  7:31     ` Willy Tarreau
2004-02-10  0:10       ` Bartlomiej Zolnierkiewicz
2004-02-10  0:37         ` Bartlomiej Zolnierkiewicz
2004-02-07  6:00 Athol Mullen
2004-02-07  9:15 ` Willy Tarreau

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=200402101541.31033.bzolnier@elka.pw.edu.pl \
    --to=b.zolnierkiewicz@elka.pw.edu.pl \
    --cc=linux-kernel@vger.kernel.org \
    /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

all inboxes | Powered by JetHome®