All of lore.kernel.org
 help / color / mirror / Atom feed
* Linux kernel 2.6.20, PCI and hpt266
@ 2007-03-04 12:27 Marco Braga
  2007-03-05 12:42 ` Sergei Shtylyov
  0 siblings, 1 reply; 5+ messages in thread
From: Marco Braga @ 2007-03-04 12:27 UTC (permalink / raw)
  To: linux-mips

[-- Attachment #1: Type: text/plain, Size: 1884 bytes --]

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.

Problem: on the board there is a HighPoint 371N ATA controller. At the
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
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.

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.

Can you help or suggest me anything?
Thanx!

[-- Attachment #2: Type: text/html, Size: 2026 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-03-12  7:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-04 12:27 Linux kernel 2.6.20, PCI and hpt266 Marco Braga
2007-03-05 12:42 ` Sergei Shtylyov
2007-03-05 13:57   ` Marco Braga
2007-03-06  8:16   ` Marco Braga
2007-03-12  7:33   ` Marco Braga

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.