linux-mips-fnet
[Top] [All Lists]

RE: Problems getting the ide-controller working

To: <erik.niessen@philips.com>, <linux-mips@fnet.fr>
Subject: RE: Problems getting the ide-controller working
From: "Mike Klar" <mfklar@ponymail.com>
Date: Tue, 13 Jun 2000 22:20:13 -0700
Importance: Normal
In-reply-to: <0056890011491518000002L982*@MHS>
erik.niessen@philips.com wrote:

> CMD646: IDE controller on PCI bus 00 dev 98
> CMD646: not 100% native mode: will probe irqs later
> EN: hwif->io_ports[IDE_SELECT_OFFSET]=0xfffe

This looks wrong.  The offsets in hwif->io_ports[] should be the standard
IDE port offsets, mostly in the range of 0x0-0x7 (except
IDE_CONTROL_OFFSET).

> It seems the IDE-driver is not yet ready for the mips?

It's working fine in the 2.3 tree for little endian MIPS systems, but
ide-std.c will check for IDE at the standard ISA ports only, I'm not sure
what the PCI drivers do on top of that.  Some of the stuff in
include/asm-mips/ide.h is wrong (but not fatal) for big-endian systems, but
even if you are running big-endian, that doesn't sound like your immediate
problem.

> probing for hda: present=0, media=32, probetype=ATA
> Unable to handle kernel paging request at virtual address
> 11fffffe, epc == 800c3
> ...

That's about what I would expect from a bad offset (0xfffe) off of a
0x12000000 base.  But even that base sounds wrong.  It looks like a physical
address being used as a virtual address.

> Some questions:
> - Can I safely use the OUT_BYTE function on the mips?

I'm not sure what kernel version you're using, but in the 2.3 tree on SGI's
CVS server, you can, but only if you set up mips_io_port_base in your
platform setup function.

The Linux IDE driver takes a base IO address, adds in an offset from
hwif->io_ports[], then uses that with an inb or outb, which on MIPS adds in
mips_io_port_base on top of that.

Mike Klar

<Prev in Thread] Current Thread [Next in Thread>