📄 xllp_pm_sleepcontext.inc
字号:
;******************************************************************************
;;
;; COPYRIGHT (C) 2002 Intel Corporation.
;;
;; This software as well as the software described in it is furnished under
;; license and may only be used or copied in accordance with the terms of the
;; license. The information in this file is furnished for informational use
;; only, is subject to change without notice, and should not be construed as
;; a commitment by Intel Corporation. Intel Corporation assumes no
;; responsibility or liability for any errors or inaccuracies that may appear
;; in this document or any software that may be provided in association with
;; this document.
;; Except as permitted by such license, no part of this document may be
;; reproduced, stored in a retrieval system, or transmitted in any form or by
;; any means without the express written consent of Intel Corporation.
;;
;; FILENAME: xllp_Pm_SleepContext.inc
;;
;; LAST MODIFIED: 5/28/02
;;
;******************************************************************************
;
;
; Include file for Bulverde Processor based platforms
; NOTE: This file must be kept in sync with xllp_Pm_SleepContext.h
;
IF :DEF: xllp_Pm_SleepContext_inc
ELSE ; IF :DEF: xllp_Pm_SleepContext_inc
xllp_Pm_SleepContext_inc EQU 1
; For sanity check in checksum
XLLI_MAX_SLEEP_DATA_COUNT EQU 0x200
XLLP_STORE_WMX_REGS_BYTES EQU 156
WORD_SIZE EQU (4)
; Sleep type
MODE_SLEEP_A EQU 0
MODE_DEEP_SLEEP_A EQU 1
MODE_STANDBY_A EQU 2
PWRMODE_DEEP_SLEEP EQU (0x00000007) ; Value for cp14: Reg7 to induce sleep.
; Template that defines the ASM-addressable part of the
; XLLP_PM_ENTER_SLEEP_PARAMS_S structure used for the sleep parameter.
; Note that the ASM-addressable section begins at the start of the structure.
; /////////////////////////////////////////////////////////////////////////
; //
; // Definition of parameter structure needed by XllpPmEnterSleep()
; //
;
; typedef struct XLLP_PM_ENTER_SLEEP_PARAMS_S
SleepParams_Data_Start EQU 0
SleepParams_SleepType EQU (SleepParams_Data_Start )
SleepParams_r10 EQU (SleepParams_SleepType + WORD_SIZE)
SleepParams_PEDR EQU (SleepParams_r10 + WORD_SIZE)
SleepParams_PKSR EQU (SleepParams_PEDR + WORD_SIZE)
SleepParams_SleepDataAreaPA EQU (SleepParams_PKSR + WORD_SIZE)
SleepParams_SleepDataAreaVA EQU (SleepParams_SleepDataAreaPA + WORD_SIZE)
SleepParams_pTmpStack EQU (SleepParams_SleepDataAreaVA + WORD_SIZE)
SleepParams_OSCR_Addr EQU (SleepParams_pTmpStack + WORD_SIZE)
SleepParams_BeginSleepTime EQU (SleepParams_OSCR_Addr + WORD_SIZE)
SleepParams_Addr_EndSleepTime EQU (SleepParams_BeginSleepTime + WORD_SIZE)
SleepParams_EndSleepTime EQU (SleepParams_Addr_EndSleepTime+ WORD_SIZE)
SleepParams_BeginWakeTime EQU (SleepParams_EndSleepTime + WORD_SIZE)
SleepParams_EndWakeTime EQU (SleepParams_BeginWakeTime + WORD_SIZE)
SleepParams_ChangeOfTime EQU (SleepParams_EndWakeTime + WORD_SIZE)
SleepParams_SleepOptions EQU (SleepParams_ChangeOfTime + WORD_SIZE)
SleepParams_LowPowerModeSelect EQU (SleepParams_SleepOptions + WORD_SIZE)
SleepParams_EndOfInterestingArea EQU (SleepParams_LowPowerModeSelect+WORD_SIZE)
; End of template for ASM use. C-level usage extends beyond this.
; Don't base any other symbols or addressing on "SleepParams_" symbols
;=================================================================
;=================================================================
; Template that defines the ASM-addressable part of the
; XLLP_PM_SLEEP_SAVE_DATA_S structure used for the sleep saved data area.
; Note that the ASM-addressable section begins at the start of the structure.
;typedef struct XLLP_PM_SLEEP_SAVE_DATA_S
SleepState_Data_Start EQU 0
SleepState_CHKSUM EQU ( SleepState_Data_Start )
SleepState_WordCount EQU ( SleepState_CHKSUM + WORD_SIZE )
SleepState_AwakeAddr EQU ( SleepState_WordCount + WORD_SIZE )
SleepState_SleepDataAreaVA EQU ( SleepState_AwakeAddr + WORD_SIZE )
SleepState_SleepParamVA EQU ( SleepState_SleepDataAreaVA + WORD_SIZE )
; // ARM* registers and most coprocessors must be processed locally
; // using assembly language.
;
; // ARM* unique registers
;
SleepState_ENTRY_CPSR EQU ( SleepState_SleepParamVA + WORD_SIZE )
SleepState_ENTRY_SP EQU ( SleepState_ENTRY_CPSR + WORD_SIZE )
SleepState_ENTRY_SPSR EQU ( SleepState_ENTRY_SP + WORD_SIZE )
SleepState_SYS_SP EQU ( SleepState_ENTRY_SPSR + WORD_SIZE )
SleepState_FIQ_SP EQU ( SleepState_SYS_SP + WORD_SIZE )
SleepState_ABT_SP EQU ( SleepState_FIQ_SP + WORD_SIZE )
SleepState_IRQ_SP EQU ( SleepState_ABT_SP + WORD_SIZE )
SleepState_UND_SP EQU ( SleepState_IRQ_SP + WORD_SIZE )
SleepState_SVC_SP EQU ( SleepState_UND_SP + WORD_SIZE )
; // Saved Coprocessor regs other than CP0+1 (includes MMU values)
; // MMU
SleepState_Cp15_ACR_MMU EQU ( SleepState_SVC_SP + WORD_SIZE )
SleepState_Cp15_AUXCR_MMU EQU ( SleepState_Cp15_ACR_MMU + WORD_SIZE )
SleepState_Cp15_TTBR_MMU EQU ( SleepState_Cp15_AUXCR_MMU + WORD_SIZE )
SleepState_Cp15_DACR_MMU EQU ( SleepState_Cp15_TTBR_MMU + WORD_SIZE )
SleepState_Cp15_PID_MMU EQU ( SleepState_Cp15_DACR_MMU + WORD_SIZE )
SleepState_Cp15_CPAR EQU (SleepState_Cp15_PID_MMU + WORD_SIZE )
;; Additional saved info for IM and deep sleep support
SleepState_pTmpStack EQU ( SleepState_Cp15_CPAR + WORD_SIZE )
SleepState_impmcr_va EQU ( SleepState_pTmpStack + WORD_SIZE )
SleepState_impmcr EQU ( SleepState_impmcr_va + WORD_SIZE )
SleepState_StoreAddrForIntlMem_0 EQU ( SleepState_impmcr + WORD_SIZE )
SleepState_StoreAddrForIntlMem_1 EQU ( SleepState_StoreAddrForIntlMem_0 + WORD_SIZE )
SleepState_StoreAddrForIntlMem_2 EQU ( SleepState_StoreAddrForIntlMem_1 + WORD_SIZE )
SleepState_StoreAddrForIntlMem_3 EQU ( SleepState_StoreAddrForIntlMem_2 + WORD_SIZE )
SleepState_IntlMemVA_0 EQU ( SleepState_StoreAddrForIntlMem_3 + WORD_SIZE )
SleepState_IntlMemVA_1 EQU ( SleepState_IntlMemVA_0 + WORD_SIZE )
SleepState_IntlMemVA_2 EQU ( SleepState_IntlMemVA_1 + WORD_SIZE )
SleepState_IntlMemVA_3 EQU ( SleepState_IntlMemVA_2 + WORD_SIZE )
SleepState_OSCR_Addr EQU ( SleepState_IntlMemVA_3 + WORD_SIZE )
SleepState_OSCR_val EQU ( SleepState_OSCR_Addr + WORD_SIZE )
SleepState_BeginWakeTime EQU ( SleepState_OSCR_val + WORD_SIZE )
SleepState_EndOfInterestingArea EQU ( SleepState_BeginWakeTime)
; End of template for ASM use. C-level usage extends beyond this.
; Don't base any other symbols or addressing on "SleepState_" symbols
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Some important constants that aren't defined elsewhere
;;
;;
;; Intel
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -