Une erreur s’affiche dans la carte de registre dans le chapitre Cœur du MDIO décrit dans le tableau 13-3 de la page 13-5 du document suivant :
Guide de l’utilisateur de l’IP pour périphériques embarqués
Dans le tableau, il est indiqué que le décalage d’adresse pour les MDIO_DEVAD, les MDIO_PRTAD et les MDIO_REGAD est 0x20 et 0x21 doit être utilisé pour les MDIO_ACCESS. Cependant, ils sont échangés dans le document et en fait, il devrait avoir lu 0x21 et 0x20 respectivement.
REMARQUE : les décalages d’adresses de registre spécifiés (0x20 et 0x21) sont en fait des adresses word et les adresses octets correspondantes seraient respectivement 0x80 et 0x84.
Accès à l’écriture
L’accès en écriture à un PHY externe peut être effectué en utilisant l’interface MDIO comme suit :
- Réalisez une écriture du maître Avalon® MM sur les registres du cœur du MDIO à l'0x21 de décalage d’adresse, en spécifiant l’adresse de périphérique PHY externe (MDIO_DEVAD), l’adresse de port (MDIO_PRTAD) et l’adresse de registre (MDIO_REGAD).
- Exécutez une écriture maître Avalon MM des données 32 bits dans le 0x20 de décalage du registre MDIO_ACCESS.
Que se passe-t-il dans le cœur du MDIO ?
Une fois que les données sont déposées dans le registre MDIO_ACCESS, le cœur MDIO démarre la génération d’un trameS MDIO WRITE qui contient les informations fournies dans les registres à des 0x20 de décalage et à 0x21. La trame sera ensuite transférée dans le registre PHY cible, dont l’adresse est spécifiée dans le MDIO_REGAD (bits [31:16] du registre du cœur MDIO à l'0x21 de décalage).
Accès à la lecture
L’accès à la lecture à partir d’un PHY externe peut être effectué à l’aide de l’interface MDIO comme suit :
- Réalisez une écriture maître Avalon MM sur les registres du cœur du MDIO à l'0x21 de décalage d’adresse, en spécifiant l’adresse de périphérique PHY externe (MDIO_DEVAD), l’adresse de port (MDIO_PRTAD) et l’adresse de registre (MDIO_REGAD).
- Exécutez une lecture maître Avalon MM du registre MDIO_ACCESS 32 bits à l'0x20 de décalage.
Que se passe-t-il dans le cœur du MDIO ?
Lorsqu’un accès en lecture au registre MDIO_ACCESS est fourni, le cœur MDIO démarre la génération d’une trame MDIO READ qui contient les informations fournies dans les registres à l'0x21 de décalage. En réponse à cette commande READ sur MDIO, le PHY externe fournit la valeur du registre désigné au cœur du MDIO. Cette valeur est chargée dans le registre MDIO_ACCESS dans le cœur MDIO à l'0x20 de décalage. Par conséquent, il semble que nous lisant le registre local Avalon-MM à l'0x20 de décalage.
Ce problème affecte à la fois le flux MegaWizard® et le flux SOPC Builder.