📄 boardcontrol.c
字号:
}
//===hzh
static UINT lcd_panel_id = LCDID_TOSHIBA_VGA_16;
static UINT pre_lcd_panel_id;
VOID ChangeLcdPanelID (VOID)
{
if(lcd_panel_id!=LCDID_CRT_VGA_16)
{
pre_lcd_panel_id = lcd_panel_id;
lcd_panel_id = LCDID_CRT_VGA_16;
}
else
lcd_panel_id = pre_lcd_panel_id;
}
//===
UINT GetLcdPanelID (VOID)
{
return lcd_panel_id;//PSPR_LCDID(GetSCR()); hzh
}
PCHAR DisplayLcdPanelID (VOID)
{
PCHAR panelNameP;
UINT panelID = PSPR_LCDID(GetSCR());
switch (panelID)
{
case LCDID_TOSHIBA_VGA_16:
panelNameP = "Toshiba LTM04C380K VGA 16 bit";
break;
case LCDID_TOSHIBA_VGA_18:
panelNameP = "Toshiba LTM04C380K VGA 18 bit";
break;
case LCDID_SHARP_QVGA:
panelNameP = "Toshiba LTM035A776C QVGA";
break;
default:
panelNameP = "Unsupported LCD Panel";
}
return panelNameP;
}
PCHAR DisplayDaughterCardID (VOID)
{
PCHAR cardNameP;
UINT CpuVersion = 0;
UINT cardID = PSPR_DCID(GetSCR());
// Retrieve the CPU version information
CpuVersion = GetCpuVersion();
if (CPU_PRODUCT_NUM(CpuVersion) == 0x10)
{
cardNameP = "Unsupported Card ID";
}
else
{
switch (cardID)
{
case 0:
cardNameP = "HCDDBVA0 Daughter Card";
break;
case 1:
cardNameP = "Reserved";
break;
case 2:
cardNameP = "PXA27x Daughter Card";
break;
default:
cardNameP = "Unsupported Card ID";
}
}
return cardNameP;
}
/*
*******************************************************************************
*
* FUNCTION:
* IsMainBoardPresent
*
* DESCRIPTION:
* This routine is used to determine whether the Main Board is connected.
*
* INPUT PARAMETERS:
* None.
*
* RETURNS:
* UINT 0 - Main board is present
* 1 - Main board is not present
*
* GLOBAL EFFECTS:
* None.
*
* ASSUMPTIONS:
* None.
*
* CALLS:
* None.
*
* CALLED BY:
* Test code or DM infrastructure.
*
* PROTOTYPE:
* UINT IsMainBoardPresent(VOID);
*
*******************************************************************************
*/
PCHAR DisplayDaughterCardRevision (VOID)
{
PCHAR revP;
UINT cardRev = PSPR_DCREV(GetSCR());
switch (cardRev)
{
case 0:
revP = "Rev. 1.0";
break;
case 1:
revP = "Rev. 1.1";
break;
case 2:
revP = "Rev. 1.2";
break;
default:
revP = "Reserved";
}
return revP;
}
/*
*******************************************************************************
*
* FUNCTION:
* IsMainBoardPresent
*
* DESCRIPTION:
* This routine is used to determine whether the Main Board is connected.
*
* INPUT PARAMETERS:
* None.
*
* RETURNS:
* UINT 0 - Main board is present
* 1 - Main board is not present
*
* GLOBAL EFFECTS:
* None.
*
* ASSUMPTIONS:
* None.
*
* CALLS:
* None.
*
* CALLED BY:
* Test code or DM infrastructure.
*
* PROTOTYPE:
* UINT IsMainBoardPresent(VOID);
*
*******************************************************************************
*/
UINT IsMainBoardPresent(VOID)
{
static UINT x = 3;
if (x==3) x = PSPR_nMB_PRES(GetSCR());
// 0 - Main Board is present, 1 - Main Board is absent
return x;
}
/*
*******************************************************************************
*
* FUNCTION:
* DisplayMainBoardRevision
*
* DESCRIPTION:
* This routine is used to display Main Board Revision.
*
* INPUT PARAMETERS:
* None.
*
* RETURNS:
* PCHAR - pointer to the string, indicating revision number
*
* GLOBAL EFFECTS:
* None.
*
* ASSUMPTIONS:
* None.
*
* CALLS:
* None.
*
* CALLED BY:
* Test code or DM infrastructure.
*
* PROTOTYPE:
* PCHAR DisplayMainBoardRevision (VOID);
*
*******************************************************************************
*/
PCHAR DisplayMainBoardRevision (VOID)
{
PCHAR revP;
UINT boardRev = PSPR_SCR_MBREV(GetSCR());
switch (boardRev)
{
case 0:
revP = "Revision 1";
break;
case 1:
revP = "Revision 1.1";
break;
case 2:
revP = "Revision 2.0";
break;
case 3:
revP = "Revision 2.1";
break;
default:
revP = "Unknown Revision";
}
return revP;
}
/*
*******************************************************************************
*
* FUNCTION:
* IsExpansionBoardPresent
*
* DESCRIPTION:
* This routine is used to determine whether the explansion board is connected.
*
* INPUT PARAMETERS:
* None.
*
* RETURNS:
* UINT 0 - Expansion board is present
* 1 - Expansion board is not present
*
* GLOBAL EFFECTS:
* None.
*
* ASSUMPTIONS:
* None.
*
* CALLS:
* None.
*
* CALLED BY:
* Test code or DM infrastructure.
*
* PROTOTYPE:
* UINT IsExpansionBoardPresent(VOID);
*
*******************************************************************************
*/
UINT IsExpansionBoardPresent(VOID)
{
return PSPR_nEXB_PRES(GetSCR());
}
/*
*******************************************************************************
*
* FUNCTION:
* GetFlashSelectSwitchStatus
*
* DESCRIPTION:
* This routine is used to determine the status of the swap flash switch SW2
*
* INPUT PARAMETERS:
* None.
*
* RETURNS:
* UINT 0 - Boot ROM chip select is nCS[0], Flash ROM chip select is nCS[1]
* 1 - Boot ROM chip select is nCS[1], Flash ROM chip select is nCS[0]
*
* GLOBAL EFFECTS:
* None.
*
* ASSUMPTIONS:
* None.
*
* CALLS:
* None.
*
* CALLED BY:
* Test code or DM infrastructure.
*
* PROTOTYPE:
* UINT GetFlashSelectSwitchStatus(VOID);
*
*******************************************************************************
*/
UINT GetFlashSelectSwitchStatus(VOID)
{
// 0 - Boot ROM chip select is nCS[0], Flash ROM chip select is nCS[1]
// 1 - Boot ROM chip select is nCS[1], Flash ROM chip select is nCS[0]
return PSPR_SWAP_FLASH(GetSCR());
}
/*
*******************************************************************************
*
* FUNCTION: IRDAEnableOperationMode
*
* DESCRIPTION: Selects FIR or SIR mode of operation
*
* INPUT PARAMETERS: param - it expects two parameters:
* first is used to select IRDA operation:
* selects FIR mode if set to one and
* selects SIR mode if set to zero
*
* second - is used to select the power range:
* IrMaxPower = 0,
* IrShutdownPower = 1,
* IrTwoThirdRange = 2,
* IrOneThirdRange = 3,
*
* RETURNS: none.
*
* GLOBAL EFFECTS: none.
*
* ASSUMPTIONS: none.
*
* CALLS: BoardMiscWriteRegister
*
* CALLED BY:
*
* PROTOTYPE: VOID IRDAEnableOperationMode (PVOID arg, PCHAR param);
*
*******************************************************************************
*/
VOID IRDAEnableOperationMode (PVOID arg, PCHAR param)
{
UINT32 paramArray[4];
UINT32 modeIRDA;
UINT32 powerLevel;
UINT32 temp;
GetMultipleParamFromString (param, 2, (PUINT32)paramArray);
modeIRDA = paramArray[0];
temp = paramArray[1];
powerLevel = (temp << MISC_WR1_IRDA_SHIFT) & 0x60;
// Enable SIR/FIR mode and the power level in IRDA transiver
SelectIrOperationMode (modeIRDA, powerLevel);
}
/*
*******************************************************************************
*
* FUNCTION:
* EnableTrvBTUART
*
* DESCRIPTION:
* This routine Enables/Disables RS232 Tranceiver for BTUART.
*
* INPUT PARAMETERS:
* param - 0 disables RS232 Tranceiver of BTUART
* 1 enables RS232 Tranceiver of BTUART
*
* RETURNS:
* None.
*
* GLOBAL EFFECTS:
* None.
*
* ASSUMPTIONS:
* None.
*
* CALLS:
* None.
*
* CALLED BY:
* Test code or DM infrastructure.
*
* PROTOTYPE:
* VOID EnableTrvBTUART (PVOID arg, PCHAR param);
*
*******************************************************************************
*/
VOID EnableTrvBTUART (PVOID arg, PCHAR param)
{
INT enableTrv;
sscanf(param, "%d", &enableTrv);
// Enable/Disable RS232 Tranceiver for BTUART
ModifyMiscWr1Register(enableTrv, nBt_OFF);
}
/*
*******************************************************************************
*
* FUNCTION:
* SetPOSTRunState
*
* DESCRIPTION:
* This routine reads and returns the desired run state of POST.
*
* INPUT PARAMETERS:
* None
*
*
* RETURNS:
* UINT32 a value of the current state.
*
* GLOBAL EFFECTS:
* None.
*
* ASSUMPTIONS:
* None.
*
* CALLS:
* None.
*
* CALLED BY:
*
*
* PROTOTYPE:
* UNINT32 SetPOSTRunState (void);
*
*******************************************************************************/
UINT32 POSTRunState()
{
static UINT32 POSTRunStateWord = 0;
UINT32 currentUserSwitches;
PUINT32 VsDataP = (PUINT32) VIRTUAL_SWITCH_DATA;
P_XLLP_GPIO_T gpioReg = (P_XLLP_GPIO_T ) XS_GPIO_REGISTER_BASE;
//===hzh
static UINT32 first = 0;
if(!first)
{
POSTRunStateWord = VS_LCD_TEXT_ON | VS_COMMAND_MODE | VS_TEST_LEVEL_HI;// | VS_RUN_MFG_TESTS;
if(gpioReg->GPLR0 & (1UL<<0))
POSTRunStateWord |= VS_RUN_INT_TESTS;//VS_BT_AS_SYSIO;
if(gpioReg->GPLR2 & (1UL<<29))
POSTRunStateWord |= VS_DEBUG_ON;
if(gpioReg->GPLR2 & (1UL<<30))
POSTRunStateWord |= VS_LOOP_ON;
if(gpioReg->GPLR2 & (1UL<<31))
POSTRunStateWord &= ~VS_COMMAND_MODE;
first = 1;
}
return POSTRunStateWord;
//===
// read all of the switches or copy down the virtual switches
currentUserSwitches = ReadUserSwitches();
// check to see if the use virtual switches are to be used. They are used
// if the debug switch is set and there is valid virtual switch data.
if ((currentUserSwitches & AltErrorSwitch) && (*VsDataP == VIRTUAL_SWITCH_KEY))
{
POSTRunStateWord = (UINT32) *(VsDataP + 4);
}
// check for a cable in the FFUART and the switch is set for FFUART usage
else if ((gpioReg->GPLR1 & XLLP_GPIO_BIT_FFDSR) && // DTR not set
(AltIOSwitch & ~currentUserSwitches) && // asking for FFUART
((currentUserSwitches & AltRunMode0) != AltRunMode0) &&
((currentUserSwitches & AltRunMode1) != AltRunMode1)
)
{
// No cable in FFUART and set for FFUART. Run with LCD text and looping
POSTRunStateWord |= VS_LCD_TEXT_ON | VS_LOOP_ON;
}
else
{
// use the actual physical switches to set up the data
if ((currentUserSwitches & AltErrorSwitch) == AltErrorSwitch)
POSTRunStateWord |= VS_DEBUG_ON; // use debug mode
if ((currentUserSwitches & AltIOSwitch) == AltIOSwitch)
POSTRunStateWord |= VS_BT_AS_SYSIO; // set BTUART as SYSIO
if (((currentUserSwitches & AltRunMode0) == AltRunMode0) &&
((currentUserSwitches & AltRunMode1) != AltRunMode1))
POSTRunStateWord |= VS_RUN_INT_TESTS; // Run Interactive Tests
if (((currentUserSwitches & AltRunMode0) != AltRunMode0) &&
((currentUserSwitches & AltRunMode1) == AltRunMode1))
{
POSTRunStateWord |= VS_RUN_INT_TESTS; // Run Interactive Tests
POSTRunStateWord |= VS_RUN_MFG_TESTS; // Run MFG Tests
}
if (((currentUserSwitches & AltRunMode0) == AltRunMode0) &&
((currentUserSwitches & AltRunMode1) == AltRunMode1))
POSTRunStateWord |= VS_COMMAND_MODE; // Run Interactive Tests
}
return POSTRunStateWord;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -