summaryrefslogtreecommitdiff
path: root/Include/CmosAccessSec.inc
blob: c249e8633f18b4f33ef6262d94a44272e7c5358c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
;**********************************************************************
;**********************************************************************
;**                                                                  **
;**        (C)Copyright 1985-2009, American Megatrends, Inc.         **
;**                                                                  **
;**                       All Rights Reserved.                       **
;**                                                                  **
;**         5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093        **
;**                                                                  **
;**                       Phone: (770)-246-8600                      **
;**                                                                  **
;**********************************************************************
;**********************************************************************
; $Header: /Alaska/SOURCE/Modules/CMOS Manager/CMOS Core/CMOS Interfaces/CmosAccessSec.inc 7     12/04/09 7:32p Michaela $
;
; $Revision: 7 $
;
; $Date: 12/04/09 7:32p $
;
;****************************************************************************
; Revision History
; ----------------
; $Log: /Alaska/SOURCE/Modules/CMOS Manager/CMOS Core/CMOS Interfaces/CmosAccessSec.inc $
; 
; 7     12/04/09 7:32p Michaela
; 
; 6     9/17/09 10:03a Michaela
; updated jump macros for PE32 SEC binaries
; 
; 5     7/29/09 9:58a Michaela
; updates Aptio Enhancement EIP 22205
; (no code changes)
; 
; 4     7/23/09 2:28p Michaela
; 
; 3     7/23/09 1:35p Michaela
; Fixed build issue related to PE32 binaries
; 
; 2     6/02/09 3:27p Michaela
; For label: 4.6.3_CMOSMGR_11
; 
; 1     11/25/08 3:33p Michaela
; Updates for Label 4.6.3_CMOSMGR_08
; - Assembly macro fixes
; - Added assembly macros
; - Moved loading defaults into DXE phase
; - Updated help file example
; 
; 2     11/25/08 3:29p Michaela
; Updates for Label 4.6.3_CMOSMGR_08
; - Assembly macro fixes
; - Added assembly macros
; - Moved loading defaults into DXE phase
; - Updated help file example
; 
; 1     11/25/08 3:17p Michaela
; Moved to CMOS Interfaces
; 
; 1     11/14/08 9:06a Michaela
; Include file for CMOS access in SEC phase
; 
; 2     11/07/08 5:31p Michaela
; Added SS header
; 

;*************************************************************************
;<AMI_FHDR_START>
;
; Name: CmosAccessSec.inc
;
; Description:
;   This file contains macros, constants, procedure definitions and structure 
;   declarations to be used in SEC phase assembly code.
;
;<AMI_FHDR_END>
;*************************************************************************

IFNDEF  _CMOSACCESS_SEC_INC_
_CMOSACCESS_SEC_INC_   EQU 1

INCLUDE TokenEqu.equ
INCLUDE Token.equ

IFDEF  MKF_SEC_CREATE_PE32               ; cannot use LAST_ADDRESS in PE32 files
    IF MKF_SEC_CREATE_PE32
        SEC_LAST_ADDRESS_VALID = 0
    ELSE
        SEC_LAST_ADDRESS_VALID = 1
    ENDIF
ELSE
    SEC_LAST_ADDRESS_VALID = 1
ENDIF

IF SEC_LAST_ADDRESS_VALID
jmp_edi macro dummy                 ; goto routine & back (via EDI)
        local   llll                ; local label
        mov     edi, LAST_ADDRESS
        sub     edi, OFFSET llll
        neg     edi
        jmp     dummy
llll:
endm

jmp_edx macro dummy                 ; goto routine & back (via EDX)
        local   llll                ; local label
        mov     edx, LAST_ADDRESS
        sub     edx, OFFSET llll
        neg     edx
        jmp     dummy
llll:
endm

;------- The following macros can be used in PE32 SEC
ELSE
jmp_edi macro dummy                 ; goto routine & back (via EDI)
        local   llll                ; local label
        mov     edi, OFFSET llll
        jmp     dummy
llll:
endm

jmp_edx macro dummy                 ; goto routine & back (via EDX)
        local   llll                ; local label
        mov     edx, OFFSET llll
        jmp     dummy
llll:
endm
ENDIF

CMOS_WRITE_ACCESS   = 0
CMOS_READ_ACCESS    = 1

CMOS_BATTERY_ERR    = 012h
CMOS_BITSIZE_ERR    = 013h
CMOS_OVERFLOW_ERR   = 014h

IFNDEF CMOS_NO_EXTERNS
EXTERN  CmosReadWrite:NEAR32
ENDIF

IF SEC_LAST_ADDRESS_VALID
EXTERN  LAST_ADDRESS:ABS
ENDIF

ENDIF

;**********************************************************************
;**********************************************************************
;**                                                                  **
;**        (C)Copyright 1985-2009, American Megatrends, Inc.         **
;**                                                                  **
;**                       All Rights Reserved.                       **
;**                                                                  **
;**         5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093        **
;**                                                                  **
;**                       Phone: (770)-246-8600                      **
;**                                                                  **
;**********************************************************************
;**********************************************************************