1 |
$Id: HISTORY,v 1.1264 2006/06/25 11:08:04 debug Exp $ |
$Id: HISTORY,v 1.1632 2007/09/11 21:46:35 debug Exp $ |
2 |
|
|
3 |
Changelog for GXemul: |
Changelog for GXemul: |
4 |
--------------------- |
--------------------- |
2819 |
|
|
2820 |
============== RELEASE 0.4.0.1 ============== |
============== RELEASE 0.4.0.1 ============== |
2821 |
|
|
2822 |
|
20060626 Continuing on SPARC emulation (beginning on the 'save' |
2823 |
|
instruction, register windows, etc). |
2824 |
|
20060629 Planning statistics gathering (new -s command line option), |
2825 |
|
and renaming speed_tricks to allow_instruction_combinations. |
2826 |
|
20060630 Some minor manual page updates. |
2827 |
|
Various cleanups. |
2828 |
|
Implementing the -s command line option. |
2829 |
|
20060701 FINALLY found the bug which prevented Linux and Ultrix from |
2830 |
|
running without the ugly hack in the R2000/R3000 cache isol |
2831 |
|
code; it was the phystranslation hint array which was buggy. |
2832 |
|
Removing the phystranslation hint code completely, for now. |
2833 |
|
20060702 Minor dyntrans cleanups; invalidation of physpages now only |
2834 |
|
invalidate those parts of a page that have actually been |
2835 |
|
translated. (32 parts per page.) |
2836 |
|
Some MIPS non-R3000 speed fixes. |
2837 |
|
Experimenting with MIPS instruction combination for some |
2838 |
|
addiu+bne+sw loops, and sw+sw+sw. |
2839 |
|
Adding support (again) for larger-than-4KB pages in MIPS tlbw*. |
2840 |
|
Continuing on SPARC emulation: adding load/store instructions. |
2841 |
|
20060704 Fixing a virtual vs physical page shift bug in the new tlbw* |
2842 |
|
implementation. Problem noticed by Jakub Jermar. (Many thanks.) |
2843 |
|
Moving rfe and eret to cpu_mips_instr.c, since that is the |
2844 |
|
only place that uses them nowadays. |
2845 |
|
20060705 Removing the BSD license from the "testmachine" include files, |
2846 |
|
placing them in the public domain instead; this enables the |
2847 |
|
testmachine stuff to be used from projects which are |
2848 |
|
incompatible with the BSD license for some reason. |
2849 |
|
20060707 Adding instruction combinations for the R2000/R3000 L1 |
2850 |
|
I-cache invalidation code used by NetBSD/pmax 3.0, lui+addiu, |
2851 |
|
various branches followed by addiu or nop, and jr ra followed |
2852 |
|
by addiu. The time it takes to perform a full NetBSD/pmax R3000 |
2853 |
|
install on the laptop has dropped from 573 seconds to 539. :-) |
2854 |
|
20060708 Adding a framebuffer controller device (dev_fbctrl), which so |
2855 |
|
far can be used to change the fb resolution during runtime, but |
2856 |
|
in the future will also be useful for accelerated block fill/ |
2857 |
|
copy, and possibly also simplified character output. |
2858 |
|
Adding an instruction combination for NetBSD/pmax' strlen. |
2859 |
|
20060709 Minor fixes: reading raw files in src/file.c wasn't memblock |
2860 |
|
aligned, removing buggy multi_sw MIPS instruction combination, |
2861 |
|
etc. |
2862 |
|
20060711 Adding a machine_qemu.c, which contains a "qemu_mips" machine. |
2863 |
|
(It mimics QEMU's MIPS machine mode, so that a test kernel |
2864 |
|
made for QEMU_MIPS also can run in GXemul... at least to some |
2865 |
|
extent.) Adding a short section about how to run this mode to |
2866 |
|
doc/guestoses.html. |
2867 |
|
20060714 Misc. minor code cleanups. |
2868 |
|
20060715 Applying a patch which adds getchar() to promemul/yamon.c |
2869 |
|
(from Oleksandr Tymoshenko). |
2870 |
|
Adding yamon.h from NetBSD, and rewriting yamon.c to use it |
2871 |
|
(instead of ugly hardcoded numbers) + some cleanup. |
2872 |
|
20060716 Found and fixed the bug which broke single-stepping of 64-bit |
2873 |
|
programs between 0.4.0 and 0.4.0.1 (caused by too quick |
2874 |
|
refactoring and no testing). Hopefully this fix will not |
2875 |
|
break too many other things. |
2876 |
|
20060718 Continuing on the 8253 PIT; it now works with Linux/QEMU_MIPS. |
2877 |
|
Re-adding the sw+sw+sw instr comb (the problem was that I had |
2878 |
|
ignored endian issues); however, it doesn't seem to give any |
2879 |
|
big performance gain. |
2880 |
|
20060720 Adding a dummy Transputer mode (T414, T800 etc) skeleton (only |
2881 |
|
the 'j' and 'ldc' instructions are implemented so far). :-} |
2882 |
|
20060721 Adding gtreg.h from NetBSD, updating dev_gt.c to use it, plus |
2883 |
|
misc. other updates to get Linux 2.6 for evbmips/malta working |
2884 |
|
(thanks to Alec Voropay for the details). |
2885 |
|
FINALLY found and fixed the bug which made tlbw* for non-R3000 |
2886 |
|
buggy; it was a reference count problem in the dyntrans core. |
2887 |
|
20060722 Testing stuff; things seem stable enough for a new release. |
2888 |
|
|
2889 |
|
============== RELEASE 0.4.1 ============== |
2890 |
|
|
2891 |
|
20060723 More Transputer instructions (pfix, nfix, opr, mint, ldl, ldlp, |
2892 |
|
eqc, rev, ajw, stl, stlf, sthf, sub, ldnl, ldnlp, ldpi, move, |
2893 |
|
wcnt, add, bcnt). |
2894 |
|
Adding more SPARC instructions (andcc, addcc, bl, rdpr). |
2895 |
|
Progress on the igsfb framebuffer used by NetBSD/netwinder. |
2896 |
|
Enabling 8-bit fills in dev_fb. |
2897 |
|
NetBSD/netwinder 3.0.1 can now run from a disk image :-) |
2898 |
|
20060724 Cleanup/performance fix for 64-bit virtual translation table |
2899 |
|
updates (by removing the "timestamp" stuff). A full NetBSD/pmax |
2900 |
|
3.0.1 install for R4400 has dropped from 667 seconds to 584 :) |
2901 |
|
Fixing the igsfb "almost vga" color (it is 24-bit, not 18-bit). |
2902 |
|
Adding some MIPS instruction combinations (3*lw, and 3*addu). |
2903 |
|
The 8048 keyboard now turns off interrupt enable between the |
2904 |
|
KBR_ACK and the KBR_RSTDONE, to work better with Linux 2.6. |
2905 |
|
Not causing PPC DEC interrupts if PPC_NO_DEC is set for a |
2906 |
|
specific CPU; NetBSD/bebox gets slightly further than before. |
2907 |
|
Adding some more SPARC instructions: branches, udiv. |
2908 |
|
20060725 Refreshing dev_pckbc.c a little. |
2909 |
|
Cleanups for the SH emulation mode, and adding the first |
2910 |
|
"compact" (16-bit) instructions: various simple movs, nop, |
2911 |
|
shll, stc, or, ldc. |
2912 |
|
20060726 Adding dummy "pcn" (AMD PCnet NIC) PCI glue. |
2913 |
|
20060727 Various cleanups; removing stuff from cpu.h, such as |
2914 |
|
running_translated (not really meaningful anymore), and |
2915 |
|
page flags (breaking into the debugger clears all translations |
2916 |
|
anyway). |
2917 |
|
Minor MIPS instruction combination updates. |
2918 |
|
20060807 Expanding the 3*sw and 3*lw MIPS instruction combinations to |
2919 |
|
work with 2* and 4* too, resulting in a minor performance gain. |
2920 |
|
Implementing a usleep hack for the RM52xx/MIPS32/MIPS64 "wait" |
2921 |
|
instruction (when emulating 1 cpu). |
2922 |
|
20060808 Experimenting with some more MIPS instruction combinations. |
2923 |
|
Implementing support for showing a (hardcoded 12x22) text |
2924 |
|
cursor in igsfb. |
2925 |
|
20060809 Simplifying the NetBSD/evbmips (Malta) install instructions |
2926 |
|
somewhat (by using a NetBSD/pmax ramdisk install kernel). |
2927 |
|
20060812 Experimenting more with the MIPS 'wait' instruction. |
2928 |
|
PCI configuration register writes can now be handled, which |
2929 |
|
allow PCI IDE controllers to work with NetBSD/Malta 3.0.1 and |
2930 |
|
NetBSD/cobalt 3.0.1. (Previously only NetBSD 2.1 worked.) |
2931 |
|
20060813 Updating dev_gt.c based on numbers from Alec Voropay, to enable |
2932 |
|
Linux 2.6 to use PCI on Malta. |
2933 |
|
Continuing on Algor interrupt stuff. |
2934 |
|
20060814 Adding support for routing ISA interrupts to two different |
2935 |
|
interrupts, making it possible to run NetBSD/algor :-) |
2936 |
|
20060814-15 Testing for the release. |
2937 |
|
|
2938 |
|
============== RELEASE 0.4.2 ============== |
2939 |
|
|
2940 |
|
20060816 Adding a framework for emulated/virtual timers (src/timer.c), |
2941 |
|
using only setitimer(). |
2942 |
|
Rewriting the mc146818 to use the new timer framework. |
2943 |
|
20060817 Adding a call to gettimeofday() every now and then (once every |
2944 |
|
second, at the moment) to resynch the timer if it drifts. |
2945 |
|
Beginning to convert the ISA timer interrupt mechanism (8253 |
2946 |
|
and 8259) to use the new timer framework. |
2947 |
|
Removing the -I command line option. |
2948 |
|
20060819 Adding the -I command line option again, with new semantics. |
2949 |
|
Working on Footbridge timer interrupts; NetBSD/NetWinder and |
2950 |
|
NetBSD/CATS now run at correct speed, but unfortunately with |
2951 |
|
HUGE delays during bootup. |
2952 |
|
20060821 Some minor m68k updates. Adding the first instruction: nop. :) |
2953 |
|
Minor Alpha emulation updates. |
2954 |
|
20060822 Adding a FreeBSD development specific YAMON environment |
2955 |
|
variable ("khz") (as suggested by Bruce M. Simpson). |
2956 |
|
Moving YAMON environment variable initialization from |
2957 |
|
machine_evbmips.c into promemul/yamon.c, and adding some more |
2958 |
|
variables. |
2959 |
|
Continuing on the LCA PCI bus controller (for Alpha machines). |
2960 |
|
20060823 Continuing on the timer stuff: experimenting with MIPS count/ |
2961 |
|
compare interrupts connected to the timer framework. |
2962 |
|
20060825 Adding bogus SCSI commands 0x51 (SCSICDROM_READ_DISCINFO) and |
2963 |
|
0x52 (SCSICDROM_READ_TRACKINFO) to the SCSI emulation layer, |
2964 |
|
to allow NetBSD/pmax 4.0_BETA to be installed from CDROM. |
2965 |
|
Minor updates to the LCA PCI controller. |
2966 |
|
20060827 Implementing a CHIP8 cpu mode, and a corresponding CHIP8 |
2967 |
|
machine, for fun. Disassembly support for all instructions, |
2968 |
|
and most of the common instructions have been implemented: mvi, |
2969 |
|
mov_imm, add_imm, jmp, rand, cls, sprite, skeq_imm, jsr, |
2970 |
|
skne_imm, bcd, rts, ldr, str, mov, or, and, xor, add, sub, |
2971 |
|
font, ssound, sdelay, gdelay, bogus skup/skpr, skeq, skne. |
2972 |
|
20060828 Beginning to convert the CHIP8 cpu in the CHIP8 machine to a |
2973 |
|
(more correct) RCA 180x cpu. (Disassembly for all 1802 |
2974 |
|
instructions has been implemented, but no execution yet, and |
2975 |
|
no 1805 extended instructions.) |
2976 |
|
20060829 Minor Alpha emulation updates. |
2977 |
|
20060830 Beginning to experiment a little with PCI IDE for SGI O2. |
2978 |
|
Fixing the cursor key mappings for MobilePro 770 emulation. |
2979 |
|
Fixing the LK201 warning caused by recent NetBSD/pmax. |
2980 |
|
The MIPS R41xx standby, suspend, and hibernate instructions now |
2981 |
|
behave like the RM52xx/MIPS32/MIPS64 wait instruction. |
2982 |
|
Fixing dev_wdc so it calculates correct (64-bit) offsets before |
2983 |
|
giving them to diskimage_access(). |
2984 |
|
20060831 Continuing on Alpha emulation (OSF1 PALcode). |
2985 |
|
20060901 Minor Alpha updates; beginning on virtual memory pagetables. |
2986 |
|
Removed the limit for max nr of devices (in preparation for |
2987 |
|
allowing devices' base addresses to be changed during runtime). |
2988 |
|
Adding a hack for MIPS [d]mfc0 select 0 (except the count |
2989 |
|
register), so that the coproc register is simply copied. |
2990 |
|
The MIPS suspend instruction now exits the emulator, instead |
2991 |
|
of being treated as a wait instruction (this causes NetBSD/ |
2992 |
|
hpcmips to get correct 'halt' behavior). |
2993 |
|
The VR41xx RTC now returns correct time. |
2994 |
|
Connecting the VR41xx timer to the timer framework (fixed at |
2995 |
|
128 Hz, for now). |
2996 |
|
Continuing on SPARC emulation, adding more instructions: |
2997 |
|
restore, ba_xcc, ble. The rectangle drawing demo works :) |
2998 |
|
Removing the last traces of the old ENABLE_CACHE_EMULATION |
2999 |
|
MIPS stuff (not usable with dyntrans anyway). |
3000 |
|
20060902 Splitting up src/net.c into several smaller files in its own |
3001 |
|
subdirectory (src/net/). |
3002 |
|
20060903 Cleanup of the files in src/net/, to make them less ugly. |
3003 |
|
20060904 Continuing on the 'settings' subsystem. |
3004 |
|
Minor progress on the SPARC emulation mode. |
3005 |
|
20060905 Cleanup of various things, and connecting the settings |
3006 |
|
infrastructure to various subsystems (emul, machine, cpu, etc). |
3007 |
|
Changing the lk201 mouse update routine to not rely on any |
3008 |
|
emulated hardware framebuffer cursor coordinates, but instead |
3009 |
|
always do (semi-usable) relative movements. |
3010 |
|
20060906 Continuing on the lk201 mouse stuff. Mouse behaviour with |
3011 |
|
multiple framebuffers (which was working in Ultrix) is now |
3012 |
|
semi-broken (but it still works, in a way). |
3013 |
|
Moving the documentation about networking into its own file |
3014 |
|
(networking.html), and refreshing it a bit. Adding an example |
3015 |
|
of how to use ethernet frame direct-access (udp_snoop). |
3016 |
|
20060907 Continuing on the settings infrastructure. |
3017 |
|
20060908 Minor updates to SH emulation: for 32-bit emulation: delay |
3018 |
|
slots and the 'jsr @Rn' instruction. I'm putting 64-bit SH5 on |
3019 |
|
ice, for now. |
3020 |
|
20060909-10 Implementing some more 32-bit SH instructions. Removing the |
3021 |
|
64-bit mode completely. Enough has now been implemented to run |
3022 |
|
the rectangle drawing demo. :-) |
3023 |
|
20060912 Adding more SH instructions. |
3024 |
|
20060916 Continuing on SH emulation (some more instructions: div0u, |
3025 |
|
div1, rotcl/rotcr, more mov instructions, dt, braf, sets, sett, |
3026 |
|
tst_imm, dmuls.l, subc, ldc_rm_vbr, movt, clrt, clrs, clrmac). |
3027 |
|
Continuing on the settings subsystem (beginning on reading/ |
3028 |
|
writing settings, removing bugs, and connecting more cpus to |
3029 |
|
the framework). |
3030 |
|
20060919 More work on SH emulation; adding an ldc banked instruction, |
3031 |
|
and attaching a 640x480 framebuffer to the Dreamcast machine |
3032 |
|
mode (NetBSD/dreamcast prints the NetBSD copyright banner :-), |
3033 |
|
and then panics). |
3034 |
|
20060920 Continuing on the settings subsystem. |
3035 |
|
20060921 Fixing the Footbridge timer stuff so that NetBSD/cats and |
3036 |
|
NetBSD/netwinder boot up without the delays. |
3037 |
|
20060922 Temporarily hardcoding MIPS timer interrupt to 100 Hz. With |
3038 |
|
'wait' support disabled, NetBSD/malta and Linux/malta run at |
3039 |
|
correct speed. |
3040 |
|
20060923 Connecting dev_gt to the timer framework, so that NetBSD/cobalt |
3041 |
|
runs at correct speed. |
3042 |
|
Moving SH4-specific memory mapped registers into its own |
3043 |
|
device (dev_sh4.c). |
3044 |
|
Running with -N now prints "idling" instead of bogus nr of |
3045 |
|
instrs/second (which isn't valid anyway) while idling. |
3046 |
|
20060924 Algor emulation should now run at correct speed. |
3047 |
|
Adding disassembly support for some MIPS64 revision 2 |
3048 |
|
instructions: ext, dext, dextm, dextu. |
3049 |
|
20060926 The timer framework now works also when the MIPS wait |
3050 |
|
instruction is used. |
3051 |
|
20060928 Re-implementing checks for coprocessor availability for MIPS |
3052 |
|
cop0 instructions. (Thanks to Carl van Schaik for noticing the |
3053 |
|
lack of cop0 availability checks.) |
3054 |
|
20060929 Implementing an instruction combination hack which treats |
3055 |
|
NetBSD/pmax' idle loop as a wait-like instruction. |
3056 |
|
20060930 The ENTRYHI_R_MASK was missing in (at least) memory_mips_v2p.c, |
3057 |
|
causing TLB lookups to sometimes succeed when they should have |
3058 |
|
failed. (A big thank you to Juli Mallett for noticing the |
3059 |
|
problem.) |
3060 |
|
Adding disassembly support for more MIPS64 revision 2 opcodes |
3061 |
|
(seb, seh, wsbh, jalr.hb, jr.hb, synci, ins, dins, dinsu, |
3062 |
|
dinsm, dsbh, dshd, ror, dror, rorv, drorv, dror32). Also |
3063 |
|
implementing seb, seh, dsbh, dshd, and wsbh. |
3064 |
|
Implementing an instruction combination hack for Linux/pmax' |
3065 |
|
idle loop, similar to the NetBSD/pmax case. |
3066 |
|
20061001 Changing the NetBSD/sgimips install instructions to extract |
3067 |
|
files from an iso image, instead of downloading them via ftp. |
3068 |
|
20061002 More-than-31-bit userland addresses in memory_mips_v2p.c were |
3069 |
|
not actually working; applying a fix from Carl van Schaik to |
3070 |
|
enable them to work + making some other updates (adding kuseg |
3071 |
|
support). |
3072 |
|
Fixing hpcmips (vr41xx) timer initialization. |
3073 |
|
Experimenting with O(n)->O(1) reduction in the MIPS TLB lookup |
3074 |
|
loop. Seems to work both for R3000 and non-R3000. |
3075 |
|
20061003 Continuing a little on SH emulation (adding more control |
3076 |
|
registers; mini-cleanup of memory_sh.c). |
3077 |
|
20061004 Beginning on a dev_rtc, a clock/timer device for the test |
3078 |
|
machines; also adding a demo, and some documentation. |
3079 |
|
Fixing a bug in SH "mov.w @(disp,pc),Rn" (the result wasn't |
3080 |
|
sign-extended), and adding the addc and ldtlb instructions. |
3081 |
|
20061005 Contining on SH emulation: virtual to physical address |
3082 |
|
translation, and a skeleton exception mechanism. |
3083 |
|
20061006 Adding more SH instructions (various loads and stores, rte, |
3084 |
|
negc, muls.w, various privileged register-move instructions). |
3085 |
|
20061007 More SH instructions: various move instructions, trapa, div0s, |
3086 |
|
float, fdiv, ftrc. |
3087 |
|
Continuing on dev_rtc; removing the rtc demo. |
3088 |
|
20061008 Adding a dummy Dreamcast PROM module. (Homebrew Dreamcast |
3089 |
|
programs using KOS libs need this.) |
3090 |
|
Adding more SH instructions: "stc vbr,rn", rotl, rotr, fsca, |
3091 |
|
fmul, fadd, various floating-point moves, etc. A 256-byte |
3092 |
|
demo for Dreamcast runs :-) |
3093 |
|
20061012 Adding the SH "lds Rm,pr" and bsr instructions. |
3094 |
|
20061013 More SH instructions: "sts fpscr,rn", tas.b, and some more |
3095 |
|
floating point instructions, cmp/str, and more moves. |
3096 |
|
Adding a dummy dev_pvr (Dreamcast graphics controller). |
3097 |
|
20061014 Generalizing the expression evaluator (used in the built-in |
3098 |
|
debugger) to support parentheses and +-*/%^&|. |
3099 |
|
20061015 Removing the experimental tlb index hint code in |
3100 |
|
mips_memory_v2p.c, since it didn't really have any effect. |
3101 |
|
20061017 Minor SH updates; adding the "sts pr,Rn", fcmp/gt, fneg, |
3102 |
|
frchg, and some other instructions. Fixing missing sign- |
3103 |
|
extension in an 8-bit load instruction. |
3104 |
|
20061019 Adding a simple dev_dreamcast_rtc. |
3105 |
|
Implementing memory-mapped access to the SH ITLB/UTLB arrays. |
3106 |
|
20061021 Continuing on various SH and Dreamcast things: sh4 timers, |
3107 |
|
debug messages for dev_pvr, fixing some virtual address |
3108 |
|
translation bugs, adding the bsrf instruction. |
3109 |
|
The NetBSD/dreamcast GENERIC_MD kernel now reaches userland :) |
3110 |
|
Adding a dummy dev_dreamcast_asic.c (not really useful yet). |
3111 |
|
Implementing simple support for Store Queues. |
3112 |
|
Beginning on the PVR Tile Accelerator. |
3113 |
|
20061022 Generalizing the PVR framebuffer to support off-screen drawing, |
3114 |
|
multiple bit-depths, etc. (A small speed penalty, but most |
3115 |
|
likely worth it.) |
3116 |
|
Adding more SH instructions (mulu.w, fcmp/eq, fsub, fmac, |
3117 |
|
fschg, and some more); correcting bugs in "fsca" and "float". |
3118 |
|
20061024 Adding the SH ftrv (matrix * vector) instruction. Marcus |
3119 |
|
Comstedt's "tatest" example runs :) (wireframe only). |
3120 |
|
Correcting disassembly for SH floating point instructions that |
3121 |
|
use the xd* registers. |
3122 |
|
Adding the SH fsts instruction. |
3123 |
|
In memory_device_dyntrans_access(), only the currently used |
3124 |
|
range is now invalidated, and not the entire device range. |
3125 |
|
20061025 Adding a dummy AVR32 cpu mode skeleton. |
3126 |
|
20061026 Various Dreamcast updates; beginning on a Maple bus controller. |
3127 |
|
20061027 Continuing on the Maple bus. A bogus Controller, Keyboard, and |
3128 |
|
Mouse can now be detected by NetBSD and KOS homebrew programs. |
3129 |
|
Cleaning up the SH4 Timer Management Unit, and beginning on |
3130 |
|
SH4 interrupts. |
3131 |
|
Implementing the Dreamcast SYSASIC. |
3132 |
|
20061028 Continuing on the SYSASIC. |
3133 |
|
Adding the SH fsqrt instruction. |
3134 |
|
memory_sh.c now actually scans the ITLB. |
3135 |
|
Fixing a bug in dev_sh4.c, related to associative writes into |
3136 |
|
the memory-mapped UTLB array. NetBSD/dreamcast now reaches |
3137 |
|
userland stably, and prints the "Terminal type?" message :-] |
3138 |
|
Implementing enough of the Dreamcast keyboard to make NetBSD |
3139 |
|
accept it for input. |
3140 |
|
Enabling SuperH for stable (non-development) builds. |
3141 |
|
Adding NetBSD/dreamcast to the documentation, although it |
3142 |
|
doesn't support root-on-nfs yet. |
3143 |
|
20061029 Changing usleep(1) calls in the debugger to usleep(10000) |
3144 |
|
(according to Brian Foley, this makes GXemul run better on |
3145 |
|
MacOS X). |
3146 |
|
Making the Maple "Controller" do something (enough to barely |
3147 |
|
interact with dcircus.elf). |
3148 |
|
20061030-31 Some progress on the PVR. More test programs start running (but |
3149 |
|
with strange output). |
3150 |
|
Various other SH4-related updates. |
3151 |
|
20061102 Various Dreamcast and SH4 updates; more KOS demos run now. |
3152 |
|
20061104 Adding a skeleton dev_mb8696x.c (the Dreamcast's LAN adapter). |
3153 |
|
20061105 Continuing on the MB8696x; NetBSD/dreamcast detects it as mbe0. |
3154 |
|
Testing for the release. |
3155 |
|
|
3156 |
|
============== RELEASE 0.4.3 ============== |
3157 |
|
|
3158 |
|
20061107 Adding a new disk image option (-d o...) which sets the ISO9660 |
3159 |
|
filesystem base offset; also making some other hacks to allow |
3160 |
|
NetBSD/dreamcast and homebrew demos/games to boot directly |
3161 |
|
from a filesystem image. |
3162 |
|
Moving Dreamcast-specific stuff in the documentation to its |
3163 |
|
own page (dreamcast.html). |
3164 |
|
Adding a border to the Dreamcast PVR framebuffer. |
3165 |
|
20061108 Adding a -T command line option (again?), for halting the |
3166 |
|
emulator on unimplemented memory accesses. |
3167 |
|
20061109 Continuing on various SH4 and Dreamcast related things. |
3168 |
|
The emulator should now halt on more unimplemented device |
3169 |
|
accesses, instead of just printing a warning, forcing me to |
3170 |
|
actually implement missing stuff :) |
3171 |
|
20061111 Continuing on SH4 and Dreamcast stuff. |
3172 |
|
Adding a bogus Landisk (SH4) machine mode. |
3173 |
|
20061112 Implementing some parts of the Dreamcast GDROM device. With |
3174 |
|
some ugly hacks, NetBSD can (barely) mount an ISO image. |
3175 |
|
20061113 NetBSD/dreamcast now starts booting from the Live CD image, |
3176 |
|
but crashes randomly quite early on in the boot process. |
3177 |
|
20061122 Beginning on a skeleton interrupt.h and interrupt.c for the |
3178 |
|
new interrupt subsystem. |
3179 |
|
20061124 Continuing on the new interrupt system; taking the first steps |
3180 |
|
to attempt to connect CPUs (SuperH and MIPS) and devices |
3181 |
|
(dev_cons and SH4 timer interrupts) to it. Many things will |
3182 |
|
probably break from now on. |
3183 |
|
20061125 Converting dev_ns16550, dev_8253 to the new interrupt system. |
3184 |
|
Attempting to begin to convert the ISA bus. |
3185 |
|
20061130 Incorporating a patch from Brian Foley for the configure |
3186 |
|
script, which checks for X11 libs in /usr/X11R6/lib64 (which |
3187 |
|
is used on some Linux systems). |
3188 |
|
20061227 Adding a note in the man page about booting from Dreamcast |
3189 |
|
CDROM images (i.e. that no external kernel is needed). |
3190 |
|
20061229 Continuing on the interrupt system rewrite: beginning to |
3191 |
|
convert more devices, adding abort() calls for legacy interrupt |
3192 |
|
system calls so that everything now _has_ to be rewritten! |
3193 |
|
Almost all machine modes are now completely broken. |
3194 |
|
20061230 More progress on removing old interrupt code, mostly related |
3195 |
|
to the ISA bus + devices, the LCA bus (on AlphaBook1), and |
3196 |
|
the Footbridge bus (for CATS). And some minor PCI stuff. |
3197 |
|
Connecting the ARM cpu to the new interrupt system. |
3198 |
|
The CATS, NetWinder, and QEMU_MIPS machine modes now work with |
3199 |
|
the new interrupt system :) |
3200 |
|
20061231 Connecting PowerPC CPUs to the new interrupt system. |
3201 |
|
Making PReP machines (IBM 6050) work again. |
3202 |
|
Beginning to convert the GT PCI controller (for e.g. Malta |
3203 |
|
and Cobalt emulation). Some things work, but not everything. |
3204 |
|
Updating Copyright notices for 2007. |
3205 |
|
20070101 Converting dev_kn02 from legacy style to devinit; the 3max |
3206 |
|
machine mode now works with the new interrupt system :-] |
3207 |
|
20070105 Beginning to convert the SGI O2 machine to the new interrupt |
3208 |
|
system; finally converting O2 (IP32) devices to devinit, etc. |
3209 |
|
20070106 Continuing on the interrupt system redesign/rewrite; KN01 |
3210 |
|
(PMAX), KN230, and Dreamcast ASIC interrupts should work again, |
3211 |
|
moving out stuff from machine.h and devices.h into the |
3212 |
|
corresponding devices, beginning the rewrite of i80321 |
3213 |
|
interrupts, etc. |
3214 |
|
20070107 Beginning on the rewrite of Eagle interrupt stuff (PReP, etc). |
3215 |
|
20070117 Beginning the rewrite of Algor (V3) interrupts (finally |
3216 |
|
changing dev_v3 into devinit style). |
3217 |
|
20070118 Removing the "bus" registry concept from machine.h, because |
3218 |
|
it was practically meaningless. |
3219 |
|
Continuing on the rewrite of Algor V3 ISA interrupts. |
3220 |
|
20070121 More work on Algor interrupts; they are now working again, |
3221 |
|
well enough to run NetBSD/algor. :-) |
3222 |
|
20070122 Converting VR41xx (HPCmips) interrupts. NetBSD/hpcmips |
3223 |
|
can be installed using the new interrupt system :-) |
3224 |
|
20070123 Making the testmips mode work with the new interrupt system. |
3225 |
|
20070127 Beginning to convert DEC5800 devices to devinit, and to the |
3226 |
|
new interrupt system. |
3227 |
|
Converting Playstation 2 devices to devinit, and converting |
3228 |
|
the interrupt system. Also fixing a severe bug: the interrupt |
3229 |
|
mask register on Playstation 2 is bitwise _toggled_ on writes. |
3230 |
|
20070128 Removing the dummy NetGear machine mode and the 8250 device |
3231 |
|
(which was only used by the NetGear machine). |
3232 |
|
Beginning to convert the MacPPC GC (Grand Central) interrupt |
3233 |
|
controller to the new interrupt system. |
3234 |
|
Converting Jazz interrupts (PICA61 etc.) to the new interrupt |
3235 |
|
system. NetBSD/arc can be installed again :-) |
3236 |
|
Fixing the JAZZ timer (hardcoding it at 100 Hz, works with |
3237 |
|
NetBSD and it is better than a completely dummy timer as it |
3238 |
|
was before). |
3239 |
|
Converting dev_mp to the new interrupt system, although I |
3240 |
|
haven't had time to actually test it yet. |
3241 |
|
Completely removing src/machines/interrupts.c, cpu_interrupt |
3242 |
|
and cpu_interrupt_ack in src/cpu.c, and |
3243 |
|
src/include/machine_interrupts.h! Adding fatal error messages |
3244 |
|
+ abort() in the few places that are left to fix. |
3245 |
|
Converting dev_z8530 to the new interrupt system. |
3246 |
|
FINALLY removing the md_int struct completely from the |
3247 |
|
machine struct. |
3248 |
|
SH4 fixes (adding a PADDR invalidation in the ITLB replacement |
3249 |
|
code in memory_sh.c); the NetBSD/dreamcast LiveCD now runs |
3250 |
|
all the way to the login prompt, and can be interacted with :-) |
3251 |
|
Converting the CPC700 controller (PCI and interrupt controller |
3252 |
|
for PM/PPC) to the new interrupt system. |
3253 |
|
20070129 Fixing MACE ISA interrupts (SGI IP32 emulation). Both NetBSD/ |
3254 |
|
sgimips' and OpenBSD/sgi's ramdisk kernels can now be |
3255 |
|
interacted with again. |
3256 |
|
20070130 Moving out the MIPS multi_lw and _sw instruction combinations |
3257 |
|
so that they are auto-generated at compile time instead. |
3258 |
|
20070131 Adding detection of amd64/x86_64 hosts in the configure script, |
3259 |
|
for doing initial experiments (again :-) with native code |
3260 |
|
generation. |
3261 |
|
Adding a -k command line option to set the size of the dyntrans |
3262 |
|
cache, and a -B command line option to disable native code |
3263 |
|
generation, even if GXemul was compiled with support for |
3264 |
|
native code generation for the specific host CPU architecture. |
3265 |
|
20070201 Experimenting with a skeleton for native code generation. |
3266 |
|
Changing the default behaviour, so that native code generation |
3267 |
|
is now disabled by default, and has to be enabled by using |
3268 |
|
-b on the command line. |
3269 |
|
20070202 Continuing the native code generation experiments. |
3270 |
|
Making PCI interrupts work for Footbridge again. |
3271 |
|
20070203 More native code generation experiments. |
3272 |
|
Removing most of the native code generation experimental code, |
3273 |
|
it does not make sense to include any quick hacks like this. |
3274 |
|
Minor cleanup/removal of some more legacy MIPS interrupt code. |
3275 |
|
20070204 Making i80321 interrupts work again (for NetBSD/evbarm etc.), |
3276 |
|
and fixing the timer at 100 Hz. |
3277 |
|
20070206 Experimenting with removing the wdc interrupt slowness hack. |
3278 |
|
20070207 Lowering the number of dyntrans TLB entries for MIPS from |
3279 |
|
192 to 128, resulting in a minor speed improvement. |
3280 |
|
Minor optimization to the code invalidation routine in |
3281 |
|
cpu_dyntrans.c. |
3282 |
|
20070208 Increasing (experimentally) the nr of dyntrans instructions per |
3283 |
|
loop from 60 to 120. |
3284 |
|
20070210 Commenting out (experimentally) the dyntrans_device_danger |
3285 |
|
detection in memory_rw.c. |
3286 |
|
Changing the testmips and baremips machines to use a revision 2 |
3287 |
|
MIPS64 CPU by default, instead of revision 1. |
3288 |
|
Removing the dummy i960, IA64, x86, AVR32, and HP PA-RISC |
3289 |
|
files, the PC bios emulation, and the Olivetti M700 (ARC) and |
3290 |
|
db64360 emulation modes. |
3291 |
|
20070211 Adding an "mp" demo to the demos directory, which tests the |
3292 |
|
SMP functionality of the testmips machine. |
3293 |
|
Fixing PReP interrupts some more. NetBSD/prep now boots again. |
3294 |
|
20070216 Adding a "nop workaround" for booting Mach/PMAX to the |
3295 |
|
documentation; thanks to Artur Bujdoso for the values. |
3296 |
|
Converting more of the MacPPC interrupt stuff to the new |
3297 |
|
system. |
3298 |
|
Beginning to convert BeBox interrupts to the new system. |
3299 |
|
PPC603e should NOT have the PPC_NO_DEC flag! Removing it. |
3300 |
|
Correcting BeBox clock speed (it was set to 100 in the NetBSD |
3301 |
|
bootinfo block, but should be 33000000/4), allowing NetBSD |
3302 |
|
to start without using the (incorrect) PPC_NO_DEC hack. |
3303 |
|
20070217 Implementing (slow) AltiVec vector loads and stores, allowing |
3304 |
|
NetBSD/macppc to finally boot using the GENERIC kernel :-) |
3305 |
|
Updating the documentation with install instructions for |
3306 |
|
NetBSD/macppc. |
3307 |
|
20070218-19 Regression testing for the release. |
3308 |
|
|
3309 |
|
============== RELEASE 0.4.4 ============== |
3310 |
|
|
3311 |
|
20070224 Minor update to the initialization of the ns16550 in |
3312 |
|
machine_walnut.c, to allow that machine type to boot with the |
3313 |
|
new interrupt system (although it is still a dummy machine). |
3314 |
|
Adding a wdc at 0x14000000 to machine_landisk.c, and fixing |
3315 |
|
the SCIF serial interrupts of the SH4 cpu enough to get |
3316 |
|
NetBSD/landisk booting from a disk image :-) Adding a |
3317 |
|
preliminary install instruction skeleton to guestoses.html. |
3318 |
|
20070306 Adding SH-IPL+G PROM emulation, and also passing the "end" |
3319 |
|
symbol in r5 on bootup, for Landisk emulation. This is enough |
3320 |
|
to get OpenBSD/landisk to install :) Adding a preliminary |
3321 |
|
install instruction skeleton to the documentation. SuperH |
3322 |
|
emulation is still shaky, though :-/ |
3323 |
|
20070307 Fixed a strangeness in memory_sh.c (read/write was never |
3324 |
|
returned for any page). (Unknown whether this fixes any actual |
3325 |
|
problems, though.) |
3326 |
|
20070308 dev_ram.c fix: invalidate code translations on writes to |
3327 |
|
RAM, emulated as separate devices. Linux/dreamcast gets |
3328 |
|
further in the boot process than before, but still bugs out |
3329 |
|
in userland. |
3330 |
|
Fixing bugs in the "stc.l gbr,@-rN" and "ldc.l @rN+,gbr" SuperH |
3331 |
|
instructions (they should NOT check the MD bit), allowing the |
3332 |
|
Linux/dreamcast Live CD to reach userland correctly :-) |
3333 |
|
20070310 Changing the cpu name "Alpha" in src/useremul.c to "21364" to |
3334 |
|
unbreak userland syscall emulation of FreeBSD/Alpha binaries. |
3335 |
|
20070314 Applying a patch from Michael Yaroslavtsev which fixes the |
3336 |
|
previous Linux lib64 patch to the configure script. |
3337 |
|
20070315 Adding a (dummy) sun4v machine type, and SPARC T1 cpu type. |
3338 |
|
20070316 Creating a new directory, src/disk, and moving diskimage.c |
3339 |
|
to it. Separating out bootblock loading stuff from emul.c into |
3340 |
|
new files in src/disk. |
3341 |
|
Adding some more SPARC registers. |
3342 |
|
20070318 Preparing/testing for a minirelease, 0.4.4.1. |
3343 |
|
|
3344 |
|
============== 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 |
|
|
3614 |
|
20070616 Implementing the MIPS32/64 revision 2 "ror" instruction. |
3615 |
|
20070617 Adding a struct for each physpage which keeps track of which |
3616 |
|
ranges within that page (base offset, length) that are |
3617 |
|
continuously translatable. When running with native code |
3618 |
|
generation enabled (-b), a range is added after each read- |
3619 |
|
ahead loop. |
3620 |
|
Experimenting with using the physical program counter sample |
3621 |
|
data (implemented 20070608) together with the "translatable |
3622 |
|
range" information, to figure out which physical address ranges |
3623 |
|
would be worth translating to native code (if the number of |
3624 |
|
samples falling within a range is above a certain threshold). |
3625 |
|
20070618 Adding automagic building of .index comment files for |
3626 |
|
src/file/, src/promemul/, src src/useremul/ as well. |
3627 |
|
Adding a "has been translated" bit to the ranges, so that only |
3628 |
|
not-yet-translated ranges will be sampled. |
3629 |
|
20070619 Moving src/cpu.c and src/memory_rw.c into src/cpus/, |
3630 |
|
src/device.c into src/devices/, and src/machine.c into |
3631 |
|
src/machines/. |
3632 |
|
Creating a skeleton cc/ld native backend module; beginning on |
3633 |
|
the function which will detect cc command line, etc. |
3634 |
|
20070620 Continuing on the native code generation infrastructure. |
3635 |
|
20070621 Moving src/x11.c and src/console.c into a new src/console/ |
3636 |
|
subdir (for everything that is console or framebuffer related). |
3637 |
|
Moving src/symbol*.c into a new src/symbol/, which should |
3638 |
|
contain anything that is symbol handling related. |
3639 |
|
20070624 Making the program counter sampling threshold a "settings |
3640 |
|
variable" (sampling_threshold), i.e. it can now be changed |
3641 |
|
during runtime. |
3642 |
|
Switching the RELEASE notes format from plain text to HTML. |
3643 |
|
If the TMPDIR environment variable is set, it is used instead |
3644 |
|
of "/tmp" for temporary files. |
3645 |
|
Continuing on the cc/ld backend: simple .c code is generated, |
3646 |
|
the compiler and linker are called, etc. |
3647 |
|
Adding detection of host architecture to the configure script |
3648 |
|
(again), and adding icache invalidation support (only |
3649 |
|
implemented for Alpha hosts so far). |
3650 |
|
20070625 Simplifying the program counter sampling mechanism. |
3651 |
|
20070626 Removing the cc/ld native code generation stuff, program |
3652 |
|
counter sampling, etc; it would not have worked well in the |
3653 |
|
general case. |
3654 |
|
20070627 Removing everything related to native code generation. |
3655 |
|
20070629 Removing the (practically unusable) support for multiple |
3656 |
|
emulations. (The single emulation allowed now still supports |
3657 |
|
multiple simultaneous machines, as before.) |
3658 |
|
Beginning on PCCTWO and M88K interrupts. |
3659 |
|
20070723 Adding a dummy skeleton for emulation of M32R processors. |
3660 |
|
20070901 Fixing a warning found by "gcc version 4.3.0 20070817 |
3661 |
|
(experimental)" on amd64. |
3662 |
|
20070905 Removing some more traces of the old "multiple emulations" |
3663 |
|
code. |
3664 |
|
Also looking in /usr/local/include and /usr/local/lib for |
3665 |
|
X11 libs, when running configure. |
3666 |
|
20070909 Minor updates to the guest OS install instructions, in |
3667 |
|
preparation for the NetBSD 4.0 release. |
3668 |
|
20070918 More testing of NetBSD 4.0 RC1. |