Ten64 Microcontroller overview¶
Ten64 boards use an NXP LPC804 microcontroller (Cortex-M0+ based) to coordinate boot and power management, as well as certain utility functions.
The board MAC address is stored in the microcontrollers EEPROM.
Communication between the host processor (LS1088A) and microcontroller is via I2C.
The microcontroller flash is partitioned into two copies (A and B), allowing "over-the-air" upgrades through I2C.
Key MCU firmware updates¶
-
v1.1.2 - Ten64 RTM
-
v1.1.3 - fix reporting of ATX power status
-
v1.1.5 - fix ASLEEP issue exposed by component changes on Ten64 boards built >=2022 (all RevC2 boards, all RevD)
This is the minimum version these boards will run.
-
v1.2 - Introduce
bootcount
andnextbootpart
scratch registers
Microcontroller source code¶
The microcontroller source code can be obtained from the traversetech/ls1088firmware/ten64-uc-firmware repository on gitlab.com.
Building can be done with a "baremetal" ARM toolchain (arm-none-eabi
) with CMake or using NXP's MCUXpresso IDE.
Software utilities¶
ten64-controller¶
ten64-controller is included in the recovery firmware and OpenWrt builds.
Upgrading MCU firmware¶
There are two versions of each MCU firmware: one for slot A and one for slot B. This is to account for the fact that each version is executed 'in place' (XIP) from the microcontrollers flash, hence there is no memory relocation.