Tamago
TamaGo - bare metal Go
Install / Use
/learn @usbarmory/TamagoREADME
TamaGo - bare metal Go
tamago | https://github.com/usbarmory/tamago
Copyright (c) The TamaGo Authors. All Rights Reserved.
Introduction
TamaGo is a framework that enables compilation and execution of unencumbered Go applications on bare metal processors (AMD64, ARM, ARM64, RISCV64).
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 distribution which extends
GOOSsupport to thetamagotarget, allowing bare metal execution through a runtime/goos overlay set byGOOSPKG. -
Go packages for processor/SoC support.
-
Go packages for board support.
The modifications are minimal against the original Go compiler, runtime and the target application (one import required), with a clean separation from other architectures.
Strong emphasis is placed on code re-use from existing architectures already included within the standard Go runtime, see Internals.
The modifications maintain complete standard library support.
Such aspects are motivated by the desire of providing a framework that allows secure Go firmware development on embedded systems.
Current releases
The following links are the latest releases for the
TamaGo modified Go distribution,
which adds GOOS=tamago support to the corresponding Go version, and
TamaGo library:
Documentation
The main documentation can be found on the project wiki.
The package API documentation can be found on pkg.go.dev.
Supported AMD64 targets
The following table summarizes currently supported x86-64 targets
(GOOS=tamago GOARCH=amd64).
| CPU | Platform | CPU package | Platform package | |------------------|---------------------------------------------------------------------------|----------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------| | AMD/Intel 64-bit | Cloud Hypervisor | amd64 | cloud_hypervisor/vm | | AMD/Intel 64-bit | Firecracker microvm | amd64 | firecracker/microvm | | AMD/Intel 64-bit | QEMU microvm | amd64 | qemu/microvm | | AMD/Intel 64-bit | UEFI | amd64 | uefi/x64 | | AMD/Intel 64-bit | Google Compute Engine | amd64 | google/gcp, uefi/x64 |
Supported ARM targets
The following table summarizes currently supported ARM SoCs and boards
(GOOS=tamago GOARCH=arm).
| SoC | Board | SoC package | Board package | |-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------|----------------------------------------------------------------------------------| | NXP i.MX6ULZ/i.MX6UL | USB armory Mk II | imx6ul | usbarmory/mk2 | | NXP i.MX6ULL/i.MX6UL | USB armory Mk II LAN | imx6ul | usbarmory/mk2 | | NXP i.MX6ULL/i.MX6ULZ | MCIMX6ULL-EVK | imx6ul | mx6ullevk | | Broadcom BCM2835 | Raspberry Pi Zero | bcm2835 | pi/pizero | | Broadcom BCM2835 | Raspberry Pi 1 Model A+ | bcm2835 | pi/pi1 | | Broadcom BCM2835 | Raspberry Pi 1 Model B+ | bcm2835 | pi/pi1 | | Broadcom BCM2836 | Raspberry Pi 2 Model B | bcm2835 | pi/pi2 |
Supported ARM64 targets
The following table summarizes currently supported ARM64 SoCs and boards
(GOOS=tamago GOARCH=arm64).
| SoC | Board | SoC package | Board package | |-------------------|----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------| | NXP i.MX8M Plus | 8MPLUSLPD4-EVK | imx8mp | imx8mpevk | | Microchip LAN969x | EVB-LAN9696-24port | lan969x | lan9696evb |
Supported RISC-V targets
The following table summarizes currently supported RISC-V SoCs and boards
(GOOS=tamago GOARCH=riscv64).
|
Related Skills
node-connect
349.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
