Official Turing Pi BMC firmware
Welcome to the new home of the Turing Pi firmware. The Turing Pi is a compact AI & edge computing cluster purposed to run cloud stacks and AI inference at the edge. Find out more on our website.
The firmware is based on a Linux 5.4 kernel and hosts a web interface with a REST API to control and manage the board. The packages bmcd and tpi are part of the firmware and facilitate most of this functionality. We recommend reporting issues using the current BMC-Firmware repository for visibility reasons.
BMC chip specs
- CPU Allwinner T113-S3 (ARM Cortex-A7)
- 128 MB DDR3 RAM
- 128 MB SPI NAND flash (MX35LF1GE4AB)
- EEPROM (24C02C)
- 3 port Gigabit Ethernet Switch (RTL8370MB)
- Ethernet PHYceiver (RTL8201F-VB-CG)
- SD card slot
Install firmware
There are two ways to upgrade the firmware on your current board.
- Using the PhoenixSuit. It allows you to write an entirely new image on the board.
- Using an OTA package. This package can be uploaded to the board via the web UI. (This method does not update the kernel).
The required images can be found in one of our release packages. get the latest here.
On our website you can find an elaborate manual on performing an update using both methods.
Setup build environment
Using Docker
In the root of our repository there is a dockerfile that can be used to build a development container. It has all the dependencies needed to build the firmware. We would recommend that you go through the official docker documentation. But if you want to quickly build and run it, execute the following commands in the root of your repository:
# build the docker image
docker build . -t tp_container
# open the docker container
docker run -it -v $PWD:$PWD --workdir $PWD tp_container
Natively
Currently, only X86 Linux build hosts are supported. They are required to have the following packages installed:
sudo apt-get install build-essential subversion git-core
libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc
libxml-parser-perl mercurial bzr ecj cvs unzip lib32z1 lib32z1-dev lib32stdc++6
libstdc++6 libncurses-dev u-boot-tools mkbootimg -y
Build
To build the firmware image manually, execute the following command:
cd buildroot
make BR2_EXTERNAL=../tp2bmc tp2bmc_defconfig
make
To package up a swu (for OTA update via webui):
cd output/images/
cp -a ../../../tp2bmc/swupdate/* .
./genSWU.sh 1.0.0