From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Marco Braga <marco.braga@gmail.com>
Cc: linux-mips@linux-mips.org
Subject: Re: Linux kernel 2.6.20, PCI and hpt266
Date: Mon, 05 Mar 2007 15:42:05 +0300 [thread overview]
Message-ID: <45EC101D.8050600@ru.mvista.com> (raw)
In-Reply-To: <d459bb380703040427g4a8cad08kd8e3190f7d109c86@mail.gmail.com>
Hello.
Marco Braga wrote:
> Hello, I am trying to run kernel 2.6.20 on an Au1500 based board. Versions
> 2.4.x of the kernel are correctly working.
How could they work I wonder? :-O
> Problem: on the board there is a HighPoint 371N ATA controller. At the
There's *no* proper support for HPT371N in 2.4.x.
> moment the kernel 2.6.20 boots and runs, but the ATA controller does not
> recognize the IDE disk.
> Details:
> The driver I use is "drivers/ide/pci/hpt266.c". I've already fixed the
I guess you mean hpt366.c. :-)
> timing problems and PLL configuration that afflict this controller, and
> removed RESOURCE_64BIT to fix problems with the PCI bus on mips and
> resource_size_t casts.
Erm, does it indeed fix the problem I wonder?
> I've managed to follow the problem to ide-probe.c, in function
> "actual_try_to_identify". It seems that the values read from the ATA
> registers through IO ports are not correct. As every ATA controller, it
> needs 8 bytes in IO port space for Command Block registers, and 4 bytes for
> the Control Block registers. They are mapped by the kernel at:
> 1400-1407 (8 bytes) Command block channel 0
> 1408-140F (8 bytes) Command block channel 1
> 1410-1413 (4 bytes) Control block channel 0
> 1414-1417 (4 bytes) Control block channel 1
> Notice that Highpoint 371N has registers for 2 channel, but the pinout for
> only 1 channel. In fact the first channel is disabled by the driver, so the
> actual registers are in the range 1408-140F and 1414-1417. The first
> sign of
> the problem is that INB do not read the correct values for the ALTSTATUS
> register. In fact the kernel reports:
> ... probing with STATUS(...) instead of ALTSTATUS(...)
> [as in ide-probe.c, line 290]
> The values read from the ATA registers are completely wrong. The registers
> are accessed through hwif->INB, that are common "inb" functions. This makes
> me suspect that "inX" functions are not working, but I don't know how to
> test this. Notice that the PCI controller configuration space is correctly
> accessed, as I can confirm reading sys/bus/pci/.../config.
The PCI config. space accesses use completely different meachanism form
I/O and memory accesses.
> Can you help or suggest me anything?
Well, I guess I'll try the current kernel on one of my DBAu1x00 boards...
> Thanx!
WBR, Sergei
next prev parent reply other threads:[~2007-03-05 12:42 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-04 12:27 Linux kernel 2.6.20, PCI and hpt266 Marco Braga
2007-03-05 12:42 ` Sergei Shtylyov [this message]
2007-03-05 13:57 ` Marco Braga
2007-03-06 8:16 ` Marco Braga
2007-03-12 7:33 ` Marco Braga
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=45EC101D.8050600@ru.mvista.com \
--to=sshtylyov@ru.mvista.com \
--cc=linux-mips@linux-mips.org \
--cc=marco.braga@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.