summaryrefslogtreecommitdiff
path: root/board/MAI/bios_emulator
diff options
context:
space:
mode:
authorwdenk <wdenk>2002-12-07 00:20:59 +0000
committerwdenk <wdenk>2002-12-07 00:20:59 +0000
commit7c7a23bd5a0bc149d2edd665ec46381726b24e0c (patch)
treed859f82ea2561180db2ffd7569f0b9007d710769 /board/MAI/bios_emulator
parent1f53a41603b9093c59741f4208fef0ab3790d6ce (diff)
downloadu-boot-imx-7c7a23bd5a0bc149d2edd665ec46381726b24e0c.zip
u-boot-imx-7c7a23bd5a0bc149d2edd665ec46381726b24e0c.tar.gz
u-boot-imx-7c7a23bd5a0bc149d2edd665ec46381726b24e0c.tar.bz2
* Patch by Hans-Joerg Frieden, 06 Dec 2002
Fix misc problems with AmigaOne support * Patch by Chris Hallinan, 3 Dec 2002: minor cleanup to the MPC8245 EPIC driver * Patch by Pierre Aubert , 28 Nov 2002 Add support for external (SIU) interrupts on MPC8xx * Patch by Pierre Aubert , 28 Nov 2002 Fix nested syscalls bug in standalone applications * Patch by David Müller, 27 Nov 2002: fix output of "pciinfo" command for CardBus bridge devices. * Fix bug in TQM8260 board detection - boards got stuck when board ID was not readable
Diffstat (limited to 'board/MAI/bios_emulator')
-rw-r--r--board/MAI/bios_emulator/glue.c54
-rw-r--r--board/MAI/bios_emulator/scitech/src/x86emu/makefile.uboot80
-rw-r--r--board/MAI/bios_emulator/x86interface.c7
3 files changed, 104 insertions, 37 deletions
diff --git a/board/MAI/bios_emulator/glue.c b/board/MAI/bios_emulator/glue.c
index b765ed5..f59ffaa 100644
--- a/board/MAI/bios_emulator/glue.c
+++ b/board/MAI/bios_emulator/glue.c
@@ -271,9 +271,9 @@ int attempt_map_rom(pci_dev_t dev, void *copy_address)
pci_write_config_dword(dev, PCI_ROM_ADDRESS, 0);
pci_write_config_dword(dev, i, bar_backup);
- /* FIXME: */
- bat_map(2, 0x80000000, 256*1024*1024);
- show_bat_mapping();
+ /* FIXME: Shouldn't be needed anymore*/
+ /* bat_map(2, 0x80000000, 256*1024*1024);
+ show_bat_mapping(); */
/*
* Since most cards can probably only do 16 bit IO addressing, we
@@ -436,7 +436,6 @@ int find_image(u32 rom_address, u32 rom_size, void **image, u32 *image_size)
void show_bat_mapping(void)
{
-#ifdef DEBUG
u32 dbat0u, dbat0l, ibat0u, ibat0l;
u32 dbat1u, dbat1l, ibat1u, ibat1l;
u32 dbat2u, dbat2l, ibat2u, ibat2l;
@@ -477,7 +476,6 @@ void show_bat_mapping(void)
dbat3u, dbat3l, ibat3u, ibat3l);
printf("\nMSR: %08x HID0: %08x L2CR: %08x \n", msr,hid0, l2cr_reg);
-#endif
}
@@ -485,44 +483,34 @@ void show_bat_mapping(void)
void remove_init_data(void)
{
char *s;
- u32 batl = ((CFG_SDRAM_BASE+0x100000) | BATL_PP_RW);
- u32 batu =((CFG_SDRAM_BASE+0x100000) | BATU_BL_256M | BATU_VS | BATU_VP);
-#if 0 /* already done in board_init_r() */
- void *data = (void *)(CFG_INIT_RAM_ADDR+CFG_INIT_DATA_OFFSET);
- unsigned char data2[CFG_INIT_DATA_SIZE];
-
- /* Make a copy of the data */
- memcpy(data2, data, CFG_INIT_DATA_SIZE);
-#endif /* 0 */
/* Invalidate and disable data cache */
invalidate_l1_data_cache();
dcache_disable();
-#if 0
- /* Copy to the real RAM address */
- memcpy(data, data2, CFG_INIT_DATA_SIZE);
-#endif
-
- /*printf("Before ICache enable\n");
- show_bat_mapping();*/
-
- __asm volatile ("isync \n"
- "mtdbatu 2,%2 \n"
- "mtdbatl 2,%2 \n"
- "mtdbatu 1,%0 \n"
- "mtdbatl 1,%1 \n"
- "sync \n"
- "isync \n"
- : : "r" (batu), "r" (batl), "r" (0));
-
- /* show_bat_mapping(); */
s = getenv("x86_cache");
- if (!s || (s && strcmp(s, "on")==0))
+ if (!s)
{
icache_enable();
dcache_enable();
}
+ else if (s)
+ {
+ if (strcmp(s, "dcache")==0)
+ {
+ dcache_enable();
+ }
+ else if (strcmp(s, "icache") == 0)
+ {
+ icache_enable();
+ }
+ else if (strcmp(s, "on")== 0 || strcmp(s, "both") == 0)
+ {
+ dcache_enable();
+ icache_enable();
+ }
+ }
+ /* show_bat_mapping();*/
}
diff --git a/board/MAI/bios_emulator/scitech/src/x86emu/makefile.uboot b/board/MAI/bios_emulator/scitech/src/x86emu/makefile.uboot
new file mode 100644
index 0000000..d011cf5
--- /dev/null
+++ b/board/MAI/bios_emulator/scitech/src/x86emu/makefile.uboot
@@ -0,0 +1,80 @@
+#############################################################################
+#
+# Realmode X86 Emulator Library
+#
+# Copyright (C) 1996-1999 SciTech Software, Inc.
+#
+# ========================================================================
+#
+# Permission to use, copy, modify, distribute, and sell this software and
+# its documentation for any purpose is hereby granted without fee,
+# provided that the above copyright notice appear in all copies and that
+# both that copyright notice and this permission notice appear in
+# supporting documentation, and that the name of the authors not be used
+# in advertising or publicity pertaining to distribution of the software
+# without specific, written prior permission. The authors makes no
+# representations about the suitability of this software for any purpose.
+# It is provided "as is" without express or implied warranty.
+#
+# THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+# USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# ========================================================================
+#
+# Descripton: Linux specific makefile for the x86emu library.
+#
+#############################################################################
+CC = $(CROSS_COMPILE)gcc
+AR = $(CROSS_COMPILE)ar
+TARGETLIB = libx86emu.a
+TARGETDEBUGLIB =libx86emud.a
+
+OBJS=\
+decode.o \
+fpu.o \
+ops.o \
+ops2.o \
+prim_ops.o \
+sys.o
+
+DEBUGOBJS=debug.d \
+ decode.d \
+ fpu.d \
+ ops.d \
+ ops2.d \
+ prim_ops.d \
+ sys.d
+
+.SUFFIXES: .d
+
+all: $(TARGETLIB) $(TARGETDEBUGLIB)
+
+$(TARGETLIB): $(OBJS)
+ $(AR) rv $(TARGETLIB) $(OBJS)
+
+$(TARGETDEBUGLIB): $(DEBUGOBJS)
+ $(AR) rv $(TARGETDEBUGLIB) $(DEBUGOBJS)
+
+INCS = -I. -Ix86emu -I../../include
+CFLAGS = -D__DRIVER__ -DFORCE_POST -D_CEXPORT= -DNO_LONG_LONG -Dprintk=printf -fsigned-char -fomit-frame-pointer -mrelocatable -ffixed-r14 -meabi -mrelocatable -ffixed-r14 -meabi
+CDEBUGFLAGS = -DDEBUG
+
+.c.o:
+ $(CC) -g -O2 -Wall -c $(CFLAGS) $(INCS) $*.c
+
+.c.d:
+ $(CC) -g -O2 -Wall -c -o$*.d $(CFLAGS) $(CDEBUGFLAGS) $(INCS) $*.c
+
+.cpp.o:
+ $(CC) -c $(CFLAGS) $(INCS) $*.cpp
+
+clean:
+ rm -f *.a *.o *.d
+
+validate: validate.o libx86emu.a
+ $(CC) -o validate validate.o -lx86emu -L.
diff --git a/board/MAI/bios_emulator/x86interface.c b/board/MAI/bios_emulator/x86interface.c
index b1ad61a..e90ec5a 100644
--- a/board/MAI/bios_emulator/x86interface.c
+++ b/board/MAI/bios_emulator/x86interface.c
@@ -398,9 +398,7 @@ int execute_bios(pci_dev_t gr_dev, void *reloc_addr)
u8 cfg;
int i;
char c;
-#ifdef DEBUG
char *s;
-#endif
#ifdef EASTEREGG
int easteregg_active = 0;
#endif
@@ -409,6 +407,7 @@ int execute_bios(pci_dev_t gr_dev, void *reloc_addr)
unsigned char *msg;
unsigned char current_attr;
+ PRINTF("Trying to remove init data\n");
remove_init_data();
PRINTF("Removed init data from cache, now in RAM\n");
@@ -438,7 +437,7 @@ int execute_bios(pci_dev_t gr_dev, void *reloc_addr)
return 0;
}
-#ifdef DEBUG
+#if 1 /*def DEBUG*/
s = getenv("x86_ask_start");
if (s)
{
@@ -646,7 +645,7 @@ int execute_bios(pci_dev_t gr_dev, void *reloc_addr)
if (getenv("x86_do_inout")) do_inout();
#endif
- dcache_disable();
+//FIXME: dcache_disable();
return 1;
}