1.1 Overview
i.MX 제품군 Linux BSP(Board Support Package)는 i.MX Application Processor에서 Linux OS(Operating System)을 지원한다.
이 소프트웨어 패키지의 용도는 i.MX Integrated Circuits(IC) 제품군과 그것과 관련된 플랫폼에서 Linux OS를 지원하는 것이다. i.MX 하드웨어에 표준 오픈 소스 Linux 커널을 인터페이스하는 데 필요한 소프트웨어를 제공한다. 목표는 i.MX 고객들이 Linux OS를 사용하는 i.MX 디바이스 기반의 제품을 빠르게 구축할 수 있도록 하는 것이다.
BSP는 플랫폼이나 제품의 레퍼런스 구현이 아니다. 여기에는 제품별 드라이버, 하드웨어 독립 소프트웨어 스택, Graphical User Interface (GUI) 컴포넌트, Java Virtual Machine (JVM), 그리고 제품에 필요한 애플리케이션을 모두 포함하는 것은 아니다. 이들 중 일부는 기본 커널의 일부로 원래 오프 소스 형태로 제공된다.
BSP는 실리콘 검증에 사용되지 않는다. 이런 역할을 할 수는 있지만, BSP 기능과 BSP에서 실행되는 테스트는 기존의 실리콘 검증 테스트 제품군(suites)을 대체하기에 적용 범위(coverage)가 충분하지 않다.
1.1.1 Software Base
i.MX BSP는 공식 Linux 커널 웹사이트(www.kernel.org)의 Linux 커널 버전 5.15.52를 기반으로 한다. NXP에서 향상된 기능을 제공한다.
Yocto Project 환경에서 메뉴 구성을 사용하여 구성을 변경하려면 Linux에서 다음과 같이 bitbake를 사용한다:
bitbake linux-imx -c menuconfig
1.1.2 Features
아래 테이블은 특정 플랫폼에 대해 BSP에서 지원하는 기능을 설명한다.
Feature | Description | Chapter Source | Applicable Platform |
---|---|---|---|
Machine-Specific Layer | |||
MSL | Machine-Specific Layer (MSL)은 인터럽트, Timer, Memory Map, 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 시스템용 전체 시스템을 위한 프로파일러이다. | OProfile | All |
Pulse Width Modulator |
PWM(Pulse-Width Modulator)에는 16비트 카운터를 가지고 있고, 저장된 샘플 오디오 이미지에서 사운드를 생성하고 톤을 생성하도록 최적화되어 있다. | Pulse-Width Modulator (PWM) |
All |
Sensors | 센서에는 가속도계, 주변광, 자력계 센서를 포함된다. | Sensors | All |
Watchdog | Watchdog Timer 모듈은 예기치 못한 중단이나 무한 루프 상황이나 프로그램 오류로부터 탈출을 제공하여 시스템 장애로부터 보호한다. | Watchdog | All |
DMA Engine | |||
SDMA API | Smart Direct Memory Access (SDMA) API 드라이버는 SDMA 하드웨어를 제어하고 MCU, DSP와 주변 디바이스 사이에 데이터를 전송하기 위해 다른 드라이버에 API를 제공한다. | Smart Direct Memory Access (SDMA) API |
All |
APBH-Bridge- DMA |
AHB-to-APBH와 AHB-to-APBX DMA 모두 구성 가능한 DMA 디스트립트 체인을 지원한다. | 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의 클럭 속도를 변경할 수 있다. | CPU Freq | 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 드라이버는 IEEE802.3/Ethernet CSMA/ CD 미디어 액세스 컨트롤과 채널 인터페이스 기능의 전체 세트를 수행한다. | Fast Ethernet Controller (FEC) Driver |
All |
FlexCAN | FlexCAN 드라이버는 CAN 메세지를 송수신하기 위한 인터페이스를 제공한다. | FlexCAN Driver | i.MX 6Quad, i.MX 6Dual, i.MX 6Dual Lite, i.MX 6Solo, i.MX 6UltraLite, i.MX 6SoloX |
MediaLB | MediaLB는 애플리케이션이 MOST 네트워크 데이터에 액세스하거나 다른 애플리케이션과 통신할 수 있도록 하는 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 | 카메라와 캡쳐 인터페이스에 대한 Camera Overview | Capture Overview | All |
Display | Display Overview | Display Overview | All |
VPU | Video Processing Unit (VPU)는 다양한 비디오 형식의 디코딩과 인코딩을 수행할 수 있는 멀티 표준 비디오 디코더와 인코더이다. | Video Processing Unit (VPU) Driver |
i.MX 6QuadPlus/Quad/Dual/Solo i.MX 8 |
JPEGENC/ JPEGDEC |
JPEG-E-X와 JPEG-D-X 코어는 각각 정지 이미지와 비디오 압축/압축-해제 애플리케이션을 위한 독립 실행형 고성능 8비트/12비트 JPEG 인코더와 디코더이다. | JPEG Encoder and Decoder |
i.MX 8QuadXPlus, 8QuadMax |
Audio Drivers | |||
ALSA Sound |
Advanced Linux Sound Architecture (ALSA)는 ALSA와 OSS 호환 애플리케이션에 오디도 재생과 녹음 기능을 수행하는 방법을 제공하는 사운드 드라이버이다. | ALSA Sound Driver | All |
ASRC | Asynchronous Sample Rate Converter (ASRC) 드라이버는 비동기 샘플 속도 변환 모듈에 액세스하기 위한 인터페이스를 제공한다. | 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 데이터 플래시를 지원한다. | SPI NOR Flash Memory Technology Device (MTD) Driver |
All |
NAND MTD | NAND MTD 드라이버는 UBIFS, CRAMFS와 JFFS2UBI 와 UBIFSCRAMFS와 JFFS2 파일 시스템을 지원하는 통합된 NAND 컨트롤러와 인터페이스한다. | NAND GPMI Flash Driver |
i.MX 6Quad, i.MX 6Dual, i.MX 6Dual Lite, i.MX 6Solo, i.MX 6UltraLite, i.MX 7Dual |
SATA | SATA AHCI 드라이버는 Linux 커널의 블록 장치 인프라의 LIBATA 레이어를 기반으로 한다. | SATA Driver | i.MX 6QuadPlus, i.MX 6Quad, i.MX 6Dual, i.MX 8Quad Max, i.MX 8Quad XPlus |
Bus Drivers | |||
I2C | 저전력 I2C 버스 드라이버는 I2C 버스에 데이터를 전송하기 위해 I2C 버스와 인터페이스한다. | Inter-IC (I2C) Driver | All |
eCSPI | 로우 레벨 Enhanced Configurable Serial Peripheral Interface (ECSPI) 드라이버는 사용자 지정 커널 영역 API를 두 개의 ECSPI 모듈에 인터페이스한다. | Enhanced Configurable Serial Peripheral Interface (ECSPI) Driver |
All |
MMC/SD/ SDIO - uSDHC |
MMC/SD/SDIO Host 드라이버는 eSDHC에 대한 표준 Linux 드라이버 인터페이스를 구현한다. | MMC/SD/SDIO Host Driver |
All |
Connectivity Drivers | |||
UART | Universal Asynchronous Receiver/Transmitter (UART) 드라이버는 시리얼 드라이버 API를 모든 UART 포트에 인터페이스한다. | 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 (IMXLXRM) - Introduction - References (0) | 2022.10.27 |
---|---|
i.MX Linux Reference Manual (IMXLXRM) - Introduction - Audience (0) | 2022.10.25 |
i.MX Linux Reference Manual (IMXLXRM) (0) | 2022.10.21 |
i.MX Linux Reference Manual - Unit Tests - Security (0) | 2022.09.02 |
i.MX Linux Reference Manual - Unit Tests - Audio (0) | 2022.09.02 |