#ifndef MP1000_SEPROM_H #define MP1000_SEPROM_H /* * mp1000-seprom.h * * * This file contains the Serial EEPROM definitions for the MP1000 board * * Copyright (C) 2005 Comdial Corporation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #define COMMAND_ERASE (0x1C0) #define COMMAND_ERASE_ALL (0x120) #define COMMAND_WRITE_DISABLE (0x100) #define COMMAND_WRITE_ENABLE (0x130) #define COMMAND_READ (0x180) #define COMMAND_WRITE (0x140) #define COMMAND_WRITE_ALL (0x110) // // Serial EEPROM data format // #define PACKED __attribute__ ((packed)) typedef struct _EEPROM { union { unsigned char eprom_byte_data[128]; unsigned short eprom_short_data[64]; struct { unsigned char version PACKED; // EEPROM Version "1" for now unsigned char box_id PACKED; // Box ID (Standalone, SOHO, embedded, etc) unsigned char major_hw_version PACKED; // Major Hardware version (Hex) unsigned char minor_hw_version PACKED; // Minor Hardware Version (Hex) unsigned char mfg_id[3] PACKED; // Manufacturer ID (3 character Alphabetic) unsigned char mfg_serial_number[10] PACKED; // Manufacturer Serial number unsigned char mfg_date[3] PACKED; // Date of Mfg (Formatted YY:MM:DD) unsigned char country PACKED; // Country of deployment unsigned char mac_Address[6] PACKED; // MAC Address unsigned char oem_string[20] PACKED; // OEM ID string unsigned short feature_bits1 PACKED; // Feature Bits 1 unsigned short feature_bits2 PACKED; // Feature Bits 2 unsigned char filler[75] PACKED; // Unused/Undefined “0” initialized unsigned short checksum PACKED; // byte accumulated short checksum } eprom_struct; } variant; } eeprom_struct; /* These settings must be mutually exclusive */ #define FEATURE_BITS1_DRAMSIZE_16MEG 0x0001 /* 0 signifies 4 MEG system */ #define FEATURE_BITS1_DRAMSIZE_8MEG 0x0002 /* 1 in bit 1 = 8MEG system */ #define FEATURE_BITS1_DRAMSIZE_64MEG 0x0004 /* 1 in bit 2 = 64MEG system */ #define FEATURE_BITS1_CPUIS90MEG 0x0010 extern void seprom_init(void); extern eeprom_struct* get_seprom_ptr(void); extern unsigned char* get_eeprom_mac_address(void); #endif /* MP1000_SEPROM_H */