blob: 955a73027978465c4c3abb6c0f5a0b8edba59f34 [file] [log] [blame]
/*
* Copyright (c) 2020 The Fuchsia Authors
*
* SPDX-License-Identifier: BSD-3-Clause
*
* The file should be kept in sync with
* src/storage/volume_image/ftl/raw_nand_image.h in the
* fuchsia repo
*/
#define FVM_FTL_IMAGE_REQUIRE_WIPE 1
#define FVM_FTL_IMAGE_RAW 0
#define FVM_FTL_IMAGE_ANDROID_SPARSE 1
// Identifies this header.
#define FVM_FTL_IMAGE_MAGIC 0x12A17178711A711D
// Current major version.
#define FVM_FTL_IMAGE_MAJOR 1
// Current minor version.
#define FVM_FTL_IMAGE_MANIOR 1
// Header that precedes a block image, whose block data is being
// augmented with Out Of Band(OOB) or Spare Area bytes.
struct RawNandImageHeader {
// 64 bits reserved as an indicator of this prelude.
uint64_t magic;
// Major version number for the format.
// Crossing this version may break backwards compatibility.
uint32_t version_major;
// Min version number for the format.
// Crossing this version will not break backwards compatibility.
uint32_t version_minor;
// Set of blacks to tweak behaviour during the flashing process.
// Values must match |RawNandSparseImageFlag| enum.
uint32_t flags;
// Format of the content following the RawNandImageHeader.
uint32_t format;
// Page size used for the data written in the chosen image format.
// Must be equal to the target device page size.
uint32_t page_size;
// Out of band bytes used in data written in the chosen image format.
// Must be small or equal to the target device OOB byte size.
uint8_t oob_size;
// Reserved
uint8_t reserved[3];
} __attribute__((packed));