Changeset 99404 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/SourceLevelDebugPkg/Include
- Timestamp:
- Apr 14, 2023 3:17:44 PM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 156854
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776,129194-145445 /vendor/edk2/current 103735-103757,103769-103776,129194-156846
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/SourceLevelDebugPkg/Include/Guid/DebugAgentGuid.h
r80721 r99404 22 22 } 23 23 24 extern EFI_GUID gEfiDebugAgentGuid;24 extern EFI_GUID gEfiDebugAgentGuid; 25 25 26 26 #endif -
trunk/src/VBox/Devices/EFI/FirmwareNew/SourceLevelDebugPkg/Include/Ia32/ProcessorContext.h
r85718 r99404 40 40 #define SOFT_DEBUGGER_REGISTER_CR4 0x18 41 41 42 #define SOFT_DEBUGGER_REGISTER_DI 43 #define SOFT_DEBUGGER_REGISTER_SI 44 #define SOFT_DEBUGGER_REGISTER_BP 45 #define SOFT_DEBUGGER_REGISTER_SP 46 #define SOFT_DEBUGGER_REGISTER_DX 47 #define SOFT_DEBUGGER_REGISTER_CX 48 #define SOFT_DEBUGGER_REGISTER_BX 49 #define SOFT_DEBUGGER_REGISTER_AX 42 #define SOFT_DEBUGGER_REGISTER_DI 0x19 43 #define SOFT_DEBUGGER_REGISTER_SI 0x1A 44 #define SOFT_DEBUGGER_REGISTER_BP 0x1B 45 #define SOFT_DEBUGGER_REGISTER_SP 0x1C 46 #define SOFT_DEBUGGER_REGISTER_DX 0x1D 47 #define SOFT_DEBUGGER_REGISTER_CX 0x1E 48 #define SOFT_DEBUGGER_REGISTER_BX 0x1F 49 #define SOFT_DEBUGGER_REGISTER_AX 0x20 50 50 51 51 // 52 52 // This below registers are only available for x64 (not valid for Ia32 mode) 53 53 // 54 #define SOFT_DEBUGGER_REGISTER_CR8 55 #define SOFT_DEBUGGER_REGISTER_R8 56 #define SOFT_DEBUGGER_REGISTER_R9 57 #define SOFT_DEBUGGER_REGISTER_R10 58 #define SOFT_DEBUGGER_REGISTER_R11 59 #define SOFT_DEBUGGER_REGISTER_R12 60 #define SOFT_DEBUGGER_REGISTER_R13 61 #define SOFT_DEBUGGER_REGISTER_R14 62 #define SOFT_DEBUGGER_REGISTER_R15 54 #define SOFT_DEBUGGER_REGISTER_CR8 0x21 55 #define SOFT_DEBUGGER_REGISTER_R8 0x22 56 #define SOFT_DEBUGGER_REGISTER_R9 0x23 57 #define SOFT_DEBUGGER_REGISTER_R10 0x24 58 #define SOFT_DEBUGGER_REGISTER_R11 0x25 59 #define SOFT_DEBUGGER_REGISTER_R12 0x26 60 #define SOFT_DEBUGGER_REGISTER_R13 0x27 61 #define SOFT_DEBUGGER_REGISTER_R14 0x28 62 #define SOFT_DEBUGGER_REGISTER_R15 0x29 63 63 64 64 // 65 65 // This below registers are FP / MMX / XMM registers 66 66 // 67 #define SOFT_DEBUGGER_REGISTER_FP_BASE 68 69 #define SOFT_DEBUGGER_REGISTER_FP_FCW 70 #define SOFT_DEBUGGER_REGISTER_FP_FSW 71 #define SOFT_DEBUGGER_REGISTER_FP_FTW 72 #define SOFT_DEBUGGER_REGISTER_FP_OPCODE 73 #define SOFT_DEBUGGER_REGISTER_FP_EIP 74 #define SOFT_DEBUGGER_REGISTER_FP_CS 75 #define SOFT_DEBUGGER_REGISTER_FP_DATAOFFSET 76 #define SOFT_DEBUGGER_REGISTER_FP_DS 77 #define SOFT_DEBUGGER_REGISTER_FP_MXCSR 78 #define SOFT_DEBUGGER_REGISTER_FP_MXCSR_MASK 79 #define SOFT_DEBUGGER_REGISTER_ST0 80 #define SOFT_DEBUGGER_REGISTER_ST1 81 #define SOFT_DEBUGGER_REGISTER_ST2 82 #define SOFT_DEBUGGER_REGISTER_ST3 83 #define SOFT_DEBUGGER_REGISTER_ST4 84 #define SOFT_DEBUGGER_REGISTER_ST5 85 #define SOFT_DEBUGGER_REGISTER_ST6 86 #define SOFT_DEBUGGER_REGISTER_ST7 87 #define SOFT_DEBUGGER_REGISTER_XMM0 88 #define SOFT_DEBUGGER_REGISTER_XMM1 89 #define SOFT_DEBUGGER_REGISTER_XMM2 90 #define SOFT_DEBUGGER_REGISTER_XMM3 91 #define SOFT_DEBUGGER_REGISTER_XMM4 92 #define SOFT_DEBUGGER_REGISTER_XMM5 93 #define SOFT_DEBUGGER_REGISTER_XMM6 94 #define SOFT_DEBUGGER_REGISTER_XMM7 95 #define SOFT_DEBUGGER_REGISTER_XMM8 96 #define SOFT_DEBUGGER_REGISTER_XMM9 97 #define SOFT_DEBUGGER_REGISTER_XMM10 98 #define SOFT_DEBUGGER_REGISTER_XMM11 99 #define SOFT_DEBUGGER_REGISTER_XMM12 100 #define SOFT_DEBUGGER_REGISTER_XMM13 101 #define SOFT_DEBUGGER_REGISTER_XMM14 102 #define SOFT_DEBUGGER_REGISTER_XMM15 103 #define SOFT_DEBUGGER_REGISTER_MM0 104 #define SOFT_DEBUGGER_REGISTER_MM1 105 #define SOFT_DEBUGGER_REGISTER_MM2 106 #define SOFT_DEBUGGER_REGISTER_MM3 107 #define SOFT_DEBUGGER_REGISTER_MM4 108 #define SOFT_DEBUGGER_REGISTER_MM5 109 #define SOFT_DEBUGGER_REGISTER_MM6 110 #define SOFT_DEBUGGER_REGISTER_MM7 111 112 #define SOFT_DEBUGGER_REGISTER_MAX 113 114 #define SOFT_DEBUGGER_MSR_EFER 67 #define SOFT_DEBUGGER_REGISTER_FP_BASE 0x30 68 69 #define SOFT_DEBUGGER_REGISTER_FP_FCW (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x00) 70 #define SOFT_DEBUGGER_REGISTER_FP_FSW (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x01) 71 #define SOFT_DEBUGGER_REGISTER_FP_FTW (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x02) 72 #define SOFT_DEBUGGER_REGISTER_FP_OPCODE (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x03) 73 #define SOFT_DEBUGGER_REGISTER_FP_EIP (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x04) 74 #define SOFT_DEBUGGER_REGISTER_FP_CS (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x05) 75 #define SOFT_DEBUGGER_REGISTER_FP_DATAOFFSET (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x06) 76 #define SOFT_DEBUGGER_REGISTER_FP_DS (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x07) 77 #define SOFT_DEBUGGER_REGISTER_FP_MXCSR (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x08) 78 #define SOFT_DEBUGGER_REGISTER_FP_MXCSR_MASK (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x09) 79 #define SOFT_DEBUGGER_REGISTER_ST0 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0A) 80 #define SOFT_DEBUGGER_REGISTER_ST1 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0B) 81 #define SOFT_DEBUGGER_REGISTER_ST2 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0C) 82 #define SOFT_DEBUGGER_REGISTER_ST3 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0D) 83 #define SOFT_DEBUGGER_REGISTER_ST4 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0E) 84 #define SOFT_DEBUGGER_REGISTER_ST5 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0F) 85 #define SOFT_DEBUGGER_REGISTER_ST6 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x10) 86 #define SOFT_DEBUGGER_REGISTER_ST7 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x11) 87 #define SOFT_DEBUGGER_REGISTER_XMM0 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x12) 88 #define SOFT_DEBUGGER_REGISTER_XMM1 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x13) 89 #define SOFT_DEBUGGER_REGISTER_XMM2 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x14) 90 #define SOFT_DEBUGGER_REGISTER_XMM3 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x15) 91 #define SOFT_DEBUGGER_REGISTER_XMM4 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x16) 92 #define SOFT_DEBUGGER_REGISTER_XMM5 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x17) 93 #define SOFT_DEBUGGER_REGISTER_XMM6 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x18) 94 #define SOFT_DEBUGGER_REGISTER_XMM7 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x19) 95 #define SOFT_DEBUGGER_REGISTER_XMM8 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1A) 96 #define SOFT_DEBUGGER_REGISTER_XMM9 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1B) 97 #define SOFT_DEBUGGER_REGISTER_XMM10 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1C) 98 #define SOFT_DEBUGGER_REGISTER_XMM11 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1D) 99 #define SOFT_DEBUGGER_REGISTER_XMM12 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1E) 100 #define SOFT_DEBUGGER_REGISTER_XMM13 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1F) 101 #define SOFT_DEBUGGER_REGISTER_XMM14 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x20) 102 #define SOFT_DEBUGGER_REGISTER_XMM15 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x21) 103 #define SOFT_DEBUGGER_REGISTER_MM0 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x22) 104 #define SOFT_DEBUGGER_REGISTER_MM1 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x23) 105 #define SOFT_DEBUGGER_REGISTER_MM2 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x24) 106 #define SOFT_DEBUGGER_REGISTER_MM3 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x25) 107 #define SOFT_DEBUGGER_REGISTER_MM4 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x26) 108 #define SOFT_DEBUGGER_REGISTER_MM5 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x27) 109 #define SOFT_DEBUGGER_REGISTER_MM6 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x28) 110 #define SOFT_DEBUGGER_REGISTER_MM7 (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x29) 111 112 #define SOFT_DEBUGGER_REGISTER_MAX SOFT_DEBUGGER_REGISTER_MM7 113 114 #define SOFT_DEBUGGER_MSR_EFER (0xC0000080) 115 115 116 116 #pragma pack(1) … … 121 121 /// 122 122 typedef struct { 123 UINT16 Fcw;124 UINT16 Fsw;125 UINT16 Ftw;126 UINT16 Opcode;127 UINT32 Eip;128 UINT16 Cs;129 UINT16 Reserved1;130 UINT32 DataOffset;131 UINT16 Ds;132 UINT8 Reserved2[2];133 UINT32 Mxcsr;134 UINT32 Mxcsr_Mask;135 UINT8 St0Mm0[10];136 UINT8 Reserved3[6];137 UINT8 St1Mm1[10];138 UINT8 Reserved4[6];139 UINT8 St2Mm2[10];140 UINT8 Reserved5[6];141 UINT8 St3Mm3[10];142 UINT8 Reserved6[6];143 UINT8 St4Mm4[10];144 UINT8 Reserved7[6];145 UINT8 St5Mm5[10];146 UINT8 Reserved8[6];147 UINT8 St6Mm6[10];148 UINT8 Reserved9[6];149 UINT8 St7Mm7[10];150 UINT8 Reserved10[6];151 UINT8 Xmm0[16];152 UINT8 Xmm1[16];153 UINT8 Xmm2[16];154 UINT8 Xmm3[16];155 UINT8 Xmm4[16];156 UINT8 Xmm5[16];157 UINT8 Xmm6[16];158 UINT8 Xmm7[16];159 UINT8 Reserved11[14 * 16];123 UINT16 Fcw; 124 UINT16 Fsw; 125 UINT16 Ftw; 126 UINT16 Opcode; 127 UINT32 Eip; 128 UINT16 Cs; 129 UINT16 Reserved1; 130 UINT32 DataOffset; 131 UINT16 Ds; 132 UINT8 Reserved2[2]; 133 UINT32 Mxcsr; 134 UINT32 Mxcsr_Mask; 135 UINT8 St0Mm0[10]; 136 UINT8 Reserved3[6]; 137 UINT8 St1Mm1[10]; 138 UINT8 Reserved4[6]; 139 UINT8 St2Mm2[10]; 140 UINT8 Reserved5[6]; 141 UINT8 St3Mm3[10]; 142 UINT8 Reserved6[6]; 143 UINT8 St4Mm4[10]; 144 UINT8 Reserved7[6]; 145 UINT8 St5Mm5[10]; 146 UINT8 Reserved8[6]; 147 UINT8 St6Mm6[10]; 148 UINT8 Reserved9[6]; 149 UINT8 St7Mm7[10]; 150 UINT8 Reserved10[6]; 151 UINT8 Xmm0[16]; 152 UINT8 Xmm1[16]; 153 UINT8 Xmm2[16]; 154 UINT8 Xmm3[16]; 155 UINT8 Xmm4[16]; 156 UINT8 Xmm5[16]; 157 UINT8 Xmm6[16]; 158 UINT8 Xmm7[16]; 159 UINT8 Reserved11[14 * 16]; 160 160 } DEBUG_DATA_IA32_FX_SAVE_STATE; 161 161 … … 164 164 /// 165 165 typedef struct { 166 UINT32 ExceptionData;167 DEBUG_DATA_IA32_FX_SAVE_STATE FxSaveState;168 UINT32 Dr0;169 UINT32 Dr1;170 UINT32 Dr2;171 UINT32 Dr3;172 UINT32 Dr6;173 UINT32 Dr7;174 UINT32 Eflags;175 UINT32 Ldtr;176 UINT32 Tr;177 UINT32 Gdtr[2];178 UINT32 Idtr[2];179 UINT32 Eip;180 UINT32 Gs;181 UINT32 Fs;182 UINT32 Es;183 UINT32 Ds;184 UINT32 Cs;185 UINT32 Ss;186 UINT32 Cr0;187 UINT32 Cr1;///< Reserved188 UINT32 Cr2;189 UINT32 Cr3;190 UINT32 Cr4;191 UINT32 Edi;192 UINT32 Esi;193 UINT32 Ebp;194 UINT32 Esp;195 UINT32 Edx;196 UINT32 Ecx;197 UINT32 Ebx;198 UINT32 Eax;166 UINT32 ExceptionData; 167 DEBUG_DATA_IA32_FX_SAVE_STATE FxSaveState; 168 UINT32 Dr0; 169 UINT32 Dr1; 170 UINT32 Dr2; 171 UINT32 Dr3; 172 UINT32 Dr6; 173 UINT32 Dr7; 174 UINT32 Eflags; 175 UINT32 Ldtr; 176 UINT32 Tr; 177 UINT32 Gdtr[2]; 178 UINT32 Idtr[2]; 179 UINT32 Eip; 180 UINT32 Gs; 181 UINT32 Fs; 182 UINT32 Es; 183 UINT32 Ds; 184 UINT32 Cs; 185 UINT32 Ss; 186 UINT32 Cr0; 187 UINT32 Cr1; ///< Reserved 188 UINT32 Cr2; 189 UINT32 Cr3; 190 UINT32 Cr4; 191 UINT32 Edi; 192 UINT32 Esi; 193 UINT32 Ebp; 194 UINT32 Esp; 195 UINT32 Edx; 196 UINT32 Ecx; 197 UINT32 Ebx; 198 UINT32 Eax; 199 199 } DEBUG_DATA_IA32_SYSTEM_CONTEXT; 200 200 … … 204 204 /// 205 205 typedef struct { 206 UINT16 Fcw;207 UINT16 Fsw;208 UINT16 Ftw;209 UINT16 Opcode;210 UINT32 Eip;211 UINT16 Cs;212 UINT16 Reserved1;213 UINT32 DataOffset;214 UINT16 Ds;215 UINT8 Reserved2[2];216 UINT32 Mxcsr;217 UINT32 Mxcsr_Mask;218 UINT8 St0Mm0[10];219 UINT8 Reserved3[6];220 UINT8 St1Mm1[10];221 UINT8 Reserved4[6];222 UINT8 St2Mm2[10];223 UINT8 Reserved5[6];224 UINT8 St3Mm3[10];225 UINT8 Reserved6[6];226 UINT8 St4Mm4[10];227 UINT8 Reserved7[6];228 UINT8 St5Mm5[10];229 UINT8 Reserved8[6];230 UINT8 St6Mm6[10];231 UINT8 Reserved9[6];232 UINT8 St7Mm7[10];233 UINT8 Reserved10[6];234 UINT8 Xmm0[16];235 UINT8 Xmm1[16];236 UINT8 Xmm2[16];237 UINT8 Xmm3[16];238 UINT8 Xmm4[16];239 UINT8 Xmm5[16];240 UINT8 Xmm6[16];241 UINT8 Xmm7[16];242 UINT8 Xmm8[16];243 UINT8 Xmm9[16];244 UINT8 Xmm10[16];245 UINT8 Xmm11[16];246 UINT8 Xmm12[16];247 UINT8 Xmm13[16];248 UINT8 Xmm14[16];249 UINT8 Xmm15[16];250 UINT8 Reserved11[6 * 16];206 UINT16 Fcw; 207 UINT16 Fsw; 208 UINT16 Ftw; 209 UINT16 Opcode; 210 UINT32 Eip; 211 UINT16 Cs; 212 UINT16 Reserved1; 213 UINT32 DataOffset; 214 UINT16 Ds; 215 UINT8 Reserved2[2]; 216 UINT32 Mxcsr; 217 UINT32 Mxcsr_Mask; 218 UINT8 St0Mm0[10]; 219 UINT8 Reserved3[6]; 220 UINT8 St1Mm1[10]; 221 UINT8 Reserved4[6]; 222 UINT8 St2Mm2[10]; 223 UINT8 Reserved5[6]; 224 UINT8 St3Mm3[10]; 225 UINT8 Reserved6[6]; 226 UINT8 St4Mm4[10]; 227 UINT8 Reserved7[6]; 228 UINT8 St5Mm5[10]; 229 UINT8 Reserved8[6]; 230 UINT8 St6Mm6[10]; 231 UINT8 Reserved9[6]; 232 UINT8 St7Mm7[10]; 233 UINT8 Reserved10[6]; 234 UINT8 Xmm0[16]; 235 UINT8 Xmm1[16]; 236 UINT8 Xmm2[16]; 237 UINT8 Xmm3[16]; 238 UINT8 Xmm4[16]; 239 UINT8 Xmm5[16]; 240 UINT8 Xmm6[16]; 241 UINT8 Xmm7[16]; 242 UINT8 Xmm8[16]; 243 UINT8 Xmm9[16]; 244 UINT8 Xmm10[16]; 245 UINT8 Xmm11[16]; 246 UINT8 Xmm12[16]; 247 UINT8 Xmm13[16]; 248 UINT8 Xmm14[16]; 249 UINT8 Xmm15[16]; 250 UINT8 Reserved11[6 * 16]; 251 251 } DEBUG_DATA_X64_FX_SAVE_STATE; 252 252 … … 255 255 /// 256 256 typedef struct { 257 UINT64 ExceptionData;258 DEBUG_DATA_X64_FX_SAVE_STATE FxSaveState;259 UINT64 Dr0;260 UINT64 Dr1;261 UINT64 Dr2;262 UINT64 Dr3;263 UINT64 Dr6;264 UINT64 Dr7;265 UINT64 Eflags;266 UINT64 Ldtr;267 UINT64 Tr;268 UINT64 Gdtr[2];269 UINT64 Idtr[2];270 UINT64 Eip;271 UINT64 Gs;272 UINT64 Fs;273 UINT64 Es;274 UINT64 Ds;275 UINT64 Cs;276 UINT64 Ss;277 UINT64 Cr0;278 UINT64 Cr1;///< Reserved279 UINT64 Cr2;280 UINT64 Cr3;281 UINT64 Cr4;282 UINT64 Rdi;283 UINT64 Rsi;284 UINT64 Rbp;285 UINT64 Rsp;286 UINT64 Rdx;287 UINT64 Rcx;288 UINT64 Rbx;289 UINT64 Rax;290 UINT64 Cr8;291 UINT64 R8;292 UINT64 R9;293 UINT64 R10;294 UINT64 R11;295 UINT64 R12;296 UINT64 R13;297 UINT64 R14;298 UINT64 R15;257 UINT64 ExceptionData; 258 DEBUG_DATA_X64_FX_SAVE_STATE FxSaveState; 259 UINT64 Dr0; 260 UINT64 Dr1; 261 UINT64 Dr2; 262 UINT64 Dr3; 263 UINT64 Dr6; 264 UINT64 Dr7; 265 UINT64 Eflags; 266 UINT64 Ldtr; 267 UINT64 Tr; 268 UINT64 Gdtr[2]; 269 UINT64 Idtr[2]; 270 UINT64 Eip; 271 UINT64 Gs; 272 UINT64 Fs; 273 UINT64 Es; 274 UINT64 Ds; 275 UINT64 Cs; 276 UINT64 Ss; 277 UINT64 Cr0; 278 UINT64 Cr1; ///< Reserved 279 UINT64 Cr2; 280 UINT64 Cr3; 281 UINT64 Cr4; 282 UINT64 Rdi; 283 UINT64 Rsi; 284 UINT64 Rbp; 285 UINT64 Rsp; 286 UINT64 Rdx; 287 UINT64 Rcx; 288 UINT64 Rbx; 289 UINT64 Rax; 290 UINT64 Cr8; 291 UINT64 R8; 292 UINT64 R9; 293 UINT64 R10; 294 UINT64 R11; 295 UINT64 R12; 296 UINT64 R13; 297 UINT64 R14; 298 UINT64 R15; 299 299 } DEBUG_DATA_X64_SYSTEM_CONTEXT; 300 300 … … 302 302 303 303 #endif 304 -
trunk/src/VBox/Devices/EFI/FirmwareNew/SourceLevelDebugPkg/Include/ImageDebugSupport.h
r80721 r99404 20 20 21 21 #endif 22 -
trunk/src/VBox/Devices/EFI/FirmwareNew/SourceLevelDebugPkg/Include/Library/DebugCommunicationLib.h
r85718 r99404 10 10 #define __DEBUG_COMMUNICATION_LIB_H__ 11 11 12 typedef VOID * 12 typedef VOID *DEBUG_PORT_HANDLE; 13 13 14 14 /** … … 23 23 typedef 24 24 VOID 25 (EFIAPI * 25 (EFIAPI *DEBUG_PORT_CONTINUE)( 26 26 IN VOID *Context, 27 27 IN DEBUG_PORT_HANDLE DebugPortHandle … … 71 71 ); 72 72 73 74 73 /** 75 Read data from debug device and save the data s inbuffer.74 Read data from debug device and save the data in a buffer. 76 75 77 76 Reads NumberOfBytes data bytes from a debug device into the buffer … … 92 91 EFIAPI 93 92 DebugPortReadBuffer ( 94 IN DEBUG_PORT_HANDLE 95 IN UINT8 96 IN UINTN 97 IN UINTN 93 IN DEBUG_PORT_HANDLE Handle, 94 IN UINT8 *Buffer, 95 IN UINTN NumberOfBytes, 96 IN UINTN Timeout 98 97 ); 99 100 98 101 99 /** … … 119 117 EFIAPI 120 118 DebugPortWriteBuffer ( 121 IN DEBUG_PORT_HANDLE 122 IN UINT8 123 IN UINTN 119 IN DEBUG_PORT_HANDLE Handle, 120 IN UINT8 *Buffer, 121 IN UINTN NumberOfBytes 124 122 ); 125 123 … … 140 138 EFIAPI 141 139 DebugPortPollBuffer ( 142 IN DEBUG_PORT_HANDLE 140 IN DEBUG_PORT_HANDLE Handle 143 141 ); 144 142 145 143 #endif 146 -
trunk/src/VBox/Devices/EFI/FirmwareNew/SourceLevelDebugPkg/Include/TransferProtocol.h
r85718 r99404 17 17 // 0.4: Packet compression and decompression. 18 18 // 19 #define DEBUG_AGENT_REVISION_03 20 #define DEBUG_AGENT_REVISION_04 21 #define DEBUG_AGENT_CAPABILITIES 19 #define DEBUG_AGENT_REVISION_03 ((0 << 16) | 03) 20 #define DEBUG_AGENT_REVISION_04 ((0 << 16) | 04) 21 #define DEBUG_AGENT_CAPABILITIES 0 22 22 23 23 // 24 24 // Definitions for the (A)ttach command 25 25 // 26 #define DEBUG_STARTING_SYMBOL_ATTACH 26 #define DEBUG_STARTING_SYMBOL_ATTACH (0xFA) 27 27 28 28 // 29 29 // Definition for starting symbol of a normal debug packet. Choose a non-ASCII to avoid conflict with other serial output. 30 30 // 31 #define DEBUG_STARTING_SYMBOL_NORMAL 31 #define DEBUG_STARTING_SYMBOL_NORMAL (0xFE) 32 32 33 33 // … … 42 42 // 43 43 typedef struct { 44 UINT8 45 UINT8 46 UINT8 Length;// Length of Debug Packet including header and payload in byte47 UINT8 48 UINT16 44 UINT8 StartSymbol; 45 UINT8 Command; 46 UINT8 Length; // Length of Debug Packet including header and payload in byte 47 UINT8 SequenceNo; 48 UINT16 Crc; 49 49 } DEBUG_PACKET_HEADER; 50 50 … … 52 52 // Definition for Command field for debug packets 53 53 // 54 #define DEBUG_COMMAND_REQUEST 55 #define DEBUG_COMMAND_RESPONSE 56 57 #define IS_REQUEST(x) 54 #define DEBUG_COMMAND_REQUEST (0 << 7) 55 #define DEBUG_COMMAND_RESPONSE (1 << 7) 56 57 #define IS_REQUEST(x) (((x)->Command & DEBUG_COMMAND_RESPONSE) == 0) 58 58 59 59 // 60 60 // HOST initiated commands 61 61 // 62 #define DEBUG_COMMAND_RESET 63 #define DEBUG_COMMAND_GO 64 #define DEBUG_COMMAND_BREAK_CAUSE 65 #define DEBUG_COMMAND_SET_HW_BREAKPOINT 66 #define DEBUG_COMMAND_CLEAR_HW_BREAKPOINT 67 #define DEBUG_COMMAND_SINGLE_STEPPING 68 #define DEBUG_COMMAND_SET_SW_BREAKPOINT 69 #define DEBUG_COMMAND_READ_MEMORY 70 #define DEBUG_COMMAND_WRITE_MEMORY 71 #define DEBUG_COMMAND_READ_IO 72 #define DEBUG_COMMAND_WRITE_IO 73 #define DEBUG_COMMAND_READ_REGISTER 74 #define DEBUG_COMMAND_WRITE_REGISTER 75 #define DEBUG_COMMAND_READ_ALL_REGISTERS 76 #define DEBUG_COMMAND_ARCH_MODE 77 #define DEBUG_COMMAND_READ_MSR 78 #define DEBUG_COMMAND_WRITE_MSR 79 #define DEBUG_COMMAND_SET_DEBUG_SETTING 80 #define DEBUG_COMMAND_GET_REVISION 81 #define DEBUG_COMMAND_GET_EXCEPTION 82 #define DEBUG_COMMAND_SET_VIEWPOINT 83 #define DEBUG_COMMAND_GET_VIEWPOINT 84 #define DEBUG_COMMAND_DETACH 85 #define DEBUG_COMMAND_CPUID 86 #define DEBUG_COMMAND_SEARCH_SIGNATURE 87 #define DEBUG_COMMAND_HALT 62 #define DEBUG_COMMAND_RESET (DEBUG_COMMAND_REQUEST | 0x00) 63 #define DEBUG_COMMAND_GO (DEBUG_COMMAND_REQUEST | 0x01) 64 #define DEBUG_COMMAND_BREAK_CAUSE (DEBUG_COMMAND_REQUEST | 0x02) 65 #define DEBUG_COMMAND_SET_HW_BREAKPOINT (DEBUG_COMMAND_REQUEST | 0x03) 66 #define DEBUG_COMMAND_CLEAR_HW_BREAKPOINT (DEBUG_COMMAND_REQUEST | 0x04) 67 #define DEBUG_COMMAND_SINGLE_STEPPING (DEBUG_COMMAND_REQUEST | 0x05) 68 #define DEBUG_COMMAND_SET_SW_BREAKPOINT (DEBUG_COMMAND_REQUEST | 0x06) 69 #define DEBUG_COMMAND_READ_MEMORY (DEBUG_COMMAND_REQUEST | 0x07) 70 #define DEBUG_COMMAND_WRITE_MEMORY (DEBUG_COMMAND_REQUEST | 0x08) 71 #define DEBUG_COMMAND_READ_IO (DEBUG_COMMAND_REQUEST | 0x09) 72 #define DEBUG_COMMAND_WRITE_IO (DEBUG_COMMAND_REQUEST | 0x0A) 73 #define DEBUG_COMMAND_READ_REGISTER (DEBUG_COMMAND_REQUEST | 0x0B) 74 #define DEBUG_COMMAND_WRITE_REGISTER (DEBUG_COMMAND_REQUEST | 0x0C) 75 #define DEBUG_COMMAND_READ_ALL_REGISTERS (DEBUG_COMMAND_REQUEST | 0x0D) 76 #define DEBUG_COMMAND_ARCH_MODE (DEBUG_COMMAND_REQUEST | 0x0E) 77 #define DEBUG_COMMAND_READ_MSR (DEBUG_COMMAND_REQUEST | 0x0F) 78 #define DEBUG_COMMAND_WRITE_MSR (DEBUG_COMMAND_REQUEST | 0x10) 79 #define DEBUG_COMMAND_SET_DEBUG_SETTING (DEBUG_COMMAND_REQUEST | 0x11) 80 #define DEBUG_COMMAND_GET_REVISION (DEBUG_COMMAND_REQUEST | 0x12) 81 #define DEBUG_COMMAND_GET_EXCEPTION (DEBUG_COMMAND_REQUEST | 0x13) 82 #define DEBUG_COMMAND_SET_VIEWPOINT (DEBUG_COMMAND_REQUEST | 0x14) 83 #define DEBUG_COMMAND_GET_VIEWPOINT (DEBUG_COMMAND_REQUEST | 0x15) 84 #define DEBUG_COMMAND_DETACH (DEBUG_COMMAND_REQUEST | 0x16) 85 #define DEBUG_COMMAND_CPUID (DEBUG_COMMAND_REQUEST | 0x17) 86 #define DEBUG_COMMAND_SEARCH_SIGNATURE (DEBUG_COMMAND_REQUEST | 0x18) 87 #define DEBUG_COMMAND_HALT (DEBUG_COMMAND_REQUEST | 0x19) 88 88 89 89 // 90 90 // TARGET initiated commands 91 91 // 92 #define DEBUG_COMMAND_INIT_BREAK 93 #define DEBUG_COMMAND_BREAK_POINT 94 #define DEBUG_COMMAND_MEMORY_READY 95 #define DEBUG_COMMAND_PRINT_MESSAGE 96 #define DEBUG_COMMAND_ATTACH_BREAK 92 #define DEBUG_COMMAND_INIT_BREAK (DEBUG_COMMAND_REQUEST | 0x3F) 93 #define DEBUG_COMMAND_BREAK_POINT (DEBUG_COMMAND_REQUEST | 0x3E) 94 #define DEBUG_COMMAND_MEMORY_READY (DEBUG_COMMAND_REQUEST | 0x3D) 95 #define DEBUG_COMMAND_PRINT_MESSAGE (DEBUG_COMMAND_REQUEST | 0x3C) 96 #define DEBUG_COMMAND_ATTACH_BREAK (DEBUG_COMMAND_REQUEST | 0x3B) 97 97 98 98 // 99 99 // Response commands 100 100 // 101 #define DEBUG_COMMAND_OK 102 #define DEBUG_COMMAND_RESEND 103 #define DEBUG_COMMAND_ABORT 101 #define DEBUG_COMMAND_OK (DEBUG_COMMAND_RESPONSE | 0x00) 102 #define DEBUG_COMMAND_RESEND (DEBUG_COMMAND_RESPONSE | 0x01) 103 #define DEBUG_COMMAND_ABORT (DEBUG_COMMAND_RESPONSE | 0x02) 104 104 // 105 105 // The below 2 commands are used when transferring big data (like > ~250 bytes). … … 113 113 // OK (no data as ACK) => 114 114 // 115 #define DEBUG_COMMAND_IN_PROGRESS 116 #define DEBUG_COMMAND_CONTINUE 115 #define DEBUG_COMMAND_IN_PROGRESS (DEBUG_COMMAND_RESPONSE | 0x03) 116 #define DEBUG_COMMAND_CONTINUE (DEBUG_COMMAND_RESPONSE | 0x04) 117 117 // 118 118 // The below 2 commands are used to support deferred halt: … … 120 120 // TARGET returns HALT_PROCESSED when it receives a GO request and has a pending HALT request. 121 121 // 122 #define DEBUG_COMMAND_HALT_DEFERRED 123 #define DEBUG_COMMAND_HALT_PROCESSED 124 125 #define DEBUG_COMMAND_TIMEOUT 126 #define DEBUG_COMMAND_NOT_SUPPORTED 122 #define DEBUG_COMMAND_HALT_DEFERRED (DEBUG_COMMAND_RESPONSE | 0x05) 123 #define DEBUG_COMMAND_HALT_PROCESSED (DEBUG_COMMAND_RESPONSE | 0x06) 124 125 #define DEBUG_COMMAND_TIMEOUT (DEBUG_COMMAND_RESPONSE | 0x07) 126 #define DEBUG_COMMAND_NOT_SUPPORTED (DEBUG_COMMAND_RESPONSE | 0x0F) 127 127 128 128 // 129 129 // Definition for data field for debug packets 130 130 // 131 #define DEBUG_DATA_UPPER_LIMIT 0xff// Upper limit for the data size, by the limit of the packet header definition.132 133 #define DEBUG_DATA_MAXIMUM_REAL_DATA 131 #define DEBUG_DATA_UPPER_LIMIT 0xff // Upper limit for the data size, by the limit of the packet header definition. 132 133 #define DEBUG_DATA_MAXIMUM_REAL_DATA (DEBUG_DATA_UPPER_LIMIT - sizeof (DEBUG_PACKET_HEADER)) 134 134 135 135 // … … 137 137 // 138 138 typedef struct { 139 UINT8 140 UINT64 139 UINT8 Cause; 140 UINT64 StopAddress; 141 141 } DEBUG_DATA_RESPONSE_BREAK_CAUSE; 142 142 // … … 158 158 // 159 159 typedef struct { 160 UINT8 160 UINT8 CpuMode; 161 161 } DEBUG_DATA_RESPONSE_ARCH_MODE; 162 162 // 163 163 // Cpu architecture definitions for DEBUG_DATA_RESPONSE_ARCH_MODE 164 164 // 165 #define DEBUG_DATA_BREAK_CPU_ARCH_IA16 166 #define DEBUG_DATA_BREAK_CPU_ARCH_IA32 167 #define DEBUG_DATA_BREAK_CPU_ARCH_X64 168 169 typedef struct { 170 UINT8 Length:2;// Refer to below DEBUG_DATA_BREAKPOINT_LENGTH_XX macros171 UINT8 Access:2;// Refer to below DEBUG_DATA_BREAKPOINT_ACCESS_XX macros172 UINT8 Index:2;// Index of debug register173 UINT8 Reserved:2;165 #define DEBUG_DATA_BREAK_CPU_ARCH_IA16 0 166 #define DEBUG_DATA_BREAK_CPU_ARCH_IA32 1 167 #define DEBUG_DATA_BREAK_CPU_ARCH_X64 2 168 169 typedef struct { 170 UINT8 Length : 2; // Refer to below DEBUG_DATA_BREAKPOINT_LENGTH_XX macros 171 UINT8 Access : 2; // Refer to below DEBUG_DATA_BREAKPOINT_ACCESS_XX macros 172 UINT8 Index : 2; // Index of debug register 173 UINT8 Reserved : 2; 174 174 } DEBUG_DATA_BREAKPOINT_TYPE; 175 #define DEBUG_DATA_BREAKPOINT_MEMORY_ACCESS 176 #define DEBUG_DATA_BREAKPOINT_IO_ACCESS 177 #define DEBUG_DATA_BREAKPOINT_MEMORY_WRITE 178 #define DEBUG_DATA_BREAKPOINT_MEMORY_EXECUTE 179 #define DEBUG_DATA_BREAKPOINT_LENGTH_32 180 #define DEBUG_DATA_BREAKPOINT_LENGTH_64 181 #define DEBUG_DATA_BREAKPOINT_LENGTH_16 182 #define DEBUG_DATA_BREAKPOINT_LENGTH_8 175 #define DEBUG_DATA_BREAKPOINT_MEMORY_ACCESS (0x3) 176 #define DEBUG_DATA_BREAKPOINT_IO_ACCESS (0x2) 177 #define DEBUG_DATA_BREAKPOINT_MEMORY_WRITE (0x1) 178 #define DEBUG_DATA_BREAKPOINT_MEMORY_EXECUTE (0x0) 179 #define DEBUG_DATA_BREAKPOINT_LENGTH_32 (0x3) 180 #define DEBUG_DATA_BREAKPOINT_LENGTH_64 (0x2) 181 #define DEBUG_DATA_BREAKPOINT_LENGTH_16 (0x1) 182 #define DEBUG_DATA_BREAKPOINT_LENGTH_8 (0x0) 183 183 184 184 // … … 186 186 // 187 187 typedef struct { 188 DEBUG_DATA_BREAKPOINT_TYPE Type;189 UINT64 Address;188 DEBUG_DATA_BREAKPOINT_TYPE Type; 189 UINT64 Address; 190 190 } DEBUG_DATA_SET_HW_BREAKPOINT; 191 191 … … 194 194 // 195 195 typedef struct { 196 UINT8 IndexMask;// 0x0f will clear all hw breakpoints196 UINT8 IndexMask; // 0x0f will clear all hw breakpoints 197 197 } DEBUG_DATA_CLEAR_HW_BREAKPOINT; 198 198 … … 201 201 // 202 202 typedef struct { 203 UINT64 203 UINT64 Address; 204 204 } DEBUG_DATA_SET_SW_BREAKPOINT; 205 205 206 206 typedef struct { 207 UINT8 207 UINT8 OriginalData; 208 208 } DEBUG_DATA_RESPONSE_SET_SW_BREAKPOINT; 209 209 … … 212 212 // 213 213 typedef struct { 214 UINT64 215 UINT8 216 UINT16 214 UINT64 Address; 215 UINT8 Width; 216 UINT16 Count; 217 217 } DEBUG_DATA_READ_MEMORY; 218 218 … … 221 221 // 222 222 typedef struct { 223 UINT64 224 UINT8 225 UINT16 226 UINT8 Data[1];// The actual length is (Width * Count)223 UINT64 Address; 224 UINT8 Width; 225 UINT16 Count; 226 UINT8 Data[1]; // The actual length is (Width * Count) 227 227 } DEBUG_DATA_WRITE_MEMORY; 228 228 … … 231 231 // 232 232 typedef struct { 233 UINT64 234 UINT8 233 UINT64 Port; 234 UINT8 Width; 235 235 } DEBUG_DATA_READ_IO; 236 236 237 237 typedef struct { 238 UINT8 Data[1];// The actual length depends on the packet header238 UINT8 Data[1]; // The actual length depends on the packet header 239 239 } DEBUG_DATA_RESPONSE_READ_IO; 240 240 … … 243 243 // 244 244 typedef struct { 245 UINT64 246 UINT8 247 UINT8 Data[1];// The actual length is Width245 UINT64 Port; 246 UINT8 Width; 247 UINT8 Data[1]; // The actual length is Width 248 248 } DEBUG_DATA_WRITE_IO; 249 249 … … 252 252 // 253 253 typedef struct { 254 UINT8 Index;// defined as SOFT_DEBUGGER_REGISTER_XX254 UINT8 Index; // defined as SOFT_DEBUGGER_REGISTER_XX 255 255 } DEBUG_DATA_READ_REGISTER; 256 256 … … 259 259 // 260 260 typedef struct { 261 UINT8 Index;// defined as SOFT_DEBUGGER_REGISTER_XX262 UINT8 263 UINT8 Data[1];// The actual length is Length261 UINT8 Index; // defined as SOFT_DEBUGGER_REGISTER_XX 262 UINT8 Length; 263 UINT8 Data[1]; // The actual length is Length 264 264 } DEBUG_DATA_WRITE_REGISTER; 265 265 … … 268 268 // 269 269 typedef struct { 270 UINT32 270 UINT32 Index; 271 271 } DEBUG_DATA_READ_MSR; 272 272 273 273 typedef struct { 274 UINT64 274 UINT64 Value; 275 275 } DEBUG_DATA_RESPONSE_READ_MSR; 276 276 … … 279 279 // 280 280 typedef struct { 281 UINT32 282 UINT64 281 UINT32 Index; 282 UINT64 Value; 283 283 } DEBUG_DATA_WRITE_MSR; 284 284 … … 287 287 // 288 288 typedef struct { 289 UINT32 290 UINT32 289 UINT32 Revision; 290 UINT32 Capabilities; 291 291 } DEBUG_DATA_RESPONSE_GET_REVISION; 292 292 … … 295 295 // 296 296 typedef struct { 297 UINT8 298 UINT32 297 UINT8 ExceptionNum; 298 UINT32 ExceptionData; 299 299 } DEBUG_DATA_RESPONSE_GET_EXCEPTION; 300 300 … … 303 303 // 304 304 typedef struct { 305 UINT8 306 UINT8 305 UINT8 Key; 306 UINT8 Value; 307 307 } DEBUG_DATA_SET_DEBUG_SETTING; 308 308 // … … 315 315 // Bitmask of print error level for debug message 316 316 // 317 #define DEBUG_AGENT_ERROR 318 #define DEBUG_AGENT_WARNING 319 #define DEBUG_AGENT_INFO 320 #define DEBUG_AGENT_VERBOSE 317 #define DEBUG_AGENT_ERROR BIT0 318 #define DEBUG_AGENT_WARNING BIT1 319 #define DEBUG_AGENT_INFO BIT2 320 #define DEBUG_AGENT_VERBOSE BIT3 321 321 322 322 // … … 324 324 // 325 325 typedef struct { 326 UINT32 ViewPoint;// The index of viewpoint will be set326 UINT32 ViewPoint; // The index of viewpoint will be set 327 327 } DEBUG_DATA_SET_VIEWPOINT; 328 328 … … 331 331 // 332 332 typedef struct { 333 UINT32 ViewPoint;// The index of viewpoint will be returned333 UINT32 ViewPoint; // The index of viewpoint will be returned 334 334 } DEBUG_DATA_RESPONSE_GET_VIEWPOINT; 335 335 … … 338 338 // 339 339 typedef struct { 340 UINT32 Eax;// The value of EAX prior to invoking the CPUID instruction341 UINT32 Ecx;// The value of ECX prior to invoking the CPUID instruction340 UINT32 Eax; // The value of EAX prior to invoking the CPUID instruction 341 UINT32 Ecx; // The value of ECX prior to invoking the CPUID instruction 342 342 } DEBUG_DATA_CPUID; 343 343 344 344 typedef struct { 345 UINT32 Eax;// The value of EAX returned by the CPUID instruction346 UINT32 Ebx;// The value of EBX returned by the CPUID instruction347 UINT32 Ecx;// The value of ECX returned by the CPUID instruction348 UINT32 Edx;// The value of EDX returned by the CPUID instruction345 UINT32 Eax; // The value of EAX returned by the CPUID instruction 346 UINT32 Ebx; // The value of EBX returned by the CPUID instruction 347 UINT32 Ecx; // The value of ECX returned by the CPUID instruction 348 UINT32 Edx; // The value of EDX returned by the CPUID instruction 349 349 } DEBUG_DATA_RESPONSE_CPUID; 350 350 … … 353 353 // 354 354 typedef struct { 355 UINT64 356 UINT32 357 UINT32 358 BOOLEAN Positive;// TRUE to search in higher address memory359 UINT8 360 UINT8 355 UINT64 Start; 356 UINT32 Count; 357 UINT32 Alignment; 358 BOOLEAN Positive; // TRUE to search in higher address memory 359 UINT8 DataLength; 360 UINT8 Data[1]; 361 361 } DEBUG_DATA_SEARCH_SIGNATURE; 362 362 363 363 typedef struct { 364 UINT64 Address;// -1 indicates not found364 UINT64 Address; // -1 indicates not found 365 365 } DEBUG_DATA_RESPONSE_SEARCH_SIGNATURE; 366 366 … … 368 368 369 369 #endif 370
Note:
See TracChangeset
for help on using the changeset viewer.