NXP i.MX SoC Family/i.MX BSP Porting Guide

i.MX BSP Porting Guide - Porting Ethernet

까마귀75 2022. 7. 8. 14:29
728x90
반응형
정보
IMXBSPPG

Rev. LF5.15.5_1.0.0, 31 March 2022를 기준으로 작성

 

Chapter 18 Porting Ethernet

18.1 Introduction

이 장에서는 Ethernet 컨트롤러 드라이버를 i.MX 6이나 i.MX 7 프로세서에 포팅하는 방법을 설명한다.

 

i.MX FEC 표준 드라이버를 사용하면 포팅이 간단해진다. 포팅은 아래의 세 가지 영역을 다루어야 한다 :

  • 핀 구성
  • 소스 코드
  • Ethernet 연결 구성

18.1.1 Pin configuration

Ethernet ControllerRMII(reduced media independent interface), MII(media independent interface), 4비트 RGMII의 세가지 표준 미디어 물리적 인터페이스를 지원한다.

 

또한, Ethernet Controller는 외부 Ethernet 트랜시버에 연결하기 위한 다양한 표준 MAC-PHY(물지적) 인터페이스에 대한 지원을 포함한다. i.MX Ethernet  Controller10/100 Mbps MII10/100 Mbps RMII를 지원한다. i.MX 6Dual/6Quad/6Solo/6DualLite/6SoloX FEC125MHz에서 작동하는 4비트 RGMII를 사용하는 1000 Mbps RGMII도 지원한다.

 

디바이스 기능에 대한 간략한 개요가 여기에 제공된다. 자세한 내용은 관련 Applications Processor Reference ManualEthernet 장을 참조한다. 

 

MII 모드는 IEEE 802.3 표준에 의해 정의된 18개의 신호가 있고 EMAC에서 지원된다. MII, RMII, RGMII 모드는 18개 신호의 하위 집합을 사용한다. 이러한 신호는 아래 테이블에 나열되어 있다.

Table 8. Pin usage in MII RMII and RGMII modes

Direction EMAC pin name MII usage RMII usage RGMII usage
In/Out FEC_MDIO 관리 데이터 입/출력
Out FEC_MDC 관리 데이터 Clock 범용 출력 관리 데이터 Clock
Out FEC_TXD[0] 데이터 출력, bit 0
Out FEC_TXD[1] 데이터 출력, bit 1
Out FEC_TXD[2] 데이터 출력, bit 2 Not Used 데이터 출력, bit 2
Out FEC_TXD[3] 데이터 출력, bit 3 Not Used 데이터 출력, bit 3
Out FEC_TX_EN 전송 활성화
Out FEC_TX_ER 전송 에러 Not Used Not Used
In FEC_CRS Carrier Sense Not Used Not Used
In FEC_COL Collision Not Used Not Used
In FEC_TX_CLK 전송 Clock Not Used Synchronous Clock 레퍼런스 (REF_CLK, PHY에서 연결할 수 있음.)
In FEC_RX_ER 수신 에러 수신 에러 Not Used
In FEC_RX_CLK 수신 Clock Not Used Synchronous Clock 레퍼런스 (REF_CLK, PHY에서 연결할 수 있음.)
In FEC_RX_DV 유효한 데이터 수신 유효한 데이터 수신과 CRS 생성  FEC_RX_CLK의 하강 에지에서 RXDV XOR RXERR 
In FEC_RXD[0] 데이터 입력, bit 0
In FEC_RXD[1] 데이터 입력, bit 1
In FEC_RXD[2] 데이터 입력, bit 2 Not Used 데이터 입력, bit 2
In FEC_RXD[3] 데이터 입력, bit 3 Not Used 데이터 입력, bit 3

i.MX 6은 물리적 I/O 핀보다 기능이 더 많기 때문에, I/O 핀 멀티플렉싱을 사용한다.

 

모든 모듈에는 특정 패드 설정이 필요하다. 각 패드에는 ALT 모드라고 하는 최대 8개의 muxing 옵션이 있다. 자세한 설명은 SoC Application Processor Reference ManualIOMUX 장을 참조한다.

참고
외부 Ethernet PHY가 있는 디자인에서는 물리적 Clock을 활성화하기 전에 Ethernet PHY를 리셋하기 위해 간단하게 GPIO 구성된 외부 핀이 필요할 수 있다. 그렇지 않으면, 일부 PHY는 정상적으로 작동하지 않는다.

 

18.1.2 Ethernet configuration

이 섹션에서는 Ethernet 드라이버에서 브링업 문제에 대해 설명한다. Ethernet MAC 구성과 전이중(full duplex) 흐름제어 사용에 대한 자세한 내용은 SoC Applications Processor References ManualEthernet 장을 확인한다.

 

Ethernet 드라이버를 브링업하는 동안 아래 사항에 유의한다.

  • MAC에서 사용하는 모든 I/O 핀을 dts 파일에 올바르게 구성한다.
  • 물리적 입력 Clock과 전원을 확인하고, Clock과 전원 입력이 정상이면 물리적 LED1LED2가 켜진다.
  • MAC tx_clk가 올바른 Clock 입력을 가지는지 확인한다. 그렇지 않으면 MAC는 작동하지 않는다.
  • MAC 주소가 설정되고 유효한지 확인한다.

기본적으로 Ethernet 드라이버는 dst 파일의 Ethernet 노드 속성 "local-mac-address"에서 MAC 주소를 가져온다. dts에 속성이 없으면, 드라이버는 fuse에서 MAC 주소를 가져온다. fuseMAC 주소를 굽지 않으면, 드라이버는 부트로더가 설정한 이더넷 레지스터에서 MAC 주소를 가져온다. 합법적인 MAC 주소가 없으면, MAC이 오작동한다. 이 예에서는 bootargs에서 "fec.macaddr=0x00,0x01,0x02,0x03,0x04,0x05"와 같이 커널를 위해 U-Boot 명령어 라인에서 MAC 주소를 추가한다.

 

Ethernet 드라이버와 하드웨어는 Ethernet auto-negotiation을 위한 IEEE 표준을 준수하도록 디자인되어 있다.

 

 

bring-up (브링업) : 기르다, 불러오다, 하드웨어에서는 초기 상태에서 동작 가능한 상태로 만드는 과정을 지칭한다. 드라이버 브링업이라 하면, 드라이버를 만들어 기본 동작이 이루어지는 상태까지의 작업이다.

 

728x90
반응형