It’s time to unCloud and even unOS, real Bare Metal is trending!
Implementing a legacy hardware emulator/simulator on Xilinx Zynq-7000 (xc7z010) SoC ARM/FPGA using HDL to build the HAL in the FPGA PL (Programming Logic) of the SoC while the emulator/simulator code runs in PS (Processing System) ARM core. Makes it not only quick and easily portable to other SoC/FPGA platforms, flexible to reconfigure the HAL and possible to select other board depending on memory and performance requirements and other potentially customised hardware using GPIO.

Using Libmetal, Newlib and some written in combination with Xilinx XIL-routines can all syscalls be replaced to use bare metal equivalents, it requires of course quite some programming efforts to get it running, but once a library and a wrapper has been built of all needed syscalls you can reuse them for other projects.
I/O access to serial lines, network and disk are done with Xilinx routines or equivalent if other FPGA vendor is used, handle system console via UART, network if needed and legacy disks can use SD Micro or OS disk can even be located in on-board Flash memory.
RTC clock requirement can also be provided by the FPGA and BSP clock.
Commercial legacy system emulators require often management and even replacement of the host system, host OS, clumsy reconfiguration when needed, hardly any benefits compared to the original, and disruption of target system when host needs updates to keep it secure and safe unless failover virtual environment is used to keep it running. While the legacy system normally stay untouched for long times without the need of constant attention and management, and access can also be less trouble some if serial communication is used.
Then you have the security perspective, how many levels of access surface exists in modern applications hosted on OS or Cloud? By using Bare Metal you have only what is defined by the target system or the libraries compiled into the target, nothing else.
The PoC required HW diagnostics to pass and then extensive testing of the target system and applications, the target a PDP-11 in this case, a VAX and Alpha also planned as PoC turns out to be successful.
The implemented can be used is various environments, maybe best suited for an embedded or strictly secure environments, but can also fit into a general application environment, standard hardware enclosure can be used to fit into rack or embedded in customised solutions. The solution does not require any management of host environment, since there is none, it is only target system running in its own environment, as the real legacy hardware.
As the legacy emulator/simulator runs on ARM core using existing code while the HAL of the HW target is located in FPGA solves the problem of having to tailor make the bare metal to specific hardware and eliminate the driver problem, this makes the solution quite portable and easy to migrate as well, as the system can be located and boot off a SD Micro can an equivalent system be setup, programmed and ready, then power down and power up in a few seconds the new system is up and running.

The PDP-11 target passes all MAINDEC diagnostics!























