Skip to main content
By the end of this section, you will learn how to write an image to the eMMC on the Gemstone development board.
The Gemstone operating system supports booting not only from an SD card but also from eMMC. eMMC is a high-performance and reliable storage solution. Compared to an SD card, it offers faster data access and a more robust physical structure, making it the preferred choice for many applications. This section covers two methods for writing an image to the eMMC:
  • Method 1 — USB DFU: The bootmode switch is set to USB DFU position and the image is flashed directly over USB.
  • Method 2 — Ethernet + UART: Gem Imager connects to the board over the network and writes the image to eMMC.

Method 1: Flashing eMMC via USB DFU

USB DFU (Device Firmware Upgrade) is a standard that allows the T3 Gemstone O1 to be programmed directly over USB. No SD card or running system is required.

1.1. Entering USB DFU Mode

Power off the board completely before proceeding. Attempting to enter DFU mode while the board is running may corrupt the eMMC.
1

Power off the board

Shut down the operating system gracefully if it is running, then disconnect the power supply from the T3 Gemstone O1.
2

Set the bootmode switch to USB DFU position

Set the bootmode switch to the USB DFU position using the diagram below as your reference.
The image above is provided to show the physical location of the bootmode switch on the board and is illustrative only. Refer to the diagram below for the correct switch position for DFU mode.
3

Connect the USB-C cable and apply power

Connect the USB-C cable between the board’s DFU port and your host computer, then apply power.
4

Verify DFU device is detected

Confirm the board is visible as a DFU device.
If the application named dfu-util is not installed, install it on your Ubuntu computer with the sudo apt install dfu-util command.
sudo dfu-util -l
You should see an entry with VID:PID 0451:6165 and alternate settings bootloader and SocId.
Found DFU: [0451:6165] ver=0200, devnum=9, cfg=1, intf=0, path="1-2.2", alt=1, name="SocId", serial="01.00.00.00"
Found DFU: [0451:6165] ver=0200, devnum=9, cfg=1, intf=0, path="1-2.2", alt=0, name="bootloader", serial="01.00.00.00"
If the device is not listed, repeat from Step 1.

1.2. Flashing with Gem Imager

Gem Imager handles the entire DFU flashing process automatically — bootloader files are bundled with the OS image and sent in the correct order.
1

Open Gem Imager

Launch Gem Imager on your host computer and select the board you want to use.
Gem Imager must be run as administrator to access USB devices.
2

Select an OS image

Click Choose OS and select the image you want to flash.
3

Select the storage device

Click Choose Storage and select USB DFU.
4

Write the image

Click NEXT, configure any OS customization options (see the Customization page), then click Write.
Do not disconnect the USB cable or cut power during the flashing process.
Gem Imager will:
  1. Download or read the selected image
  2. Extract the bootloader files (tiboot3.bin, tispl.bin, u-boot.img)
  3. Flash each bootloader stage via DFU
  4. Stream the full OS image to the eMMC (rawemmc alt setting)
5

Wait for completion

When flashing is complete, Gem Imager will display a success message.
6

Power off and set the bootmode switch to eMMC

Power off the board completely, then set the bootmode switch to the eMMC position as shown below.
You can monitor the boot process via UART serial connection. Default baudrate: 115200
Apply power — the board will boot from the eMMC image.
For more information on UART connection, see the Serial Port page.

1.3. Flashing with dfu-util (CLI)

This method is for Linux users working with SDK build outputs.
For more information about building images from source, refer to the SDK documentation.
First set the board to DFU mode via the bootmode switch as described in Section 1.1, then run the following commands in order. After a successful SDK build, the required files are in two directories:
FileLocation
tiboot3.binbuild/t3-gem-o1/deploy-ti/images/t3-gem-o1/
tispl.binbuild/t3-gem-o1/deploy-ti/images/t3-gem-o1/
u-boot.imgbuild/t3-gem-o1/deploy-ti/images/t3-gem-o1/
gemstone-*.imgbuild/debos/
1

Flash the first-stage bootloader (tiboot3.bin)

sudo dfu-util -d 0451:6165 -a bootloader -D tiboot3.bin -R
The board will reset and re-enumerate. Wait a few seconds, then confirm it is still detected with dfu-util -l before continuing.
2

Flash the TI SPL (tispl.bin)

sudo dfu-util -d 0451:6165 -a tispl.bin -D tispl.bin -R
3

Flash U-Boot (u-boot.img)

sudo dfu-util -d 0451:6165 -a u-boot.img -D u-boot.img -R
4

Flash the OS image to eMMC

Replace <image-filename> with your actual image file name:
sudo dfu-util -d 0451:6165 -a rawemmc \
    -D <image-filename>.img -R
This step streams the entire OS image to the eMMC over USB. Do not interrupt the transfer. This may take several minutes depending on image size and USB speed.
5

Power off and set the bootmode switch to eMMC

Once dfu-util reports success, power off the board completely, then set the bootmode switch to the eMMC position as shown below.
You can monitor the boot process via UART serial connection. Default baudrate: 115200
Apply power — the board will boot from the eMMC image.

Method 2: Flashing eMMC via Ethernet + UART

This method requires a working Linux system already running on the board (SD card or eMMC). Gem Imager’s Internal eMMC storage option is used over a network connection.

2.1. Connect Gemstone to Your Computer

After connecting the Gemstone board via USB Type-C and Ethernet, also connect a USB-TTL UART converter to UART0.
If you are using a Linux operating system, make sure to disable your computer’s wired network connection before starting the writing process.

2.2. Starting the Writing Process

Follow the steps in the Quick Start guide up to the Image Writing Process section, and select Internal eMMC as the storage device.
Then, click NEXT, configure the necessary settings, and begin writing the image to the eMMC.

2.3. Connect to the Gemstone Operating System

After the image writing process is complete, the system will boot from the eMMC. You can connect to the Gemstone OS via serial port or SSH.