| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.hardware.nand; |
| |
| // Matches the value of ZBI_PARTITION_GUID_LEN. |
| const uint32 GUID_LEN = 16; |
| |
| enum Class : uint32 { |
| UNKNOWN = 0; // Unknown device. |
| PARTMAP = 1; // NAND device contains multiple partitions. |
| FTL = 2; // NAND device is a FTL partition. |
| BBS = 3; // NAND device is a bad block skip partition. |
| TEST = 4; // Test device. |
| }; |
| |
| struct Info { |
| uint32 page_size; // Read/write unit size, in bytes. |
| uint32 pages_per_block; // Erase block size, in pages. |
| uint32 num_blocks; // Device size, in erase blocks. |
| uint32 ecc_bits; // Number of ECC bits (correctable bit flips), |
| // per correction chunk. |
| uint32 oob_size; // Available out of band bytes per page. |
| Class nand_class; // The device purpose. |
| array<uint8>:GUID_LEN partition_guid; // Partition type GUID from partition map. |
| }; |