1 |
$Id: HISTORY,v 1.1497 2007/03/18 03:41:36 debug Exp $ |
$Id: HISTORY,v 1.1613 2007/06/15 20:11:26 debug Exp $ |
2 |
|
|
3 |
Changelog for GXemul: |
Changelog for GXemul: |
4 |
--------------------- |
--------------------- |
3343 |
|
|
3344 |
============== RELEASE 0.4.4.1 ============== |
============== RELEASE 0.4.4.1 ============== |
3345 |
|
|
3346 |
|
20070324 Adding a "--debug" option to the configure script, to disable |
3347 |
|
optimizations in unstable development builds. |
3348 |
|
Moving out SCSI-specific stuff from diskimage.c into a new |
3349 |
|
diskimage_scsicmd.c. |
3350 |
|
Applying Håvard Eidnes' patch for SCSICDROM_READ_DISKINFO and |
3351 |
|
SCSICDROM_READ_TRACKINFO. (Not really tested yet.) |
3352 |
|
Implementing disk image "overlays" (to allow simple roll-back |
3353 |
|
to previous disk state). Adding a 'V' disk flag for this, and |
3354 |
|
updating the man page and misc.html. |
3355 |
|
20070325 Stability fix to cpu_dyntrans.c, when multiple physical pages |
3356 |
|
share the same initial table entry. (The ppp == NULL check |
3357 |
|
should be physpage_ofs == 0.) Bug found by analysing GXemul |
3358 |
|
against a version patched for Godson. |
3359 |
|
Fixing a second occurance of the same problem (also in |
3360 |
|
cpu_dyntrans.c). |
3361 |
|
Fixing a MAJOR physical page leak in cpu_dyntrans.c; pages |
3362 |
|
weren't _added_ to the set of translated pages, they _replaced_ |
3363 |
|
all previous pages. It's amazing that this bug has been able |
3364 |
|
to live for this long. (Triggered when emulating >128MB RAM.) |
3365 |
|
20070326 Removing the GDB debugging stub support; it was too hackish |
3366 |
|
and ugly. |
3367 |
|
20070328 Moving around some native code generation skeleton code. |
3368 |
|
20070329 The -lm check in the configure script now also checks for sin() |
3369 |
|
in addition to sqrt(). (Thanks to Nigel Horne for noticing that |
3370 |
|
sqrt was not enough on Fedora Core 6.) (Not verified yet.) |
3371 |
|
20070330 Fixing an indexing bug in dev_sh4.c, found by using gcc version |
3372 |
|
4.3.0 20070323. |
3373 |
|
20070331 Some more experimentation with native code generation. |
3374 |
|
20070404 Attempting to fix some more SH4 SCIF interrupt bugs; rewriting |
3375 |
|
the SH interrupt assertion/deassertion code somewhat. |
3376 |
|
20070410 Splitting src/file.c into separate files in src/file/. |
3377 |
|
Cleanup: Removing the dummy TS7200, Walnut, PB1000, and |
3378 |
|
Meshcube emulation modes, and dev_epcom and dev_au1x00. |
3379 |
|
Removing the experimental CHIP8/RCA180x code; it wasn't really |
3380 |
|
working much lately, anyway. It was fun while it lasted. |
3381 |
|
Also removing the experimental Transputer CPU support. |
3382 |
|
20070412 Moving the section about how the dynamic translation system |
3383 |
|
works from intro.html to a separate translation.html file. |
3384 |
|
Minor SH fixes; attempting to get OpenBSD/landisk to run |
3385 |
|
without randomly bugging out, but no success yet. |
3386 |
|
20070413 SH SCI (serial bit interface) should now work together with a |
3387 |
|
(new) RS5C313 clock device (for Landisk emulation). |
3388 |
|
20070414 Moving Redhat/MIPS down from supported to experimental, in |
3389 |
|
guestoses.html. |
3390 |
|
Preparing for a new release; doing some regression testing etc. |
3391 |
|
|
3392 |
|
============== RELEASE 0.4.5 ============== |
3393 |
|
|
3394 |
|
20070415 Landisk PCLOCK should be 33.33 MHz, not 50 MHz. (This makes |
3395 |
|
the clock run at correct speed.) |
3396 |
|
FINALLY found and fixed the bug which caused OpenBSD/landisk |
3397 |
|
to randomly bug out: an &-sign was missing in the special case |
3398 |
|
handling of FPSCR in the 'LDS.L @Rm+,FPSCR' instruction. |
3399 |
|
Adding similar special case handling for 'LDC.L @Rm+,SR' |
3400 |
|
(calling sh_update_sr() instead of just loading). |
3401 |
|
Implementing the 'FCNVSD FPUL,DRn' and 'FCNVDS DRm,FPUL' |
3402 |
|
SuperH instructions. |
3403 |
|
The 'LDC Rm,SR' instruction now immediately breaks out of the |
3404 |
|
dyntrans loop if an interrupt is to be triggered. |
3405 |
|
20070416 In memory_rw.c, if mapping a page as writable, make sure to |
3406 |
|
invalidate code translations even if the data access was a |
3407 |
|
read. |
3408 |
|
Minor SuperH updates. |
3409 |
|
20070418 Removing the dummy M68K emulation mode. |
3410 |
|
Minor SH update (turning unnecessary sts_mach_rn, sts_macl_rn, |
3411 |
|
and sts_pr_rn instruction handlers into mov_rm_rn). |
3412 |
|
20070419 Beginning to add a skeleton for an M88K mode: Adding a hack to |
3413 |
|
allow OpenBSD/m88k a.out binaries to be loaded, and disassembly |
3414 |
|
of a few simple 88K instructions. |
3415 |
|
Commenting out the 'LDC Rm,SR' fix from a few days ago, because |
3416 |
|
it made Linux/dreamcast bug out. |
3417 |
|
Adding a hack to dev_sh4.c (an extra translation cache |
3418 |
|
invalidation), which allows OpenBSD/landisk to boot ok after |
3419 |
|
an install. Upgrading the Landisk machine mode to stable, |
3420 |
|
updating documentation, etc. |
3421 |
|
20070420 Experimenting with adding a PCI controller (pcic) to dev_sh4. |
3422 |
|
Adding a dummy Realtek 8139C+ skeleton device (dev_rtl8139c). |
3423 |
|
Implementing the first M88K instructions (br, or[.u] imm), and |
3424 |
|
adding disassembly of some more instructions. |
3425 |
|
20070421 Continuing a little on dev_rtl8139c. |
3426 |
|
20070422 Implementing the 9346 EEPROM "read" command for dev_rtl8139c. |
3427 |
|
Finally found and fixed an old bug in the log n symbol search |
3428 |
|
(it sometimes missed symbols). Debug trace (-i, -t etc) should |
3429 |
|
now show more symbols. :-) |
3430 |
|
20070423 Continuing a little on M88K disassembly. |
3431 |
|
20070428 Fixing a memset arg order bug in src/net/net.c (thanks to |
3432 |
|
Nigel Horne for noticing the bug). |
3433 |
|
Applying parts of a patch from Carl van Schaik to clear out |
3434 |
|
bottom bits of MIPS addresses more correctly, when using large |
3435 |
|
page sizes, and doing some other minor cleanup/refactoring. |
3436 |
|
Fixing a couple of warnings given by gcc with the -W option (a |
3437 |
|
few more warnings than just plain -Wall). |
3438 |
|
Reducing SuperH dyntrans physical address space from 64-bit to |
3439 |
|
32-bit (since SH5/SH64 isn't imlemented yet anyway). |
3440 |
|
Adding address-to-symbol annotation to a few more instructions |
3441 |
|
in the SuperH instruction trace output. |
3442 |
|
Beginning regression testing for the next release. |
3443 |
|
Reverting the value of SCIF_DELAYED_TX_VALUE from 1 to 2, |
3444 |
|
because OpenBSD/landisk may otherwise hang randomly. |
3445 |
|
20070429 The ugly hack/workaround to get OpenBSD/landisk booting without |
3446 |
|
crashing does NOT work anymore (with the April 21 snapshot |
3447 |
|
of OpenBSD/landisk). Strangely enough, removing the hack |
3448 |
|
completely causes OpenBSD/landisk to work (!). |
3449 |
|
More regression testing (re-testing everything SuperH-related, |
3450 |
|
and some other things). |
3451 |
|
Cobalt interrupts were actually broken; fixing by commenting |
3452 |
|
out the DEC21143s in the Cobalt machine. |
3453 |
|
20070430 More regression testing. |
3454 |
|
20070501 Updating the OpenBSD/landisk install instructions to use |
3455 |
|
4.1 instead of the current snapshot. |
3456 |
|
GAAAH! OpenBSD/landisk 4.1 _needs_ the ugly hack/workaround; |
3457 |
|
reintroducing it again. (The 4.1 kernel is actually from |
3458 |
|
2007-03-11.) |
3459 |
|
Simplifying the NetBSD/evbarm install instructions a bit. |
3460 |
|
More regression testing. |
3461 |
|
|
3462 |
|
============== RELEASE 0.4.5.1 ============== |
3463 |
|
|
3464 |
|
20070501 Continuing a little on m88k disassembly (control registers, |
3465 |
|
more instructions). |
3466 |
|
Adding a dummy mvme88k machine mode. |
3467 |
|
20070502 Re-adding MIPS load/store alignment exceptions. |
3468 |
|
20070503 Implementing more of the M88K disassembly code. |
3469 |
|
20070504 Adding disassembly of some more M88K load/store instructions. |
3470 |
|
Implementing some relatively simple M88K instructions (br.n, |
3471 |
|
xor[.u] imm, and[.u] imm). |
3472 |
|
20070505 Implementing M88K three-register and, or, xor, and jmp[.n], |
3473 |
|
bsr[.n] including function call trace stuff. |
3474 |
|
Applying a patch from Bruce M. Simpson which implements the |
3475 |
|
SYSCON_BOARD_CPU_CLOCK_FREQ_ID object of the syscon call in |
3476 |
|
the yamon PROM emulation. |
3477 |
|
20070506 Implementing M88K bb0[.n] and bb1[.n], and skeletons for |
3478 |
|
ldcr and stcr (although no control regs are implemented yet). |
3479 |
|
20070509 Found and fixed the bug which caused Linux for QEMU_MIPS to |
3480 |
|
stop working in 0.4.5.1: It was a faulty change to the MIPS |
3481 |
|
'sc' and 'scd' instructions I made while going through gcc -W |
3482 |
|
warnings on 20070428. |
3483 |
|
20070510 Updating the Linux/QEMU_MIPS section in guestoses.html to |
3484 |
|
use mips-test-0.2.tar.gz instead of 0.1. |
3485 |
|
A big thank you to Miod Vallat for sending me M88K manuals. |
3486 |
|
Implementing more M88K instructions (addu, subu, div[u], mulu, |
3487 |
|
ext[u], clr, set, cmp). |
3488 |
|
20070511 Fixing bugs in the M88K "and" and "and.u" instructions (found |
3489 |
|
by comparing against the manual). |
3490 |
|
Implementing more M88K instructions (mask[.u], mak, bcnd (auto- |
3491 |
|
generated)) and some more control register details. |
3492 |
|
Cleanup: Removing the experimental AVR emulation mode and |
3493 |
|
corresponding devices; AVR emulation wasn't really meaningful. |
3494 |
|
Implementing autogeneration of most M88K loads/stores. The |
3495 |
|
rectangle drawing demo (with -O0) for M88K runs :-) |
3496 |
|
Beginning on M88K exception handling. |
3497 |
|
More M88K instructions: tb0, tb1, rte, sub, jsr[.n]. |
3498 |
|
Adding some skeleton MVME PROM ("BUG") emulation. |
3499 |
|
20070512 Fixing a bug in the M88K cmp instruction. |
3500 |
|
Adding the M88K lda (scaled register) instruction. |
3501 |
|
Fixing bugs in 64-bit (32-bit pairs) M88K loads/stores. |
3502 |
|
Removing the unused tick_hz stuff from the machine struct. |
3503 |
|
Implementing the M88K xmem instruction. OpenBSD/mvme88k gets |
3504 |
|
far enough to display the Copyright banner :-) |
3505 |
|
Implementing subu.co (guess), addu.co, addu.ci, ff0, and ff1. |
3506 |
|
Adding a dev_mvme187, for MVME187-specific devices/registers. |
3507 |
|
OpenBSD/mvme88k prints more boot messages. :) |
3508 |
|
20070515 Continuing on MVME187 emulation (adding more devices, beginning |
3509 |
|
on the CMMUs, etc). |
3510 |
|
Adding the M88K and.c, xor.c, and or.c instructions, and making |
3511 |
|
sure that mul, div, etc cause exceptions if executed when SFD1 |
3512 |
|
is disabled. |
3513 |
|
20070517 Continuing on M88K and MVME187 emulation in general; moving |
3514 |
|
the CMMU registers to the CPU struct, separating dev_pcc2 from |
3515 |
|
dev_mvme187, and beginning on memory_m88k.c (BATC and PATC). |
3516 |
|
Fixing a bug in 64-bit (32-bit pairs) M88K fast stores. |
3517 |
|
Implementing the clock part of dev_mk48txx. |
3518 |
|
Implementing the M88K fstcr and xcr instructions. |
3519 |
|
Implementing m88k_cpu_tlbdump(). |
3520 |
|
Beginning on the implementation of a separate address space |
3521 |
|
for M88K .usr loads/stores. |
3522 |
|
20070520 Removing the non-working (skeleton) Sandpoint, SonyNEWS, SHARK |
3523 |
|
Dnard, and Zaurus machine modes. |
3524 |
|
Experimenting with dyntrans to_be_translated read-ahead. It |
3525 |
|
seems to give a very small performance increase for MIPS |
3526 |
|
emulation, but a large performance degradation for SuperH. Hm. |
3527 |
|
20070522 Disabling correct SuperH ITLB emulation; it does not seem to be |
3528 |
|
necessary in order to let SH4 guest OSes run, and it slows down |
3529 |
|
userspace code. |
3530 |
|
Implementing "samepage" branches for SuperH emulation, and some |
3531 |
|
other minor speed hacks. |
3532 |
|
20070525 Continuing on M88K memory-related stuff: exceptions, memory |
3533 |
|
transaction register contents, etc. |
3534 |
|
Implementing the M88K subu.ci instruction. |
3535 |
|
Removing the non-working (skeleton) Iyonix machine mode. |
3536 |
|
OpenBSD/mvme88k reaches userland :-), starts executing |
3537 |
|
/sbin/init's instructions, and issues a few syscalls, before |
3538 |
|
crashing. |
3539 |
|
20070526 Fixing bugs in dev_mk48txx, so that OpenBSD/mvme88k detects |
3540 |
|
the correct time-of-day. |
3541 |
|
Implementing a generic IRQ controller for the test machines |
3542 |
|
(dev_irqc), similar to a proposed patch from Petr Stepan. |
3543 |
|
Experimenting some more with translation read-ahead. |
3544 |
|
Adding an "expect" script for automated OpenBSD/landisk |
3545 |
|
install regression/performance tests. |
3546 |
|
20070527 Adding a dummy mmEye (SH3) machine mode skeleton. |
3547 |
|
FINALLY found the strange M88K bug I have been hunting: I had |
3548 |
|
not emulated the SNIP value for exceptions occurring in |
3549 |
|
branch delay slots correctly. |
3550 |
|
Implementing correct exceptions for 64-bit M88K loads/stores. |
3551 |
|
Address to symbol lookups are now disabled when M88K is |
3552 |
|
running in usermode (because usermode addresses don't have |
3553 |
|
anything to do with supervisor addresses). |
3554 |
|
20070531 Removing the mmEye machine mode skeleton. |
3555 |
|
20070604 Some minor code cleanup. |
3556 |
|
20070605 Moving src/useremul.c into a subdir (src/useremul/), and |
3557 |
|
cleaning up some more legacy constructs. |
3558 |
|
Adding -Wstrict-aliasing and -fstrict-aliasing detection to |
3559 |
|
the configure script. |
3560 |
|
20070606 Adding a check for broken GCC on Solaris to the configure |
3561 |
|
script. (GCC 3.4.3 on Solaris cannot handle static variables |
3562 |
|
which are initialized to 0 or NULL. :-/) |
3563 |
|
Removing the old (non-working) ARC emulation modes: NEC RD94, |
3564 |
|
R94, R96, and R98, and the last traces of Olivetti M700 and |
3565 |
|
Deskstation Tyne. |
3566 |
|
Removing the non-working skeleton WDSC device (dev_wdsc). |
3567 |
|
20070607 Thinking about how to use the host's cc + ld at runtime to |
3568 |
|
generate native code. (See experiments/native_cc_ld_test.i |
3569 |
|
for an example.) |
3570 |
|
20070608 Adding a program counter sampling timer, which could be useful |
3571 |
|
for native code generation experiments. |
3572 |
|
The KN02_CSR_NRMMOD bit in the DECstation 5000/200 (KN02) CSR |
3573 |
|
should always be set, to allow a 5000/200 PROM to boot. |
3574 |
|
20070609 Moving out breakpoint details from the machine struct into |
3575 |
|
a helper struct, and removing the limit on max nr of |
3576 |
|
breakpoints. |
3577 |
|
20070610 Moving out tick functions into a helper struct as well (which |
3578 |
|
also gets rid of the max limit). |
3579 |
|
20070612 FINALLY figured out why Debian/DECstation stopped working when |
3580 |
|
translation read-ahead was enabled: in src/memory_rw.c, the |
3581 |
|
call to invalidate_code_translation was made also if the |
3582 |
|
memory access was an instruction load (if the page was mapped |
3583 |
|
as writable); it shouldn't be called in that case. |
3584 |
|
20070613 Implementing some more MIPS32/64 revision 2 instructions: di, |
3585 |
|
ei, ext, dext, dextm, dextu, and ins. |
3586 |
|
20070614 Implementing an instruction combination for the NetBSD/arm |
3587 |
|
idle loop (making the host not use any cpu if NetBSD/arm |
3588 |
|
inside the emulator is not using any cpu). |
3589 |
|
Increasing the nr of ARM VPH entries from 128 to 384. |
3590 |
|
20070615 Removing the ENABLE_arch stuff from the configure script, so |
3591 |
|
that all included architectures are included in both release |
3592 |
|
and development builds. |
3593 |
|
Moving memory related helper functions from misc.c to memory.c. |
3594 |
|
Adding preliminary instructions for netbooting NetBSD/pmppc to |
3595 |
|
guestoses.html; it doesn't work yet, there are weird timeouts. |
3596 |
|
Beginning a total rewrite of the userland emulation modes |
3597 |
|
(removing all emulation modes, beginning from scratch with |
3598 |
|
NetBSD/MIPS and FreeBSD/Alpha only). |
3599 |
|
20070616 After fixing a bug in the DEC21143 NIC (the TDSTAT_OWN bit was |
3600 |
|
only cleared for the last segment when transmitting, not all |
3601 |
|
segments), NetBSD/pmppc boots with root-on-nfs without the |
3602 |
|
timeouts. Updating guestoses.html. |
3603 |
|
Removing the skeleton PSP (Playstation Portable) mode. |
3604 |
|
Moving X11-related stuff in the machine struct into a helper |
3605 |
|
struct. |
3606 |
|
Cleanup of out-of-memory checks, to use a new CHECK_ALLOCATION |
3607 |
|
macro (which prints a meaningful error message). |
3608 |
|
Adding a COMMENT to each machine and device (for automagic |
3609 |
|
.index comment generation). |
3610 |
|
Doing regression testing for the next release. |
3611 |
|
|
3612 |
|
============== RELEASE 0.4.6 ============== |
3613 |
|
|