2017-05-26 8 views
2
  1. Comme mentionné ci-dessus, quelle est la différence entre un moteur et un dma dma-contrôleur (sur le focus sur linux)?Quelle est la différence entre DMA-Engine et DMA-Controller?

  2. Quand ne vient en place le moteur dma linux? S'agit-il d'un appareil spécial ou fait-il toujours partie de tous les périphériques périphériques qui supportent dma?

  3. Lorsque vous parcourez la source linux, je trouve le ste_dma40.c du pilote. Comment un pilote utilise ce moteur?

+1

1. Parlez-vous d'IP matérielles ou de termes Linux? 2. Même question 3. Il est utilisé via 'framework DMAengine'. Il suffit de lire * Documentation/dmaengine/* pour plus d'informations. – 0andriy

Répondre

2

DMA - Accès direct à la mémoire. Le fonctionnement de votre pilote lisant ou écrivant à partir de/vers votre mémoire HW sans que le processeur ne soit impliqué (le libérant pour faire autre chose).

Contrôleur DMA - la lecture et l'écriture ne peuvent pas être effectuées par magie. Si le CPU ne le fait pas, nous avons besoin d'un autre HW pour le faire. Il y a plusieurs années (à l'époque de l'ISA/EISA), il était courant d'utiliser un HW partagé sur la carte mère qui effectuait cette opération. Au cours des dernières années, chaque HW a son propre mécanisme DMA HW. Mais dans tous les cas, ce matériel spécifique reçoit l'adresse source et l'adresse de destination et transmet les données. Habituellement, déclencher une interruption lorsque vous avez terminé. Moteur DMA - Maintenant, ici, je ne suis pas sûr de ce que vous voulez dire. Je crois que vous faites probablement référence au côté SW qui gère le DMA. DMA est un peu plus compliqué que d'habitude car toutes les mémoires SRC et DST doivent être physiquement présentes à tout moment pendant le fonctionnement DMA. Si l'adresse DST est échangée sur le disque, le HW écrira à une mauvaise adresse et le système tombera en panne. Cet aspect et d'autres aspects de DMA sont gérés par le pilote avec des sections de code que vous appelez probablement le "moteur DMA"

* Une autre interprétation de ce qu'est un 'moteur DMA' peut être une partie du code de Firmware (ou HW) qui gère le contrôleur DMA HW du côté HW.