Subject: Re: 060 Support (request for comments)
To: Christian E. Hopps <chopps@water.emich.edu>
From: Daniel Widenfalk <t94dwi@student.tdb.uu.se>
List: amiga-dev
Date: 03/19/1995 16:40:27
>>>> 2) The 060 support package from Motorola can't "coexist" with the fpsp for
> 
> After reading through my 060 manual I am left wondering if the 060sp might
> support the 040 also.  In this case we could probably replace the fpsp.
I'll look into this as soon as I've "make build" my system.

>> * The 040FPSP uses only _mem_{read,write}. The 060SP uses
>>   _imem_read_{word,long} and _dmem_{read,write}_{byte,word,long}
> So we provide them.
They're very similar to copyin & copyout, I'll take a look at those.

>> * Some (stupid) instructions are not recomended. (Using operands below the
>>   supervisor stack -(ssp) and such)
> I'm not sure I understand this.  Are you talking about how they recomend
> not using emulated instructions while processing exceptions?  If so
> then yeah we won't.
Yes, and code like: divu.l -(sp),d0:d1 I mean who wants to use operands below
the current stack???

> I guess my assumption was correct, there is no big difference.  I suggest
> that *when* you get your 060 card look at the following:
> 
> 1) amiga_init: simply add 060 to the 040 checks (if's and #ifdef's) no
> other changes should be needed. (i.e. 040 || 060)
OK.

> 2) add a test 060 and branch if not, else clear branch-cache near label
> Lres[12] in locore.s
OK.

> 3) add apropriate conditional code to _buserr: in locore.s also may need
> to adjust the frame structure used currently in C.
OK.

> 4) incorporate 060sp.
> 
> This is all that should be needed.
> 
> Since this is like 2 days work at most I suggest you wait until you have
> the 060.
I'll do most of the work up ahead anyhow. I'll add the following:
M68060 + M060SP in the config files + #ifdefs in locore.s & amiga_init.c
cpu060 to do runtime checks and a new value for mmutype (If it is needed
otherwise I'll use the same value as the 040). To ease the transition the
cpu040 will also be set if the processor is a 060. That way I only have to
add special 060 statements where they're realy needed.

> P.S. I looked at the 060 format 0x07 frame and it doesn't have any of
> the write-back stuff.  I don't claim to understand why the 040
> uses it and why the 060 doesn't. You'll probably need to understand this
> although it may not involve any extra code.
I'll look into that as well.

P.S. The fsave/frestore frame is diffrent in the 060. I don't think this'll
be any problem. If need be I'll extend the appropriate buffer.