📄 cmtt1pos.h
字号:
#define kMModuleCardRegDirectionMask kIOMfioOutputSelect11Mask /* 11 */
#define kMModuleCardIOWriteDirectionMask kIOMfioOutputSelect10Mask /* 10 */
#define kMModuleCardIOReadDirectionMask kIOMfioOutputSelect9Mask /* 9 */
#define kMModuleCardCSLDirectionMask kIOMfioOutputSelect8Mask /* 8 */
#define kMModuleCardCSHDirectionMask kIOMfioOutputSelect7Mask /* 7 */
#define kMModuleEnFlashRdDirectionMask kIOMfioOutputSelect6Mask /* 6 */
#define kIrDAShutDownDirectionMask kIOMfioOutputSelect5Mask /* 5 */
#define kMModuleCardWaitDirectionMask kIOMfioOutputSelect4Mask /* 4 */
#define kKeyboardWakeDirectionMask kIOMfioOutputSelect3Mask /* 3 */
#define kKeyboardResetDirectionMask kIOMfioOutputSelect2Mask /* 2 */
#define kKeyboardAttentionDirectionMask kIOMfioOutputSelect1Mask /* 1 */
#define kSIBRingDetectDirectionMask kIOMfioOutputSelect0Mask /* 0 */
/***** Register Equates (PoseidonModule.mfioDataInput) *****/
#define kSerialRTSDataInMask kIOMfioDataIn31Mask /* 31 */
#define kSerialCTSDataInMask kIOMfioDataIn30Mask /* 30 */
#define kMiniCard2ResetDataInMask kIOMfioDataIn29Mask /* 29 */
#define kMiniCard2BusyDataInMask kIOMfioDataIn28Mask /* 28 */
#define kPowerVCC3DataInMask kIOMfioDataIn27Mask /* 27 */
#define kPowerDRAMVCCOnDataInMask kIOMfioDataIn26Mask /* 26 */
#define kDisplayVBacklightOnDataInMask kIOMfioDataIn25Mask /* 25 */
#define kMagicBusTXDataDataInMask kIOMfioDataIn24Mask /* 24 */
#define kMagicBusRXDataDataInMask kIOMfioDataIn23Mask /* 23 */
#define kMiniCard2MCCSDataInMask kIOMfioDataIn22Mask /* 22 */
#define kMModuleCS2DataInMask kIOMfioDataIn21Mask /* 21 */
#define kMiniCard1SDADataInMask kIOMfioDataIn20Mask /* 20 */
#define kMiniCard2SDADataInMask kIOMfioDataIn19Mask /* 19 */
#define kMiniCardSCLDataInMask kIOMfioDataIn18Mask /* 18 */
#define kDisplayVLCDOnDataInMask kIOMfioDataIn17Mask /* 17 */
#define kMagicBusVCCOnDataInMask kIOMfioDataIn16Mask /* 16 */
#define kKeyboardSPIClockDataInMask kIOMfioDataIn15Mask /* 15 */
#define kKeyboardSPIOutDataInMask kIOMfioDataIn14Mask /* 14 */
#define kKeyboardSPIInDataInMask kIOMfioDataIn13Mask /* 13 */
#define kFlashOnBoardDataInMask kIOMfioDataIn12Mask /* 12 */
#define kMModuleCardRegDataInMask kIOMfioDataIn11Mask /* 11 */
#define kMModuleCardIOWriteDataInMask kIOMfioDataIn10Mask /* 10 */
#define kMModuleCardIOReadDataInMask kIOMfioDataIn9Mask /* 9 */
#define kMModuleCardCSLDataInMask kIOMfioDataIn8Mask /* 8 */
#define kMModuleCardCSHDataInMask kIOMfioDataIn7Mask /* 7 */
#define kMModuleEnFlashRdDataInMask kIOMfioDataIn6Mask /* 6 */
#define kIrDAShutDownDataInMask kIOMfioDataIn5Mask /* 5 */
#define kMModuleCardWaitDataInMask kIOMfioDataIn4Mask /* 4 */
#define kKeyboardWakeDataInMask kIOMfioDataIn3Mask /* 3 */
#define kKeyboardResetDataInMask kIOMfioDataIn2Mask /* 2 */
#define kKeyboardAttentionDataInMask kIOMfioDataIn1Mask /* 1 */
#define kSIBRingDetectDataInMask kIOMfioDataIn0Mask /* 0 */
/***** Register Equates (PoseidonModule.mfioSelect) *****/
#define kSerialRTSSelectMask kIOMfioSelect31Mask /* 31 */
#define kSerialCTSSelectMask kIOMfioSelect30Mask /* 30 */
#define kMiniCard2ResetSelectMask kIOMfioSelect29Mask /* 29 */
#define kMiniCard2BusySelectMask kIOMfioSelect28Mask /* 28 */
#define kPowerVCC3SelectMask kIOMfioSelect27Mask /* 27 */
#define kPowerDRAMVCCOnSelectMask kIOMfioSelect26Mask /* 26 */
#define kDisplayVBacklightOnSelectMask kIOMfioSelect25Mask /* 25 */
#define kMagicBusTXDataSelectMask kIOMfioSelect24Mask /* 24 */
#define kMagicBusRXDataSelectMask kIOMfioSelect23Mask /* 23 */
#define kMiniCard2MCCSSelectMask kIOMfioSelect22Mask /* 22 */
#define kMModuleCS2SelectMask kIOMfioSelect21Mask /* 21 */
#define kMiniCard1SDASelectMask kIOMfioSelect20Mask /* 20 */
#define kMiniCard2SDASelectMask kIOMfioSelect19Mask /* 19 */
#define kMiniCardSCLSelectMask kIOMfioSelect18Mask /* 18 */
#define kDisplayVLCDOnSelectMask kIOMfioSelect17Mask /* 17 */
#define kMagicBusVCCOnSelectMask kIOMfioSelect16Mask /* 16 */
#define kKeyboardSPIClockSelectMask kIOMfioSelect15Mask /* 15 */
#define kKeyboardSPIOutSelectMask kIOMfioSelect14Mask /* 14 */
#define kKeyboardSPIInSelectMask kIOMfioSelect13Mask /* 13 */
#define kFlashOnBoardSelectMask kIOMfioSelect12Mask /* 12 */
#define kMModuleCardRegSelectMask kIOMfioSelect11Mask /* 11 */
#define kMModuleCardIOWriteSelectMask kIOMfioSelect10Mask /* 10 */
#define kMModuleCardIOReadSelectMask kIOMfioSelect9Mask /* 9 */
#define kMModuleCardCSLSelectMask kIOMfioSelect8Mask /* 8 */
#define kMModuleCardCSHSelectMask kIOMfioSelect7Mask /* 7 */
#define kMModuleEnFlashRdSelectMask kIOMfioSelect6Mask /* 6 */
#define kIrDAShutDownSelectMask kIOMfioSelect5Mask /* 5 */
#define kMModuleCardWaitSelectMask kIOMfioSelect4Mask /* 4 */
#define kKeyboardWakeSelectMask kIOMfioSelect3Mask /* 3 */
#define kKeyboardResetSelectMask kIOMfioSelect2Mask /* 2 */
#define kKeyboardAttentionSelectMask kIOMfioSelect1Mask /* 1 */
#define kSIBRingDetectSelectMask kIOMfioSelect0Mask /* 0 */
/***** Register Equates (PoseidonModule.mfioPowerDown) *****/
#define kSerialRTSPowerDownMask kIOMfioPowerDown31Mask /* 31 */
#define kSerialCTSPowerDownMask kIOMfioPowerDown30Mask /* 30 */
#define kMiniCard2ResetPowerDownMask kIOMfioPowerDown29Mask /* 29 */
#define kMiniCard2BusyPowerDownMask kIOMfioPowerDown28Mask /* 28 */
#define kPowerVCC3PowerDownMask kIOMfioPowerDown27Mask /* 27 */
#define kPowerDRAMVCCOnPowerDownMask kIOMfioPowerDown26Mask /* 26 */
#define kDisplayVBacklightOnPowerDownMask kIOMfioPowerDown25Mask /* 25 */
#define kMagicBusTXDataPowerDownMask kIOMfioPowerDown24Mask /* 24 */
#define kMagicBusRXDataPowerDownMask kIOMfioPowerDown23Mask /* 23 */
#define kMiniCard2MCCSPowerDownMask kIOMfioPowerDown22Mask /* 22 */
#define kMModuleCS2PowerDownMask kIOMfioPowerDown21Mask /* 21 */
#define kMiniCard1SDAPowerDownMask kIOMfioPowerDown20Mask /* 20 */
#define kMiniCard2SDAPowerDownMask kIOMfioPowerDown19Mask /* 19 */
#define kMiniCardSCLPowerDownMask kIOMfioPowerDown18Mask /* 18 */
#define kDisplayVLCDOnPowerDownMask kIOMfioPowerDown17Mask /* 17 */
#define kMagicBusVCCOnPowerDownMask kIOMfioPowerDown16Mask /* 16 */
#define kKeyboardSPIClockPowerDownMask kIOMfioPowerDown15Mask /* 15 */
#define kKeyboardSPIOutPowerDownMask kIOMfioPowerDown14Mask /* 14 */
#define kKeyboardSPIInPowerDownMask kIOMfioPowerDown13Mask /* 13 */
#define kFlashOnBoardPowerDownMask kIOMfioPowerDown12Mask /* 12 */
#define kMModuleCardRegPowerDownMask kIOMfioPowerDown11Mask /* 11 */
#define kMModuleCardIOWritePowerDownMask kIOMfioPowerDown10Mask /* 10 */
#define kMModuleCardIOReadPowerDownMask kIOMfioPowerDown9Mask /* 9 */
#define kMModuleCardCSLPowerDownMask kIOMfioPowerDown8Mask /* 8 */
#define kMModuleCardCSHPowerDownMask kIOMfioPowerDown7Mask /* 7 */
#define kMModuleEnFlashRdPowerDownMask kIOMfioPowerDown6Mask /* 6 */
#define kIrDAShutDownPowerDownMask kIOMfioPowerDown5Mask /* 5 */
#define kMModuleCardWaitPowerDownMask kIOMfioPowerDown4Mask /* 4 */
#define kKeyboardWakePowerDownMask kIOMfioPowerDown3Mask /* 3 */
#define kKeyboardResetPowerDownMask kIOMfioPowerDown2Mask /* 2 */
#define kKeyboardAttentionPowerDownMask kIOMfioPowerDown1Mask /* 1 */
#define kSIBRingDetectPowerDownMask kIOMfioPowerDown0Mask /* 0 */
/* Cmtt1 Default IO and MFIO Masks */
#define kCmtt1IOControlDefaultMask (kSerialDTRDirectionMask | kMModuleWakeDirectionMask | kSerialDTRDataOutMask)
#define kCmtt1IOPowerDownDefaultMask (kMiniCard1DetectPowerDownMask | kMiniCard2DetectPowerDownMask | \
kSerialDTRPowerDownMask | kMModuleInterruptPowerDownMask | \
kMModuleWakePowerDownMask | kMModuleAttachedPowerDownMask)
#define kCmtt1MFIODataOutputDefaultMask (kMiniCard2ResetDataOutMask | kPowerDRAMVCCOnDataOutMask | \
kKeyboardWakeDataOutMask | kKeyboardResetDataOutMask | \
kDisplayVLCDOnDataOutMask | kSerialRTSDataOutMask)
#define kCmtt1MFIODirectionDefaultMask (kSerialRTSDirectionMask | \
kMiniCard2ResetDirectionMask | kMiniCard2BusyDirectionMask | \
kPowerDRAMVCCOnDirectionMask | kDisplayVBacklightOnDirectionMask | \
kIrDAShutDownDirectionMask | kMiniCard1SDADirectionMask | \
kMiniCard2SDADirectionMask | kMiniCardSCLDirectionMask | \
kDisplayVLCDOnDirectionMask | kMagicBusVCCOnDirectionMask | \
kKeyboardResetDirectionMask)
#define kCmtt1MFIOSelectDefaultMask (kSerialCTSSelectMask | kSerialRTSSelectMask | \
kMiniCard2ResetSelectMask | kMiniCard2BusySelectMask | \
kPowerDRAMVCCOnSelectMask | kDisplayVBacklightOnSelectMask | \
kIrDAShutDownSelectMask | kMiniCard1SDASelectMask | \
kMiniCard2SDASelectMask | kMiniCardSCLSelectMask | \
kDisplayVLCDOnSelectMask | kMagicBusVCCOnSelectMask | \
kFlashOnBoardSelectMask | kMModuleEnFlashRdSelectMask | \
kMModuleCardWaitSelectMask | kKeyboardWakeSelectMask | \
kKeyboardResetSelectMask | kKeyboardAttentionSelectMask | \
kSIBRingDetectSelectMask | kPowerVCC3SelectMask)
#define kCmtt1MFIOPowerDownDefaultMask (kSerialCTSPowerDownMask | kSerialRTSPowerDownMask | \
kMiniCard2ResetPowerDownMask | kMiniCard2BusyPowerDownMask | \
kDisplayVBacklightOnPowerDownMask | kMagicBusTXDataPowerDownMask | \
kMagicBusRXDataPowerDownMask | kIrDAShutDownPowerDownMask | \
kMModuleCS2PowerDownMask | kMiniCard1SDAPowerDownMask | \
kMiniCard2SDAPowerDownMask | kMiniCardSCLPowerDownMask | \
kDisplayVLCDOnPowerDownMask | kFlashOnBoardPowerDownMask | \
kMModuleCardRegPowerDownMask | kMModuleCardIOWritePowerDownMask | \
kMModuleCardIOReadPowerDownMask | kMModuleCardCSLPowerDownMask | \
kMModuleCardCSHPowerDownMask | kMModuleEnFlashRdPowerDownMask | \
kMiniCard2MCCSPowerDownMask | kMModuleCardWaitPowerDownMask)
#ifdef ASM_ONLY
// uses a0, a1, v0, v1; returns rtcLow in v0 and rtcHigh in v1
// must be called with .set noreorder
// label 19 = Ripple
#define ReadRTCNoRippleASM \
li a0, kPoseidonModuleAddress; \
lw a1, PoseidonModule_rtcLow(a0); \
19:; \
lw v1, PoseidonModule_rtcHigh(a0); \
lw v0, PoseidonModule_rtcLow(a0); \
and v1, 0x000000ff; \
bne a1, v0, 19b; \
lw a1, PoseidonModule_rtcLow(a0); \
\
// uses a0, a1, a2, a3, v0, v1; ticks passed in a0; returns final rtcLow in v0 and rtcHigh in v1
// must be called with .set noreorder
// label 31 = WaitHighRoll; label 23 = SkipHighRoll; label 35 = LowReadLoop
#define DelayRTCTicksNoRippleASM \
move a2, a0; \
ReadRTCNoRippleASM; \
li a3, 0xffffffff; \
subu a3, v0; \
bleu a2, a3, 23f; \
nop; \
\
subu a2, a3; \
move a3, v1; \
\
31:; \
ReadRTCNoRippleASM; \
beq v1, a3, 31b; \
nop; \
\
23:; \
move a3, v0; \
addu a3, a2; \
35:; \
ReadRTCNoRippleASM; \
bltu v0, a3, 35b; \
nop; \
\
#else
/*
* Get the current RTC, avoiding ripple. We know that if we
* sandwich a read of rtcHigh between two consistent reads of
* rtcLow, we have a non-rippling, consistent rtcHigh.
*/
#define ReadRTCNoRipple(poseidonModule, rtcLowVal, rtcHighVal) \
{ \
do { \
rtcLowVal = poseidonModule->rtcLow; \
rtcHighVal = poseidonModule->rtcHigh & 0x000000ff; \
} while (rtcLowVal != poseidonModule->rtcLow); \
}
#define DelayRTCTicksNoRipple(poseidonModule, ticks) \
{ \
ULONG rtcLowVal, rtcHighVal, ticks2, temp; \
\
ReadRTCNoRipple(poseidonModule, rtcLowVal, rtcHighVal); \
\
temp = (ULONG)0xffffffff - rtcLowVal; \
ticks2 = ticks; \
\
if (temp < ticks2) { \
ticks2 -= temp; \
temp = rtcHighVal; \
\
do { \
ReadRTCNoRipple(poseidonModule, rtcLowVal, rtcHighVal); \
} while (rtcHighVal == temp); \
} \
\
temp = rtcLowVal + ticks2; \
\
do { \
ReadRTCNoRipple(poseidonModule, rtcLowVal, rtcHighVal); \
} while (rtcLowVal < temp); \
}
#endif
/*
* Miscellaneous I/O
*/
#define kIOResetBettyOffMask kIREnRXPwrMask /* This mask is for PoseidonModule.irControl1 */
/*
* Macros
*/
#define AssertBettyResetSignal() \
poseidonHw->irControl1 &= ~kIOResetBettyOffMask;
#define DeAssertBettyResetSignal() \
poseidonHw->irControl1 |= kIOResetBettyOffMask;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -