diff --git a/Changelog b/Changelog index ed3b0e4aec..9cddb49cc9 100644 --- a/Changelog +++ b/Changelog @@ -12,6 +12,9 @@ version 0.5.2: - fixed 'call Ev' in case of paging exception - updated the script 'qemu-binfmt-conf.sh' to use QEMU automagically when launching executables for the supported target CPUs. + - PowerPC system emulation update (Jocelyn Mayer) + - PC floppy emulation and DMA fixes (Jocelyn Mayer) + - polled mode for PIC (Jocelyn Mayer) version 0.5.1: diff --git a/Makefile.target b/Makefile.target index eb2e6db12a..9d52680a9b 100644 --- a/Makefile.target +++ b/Makefile.target @@ -36,8 +36,22 @@ endif endif endif + +ifeq ($(TARGET_ARCH), ppc) + +ifeq ($(ARCH), ppc) +PROGS+=$(QEMU_SYSTEM) endif +ifeq ($(ARCH), i386) +ifdef CONFIG_SOFTMMU +PROGS+=$(QEMU_SYSTEM) +endif +endif # ARCH = i386 + +endif # TARGET_ARCH = ppc +endif # !CONFIG_USER_ONLY + ifdef CONFIG_STATIC LDFLAGS+=-static endif @@ -147,7 +161,7 @@ LIBOBJS+=helper.o helper2.o endif ifeq ($(TARGET_ARCH), ppc) -LIBOBJS+=helper.o +LIBOBJS+= op_helper.o helper.o endif # NOTE: the disassembler code is only needed for debugging @@ -183,7 +197,10 @@ ifeq ($(ARCH),alpha) endif # must use static linking to avoid leaving stuff in virtual address space -VL_OBJS=vl.o block.o ide.o vga.o sb16.o dma.o oss.o +VL_OBJS=vl.o block.o ide.o vga.o sb16.o dma.o oss.o fdc.o +ifeq ($(TARGET_ARCH), ppc) +VL_OBJS+= hw.o +endif ifdef CONFIG_SDL VL_OBJS+=sdl.o ifdef CONFIG_STATIC @@ -246,6 +263,11 @@ ifeq ($(TARGET_ARCH), sparc) op.o: op.c op_template.h endif +ifeq ($(TARGET_ARCH), ppc) +op.o: op.c op_template.h op_mem.h +op_helper.o: op_helper_mem.h +endif + %.o: %.c $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $< diff --git a/TODO b/TODO index da07daae00..d483eb4d7f 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,12 @@ +before 0.5.2: +------------ + +- TLB code protection support +- basic VGA optimizations +- disable SMC handling for ARM/SPARC/PPC + +short term: +---------- - user/kernel PUSHL/POPL in helper.c - keyboard output buffer filling timing emulation - verify tb_flush() with a20 and TLBs @@ -5,19 +14,20 @@ - cmos clock update and timers - test ldt limit < 7 ? - tests for each target CPU -- optimize FPU operations (evaluate x87 stack pointer statically) and - fix cr0.TS emulation -- fix some 16 bit sp push/pop overflow (pusha/popa, lcall lret) -- sysenter/sysexit emulation - fix CCOP optimisation - fix all remaining thread lock issues (must put TBs in a specific invalid state, find a solution for tb_flush()). - fix arm fpu rounding (at least for float->integer conversions) +- SMP support lower priority: -------------- +- suppress shift_mem ops +- fix some 16 bit sp push/pop overflow (pusha/popa, lcall lret) +- sysenter/sysexit emulation +- optimize FPU operations (evaluate x87 stack pointer statically) and + fix cr0.TS emulation - add IPC syscalls -- SMP support - use -msoft-float on ARM - use kernel traps for unaligned accesses on ARM ? - handle rare page fault cases (in particular if page fault in heplers or