Há um erro no mapa de registro no capítulo MDIO Core descrito na tabela 13-3 na página 13-5 no seguinte documento:
Guia do usuário de IP periférico embarcado
Na tabela, é indicado que o deslocamento de endereço para MDIO_DEVAD, MDIO_PRTAD e MDIO_REGAD é 0x20, e 0x21 deve ser usado para MDIO_ACCESS. No entanto, eles são trocados no documento e na verdade ele deve ter lido 0x21 e 0x20 respectivamente.
NOTA: os deslocamentos de endereço de registro especificados (0x20 e 0x21) são de fato endereços de palavras e os endereços de byte correspondentes seriam 0x80 e 0x84 respectivamente.
Acesso de gravação
O acesso de gravação a um PHY externo pode ser feito usando a interface MDIO da seguinte forma:
- Execute uma gravação mestre Avalon®-MM nos registros do núcleo MDIO no endereço offset 0x21, especificando o endereço do dispositivo PHY externo (MDIO_DEVAD), endereço de porta (MDIO_PRTAD) e endereço de registro (MDIO_REGAD).
- Eme uma Avalon-MM mestre dos dados de 32 bits no MDIO_ACCESS de deslocamento de registro 0x20.
O que acontece no núcleo MDIO?
Quando os dados são colocados no registro MDIO_ACCESS, o núcleo MDIO inicia a geração de quadros MDIO WRITE que contêm as informações fornecidas nos registros em offset 0x20 e 0x21. O quadro será então transferido para o registro PHY de destino, do qual o endereço é especificado no MDIO_REGAD (bits [31:16] do registro do núcleo MDIO no deslocamento 0x21).
Acesso de leitura
O acesso de leitura de um PHY externo pode ser feito usando a interface MDIO da seguinte forma:
- Execute uma gravação mestre Avalon-MM nos registros do núcleo MDIO no endereço offset 0x21, especificando o endereço do dispositivo PHY externo (MDIO_DEVAD), endereço de porta (MDIO_PRTAD) e endereço de registro (MDIO_REGAD).
- Eme uma Avalon-MM de leitura mestre do registro de MDIO_ACCESS de 32 bits em offset 0x20.
O que acontece no núcleo MDIO?
Quando um acesso de leitura ao registro de MDIO_ACCESS é emitido, o núcleo MDIO inicia a geração de um quadro de LEITURA MDIO que contém as informações fornecidas nos registros no offset 0x21. Como resposta a este comando READ sobre MDIO, o PHY externo fornece o valor do registro designado de volta para o núcleo MDIO. Este valor é carregado no registro MDIO_ACCESS no núcleo MDIO em deslocamento 0x20. Assim, parece que estávamos lendo o registro local Avalon-MM em offset 0x20.
Este problema afeta o fluxo do MegaWizard e® do SOPC Builder.