/*------------------------------------------------------------ (C) Copyright [2006-2008] Marvell International Ltd. All Rights Reserved ------------------------------------------------------------*/ /*-------------------------------------------------------------------------------------------------------------------- INTEL CONFIDENTIAL Copyright 2006 Intel Corporation All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its suppliers or licensors. Title to the Material remains with Intel Corporation or its suppliers and licensors. The Material contains trade secrets and proprietary and confidential information of Intel or its suppliers and licensors. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without Intel's prior express written permission. No license under any patent, copyright, trade secret or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel or otherwise. Any license under such intellectual property rights must be express and approved by Intel in writing. -------------------------------------------------------------------------------------------------------------------*/ /************************************************************************/ /* */ /* Title: BOARD information */ /* */ /* Filename: board_info.h */ /* */ /* Authors: Rony Hanina */ /* */ /* Target, subsystem: Common Platform, HAL */ /************************************************************************/ #ifndef _BOARD_INFO_H_ #define _BOARD_INFO_H_ /***************************************************************************/ #include "i2c_eeprom.h" //#define __EPROM_OLD_VERSION__ 1 /***************************************************************************/ #define EPROM_NUM_OF_CARD 15 //ICAT EXPORTED ENUM typedef enum { HERMON_PLATFORM = 0x01, TAVOR_PLATFORM = 0x10, BULVERDE_PLATFORM = 0x20, MONAHANS_PLATFORM = 0x30, TAVOR_PV_PLATFORM = 0x40, TAVOR_PV2_PLATFORM = 0x50, TAVOR_MMP_PLATFORM = 0x60, HERMON_2_PLATFORM = 0x70 }EpromPlatformName; //ICAT EXPORTED ENUM typedef enum { EVB_TYPE = 0x01, PDK_TYPE = 0x10, PPV_TYPE = 0x20, SAAR_TYPE = 0x30, YARDEN_TYPE = 0x40 }EpromPlatformType; //ICAT EXPORTED ENUM typedef enum { APPS_PROC_TYPE_BULVERDE_B0 = 0x01, APPS_PROC_TYPE_BULVERDE_MCP1 = 0x02, APPS_PROC_TYPE_BULVERDE_MCP2 = 0x03, APPS_PROC_TYPE_MONAHANS_A0 = 0x10, APPS_PROC_TYPE_MONAHANS_B0 = 0x11, APPS_PROC_TYPE_TAVOR_Z0 = 0x20, APPS_PROC_TYPE_TAVOR_A0 = 0x21, APPS_PROC_TYPE_TAVOR_A1 = 0x22, APPS_PROC_TYPE_TAVOR_B0 = 0x23, APPS_PROC_TYPE_TAVOR_B1 = 0x24, APPS_PROC_TYPE_TAVOR_B2 = 0x25, APPS_PROC_TYPE_TAVOR_PV = 0x28, APPS_PROC_TYPE_TAVOR_PV2 = 0x2B, APPS_PROC_TYPE_TAVOR_MMP = 0x2D, APPS_PROC_TYPE_HERMON_2 = 0x30 }EpromAppsProcType; //ICAT EXPORTED ENUM typedef enum { COMM_PROC_TYPE_HERMON_B0 = 0x01, COMM_PROC_TYPE_HERMON_B1 = 0x02, COMM_PROC_TYPE_HERMON_B2 = 0x03, COMM_PROC_TYPE_HERMON_B3 = 0x04, COMM_MCP1_TYPE_HERMON_B3 = 0x05, COMM_MCP2_TYPE_HERMON_B3 = 0x06, COMM_MCP2_TYPE_HERMON_LV = 0x07, COMM_MCP2_TYPE_HERMON_L = 0x08, COMM_PROC_TYPE_TAVOR_Z0 = 0x10, COMM_PROC_TYPE_TAVOR_A0 = 0x11, COMM_PROC_TYPE_TAVOR_A1 = 0x12, COMM_PROC_TYPE_TAVOR_B0 = 0x13, COMM_PROC_TYPE_TAVOR_B1 = 0x14, COMM_PROC_TYPE_TAVOR_B2 = 0x15, COMM_PROC_TYPE_TAVOR_PV = 0x17, COMM_PROC_TYPE_TAVOR_PV2 = 0x1A, COMM_PROC_TYPE_TAVOR_MMP = 0x20, COMM_PROC_TYPE_HERMON_2 = 0x30 }EpromCommProcType; //ICAT EXPORTED ENUM typedef enum { CEDER_CREEK_C0_TYPE = 0x01, CEDER_CREEK_D0_TYPE = 0x02, GILON_A0_TYPE = 0x10, GILON_B0_TYPE = 0x11, GILON_C0_TYPE = 0x12 }EpromAfeType; //ICAT EXPORTED ENUM typedef enum { ARAVA_REV_8_TYPE = 0x01, ARAVA_REV_9_TYPE = 0x02, MICCO_A0_TYPE = 0x10, MICCO_B0_TYPE = 0x11, MICCO_C0_TYPE = 0x12, MICCO_D0_TYPE = 0x13 }EpromPmicType; //ICAT EXPORTED ENUM typedef enum { SAMSUNG_K9K1216Q0C_NAND_TYPE = 0x01, SAMSUNG_K9F1G08R0A_NAND_TYPE = 0x02, SAMSUNG_K9K1G08R0B_NAND_TYPE = 0x03, SAMSUNG_POP_2Gx16ONENAND_1Gx32DDR_TYPE = 0x04, MICRON_MT29F1G08ABA_NAND_TYPE = 0x10, MICRON_MT29F1G16ABA_NAND_TYPE = 0x11, MICRON_MT29F1G08ABB_NAND_TYPE = 0x12, MICRON_MT29F1G16ABB_NAND_TYPE = 0x13, SAMSUNG_ONENAND_KMF1G16Q2A_NAND_TYPE = 0x20, MSYS_MDOC3_MD2534D2GV18XP_NAND_TYPE = 0x30 }EpromNandFlashType; //ICAT EXPORTED ENUM typedef enum { INTEL_TYAX_RD48F4440LVYBQO_NOR_TYPE = 0x01, INTEL_TYAX_LZ48F4440LOYBPO_NOR_TYPE = 0x02, INTEL_SIBLEY_PF48F5000M0Y1B0_NOR_TYPE = 0x10, INTEL_SIBLEY_PF48F5000M0Y0C0_NOR_TYPE = 0x11 }EpromNorFlashType; //ICAT EXPORTED ENUM typedef enum { SAMSUNG_SDRAM_K4S51323_TYPE = 0x01, SAMSUNG_SDRAM_K4S56163_TYPE = 0x02, INFINEON_DDR_HYB18M512160_TYPE = 0x10, MICRON_DDR_MT46H16M32LF_TYPE = 0x20, MICRON_DDR_MT46H32M16LF_TYPE = 0x21, MICRON_DDR_1Gx32_TYPE = 0x22, MICRON_POP_1Gx16NAND_512x32DDR_TYPE = 0x23, MICRON_POP_2Gx16NAND_1Gx32DDR_TYPE = 0x30 }EpromSdramType; //ICAT EXPORTED ENUM typedef enum { NORMAL_OPERATION_MODE = 0x01, SYSTEM_DEBUG_MODE = 0x10, L1_DEBUG_MODE = 0x20 }EpromPlatformConfigMode; //ICAT EXPORTED ENUM typedef enum { EPSON_L2F50282T00_MAIN = 0x01, JAMITECH_J220Q203_MAIN = 0x02, TOSHIBA_LTM020D550_MAIN = 0x03, TOSHIBA_LTD024D440_MAIN = 0x04, EPSON_L2F60012T00_MAIN = 0x10, EPSON_L2F50176T00_MAIN = 0x11, EPSON_LTM022A97A_MAIN = 0x12 }EpromMainLcdType; //ICAT EXPORTED ENUM typedef enum { EPSON_L2F50282T00_SUB = 0x01, JAMITECH_J220Q203_SUB = 0x02, TOSHIBA_LTM020D550_SUB = 0x03, TOSHIBA_LTD024D440_SUB = 0x04, EPSON_L2F60012T00_SUB = 0x10, EPSON_L2F50176T00_SUB = 0x11, EPSON_LTM022A97A_SUB = 0x12 }EpromSubLcdType; //ICAT EXPORTED ENUM typedef enum { OV9640_MAIN = 0x01, OV9650_MAIN = 0x02, OV9653_MAIN = 0x03, OV9655_MAIN = 0x04, OV2630_MAIN = 0x05, OV2640_MAIN = 0x06, OV3630_MAIN = 0x07, OV7660_MAIN = 0x08, OV6680_MAIN = 0x09, OV3640_MAIN = 0x0A }EpromMainCameraType; //ICAT EXPORTED ENUM typedef enum { OV9640_SUB = 0x01, OV9650_SUB = 0x02, OV9653_SUB = 0x03, OV9655_SUB = 0x04, OV2630_SUB = 0x05, OV2640_SUB = 0x06, OV3630_SUB = 0x07, OV7660_SUB = 0x08, OV6680_SUB = 0x09, OV3640_SUB = 0x0A }EpromSubCameraType; //ICAT EXPORTED ENUM typedef enum { HSDL_3002 = 0x01 }EpromIrdaType; //ICAT EXPORTED ENUM typedef enum { KEYPAD_5_5_NO_ROTARY_NO_DIRECT = 0x01, KEYPAD_5_5_WITH_ROTARY_NO_DIRECT = 0x02, KEYPAD_5_5_WITH_ROTARY_WITH_DIRECT = 0x03, KEYPAD_8_8_NO_ROTARY_NO_DIRECT = 0x04, KEYPAD_8_8_WITH_ROTARY_NO_DIRECT = 0x10, KEYPAD_8_8_WITH_ROTARY_WITH_DIRECT = 0x11, KEYPAD_6_6_NO_ROTARY_NO_DIRECT = 0x12, KEYPAD_6_6_WITH_ROTARY_NO_DIRECT = 0x13, KEYPAD_6_6_WITH_ROTARY_WITH_DIRECT = 0x20, }EpromKeypadType; //ICAT EXPORTED ENUM typedef enum { LCD_PARALLEL_USING_PMIC = 0x01, LCD_PARALLEL_USING_PWM = 0x02, LCD_SERIAL_USING_PMIC = 0x10, LCD_SERIAL_USING_PWM = 0x11 }EpromMainLcdBlType; //ICAT EXPORTED ENUM typedef enum { SUB_LCD_PARALLEL_USING_PMIC = 0x01, SUB_PARALLEL_USING_PWM = 0x02, SUB_SERIAL_USING_PMIC = 0x10, SUB_SERIAL_USING_PWM = 0x11 }EpromSubLcdBlType; //ICAT EXPORTED ENUM typedef enum { KEYPAD_PARALLEL_USING_PMIC = 0x01, KEYPAD_PARALLEL_USING_PWM = 0x02, KEYPAD_SERIAL_USING_PMIC = 0x10, KEYPAD_SERIAL_USING_PWM = 0x11 }EpromKeypadBlType; //ICAT EXPORTED ENUM typedef enum { CAM_PARALLEL_USING_PMIC = 0x01, CAM_PARALLEL_USING_GPIO = 0x02, CAM_SERIAL_USING_PMIC = 0x10, CAM_SERIAL_USING_GPIO = 0x11 }EpromCamStrobeType; //ICAT EXPORTED ENUM typedef enum { PHILIPS_TEA5764 = 0x01, PHILIPS_TEA5761 = 0x02, SILICON_LAB_SI4700 = 0x03 }EpromFmRadioType; //ICAT EXPORTED ENUM typedef enum { #ifdef __EPROM_OLD_VERSION__ EPROM_LCD_CAM_V1 = 0x40, EPROM_LCD_CAM_V2 = 0x41, EPROM_KEYPAD = 0x51, EPROM_MISC_V1 = 0x60, EPROM_MISC_V2 = 0x61, EPROM_MAIN_BOARD_V1 = 0x100, EPROM_MAIN_BOARD_V2 = 0x101, EPROM_DC_14 = 0x110, EPROM_DC_35 = 0x111, EPROM_DC_40 = 0x112, EPROM_MEMORY_V1 = 0x120, EPROM_MEMORY_V2 = 0x121, EPROM_RF_GILON_V1 = 0x150, EPROM_RF_GILON_V2 = 0x151, EPROM_MICCO_B_V1 = 0x171, EPROM_MICCO_B_V2 = 0x172, EPROM_RF_POLEG_V1 = 0x190, EPROM_RF_POLEG_V2 = 0x191, EPROM_RF_POLEG_Z0_ADAPTOR = 0x192, EPROM_RF_POLARIS_2_V8 = 0x1a0, EPROM_RF_POLARIS_2_V9 = 0x1a1, EPROM_RF_POLARIS_2_Z0_AVB_ADAPTOR = 0x1a5, EPROM_RF_MAXIM = 0x1b0, EPROM_TEC = 0x1d0 #else TAVOR_MATHIS_Z0 = 0x01, TAVOR_MATHIS_A0 = 0x02, TAVOR_MATHIS_B0 = 0x03, HERMON_MATHIS_SOLDERED = 0x08, HERMON_MATHIS_SOCKET = 0x09, HERMON_MATHIS_SOCKET_PPV = 0x0a, HERMON_MATHIS_FOR_POLEG = 0x0b, HERMON_L_MATHIS = 0x0c, HERMON_MATHIS_2_CHIP_CC = 0x0f, MATHIS_MAIN_BOARD = 0x11, LCD_CAM_TAVOR = 0x13, LCD_CAM_HERMON = 0x14, KEYPAD_2_CHIP = 0x17, KEYPAD_TAVOR = 0x18, MISC_TAVOR = 0x1a, MISC_HERMON = 0x1d, BT = 0x1f, GPS = 0x21, WLAN = 0x23, WLAN_AND_BT = 0x25, TAVOR_EVB2_MAIN_BOARD = 0x27, TAVOR_A0_EVB2_DC_14 = 0x29, TAVOR_A0_EVB2_DC_35 = 0x2a, TAVOR_A0_EVB2_DC_PLBGA = 0x2b, TAVOR_B0_EVB2_DC_14 = 0x2d, TAVOR_B0_EVB2_DC_35 = 0x2e, TAVOR_B0_EVB2_DC_PLBGA = 0x2f, TAVOR_EVB_MEMORY = 0x31, TAVOR_EVB2_NAND_AND_NOR_MEM = 0x32, TAVOR_EVB2_DUAL_NAND_MEM = 0x33, TAVOR_EVB1_MAIN_BOARD = 0x37, TAVOR_EVB1_DC_14 = 0x39, TAVOR_EVB1_DC_35 = 0x3a, TAVOR_EVB1_DC_PLBGA = 0x3b, AFE_GILON_DC = 0x3d, AFE_CCR_DC_V3 = 0x3f, MICCO_A = 0x41, MICCO_B = 0x42, MICCO_C = 0x43, LDO_CARD = 0x46, LDO_CARD_FOR_TAVOR = 0x47, TAVOR_EVB_LDO_ADAPTOR = 0x48, RF_POLEG = 0x4a, RF_POLEG_Z0_ADAPTOR = 0x4b, RF_SION = 0x4d, RF_AYALON = 0x4F, RF_YARKON = 0x51, RF_DOLEV = 0x53, RF_ALMOG = 0x55, RF_MAXIM = 0x57, RF_POLARIS = 0x59, L1_TOOLS_CARD = 0x5b, CLOCK_ONLY = 0x5e #endif } EpromCardType; typedef enum { EEPROM_MAIN_BOARD = 0, EEPROM_LCD_CAM = 1, EEPROM_MICCO = 2, EEPROM_35_DC = 3, EEPROM_14_DC = 4, EEPROM_40_DC = 5, EEPROM_MISC = 6, EEPROM_KEYPAD = 7, EEPROM_TEC = 8, EEPROM_MEMORY = 9, EEPROM_MAXIM = 10, EEPROM_POLARIS = 11, EEPROM_POLEG = 12, EEPROM_GILON = 13, EEPROM_MAX_CARD } EEPROM_Card; //ICAT EXPORTED ENUM typedef enum { EEPROM_RF_MAXIM_POLARIS_2_V9 = 0x1, EEPROM_RF_POLEG_V1 = 0x2, EEPROM_RF_POLEG_V2 = 0x3, EEPROM_RF_POLEG_V3 = 0x4, EEPROM_RF_POLEG_V4 = 0x5, EEPROM_RF_POLEG_V5 = 0x6, EEPROM_RF_POLEG_V6 = 0x7, EEPROM_RF_POLEG_V7 = 0x8, EEPROM_RF_POLEG_V8 = 0x9, EEPROM_RF_POLEG_V9 = 0xA, EEPROM_RF_POLEG_V10 = 0xB, EEPROM_RF_POLEG_V11 = 0xC, EEPROM_RF_POLEG_V12 = 0xD, EEPROM_RF_POLEG_V13 = 0xE, EEPROM_RF_POLEG_V14 = 0xF, EEPROM_RF_SION_V1 = 0x10, EEPROM_RF_SION_V2 = 0x11, EEPROM_RF_SION_V3 = 0x12, EEPROM_RF_SION_V4 = 0x13, EEPROM_RF_AYALON_V1 = 0x20, EEPROM_RF_AYALON_V2 = 0x21, EEPROM_RF_AYALON_V3 = 0x22, EEPROM_RF_AYALON_V4 = 0x23, EEPROM_RF_YARKON_V1 = 0x30, EEPROM_RF_YARKON_V2 = 0x31, EEPROM_RF_YARKON_V3 = 0x32, EEPROM_RF_YARKON_V4 = 0x33, EEPROM_RF_ALMOG_V1 = 0x40, EEPROM_RF_ALMOG_V2 = 0x41, EEPROM_RF_ALMOG_V3 = 0x42, EEPROM_RF_ALMOG_V4 = 0x43, EEPROM_RF_DOLEV_V1 = 0x50, EEPROM_RF_DOLEV_V2 = 0x51, EEPROM_RF_DOLEV_V3 = 0x52, EEPROM_RF_DOLEV_V4 = 0x53, EEPROM_RF_POLEG_GV1 = 0x54, EEPROM_RF_POLEG_GV2 = 0x55, EEPROM_RF_POLEG_GV3 = 0x56, EEPROM_RF_POLEG_GV4 = 0x57, EEPROM_RF_POLEG_GV5 = 0x58, EEPROM_RF_POLEG_GV6 = 0x59, EEPROM_RF_POLEG_GV7 = 0x5A, EEPROM_RF_POLEG_GV8 = 0x5B, EEPROM_RF_POLEG_Z0_ADAPTOR = 0xd0, EEPROM_RF_MAXIM_POLARIS_2_V8 = 0xd1, EEPROM_RF_POLARIS_2_Z0_AVB_ADAPTOR = 0xd2, EEPROM_RF_MAXIM = 0xd3 } EEPROM_RFCard; //ICAT EXPORTED STRUCT typedef struct { #ifdef __EPROM_OLD_VERSION__ UINT8 cardTypeHi; UINT8 cardTypeLo; UINT8 ecnLo; UINT8 ecnHi; UINT8 cpldVer; UINT8 cardSNum1; UINT8 cardSNum2; UINT8 cardSNum3; UINT8 cardSNum4; UINT8 spare_1; UINT8 spare_2; UINT8 userData_1; UINT8 userData_2; #else EpromCardType cardType; UINT8 cardVersion; UINT8 ecnLo; UINT8 ecnHi; UINT8 cpldVer; UINT8 cardSNum1; UINT8 cardSNum2; UINT8 cardSNum3; UINT8 cardSNum4; UINT8 spare_1; UINT8 spare_2; UINT8 userData_1; UINT8 userData_2; #endif } EpromCard; //ICAT EXPORTED STRUCT typedef struct { UINT8 platformSNum1; UINT8 platformSNum2; UINT8 platformSNum3; UINT8 platformSNum4; UINT8 platformSNum5; UINT8 platformSNum6; UINT8 platformSNum7; UINT8 platformSNum8; UINT8 spare_3; UINT8 spare_4; UINT8 spare_5; UINT8 spare_6; UINT8 spare_7; UINT8 spare_8; UINT8 crc_1; UINT8 crc_2; } EpromPlatformEpilogue; //ICAT EXPORTED STRUCT typedef struct { UINT8 header; UINT8 epromSize; EpromPlatformName platformName; EpromPlatformType platformType; UINT8 platformVer; UINT8 numOfCard; EpromAppsProcType appsProcType; EpromCommProcType commProcType; EpromAfeType afeType; EpromPmicType pmicType; EpromNandFlashType nandFlashType; EpromNorFlashType norFlashType; EpromSdramType SdramType; EpromPlatformConfigMode PlatformConfigMode; UINT8 spare_1; #ifdef __EPROM_OLD_VERSION__ UINT8 spare_2; #else EEPROM_RFCard rfType; #endif EpromMainLcdType mainLcdType; EpromSubLcdType subLcdType; EpromMainCameraType mainCameraType; EpromSubCameraType subCameraType; EpromIrdaType irdaType; EpromKeypadType keypadType; UINT8 rotaryEncoderSupport; EpromMainLcdBlType mainLcdBlType; EpromSubLcdBlType subLcdBlType; EpromKeypadBlType keypadBlType; EpromCamStrobeType camStrobeType; EpromFmRadioType fmRadioType; UINT8 sdmmcSupportType; UINT8 usimSupportType; UINT8 spare_3; UINT8 spare_4; UINT8 irda; UINT8 gps; UINT8 platformTester; UINT8 bt; UINT8 atCommand; UINT8 spare_5; UINT8 spare_6; UINT8 iml; UINT8 secJtag; UINT8 ethernet; UINT8 spare_7; UINT8 spare_8; UINT8 spare_9; EpromCard card[EPROM_NUM_OF_CARD]; EpromPlatformEpilogue platformEpilogue; } EPROM_DATA; #endif