Subject: Re: Zeus and 744 problem
To: None <DCG9367@tntech.edu>
From: Niklas Hallqvist <niklas@appli.se>
List: amiga-dev
Date: 03/15/1994 00:57:18
>>>>> "David" == DCG9367  <DCG9367@tntech.edu> writes:

David> BTW, what is the current status of using 16-bit memory with the
David> GVP 030/040 accelerators?  This problem really bugs me and I am
David> wondering if it could cause problems in amigados!  I
David> havenoticed that when using Zkick to load akickfile into 32-bit
David> ram and then filling up ram: to force the system out of 32-bit
David> ram, the system crashes!  I have to use my kickstart in 16-bit
David> ram, yuck!!  Anyone know if these problems could be related?

I don't know, maybe.  There seems to be more to it than the odd-aligned
24-bit access problem.  I came up with a fix for that before my HD
crashed, but I still got errors from emacs, although it felt to be
much longer between the failures.  As I cannot get to the source, I
have to provide you my fix by memory...

in trap() (trap.c) case MMUFLT or something, after the rv = vm_fault() line

#ifdef GVPHACK
	if (!rv && (v & 1))
	  if (map == kernel_map)
	    asm volatile ("tstw %0" : : "g" (v & ~1) : "cc");
	  else
	    asm volatile ("movsw %0@,%0" : : "a" (v & ~1) : "cc");
#endif

Warning!  This is just from memory!  There can bve many errors in those
few lines.  Esp. as I never remember the rules of GCCs asm statement.

Test it if you dare, but if you do, please send a message to me and
say if id made any difference, and if it did, what difference did it
make?

What it does?  It makes sure that odd-aligned accesses generating
pagefaults always does an access to the even-aligned word before
restarting the original instruction.  If it is the correct thing to do?
I don't know... GVP should have a report by now (the swedish agent
promised to get it to them).

Niklas

------------------------------------------------------------------------------