Trying a Promise Ultra/66 on powerpc

Benjamin Herrenschmidt bh40 at
Mon Aug 9 16:50:29 EST 1999

On Mon, Aug 9, 1999, Paul Mackerras <paulus at> wrote:

>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. :-)

Looks like the best way would be to store the port base or pointers to
the in/out functions in the HWIF structure.

>> 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?

I looked for this not so long ago, when fixing the sl82c105.c for a board
we are designing. unfortunately, it looks like the Linux kernel expect
the BIOS to have done all the work of setting the DMA mode. This is
especially nasty for removable drives and for controllers like the
winbond using the same register for DMA and PIO timings.
Also, I heard (I didn't check) that the tuneproc is not appropriate for
this since it may be called with using_dma not set to it's definitive value.
I was thinking about doing this in the dma_proc itself, when DMA is

           E-Mail: <mailto:bh40 at>
BenH.      Web   : <>

[[ 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 ]]
[[ and for useful information before posting.   ]]

More information about the Linuxppc-dev mailing list