다음 문서의 13-5페이지 표 13-3에 설명된 MDIO Core 장의 레지스터 맵에 오류가 있습니다.
표에는 MDIO_DEVAD, MDIO_PRTAD 및 MDIO_REGAD에 대한 주소 오프셋이 0x20되며 MDIO_ACCESS에는 0x21 사용해야 한다고 명시되어 있습니다. 그러나 문서에서 서로 바뀔 수 있으며 실제로 각각 0x21과 0x20 읽어야 합니다.
참고: 지정된 레지스터 주소 오프셋(0x20 및 0x21)은 실제로 워드 주소이며 해당 바이트 주소는 각각 0x80 및 0x84입니다.
쓰기 권한
외부 PHY에 대한 쓰기 액세스는 다음과 같이 MDIO 인터페이스를 사용하여 수행할 수 있습니다.
- 외부 PHY 장치 주소(MDIO_DEVAD), 포트 주소(MDIO_PRTAD) 및 레지스터 주소(MDIO_REGAD)를 지정하여 주소 오프셋 0x21에서 MDIO 코어 레지스터에 Avalon®MM 마스터 쓰기를 수행합니다.
- MDIO_ACCESS 레지스터 오프셋 0x20에 32비트 데이터의 Avalon MM 마스터 쓰기를 실행합니다.
MDIO 코어에서는 어떤 일이 발생합니까?
데이터가 MDIO_ACCESS 레지스터에 배치되면 MDIO 코어는 오프셋 0x20 및 0x21의 레지스터에 제공된 정보가 포함된 MDIO WRITE 프레임의 생성을 시작합니다. 그런 다음 프레임은 대상 PHY 레지스터로 전송되며, 그 주소는 오프셋 0x21에 있는 MDIO 코어 레지스터의 MDIO_REGAD(비트 [31:16])에 지정됩니다.
읽기 액세스
외부 PHY에서 읽기 액세스는 다음과 같이 MDIO 인터페이스를 사용하여 수행할 수 있습니다.
- 외부 PHY 장치 주소(MDIO_DEVAD), 포트 주소(MDIO_PRTAD) 및 레지스터 주소(MDIO_REGAD)를 지정하여 주소 오프셋 0x21에서 MDIO 코어 레지스터에 Avalon MM 마스터 쓰기를 수행합니다.
- 오프셋 0x20에서 32비트 MDIO_ACCESS 레지스터의 Avalon MM 마스터 읽기를 실행합니다.
MDIO 코어에서는 어떤 일이 발생합니까?
MDIO_ACCESS 레지스터에 대한 읽기 액세스 권한이 발급되면 MDIO 코어는 오프셋 0x21의 레지스터에 제공된 정보가 포함된 MDIO 읽기 프레임의 생성을 시작합니다. MDIO를 통한 이 READ 명령에 대한 응답으로 외부 PHY는 지정된 레지스터의 값을 MDIO 코어에 다시 제공합니다. 이 값은 오프셋 0x20에서 MDIO 코어의 MDIO_ACCESS 레지스터에 로드됩니다. 따라서 오프셋 0x20에서 로컬 Avalon-MM 레지스터를 읽는 것처럼 보입니다.
이 문제는 MegaWizard® 및 SOPC 빌더 흐름 모두에 영향을 줍니다.