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 시리얼 인터페이스는 최대 66MHz의 주파수와 호환되는 SPI이다. 메모리는 512바이트나 528바이트의 8192페이지로 구성된다. 또한, AT45DB321D에는 각각 512/528바이트의 SRAM 버퍼 2개가 포함되어 있어서, 주 메모리의 페이지가 재프로그램되는 동안, 데이터를 수신하면서 연속적인 데이터 스트림을 저장할 수 있다.
M25P32는 고급 쓰기 보호 메커니즘을 갖춘 32Mbit(4M x 8) Serial Flash 메모리이며, 최대 75MHz의 고속 SPI 호환 버스로 액세스할 수 있다. 메모리는 각각 256 페이지를 포함하는 64개의 섹터로 구성된다. 각 페이지는 256바이트 크기이다. 따라서, 전체 메모리는 16384 페이지나 4,194,304 바이트로 구성되어 았다고 볼 수 있다. 메모리는 Page Program 명령(instruction)을 사용하여 한 번에 1 ~ 256바이트까지 프로그램할 수 있다. Bulk Erase 명령(instruction)을 사용하여 전체 메모리를 지우거나, Sector Erase 명령(instruction)을 사용하여 한 번에 한 섹터씩 지울 수 있다.
무작위로 액세스되는 기존 Flash 메모리와 다르게, 이 두 SPI NOR는 데이터에 순차적으로 액세스한다. 프로그램과 읽기 작업을 위해 단일 2.7 ~ 3.6V 전원 공급 디바이스에서 작동한다. 칩 선택 핀으로 활성화되고, Serial Input, Serial Output, Serial Clock의 3선 인터페이스로 액세스된다.
3.8.3 Software Operation
Flash 기반 임베디드 Linux 시스템에서, 파일 시스템을 구현하기 위해 여러 Linux 기술이 함께 작동한다. 아래 그램은 일부 표준 컴포넌트 사이의 관계를 보여준다.
Linux OS를 위한 MTD 서브시스템은 Flash와 RAM 같은 메모리 디바이스에 대한 일반적인 인터페이스로, 물리적인 메모리 디바이스에 대한 간단한 read/write/erase 액세스를 제공한다. mtdblock 디바이스라는 디바이스는 JFFS, JFFS2와 CRAMFS 파일 시스템으로 마운트될 수 있다. SPI NOR MTD 드라이버는 SPI 액세스를 추가하여 커널의 MTD 데이터 Flash 드라이버를 기반으로 한다. 초기화 단계에서, SPI NOR MTD 드라이버는 JEDEC ID를 읽어 데이터 Flash를 감지한다. 그런 다음, 드라이버는 MTD 디바이스를 추가한다. SPI NOR MTD 드라이버는 NOR Flash를 read/write/erase하는 인터페이스도 제공한다.
3.8.4 Source Code Structure
아래 테이블은 드라이버 파일을 보여준다:
Table 34. SPI NOR MTD Driver Files
File | Description |
---|---|
drivers/mtd/devices/m25p80.c | 소스 파일 |
drivers/mtd/spi-nor/core.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)