ID de l'article: 000088369 Type de contenu: Dépannage Dernière révision: 13/04/2023

Pourquoi les plus faibles échouent-ils lorsque test_buf_size est remplacé par une valeur supérieure lorsque Intel® Stratix® FPGA SoC 10 ou Intel Agilex® 7 FPGA SoC est utilisée ?

Environnement

    Intel® Quartus® Prime Pro Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descriptif

Lorsque vous exécutez dmatest pour DMAC dans Intel® Stratix® FPGA SoC 10 ou Intel Agilex® FPGA SoC 7, il est possible que vous trouviez l’erreur suivante lors de la modification du test_buf_size vers une valeur supérieure (la valeur par défaut de test_buf_size est de 16 Ko) :

root@agilex:~# > /sys/module/dmatest/parameters/run

[149.931113] plus dmatest : aucun canal configuré, continuez avec les

[ 149.937236] plus dmatest : Ajout de 1 thread à l’aide de dma0chan0

[ 149.942349] dmatest : a commencé 1 threads à l’aide de dma0chan0

root@agilex:~# [ 149.963288] dma-pl330 ffda0000.pdma : swiotlb buffer est complet (sz : 2097152 octets), total 32768 (emplacements), utilisé 1024 (emplacements)

[ 149.974096] dma-pl330 ffda0000.pdma : dépassement 0x00000003ebc00000+2097152 du masque DMA masque ffffffff bus masque 0

[ 149.983622] ------------ [ coupé ici ] ------------

Résolution

La cause principale est que la largeur d’adresse DMAC 330 n’est que de 32 bits ; la taille de la mémoire tampon par défaut SWIOTLB n’est pas suffisante pour que DMAC 330 accède à toute la gamme de DDR.

Pour contourner ce problème, vous pouvez utiliser une des solutions suivantes :

  1. Configurer Linux n’utilisera que les 2 premiers Go de DDR ; DMAC peut accéder à la plage de mémoire de 2 Go avec une adresse largeur de 32 bits afin que la mémoire tampon SWIOTLB n’est pas nécessaire pour augmenter.
  2. Modifiez la source du noyau et la ligne de commande U-boot pour agrandir la mémoire tampon SWIOTLB :

Dans /include/linux/swiotlb.h, changez de IO_TLB_SEGSIZE à un plus grand nombre (devrait être une puissance de 2) ; par exemple, #define IO_TLB_SEGSIZE 1024

Modifiez l’environnement U-boot pour ajouter de la valeur swiotlb personnalisée ; par exemple, setenv bootargs earlycon console=ttyPS0,115200 swiotlb=32768

Produits associés

Cet article concerne 2 produits

FPGA et FPGA SoC Intel® Agilex™ 7
FPGA et FPGA SoC Intel® Stratix® 10

1

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.