Thread (23 messages) 23 messages, 8 authors, 1999-08-12

Re: Trying a Promise Ultra/66 on powerpc

From: Paul Mackerras <hidden>
Date: 1999-08-09 05:13:28

Possibly related (same subject, not in this thread)

This fact was already catered for with the definition of outb/inb and
friends, which get an offset added to the port. Unfortunately, the
PowerMac IDE code undoes this and replaces it with a different
mechanism, which in essence removes the offset. Grrr..
Not any more.  I took that stuff out a few weeks ago so that the
CMD646 on the blue&white G3s could work.

Basically the problem is that the IDE driver assumes that you access
all IDE controllers via I/O ports.  When you have a controller that
has memory-mapped registers, there is a problem.  When you have a
system where one IDE controller has I/O ports and another has memory-
mapped registers, you have a bigger problem.  The current approach to
solving this problem is to map the addresses of the memory-mapped
registers into pseudo I/O port numbers (by subtracting _IO_BASE).  If
there is a better way, somebody let me know. :-)
I've solved the problem by adding the right offset directly to the
io-port values as found in the kernel's PCI structures. I think this
needs more serious rework, though. Paul, are you the author of the
PowerMac IDE stuff? So we can work this out... 
Yep, for my sins. :-) :-)

Also, does anyone know how a quick way to get the best DMA cycle
timing values in a tuneproc?

Paul.

[[ This message was sent via the linuxppc-dev mailing list.  Replies are ]]
[[ not  forced  back  to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting.   ]]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help