Wow, what a journey; to start with the Beaglebone finding big-endian worked fairly well to find out its completely broken on Buffee and that big endian is completely unsupported on the AM3358, something the people at TI will repeat in their support forums again, and again, and again. But it’s all a lie and big endian does work … perfectly. So what’s up?
As a follow-up to my original thoughts on open sourcing, I am pleased to announce that we’ve reopened the source code for PJIT as well as merged and closed the private repository. The one and only repository for PJIT can be found here.. PJIT will remain open-source forever but also only non-commercial use.
With Buffee sort of languishing in the wind, I took a few hours to slap together another board to ensure my PCB routing skills don’t get rusty. Instead of a CPU accelerator or anything like that, this is going back to our original Amiga Replacement Project and prodiving DIP and PLCC sides replacements for all the custom and insanely difficult to get custom chips. First up is Gary, or as we call him, Gary Zander.
The idea of open source is a nobel one and as long as everyone “plays fair,” it works. It was our genuine hope that people could learn from our design – we thought PJIT has some rather novel ideas in it that could be a benefit to everyone. How was this made? How does it work? We thought people could maybe try and make their own boards, but this is a slippery slope – what if someone wants to make 20 for their friends out of their own funds? What if someone has no regard for our license and simply uses our work to make their own Buffee?
I have many words for the last year, none of which I can really express here. Suffice to say that this “chip shortage” has pushed back retail production run into January – at least at this point – I believe nothing anyone’s saying until I have boards physically in hand. Despite the delays, our beta testing is going along well, but very, very slowly. We’re still waiting for the last of the beta boards to come in before we begin shipping, and I absolutely appreciate everyone’s patience with this. Software is coming along nicely and we have good timing on the bus and can read and write, so that’s progress!
I’m not one to brag, but when I mess up, I mess up like no one else. But before I start committing seppuku, let me tell you the good news: we got the beta’s in and managed to power them up. And wow, do they look gorgeous!
With a ton of testing behind us, we’ve pushed on to the second round of Buffee boards and have officially submitted the order for sixty beta Buffees. While we had hoped that the alpha version would just work, we were not so lucky and Buffee v0.5 has a new little friend – a GreenPAK SPLD (Simple Programmable Logic Device) and we’ve ensured that on this version every signal that is not bound to the SPLD, is bound to the PRU (Programmable Realtime Unit) which is almost as good as the SPLD, just not quite as fast. This doesn’t mean the alpha boards are useless though!
In the last part of the series we put PJIT up against the state-of-the-art 68000 emulator for ARM that used the traditional interpreter style of emulation, Cyclone 68000, and found PJIT to be rather compelling. But one cannot ignore the raw performance of a true JIT.
Just a small update; we’ve been working hard at getting the core of PJIT ready to boot up before receiving our first batch of boards. Getting the AM3358 up and running without the benefit of JTAG has been … interesting. To date we have:
- working clock reconfiguration
- set up of all the caches and mmu
- a timer by which we can measure performance
- our first runs of PJIT with the BogoMIPS test
Ooh it’s been a busy month! But we have our first boards in ready to get all populated. We did have one small snafu with the wrong footprint for our Flash memory that might put us a little behind schedule, but nothing world-ending. Despite this, I think this looks really good for our first, officialy production boards.
There seems to be a bit of confusion with Buffee and perhaps that’s my fault. My father’s favourite saying is, “a word to the wise should suffice” and to me, that always meant be terse and to the point and people should figure it out. I’ve mastered the art of being terse to the point of sometimes not saying much at all – so I’ll say it here, loud and clear – the Buffee supports everything your Amiga can do right now.
This is the first part is a three part series that will be doing a bit of a deeper dive into the mechanics of PJIT in contrast to existing emulation technologies. Part two will be “Why is PJIT Slow” and will compare PJIT to bleeding edge 68K JIT engines like Emu68 and UAE. Part three will be “Why is PJIT Quicker” and will explain the overhead of JIT and why PJIT doesn’t have this problem.
Well, have to admit, I had missed a lot of minor design issues, but now that we’ve gone through the complete checklist and have finished our first professional review cycle, I can confidently say we’re very near getting our first boards made. I even managed to shrink the board a little bit so that it fits precisely into a 64 DIP socket with zero overhang! A quick run down of all the major bits:
I have to admit, I was getting close to full burnout, but the Yuletide break has managed to give me a little more energy than I had before and I’ve had a pretty productive couple of weeks.
Well, 2020 has just flown by. I’m sure I’m not alone in saying good riddance. It’s the year that broke the world and I sure hope that when we start rebuilding, that we don’t make all the same mistakes.
So I’ve had a few people ask why PJIT and not leverage something else like Emu68. Is there really room in the fairly small market for two 68000 to ARM JIT engines for the Amiga? Well, of course I think so and here’s why.
Alright, looks like I’m all set up! Welcome to my new blog! I’ll update this weekly at a minimum focussing on the progress of my various projects including PJIT and the Buffy Acellerator. What is PJIT and Buffy you may ask? Glad you asked.