# Supported Chips **[πŸ‡·πŸ‡Ί Русская вСрсия](Supported-Chips-RU.md)** --- OpenFlash supports parallel NAND (ONFI-compliant), SPI NAND, SPI NOR, and eMMC flash chips. Below is a list of tested and known-working chips. **v2.2.0 Update:** Significantly expanded chip database with 150+ new chips across all flash types. ## Supported Platforms (v2.3+) | Platform | Parallel NAND | SPI NAND | SPI NOR | eMMC | UFS | WiFi | Notes | |----------|---------------|----------|---------|------|-----|------|-------| | RP2040 (Pico) | βœ… GPIO | βœ… SPI0 | βœ… SPI0 | βœ… SPI1 | ❌ | ❌ | Best for beginners | | RP2350 (Pico 2) | βœ… PIO | βœ… SPI0 | βœ… SPI0 | βœ… SPI1 | ❌ | ❌ | NV-DDR support | | STM32F1 (Blue Pill) | βœ… GPIO | βœ… SPI1 | βœ… SPI1 | βœ… SPI2 | ❌ | ❌ | Budget option | | STM32F4 (Black Pill) | βœ… FSMC* | βœ… SPI1 | βœ… SPI1 | βœ… SPI2 | ❌ | ❌ | Fast MCU | | STM32H747 (Arduino GIGA) | βœ… FMC | βœ… SPI | βœ… SPI | βœ… SDMMC | βœ… | βœ… | Enterprise | | ESP32 | βœ… GPIO | βœ… VSPI | βœ… VSPI | βœ… VSPI | ❌ | βœ… | Wireless | | Raspberry Pi (SBC) | βœ… GPIO | βœ… SPI0 | βœ… SPI0 | βœ… SPI0 | ❌ | βœ… | Linux GPIO | | Orange Pi (SBC) | βœ… GPIO | βœ… SPI | βœ… SPI | βœ… SPI | ❌ | βœ… | Budget SBC | *FSMC available on STM32F446 only ## Chip Count Summary (v2.2.0) | Type | Count | Manufacturers | |------|-------|---------------| | Parallel NAND | 60+ | Samsung, Micron, SK Hynix, Kioxia, Macronix, Winbond, ESMT | | SPI NAND | 55+ | GigaDevice, Winbond, Macronix, Micron, Kioxia, XTX, Foresee, Dosilicon, Zetta | | SPI NOR | 75+ | Winbond, Macronix, ISSI, GigaDevice, Micron, EON, XMC, Puya, Boya | | eMMC | 40+ | Samsung, Micron, SK Hynix, SanDisk, Kingston, Foresee | ## Interface Types OpenFlash supports five types of flash interfaces: - **Parallel NAND** - Traditional 8-bit/16-bit parallel interface (ONFI) - **SPI NAND** - Serial Peripheral Interface NAND (v1.1+) - **SPI NOR** - Serial Peripheral Interface NOR flash (v1.6+) - **eMMC** - Embedded MultiMediaCard via SPI mode (v1.2+) - **UFS** - Universal Flash Storage (v1.6+, detection only) ## Fully Tested βœ… ### Parallel NAND | Manufacturer | Model | Capacity | Page Size | Status | |--------------|-------|----------|-----------|--------| | Samsung | K9F4G08U0D | 512MB | 2KB | βœ… Tested | | Samsung | K9F1G08U0D | 128MB | 2KB | βœ… Tested | | Hynix | HY27UF084G2B | 512MB | 2KB | βœ… Tested | ### SPI NAND | Manufacturer | Model | Capacity | Page Size | Status | |--------------|-------|----------|-----------|--------| | GigaDevice | GD5F1GQ4UBxIG | 128MB | 2KB | βœ… Tested | | Winbond | W25N01GV | 128MB | 2KB | βœ… Tested | ## Database (Auto-Detection) These chips are in our database and should work automatically: ### Samsung | Model | Capacity | Page | Block | ID | |-------|----------|------|-------|-----| | K9F1G08U0D | 128MB | 2KB | 64 | EC F1 00 95 | | K9F2G08U0D | 256MB | 2KB | 64 | EC DA 10 95 | | K9F4G08U0D | 512MB | 2KB | 64 | EC DC 10 95 | | K9F8G08U0M | 1GB | 2KB | 64 | EC D3 51 95 | | K9GAG08U0E | 2GB | 8KB | 128 | EC D5 84 72 | | K9LCG08U0A | 4GB | 8KB | 128 | EC D7 94 76 | ### SK Hynix | Model | Capacity | Page | Block | ID | |-------|----------|------|-------|-----| | HY27UF081G2A | 128MB | 2KB | 64 | AD F1 80 1D | | HY27UF082G2B | 256MB | 2KB | 64 | AD DA 80 15 | | HY27UF084G2B | 512MB | 2KB | 64 | AD DC 80 15 | | H27U1G8F2BTR | 128MB | 2KB | 64 | AD F1 00 1D | | H27U4G8F2DTR | 512MB | 4KB | 64 | AD DC 90 95 | ### Micron | Model | Capacity | Page | Block | ID | |-------|----------|------|-------|-----| | MT29F1G08ABADAH4 | 128MB | 2KB | 64 | 2C F1 80 95 | | MT29F2G08ABAEAH4 | 256MB | 2KB | 64 | 2C DA 90 95 | | MT29F4G08ABADAH4 | 512MB | 2KB | 64 | 2C DC 90 95 | | MT29F8G08ADBDAH4 | 1GB | 4KB | 64 | 2C 38 00 26 | | MT29F16G08CBACAH4 | 2GB | 4KB | 256 | 2C 48 04 46 | ### Toshiba/Kioxia | Model | Capacity | Page | Block | ID | |-------|----------|------|-------|-----| | TC58NVG0S3HTA00 | 128MB | 2KB | 64 | 98 F1 80 15 | | TC58NVG1S3HTA00 | 256MB | 2KB | 64 | 98 DA 90 15 | | TC58NVG2S0HTA00 | 512MB | 4KB | 64 | 98 DC 90 26 | | TC58NVG3S0FTA00 | 1GB | 4KB | 64 | 98 D3 90 26 | ### Macronix | Model | Capacity | Page | Block | ID | |-------|----------|------|-------|-----| | MX30LF1G08AA | 128MB | 2KB | 64 | C2 F1 80 1D | | MX30LF2G18AC | 256MB | 2KB | 64 | C2 DA 90 95 | | MX30LF4G18AC | 512MB | 2KB | 64 | C2 DC 90 95 | ### Winbond | Model | Capacity | Page | Block | ID | |-------|----------|------|-------|-----| | W29N01GVSIAA | 128MB | 2KB | 64 | EF F1 00 95 | | W29N02GVSIAA | 256MB | 2KB | 64 | EF DA 10 95 | ### GigaDevice | Model | Capacity | Page | Block | ID | |-------|----------|------|-------|-----| | GD9FU1G8F2A | 128MB | 2KB | 64 | C8 F1 80 1D | | GD9FS2G8F2A | 256MB | 2KB | 64 | C8 DA 90 95 | --- ## SPI NAND Database (v1.1+) SPI NAND chips use a different interface and command set. OpenFlash v1.1+ supports the following SPI NAND chips: ### GigaDevice SPI NAND | Model | Capacity | Page | QSPI | ECC | ID | |-------|----------|------|------|-----|-----| | GD5F1GQ4UBxIG | 128MB | 2KB | βœ… | βœ… | C8 D1 | | GD5F2GQ4UBxIG | 256MB | 2KB | βœ… | βœ… | C8 D2 | | GD5F4GQ4UBxIG | 512MB | 4KB | βœ… | βœ… | C8 D4 | | GD5F1GQ5UExxG | 128MB | 2KB | βœ… | βœ… | C8 51 | ### Winbond SPI NAND | Model | Capacity | Page | QSPI | ECC | ID | |-------|----------|------|------|-----|-----| | W25N01GV | 128MB | 2KB | βœ… | βœ… | EF AA 21 | | W25N02KV | 256MB | 2KB | βœ… | βœ… | EF AA 22 | | W25N04KV | 512MB | 2KB | βœ… | βœ… | EF AA 23 | | W25N01JW | 128MB | 2KB | βœ… | βœ… | EF BC 21 | ### Macronix SPI NAND | Model | Capacity | Page | QSPI | ECC | ID | |-------|----------|------|------|-----|-----| | MX35LF1GE4AB | 128MB | 2KB | βœ… | βœ… | C2 12 | | MX35LF2GE4AB | 256MB | 2KB | βœ… | βœ… | C2 22 | | MX35LF4GE4AD | 512MB | 4KB | βœ… | βœ… | C2 37 | ### Micron SPI NAND | Model | Capacity | Page | QSPI | ECC | ID | |-------|----------|------|------|-----|-----| | MT29F1G01ABAFD | 128MB | 2KB | βœ… | βœ… | 2C 14 | | MT29F2G01ABAGD | 256MB | 2KB | βœ… | βœ… | 2C 24 | | MT29F4G01ABAFD | 512MB | 4KB | βœ… | βœ… | 2C 34 | ### Toshiba/Kioxia SPI NAND | Model | Capacity | Page | QSPI | ECC | ID | |-------|----------|------|------|-----|-----| | TC58CVG0S3HRAIG | 128MB | 2KB | βœ… | βœ… | 98 C2 | | TC58CVG1S3HRAIG | 256MB | 2KB | βœ… | βœ… | 98 CB | | TC58CVG2S0HRAIG | 512MB | 4KB | βœ… | βœ… | 98 CD | ### XTX SPI NAND | Model | Capacity | Page | QSPI | ECC | ID | |-------|----------|------|------|-----|-----| | XT26G01A | 128MB | 2KB | βœ… | βœ… | 0B E1 | | XT26G02A | 256MB | 2KB | βœ… | βœ… | 0B E2 | ## Unknown Chips If your chip isn't recognized: 1. OpenFlash will show "Unknown" with the chip ID 2. You can still try operations with manual settings 3. [Request chip support](https://github.com/openflash/openflash/issues/new?template=chip_support.md) ## Adding New Chips To add a chip to the database: 1. Get the chip ID (shown in OpenFlash) 2. Find the datasheet for specifications 3. Submit a PR or issue with: - Manufacturer and model - Chip ID bytes - Page size, block size, capacity - Any special timing requirements ## Manufacturer ID Reference ### Parallel NAND | ID | Manufacturer | |----|--------------| | 0x01 | AMD/Spansion | | 0x20 | ST/Numonyx | | 0x2C | Micron | | 0x89 | Intel | | 0x98 | Toshiba/Kioxia | | 0xAD | SK Hynix | | 0xC2 | Macronix | | 0xC8 | GigaDevice | | 0xEC | Samsung | | 0xEF | Winbond | ### SPI NAND | ID | Manufacturer | |----|--------------| | 0x0B | XTX | | 0x2C | Micron | | 0x98 | Toshiba/Kioxia | | 0xA1 | Fudan Micro | | 0xC2 | Macronix | | 0xC8 | GigaDevice | | 0xCD | Zetta | | 0xE5 | Dosilicon | | 0xEF | Winbond | --- ## eMMC Database (v1.2+) eMMC chips use MMC protocol over SPI interface. OpenFlash v1.2+ supports the following eMMC chips: ### Samsung eMMC | Model | Capacity | HS200 | HS400 | Boot | MID | |-------|----------|-------|-------|------|-----| | KLMBG4JETD-B041 | 32GB | βœ… | βœ… | βœ… | 0x15 | | KLMAG1JETD-B041 | 16GB | βœ… | ❌ | βœ… | 0x15 | ### Micron eMMC | Model | Capacity | HS200 | HS400 | Boot | MID | |-------|----------|-------|-------|------|-----| | MTFC4GACAJCN | 4GB | ❌ | ❌ | βœ… | 0x13/0xFE | | MTFC8GACAAAM | 8GB | βœ… | ❌ | βœ… | 0x13/0xFE | ### SanDisk eMMC | Model | Capacity | HS200 | HS400 | Boot | MID | |-------|----------|-------|-------|------|-----| | SDINBDG4-32G | 32GB | βœ… | βœ… | βœ… | 0x02/0x45 | ### Toshiba eMMC | Model | Capacity | HS200 | HS400 | Boot | MID | |-------|----------|-------|-------|------|-----| | THGBMJG6C1LBAIL | 8GB | βœ… | ❌ | βœ… | 0x11 | ### Kingston eMMC | Model | Capacity | HS200 | HS400 | Boot | MID | |-------|----------|-------|-------|------|-----| | EMMC04G-M627 | 4GB | ❌ | ❌ | βœ… | 0x70 | ### eMMC Manufacturer ID Reference | MID | Manufacturer | |-----|--------------| | 0x02 | SanDisk | | 0x11 | Toshiba | | 0x13 | Micron | | 0x15 | Samsung | | 0x45 | SanDisk | | 0x70 | Kingston | | 0x88 | Foresee | | 0x90 | Hynix | | 0xFE | Micron | --- ## SPI NOR Database (v1.6+) SPI NOR flash chips use standard SPI interface with JEDEC ID auto-detection. OpenFlash v1.6+ supports the following SPI NOR chips: ### Winbond W25Q Series | Model | Capacity | Page | Sector | QSPI | Voltage | JEDEC ID | |-------|----------|------|--------|------|---------|----------| | W25Q16JV | 2MB | 256B | 4KB | βœ… | 3.3V | EF 40 15 | | W25Q32JV | 4MB | 256B | 4KB | βœ… | 3.3V | EF 40 16 | | W25Q64JV | 8MB | 256B | 4KB | βœ… | 3.3V | EF 40 17 | | W25Q128JV | 16MB | 256B | 4KB | βœ… | 3.3V | EF 40 18 | | W25Q256JV | 32MB | 256B | 4KB | βœ… | 3.3V | EF 40 19 | | W25Q512JV | 64MB | 256B | 4KB | βœ… | 3.3V | EF 40 20 | | W25Q16JV-IQ | 2MB | 256B | 4KB | βœ… | 3.3V | EF 70 15 | | W25Q32JV-IQ | 4MB | 256B | 4KB | βœ… | 3.3V | EF 70 16 | | W25Q64JV-IQ | 8MB | 256B | 4KB | βœ… | 3.3V | EF 70 17 | | W25Q128JV-IQ | 16MB | 256B | 4KB | βœ… | 3.3V | EF 70 18 | ### Macronix MX25L Series | Model | Capacity | Page | Sector | QSPI | Voltage | JEDEC ID | |-------|----------|------|--------|------|---------|----------| | MX25L1606E | 2MB | 256B | 4KB | βœ… | 3.3V | C2 20 15 | | MX25L3206E | 4MB | 256B | 4KB | βœ… | 3.3V | C2 20 16 | | MX25L6406E | 8MB | 256B | 4KB | βœ… | 3.3V | C2 20 17 | | MX25L12835F | 16MB | 256B | 4KB | βœ… | 3.3V | C2 20 18 | | MX25L25635F | 32MB | 256B | 4KB | βœ… | 3.3V | C2 20 19 | | MX25L51245G | 64MB | 256B | 4KB | βœ… | 3.3V | C2 20 1A | | MX25U1635F | 2MB | 256B | 4KB | βœ… | 1.8V | C2 25 35 | | MX25U3235F | 4MB | 256B | 4KB | βœ… | 1.8V | C2 25 36 | | MX25U6435F | 8MB | 256B | 4KB | βœ… | 1.8V | C2 25 37 | | MX25U12835F | 16MB | 256B | 4KB | βœ… | 1.8V | C2 25 38 | ### ISSI IS25LP Series | Model | Capacity | Page | Sector | QSPI | Voltage | JEDEC ID | |-------|----------|------|--------|------|---------|----------| | IS25LP016D | 2MB | 256B | 4KB | βœ… | 3.3V | 9D 60 15 | | IS25LP032D | 4MB | 256B | 4KB | βœ… | 3.3V | 9D 60 16 | | IS25LP064D | 8MB | 256B | 4KB | βœ… | 3.3V | 9D 60 17 | | IS25LP128F | 16MB | 256B | 4KB | βœ… | 3.3V | 9D 60 18 | | IS25LP256D | 32MB | 256B | 4KB | βœ… | 3.3V | 9D 60 19 | | IS25LP512M | 64MB | 256B | 4KB | βœ… | 3.3V | 9D 60 1A | | IS25WP016D | 2MB | 256B | 4KB | βœ… | 1.8V | 9D 70 15 | | IS25WP032D | 4MB | 256B | 4KB | βœ… | 1.8V | 9D 70 16 | | IS25WP064D | 8MB | 256B | 4KB | βœ… | 1.8V | 9D 70 17 | | IS25WP128F | 16MB | 256B | 4KB | βœ… | 1.8V | 9D 70 18 | ### SPI NOR Manufacturer ID Reference | ID | Manufacturer | |----|--------------| | 0x01 | Spansion/Cypress | | 0x1F | Atmel/Microchip | | 0x20 | Micron/Numonyx | | 0x9D | ISSI | | 0xBF | SST/Microchip | | 0xC2 | Macronix | | 0xC8 | GigaDevice | | 0xEF | Winbond | --- ## UFS Database (v1.6+) UFS (Universal Flash Storage) chips are detected via descriptor parsing. OpenFlash v1.6+ supports UFS version detection and LUN enumeration: ### Supported UFS Versions | Version | Max Speed | Features | |---------|-----------|----------| | UFS 2.0 | HS-G2 | Basic UFS | | UFS 2.1 | HS-G2 | Device health | | UFS 3.0 | HS-G4 | Write booster | | UFS 3.1 | HS-G4 | HPB, Write booster | | UFS 4.0 | HS-G5 | Advanced features | ### UFS Manufacturer ID Reference | MID | Manufacturer | |-----|--------------| | 0x1AD | SK Hynix | | 0x1CE | Samsung | | 0x12C | Micron | | 0x198 | Toshiba/Kioxia | | 0x145 | Western Digital | --- ## 16-bit Parallel NAND (v1.6+) OpenFlash v1.6+ supports 16-bit (x16) parallel NAND chips. These chips use a 16-bit data bus instead of 8-bit. ### Samsung x16 Chips | Model | Capacity | Page | Bus | ID | |-------|----------|------|-----|-----| | K9F1G16U0D | 128MB | 2KB | x16 | EC F1 00 95 | | K9F2G16U0D | 256MB | 2KB | x16 | EC DA 10 95 | | K9F4G16U0D | 512MB | 2KB | x16 | EC DC 10 95 | ### Micron x16 Chips | Model | Capacity | Page | Bus | ID | |-------|----------|------|-----|-----| | MT29F1G16ABADAH4 | 128MB | 2KB | x16 | 2C F1 80 95 | | MT29F2G16ABAEAH4 | 256MB | 2KB | x16 | 2C DA 90 95 | | MT29F4G16ABADAH4 | 512MB | 2KB | x16 | 2C DC 90 95 | ### SK Hynix x16 Chips | Model | Capacity | Page | Bus | ID | |-------|----------|------|-----|-----| | H27U1G16F2BTR | 128MB | 2KB | x16 | AD F1 00 1D | | H27U2G16F2CTR | 256MB | 2KB | x16 | AD DA 80 15 | | H27U4G16F2DTR | 512MB | 4KB | x16 | AD DC 90 95 |