Changeset 59878 in vbox
- Timestamp:
- Feb 29, 2016 10:02:23 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 105780
- Location:
- trunk/src/VBox/ValidationKit/bootsectors/bs3kit
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/Makefile.kmk
r59865 r59878 190 190 # 191 191 VBOX_BS3KIT_MODE_SOURCES = \ 192 bs3-mode-Name.asm \ 192 193 bs3-mode-SwitchToRM.asm \ 193 194 bs3-mode-SwitchToPE16.asm \ … … 207 208 bs3-mode-PagingGetRootForLM64.asm \ 208 209 bs3-mode-TrapSystemCallHandler.asm \ 210 bs3-mode-TestDoModes.c \ 211 bs3-mode-TestDoModesHlp.asm \ 209 212 210 213 # The 16-bit real mode BS3Kit library. -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-CpuDetectData.c
r59789 r59878 38 38 #if ARCH_BITS == 16 39 39 40 uint16_t BS3_DATA_NM(g_uBs3CpuDetected) = BS3CPU_TYPE_MASK | BS3CPU_F_CPUID | BS3CPU_F_CPUID_EXT_LEAVES | BS3CPU_F_LONG_MODE; 40 uint16_t BS3_DATA_NM(g_uBs3CpuDetected) = BS3CPU_TYPE_MASK | BS3CPU_F_CPUID | BS3CPU_F_CPUID_EXT_LEAVES 41 | BS3CPU_F_PAE | BS3CPU_F_LONG_MODE; 41 42 42 43 #endif /* ARCH_BITS == 16 */ -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-CpuDetect.asm
r59789 r59878 184 184 ; 185 185 ; Do a very simple minded check here using the (standard) family field. 186 ; While here, we also check for PAE. 186 187 ; 187 188 mov eax, 1 188 189 cpuid 190 191 ; Calc the basic family value before we mess up EAX. 189 192 mov cl, ah 190 and cl, 0fh ; Family. 193 and cl, 0fh 194 195 ; Start assembling return flags, checking for PAE. 196 mov xAX, BS3CPU_F_CPUID 197 and dx, X86_CPUID_FEATURE_EDX_PAE 198 shl dx, BS3CPU_F_PAE_BIT - X86_CPUID_FEATURE_EDX_PAE_BIT 199 or ax, dx 200 201 ; Add the CPU type based on the family value. 191 202 cmp cl, 6 192 mov xAX, BS3CPU_PPro | BS3CPU_F_CPUID203 or al, BS3CPU_PPro 193 204 jz .return 194 205 ja .NewerThanPPro 195 206 cmp cl, 5 196 mov xAX, BS3CPU_Pentium | BS3CPU_F_CPUID207 or al, BS3CPU_Pentium 197 208 je .return 198 209 cmp cl, 4 199 mov xAX, BS3CPU_80486 | BS3CPU_F_CPUID210 or al, BS3CPU_80486 200 211 je .return 201 212 cmp cl, 3 202 mov xAX, BS3CPU_80386 | BS3CPU_F_CPUID213 or al, BS3CPU_80386 203 214 je .return 204 215 .NewerThanPPro: 216 205 217 ; Check for extended leaves and long mode. 206 218 mov eax, 0x80000000 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h
r59865 r59878 2131 2131 */ 2132 2132 2133 2133 2134 /** 2134 2135 * Macro for reducing typing. … … 2137 2138 */ 2138 2139 #define BS3_MODE_EXPAND_PROTOTYPES(a_RetType, a_BaseFnNm, a_Parameters) \ 2139 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_rm) a_Parameters; \ 2140 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pe16) a_Parameters; \ 2141 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pe32) a_Parameters; \ 2142 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pev86) a_Parameters; \ 2143 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pp16) a_Parameters; \ 2144 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pp32) a_Parameters; \ 2145 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_ppv86) a_Parameters; \ 2146 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pae16) a_Parameters; \ 2147 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pae32) a_Parameters; \ 2148 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_paev86) a_Parameters; \ 2149 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_lm16) a_Parameters; \ 2150 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_lm32) a_Parameters; \ 2151 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_lm64) a_Parameters 2140 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_rm) a_Parameters; \ 2141 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pe16) a_Parameters; \ 2142 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pe16_32) a_Parameters; \ 2143 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pe16_v86) a_Parameters; \ 2144 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pe32) a_Parameters; \ 2145 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pe32_16) a_Parameters; \ 2146 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pev86) a_Parameters; \ 2147 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pp16) a_Parameters; \ 2148 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pp16_32) a_Parameters; \ 2149 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pp16_v86) a_Parameters; \ 2150 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pp32) a_Parameters; \ 2151 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pp32_16) a_Parameters; \ 2152 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_ppv86) a_Parameters; \ 2153 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pae16) a_Parameters; \ 2154 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pae16_16) a_Parameters; \ 2155 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pae16_v86)a_Parameters; \ 2156 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pae32) a_Parameters; \ 2157 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_pae32_16) a_Parameters; \ 2158 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_paev86) a_Parameters; \ 2159 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_lm16) a_Parameters; \ 2160 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_lm32) a_Parameters; \ 2161 BS3_DECL(a_RetType) RT_CONCAT(a_BaseFnNm,_lm64) a_Parameters 2162 2163 /** 2164 * Macro for reducing typing. 2165 * 2166 * Doxygen knows how to expand this, well, kind of. 2167 */ 2168 #define BS3_MODE_EXPAND_EXTERN_DATA16(a_VarType, a_VarName, a_Suffix) \ 2169 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_rm)) a_Suffix; \ 2170 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pe16)) a_Suffix; \ 2171 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pe16_32)) a_Suffix; \ 2172 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pe16_v86)) a_Suffix; \ 2173 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pe32)) a_Suffix; \ 2174 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pe32_16)) a_Suffix; \ 2175 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pev86)) a_Suffix; \ 2176 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pp16)) a_Suffix; \ 2177 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pp16_32)) a_Suffix; \ 2178 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pp16_v86)) a_Suffix; \ 2179 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pp32)) a_Suffix; \ 2180 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pp32_16)) a_Suffix; \ 2181 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_ppv86)) a_Suffix; \ 2182 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pae16)) a_Suffix; \ 2183 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pae16_32)) a_Suffix; \ 2184 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pae16_v86))a_Suffix; \ 2185 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pae32)) a_Suffix; \ 2186 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_pae32_16)) a_Suffix; \ 2187 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_paev86)) a_Suffix; \ 2188 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_lm16)) a_Suffix; \ 2189 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_lm32)) a_Suffix; \ 2190 extern BS3_DECL(a_VarType) BS3_FAR_DATA BS3_DATA_NM(RT_CONCAT(a_VarName,_lm64)) a_Suffix 2191 2192 2193 /** The TMPL_MODE_STR value for each mode. 2194 * These are all in DATA16 so they can be accessed from any code. */ 2195 BS3_MODE_EXPAND_EXTERN_DATA16(const char *, g_szBs3ModeName, []); 2152 2196 2153 2197 /** … … 2179 2223 /** Flag indicating that extend CPUID leaves are available (at least two). */ 2180 2224 #define BS3CPU_F_CPUID_EXT_LEAVES UINT16_C(0x0200) 2225 /** Flag indicating that the CPU supports PAE. */ 2226 #define BS3CPU_F_PAE UINT16_C(0x0400) 2181 2227 /** Flag indicating that the CPU supports long mode. */ 2182 #define BS3CPU_F_LONG_MODE UINT16_C(0x0 400)2228 #define BS3CPU_F_LONG_MODE UINT16_C(0x0800) 2183 2229 /** @} */ 2184 2230 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.mac
r59863 r59878 1271 1271 %define BS3CPU_F_CPUID 0x0100 1272 1272 %define BS3CPU_F_CPUID_EXT_LEAVES 0x0200 1273 %define BS3CPU_F_LONG_MODE 0x0400 1273 %define BS3CPU_F_PAE 0x0400 1274 %define BS3CPU_F_PAE_BIT 10 1275 %define BS3CPU_F_LONG_MODE 0x0800 1274 1276 ;; @} 1275 1277
Note:
See TracChangeset
for help on using the changeset viewer.