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

Problems getting the ide-controller working

To: <linux-mips@fnet.fr>
Subject: Problems getting the ide-controller working
From: erik.niessen@philips.com
Date: Tue, 13 Jun 2000 18:47:29 +0200
Hello,

I am trying to get a CMD-646 ide-controller working on an embedded 
mips-platform. 
Here is what I tried so far. I got the source from ftp.mips.com. Compiled it 
and the 
core-kernel is working now. I put the ide pci-card in and I changed the setup 
file so 
that ide_ops is using the std_ide_ops.  I recompiled and try to boot, but no 
luck. 
Have a look at the output:

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
probing for hda: present=0, media=32, probetype=ATA
Unable to handle kernel paging request at virtual address 0000fffe, epc == 800c3
980, ra == 800c3958
Oops: 0001

It seems the IDE-driver is not yet ready for the mips? After some debugging it 
seems 
that the oops is at the line SELECT_DRIVE(hwif,drive)  in ide-probe.c. This 
line does 
an OUT_BYTE and it uses the hwif->io_ports as input. That is incorrect it 
should use
 the base-address. So instead of the SELECT_DRIVE I did a OUT_BYTE with 
base-address0 and I get the following output

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
probing for hda: present=0, media=32, probetype=ATA
Unable to handle kernel paging request at virtual address 11fffffe, epc == 800c3
970, ra == 800c3960
Oops: 0001
$0 : 00000000 800f0000 11fffffe 000000a0
$4 : 800f2194 00000001 00000034 1000fc01
$8 : 0000fc00 ffff00ff 00000001 00000000
$12: 800ddb30 00000020 80187335 80187336
$16: 11fffffe 80186bb0 80186bb0 80186b94
$20: 000000ec 80186bf8 80186bd2 80186be8
$24: 0000006b 00000064
$28: 80ff8000 80ff9e58 80186be2 800c3960
epc   : 800c3970
Status: 1000fc03
Cause : 0080000c
Process swapper (pid: 1, stackpage=80ff8000)
Stack: 800dc010 80186c00 00000000 00000020 800dc044 800e7498 80186bd0 80186bb0
       80186c00 00000000 80186b94 800c3ddc 00000000 00000000 80ffc7fc 80ffc800
       800e95ac 1000fc01 1000fc01 80186cc1 80186be3 0000000a 00000000 80ff9ee8
       80186b94 0000000a 00000001 80010428 04000000 00000000 80186be2 800c4af8
       8016e94d 0000003c 06461095 00808000 00000001 00000001 00000001 00000001
       00000001 ...
Call Trace: [<800dc010>] [<800dc044>] [<800c3ddc>] [<800c4af8>] [<800682a4>] [<8
00dba78>] [<8006a258>] [<800682a4>] [<800682a4>] [<800682a4>] [<800682b4>] [<800
7a03c>] [<800d4494>] [<8006a268>] [<8006a258>]
Code: 8c420af0  92430024  00501021 <a0430000> 3c04800e  0c01e776  2484c050  0c03
0cc4  00000000

Some questions:
- Can I safely use the OUT_BYTE function on the mips?
- How do I communicate with the ide-drive correctly?
- Maybe someone can give me a pointer that would solve my problem?

Thanks for reading so for and I hope someone can help me out.

Cheers,

        Erik



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