uboot/include/linux/mtd/inftl-user.h
<<
>>
Prefs
   1/*
   2 * $Id: inftl-user.h,v 1.2 2005/11/07 11:14:56 gleixner Exp $
   3 *
   4 * Parts of INFTL headers shared with userspace
   5 *
   6 */
   7
   8#ifndef __MTD_INFTL_USER_H__
   9#define __MTD_INFTL_USER_H__
  10
  11#define OSAK_VERSION    0x5120
  12#define PERCENTUSED     98
  13
  14#define SECTORSIZE      512
  15
  16/* Block Control Information */
  17
  18struct inftl_bci {
  19        uint8_t ECCsig[6];
  20        uint8_t Status;
  21        uint8_t Status1;
  22} __attribute__((packed));
  23
  24struct inftl_unithead1 {
  25        uint16_t virtualUnitNo;
  26        uint16_t prevUnitNo;
  27        uint8_t ANAC;
  28        uint8_t NACs;
  29        uint8_t parityPerField;
  30        uint8_t discarded;
  31} __attribute__((packed));
  32
  33struct inftl_unithead2 {
  34        uint8_t parityPerField;
  35        uint8_t ANAC;
  36        uint16_t prevUnitNo;
  37        uint16_t virtualUnitNo;
  38        uint8_t NACs;
  39        uint8_t discarded;
  40} __attribute__((packed));
  41
  42struct inftl_unittail {
  43        uint8_t Reserved[4];
  44        uint16_t EraseMark;
  45        uint16_t EraseMark1;
  46} __attribute__((packed));
  47
  48union inftl_uci {
  49        struct inftl_unithead1 a;
  50        struct inftl_unithead2 b;
  51        struct inftl_unittail c;
  52};
  53
  54struct inftl_oob {
  55        struct inftl_bci b;
  56        union inftl_uci u;
  57};
  58
  59
  60/* INFTL Media Header */
  61
  62struct INFTLPartition {
  63        __u32 virtualUnits;
  64        __u32 firstUnit;
  65        __u32 lastUnit;
  66        __u32 flags;
  67        __u32 spareUnits;
  68        __u32 Reserved0;
  69        __u32 Reserved1;
  70} __attribute__((packed));
  71
  72struct INFTLMediaHeader {
  73        char bootRecordID[8];
  74        __u32 NoOfBootImageBlocks;
  75        __u32 NoOfBinaryPartitions;
  76        __u32 NoOfBDTLPartitions;
  77        __u32 BlockMultiplierBits;
  78        __u32 FormatFlags;
  79        __u32 OsakVersion;
  80        __u32 PercentUsed;
  81        struct INFTLPartition Partitions[4];
  82} __attribute__((packed));
  83
  84/* Partition flag types */
  85#define INFTL_BINARY    0x20000000
  86#define INFTL_BDTL      0x40000000
  87#define INFTL_LAST      0x80000000
  88
  89#endif /* __MTD_INFTL_USER_H__ */
  90