6.2 Display Overview
6.2.1 Introduction
i.MX Display 시스템은 디스플레이 컨트롤러를 사용하여 인터페이스와 그래픽 프로세싱을 표시하기 위한 비디오 데이터 이동을 최적화한다. 각 디스플레이 컨트롤러는 Linux 드라이버로 프레임버퍼나 DRM 중 하나의 디스플레이 프레임워크로 구현된다. 어떤 경우에는 디스플레이 컨트롤러에 보안 비디오 파이프라인을 보장하는 인증이 포함된다. 다른 경우에는 디스플레이 컨트롤러에 스케일링, 디인터레이싱, 타일링 그리고 전송 중 색상 변환을 위한 추가 기능이 포함된다. 멀티 디스플레이를 지원하는 i.MX 8의 경우, 함께 작동하는 두 개의 컨트롤러를 사용하여 수행되고 있다. 이 장에서는 i.MX 디스플레이 컨트롤러와 인터페이스에 대한 높은 수준의 개요 및 프레임 버퍼와 DRM 디스플레이 드라이버 사이의 차이점을 제공한다. 아래 디스플레이 컨트롤가 사용되고 있다.
- IPU (6.3.2)
- PXP (6.3.3)
- eLCDIF (6.3.4)
- DPU (6.3.1)
- DCSS (6.3.5) - i.MX 8M 전용
디스플레이 인터페이스는 디스플레이 컨트롤러, 디스플레이 패널과 경우에 따라 인코더 디스플레이 브리지에 연결된다. 아래 디스플레이 인터페이스가 지원되고 있다.
- EPDC - EInk 디스플레이 지원
- Parallel - LCD 디스플레이 지원
- LVDS - LVDS 디스플레이 지원
- HDMI - 온칩과 외부 HDMI 모두 지원
- Display Port - eDP 패널 지원
- MIPI-DSI - MIPI 디스플레이 지원
참고
아날로그 디스플레이는 더 이상 지원되지 않는다. 아날로그 인터페이스는 i.MX 37과 i.MX 5 제품군에서 사용되었다.
아래 HDMI 디스플레이 브리지/인코더가 지원된다.
- Parallel에서 HDMI - Silicon Image si902x 사용
- LVDS에서 HDMI - ITE it6263 사용
- MIPI-DSI에서 HDMI - Analog Devices adv7535 사용
각 SoC는 서로 다른 디스플레이 기능을 지원한다. 이들 중 일부는 arch/arm/boot/dts와 arch/arm64/boot/dts에 있는 디바이스 트리에서 구성된다. 아래의 자세한 내용은 하드웨어 레퍼런스 매뉴얼을 참조한다.
- Throughput (처리량)
- 출력 수
- 픽셀 클럭 속도
- 최대 디스플레이 수와 해당 해상도
- 60Hz에서 해상도
- Interface (인터페이스)
- Parallel - 포트 수와 비트 크기
- LVDS - 레인 수와 채널
- MIPI-DSI - 포트 수, 레인 채널과 속도
- Processing (프로세싱)
- 고해상도 디스플레이를 포함하는 실시간 결합
- 오프라인 결합 속도
6.2.2 Frame Buffer
프레임 버퍼 드라이버는 i.MX 6과 i.MX 7에서 지원되고, i.MX 8에서는 지원되지 않는다. 프레임 버퍼 드라이버는 drivers/video/fbdev에서 imxfb 드라이버를 사용하여 지원되고 있다. 프레임 버퍼 커널 fbdev 구조체는 여기나 kernel.org의 여기에 정의되어 있다. i.MX V4LS에 대한 자세한 내용은 V4L2 Chapter(6.5)을 참조한다.
패널은 video/fbdev/mxc 폴더에 있는 TRULY와 EInk 패널용 프레임 버퍼 드라이버로 지원된다. imx_v7_defconfig에서 PANEL을 검색하여 지원되는 패널을 참조한다. Trully 패널은 MIPI DSI 인터페이스만 지원되고 있다. Eink 패널은 EPDC 인터페이스만 지원되고 있다.
6.2.3 Direct Rendering Model (DRM)
Direct Rendering Model(DRM)은 i.MX에 사용하는 새로운 디스플레이 드라이버이다. i.MX DRM 드라이버는 drivers/gpu/drm/imx에 있다. 다른 컴포넌트로는 GPU와 DCSS 같은 DRM 인터페이스가 있다. DRM 프레임워크는 kernel.org의 여기에 문서화되어 있다.
i.MX DRM 드라이버는 아래 드라이버로 구현된다.
- 하드웨어 라이브러리 지원 파일
- Core DRM 드라이버
- 하드웨어 종속 DRM 드라이버
- hdp HDMI/Display Port를 지원하는 HDMI DRM 드라이버
DRM 드라이버는 i.MX 8QuadMax와 i.MX 8QuadXPlus에서는 DPU를 사용하고, i.MX 8M Quad와 i.MX 8M Mini에서는 LCDIF를 사용하고, i.MX 8ULP에서는 DCNANO를 사용하고, 마지막으로 i.MX 8M Plus와 i.MX 93에서는 LCDIFv3를 사용한다.
i.MX DRM 프레임워크에는 driver/gpu/panel에 있는 패널 드라이버도 포함되어 있다. 지원되는 DRM 패널에는 Simple 패널, Raydium RM67191, Raydium RM68200 그리고 Raydium RM67199가 있다.
6.2.4 Display Resolution
디스플레이 해상도 계산에는 아래 인수가 사용된다.
- 프레임 너비
- 프레임 높이
- 프레임 속도(fps)
- Blanking Interval(귀선 간격) - 디스플레이의 DS에서 최대 35%(1.35)까지 제공 - 최소값 사용
픽셀 클럭[MHz]은 프레임 너비 x 프레임 높이 x 프레임 속도 x Blanking Interval에 따라 계산되고 있다.
고려해야 할 사항은 아래와 같다:
- 데이터 형식 (클럭당 픽셀)
- 디스플레이 소스 클럭 (DI#_CLK_EXT 비트)
- 디스플레이 컨트롤러(DC)의 부하
6.2.5 Authentication
디스플레이 인증은 디스플레이 컨텐츠가 손상되지 않았다는 것을 보장하기 위해 하드웨어 처리를 허용한다. 이는 하드웨어 인증을 사용하는 디스플레이 인증 CRC로 수행된다. 이 하드웨어는 i.MX 6의 프레임 버퍼 디스플레이 프레임워크로 통합된 DCIC와 i.MX 8용 DRM 디스플레이 프레임워크에서 구현된 DPU이다.
디스플레이 인증 CRC는 다음 SoC에서 지원되고 있다.
- i.MX 6 Solox는 한 개의 디스플레이에 DCIC를 사용하는 인증을 지원한다.
- i.MX 6 QuadPlus/Quad/Dual은 두 개의 디스플레이에 DCIC를 사용하는 인증을 지원한다.
- i.MX 8QuadXPlus는 DPU를 사용하여 두 개의 디스플레이를 인증할 수 있다.
- i.MX 8QuadMax는 DPU를 사용하여 네 개의 디스플레이를 인증할 수 있다.
6.2.6 Tiling
하드웨어를 통한 타일링은 최적화된 비디오 데이터 디스플레이를 제공한다. 이는 다른 하드웨어 블록으로 구현된다. 최신 기능은 i.MX 6 QuadPlus, i.MX 8QuadMax, i.MX 8QuadXPlus의 성능을 향상시키는 Display Prefetch Resolve(DPR)이다.
아래에서 타일 지원이 활성화되어 있다.
- i.MX 6Quad/Dual은 Video Data Order Adapter(VDOA)를 사용하는 타일링을 지원한다.
- i.MX 6QuadPlus는 VDOA와 Display Prefetch Resolve(DPR) version1 타일링 모두를 지원한다.
- i.MX 8QuadXPlus와 i.MX 8QuadMax는 Display Prefetch Resolve (DPR) version2를 사용하는 타일링을 지원한다.