119 lines
4.2 KiB
C
Executable File
119 lines
4.2 KiB
C
Executable File
#ifndef _MRD_STRUCTURE_
|
|
#define _MRD_STRUCTURE_
|
|
|
|
#if 0
|
|
/*-------------------------------------------------------------------
|
|
* MRD structdure reference from Econet platform
|
|
*/
|
|
#define MRD_OFFSET 0xff00
|
|
#define MRD_SIZE 0x100
|
|
#define MRD_SERIAL_NUM_LEN 14
|
|
#define MRD_IMEI_NUM_LEN 18
|
|
#define MRD_VENDOR_NAME_LEN 32
|
|
#define MRD_PRODUCT_NAME_LEN 32
|
|
#define MRD_MAC_ADDR_LEN 6
|
|
#define MRD_FEATUREBITS_LEN 30
|
|
|
|
typedef struct mrd {
|
|
unsigned char SDRAM_CONF_array[4];
|
|
unsigned char VENDOR_NAME[MRD_VENDOR_NAME_LEN];
|
|
unsigned char PRODUCT_NAME[MRD_PRODUCT_NAME_LEN];
|
|
unsigned char FUNC_BYTE[4];
|
|
unsigned char ETHER_ADDR[MRD_MAC_ADDR_LEN];
|
|
unsigned char SNMP_SYSOBJID_array[22];
|
|
unsigned char COUNTRY_array;
|
|
unsigned char ether_gpio;
|
|
unsigned char power_gpio[2];
|
|
unsigned char restore_flag;
|
|
unsigned char unused1[32];
|
|
unsigned char lte_gpio;
|
|
unsigned char internet_gpio;
|
|
unsigned char multi_upgrade_gpio[16];
|
|
unsigned char id_76xx;
|
|
unsigned char onu_type; //byte 0~156
|
|
//IMEI number
|
|
#if 1
|
|
unsigned char IMEI[MRD_IMEI_NUM_LEN];
|
|
#else
|
|
unsigned char SN[18];
|
|
#endif
|
|
/* --- ZyXEL related --- start --- */
|
|
unsigned char SerialNumber[MRD_SERIAL_NUM_LEN];
|
|
unsigned char NumMacAddrs;
|
|
unsigned char MrdVer;
|
|
unsigned char EngDebugFlag;
|
|
unsigned char BootingFlag;
|
|
unsigned char MainFeatureBit;
|
|
unsigned char FeatureBits[MRD_FEATUREBITS_LEN];
|
|
unsigned char HTP_Switch;
|
|
unsigned char WpaPskKey[16];
|
|
// bootloader related information
|
|
unsigned char BM_VER_MAJ;
|
|
unsigned char BM_VER_MIN;
|
|
unsigned char BM_VER_ECO;
|
|
unsigned char builddate[4];
|
|
unsigned char buildtime[3]; //byte 0~72
|
|
/* --- ZyXEL related --- end --- */
|
|
#ifdef BOOTROM_LARGE_SIZE //For ZyXEL project, we always enable "BOOTROM_LARGE_SIZE"
|
|
// mic.conf will located at the end of block 0.
|
|
// boot_crc32 will located at the last 4 bytes of block 1.
|
|
unsigned char unused2[6]; // let total structure have 256 bytes.
|
|
#else
|
|
// if MRD structure locate at the end of boot.bin, need reserve 4 bytes for crc.
|
|
unsigned char unused[2]; // let total structure have 256 bytes
|
|
unsigned char boot_crc32[4]; //filled by trx.c
|
|
#endif
|
|
} __attribute__((packed)) MRD_DATA, *PMRD_DATA;
|
|
|
|
#else
|
|
|
|
/*-------------------------------------------------------------------
|
|
* MRD structdure from MSTC manufacuring
|
|
*/
|
|
#define MRD_OFFSET 0xfe00
|
|
#define MRD_SIZE 0x200
|
|
|
|
|
|
#define MRD_DATA_SIZE 512
|
|
|
|
#define NUM_OF_NAME_BYTES 32
|
|
#define NUM_OF_SERIAL_NUMBER_BYTES 14
|
|
#define NUM_OF_MAC_BYTES 6
|
|
#define NUM_OF_COUNTRY_CODE_BYTES 2
|
|
#define NUM_OF_FEATURE_BYTES 32
|
|
#define NUM_OF_MAGIC_BYTES 4
|
|
#define NUM_OF_BUILDINFO_BYTES 10
|
|
#define NUM_OF_HARDWARE_VER_BYTES 4
|
|
#define NUM_OF_RESERVED_BYTES (MRD_DATA_SIZE - (NUM_OF_NAME_BYTES * 4) - NUM_OF_SERIAL_NUMBER_BYTES - \
|
|
NUM_OF_MAC_BYTES - 2 - NUM_OF_COUNTRY_CODE_BYTES - NUM_OF_FEATURE_BYTES - 1 - \
|
|
NUM_OF_BUILDINFO_BYTES - NUM_OF_HARDWARE_VER_BYTES - 1 - 1 - 1) //- 1 - 1 - 1 - 4 - 3)
|
|
|
|
typedef struct mrd {
|
|
unsigned char VendorName[NUM_OF_NAME_BYTES];
|
|
unsigned char ProductName[NUM_OF_NAME_BYTES];
|
|
unsigned char NameReserved[NUM_OF_NAME_BYTES];
|
|
unsigned char SerialNumber[NUM_OF_SERIAL_NUMBER_BYTES];
|
|
unsigned char BaseMacAddr[NUM_OF_MAC_BYTES];
|
|
unsigned char MacAddrQuantity;
|
|
unsigned char EngDebugFlag;
|
|
unsigned char CountryCode[NUM_OF_COUNTRY_CODE_BYTES];
|
|
unsigned char FeatureBits[NUM_OF_FEATURE_BYTES];
|
|
unsigned char MainFeatureBits;
|
|
unsigned char BuildInfo[NUM_OF_BUILDINFO_BYTES];
|
|
unsigned char ProductExtName[NUM_OF_NAME_BYTES];
|
|
unsigned char HardwareVersion[NUM_OF_HARDWARE_VER_BYTES];
|
|
unsigned char COUNTRY_array;
|
|
unsigned char COUNTRY_array_reserve;
|
|
unsigned char BootingFlag;
|
|
//unsigned char BM_VER_MAJ;
|
|
//unsigned char BM_VER_MIN;
|
|
//unsigned char BM_VER_ECO;
|
|
//unsigned char builddate[4];
|
|
//unsigned char buildtime[3];
|
|
unsigned char Reserved[NUM_OF_RESERVED_BYTES];
|
|
} __attribute__((packed)) MRD_DATA, *PMRD_DATA;
|
|
|
|
#endif //ZYXEL or MSTC manufacturing MRD structure.
|
|
|
|
#endif
|