Здравствуйте, вопрос к тем, у кого есть опыт работы с YAFFS
Тут возникло глобальное недопонимание. Я настраиваю yaffs2 для применения на AT45DB321D -- NAND, сектор 512+16 байт. chunk делаю размером в 2 сектора флеши -- 1024 байт данные 32 байта на всё остальное.
В документации http://www.yaffs.net/yaffs-2-specification есть таблица Tag structure, из которой следует, что мне как раз хватает на всё, включая ECC на данные и на саму структуру тэгов тоже.

Код
╔═══════════════╦═════════════════════════════════════╦═════════════════════╦═════════════════════╗
║ Field         ║ Comment                             ║ Size for 1kb chunks ║ Size for 2kB chunks ║
╠═══════════════╬═════════════════════════════════════╬═════════════════════╬═════════════════════╣
║ blockState    ║ Block state. non-0xFF for bad block ║ 1                   ║ 1                   ║
║ chunkId       ║ 32-bit chunk Id                     ║ 4                   ║ 4                   ║
║ objectId      ║ 32-bit object Id                    ║ 4                   ║ 4                   ║
║ nBytes        ║ Number of data bytes in this chunk  ║ 2                   ║ 2                   ║
║ blockSequence ║ sequence number for this block      ║ 4                   ║ 4                   ║
║ tagsEcc       ║ ECC on tags area                    ║ 3                   ║ 3                   ║
║ ecc           ║ ECC, 3 bytes/256 bytes of data      ║ 12                  ║ 24                  ║
║ Total         ║                                     ║ 30                  ║                     ║
╚═══════════════╩═════════════════════════════════════╩═════════════════════╩═════════════════════╝


Однако, когда вызываются мои функции чтения или записи chunk'а, мне передаётся oob_len равный 28 байт. Причина в том, что в файле yaffs_packedtags2.h есть структура:
Код
struct yaffs_packed_tags2 {
    struct yaffs_packed_tags2_tags_only t;
    struct yaffs_ecc_other ecc;
};

А в yaffs_ecc.h
Код
struct yaffs_ecc_other {
    unsigned char col_parity;
    unsigned line_parity;
    unsigned line_parity_prime;
};


Которые как раз и получаются размером 28 байт, если учесть выравнивание 4 байта. Т.е. на 12 байт для ECC для данных места не хватает.

Вопрос, как мне получить показатели, которые приведены в таблице в документации?