1.1 Overview
i.MX 제품군 Linux BSP(Board Support Package)는 i.MX 애플리케이션 프로세서에서 Linux Operation System (OS)를 지원한다.
이 소프트웨어 패키지의 용도는 직접회로(IC : Integrated Circuits) i.MX 제품군과 그것과 관련된 플랫폼에서 Linux OS를 지원하는 것이다. 표준 open-source Linux Kernel을 i.MX 하드웨어에 인터페이스하는 데 필요한 소프트웨어를 제공한다. 목표는 i.MX를 사용하는 고객이 Linux OS를 사용하는 i.MX 디바이스 기반의 제품을 빠르게 구축할 수 있도록 하는 것이다.
BSP는 플랫폼이나 제품을 참조한 구현이 아니다. 여기에는 제품에 필요한 모든 제품별 드라이버, 하드웨어 독립 소프트웨어 스택, GUI (Graphic User Interface) 컴포넌트, JVM (Jave Virtual Machine), 애플리케이션이 포함되어 있지 않다. 이들 중 일부는 기본 커널의 일부로 original open-source에서 사용 가능하다.
BSP는 실리콘(silicon) 검증에 사용하기 위한 것이 아니다. 이것이 역할을 할 수 있지만, BSP 기능과 BSP에서 실행되는 테스트는 기존의 실리콘 검증 테스트 제품군을 대체하기에 충분한 커버리지가 없다.
1.1.1 Software Base
i.MX BSP는 공식 Linux Kernel 웹사이트(www.kernel.org)의 Linux Kernel 버전 5.4.70을 기반으로 한다. NXP에서 제공하는 기능으로 향상된다.
Linux에서 Yocto Project 환경의 메뉴 구성을 사용하여 구성을 변경하려면, 다음과 같이 bitbake를 사용한다 :
bitbake linux-imx -c menuconfig
1.1.2 Features
아래 테이블은 특정 플랫폼에 대해 BSP가 지원하는 기능을 설명한다.
Table 1. BSP Supported Features
Feature | Description | Chapter Source | Applicable Platform |
Machine-Specific Layer | |||
MSL | MSL(Machine-Specific Layer)는 인터럽트, 타이머, 메모리 맵, GPIO/IOMUX, SPBA, SDMA를 지원한다.
|
Machine-Specific Layer (MSL) | All |
General Drivers | |||
Thermal Driver | Thermal 드라이버는 SoC를 보호하기 위해 특정 주파수에서 SoC의 온도를 모니터링한다. critical, hot, active의 세 가지 트립 포인트를 정의한다. | Thermal Driver | All |
OProfile | OProfile은 Linux 시스템용 system-wide 프로파일러로, 낮은 오버헤드로 실행중인 모든 코드를 프로파일링할 수 있다. | OProfile | All |
Pulse Width Modulator | PWM에는 16비트 카운터가 있으며 저장된 샘플 오디오 이미지에서 사운드를 생성하고 톤을 생성하도록 최적화되어 있다. | Pulse-Width Modulator (PWM) | All |
Sensors | 센서에는 accelerometer, ambient light, magnetometer 센서가 포함된다. | Sensors | All |
Watchdog | Watchdog Timer 모듈은 예기치 않은 중단이나 무한 루프 상황 또는 프로그램 오류로부터 탈출을 제공하여 시스템 오류에서 보호한다. | Watchdog | All |
DMA Engine | |||
SDMA API | SDMA(Smart Direct Memory Access) API 드라이버는 SDMA 하드웨어를 컨트롤하고, MCU, DSP, 주변 디바이스 사이에 데이터를 전송하기 위해 다른 드라이버에 API를 제공한다. | Smart Direct Memory Access(SDMA) API | All |
APBH-Bridge-DMA | AHB-to-APBH와 AHB-to-APBX DMA는 모두 구성가능한 DMA descript chain을 지원한다. | AHB-to-APBH Bridge with DMA(APBH-Bridge-DMA) | All |
Power Management Drivers | |||
Low-level Power Management | 저수준의 전원 관리 드라이버는 전원 요구 사항과 전원 절약을 충족하도록 하드웨어별로 작업을 구현한다. 드라이버 구현은 플랫폼마다 다른 경우가 많다. DPM 레이어에서 사용된다. | Low-level Power Management(PM) Driver | All |
Dynamic Bus Frequency | 버스 주파수 드라이버는 전력 소비를 개선하기 위해 다양한 시스템 주파수를 동적으로 관리한다. | Dynamic Bus Frequency Driver | i.MX 6, i.MX 7 |
CPU Freq | CPU 주파수 조정으로 CPU의 clock 속도를 변경할 수 있다. | CPUFreq | All |
PMIC PF Regulator | PF 레귤레이터 드라이버는 전원 공급 레귤레이터의 저수준 컨트롤, 전압 레벨 선택, 레귤레이터 활성화/비활성화를 제공한다. | PF_Regulator | All |
Anatop Regulator | Anatop 레귤레이터 드라이버는 전원 공급 레귤레이터의 저수준 컨트롤을 제공한다. | Anatop Regulator | i.MX 6, i.MX 7 |
Connectivity Drivers | |||
ENET 1588 Stack | IEEE 표준 1588에 따라 Precision Time Protocol(PTP) 구현. | Fast Ethernet Controller(FEC) Driver | All |
Fast Ethernet Controller | ENET 드라이버는 IEEE 802.3/Ethernet CSMA/CD 미디어 액세스 제어와 채널 인터페이스 기능 전체를 수행한다. | Fast Ethernet Controller(FEC) Driver | All |
FlexCAN | FlexCAN 드라이버는 CAN 메세지를 송수신하는 인터페이스를 제공한다. | FlexCAN Driver | i.MX 6Quad, i.MX 6Dual, i.MX 6DualLite, i.MX 6Solo, i.MX 6UltraLite, i.MX 6SoloX |
MediaLB | MediaLB는 MOST Network 데이터에 애플리케이션이 액세스하거나 다른 애플리케이션이 통신할 수 있도록 하는 on-PCB나 inter-chip 통신 버스이다. | MediaLB | i.MX 6SoloX, i.MX 6Quad, i.MX 6Dual |
PCIe | PCI Express 하드웨어 모듈은 Root Complex나 PCIe Endpoint로 작동하도록 구성할 수 있다. | PCIe | All |
Video | |||
Capture | 카메라와 캡쳐 인터페이스를 위한 카메라 개요 | Capture Overview | All |
Display | 디스플레이 개요 | Display Overview | All |
VPU | VPU(Video Processing Unit)은 다양한 비디오 포맷의 디코딩/인코딩을 수행할 수 있는 multistandard 비디오 인코더/디코더이다. | Video Processing Unit(VPU) Driver | i.MX 6QuadPlus/Quad/Dual/Solo, i.MX 8 |
JPEGENC/JPEGDEC | JPEG-E-X와 JPEF-D-X core 는 독립 실행형 8비트 12비트 고성능 JPEG 인코더이고 각각 스틸 이미지와 비디오 압축/압축 해제 애플리케이션용 디코더이다. | JPEG Encoder and Decoder | i.MX 8QuadXPlus, 8QuadMax |
Audio Drivers | |||
ALSA Sound | ALSA(Advanced Linux Sound Architecture)는 사운드 드라이버이다. 이는 오디오 재생 및 녹음 기능의 수행 방법을 ALSA와 OSS 호환 애플리케이션에 제공한다. | ALSA Sound Driver | All |
ASRC | ASRC(Asynchronous Sample Rate Converter) 드라이버는 비동기 샘플레이트 변환 모듈에 액세스하는 인터페이스를 제공한다. | Asynchronous Sample Rate Converter(ASRC) | All |
S/PDIF | S/PDIF 드라이버는 Linux ALSA 서브시스템에서 설계되었다. Tx용 재생 디바이스 하나와 Rx용 캡쳐 디바이스 하나를 구현한다. | The Sony/Philips Digital Interface(S/PDIF) Driver | All |
Storage MTD Drivers | |||
SPI NOR MTD | SPI NOR MTD 드라이버는 SPI 인터페이스를 사용하여 Atmel data Flash를 지원한다, | SPI NOR Flash Memory Technology Device(MTD) Driver | All |
NAND MTD | NAND MTD 드라이버는 통합 NAND 컨트롤러와 인터페이스한다. 이는 UBIFS, CRAMFS, JFFS2UBI, UBIFSCRAMFS, JFFS2 파일 시스템을 지원한다. | NAND GPMI Flash Driver | i.MX 6Quad, i.MX 6Dual, i.MX 6DualLite, i.MX 6Solo, i.MX 6UltraLite, i.MX 7Dual |
SATA | SATA AHCI 드라이버는 Linux Kernel의 블록 디바이스 인프라의 LIBATA 레이어을 기반으로 한다. | SATA Driver | i.MX 6QuadPlus, i.MX 6Quad, i.MX 6Dual, i.MX 8QuadMax, i.MX 8QuadXPlus |
Bus Drivers | |||
I2C | 저전력 I2C 버스 드라이버는 I2C 버스와 인터페이스하여 I2C 버스를 통해 데이터를 전송한다. | Inter-IC (I2C) Driver | All |
eCSPI | 저수준 ECSPI(Enhanced Configurable Serial Peripheral Interface) 드라이버는 두 ECSPI 모듈에 대한 사용자 지정 커널 영역 API 인터페이스를 제공한다. | Enhanced Configurable Serial Peripheral Interface (ECSPI) Driver | All |
MMC/SD/SDIO/uSDHC | MMC/SD/SDIO 호스트 드라이버는 eSDHC에 대한 표준 Linux 드라이버 인터페이스를 구현한다. | MMC/SD/SDIO Host Driver | All |
Connectivity Drivers | |||
UART | UART(Universal Asynchronous Receiver/Transmitter) 드라이버는 모든 UART 포트로 시리얼 드라이버 API를 인터페이스한다. | Universal Asynchronous Receiver/Transmitter (UART) Driver | All |
USB | USB 드라이버는 ARC USB-OTG 컨트롤러와 인터페이스한다. | CHIPIDEA USB | All |
'NXP i.MX SoC Family > i.MX Linux Reference Manual' 카테고리의 다른 글
i.MX Linux Reference Manual - Introduction - References (0) | 2022.06.24 |
---|---|
i.MX Linux Reference Manual - Introduction - Audience (0) | 2022.06.21 |
i.MX Linux Reference Manual - Introduction (0) | 2022.06.20 |
i.MX Linux Reference Manual - System - Watchdog(WDOG) (0) | 2022.06.20 |
i.MX Linux Reference Manual - System - Sensors (0) | 2022.06.20 |