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
------------------------------------------------------------------------------