📄 eeprom.c
字号:
/* eeprom.c - Contains the functions for printing the eeprom contents *//* Copyright (c) 2000 Atheros Communications, Inc., All Rights Reserved */#ident "ACI $Id: //depot/sw/branches/ART_V53_dragon/sw/src/dk/mdk/devmld/eeprom.c#2 $, $Header: //depot/sw/branches/ART_V53_dragon/sw/src/dk/mdk/devmld/eeprom.c#2 $"#ifdef __ATH_DJGPPDOS__ #define __int64 long long #define HANDLE long typedef unsigned long DWORD; #define Sleep delay #include <bios.h>#endif // #ifdef __ATH_DJGPPDOS__#ifdef _WINDOWS #include <windows.h>#endif#ifdef JUNGO#include "mld.h" /* Low level driver information for MLD */#endif#include "common_hw.h"#include <stdio.h> #ifndef LINUX#include <conio.h>#else#include "linux_ansi.h"#endif#include <string.h>#include <stdlib.h>#include "wlantype.h"#include "mEeprom.h"#include "mConfig.h" #include "art_if.h"#include "test.h"#ifdef __ATH_DJGPPDOS__#include "mlibif_dos.h"#endif
#define MANLIB_API __declspec( dllimport )
A_UINT16 xpdGainMapping[] = {0, 6, 9, 18};A_UINT16 xpdGainMapping_gen5[] = {0, 1, 2, 4};extern void printAR6000Eeprom(A_UINT32 devNum);void printHeaderInfo_16K( MDK_EEP_HEADER_INFO *pHeaderInfo, A_UINT32 mode){ A_CHAR binaryString[50]; A_CHAR modeString[10]; A_UINT16 i, j; MODE_HEADER_INFO *pModeInfo; A_INT16 tmpVal; switch(mode) { case MODE_11A: pModeInfo = &(pHeaderInfo->info11a); sprintf(modeString, "11a"); break; case MODE_11G: pModeInfo = &(pHeaderInfo->info11g); sprintf(modeString, "11g"); break; case MODE_11O: pModeInfo = &(pHeaderInfo->info11g); sprintf(modeString, "11o"); break; case MODE_11B: pModeInfo = &(pHeaderInfo->info11b); sprintf(modeString, "11b"); break; default: printf("Illegal mode passed to printHeaderInfo_16K\n"); return; } //end switch uiPrintf("\n"); uiPrintf(" =================Header Information for mode %s===============\n", modeString); uiPrintf(" | Major Version %2d ", pHeaderInfo->majorVersion); uiPrintf("| Minor Version %2d |\n", pHeaderInfo->minorVersion); if(pHeaderInfo->majorVersion >= 4) { uiPrintf(" | EAR Start 0x%3x ", pHeaderInfo->earStartLocation); uiPrintf("| Target Power Start 0x%3x |\n", pHeaderInfo->trgtPowerStartLocation); uiPrintf(" | EEP MAP 0x%1x ", pHeaderInfo->eepMap); uiPrintf("| |\n"); uiPrintf(" | Enable 32 khz %1d ", pHeaderInfo->enable32khz); if(((pHeaderInfo->majorVersion == 4) && (pHeaderInfo->minorVersion >= 5)) || (pHeaderInfo->majorVersion >= 5)){ uiPrintf("| Old Enable 32 khz %1d |\n", pHeaderInfo->oldEnable32khz); uiPrintf(" | Mask for Radio 0 %1d ", pHeaderInfo->maskRadio0); switch (pHeaderInfo->maskRadio0) { case 0: uiPrintf(" "); break; case 1: uiPrintf(" g"); break; case 2: uiPrintf(" a"); break; case 3: uiPrintf("a/g"); break; default: uiPrintf(" "); break; } uiPrintf(" | Mask for Radio 1 %1d",pHeaderInfo->maskRadio1); switch (pHeaderInfo->maskRadio1) { case 0: uiPrintf(" "); break; case 1: uiPrintf(" g"); break; case 2: uiPrintf(" a"); break; case 3: uiPrintf("a/g"); break; default: uiPrintf(" "); break; } uiPrintf("|\n"); } else { uiPrintf("| |\n"); } if(((pHeaderInfo->majorVersion == 4) && (pHeaderInfo->minorVersion >= 4)) || (pHeaderInfo->majorVersion >= 5)){ uiPrintf(" | EEP File Version %3d ", pHeaderInfo->eepFileVersion); uiPrintf("| ART Build Number %3d |\n", pHeaderInfo->artBuildNumber); uiPrintf(" | EAR File Identifier %3d ", pHeaderInfo->earFileIdentifier); uiPrintf("| EAR File Version %3d |\n", pHeaderInfo->earFileVersion); } if((pHeaderInfo->majorVersion >= 5) && (pHeaderInfo->minorVersion >= 1)) { uiPrintf(" |-------------------------------------------------------------|\n"); uiPrintf(" | calStartLocation 0x%3x ",pHeaderInfo->calStartLocation); uiPrintf("| keyCacheSize %3d |\n", pHeaderInfo->keyCacheSize); uiPrintf(" | enableClip %3d ", pHeaderInfo->enableClip); uiPrintf("| maxNumQCU %3d |\n", pHeaderInfo->maxNumQCU); uiPrintf(" | burstingDisable %3d ", pHeaderInfo->burstingDisable); uiPrintf("| fastFrameDisable %3d |\n", pHeaderInfo->fastFrameDisable); uiPrintf(" | aesDisable %3d ", pHeaderInfo->aesDisable); uiPrintf("| compressionDisable %3d |\n", pHeaderInfo->compressionDisable); uiPrintf(" | xrDisable %3d ", pHeaderInfo->disableXR); uiPrintf("| |\n"); } if(((pHeaderInfo->majorVersion == 5) && (pHeaderInfo->minorVersion >= 3)) || (pHeaderInfo->majorVersion >= 6)){ uiPrintf(" |-------------------------------------------------------------|\n"); uiPrintf(" | enable FCC Mid %3d ", pHeaderInfo->enableFCCMid); uiPrintf("| enable Jap even Uni 1 %3d |\n", pHeaderInfo->enableJapanEvenU1); uiPrintf(" | enable Jap Uni 2 %3d ", pHeaderInfo->enableJapenU2); uiPrintf("| enable Jap Mid %3d |\n", pHeaderInfo->enableJapnMid); uiPrintf(" | disable Jap odd Uni 1 %3d ", pHeaderInfo->disableJapanOddU1); uiPrintf("| enable Jap 11a new %3d |\n", pHeaderInfo->enableJapanMode11aNew); } } uiPrintf(" |-------------------------------------------------------------|\n"); if(((pHeaderInfo->majorVersion == 3) && (pHeaderInfo->minorVersion >= 1)) || (pHeaderInfo->majorVersion >= 4)){ uiPrintf(" | A Mode %1d ", pHeaderInfo->Amode); uiPrintf("| B Mode %1d ", pHeaderInfo->Bmode); uiPrintf("| G Mode %1d |\n", pHeaderInfo->Gmode); } else { uiPrintf(" | A Mode %1d ", pHeaderInfo->Amode); uiPrintf("| B Mode %1d |\n", pHeaderInfo->Bmode); } if(pHeaderInfo->countryCodeFlag) { uiPrintf(" | Country Code %03x ", pHeaderInfo->countryRegCode); } else { uiPrintf(" | Reg. Domain %03x ", pHeaderInfo->countryRegCode); } //uiPrintf("| turbo Disable %1d ", pHeaderInfo->turboDisable); uiPrintf("| turbo Disable %1d ", pModeInfo->turboDisable); uiPrintf("| RF Silent %1d |\n", pHeaderInfo->RFKill); uiPrintf(" |-------------------------------------------------------------|\n"); if(((pHeaderInfo->majorVersion == 3) && (pHeaderInfo->minorVersion >= 3)) || (pHeaderInfo->majorVersion >= 4)){ uiPrintf(" | worldwide roaming %1x ", pHeaderInfo->worldwideRoaming); uiPrintf("| False detect backoff 0x%02x |\n", pModeInfo->falseDetectBackoff); } uiPrintf(" | device type %1x ", pHeaderInfo->deviceType); uiPrintf("| Switch Settling Time 0x%02x |\n", pModeInfo->switchSettling); uiPrintf(" | ADC Desired size %2d ", pModeInfo->adcDesiredSize); uiPrintf("| XLNA Gain 0x%02x |\n", pModeInfo->xlnaGain); uiPrintf(" | tx end to XLNA on 0x%02x ", pModeInfo->txEndToXLNAOn); uiPrintf("| Threashold 62 0x%02x |\n", pModeInfo->thresh62); uiPrintf(" | tx end to XPA off 0x%02x ", pModeInfo->txEndToXPAOff); uiPrintf("| tx end to XPA on 0x%02x |\n", pModeInfo->txFrameToXPAOn); uiPrintf(" | PGA Desired size %2d ", pModeInfo->pgaDesiredSize); uiPrintf("| Noise Threshold %3d |\n", pModeInfo->noisefloorThresh); uiPrintf(" | XPD Gain 0x%02x ", pModeInfo->xgain); uiPrintf("| XPD %1d |\n", pModeInfo->xpd); uiPrintf(" | txrx Attenuation 0x%02x ", pModeInfo->txrxAtten); uiPrintf("| Antenna control 0 "); itoa(pModeInfo->antennaControl[0], binaryString, 2); for(i = 0; i < (6 - strlen(binaryString)); i++) { uiPrintf("0"); } uiPrintf("%s |\n", binaryString); for(j = 1; j <= 5; j++) { uiPrintf(" | Antenna control %2d ", j); itoa(pModeInfo->antennaControl[j], binaryString, 2); for(i = 0; i < (6 - strlen(binaryString)); i++) { uiPrintf("0"); } uiPrintf("%s ", binaryString); uiPrintf("| Antenna control %2d ", j+5); itoa(pModeInfo->antennaControl[j+5], binaryString, 2); for(i = 0; i < (6 - strlen(binaryString)); i++) { uiPrintf("0"); } uiPrintf("%s |\n", binaryString); } if(((pHeaderInfo->majorVersion == 3) && (pHeaderInfo->minorVersion >= 4)) || (pHeaderInfo->majorVersion >= 4)){ uiPrintf(" | Init GainI 0x%02x ", pModeInfo->initialGainI);// if(mode == MODE_11B) {// uiPrintf("| |\n");// } if(mode != MODE_11B) { uiPrintf("| Turbo 2W Pwr Max. %2d |\n", pModeInfo->turbo.max2wPower); } if((mode == MODE_11G) || (mode == MODE_11O)) { uiPrintf(" | OFDM/CCK Delta %4.1f ", (float)(pHeaderInfo->scaledOfdmCckDelta)/10); } if (pHeaderInfo->majorVersion == 4) { if(mode != MODE_11A) { uiPrintf("| Use Fixed dB Bias 2.4GHz %1d |\n", pHeaderInfo->fixedBiasB); } } else { uiPrintf("| |\n"); } } if(pHeaderInfo->majorVersion >= 4) { if(mode != MODE_11B) { tmpVal = pModeInfo->iqCalI ; if ((tmpVal >> 5) == 0x1) tmpVal = tmpVal - 64 ; uiPrintf(" | IQ Cal I %3d ", tmpVal); tmpVal = pModeInfo->iqCalQ ; if ((tmpVal >> 4) == 0x1) tmpVal = tmpVal - 32 ; uiPrintf("| IQ Cal Q %3d |\n", tmpVal); } if(mode == MODE_11A) { uiPrintf(" | Use Fixed dB Bias 5GHz %1d ", pHeaderInfo->fixedBiasA); if(pHeaderInfo->minorVersion >= 1) { uiPrintf("| rxtxMargin 0x%02x |\n", pModeInfo->rxtxMargin); } else { uiPrintf("| |\n"); } } if(((pHeaderInfo->majorVersion == 4) && (pHeaderInfo->minorVersion >= 1)) || (pHeaderInfo->majorVersion >= 5)) { if(mode != MODE_11A) { uiPrintf(" | rxtxMargin 0x%02x ", pModeInfo->rxtxMargin); } } if((((pHeaderInfo->majorVersion == 4) && (pHeaderInfo->minorVersion >= 2)) || (pHeaderInfo->majorVersion >= 5)) && (mode == MODE_11G)){ uiPrintf("| OFDM/CCK Gain Delta %4.1f |\n", (float)(pHeaderInfo->ofdmCckGainDeltaX2)/2); } else if ((mode == MODE_11B) || (mode == MODE_11O)) { uiPrintf("| |\n"); } if((((pHeaderInfo->minorVersion >= 5) && (pHeaderInfo->majorVersion == 4)) && (pHeaderInfo->majorVersion >= 5)) && ((mode == MODE_11G)||(mode == MODE_11O))){ uiPrintf(" | CH14 Filter CCK Delta %4.1f ", (float)(pHeaderInfo->scaledCh14FilterCckDelta)/10); uiPrintf("| |\n"); } } uiPrintf(" |-------------------------------------------------------------|\n"); if(mode == MODE_11A) { uiPrintf(" | OB_1 %1d ", pModeInfo->ob_1); uiPrintf("| OB_2 %1d ", pModeInfo->ob_2); uiPrintf("| OB_3 %1d ", pModeInfo->ob_3); uiPrintf("| OB_4 %1d |\n", pModeInfo->ob_4); uiPrintf(" | DB_1 %1d ", pModeInfo->db_1); uiPrintf("| DB_2 %1d ", pModeInfo->db_2); uiPrintf("| DB_3 %1d ", pModeInfo->db_3); uiPrintf("| DB_4 %1d |\n", pModeInfo->db_4); } else { if(((pHeaderInfo->majorVersion == 3) && (pHeaderInfo->minorVersion >= 1)) || (pHeaderInfo->majorVersion >= 4)){ uiPrintf(" | OB_1 %1d ", pModeInfo->ob_1); uiPrintf("| B_OB %1d ", pModeInfo->ob_4); uiPrintf("| DB_1 %1d ", pModeInfo->db_1); uiPrintf("| B_DB %1d |\n", pModeInfo->db_4); } else { uiPrintf(" | OB_1 %1d ", pModeInfo->ob_1); uiPrintf("| DB_1 %1d |\n", pModeInfo->db_1); } }#if 0 if ((mode == MODE_11A) && (pHeaderInfo->minorVersion >= 2)) { uiPrintf(" |-------------------------------------------------------------|\n"); for(i = 0; i < 4; i++) { uiPrintf(" | Gsel_%1d %1d ", i, pHeaderInfo->cornerCal[i].gSel); uiPrintf("| Pd84_%1d %1d ", i, pHeaderInfo->cornerCal[i].pd84); uiPrintf("| Pd90_%1d %1d ", i, pHeaderInfo->cornerCal[i].pd90); uiPrintf("| clip_%1d %1d |\n", i, pHeaderInfo->cornerCal[i].clip); } }#endif if((mode != MODE_11B) && (pHeaderInfo->majorVersion >= 5)) { uiPrintf(" |-------------------------------------------------------------|\n"); uiPrintf(" | turbo txrx atten 0x%02x ", pModeInfo->turbo.txrxAtten); uiPrintf("| turbo rxtx margin 0x%02x |\n", pModeInfo->turbo.rxtxMargin); uiPrintf(" | turbo PGA Desired sz %2d ", pModeInfo->turbo.pgaDesiredSize); uiPrintf("| turbo ADC Desired sz %2d |\n", pModeInfo->turbo.adcDesiredSize); uiPrintf(" | turbo switch settling 0x%02x ", pModeInfo->turbo.switchSettling); uiPrintf("| |\n"); } uiPrintf(" ===============================================================\n"); if(((pHeaderInfo->majorVersion == 3) && (pHeaderInfo->minorVersion >= 4)) && (mode != MODE_11A)) { if((pModeInfo->calPier1 != 0xff) || (pModeInfo->calPier2 != 0xff)) { uiPrintf("\nCalibration actually performed at channels: "); if(pModeInfo->calPier1 != 0xff) { uiPrintf("%d ", pModeInfo->calPier1); } if(pModeInfo->calPier2 != 0xff) { uiPrintf("%d ", pModeInfo->calPier2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -