TamaGo – bare metal Go for ARM SoCs
TamaGo is a project that aims to provide compilation and execution of unencumbered Go applications for bare metal ARM System-on-Chip (SoC) components.
The projects spawns from the desire of reducing the attack surface of embedded systems firmware by removing any runtime dependency on C code and Operating Systems.
The TamaGo framework consists of the following components:
- A modified Go compiler which extends GOOS support to the tamago target, allowing bare-metal execution for ARMv7 architecture.
- Go packages for SoC driver support.
- Go packages for board support.
The modifications are meant to be minimal for both the Go compiler (< ~4000 LOC changed) and the target application (one import required), with a clean separation/architecture from the rest of the Go compiler.
A strong emphasis is placed on code re-use from existing architectures already included within the standard Go runtime, see Internals.
Both aspects are motivated by the desire of providing a framework that allows secure Go firmware development on embedded systems.
Download && Use
Copyright (c) F-Secure Corporation