정보
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 Controller는 RMII(reduced media independent interface), MII(media independent interface), 4비트 RGMII의 세가지 표준 미디어 물리적 인터페이스를 지원한다.
또한, Ethernet Controller는 외부 Ethernet 트랜시버에 연결하기 위한 다양한 표준 MAC-PHY(물지적) 인터페이스에 대한 지원을 포함한다. i.MX Ethernet Controller는 10/100 Mbps MII과 10/100 Mbps RMII를 지원한다. i.MX 6Dual/6Quad/6Solo/6DualLite/6SoloX FEC는 125MHz에서 작동하는 4비트 RGMII를 사용하는 1000 Mbps RGMII도 지원한다.
디바이스 기능에 대한 간략한 개요가 여기에 제공된다. 자세한 내용은 관련 Applications Processor Reference Manual의 Ethernet 장을 참조한다.
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 Manual의 IOMUX 장을 참조한다.
참고
외부 Ethernet PHY가 있는 디자인에서는 물리적 Clock을 활성화하기 전에 Ethernet PHY를 리셋하기 위해 간단하게 GPIO 구성된 외부 핀이 필요할 수 있다. 그렇지 않으면, 일부 PHY는 정상적으로 작동하지 않는다.
18.1.2 Ethernet configuration
이 섹션에서는 Ethernet 드라이버에서 브링업 문제에 대해 설명한다. Ethernet MAC 구성과 전이중(full duplex) 흐름제어 사용에 대한 자세한 내용은 SoC Applications Processor References Manual의 Ethernet 장을 확인한다.
Ethernet 드라이버를 브링업하는 동안 아래 사항에 유의한다.
- MAC에서 사용하는 모든 I/O 핀을 dts 파일에 올바르게 구성한다.
- 물리적 입력 Clock과 전원을 확인하고, Clock과 전원 입력이 정상이면 물리적 LED1과 LED2가 켜진다.
- MAC tx_clk가 올바른 Clock 입력을 가지는지 확인한다. 그렇지 않으면 MAC는 작동하지 않는다.
- MAC 주소가 설정되고 유효한지 확인한다.
기본적으로 Ethernet 드라이버는 dst 파일의 Ethernet 노드 속성 "local-mac-address"에서 MAC 주소를 가져온다. dts에 속성이 없으면, 드라이버는 fuse에서 MAC 주소를 가져온다. fuse가 MAC 주소를 굽지 않으면, 드라이버는 부트로더가 설정한 이더넷 레지스터에서 MAC 주소를 가져온다. 합법적인 MAC 주소가 없으면, MAC이 오작동한다. 이 예에서는 bootargs에서 "fec.macaddr=0x00,0x01,0x02,0x03,0x04,0x05"와 같이 커널를 위해 U-Boot 명령어 라인에서 MAC 주소를 추가한다.
Ethernet 드라이버와 하드웨어는 Ethernet auto-negotiation을 위한 IEEE 표준을 준수하도록 디자인되어 있다.
※ bring-up (브링업) : 기르다, 불러오다, 하드웨어에서는 초기 상태에서 동작 가능한 상태로 만드는 과정을 지칭한다. 드라이버 브링업이라 하면, 드라이버를 만들어 기본 동작이 이루어지는 상태까지의 작업이다.
'NXP i.MX SoC Family > i.MX BSP Porting Guide' 카테고리의 다른 글
i.MX Linux Reference Manual - Storage - MMC/SD/SDIO Host (0) | 2022.07.12 |
---|---|
i.MX BSP Porting Guide - Porting USB (0) | 2022.07.11 |
i.MX BSP Porting Guide - Porting HiFi 4 (0) | 2022.07.08 |
i.MX BSP Porting Guide - Porting Audio Codecs (0) | 2022.07.08 |
i.MX BSP Porting Guide - Supporting Cameras with CSI (0) | 2022.07.06 |