pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/emulators/gxemul Update to 0.4.3.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/a7e5a188e5f1
branches:  trunk
changeset: 521344:a7e5a188e5f1
user:      xtraeme <xtraeme%pkgsrc.org@localhost>
date:      Thu Nov 09 20:01:55 2006 +0000

description:
Update to 0.4.3.

Changes between release 0.4.2 and 0.4.3 include, among other things:

    o)  SuperH (SH4) emulation is now stable enough to let a NetBSD/dreamcast
        GENERIC_MD (ramdisk) kernel reach userland.

    o)  There is now a simple framework for letting emulated clocks, as seen
        by guest operating systems, run at the same speed as the host clock.

        So far, the DECstation, MobilePro (hpcmips), NetWinder, CATS, Malta
        (evbmips), Cobalt, Algor, Dreamcast, and testmips machine modes
        use the new clock/timer framework.

    o)  Some changes to the way expressions are evaluated in the built-in
        debugger, and some changes in command behaviour:

          x)  Expressions (including assignments) can now be arbitrarily
              complex, using parentheses, and the following operators:

                  + - * /    % (modulo)  ^ (xor)  & (and)  | (or)

          x)  Some internal emulator variables can now be read/written using
              normal expressions. Examples of commands that did not work
              earlier, but should work now:

                  print verbose
                  r5 = sp - arch_pagesize * 4
                  machine[0].statistics_enabled = 1

          x)  To force a name to be interpreted as a setting/register name,
              a hash sign (#) is now used instead of the percentage sign (%).
              (In the new expression evaluator, % means arithmetic modulo.)

          x)  The 'focus' command now also selects a cpu, in addition to
              selecting machine and emul.

          x)  The 'reg' command only prints registers for one cpu now, not
              all cpus in the currently focused machine.

    o)  The wdc (standard IDE controller) had a bug which prevented disk
        images larger than 2 GB to work correctly. This has been fixed.

    o)  For MIPS emulation, some combinations of emulated processor + guest
        operating system should now work better when idling (i.e. the host
        should not run at 100% CPU):

          x)  For MIPS32/MIPS64 and RM5200, the 'wait' instruction should
              now work more or less as expected.

          x)  For VR41xx (e.g. MobilePro) emulation, the standby instruction
              should work like the 'wait' instruction.

          x)  For R3000 emulation, where there is no hardware wait instruction,
              I've implemented "instruction combination" hacks for both
              NetBSD/pmax and Debian/pmax, so that their cpu idle loops are
              detected and treated almost as a wait instruction.

    o)  MIPS 64-bit address translation (X=1) was not fully working before;
        TLB exception handling for xkseg and larger-than-2GB-userland should
        now actually work. (Thanks to Juli Mallett and Carl van Schaik for
        noticing these problems.)

    o)  The mouse cursor update routines in DECstation (LK201) emulation
        previously used the fact that guest OSes set the _hardware_
        cursor position. In order to support X Windows when emulating
        modern versions of NetBSD/pmax, which don't set the hardware
        position anymore, a workaround has been implemented which only
        sends relative coordinates to the guest OS. This has two drawbacks:

        1. Ultrix emulation with dual- and tripple-head emulation will
           most likely feel very strange. It will still work, though.

        2. Cursor movement feels "accelerated", because the emulator
           sends unaccelerated movements to the guest OS, which then
           accelerates them. This can however be compensated to some
           degree by running 'xset m 1 0' in the guest OS.

        Having weird accelerated mouse movement is better than having no
        mouse support at all, so this change was necessary.

diffstat:

 emulators/gxemul/Makefile         |   5 +-
 emulators/gxemul/PLIST            |   8 +-
 emulators/gxemul/distinfo         |  11 +--
 emulators/gxemul/patches/patch-aa |  26 ----------
 emulators/gxemul/patches/patch-ab |  94 ---------------------------------------
 emulators/gxemul/patches/patch-ac |  13 -----
 6 files changed, 10 insertions(+), 147 deletions(-)

diffs (207 lines):

diff -r 0164586526d8 -r a7e5a188e5f1 emulators/gxemul/Makefile
--- a/emulators/gxemul/Makefile Thu Nov 09 19:13:32 2006 +0000
+++ b/emulators/gxemul/Makefile Thu Nov 09 20:01:55 2006 +0000
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.24 2006/09/17 19:53:05 he Exp $
+# $NetBSD: Makefile,v 1.25 2006/11/09 20:01:55 xtraeme Exp $
 #
 
-DISTNAME=      gxemul-0.4.2
-PKGREVISION=   1
+DISTNAME=      gxemul-0.4.3
 CATEGORIES=    emulators
 MASTER_SITES=  http://gavare.se/gxemul/src/
 
diff -r 0164586526d8 -r a7e5a188e5f1 emulators/gxemul/PLIST
--- a/emulators/gxemul/PLIST    Thu Nov 09 19:13:32 2006 +0000
+++ b/emulators/gxemul/PLIST    Thu Nov 09 20:01:55 2006 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.12 2006/08/20 16:27:44 xtraeme Exp $
+@comment $NetBSD: PLIST,v 1.13 2006/11/09 20:01:55 xtraeme Exp $
 bin/gxemul
 man/man1/gxemul.1
 share/doc/gxemul/20040504-ultrix45-boot1.png
@@ -59,10 +59,10 @@
 share/doc/gxemul/20060812-netbsd-malta-3.0.1_small.png
 share/doc/gxemul/20060814-netbsd-algor-3.0.1.png
 share/doc/gxemul/20060814-netbsd-algor-3.0.1_small.png
+share/doc/gxemul/20061029-netbsd-dreamcast.png
+share/doc/gxemul/20061029-netbsd-dreamcast_small.png
 share/doc/gxemul/HISTORY
 share/doc/gxemul/LICENSE
-share/doc/gxemul/Makefile
-share/doc/gxemul/Makefile.skel
 share/doc/gxemul/README
 share/doc/gxemul/RELEASE
 share/doc/gxemul/TODO
@@ -105,8 +105,8 @@
 share/doc/gxemul/maddr.gif
 share/doc/gxemul/make_doc_footer.html
 share/doc/gxemul/make_doc_header.html
-share/doc/gxemul/make_documentation.sh
 share/doc/gxemul/misc.html
+share/doc/gxemul/networking.html
 share/doc/gxemul/openbsd-pmax-20040710.png
 share/doc/gxemul/openbsd-pmax-20040710_small.png
 share/doc/gxemul/sgi-o2-real.jpg
diff -r 0164586526d8 -r a7e5a188e5f1 emulators/gxemul/distinfo
--- a/emulators/gxemul/distinfo Thu Nov 09 19:13:32 2006 +0000
+++ b/emulators/gxemul/distinfo Thu Nov 09 20:01:55 2006 +0000
@@ -1,8 +1,5 @@
-$NetBSD: distinfo,v 1.16 2006/09/17 19:53:05 he Exp $
+$NetBSD: distinfo,v 1.17 2006/11/09 20:01:55 xtraeme Exp $
 
-SHA1 (gxemul-0.4.2.tar.gz) = d912b4a38cf892d6f3e89c71195d6c52bb3718ca
-RMD160 (gxemul-0.4.2.tar.gz) = dcffd9a3d8de93e935a0f2802c1a0aa60c462693
-Size (gxemul-0.4.2.tar.gz) = 1909826 bytes
-SHA1 (patch-aa) = d320c625149490ec190b1201bfe94e4ee3692bbf
-SHA1 (patch-ab) = 74cf9f44bd6577e120a1cafb532588a8280681e7
-SHA1 (patch-ac) = 6eae02b6dd162a907abbf9f84ca1c7949eb90bc8
+SHA1 (gxemul-0.4.3.tar.gz) = 1632f01c24ffaee46c8502a4bc54c0bd6461cdaf
+RMD160 (gxemul-0.4.3.tar.gz) = 5c4599f8dc5d0942629981f041868f92d46e8c22
+Size (gxemul-0.4.3.tar.gz) = 2026817 bytes
diff -r 0164586526d8 -r a7e5a188e5f1 emulators/gxemul/patches/patch-aa
--- a/emulators/gxemul/patches/patch-aa Thu Nov 09 19:13:32 2006 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-$NetBSD: patch-aa,v 1.3 2006/09/17 16:38:12 he Exp $
-
---- src/devices/dev_footbridge.c.orig  2006-02-09 21:07:12.000000000 +0100
-+++ src/devices/dev_footbridge.c
-@@ -85,10 +85,18 @@ void dev_footbridge_tick(struct cpu *cpu
- 
-               if (d->timer_value[i] > amount)
-                       d->timer_value[i] -= amount;
--              else
--                      d->timer_value[i] = 0;
-+              else {
-+                      if (d->timer_control[i] & TIMER_MODE_PERIODIC)
-+                              d->timer_value[i] = 0;
-+                      else {
-+                              /* free-running timer */
-+                              d->timer_value[i] -= amount;
-+                              d->timer_value[i] &= TIMER_MAX_VAL;
-+                      }
-+              }
- 
--              if (d->timer_value[i] == 0) {
-+              if ((d->timer_control[i] & TIMER_MODE_PERIODIC) &&
-+                  (d->timer_value[i] == 0)) {
-                       d->timer_tick_countdown[i] --;
-                       if (d->timer_tick_countdown[i] > 0)
-                               continue;
diff -r 0164586526d8 -r a7e5a188e5f1 emulators/gxemul/patches/patch-ab
--- a/emulators/gxemul/patches/patch-ab Thu Nov 09 19:13:32 2006 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-$NetBSD: patch-ab,v 1.1 2006/09/17 19:53:05 he Exp $
-
---- src/diskimage.c.orig       2006-08-14 19:46:45.000000000 +0200
-+++ src/diskimage.c
-@@ -1185,6 +1185,89 @@ xferp->data_in[4] = 0x2c - 4;   /*  Additi
-               diskimage__return_default_status_and_message(xferp);
-               break;
- 
-+      case SCSICDROM_READ_DISCINFO:
-+              debug("CDROM_READ_DISCINFO, cmd[1]=0x%02x", xferp->cmd[1]);
-+
-+              retlen = 34;
-+
-+              scsi_transfer_allocbuf(&xferp->data_in_len,
-+                  &xferp->data_in, retlen, 1);
-+
-+              xferp->data_in[0] = retlen - 2; /* length of info, excl len */
-+              xferp->data_in[1] = 0; /* length of info, excl len field, msb */
-+              xferp->data_in[2] = 0xE; /* 11 = complete ses, 10 = fin disc */
-+              xferp->data_in[3] = 0; /* First track on disc */
-+              xferp->data_in[4] = 1; /* Number of sessions, lsb */
-+              xferp->data_in[5] = 0; /* first_track_last_session_lsb */
-+              xferp->data_in[6] = 0; /* last_track_last_session_lsb */
-+              xferp->data_in[7] = 0x20; /* various flags */
-+              xferp->data_in[8] = 0; /* CD-ROM disc */
-+              xferp->data_in[9] = 1; /* num sessions, msb */
-+              xferp->data_in[10] = 0; /* first_track_last_session_msb */
-+              xferp->data_in[11] = 0; /* last_track_last_session_msb */
-+              {
-+                      int i;
-+                      /* Lead-in data, for completed cd-rom */
-+                      for (i=16; i<=23; i++) {
-+                              xferp->data_in[i] = 0xff;
-+                      }
-+              }
-+
-+              diskimage__return_default_status_and_message(xferp);
-+              break;
-+
-+      case SCSICDROM_READ_TRACKINFO:
-+              debug("CDROM_READ_TRACKINFO");
-+
-+              retlen = 36;
-+
-+              scsi_transfer_allocbuf(&xferp->data_in_len,
-+                  &xferp->data_in, retlen, 1);
-+
-+              diskimage_recalc_size(d);
-+
-+              size = d->total_size / d->logical_block_size;
-+              if (d->total_size & (d->logical_block_size-1))
-+                      size ++;
-+
-+              xferp->data_in[0] = retlen - 2; /* length of info, excl len */
-+              xferp->data_in[1] = 0; /* length of info, msb */
-+              xferp->data_in[2] = 1; /* track#, lsb */
-+              xferp->data_in[3] = 1; /* session#, lsb */
-+              xferp->data_in[4] = 0; /* reserved */
-+              xferp->data_in[5] = 0x6; /* trk mode: unintr. data, copyable */
-+              xferp->data_in[6] = 0x81; /* trk info: RT + trk mode */
-+              xferp->data_in[7] = 0x2; /* last rec=valid, next w=not valid */
-+
-+              {
-+                      int i;
-+                      /*
-+                       * track start, next writable, free blcks,
-+                       * blocking factor
-+                       */ 
-+                      for(i=8; i<=23; i++)
-+                              xferp->data_in[i] = 0;
-+              }
-+
-+              /* Track size */
-+              xferp->data_in[24] = (size >> 24) & 0xff;
-+              xferp->data_in[25] = (size >> 16) & 0xff;
-+              xferp->data_in[26] = (size >> 8) & 0xff;
-+              xferp->data_in[27] = size & 0xff;
-+
-+              {
-+                      int i;
-+                      /*
-+                       * Last recorded address, only for dvd;
-+                       * zero out rest.
-+                       */
-+                      for(i=28; i<=35; i++)
-+                              xferp->data_in[i] = 0;
-+              }
-+
-+              diskimage__return_default_status_and_message(xferp);
-+              break;
-+
-       case SCSICDROM_READ_SUBCHANNEL:
-               /*
-                *  According to
diff -r 0164586526d8 -r a7e5a188e5f1 emulators/gxemul/patches/patch-ac
--- a/emulators/gxemul/patches/patch-ac Thu Nov 09 19:13:32 2006 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-$NetBSD: patch-ac,v 1.1 2006/09/17 19:53:05 he Exp $
-
---- src/include/diskimage.h.orig       2005-11-13 03:22:01.000000000 +0100
-+++ src/include/diskimage.h
-@@ -150,6 +150,8 @@ void diskimage_dump_info(struct machine 
- /*  SCSI CD-ROM commands:  */
- #define       SCSICDROM_READ_SUBCHANNEL       0x42
- #define       SCSICDROM_READ_TOC              0x43
-+#define SCSICDROM_READ_DISCINFO               0x51
-+#define SCSICDROM_READ_TRACKINFO      0x52
- 
- /*  SCSI tape commands:  */
- #define       SCSICMD_REWIND                  0x01



Home | Main Index | Thread Index | Old Index