Discrete 6502 Processor Sucked Into Linux By A BeagleBone

Often when we see projects using embedded Linux we think of them as not being hardware hacks. But this is a horse of an entirely different color. [Matt Porter] is leveraging a little known feature to directly access a 6502 processor from inside a Linux environment. In other words, this hack lets you write code for a 6502 processor, then load and execute it all from the same Linux shell.

The project leverages the best parts of the BeagleBone, which is an ARM development board running embedded Linux. It’s got a lot of GPIO pins that are easy to get via the boards pin sockets. And the design of the processor makes it fast enough to work well as a host for the 6502 chip. Which brings us back to how this is done. The Linux kernel has support for Remote Processors and that’s the route [Matt] traveled. With everything wired up and a fair amount of kernel tweaking he’s able to map the chip to the /dev/bvuart directory. If you want all the details the best resource is this set of slides (PDF) from his talk at Embedded Linux Conference – Europe.

This is one way to get out of all that hardware work [Quinn Dunki] has been doing to build her own computer around a 6502 chip.

[Thanks Andrew via Dangerous Prototypes]

5 thoughts on “Discrete 6502 Processor Sucked Into Linux By A BeagleBone

  1. Very interesting! I imagine the Beaglebone could emulate the 6502 faster than the 14MHz the chip is running at. But of course that’s not the point! I may have to pull out one of my Z80s and see what can be done with it. After I figure out what exactly a “PRUSS” is! :-)

    1. PRUSS is an I/O coprocessor for the main ARM CPU. The BeagleBone’s SoC has two of them. Think of it like using an Arduino to offload real time tasks from a PC, or dedicating a couple of cogs to bitbanging a peripheral in a Propeller.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.