68060 board for the NeXT slab

NeXT Computer, Inc. -> NeXT Work Logs

Title: 68060 board for the NeXT slab
Post by: degs on December 28, 2013, 03:04:47 PM
I'm making a 68060 board as a replacement for the 68040.  The schematics are finished, but there's a few software curiosities that I am trying to iron out.
( http://nextretro.blogspot.com/ is my work log, and the files are in svn: https://code.google.com/p/nextretro/)  I have some ideas how to handle some of the software issues in hardware, but I would rather not.

The PTEST instruction does not exist on the 060, and it might not be used in the 040; however, I cannot seem to get one of the ROMs off the site to disassemble.  Does anyone have this?  If PTEST is used in the ROM, I believe that I have a fix for it.  

The other question is if anyone has tried to make a custom interrupt.  Some of the other potential issues can easily be handled by interrupts and a few traps.   I have no idea if anyone has tried to do this in the NeXT kernel, but as far as assembly, it's straight forward.

Any information regarding PTEST or kernel hacking interrupts would be greatly appreciated.

--degs
Title: 68060 board for the NeXT slab
Post by: jroark on December 28, 2013, 03:24:06 PM
very cool! Do you think the same upgrade would work on a 040 Cube?
Title: 68060 board for the NeXT slab
Post by: degs on December 28, 2013, 08:13:53 PM
Quote from: "jroark"very cool! Do you think the same upgrade would work on a 040 Cube?

Well, I don't know.  I've never seen an 040 cube.  I need to make everything "fit" in the slab.   If you can point me to an 040 cube motherboard picture and denote where the "missing pin" is on the 040 socket for orientation, I can see if I can get them both to fit.

I also haven't checked if there are 040 cute schematics in the archives to see if it has a muxed bus like the slab.  I'll try to make it physically universal.
Title: 68060 board for the NeXT slab
Post by: andreas_g on December 29, 2013, 03:34:46 AM
Quote from: "degs"The PTEST instruction does not exist on the 060, and it might not be used in the 040; however, I cannot seem to get one of the ROMs off the site to disassemble. Does anyone have this? If PTEST is used in the ROM, I believe that I have a fix for it.

I just tried to check this on Previous (Emulator). Obviously the ROM does not call PTEST, but the kernel of course does (emulating 68040 NeXTcube, ROM 2.5 v66, NeXTstep 3.3).
Title: 68060 board for the NeXT slab
Post by: jroark on December 30, 2013, 02:05:50 PM
Are you sourcing new 68060s? I've got a couple NOS

MC68EC060RC60
MC68EC060RC66

but they don't have an FPU or paged MMU

and one or two MC68LC060RC66 (no FPU) soldered to Nortel boards

There seem to be a few XC68060RC50As on eBay for ~$80-$200, however 68060s seem to be pretty hard to find. Especially the 60-75mhz versions.
Title: 68060 board for the NeXT slab
Post by: degs on December 31, 2013, 07:28:24 AM
Quote from: "jroark"Are you sourcing new 68060s? I've got a couple NOS
MC68EC060RC60
MC68EC060RC66

I have two new 68060s at 50MHz and the impedance matched sockets for them.  If I this works, I will make a run of boards.  The 68060 will be the limiting factor in producing a number these boards;  however, I am pretty sure that I can get some more.  I'm just hoping to get *one* working prototype at this point.
Title: 68060 board for the NeXT slab
Post by: jroark on December 31, 2013, 10:42:03 PM
Here is a 68060->68040 adapter

(http://www.emulation.com/catalog/off-the-shelf_solutions/production-test_adapters/upgrade_motorola/)
Title: 68060 board for the NeXT slab
Post by: degs on January 01, 2014, 06:08:09 AM
Quote from: "jroark"Here is a 68060->68040 adapter

The stock "adapters" will not work, I am sorry to say.  The NeXT uses a multiplexed bus.   Unless the adapters handle all of the glue logic required.  I'll check it out.
Title: 68060 board for the NeXT slab
Post by: domiel on January 04, 2014, 06:28:21 AM
Sounds like a fun project but perhaps you should consider using an FPGA instead?

A few people seem to have already gone down this path for other 68k based machines:

http://www.inertial.biz/index.php?title=VC68040

http://amigabillprojects.wikispaces.com/FP68060


http://propeller.wikispaces.com/pProp040
(not quite the same but interesting none the less)
Title: 68060 board for the NeXT slab
Post by: degs on January 10, 2014, 11:37:11 AM
Quote from: "domiel"Sounds like a fun project but perhaps you should consider using an FPGA instead?

This would be a perfectly fine approach, but I chose not to go down it due to time, and power. The 68040 is close to a nightmare due to compatibility and the MMU/FPU.  Can it be done?  Of course!  Do I have the time to do it?  No.  I actually have a 68EC040 VHDL description somewhere from a previous project and it didn't have that much of a speed increase, and it did not have a MMU/FPU in it.  Granted, it was an ancient 5V part.   Also, if you want the cache, you will quickly run out of slice space and power.  

If I currently had students that wanted a project, I would throw them at it, but I'm out of the uni currently.  Perhaps in the future we'll see something that is a soft core.  Actually, if I had a verified, complete description, I probably could get a grant for a run of them as one-offs on 130nm shuttle runs because I have the tools target the 130nm libraries.  There are still some applications that use 68040s out there.

I wish that I was wealthy.  It would cost 100k in masks and then about $1000 per wafer to make a cache heavy 68040 in a modern process.  That'd be about 60 IC per wafer at least.   There are some things to do with 100k that's sexier than getting a Ferrari.
Title: A few changes, 68040 now too.
Post by: degs on January 21, 2014, 03:42:31 PM
So, as with most of my projects, I get scope creep.  It occurred to me that I can make the adapter board take a 68040 or a 68060, with just a few wiring changes.  In that way, one can run a 68040 at 50Mhz without touching the the NeXT board and more people can use my work. (My current design takes the bus-clock and divides it by 2, and then you can multiply that up in 1/2 steps up to 6.)  Also, this allows me to test the hardware in a better way since I will have to do some hot patches to the kernel for the 68060 (sorted this one out too I think).

It also occurred to me that I can put an external cache on this.  I'm still working on the schematics, but the block diagram looks promising.  The MUXed NeXT bus sort of ruins my groove here because the computer is designed in a way completely differently from how I would do it, but it was designed by really bright people so they obviously knew what they were doing.

On the notion of caching, does anyone know where there is a NeXTStep memory map floating around?  I have been told that the maximum RAM in the NeXT is 128megs, but does anyone know where that would sit in the address space?  Also, do all NeXTs share the same address space, or is it different for different systems?
Title: 68060 board for the NeXT slab
Post by: andreas_g on January 22, 2014, 12:42:59 AM
Quote from: "degs"On the notion of caching, does anyone know where there is a NeXTStep memory map floating around? I have been told that the maximum RAM in the NeXT is 128megs, but does anyone know where that would sit in the address space? Also, do all NeXTs share the same address space, or is it different for different systems?

For the emulator project i also needed the memory map for RAM. You can take a look here (the relevant post is towards the end of the page):
http://www.nextcomputers.org/forums/viewtopic.php?t=2642&postdays=0&postorder=asc&start=165

It is different for different systems. I hope the above link helps.
Title: equivalent cc version for NeXTStep?
Post by: degs on July 07, 2014, 09:20:33 AM
Hello everyone.  I'm still plugging away at this project, but I ended up getting swamped in the world of semiconductors.

What's an equivalent gcc version for whatever cc is used on NeXTStep 3.3?  I have what I believe will be my final board version and I have my kernel rewrite code mostly working, but I want it to run on the NeXT as well.
Title: 68060 board for the NeXT slab
Post by: sdinet on July 09, 2014, 09:06:50 AM
I have a NeXTstation 68040 running at 50mhz (overclocked), let me know if you'd like info on how it was done, I am happy to help.
Title: 68060 board for the NeXT slab
Post by: gtnicol on July 09, 2014, 12:47:09 PM
I don't know if pyro/nitro boards might be of any help, but the offer is there...
Title: 68060 board for the NeXT slab
Post by: Nitro on July 10, 2014, 11:42:41 PM
Very nice work, this sounds promising.  I have a new/old stock 68040 40mhz (http://www.nextcomputers.org/webpics/nitro/CPU/68040_L88M.jpg) with the L88M mask (http://www.freescale.com/files/shared/doc/pcn/PCN8219.htm) (die shrink) that I'd like to try at 66mhz.

I don't have a NEXTSTEP 3.3 machine running at the moment, but according to this post (http://gcc.gnu.org/ml/gcc-help/2012-03/msg00069.html) NEXTSTEP 3.3 originally shipped with gcc-2.5.8

gcc-2.95.3 for NEXTSTEP is available in the archives
http://www.nextcomputers.org/NeXTfiles/Software/NEXTSTEP/Developer/Languages/C/gcc.2.95.3.N.b.tar.gz

Hope that helps.
Title: Overclock vs. FPGA
Post by: gborgns on July 11, 2014, 03:10:47 AM
My original design of the 50MHz Turbo Color slab (same one sdinet mentioned) is still online here at: http://www.nextcomputers.org/forums/viewtopic.php?t=56

66MHz is probably beyond the clocking ability of the legacy NeXT motherboards and the above mentioned modification (although I never tried it).

I would really be interested in an FPGA version of the 68040. It has the greatest possibility of increasing the CPU performance of the NeXT platform (past 50MHz) with minimal (or no) changes to the motherboard.  I can even imagine a transparent, multiprocessor with a cache memory design, that would increase system performance substantially.

The design would be difficult (since the NeXT architecture does not use the "bus relinquish" that would allow the CPU to process extra cycles between bus cycles) but not impossible (FPGA's are really fast now).
Title: 68060 board for the NeXT slab
Post by: degs on July 12, 2014, 11:30:22 AM
Thanks for the information and offers of help everyone!  I just need to confirm my board makes sense and then send it to be fabricated.  I'll post pictures of the board layout when I send it to be fabbed.  I'm hoping to get this right on the first time through.

Regarding the NeXT, one could probably make a really fast 68040 on a modern FPGA, but the IC really is a mess.  The best gain you would get would be from just adding cache.   My current project is making an asynchronous FPGA on 14nm, and I think that I can justify doing the VHDL for a 68040.  If that goes forward, that will be really exciting.

I really wish Apple would release the NeXTStep 3.3 source code, and then we'd really have good options for interesting hardware and software updates.
Title: 68060 board for the NeXT slab
Post by: t-rexky on July 12, 2014, 09:50:13 PM
Quote from: "degs"I really wish Apple would release the NeXTStep 3.3 source code, and then we'd really have good options for interesting hardware and software updates.

I have tried many, many times, so very hard to get a positive response out of Apple.  Most recently Rob Blessin also got involved and helped pass the letter that I drafted on behalf of the community to the right senior executives at Apple.  Unfortunately we never even received an acknowledgement of receipt, let alone any other answer.

It is a real shame, but I am convinced that the real reason is the legal status quo of Unix ownership and licensing.  The worst part of it is that back in the 90s one could purchase all source code from NeXT (excluding the black hardware specific drivers).  And now it is all "lost" in the Apple vaults.

I would love to try again, but unless someone personally knows a good contact at Apple I think the chances are pretty much zero...
Title: 68060 board for the NeXT slab
Post by: tomaz on July 19, 2014, 10:49:47 AM
Quote from: "degs"
Quote from: "domiel"Sounds like a fun project but perhaps you should consider using an FPGA instead?
I wish that I was wealthy.  It would cost 100k in masks and then about $1000 per wafer to make a cache heavy 68040 in a modern process.  That'd be about 60 IC per wafer at least.   There are some things to do with 100k that's sexier than getting a Ferrari.
Why don't you just make a few die using an MPW run? That will cost you an order of magnitude less. Do you need more than a handful of devices?
Title: 68060 board for the NeXT slab
Post by: degs on July 23, 2014, 09:32:44 AM
Quote from: "tomaz"Why don't you just make a few die using an MPW run? That will cost you an order of magnitude less. Do you need more than a handful of devices?

The MPW runs usually don't have my preferred mask options, which is why I seldom use MPW. MPWs are a perfectly good option, but the trick is getting the 5V IO in this case, and I think 130nm is the sweet spot for cost vs cache.  I usually have extra masks for the 5V drivers, which are not standard.  Of course, I could always slap it into a board and use discrete level shifters, but my current board looks to eat into the floppy space.  I guess most people would trade a floppy for a faster CPU though.

Anyway, the best path is probably to just get a HDL description of a 68040, and then I could target it to anything.  Currently, it's all just pleasant to think about. :)
Title: 68060 board for the NeXT slab
Post by: cuby on July 25, 2014, 01:02:47 AM
Quote from: "degs"Anyway, the best path is probably to just get a HDL description of a 68040, and then I could target it to anything.  Currently, it's all just pleasant to think about. :)
The TG68 core (used in the Minimig Amiga clone) has a 68020 variant (https://github.com/rkrajnc/minimig-de1/tree/master/minimig-src/). However, no MMU or FPU support so far, so building a 68030-based CPU replacement will take lots of additional work...

Building a Sun 3/50 on FPGA would be easier, since the machine used a 68020, the FPU was optional and the Sun MMU for the 68k machines is significantly less complex than the 68851 or the '030 MMU IIRC... but that won't help with NeXTstep, of course.

-- Michael
Title: Where's the alignment pin for the CPU?
Post by: degs on September 18, 2014, 05:34:05 AM
I found this picture (below), and in this orientation I assume that the missing pin on the 68040 is on the upper left.  Can someone with a socketed slab tell me if this is indeed the case?  

http%3A%2F%2Fdecroded.com%2Fimages%2FNextStationMBFull.jpg
Title: 68060 board for the NeXT slab
Post by: t-rexky on September 18, 2014, 01:51:31 PM
On a TurboColor the keying for the missing pin is on the bottom left in the orientation you are showing.  The top left with the dot and / or gold square markings designates pin #1.  I think the non-turbo machines are identical in terms of orientation.
Title: 68060 board for the NeXT slab
Post by: degs on September 18, 2014, 04:10:00 PM
Quote from: "t-rexky"On a TurboColor the keying for the missing pin is on the bottom left in the orientation you are showing.  The top left with the dot and / or gold square markings designates pin #1.  I think the non-turbo machines are identical in terms of orientation.
Thanks,  the 68040 document shows the "bottom view" of the socket, and it's messing with my head a bit.    I asked after I realized that my had made my sockets upside down. :/  There's nothing like having something physically in front of you for a reality check.
Title: 68060 board for the NeXT slab
Post by: jroark on December 12, 2014, 08:25:36 PM
I've read on some of the Amiga forums that many, if not most, of the 68060s available for sale online are fakes. One way to get a legit 68060 is to buy an old MVME board with a 68060. They can sometimes be had for under $100, and are usually socketed.

MVME-177 68060 @ 50mhz
MVME-172 68060 @ 60mhz
Title: 68060 board for the NeXT slab
Post by: degs on December 13, 2014, 03:25:49 PM
Quote from: "jroark"
MVME-177 68060 @ 50mhz
MVME-172 68060 @ 60mhz

That's a good idea for a source.

I expect to get my boards out over Christmas for this project.  I have all of the parts there, but I just need to confirm my footprints and get it out for fab.   I've been slammed by a 14nm run that is like a horror movie, but that's what you get at the bleeding edge.
Title: 68060 board for the NeXT slab
Post by: jvernet on December 18, 2015, 09:01:29 AM
Anybody know something about that:
Adapter Kit 68040/68060 (http://www.ebay.fr/itm/Complete-adapter-kit-68040-to-68060-Commodore-Amiga-Next-Apple-/252217457180)?

"Should work on NeXT"
Title: 68060 board for the NeXT slab
Post by: pentium on December 18, 2015, 01:40:31 PM
Quote from: "jroark"I've read on some of the Amiga forums that many, if not most, of the 68060s available for sale online are fakes. One way to get a legit 68060 is to buy an old MVME board with a 68060. They can sometimes be had for under $100, and are usually socketed.

MVME-177 68060 @ 50mhz
MVME-172 68060 @ 60mhz

I'd take anything someone on Amibay or similar said with a grain of salt. They've been known for not doing their homework before, plus the communities are generally awful.
When in doubt, buy off ebay and use Paypal's buyer protection to get your money back if they try to give you the slip.
Title: 68060 board for the NeXT slab
Post by: jvernet on December 21, 2015, 04:22:48 AM
My previous post do not work...

Quote
Anybody know something about that:
Adapter Kit 68040/68060 (http://www.ebay.fr/itm/Complete-adapter-kit-68040-to-68060-Commodore-Amiga-Next-Apple-/252217457180)?

"Should work on NeXT"
Title: 68060 board for the NeXT slab
Post by: barcher174 on December 21, 2015, 12:46:14 PM
Wow, wish I would have seen this.
Title: 68060 board for the NeXT slab
Post by: jvernet on December 23, 2015, 04:33:18 AM
New Ebay iTem:
Here (http://www.ebay.fr/itm/Complete-adapter-kit-68040-to-68060-Commodore-Amiga-Next-Apple-/252222140089?hash=item3ab99c6eb9:g:h8AAAOSw5VFWO1k2)
Title: 68060 board for the NeXT slab
Post by: jroark on December 23, 2015, 08:00:48 PM
Quote from: "jvernet"New Ebay iTem:
Here (http://www.ebay.fr/itm/Complete-adapter-kit-68040-to-68060-Commodore-Amiga-Next-Apple-/252222140089?hash=item3ab99c6eb9:g:h8AAAOSw5VFWO1k2)

That was quick. Did someone here get it?
Title: 68060 board for the NeXT slab
Post by: barcher174 on December 23, 2015, 08:04:58 PM
Not me. :(
Title: 68060 board for the NeXT slab
Post by: pentium on December 26, 2015, 11:02:24 AM
Looking at the other stuff the guy has for sale, I'm sure someone in the amiga crowd swooped in before any of us even knew what was happening.
Title: 68060 board for the NeXT slab
Post by: chrisrot on December 26, 2015, 02:53:45 PM
Quote from: "jvernet"Anybody know something about that:
Adapter Kit 68040/68060 (http://www.ebay.fr/itm/Complete-adapter-kit-68040-to-68060-Commodore-Amiga-Next-Apple-/252217457180)?

"Should work on NeXT"
I know the guy who developed this adapter. Cosmos, the guy who sold it on ebay, is not the developer. Cosmos sells a lot of stuff others have developed (which is not bad by itself). He has a "mixed" reputation in the Amiga scene.
I don't know what information Cosmos has to claim "Should work on NeXT", but I don't think it will work out of the box. E.g. a MC68060 with this adapter does not work on an Amiga without patching its system software. The 68060 is not 100% software compatible to the 68040 because it lacks some instructions which have to be emulated in software. There are other differences as well which the operation system has to handle.
I'm pretty sure that one has to patch at least the ROM monitor, probably the Mach kernel, too.

Perhaps a more promising approach is the  Apollo Core (http://www.apollo-core.com/). They claim to be 68040 compatible with a much higher speed. Let's see if they deliver.
Title: 68060 board for the NeXT slab
Post by: degs on December 28, 2015, 08:04:45 PM
Quote from: "chrisrot"
Perhaps a more promising approach is the  Apollo Core (http://www.apollo-core.com/). They claim to be 68040 compatible with a much higher speed. Let's see if they deliver.

The Apollo core looks pretty good.  Every adapter that I have ever seen for the 040/060 has not had a multiplexed data bus.   You need *a lot* of logic just to get them bus compatible.

I keep meaning to get back to this, and I have been a bit, but I've been making FPGAs recently and I spend most of my free time writing LISP. :/

Go to top  Forum index