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비트 폭의 인터페이스)나 IP 레지스터 공간(32비트 액세스)을 통해 RX Buffer의 데이터를 읽기 위한 DAM 지원.
3.5.2 Hardware Operation
일부 보드에서 Quad SPI NOR - N25Q256A가 장착되어 있고, 다른 보드에는 S25FL128S가 장착되어 있다. 보드에서 Quad SPI NOR 유형을 확인하여 올바르게 구성한다.
N25Q256A는 고성능의 다중 입력/출력 시리얼 Flash 메모리 디바이스이다. 혁신적인 고성능 dual 및 quad 입력/출력 명령은 READ와 PROGRAM 작업을 위한 전송 대역폭을 2배나 4배로 증가 시킨다. 메모리는 512(64KB) 주 섹터로 구성되며, 한 번에 64KB 섹터를 지울 수 있다. 이 디바이스는 128MB 이상의 메모리에 액세스할 수 있는 3바이트나 4바이트 주소 모드를 제공한다. 4바이트 주소 모드가 활성화되면, 주소가 필요한 모든 명령어는 4바이트 주소 모드 명령어(ENTER 4-BYTE ADDRESS MODE 명령어와 EXIT 4-BYTE ADDRESS MODE 명령어)로 입력되고 종료되어야 한다. 4바이트 주소 모드는 비휘발성 구성 레지스터를 통해 활성화될 수 있다. 메모리는 Extended SPI(dual, quad 작동으로 업그레이드된 표준 SPI 프로토콜), Dual I/O SPI, Quad I/O SPI 등 세 가지 다른 프로토콜로 작동할 수 있다. 각 프로토콜에는 DTR 모드에서 READ 작업을 수행하기 위한 고유한 명령어가 포함된다. 이를 통해 낮은 clock 주파수에서 실행하면서 높은 데이터 처리량을 얻을 수 있다.
S25FL128S 디바이스는 비휘발성 플래시 메모리 제품이다. SPI(Serial Peripheral Interface)를 통해 호스트 시스템과 연결한다. 기존 단일 비트 시리얼 입력과 출력(Single I/O나 SIO)은 물론 선택적으로 2비트(Dual I/O나 DIO)와 4비트(Quad I/O나 QIO) 시리얼 커맨드도 지원한다. 또한 주소를 전송하고 clock의 양쪽 에지에서 데이터를 읽는 SIO, DIO, QIO에 대한 DDR(Double Data Rate) 읽기 명령 지원을 추가한다.
3.5.3 Software Operation
Flash 기반 임베디드 Linux 시스템에는 여러 Linux 기술이 파일 시스템을 구현하기 위해 함께 작동한다. 아래 그림은 일부 표준 컴포넌트 사이의 관계를 보여준다.
Linux OS용 MTD 서브시스템은 Flash와 RAM과 같은 메모리 디바이스에 대한 일반 인터페이스로, 물리적인 메모리 디바이스에 대한 간단한 읽기, 쓰기, 지우기 액세스를 제공한다. mtdblock 디바이스라고 하는 디바이스는 JFFS, JFFS2, CRAMFS 파일 시스템에 의해 마운트될 수 있다. Quad SPI NOR MTD 드라이버는 SPI 액세스를 추가한 커널의 MTD 데이터 Flash 드라이버를 기반으로 한다. 초기화 단계에서 Quad SPI NOR MTD 드라이버는 JEDEC ID를 읽어 데이터 Flash를 감지한다. 그런 다음 드라이버가 MTD 디바이스를 추가한다. SPI NOR MTD 드라이버는 NOR Flash를 읽고, 쓰고, 지우는 인터페이스를 제공한다.
3.5.4 Driver Features
Quad NOR 드라이버 구현은 아래 기능을 지원한다 :
- 상위 레이어 MTD 드라이버에 필요한 정보를 제공한다.
3.5.5 Source Code Structure
Table 29. QuadSPI Driver File
File | Description |
drivers/mtd/spi-nor/spi-nor.c | SPI-NOR 프레임워크 |
drivers/mtd/spi-nor/fsl-quadspi.c | Quad SPI 드라이버 |
3.5.6 Menu Configuration Options
Quad SPI 드라이버를 활성화하려면, 아래 옵션을 설정해야 한다 :
- Device Drivers >Memory Technology Device (MTD) support > Freescale Quad SPI controller
구성의 경우에는 Quad SPI를 활성화하도록 설정한다.
- CONFIG_MTD_SPI_NOR : SPI 디바이스 드라이버와 SPI-NOR 디바이스 드라이버에서 사용할 수 있는 SPI NOR용 프레임워크.
- CONFIG_SPI_FSL_QUADSPI : 마스터 모드에서 Quad SPI 컨트롤러에 대한 지원을 활성화.
'NXP i.MX SoC Family > i.MX Linux Reference Manual' 카테고리의 다른 글
i.MX Linux Reference Manual - Storage - Smart Direct Memory Access (SDMA) API (0) | 2022.07.19 |
---|---|
i.MX Linux Reference Manual - Storage - SATA (0) | 2022.07.18 |
i.MX Linux Reference Manual - Storage - NAND GPMI Flash (0) | 2022.07.15 |
i.MX Linux Reference Manual - Storage - EIM NOR (0) | 2022.07.12 |
i.MX Linux Reference Manual - Storage - AHB-to-APBH Bridge with DMA (0) | 2022.07.12 |