3.8 SPI NOR Flash Memory Technology Device (MTD)
3.8.1 Introduction
SPI NOR Flash Memory Technology Device (MTD) 드라이버는 SPI 인터페이스를 통해 데이터 Flash의 지원을 제공한다.
기본으로 SPI NOR Flash MTD 드라이버는 데이터 Flash를 지원하기 위해 정적 MTD 파티션을 생성한다.
3.8.2 Hardware Operation
일부 보드에는 SPI NOR - AT45DB321D가 장착되고, 일부 보드에는 M25P32가 장착된다. 보드에서 SPI NOR의 유형을 확인하고 올바르게 구성한다.
AT45DB321D는 2.7 V, 시리얼 인터페이스의 순차 액세스 Flash 메모리이다. AT45DB321D 시리얼 인터페이스는 최대 66 MHz 주파수의 SPI와 호환된다. 메모리는 512바이트나 528바이트의 8192 페이지로 구성된다. AT45DB321D는 또한 512/528바이트의 SRAM 버퍼 2개를 포함하고 있어, 메인 메모리의 페이지가 다시 프로그램되는 동안 데이터를 수신하고 연속되는 데이터 스트림을 쓸 수 있다.
M25P32는 최대 75 MHz의 고속 SPI 호환 버스에서 액세스할 수 있는 고급 쓰기 보호 메커니즘을 갖춘 32Mbit(4M x 8) 시리얼 Flash 메모리이다. 메모리는 각각 256 페이지를 포함하는 64 섹터로 구성된다. 각 페이지는 256 바이트이다. 따라서 전체 메모리는 16384 페이지나 4,194,304 바이트로 구성된 것으로 볼 수 있다. 메모리는 Page Program 명령어를 사용하여 한 번에 1 ~ 256 바이트 단위로 프로그램할 수 있다. 전체 메모리는 Bulk Erase 명령어를 사용하여 지우거나, Sector Erase 명령어를 사용하여 한 번에 한 섹터 단위로 지울 수 있다.
무작위로 액세스되는 기존 Flash 메모리와 다르게, 이 두 SPI NOR는 데이터에 순차적으로 액세스한다. 이들은 프로그램과 읽기 동작을 위해 2.7-3.6 V 단일 전원 공급으로 작동한다. 칩 선택 핀을 통해 활성화되고 Serial Input, Serial Output, Serial Clock의 3선 인터페이스를 통해 액세스된다.
3.8.3 Software Operation
Flash 기반의 임베디드 Linux 시스템에서는 파일 시스템을 구현하기 위해 여러 Linux 기술이 함께 작동한다. 아래 그림은 일부 표준 컴포넌트 사이의 관계를 보여준다.
Linux OS용 MTD 서브시스템은 Flash와 RAM과 같은 메모리 디바이스에 대한 일반적인 인터페이스로, 물리적인 메모리 디바이스에 대해 간소한 읽기, 쓰기, 지우기 액세스를 제공한다. mtdblock 디바이스라고 하는 디바이스는 JFFS, JFFS2, CRAMFS 파일 시스템으로 마운트될 수 있다. SPI NOR MTD 드라이버는 SPI 액세스가 추가된 커널의 MTD 데이터 Flash 드라이버를 기반으로 한다. 초기화 단계에서 SPI NOR MTD 드라이버는 JEDEC ID를 읽어 데이터 Flash를 감지한다. 그런 다음 드라이버가 MTD 디바이스를 추가한다. SPI NOR MTD 드라이버는 NOR Flash를 읽고, 쓰고, 지우는 인터페이스도 제공한다.
3.8.4 Source Code Structure
아래 테이블은 드라이버 파일을 보여준다 :
Table 34. SPI NOR MTD Driver Files
File | Description |
drivers/mtd/devices/m25p80.c | 소스 파일 |
drivers/mtd/spi-nor/spi-nor.c | 소스 파일 |
3.8.5 Menu Configuration Options
메뉴 구성에서 아래 모듈을 활성화한다 :
- CONFIG_MTD_M25P80 : 이 구성을 통해 프로그램과 데이터 저장에 사용되는 대부분의 최신 SPI 플래시 칩에 액세스할 수 있다.
- Device Drivers > Memory Technology Device (MTD) support >Self-contained MTD device drivers > Support most SPI Flash chips (AT26DF, M25P, W25X, and so on)
'NXP i.MX SoC Family > i.MX Linux Reference Manual' 카테고리의 다른 글
i.MX Linux Reference Manual - Connectivity - ADC (0) | 2022.07.20 |
---|---|
i.MX Linux Reference Manual - Connectivity (0) | 2022.07.19 |
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 - Quad Serial Peripheral Interface (QuadSPI) (0) | 2022.07.18 |