Commit 728c9fd5a9a3d3dc955c0fa8bd9a090c9a08f4eb
1 parent
bd497938
update
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@544 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
3 changed files
with
42 additions
and
7 deletions
Changelog
@@ -12,6 +12,9 @@ version 0.5.2: | @@ -12,6 +12,9 @@ version 0.5.2: | ||
12 | - fixed 'call Ev' in case of paging exception | 12 | - fixed 'call Ev' in case of paging exception |
13 | - updated the script 'qemu-binfmt-conf.sh' to use QEMU automagically | 13 | - updated the script 'qemu-binfmt-conf.sh' to use QEMU automagically |
14 | when launching executables for the supported target CPUs. | 14 | when launching executables for the supported target CPUs. |
15 | + - PowerPC system emulation update (Jocelyn Mayer) | ||
16 | + - PC floppy emulation and DMA fixes (Jocelyn Mayer) | ||
17 | + - polled mode for PIC (Jocelyn Mayer) | ||
15 | 18 | ||
16 | version 0.5.1: | 19 | version 0.5.1: |
17 | 20 |
Makefile.target
@@ -36,7 +36,21 @@ endif | @@ -36,7 +36,21 @@ endif | ||
36 | endif | 36 | endif |
37 | 37 | ||
38 | endif | 38 | endif |
39 | + | ||
40 | +ifeq ($(TARGET_ARCH), ppc) | ||
41 | + | ||
42 | +ifeq ($(ARCH), ppc) | ||
43 | +PROGS+=$(QEMU_SYSTEM) | ||
44 | +endif | ||
45 | + | ||
46 | +ifeq ($(ARCH), i386) | ||
47 | +ifdef CONFIG_SOFTMMU | ||
48 | +PROGS+=$(QEMU_SYSTEM) | ||
39 | endif | 49 | endif |
50 | +endif # ARCH = i386 | ||
51 | + | ||
52 | +endif # TARGET_ARCH = ppc | ||
53 | +endif # !CONFIG_USER_ONLY | ||
40 | 54 | ||
41 | ifdef CONFIG_STATIC | 55 | ifdef CONFIG_STATIC |
42 | LDFLAGS+=-static | 56 | LDFLAGS+=-static |
@@ -147,7 +161,7 @@ LIBOBJS+=helper.o helper2.o | @@ -147,7 +161,7 @@ LIBOBJS+=helper.o helper2.o | ||
147 | endif | 161 | endif |
148 | 162 | ||
149 | ifeq ($(TARGET_ARCH), ppc) | 163 | ifeq ($(TARGET_ARCH), ppc) |
150 | -LIBOBJS+=helper.o | 164 | +LIBOBJS+= op_helper.o helper.o |
151 | endif | 165 | endif |
152 | 166 | ||
153 | # NOTE: the disassembler code is only needed for debugging | 167 | # NOTE: the disassembler code is only needed for debugging |
@@ -183,7 +197,10 @@ ifeq ($(ARCH),alpha) | @@ -183,7 +197,10 @@ ifeq ($(ARCH),alpha) | ||
183 | endif | 197 | endif |
184 | 198 | ||
185 | # must use static linking to avoid leaving stuff in virtual address space | 199 | # must use static linking to avoid leaving stuff in virtual address space |
186 | -VL_OBJS=vl.o block.o ide.o vga.o sb16.o dma.o oss.o | 200 | +VL_OBJS=vl.o block.o ide.o vga.o sb16.o dma.o oss.o fdc.o |
201 | +ifeq ($(TARGET_ARCH), ppc) | ||
202 | +VL_OBJS+= hw.o | ||
203 | +endif | ||
187 | ifdef CONFIG_SDL | 204 | ifdef CONFIG_SDL |
188 | VL_OBJS+=sdl.o | 205 | VL_OBJS+=sdl.o |
189 | ifdef CONFIG_STATIC | 206 | ifdef CONFIG_STATIC |
@@ -246,6 +263,11 @@ ifeq ($(TARGET_ARCH), sparc) | @@ -246,6 +263,11 @@ ifeq ($(TARGET_ARCH), sparc) | ||
246 | op.o: op.c op_template.h | 263 | op.o: op.c op_template.h |
247 | endif | 264 | endif |
248 | 265 | ||
266 | +ifeq ($(TARGET_ARCH), ppc) | ||
267 | +op.o: op.c op_template.h op_mem.h | ||
268 | +op_helper.o: op_helper_mem.h | ||
269 | +endif | ||
270 | + | ||
249 | %.o: %.c | 271 | %.o: %.c |
250 | $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $< | 272 | $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $< |
251 | 273 |
TODO
1 | +before 0.5.2: | ||
2 | +------------ | ||
3 | + | ||
4 | +- TLB code protection support | ||
5 | +- basic VGA optimizations | ||
6 | +- disable SMC handling for ARM/SPARC/PPC | ||
7 | + | ||
8 | +short term: | ||
9 | +---------- | ||
1 | - user/kernel PUSHL/POPL in helper.c | 10 | - user/kernel PUSHL/POPL in helper.c |
2 | - keyboard output buffer filling timing emulation | 11 | - keyboard output buffer filling timing emulation |
3 | - verify tb_flush() with a20 and TLBs | 12 | - verify tb_flush() with a20 and TLBs |
@@ -5,19 +14,20 @@ | @@ -5,19 +14,20 @@ | ||
5 | - cmos clock update and timers | 14 | - cmos clock update and timers |
6 | - test ldt limit < 7 ? | 15 | - test ldt limit < 7 ? |
7 | - tests for each target CPU | 16 | - tests for each target CPU |
8 | -- optimize FPU operations (evaluate x87 stack pointer statically) and | ||
9 | - fix cr0.TS emulation | ||
10 | -- fix some 16 bit sp push/pop overflow (pusha/popa, lcall lret) | ||
11 | -- sysenter/sysexit emulation | ||
12 | - fix CCOP optimisation | 17 | - fix CCOP optimisation |
13 | - fix all remaining thread lock issues (must put TBs in a specific invalid | 18 | - fix all remaining thread lock issues (must put TBs in a specific invalid |
14 | state, find a solution for tb_flush()). | 19 | state, find a solution for tb_flush()). |
15 | - fix arm fpu rounding (at least for float->integer conversions) | 20 | - fix arm fpu rounding (at least for float->integer conversions) |
21 | +- SMP support | ||
16 | 22 | ||
17 | lower priority: | 23 | lower priority: |
18 | -------------- | 24 | -------------- |
25 | +- suppress shift_mem ops | ||
26 | +- fix some 16 bit sp push/pop overflow (pusha/popa, lcall lret) | ||
27 | +- sysenter/sysexit emulation | ||
28 | +- optimize FPU operations (evaluate x87 stack pointer statically) and | ||
29 | + fix cr0.TS emulation | ||
19 | - add IPC syscalls | 30 | - add IPC syscalls |
20 | -- SMP support | ||
21 | - use -msoft-float on ARM | 31 | - use -msoft-float on ARM |
22 | - use kernel traps for unaligned accesses on ARM ? | 32 | - use kernel traps for unaligned accesses on ARM ? |
23 | - handle rare page fault cases (in particular if page fault in heplers or | 33 | - handle rare page fault cases (in particular if page fault in heplers or |