⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xllp_pm_sleepcontext.inc

📁 pxa27x下rtc程序
💻 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 + -