[PATCH 1/4] Add DMA sector to Documentation/powerpc/booting-without-of.txt file.

Segher Boessenkool segher at kernel.crashing.org
Thu Jul 12 05:19:19 EST 2007


>>> that if we really wanted to we could describe as a
>>> second reg resource in each channel, combined with a channel-ID   
>>> property.
>> You cannot describe one register in two different nodes.
>
> Why not?  It's read-only.

Because a register belongs to one, and only one, device
node.  There is no such concept as "read-only registers"
in Open Firmware btw.  How a device (or a driver for a
device) uses the registers is its own business; OF merely
describes what devices uses what address range.

>>> I'm not inclined to bother, though -- not because we don't   
>>> currently use
>>> it, but because I have a hard time seeing anyone needing to use it.
>> Unless you're sure no one ever wants to use it, it should be in
>> the device tree.
>
> There are lots of registers that are used that aren't in the device  
> tree.  This one's pretty low on the priority list to get added, IMHO.

It is in the original proposed tree already.  I see no reason
to take it out.

>>> There is no information in that register that is not the individual
>>> channels' registers.
>> People use it to get the status of all registers at once.  I/O reads
>> aren't cheap...
>
> On-chip I/O reads shouldn't be all that slow...

There's a full sync after every I/O read.  Anyway, it doesn't
matter; the register is there, why not describe it.

>>> It's by far the simplest way to tell the generic DMA driver "do not
>>> touch".  "fsl,mpc8548-dma" says "this is a generic, mem-to-mem  
>>> DMA  channel".
>> I would expect it to mean "this is the 8548 DMA controller".
>
> What if the mem-to-mem channels were explicitly labelled  
> fsl,mpc8548-dma-mem-to-mem?

Why would you?  Why would you put _any_ compatible property in
the individual channels, even; they aren't separate devices
after all.

>>> "fsl,mpc8548-audio-dma" says "this is a non-generic DMA channel,   
>>> hooked up to an audio codec".
>> So this DMA channel cannot be used for general purpose stuff
>> at all?
>
> I don't know if it *can* or not, though it'd be a pretty unusual  
> way of using it.  In any case, the device tree should be able to  
> handle the case where it can't.

Yes, but also the case where it _can_.

>> Sure, we agree on this.  It is prudent to describe in the sound
>> node which DMA channel is associated with the sound thing though,
>> even if this is a SoC and all that.  It is just describing the
>> hardware; if your sound driver wants to hardcode the DMA stuff,
>> that's fine with me, but that's no reason to not describe the
>> relation in the device tree.
>
> Sure, I was never saying that there shouldn't be phandle linkage  
> from the sound node to the dma channel node.  I just don't want the  
> mem-to-mem driver to have to go to great lengths to figure out  
> whether it owns the channel.
>
> Phandle linkage the other way could work, though; if the channel  
> has a phandle set in an attached-device property,

I'm not sure that would cleanly work in all cases, I'll have to
think about it.

> then the mem-to-mem driver leaves it alone.

Yeah that would work.  There are much simpler solutions though.

>> I see no reason to pretend the non-mem-to-mem channels are somehow
>> different from the mem-to-mem channels.
>
> But they are different, just like an SCC UART is different from an  
> SCC ethernet, even though they both go through the SCC.

The SCC is the same; if there was a node describing just the SCC
part, like we have nodes describing _just_ the DMA channel part
here, it would be the same situation.


Segher




More information about the Linuxppc-dev mailing list