3.7 Smart Direct Memory Access (SDMA) API 3.7.1 Overview SDMA(Smart Direct Memory Access) API 드라이버는 SDMA 하드웨어를 컨트롤한다. MCU 메모리 공간과 주변 디바이스 사이에 데이터를 전송하기 위해 다른 드라이버에 API를 제공한다. 아래 기능을 지원한다 : MCU 메모리 공간에서 SDMA 내부 RAM으로 채널 스트립트 로드 스크립트의 컨텍스트 파라미터 로드 스크립트의 버퍼 디스크립터(descriptor) 파라미터 로드 스크립트의 실행 컨트롤 스크립트 실행 종료 시 callback 메커니즘 3.7.2 Hardware Operation SDMA 컨트롤러는 MCU 메모리 공간과 주변 디바이스 사이의 데이터 전송을 담당하며 아래 기..
3.6 SATA 3.6.1 Introduction SATA AHCI 드라이버는 Linux 커널의 블록 디바이스 인프라의 LIBATA 레이어를 기반으로 한다. SATA의 자세한 하드웨어 작동은 SATA_Data_Book.pdf라는 Synopsys DesignWare Cores SATA AHCI 문서에 자세히 설명되어 있다. 3.6.2 Board Configuration Options 전원을 끈 상태에서 SATA 케이블과 하드 드라이브를 설치한다. 3.6.3 Software Operation libata API에 대한 자세한 내용은 libATA Developer's Guide를 참조한다. SATA AHCI 드라이버는 Linux 커널의 블록 디바이스 인프라의 LIBATA 레이어를 기반으로 한다.표준 AHCI ..
3.5 Quad Serial Peripheral Interface (QuadSPI) 3.5.1 Introduction QuadSPI(Quad Serial Peripheral Interface) 블록은 하나나 두 개의 외부 시리얼 플래시 디바이스에 대한 인터페이스 역할을 한다. 각각 최대 4개의 양방향(bidirectional) 데이터 라인이 있다. 아래 기능을 지원한다 : 다양한 플래시 공급업체 디바이스를 지원하는 유연한 시퀀스 엔진. single, dual, quad 및 octal 작동 모드. 시리얼 플래시 clock의 모든 에지에서 데이터가 생성되는 DDR/DTR 모드. DDR 및 SDR 모드에서 데이터 샘플링을 위한 플래시 데이터 스트로브(strobe) 신호 지원. AMBA AHB 버스(64비트 폭..
3.4 NAND GPMI Flash 3.4.1 Introduction NAND Flash Memory Technology Devices (MTD) 드라이버는 i.MX 6 시리즈와 i.MX 7Dual에서 GPMI(Generic-Purpose Media Interface) 컨트롤러에서 사용된다. NAND MTD 드라이버가 작동하려면, 특정 하드웨어 레이어만 구현되어야 한다. Flash 읽기/쓰기/지우기와 같은 나머지 기능은 NAND 장치용 Linux MTD 서브시스템에서 제공하는 일반 레이어에서 자동으로 처리된다. NAND MTD 드라이버는 UBIFS, CRAMFS, JFFS2UBI, UBIFSCRAMFS, JFFS2와 같은 파일 시스템을 지원하는 통합된 NAND 컨트롤러와 인터페이스한다. NAND Flas..
3.3 MMC/SD/SDIO Host 3.3.1 Introduction MMC (MultiMediaCard)/SD (Secure Digital)/SDIO (Secure Digital Input Output) 호스트 드라이버는 uSDHC(ultra MMC/SD host controller)에 대해 표준 Linux 드라이버 인터페이스를 구현한다. 호스트 드라이버는 Linux 커널 MMC 프레임워크의 일부이다. MMC 드라이버에는 아래와 같은 기능이 있다 : SD 3.0과 SDIO 2.0 카드에 대해 1비트나 4비트 작동(지금까지 AR6003으로 검즘된 SDIO v2.0을 지원한다). 카드 장착 및 제거 감지를 지원한다. 표준 MMC 명령을 지원한다. PIO와 DMA 데이터 전송. 전원 관리를 지원한다. MM..