include/trampoline | ||
native | ||
qemu | ||
.gitignore | ||
CMakeLists.txt | ||
README.md |
MCPI Runtime
Fact: MCPI is a 32-bit ARM binary.
Another fact: Most modern computers do not use 32-bit ARM and therefore cannot run MCPI natively.
Solution: This project allows MCPI to run on modern computers.
How
This project works differently depending on the host system's architecture.
64-Bit x86 Host
On this platform, a patched version of QEMU is used.
QEMU emulates ARM code so MCPI can run on x86 hardware. And the patch adds a system-call which allows MCPI to run graphics code on the host. This prevents the need for emulated GPU drivers.
64-Bit ARM Host
QEMU is not necessary on this platform because it can already run 32-bit ARM code natively.
Instead, the runtime is implemented as two processes: a parent and a child. The child becomes MCPI and can send graphics commands to the parent. And because the parent is 64-bit, 32-bit drivers are not needed.