3.1 AHB-to-APBH Bridge with DMA (APBH-Bridge-DMA)
3.1.1 Overview
AHB-to-APBH 브리지는 AHB의 HCLK로 실행되는 저렴한 주변 디바이스 연결 버스를 프로세서에 제공한다. APBH의 H는 APBH가 HCLK에 동기화되어 있다는 것을 나타낸다.
AHB-to-APBH 브리지에는 APB 디바이스에 memory-mapped I/O를 위한 AHB-to-APB PIO 브리지 뿐만 아니라, 이 버스 상의 디바이스를 위한 중앙 집중 방식의 DMA와 Arm 코어를 위한 벡터 인터럽트 컨트롤러가 포함된다. 벡터화된 인터럽트 컨트롤러를 포함하여, 각 APB 주변 디바이스는 이 문서의 다른 장에 설명되어 있다.
이러한 디바이스에는 별도의 DMA 버스가 없다. DMA의 APBH 버스 사용과 AHB-to-APB 브리지 기능의 APBH 사용 사이의 경합은 내부 중재 로직에 의해 조정된다. 이 두 유닛 사이의 경합이 발생하면, DMA가 선호되고 AHB 슬레이브는 브리지 전송이 완료될 때까지 HREADY 출력으로 "not ready(준비되지 않음)"을 보고한다. 중재자는 반복되는 락아웃을 추적하고 우선 순위를 반전하여, APB에서 4번재 전송마다 Arm 플랫폼을 보장해 준다.
3.1.1.1 Hardware Operation
SDMA 컨트롤러는 MCU 메모리 공간과 주변 디바이스 사이의 데이터 전송을 담당하며 다음 기능을 포함한다.
- 최대 32개의 시분할 다중 DMA 채널을 지원하는 멀티채널 DMA
- 16비트 Instruction-Set micro-RISC 엔진으로 구동
- 각 채널은 특정 스크립트를 실행
- 2레벨 우선 순위 기반 선제적 멀티태스킹으로 매우 빠른 컨텍스트 전환
- RAM에 위치한 스크립트에서 참조할 수 있는 시작 스크립트(즉 부트코드)와 다른 일반적인 유틸리티를 포함하는 4KB ROM
- 8KB RAM 영역은 프로세서 컨텍스트 영역과 시스템 메모리에서 다운로드한 채널 스크립트를 저장하는 코드 공간 영역으로 나뉜다.
3.1.1.2 Software Operation
DMA는 아래 테이블과 같이 16개의 DMA 서비스 채널을 지원한다. 공유 DMA 리소스를 사용하면 각 독립 채널이 간단한 체인 커맨드 리스트를 따를 수 있다. 커맨드 체인은 일반적인 구조체를 사용하여 구축된다.
Table 24. APBH DMA Channel Assignments
APBH DMA CHANNEL # | USAGE |
---|---|
0 | GPMI0 |
1 | GPMI1 |
2 | GPMI2 |
3 | GPMI3 |
4 | GPMI4 |
5 | GPMI5 |
6 | GPMI6 |
7 | GPMI7 |
8 | EMPTY |
9 | EMPTY |
10 | EMPTY |
11 | EMPTY |
12 | EMPTY |
13 | EMPTY |
14 | EMPTY |
15 | EMPTY |
3.1.1.3 Source Code Structure
아래 테이블은 drivers/dma/에서 사용할 수 있는 소스 파일을 보여준다.
Table 25. APBH DMA Source Files
File | Description |
---|---|
mxs-dma.c | APBH DMA 구현 드라이버 |
3.1.1.4 Menu Configuration Options
메뉴 구성에서 아래 모듈을 활성화한다:
- Device Drivers > DMA Engine support > MXS DMA support
3.1.1.5 Programming Interface
모듈은 표준 DMA API를 구현한다. GPMI NAND 드라이버와 같은 드라이버에 구현된 함수에 대한 자세한 내용은 Linux 설명서 패키지에 있는 API 문서를 참조한다.
'NXP i.MX SoC Family > i.MX Linux Reference Manual' 카테고리의 다른 글
i.MX Linux Reference Manual (IMXLXRM) - Storage - MMC/SD/SDIO Host (0) | 2022.11.15 |
---|---|
i.MX Linux Reference Manual (IMXLXRM) - Storage - EIM NOR (0) | 2022.11.15 |
i.MX Linux Reference Manual (IMXLXRM) - System - Watchdog (WDOG) (0) | 2022.11.15 |
i.MX Linux Reference Manual (IMXLXRM) - System - Sensors (0) | 2022.11.15 |
i.MX Linux Reference Manual (IMXLXRM) - System - Thermal (0) | 2022.11.15 |