NXP i.MX SoC Family/i.MX Linux Reference Manual

i.MX Linux Reference Manual (IMXLXRM) - Introduction - Overview

까마귀75 2022. 10. 24. 09:27
728x90
반응형

[이전] [목차] [다음]

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를 지원한다.
  • Interrupts GIC : Linux 커널에는 일반적인 Arm GIC 인터럽트 처리 코드가 포함되어 있다.
  • Timer (GPT) : General Purpose Timer (GPT)는 프로그램된 대로 OS 틱을 제공하는 인터럽트를 생성하도록 설정한다. Linux OS에서는 타이밍 지연, 측정, 이벤트, 알람, 고해상도 타이머 기능 등 다양한 함수를 통하여 타이머 사용을 용이하게 한다. Linux OS는 OS-tick 타이머에 필요한 MSL 타이머 API를 정의하고 커널 틱 구현이외는 노출시키지 않는다.
  • GPIO/EDIO/IOMUX : MSL의 GPIO와 EDIO 컴포넌트는 GPIO, IOMUX와 외부 보드 I/O를 포함하는 다양한 드라이버와 시스템의 구성과 활용 사이에 추상화 레이어를 제공한다. IO 소프트웨어 모듈은 보드에 따라 다르며, MSL 레이어에 자체 포함된 파일 세트로 존재한다. I/O 구성 변경은 GPIO 모듈에 집중되므로, 다양한 드라이버를 변경할 필요가 없다.
  • SPBA : Shared Peripheral Bus Arbiter (SPBA)는 공유된 주변 디바이스에 대한 액세스를 허용하기 위해 여러 마스터 간에 중재 메커니즘을 제공한다. MSL에서 SPBA 구현은 API를 정의하여 서로 다른 마스터가 공유된 주변 디바이스의 소유권을 가져오거나 해제할 수 있도록 한다.
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

 

 

[이전] [목차] [다음]

 

728x90
반응형