Skip to contentSkip to conversation

405 DMA api

DISCUSSION Armin Kuster 4 participants 5 messages Feb 24, 2002 – Feb 25, 2002

lore
Share & tools
lore
#0 lore raw

Hello,

I would like to have the 405 dma share the same dma api as the current pmac. I propose to make the asm/dma.h _generic_ and move all the power Mac unique stuff into a seperate file such as "pmac_dma.h". The dma.h would then be the gateway for other ppc archs by using "CONFIG_<arch>" to determine which hearder to pull in. I made the pmac_pma.h as the default. I have tested this on the walnut and can only compile for the pmac. I have included a patch and I would like some feedback and to have the pmac_dma verified.

files:
include/asm-ppc/dma.h <- generic defines and config selection
include/asm-ppc/pmac_dma.h <- most code from dma.h
include/asm-ppc/ppc405_dma.h <- changed func names arch/ppc/kernel/ppc405_dma.c <- changes to refect new header scheme

TIA
Armin

#1 lore raw
Quoted 2 lines · Armin Kuster

I would like to have the 405 dma share the same dma api as the current pmac.

Not a bad idea, since most DMA controllers are learning and becoming descriptor based. Please consider that DMA controllers, the devices to which they are connected, and the integration is going to be unique to the parts, boards and devices. Forcing this to be too generic will likely fail, make a mess of the software, and not benefit anyone.

Have fun!

	-- Dan

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

#2 lore raw
In reply to Armin Kuster
Quoted 12 lines

Hello,

I would like to have the 405 dma share the same dma api as the current pmac. I propose to make the asm/dma.h _generic_ and move all the power Mac unique stuff into a seperate file such as "pmac_dma.h". The dma.h would then be the gateway for other ppc archs by using "CONFIG_<arch>" to determine which hearder to pull in. I made the pmac_pma.h as the default. I have tested this on the walnut and can only compile for the pmac. I have included a patch and I would like some feedback and to have the pmac_dma verified.

Quoted 5 lines

files:
include/asm-ppc/dma.h <- generic defines and config selection
include/asm-ppc/pmac_dma.h <- most code from dma.h
include/asm-ppc/ppc405_dma.h <- changed func names arch/ppc/kernel/ppc405_dma.c <- changes to refect new header scheme

Well... except this isn't pmac dma. The pmac has a DBDMA controller which is much different from the legacy DMA controller used here. What you see in this dma.h file is, I bet, prep stuff.

Ben.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

#3 lore raw
Quoted 18 lines · Benjamin Herrenschmidt
Quoted 12 lines

Hello,

I would like to have the 405 dma share the same dma api as the current pmac. I propose to make the asm/dma.h _generic_ and move all the power Mac unique stuff into a seperate file such as "pmac_dma.h". The dma.h would then be the gateway for other ppc archs by using "CONFIG_<arch>" to determine which hearder to pull in. I made the pmac_pma.h as the default. I have tested this on the walnut and can only compile for the pmac. I have included a patch and I would like some feedback and to have the pmac_dma verified.

Quoted 5 lines

files:
include/asm-ppc/dma.h <- generic defines and config selection
include/asm-ppc/pmac_dma.h <- most code from dma.h
include/asm-ppc/ppc405_dma.h <- changed func names arch/ppc/kernel/ppc405_dma.c <- changes to refect new header scheme

Quoted 3 lines

Well... except this isn't pmac dma. The pmac has a DBDMA controller which is much different from the legacy DMA controller used here. What you see in this dma.h file is, I bet, prep stuff.

True. It´s the legacy ISA DMA controller which can be found on PreP and CHRP, almost always in the PCI-ISA bridge. However these are not all created equal: the one in the WinBond 83C553 in my MVME boards, which is almost identical to some Intel model (82378ZB), is actually capable of 32 bit addressing and can do descripto based scatter-gather DMA. However, since I never used anything that needed DMA on these boards (the floppy actually) I did not bother to improve the dma driver.

Some historical note: the 82378ZB, with its improved DMA engine, is AFAICS the only Intel PCI<->ISA bridge with enhanced DMA capabilities. Also AFAIR this chip was exactly the one specified in the PreP documentation, strangely enough, the 82378 production was stopped and the enhanced DMA capability disappeared from all later Intel PCI<->ISA bridge. My 82378ZB doc is from March 1996 BTW...

Regards,
Gabriel.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

#4 lore raw
Quoted 40 lines · Gabriel Paubert
Quoted 18 lines · Benjamin Herrenschmidt
Quoted 12 lines

Hello,

I would like to have the 405 dma share the same dma api as the current pmac. I propose to make the asm/dma.h _generic_ and move all the power Mac unique stuff into a seperate file such as "pmac_dma.h". The dma.h would then be the gateway for other ppc archs by using "CONFIG_<arch>" to determine which hearder to pull in. I made the pmac_pma.h as the default. I have tested this on the walnut and can only compile for the pmac. I have included a patch and I would like some feedback and to have the pmac_dma verified.

Quoted 5 lines

files:
include/asm-ppc/dma.h <- generic defines and config selection
include/asm-ppc/pmac_dma.h <- most code from dma.h
include/asm-ppc/ppc405_dma.h <- changed func names arch/ppc/kernel/ppc405_dma.c <- changes to refect new header scheme

Quoted 3 lines

Well... except this isn't pmac dma. The pmac has a DBDMA controller which is much different from the legacy DMA controller used here. What you see in this dma.h file is, I bet, prep stuff.

True. It´s the legacy ISA DMA controller which can be found on PreP and CHRP, almost always in the PCI-ISA bridge. However these are not all created equal: the one in the WinBond 83C553 in my MVME boards, which is almost identical to some Intel model (82378ZB), is actually capable of 32 bit addressing and can do descripto based scatter-gather DMA. However, since I never used anything that needed DMA on these boards (the floppy actually) I did not bother to improve the dma driver.

Some historical note: the 82378ZB, with its improved DMA engine, is AFAICS the only Intel PCI<->ISA bridge with enhanced DMA capabilities. Also AFAIR this chip was exactly the one specified in the PreP documentation, strangely enough, the 82378 production was stopped and the enhanced DMA capability disappeared from all later Intel PCI<->ISA bridge. My 82378ZB doc is from March 1996 BTW...

Quoted 2 lines

Regards,
Gabriel.

Ok ... thanks for the info. where do we go from here? Can it get push in after a better name is selected?

-- armin

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/