📄 boardcontrol.h
字号:
#define AltErrorSwitch DiscSwitch_S10
#define AltRunMode0 DiscSwitch_S11
#define AltRunMode1 DiscSwitch_S12
typedef enum RightHexSwitchesE
{
RtHexSwitch_0 = 0x00, // Hex 0
RtHexSwitch_1 = 0x01, // Hex 1
RtHexSwitch_2 = 0x02, // Hex 2
RtHexSwitch_3 = 0x03, // Hex 3
RtHexSwitch_4 = 0x04, // Hex 4
RtHexSwitch_5 = 0x05, // Hex 5
RtHexSwitch_6 = 0x06, // Hex 6
RtHexSwitch_7 = 0x07, // Hex 7
RtHexSwitch_8 = 0x08, // Hex 8
RtHexSwitch_9 = 0x09, // Hex 9
RtHexSwitch_10 = 0x0A, // Hex 10
RtHexSwitch_11 = 0x0B, // Hex 11
RtHexSwitch_12 = 0x0C, // Hex 12
RtHexSwitch_13 = 0x0D, // Hex 13
RtHexSwitch_14 = 0x0E, // Hex 14
RtHexSwitch_15 = 0x0F // Hex 15
} RightHexSwitchesT;
typedef enum LeftHexSwitchesE
{
LtHexSwitch_0 = 0x00, // Hex 0
LtHexSwitch_1 = 0x10, // Hex 1
LtHexSwitch_2 = 0x20, // Hex 2
LtHexSwitch_3 = 0x30, // Hex 3
LtHexSwitch_4 = 0x40, // Hex 4
LtHexSwitch_5 = 0x50, // Hex 5
LtHexSwitch_6 = 0x60, // Hex 6
LtHexSwitch_7 = 0x70, // Hex 7
LtHexSwitch_8 = 0x80, // Hex 8
LtHexSwitch_9 = 0x90, // Hex 9
LtHexSwitch_10 = 0xA0, // Hex 10
LtHexSwitch_11 = 0xB0, // Hex 11
LtHexSwitch_12 = 0xC0, // Hex 12
LtHexSwitch_13 = 0xD0, // Hex 13
LtHexSwitch_14 = 0xE0, // Hex 14
LtHexSwitch_15 = 0xF0 // Hex 15
} LeftHexSwitchesT;
typedef enum HexSwitchBitsE
{
HexSwitch_Bit0 = 0x01, // Bit 0
HexSwitch_Bit1 = 0x02, // Bit 1
HexSwitch_Bit2 = 0x04, // Bit 2
HexSwitch_Bit3 = 0x08, // Bit 3
HexSwitch_Bit4 = 0x10, // Bit 4
HexSwitch_Bit5 = 0x20, // Bit 5
HexSwitch_Bit6 = 0x40, // Bit 6
HexSwitch_Bit7 = 0x20 // Bit 7
} HexSwitchBitsT;
typedef enum MiscWr1E
{
SDB_SW_RESET = 0x0001, // System software reset
MTR_ON = 0x0002, // Silent Alert Motor Control
Green_LED = 0x0008, // Misc. LED 0 = On, 1 = OFF
IrDA_FIR = 0x0010, // IrDA: 0 - SIR, 1 - FIR
BTDTR = 0x0080, // BTUART DTR signal
nBt_OFF = 0x0100, // BTUART tranceiver control
BB_SEL = 0x0200, // PCMCIA/Baseband Mux control
MS_SEL = 0x0400, // SD/Memory Sick Mux control
MMC_ON = 0x0800, // MMC Power control
MC_ON = 0x1000, // Memory Stick Power control
LCD_CTL = 0x2000 // General purpose LCD control signal
} MiscWr1T;
typedef enum MiscWr2E
{
Radio_WAKE = 0x0001, // Radio Module wakeup signal
Radio_PWR = 0x0002, // Radio Module power control
AC97_SPKROFF = 0x0004, // AC97 CODEC amplifier control
I2S_SPKROFF = 0x0008, // I2S CODEC amplifier control
USB_OTG_EN = 0x0020, // USB OTG ENable bit. Sets MUX on board to pass USB
USB_OTG_RST = 0x0040 // USB OTG TRV Reset signal
} MiscWr2T;
typedef enum MiscWrEnableE
{
MiscWr_Clear_Bit, // Clear bit in the register
MiscWr_Set_Bit // Set bit in the register
} MiscWrEnableT;
typedef enum MiscRdE
{
MMC_WP = 0x0001, // SD/MMC Write Protect status
BTDCD = 0x0002, // BTUART Data Carrier Detect
BTRI = 0x0004, // BTUART Ring Indicator
BTDSR = 0x0008, // BTUART Data Set Ready
TS_BUSY = 0x0010, // ADI7873 Touch Screen Digitizer Busy
USB_CBL = 0x0020, // USB client cable status
nUSIM_CD = 0x0040, // USIM Card detection signal
nMMC_CD = 0x0080, // SD/MMC Card detection signal
nMEMSTK_CD = 0x0100, // Memory Stick detection signal
nPENIRQ = 0x0200 // ADI7873 Touch Screen Digitizer PENIRQ
} MiscRdT;
typedef enum IntOperationE
{
Int_Read_Register = 0, // Read the register
Int_Set_Register, // Set the register
Int_Clear_Register // Clear the register
} IntOperationT;
typedef enum IntMaskEnableE
{
MASK_MMC = 0x0001, // SD/MMC card detction interrupt
MASK_USIM = 0x0002, // USIM detection interrupt
MASK_USBC = 0x0004, // USB client cable detection interrupt
MASK_ETHERNET = 0x0008, // Ethernet controller
MASK_AC97 = 0x0010, // AC97 CODEC
MASK_PENIRQ = 0x0020, // ADI7873 Touchscreen
MASK_MSINS = 0x0040, // Memory Stick detection interrupt
MASK_nEXBRD = 0x0080, // Expansion board Interrupt request
MASK_S0_CD = 0x0200, // PCMCIA Socket 0 card detection
MASK_S0_STSCHG = 0x0400, // PCMCIA Socket 0 status changed
MASK_S0_IRQ = 0x0800, // PCMCIA Socket 0 interrupt request
MASK_S1_CD = 0x2000, // PCMCIA Socket 1 card detection
MASK_S1_STSCHG = 0x4000, // PCMCIA Socket 1 status changed
MASK_S1_IRQ = 0x8000 // PCMCIA Socket 1 interrupt request
} IntMaskEnableT;
typedef enum IntSetClearE
{
INT_MMC = 0x0001, // SD/MMC card detction interrupt
INT_USIM = 0x0002, // USIM detection interrupt
INT_USBC = 0x0004, // USB client cable detection interrupt
INT_ETHERNET = 0x0008, // Ethernet controller
INT_AC97 = 0x0010, // AC97 CODEC
INT_PENIRQ = 0x0020, // ADI7873 Touchscreen
INT_MSINS = 0x0040, // Memory Stick detection interrupt
INT_nEXBRD = 0x0080, // Expansion board Interrupt request
INT_S0_CD = 0x0200, // PCMCIA Socket 0 card detection
INT_S0_STSCHG = 0x0400, // PCMCIA Socket 0 status changed
INT_S0_IRQ = 0x0800, // PCMCIA Socket 0 interrupt request
INT_S1_CD = 0x2000, // PCMCIA Socket 1 card detection
INT_S1_STSCHG = 0x4000, // PCMCIA Socket 1 status changed
INT_S1_IRQ = 0x8000 // PCMCIA Socket 1 interrupt request
} IntSetClearT;
typedef enum GpOperationE
{
Gp_Read_Register = 0, // Read General Purpose register
Gp_Write_Register // Write General Purpose register
} GpOperationT;
typedef enum IrOperationE
{
Sir_Mode,
Fir_Mode
} IrOperationT;
typedef enum IrPowerE
{
IrMaxPower = 0x00,
IrShutdownPower = 0x20,
IrTwoThirdRange = 0x40,
IrOneThirdRange = 0x60
} IrPowerT;
typedef enum PeriphBdIntIdE
{
PB_IC_ID_MMC = 0, // SD/MMC card detction interrupt
PB_IC_ID_USIM = 1, // USIM detection interrupt
PB_IC_ID_USBC = 2, // USB client cable detection interrupt
PB_IC_ID_ETHERNET = 3, // Ethernet controller
PB_IC_ID_AC97 = 4, // AC97 CODEC
PB_IC_ID_PENIRQ = 5, // ADI7873 Touchscreen
PB_IC_ID_MSINS = 6, // Memory Stick detection interrupt
PB_IC_ID_nEXBRD = 7, // Expansion board Interrupt request
PB_IC_ID_S0_CD = 9, // PCMCIA Socket 0 card detection
PB_IC_ID_S0_STSCHG = 10, // PCMCIA Socket 0 status changed
PB_IC_ID_S0_IRQ = 11, // PCMCIA Socket 0 interrupt request
PB_IC_ID_S1_CD = 13, // PCMCIA Socket 1 card detection
PB_IC_ID_S1_STSCHG = 14, // PCMCIA Socket 1 status changed
PB_IC_ID_S1_IRQ = 15, // PCMCIA Socket 1 interrupt request
PB_IC_ID_MAX_REAL = 15, // Max of inputs to Board Int Ctrl
PB_IC_ID_MAX = 15 // Max of devices to examine
} PeriphBdIntIdT;
// Masks for the PCMCIA Status/Control Registers
typedef enum {
BCR_PCMCIA_A0VPP = BIT0, // PCMCIA power control A0VPP
BCR_PCMCIA_A1VPP = BIT1, // PCMCIA power control A1VPP
BCR_PCMCIA_A0VCC = BIT2, // PCMCIA power control A0VCC
BCR_PCMCIA_A1VCC = BIT3, // PCMCIA power control A1VCC
BCR_PCMCIA_RESET = BIT4, // PCMCIA reset signal
BCR_PCMCIA_nCD = BIT5, // PCMCIA card detection signal
BCR_PCMCIA_nVS1 = BIT6, // PCMCIA VS1 voltage sense signal
BCR_PCMCIA_nVS2 = BIT7, // PCMCIA VS2 voltage sense signal
BCR_PCMCIA_nBVD1 = BIT8, // PCMCIA BVD1 voltage sense signal / card status
BCR_PCMCIA_nBVD2 = BIT9, // PCMCIA BVD2 voltage sense signal / audio speaker
BCR_PCMCIA_nIRQ = BIT10 // PCMCIA Interrupt request signal
} BCR_PcmciaT;
typedef enum
{
LCDID_TOSHIBA_VGA_16 = 0,
LCDID_TOSHIBA_VGA_18 = 1,
LCDID_SHARP_QVGA = 2,
LCDID_CRT_VGA_16 = 3 //add by hzh
} LcdPandlIdT;
typedef enum
{
VS_LCD_TEXT_ON = BIT0, // copies uart traffic to the LCD screen
VS_STOP_ON_ERROR = BIT1, // Stops POST on an error condition
VS_BT_AS_SYSIO = BIT2, // Sets the BT UART as the system uart if set, normally FFUART
VS_RUN_MFG_TESTS = BIT3, // Enables running the MFG tests
VS_RUN_INT_TESTS = BIT4, // Enables running the interactive tests
VS_COMMAND_MODE = BIT5, // POST runs in command mode
VS_TEST_LEVEL_HI = BIT6, // Sets the test level to high. More thorough tests
VS_LOOP_ON = BIT7, // POST will Loop at the end
VS_DEBUG_ON = BIT8, // Enable Debug Mode
VS_UART_SPEED_9600 = BIT9 // Normally UARTS run at 115.2K, This sets the speed to 9600
} VirtualSwitchT;
// Virtual address of the virtual switches - 10MB into the flash
#define VIRTUAL_SWITCH_DATA 0x04A00000
#define VIRTUAL_SWITCH_KEY 0x504F5354 // 'POST' in ASCII
/*
************************************************************************************
* FUNCTION PROTOTYPES
************************************************************************************
*/
void GetMultipleParamFromString (PCHAR paramStringP, UINT32 paramNumber, PUINT32 paramArrayP);
VOID WriteHexLeds(UINT ledBits);
VOID WriteHexLedsHalfs(UINT16 HighLEDs, UINT16 LowLEDs);
VOID BlankHexLeds(HexLedsT ledBit);
VOID SetDiscreteLed(DiscrLedStateT operation, DiscrLedsT led);
VOID WriteValueDiscreteLeds(UINT8 value);
UINT ReadUserSwitches(VOID);
UINT ModifyMiscWr1Register(MiscWrEnableT operation, MiscWr1T bit);
UINT ModifyMiscWr2Register(MiscWrEnableT operation, MiscWr2T bit);
VOID ModifyPcmciaRegister(BCR_PcmciaT set, BCR_PcmciaT clear, INT socket);
UINT16 GetPcmciaRegister(INT socket);
UINT ReadMiscRdRegister(VOID);
UINT ModifyBoardInterruptMaskRegister(IntOperationT op, IntMaskEnableT bit);
UINT ReadBoardInterruptMaskRegister(VOID);
UINT ModifyBoardInterruptSetRegister(IntOperationT op, IntSetClearT bit);
UINT ReadBoardInterruptSetRegister(VOID);
UINT SelectIrOperationMode (IrOperationT operation, IrPowerT param);
VOID PlatformLeds(UINT pattern);
VOID PlatformLedsDisplayInterrupt(INT enable);
INT IsDevicePresent(MiscRdT device);
//VOID //PostDisplayProgress(UINT32 deviceLoc, UINT32 subLoc, UINT32 param);
UINT GetLcdPanelOrientation (VOID);
UINT GetLcdPanelID (VOID);
PCHAR DisplayLcdPanelID (VOID);
PCHAR DisplayDaughterCardID (VOID);
PCHAR DisplayDaughterCardRevision (VOID);
UINT IsMainBoardPresent(VOID);
PCHAR DisplayMainBoardRevision (VOID);
UINT IsExpansionBoardPresent(VOID);
UINT GetFlashSelectSwitchStatus(VOID);
VOID EnableTrvBTUART (PVOID arg, PCHAR param);
VOID IRDAEnableOperationMode (PVOID arg, PCHAR param);
UINT32 POSTRunState(void);
// Assembly functions
UINT GetSCR(VOID);
#endif /* _boardControl_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -