Backport all x86emu fixes from Pattrick Hueper to coreboot v2 (acked in v2,

hence I consider it trivial in this case). This does not include the Yabel
work.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3880 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer
2009-01-20 21:36:39 +00:00
committed by Stefan Reinauer
parent 20b261dacf
commit 5833f7c0e6
10 changed files with 260 additions and 81 deletions

View File

@@ -39,6 +39,11 @@
#ifndef __X86EMU_FPU_REGS_H
#define __X86EMU_FPU_REGS_H
#if defined(DEBUG) && (DEBUG == 0)
#undef DEBUG
#endif
#ifdef X86_FPU_SUPPORT
#pragma pack(1)

View File

@@ -40,6 +40,10 @@
#ifndef __X86EMU_REGS_H
#define __X86EMU_REGS_H
#if defined(DEBUG) && (DEBUG == 0)
#undef DEBUG
#endif
/*---------------------- Macros and type definitions ----------------------*/
#pragma pack(1)
@@ -231,6 +235,9 @@ struct i386_segment_regs {
#define SYSMODE_PREFIX_REPNE 0x00000100
#define SYSMODE_PREFIX_DATA 0x00000200
#define SYSMODE_PREFIX_ADDR 0x00000400
// for REP(E|NE) Instructions, we need to decide wether it should be using
// the 32bit ECX register as or the 16bit CX register as count register
#define SYSMODE_32BIT_REP 0x00000800
#define SYSMODE_INTR_PENDING 0x10000000
#define SYSMODE_EXTRN_INTR 0x20000000
#define SYSMODE_HALTED 0x40000000
@@ -250,7 +257,8 @@ struct i386_segment_regs {
SYSMODE_SEGOVR_GS | \
SYSMODE_SEGOVR_SS | \
SYSMODE_PREFIX_DATA | \
SYSMODE_PREFIX_ADDR)
SYSMODE_PREFIX_ADDR | \
SYSMODE_32BIT_REP)
#define INTR_SYNCH 0x1
#define INTR_ASYNCH 0x2
@@ -274,9 +282,9 @@ typedef struct {
*/
u32 mode;
volatile int intr; /* mask of pending interrupts */
int debug;
volatile int debug;
#ifdef DEBUG
int check;
int check;
u16 saved_ip;
u16 saved_cs;
int enc_pos;

View File

@@ -74,15 +74,15 @@ typedef unsigned int u32;
typedef unsigned long long u64;
#endif
typedef char s8;
typedef short s16;
typedef int s32;
typedef signed char s8;
typedef signed short s16;
typedef signed int s32;
#ifdef __HAS_LONG_LONG__
typedef long long s64;
typedef signed long long s64;
#endif
typedef unsigned int uint;
typedef int sint;
typedef unsigned int uint;
typedef signed int sint;
typedef u16 X86EMU_pioAddr;

View File

@@ -42,6 +42,10 @@
#ifndef __X86EMU_X86EMU_H
#define __X86EMU_X86EMU_H
#if defined(DEBUG) && (DEBUG == 0)
#undef DEBUG
#endif
/* FIXME: undefine printk for the moment */
#ifdef COREBOOT_VERSION
#include "console/console.h"
@@ -187,6 +191,8 @@ void X86EMU_halt_sys(void);
#define DEBUG_TRACECALL_REGS_F 0x004000
#define DEBUG_DECODE_NOPRINT_F 0x008000
#define DEBUG_SAVE_IP_CS_F 0x010000
#define DEBUG_TRACEJMP_F 0x020000
#define DEBUG_TRACEJMP_REGS_F 0x040000
#define DEBUG_SYS_F (DEBUG_SVC_F|DEBUG_FS_F|DEBUG_PROC_F)
void X86EMU_trace_regs(void);