|
@@ -54,7 +54,7 @@
|
|
|
|
|
|
/*------------------------- Global Variables ------------------------------*/
|
|
|
|
|
|
-#ifndef __i386__
|
|
|
+#ifndef CONFIG_X86EMU_RAW_IO
|
|
|
static char *BE_biosDate = "08/14/99";
|
|
|
static u8 BE_model = 0xFC;
|
|
|
static u8 BE_submodel = 0x00;
|
|
@@ -80,16 +80,18 @@ static u8 *BE_memaddr(u32 addr)
|
|
|
if (addr >= 0xC0000 && addr <= _BE_env.biosmem_limit) {
|
|
|
return (u8*)(_BE_env.biosmem_base + addr - 0xC0000);
|
|
|
} else if (addr > _BE_env.biosmem_limit && addr < 0xD0000) {
|
|
|
- DB(printf("BE_memaddr: address %#lx may be invalid!\n", addr);)
|
|
|
- return M.mem_base;
|
|
|
+ DB(printf("BE_memaddr: address %#lx may be invalid!\n",
|
|
|
+ (ulong)addr);)
|
|
|
+ return (u8 *)M.mem_base;
|
|
|
} else if (addr >= 0xA0000 && addr <= 0xBFFFF) {
|
|
|
return (u8*)(_BE_env.busmem_base + addr - 0xA0000);
|
|
|
}
|
|
|
-#ifdef __i386__
|
|
|
+#ifdef CONFIG_X86EMU_RAW_IO
|
|
|
else if (addr >= 0xD0000 && addr <= 0xFFFFF) {
|
|
|
/* We map the real System BIOS directly on real PC's */
|
|
|
- DB(printf("BE_memaddr: System BIOS address %#lx\n", addr);)
|
|
|
- return _BE_env.busmem_base + addr - 0xA0000;
|
|
|
+ DB(printf("BE_memaddr: System BIOS address %#lx\n",
|
|
|
+ (ulong)addr);)
|
|
|
+ return (u8 *)_BE_env.busmem_base + addr - 0xA0000;
|
|
|
}
|
|
|
#else
|
|
|
else if (addr >= 0xFFFF5 && addr < 0xFFFFE) {
|
|
@@ -108,10 +110,10 @@ static u8 *BE_memaddr(u32 addr)
|
|
|
#endif
|
|
|
else if (addr > M.mem_size - 1) {
|
|
|
HALT_SYS();
|
|
|
- return M.mem_base;
|
|
|
+ return (u8 *)M.mem_base;
|
|
|
}
|
|
|
|
|
|
- return M.mem_base + addr;
|
|
|
+ return (u8 *)(M.mem_base + addr);
|
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
@@ -230,7 +232,7 @@ void X86API BE_wrl(u32 addr, u32 val)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#if defined(DEBUG) || !defined(__i386__)
|
|
|
+#if !defined(CONFIG_X86EMU_RAW_IO)
|
|
|
|
|
|
/* For Non-Intel machines we may need to emulate some I/O port accesses that
|
|
|
* the BIOS may try to access, such as the PCI config registers.
|
|
@@ -560,7 +562,7 @@ u8 X86API BE_inb(X86EMU_pioAddr port)
|
|
|
{
|
|
|
u8 val = 0;
|
|
|
|
|
|
-#if defined(DEBUG) || !defined(__i386__)
|
|
|
+#if !defined(CONFIG_X86EMU_RAW_IO)
|
|
|
if (IS_VGA_PORT(port)){
|
|
|
/*seems reading port 0x3c3 return the high 16 bit of io port*/
|
|
|
if(port == 0x3c3)
|
|
@@ -601,7 +603,7 @@ u16 X86API BE_inw(X86EMU_pioAddr port)
|
|
|
{
|
|
|
u16 val = 0;
|
|
|
|
|
|
-#if defined(DEBUG) || !defined(__i386__)
|
|
|
+#if !defined(CONFIG_X86EMU_RAW_IO)
|
|
|
if (IS_PCI_PORT(port))
|
|
|
val = PCI_inp(port, REG_READ_WORD);
|
|
|
else if (port < 0x100) {
|
|
@@ -629,7 +631,7 @@ u32 X86API BE_inl(X86EMU_pioAddr port)
|
|
|
{
|
|
|
u32 val = 0;
|
|
|
|
|
|
-#if defined(DEBUG) || !defined(__i386__)
|
|
|
+#if !defined(CONFIG_X86EMU_RAW_IO)
|
|
|
if (IS_PCI_PORT(port))
|
|
|
val = PCI_inp(port, REG_READ_DWORD);
|
|
|
else if (port < 0x100) {
|
|
@@ -652,7 +654,7 @@ through to the real hardware if we don't need to special case it.
|
|
|
****************************************************************************/
|
|
|
void X86API BE_outb(X86EMU_pioAddr port, u8 val)
|
|
|
{
|
|
|
-#if defined(DEBUG) || !defined(__i386__)
|
|
|
+#if !defined(CONFIG_X86EMU_RAW_IO)
|
|
|
if (IS_VGA_PORT(port))
|
|
|
VGA_outpb(port, val);
|
|
|
else if (IS_TIMER_PORT(port))
|
|
@@ -683,7 +685,7 @@ through to the real hardware if we don't need to special case it.
|
|
|
****************************************************************************/
|
|
|
void X86API BE_outw(X86EMU_pioAddr port, u16 val)
|
|
|
{
|
|
|
-#if defined(DEBUG) || !defined(__i386__)
|
|
|
+#if !defined(CONFIG_X86EMU_RAW_IO)
|
|
|
if (IS_VGA_PORT(port)) {
|
|
|
VGA_outpb(port, val);
|
|
|
VGA_outpb(port + 1, val >> 8);
|
|
@@ -710,7 +712,7 @@ through to the real hardware if we don't need to special case it.
|
|
|
****************************************************************************/
|
|
|
void X86API BE_outl(X86EMU_pioAddr port, u32 val)
|
|
|
{
|
|
|
-#if defined(DEBUG) || !defined(__i386__)
|
|
|
+#if !defined(CONFIG_X86EMU_RAW_IO)
|
|
|
if (IS_PCI_PORT(port))
|
|
|
PCI_outp(port, val, REG_WRITE_DWORD);
|
|
|
else if (port < 0x100) {
|