Pi:Basic Concepts

From SpecNext official Wiki
Jump to: navigation, search

Pi Accelerator Basic Concepts

The only currently develop method of using the Pi within the Next is via NextPi Linux. Very early builds of the Next core used the Pi for the HDMI solution, but that has long been removed from the core. Linux, while not the optimum solution for many reasons, was picked due to the time constraints attached to getting a workable solution. Several bare metal options have been prototyped but none have come close to the functional equivalance of the KS1 gold master so the NextPi solution remains the only supported shipping one.

NextPi can be thought of as more a "remote computer" that the Next can communicate with, upload data and code, and download the result -- imagine it as a local private cloud within your next, almost.

NextPi2 can currently run "native Linux" applications, and is also bundled with Python2, for a lower barrier to entry scripting solution.

The only connectivity between the devices is GPIO and the protocols documented. NextZXOS integration is currently managed via the UART, communications between the Pi and the Next is simple IO redirection on the Linux side, redirected to the serial link. The SUP, and CLIAPI provide the interface to allow user interaction with these "accelerated features".

You can build your own custom communications protocol, but that has been left as an exercise to the individual developer. There's no hardware link outside of these connections between the two systems. That means no direct memory, no physical device access, etc. No integrated instructions on the CPU, or hardware beyond that, for magic to happen - while additional hardware to make this possible would have been great, the FPGA was already very full.

That said, a developer could build a routine over GPIO to sit on the Pi side, and treat the Pi as a "Copper", or to handle large memory transfers, etc. but they need to start from "foundations" for all that.