123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384 |
- #ifndef __UBI_MEDIA_H__
- #define __UBI_MEDIA_H__
- #include <asm/byteorder.h>
- #define UBI_VERSION 1
- #define UBI_MAX_ERASECOUNTER 0x7FFFFFFF
- #define UBI_CRC32_INIT 0xFFFFFFFFU
- #define UBI_EC_HDR_MAGIC 0x55424923
- #define UBI_VID_HDR_MAGIC 0x55424921
- enum {
- UBI_VID_DYNAMIC = 1,
- UBI_VID_STATIC = 2
- };
- enum {
- UBI_VTBL_AUTORESIZE_FLG = 0x01,
- UBI_VTBL_SKIP_CRC_CHECK_FLG = 0x02,
- };
- enum {
- UBI_COMPAT_DELETE = 1,
- UBI_COMPAT_RO = 2,
- UBI_COMPAT_PRESERVE = 4,
- UBI_COMPAT_REJECT = 5
- };
- #define UBI_EC_HDR_SIZE sizeof(struct ubi_ec_hdr)
- #define UBI_VID_HDR_SIZE sizeof(struct ubi_vid_hdr)
- #define UBI_EC_HDR_SIZE_CRC (UBI_EC_HDR_SIZE - sizeof(__be32))
- #define UBI_VID_HDR_SIZE_CRC (UBI_VID_HDR_SIZE - sizeof(__be32))
- struct ubi_ec_hdr {
- __be32 magic;
- __u8 version;
- __u8 padding1[3];
- __be64 ec;
- __be32 vid_hdr_offset;
- __be32 data_offset;
- __be32 image_seq;
- __u8 padding2[32];
- __be32 hdr_crc;
- } __attribute__ ((packed));
- struct ubi_vid_hdr {
- __be32 magic;
- __u8 version;
- __u8 vol_type;
- __u8 copy_flag;
- __u8 compat;
- __be32 vol_id;
- __be32 lnum;
- __be32 leb_ver;
- __be32 data_size;
- __be32 used_ebs;
- __be32 data_pad;
- __be32 data_crc;
- __u8 padding2[4];
- __be64 sqnum;
- __u8 padding3[12];
- __be32 hdr_crc;
- } __attribute__ ((packed));
- #define UBI_INT_VOL_COUNT 1
- #define UBI_INTERNAL_VOL_START (0x7FFFFFFF - 4096)
- #define UBI_LAYOUT_VOLUME_ID UBI_INTERNAL_VOL_START
- #define UBI_LAYOUT_VOLUME_TYPE UBI_VID_DYNAMIC
- #define UBI_LAYOUT_VOLUME_ALIGN 1
- #define UBI_LAYOUT_VOLUME_EBS 2
- #define UBI_LAYOUT_VOLUME_NAME "layout volume"
- #define UBI_LAYOUT_VOLUME_COMPAT UBI_COMPAT_REJECT
- #define UBI_MAX_VOLUMES 128
- #define UBI_VOL_NAME_MAX 127
- #define UBI_VTBL_RECORD_SIZE sizeof(struct ubi_vtbl_record)
- #define UBI_VTBL_RECORD_SIZE_CRC (UBI_VTBL_RECORD_SIZE - sizeof(__be32))
- struct ubi_vtbl_record {
- __be32 reserved_pebs;
- __be32 alignment;
- __be32 data_pad;
- __u8 vol_type;
- __u8 upd_marker;
- __be16 name_len;
- __u8 name[UBI_VOL_NAME_MAX+1];
- __u8 flags;
- __u8 padding[23];
- __be32 crc;
- } __attribute__ ((packed));
- #endif
|