Post qui fait suite à un post sur forum.general.
Bonjour
Mon problème consiste à réaliser un driver pour une carte DSP PCI avec un acces DMA. Je dispose d'un driver minimal implementé en mode user par un collègue qui ne permet pas d'acces DMA.
Ma question est de savoir si le mode user permet un tel acces.
Un reponse m'a été faites disant qu' en mode user la memoire n'est pas accessible a une adresse fixe et de ce fait rend le DMA impossible.
Pourtant mes recherches ont permis de trouver des documents qui admette un acces DMA en mode user avec l'utilisation de fonctions différentes. Voilà le résumé :
En mode noyau, l'implementation du DMA utilise :
kmalloc, get_free_pages,virt_to_bus
Alors qu'en mode user :
memalign, mlock, recherche dans /dev/mem
Est ce que cet analyse vous semble plausible ??
julien
# Mémoire physique et mémoire virtuelle
Posté par galactikboulay . Évalué à 2.
J'avais vu un jour un patch pour gérer du PCI en userland et aussi des IRQ (sauf que les shared IRQ c'était pas supporté), et je crois pas que le DMA était géré. Je retrouve pas le nom là, même avec de la recherche google. Mais bon, ça me paraissait ultra-crade personnellement.
Mon conseil: fais ça sous forme de module, tu te simplifieras grandement la vie.
[^] # Re: Mémoire physique et mémoire virtuelle
Posté par rouliaan . Évalué à 1.
Il faudra donc que je recompile le noyau ??
Est ce que tu aurais sous la main du code illustrant ce genre de driver ?
[^] # Re: Mémoire physique et mémoire virtuelle
Posté par rouliaan . Évalué à 1.
Il faudra donc que je recompile le noyau ??
Est ce que tu aurais sous la main du code illustrant ce genre de driver ?
[^] # Re: Mémoire physique et mémoire virtuelle
Posté par pspb . Évalué à 2.
Pour charger ton driver il suffira de taper #modprobe tondriverson .
J'ai fait pareil quand j'ai installé fusion (téléchargé du site DirectFB) .
[^] # Re: Mémoire physique et mémoire virtuelle
Posté par rouliaan . Évalué à 1.
Mon problème pour les nouveau venu sur le post est :
Je souhaite faire du Bus mastering avec une carte PCI DSP qui n'a qu'un simple driver en mode utilisateur réalisé par un collègue. Je vais donc updater ce driver pour ajouter la fonction Bus mastering.
Pour ça j'aimerai en savoir plus sur le mapping entre la mémoire physique et la mémoire virtuelle en bus mastering. Est ce que quelqu'un sait si les requetes de lecture et d'écriture de la part du peripherique se font sur des memoires physiques ou sur des memoires virtuelles ?
D'une manière générale comment ca se passe ?
julien.
[^] # Re: Mémoire physique et mémoire virtuelle
Posté par rouliaan . Évalué à 1.
Mon problème pour les nouveau venu sur le post est :
Je souhaite faire du Bus mastering avec une carte PCI DSP qui n'a qu'un simple driver en mode utilisateur réalisé par un collègue. Je vais donc updater ce driver pour ajouter la fonction Bus mastering.
Pour ça j'aimerai en savoir plus sur le mapping entre la mémoire physique et la mémoire virtuelle en bus mastering. Est ce que quelqu'un sait si les requetes de lecture et d'écriture de la part du peripherique se font sur des memoires physiques ou sur des memoires virtuelles ?
D'une manière générale comment ca se passe ?
julien.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.