This is quite an interesting post to comp.sys.next on a possible 68060 upgrade for NeXTs on Simson Garfinkel's web site:
https://simson.net/ref/1994/NeXT060upgrade (
https://simson.net/ref/1994/NeXT060upgrade)
Adapters like the one mentioned have been made in small quantities for Amigas. Here's an open-source one (
https://github.com/reinauer/68040-to-68060), here's one on PCBway (
https://www.pcbway.com/project/shareproject/68040_to_68060_adapter.html), here's a blog post about some of them (
https://amigafun.wordpress.com/2014/09/26/amazing-classic-amiga-project-cheap-68040-68060-adapters/), and here's a slightly more pessimistic Reddit thread specifically about the challenges that would be posed on NeXT hardware (
https://www.reddit.com/r/retrobattlestations/comments/48hecr/has_anyone_upgraded_their_68040_based_next_to_a/)...
Following the links from that Reddit thread, we have a blogspot blog about making an 060 adapter from a decade ago (
https://nextretro.blogspot.com/) and our own old threads:
68040 - 68060 board (
https://www.nextcomputers.org/forums/index.php?topic=3855.msg22232#msg22232)
68060 in NeXTs? (
https://www.nextcomputers.org/forums/index.php?topic=4637.msg27035#msg27035)
68060 board for the NeXT slab (
https://www.nextcomputers.org/forums/index.php?topic=3349.msg18667#msg18667)
Some notes:
- bpdegnan (degs) started the blog and the top thread mentioned here. Neither reached a working prototype stage. Probably the result of that work would have been the same as the adapters the Amiga community is using.
- The Reddit thread worries that the 060 may not have fully-compatible behavior. The Amiga people had to write a new kernel module to attain usability.
- The Previous emulator didn't exist back then—it does now. The UAE core inside it is extremely accurate. We can probably test system stability/viability using a simulated 060 before anyone actually goes through with buying/building a real adapter.
Quote from: Rhetorica on March 25, 2025, 01:40:03 PM- The Previous emulator didn't exist back then—it does now. The UAE core inside it is extremely accurate. We can probably test system stability/viability using a simulated 060 before anyone actually goes through with buying/building a real adapter.
(and by "we" i mean
@andreas_g ;))
Quote from: Rhetorica on March 25, 2025, 01:40:03 PMThe Reddit thread worries that the 060 may not have fully-compatible behavior. The Amiga people had to write a new kernel module to attain usability.
The 060 is definitely not fully compatible and only implements a subset of the 68040 instructions - see my posting from 2021 (
https://www.nextcomputers.org/forums/index.php?topic=4637.msg27038#msg27038).
For the OS part, we could probably write sort of a hypervisor that catches and emulates unimplemented instruction exceptions (btw., did anyone ever write a hypervisor for 68k machines?).
However, we would also need to update the ROM firmware for 060 compatibility. This obviously can't be run under a hypervisor on a real machine.
I think that writing completely new 060 firmware for NeXTs would be a major challenge. Although the firmware doesn't do that much, it performs many critical operations to initialize the system.
Reverse engineering and adapting a recent version of the ROM firmware would also be quite a lot of work. 64kB or 128 kB of binary code doesn't sound like a lot, but this is the size of the original Mac 128/512k resp. Mac Plus ROM, which included large parts of the original Mac System...
Quote from: cuby on March 25, 2025, 05:10:13 PMThe 060 is definitely not fully compatible and only implements a subset of the 68040 instructions - see my posting from 2021 (https://www.nextcomputers.org/forums/index.php?topic=4637.msg27038#msg27038).
I think that writing completely new 060 firmware for NeXTs would be a major challenge. Although the firmware doesn't do that much, it performs many critical operations to initialize the system.
Reverse engineering and adapting a recent version of the ROM firmware would also be quite a lot of work. 64kB or 128 kB of binary code doesn't sound like a lot, but this is the size of the original Mac 128/512k resp. Mac Plus ROM, which included large parts of the original Mac System...
Hmm I wonder if some one has uploaded some source code which would do the heavy lifting for 80% of this :) Too be honest I haven't tried compiling any of that source code release so I can not comment on that. I know with Darwin 0.1/0.3 release there was quite a few missing headers, the
machdep directory which was not released with NS3.3 or OS4.2 Developer unless that directory was introduced with Rhapsody ???
I'm probably getting the details wrong here, but the Amiga uses 68060.library (either from og accelerator manufactures or the popular mmulibs package on aminet) to redirect missing fpu instructions to libraries that emulate the routines.
As has already been said, a modified exec routine in the Amiga's kickstart rom disables the 68060's fpu at boot (otherwise the machine crashes on start and enters an infinite boot loop) which allows the boot process to complete. The fpu is then re-enabled during the machine's workbench startup (usually in startup-sequence) by the setpatch program.
Quote from: pTeK on March 26, 2025, 12:18:32 PMHmm I wonder if some one has uploaded some source code which would do the heavy lifting for 80% of this :)
If we're talking about the same uploaded code :), that one supports 68040 NeXTs but does not seem to be the latest version (which is probably Rev_2.5_v66 for non-Turbo 040 machines)? But yes, using this would definitely be easier than starting from scratch and it might help to find the 68060 dependencies...
Quote from: trixster on March 26, 2025, 01:44:13 PMa modified exec routine in the Amiga's kickstart rom disables the 68060's fpu at boot
That might be simple enough if it's the only modification required. It's amazing to see how much work the Amiga community invested to keep their machines alive...
Isn't chrisrot's answer from the first link in the second post a bit of a show stopper?
"- NeXT uses the multiplexed bus mode of the 68040 which the 68060 does not support."
Quote from: trixster on March 27, 2025, 05:53:21 AMNeXT uses the multiplexed bus mode of the 68040 which the 68060 does not support.
Oh darn, good catch! That sounds like a working adapter would be quite a bit more complicated... It's probably easier to implement the NuBus interface that way (it's also multiplexed), but I wonder how much performance NeXTs lose due to using the multiplexed bus mode.