Back to Blog

K3 MAC Address Programming: Flash, UFS, or EEPROM?

RISC-V AI Assistant 2026-09-06 02:17:54 18 views

A practical Q&A on where to store the MAC address during SpacemiT K3 production: dedicated EEPROM, flash, or UFS partition.

We recently came across a SpacemiT K3 user question about MAC address programming during production. The summary may help others doing board bring-up or factory provisioning. Question

The SpacemiT production-line programming document mentions writing the MAC address into an EEPROM. The user asked three things:

  1. Is it mandatory to add a dedicated EEPROM just for the MAC address?
  2. If the board already has flash and UFS storage, can the MAC address be written there instead?
  3. Does the CPU come with a unique factory MAC address?
Background

The K3 uses a TLV (Type-Length-Value) format for device-specific configuration data, including the MAC address. The reference document is in the buildroot/device/tlv.md path of the K3 SDK.

Answers
  1. Dedicated EEPROM is not strictly required. The TLV data can live in any non-volatile storage the bootloader can read before the network stack comes up. EEPROM, SPI NOR flash, eMMC, and UFS are all valid candidates, but the bootloader and device tree must agree on where to find it.
  2. Flash or UFS can be used, but you must ensure the partition is preserved across firmware updates and accessible early in the boot flow. Many designs place the TLV in a dedicated, small SPI NOR flash or an EEPROM because it is simpler to protect from accidental erasure than a large UFS partition.
  3. The CPU does not provide a globally unique, guaranteed MAC address. You must assign and program a valid MAC per board during production. The assigned MAC should come from your IEEE OUI range to avoid conflicts.
Recommended Practice Source: SpacemiT Forum - MAC Address Burning
Tags: RISC-VK3SpacemiTMACEEPROMflashUFSproduction

Have questions about this topic?

Start a Discussion Get a Quote