forked from Minki/linux
0b83f1400f
Patch from Jon Ringle Updated 2898/1 per comments: - Removed fixup - Moved code in mach-mp1000/ to mach-clps711x/ - Cleaned up code in mp1000-seprom.c. Eliminated code that displayed the contents of the eeprom Please comment. Signed-off-by: Jon Ringle Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
78 lines
2.8 KiB
C
78 lines
2.8 KiB
C
#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 <09>0<EFBFBD> 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 */
|
||
|