Software Tools

Last modified by Microchip on 2025/11/21 15:05

SAM-BA® In-System Programmer (ISP)

SAM Boot Assistant In-system Programmer (SAM-BA ISP) can run on:

  • Windows® 32-bit and 64-bit
  • Linux® x86 and x86_64

SAM-BA ISP can program flash media through the following communication links:

  • Debug port (DBGU), whether they connect through RS232 or USB-serial links
  • USB device (aka USB gadget)
    • SAM-BA ISP on Linux uses the USB connection through Communications Device Class (CDC) to communicate with the device
  • On Windows systems, Joint Test Action Group (JTAG)
Information

Note: SAM-BA software v2.x is for maintenance only. We recommend SAM-BA software v3.x for new projects.

See the "Convert SAM-BA ISP Script" page for help with converting SAM-BA software tool scripts from one version of the tool to another:

  • SAM-BA software v3.1 scripts to SAM-BA software v3.2 onwards
  • SAM-BA software v3.2 scripts to SAM-BA software v3.5 onwards
  • SAM-BA software v3.5 scripts to SAM-BA software v3.7 onwards

Tips and Tricks

Check if My Kernel Version is Compatible With SAM-BA Software

Connect the board to your computer and type:

$ dmesg

If you have something like this, it's ok:

[227274.230016] usb 5-1: new full speed USB device using uhci_hcd and address 5
[227274.395739] cdc_acm 5-1:1.0: This device cannot do calls on its own. It is not a modem.
[227274.395768] cdc_acm 5-1:1.0: ttyACM0: USB ACM device

If you have no log about the cdc_acm driver, your kernel may not be up to date.

My Kernel Version is 2.6.37 or 2.6.38 and I Have No ttyACMx Node

This kernel version may contain two drivers for Microchip's Atmel® boards: the SAM-BA ISP driver and the cdc_acm driver.

Since you have two drivers for the same device, randomly the SAM-BA ISP driver or the cdc_acm driver can be used. Both allow you to launch the SAM-BA software tool and to program your board. The only consideration is the device node name. If the SAM-BA ISP driver is used, you will have a /dev/ttyUSBx node. If the cdc_acm is used, you will have a /dev/ttyACMx. In this case, you will have to create a link to /dev/ttyUSBx.

It is mainly the cdc_acm driver that is selected. To know which one has been selected, you can use the dmesg command.

The sam-ba ISP driver is used if you see something like this:

[   72.092495] usb 2-1.3: new high speed USB device using ehci_hcd and address 6
[   72.191022] USB Serial support registered for sam-ba
[   72.191169] sam-ba 2-1.3:1.1: sam-ba converter detected
[   72.191364] usb 2-1.3: sam-ba converter now attached to ttyUSB1
[   72.191762] usbcore: registered new interface driver sam-ba
[   72.191765] sam_ba: v1.0: Atmel SAM Boot Assistant (SAM-BA) driver
[   72.519248] cdc_acm 2-1.3:1.0: This device cannot do calls on its own. It is not a modem.
[   72.519258] cdc_acm: probe of 2-1.3:1.0 failed with error -16
[   72.519272] usbcore: registered new interface driver cdc_acm
[   72.519273] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters

You can see that a /dev/ttyUSB1 node has been created.

In the other case, if the cdc_acm driver is used, you will have:

[  766.492942] usb 2-1.1: new high speed USB device using ehci_hcd and address 8
[  766.585934] cdc_acm 2-1.1:1.0: This device cannot do calls on its own. It is not a modem.
[  766.586033] cdc_acm 2-1.1:1.0: ttyACM0: USB ACM device

You can see that a /dev/ttyACM0 node has been created.

Check the USB Link Between the Board and the Computer

lsusb -d 03eb:6124
    Bus 004 Device 006: ID 03eb:6124 Atmel Corp

03eb is the vendor number and 6124 is the product number.

Issues While Running SAM-BA Software v3 Scripts (Module SAM-BA Version x.y is Not Installed)

If you encounter the following issues while running your SAM-BA software v3 scripts, it must mean that your SAM-BA software revision and the SAM-BA ISP script used are not aligned.

New Revision of SAM-BA Software Running an Old Script
  sam-ba -v
  SAM-BA Command Line Tool v3.2.0
  Copyright 2015-2017 ATMEL Corporation
 
  sam-ba -x demo_linux_serialflash_usb.qml
 "file:demo_linux_serialflash_usb.qml:1 module \"SAMBA\" version 3.1 is not installed\n" 

In such a case, we advise you to keep your newer revision of the SAM-BA software, but convert your SAM-BA ISP script to a newer revision by following the "Convert SAM-BA ISP Script" page.

Old Revision of SAM-BA Software Running a New Script
  sam-ba -v
  SAM-BA Command Line Tool v3.1.4
  Copyright 2015-2016 ATMEL Corporation
 
  sam-ba -x demo_linux_serialflash_usb.qml
 "file:demo_linux_serialflash_usb.qml:1 module \"SAMBA\" version 3.2 is not installed\n""

In such a case, we advise you to download a newer revision of the SAM-BA software.

Back to Top

Burn Images to SD Cards With balenaEtcher®

For the purpose of creating demo images on SD cards, we recommend utilizing balenaEtcher®. This tool offers several advantageous features, including compatibility across multiple platforms and robust security measures, ensuring that it does not inadvertently compromise your hard drive. Additionally, as this project is open source, you may access the source code on GitHub®.

Etcher window

Back to Top

Serial Terminal Configuration

Using a terminal software on your host system, you can connect to the application running on the System on Chip (SoC) through the DBGU or a Universal Synchronous/Asynchronous Receiver/Transmitter (USART) serial interface.

Information

Exceptions:

  • SAMA5D2 revision A:
    • To access the ROMCode via the serial interface and view the RomBOOT message, configure your serial line to 57600 baud.
    • After this step, revert the serial line setting to 115200 baud for normal operation.

All components and demo binaries are now configured to work at 115200 8-N-1.

Failed to execute the [include] macro. Cause: [Current user [null] doesn't have view rights on document [xwiki:Development.applications.linux4sam.Boards.__notes._board-sections-test.common-serial.WebHome]]. Click on this message for details.

Back to Top

Yocto Project® SDK

To simplify software development on the root filesystems we provide, we have created a Yocto Project® Software Development Kit (SDK) that enables you to cross-compile your C/C++ projects.

The common specifications for each toolchain are as follows:

  • Built for Linux x86 64-bit architecture (x86_64)
  • Uses the glibc C library
  • Includes a version of the Qt® library and allows you to build a Qt application

    Information

    Note: QT was replaced with EGT starting with Linux4SAM 2020.04.

  • Built from source and can be rebuilt by following the documentation provided on the "OpenEmbedded/Yocto Project: Build From Sources" page
  • Distributed as a self-extracting shell script that installs the toolchain in the /opt directory
Information

Note: Use the download links in the following table for the self-extracting archive. The download will automatically start; otherwise, right-click and save the file.

DescriptionBinaryRecipe used to
generate the SDK
Distribution used
Yocto Project 5.0.4 - scarthgap (Linux4Microchip 2025.04)
Arm® Cortex®-A5 Hard float NEON™ with EGT
(like sama5d2 or sama5d4 for instance)
linux4sam-oecore-Cortex-A5-sdk-2025.04.shbitbake -c populate_sdk mchp-graphics-imagemeta-mchp
ARMv5 (for ARM926) with EGT - sam9 family
(like at91sam9x60 for instance)
linux4sam-oecore-ARMv5-sdk-2025.04.shbitbake -c populate_sdk mchp-graphics-imagemeta-mchp
Arm Cortex-A7 Hard float NEON
(like sama7g5ek for instance)
linux4sam-oecore-Cortex-A7-sdk-2025.04.shbitbake -c populate_sdk mchp-graphics-imagemeta-mchp
DescriptionBinaryRecipe used to
generate the SDK
Distribution used
Yocto Project 5.0.4 - scarthgap (Linux4Microchip 2024.10)
Arm Cortex-A5 Hard float NEON with EGT
(like sama5d2 or sama5d4 for instance)
linux4sam-poky-Cortex-A5-sdk-2024.10.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) with EGT - sam9 family
(like at91sam9x60 for instance)
linux4sam-poky-ARMv5-sdk-2024.10.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
Arm Cortex-A7 Hard float NEON
(like sama7g5ek for instance)
linux4sam-poky-Cortex-A7-sdk-2024.10.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
DescriptionBinaryRecipe used to
generate the SDK
Distribution used
Yocto Project 4.0.17 - kirkstone (Linux4Microchip 2024.04)
Arm Cortex-A5 Hard float NEON with EGT
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-4.0.17.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) with EGT - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60-curiosity-sd-toolchain-4.0.17.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60-curiosity-sd-toolchain-4.0.17.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Arm Cortex-A7 Hard float NEON
(like sama7g5ek for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-cortexa7hf-neon-vfpv4-sama7g5ek-sd-toolchain-4.0.17.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
DescriptionBinaryRecipe used to
generate the SDK
Distribution used
Yocto Project 4.0.13 - kirkstone (Linux4SAM 2023.10)
Arm Cortex-A5 Hard float NEON with EGT
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-4.0.13.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) with EGT - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60-curiosity-sd-toolchain-4.0.13.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60-curiosity-sd-toolchain-4.0.13.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Arm Cortex-A7 Hard float NEON
(like sama7g5ek for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-cortexa7hf-neon-vfpv4-sama7g5ek-sd-toolchain-4.0.13.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
DescriptionBinaryRecipe used to
generate the SDK
Distribution used
Yocto Project 4.0.9 - kirkstone (Linux4SAM 2023.04)
Arm Cortex-A5 Hard float NEON with EGT
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d2-xplained-toolchain-4.0.9.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) with EGT - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-toolchain-4.0.9.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-toolchain-4.0.9.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Arm Cortex-A7 Hard float NEON
(like sama7g5ek for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-cortexa7hf-neon-vfpv4-sama7g5ek-sd-toolchain-4.0.9.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
DescriptionBinaryRecipe used to
generate the SDK
Distribution used
Yocto Project 4.0.3 - kirkstone (Linux4SAM 2022.10)
Arm Cortex-A5 Hard float NEON with EGT
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-4.0.3.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) with EGT - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-4.0.3.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-4.0.3.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Arm Cortex-A7 Hard float NEON
(like sama7g5ek for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-cortexa7hf-neon-vfpv4-sama7g5ek-sd-toolchain-4.0.3.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
DescriptionBinaryRecipe used to
generate the SDK
Distribution used
Yocto Project 3.1.15 - dunfell (Linux4SAM 2022.04)
Arm Cortex-A5 Hard float NEON with EGT
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-3.1.15.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) with EGT - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-3.1.15.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-3.1.15.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Arm Cortex-A7 Hard float NEON
(like sama7g5ek for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-cortexa7hf-neon-vfpv4-sama7g5ek-sd-toolchain-3.1.15.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Yocto Project 3.1.12 - dunfell (Linux4SAM 2021.10)
Arm Cortex-A5 Hard float NEON with EGT
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-3.1.9.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
Arm Cortex-A5 Hard float NEON
(like sama5d2 or sama5d4 for instance)
Lightweight toolchain
(with libgpiod and libevnet needed by PTC examples application)
poky-atmel-glibc-x86_64-microchip-headless-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-3.1.9.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
ARMv5 (for ARM926) with EGT - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-3.1.9.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-3.1.9.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Yocto Project 3.1.9 - dunfell (Linux4SAM 2021.04)
Arm Cortex-A5 Hard float NEON with EGT
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-3.1.4.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
Arm Cortex-A5 Hard float NEON
(like sama5d2 or sama5d4 for instance)
Lightweight toolchain
(with libgpiod and libevnet needed by PTC examples application)
poky-atmel-glibc-x86_64-microchip-headless-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-3.1.4.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
ARMv5 (for ARM926) with EGT - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-3.1.4.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-3.1.4.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Yocto Project 3.1.4 - dunfell (Linux4SAM 2020.10)
Arm Cortex-A5 Hard float NEON with EGT
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d2-xplained-sd-toolchain-3.1.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
Arm Cortex-A5 Hard float NEON
(like sama5d2 or sama5d4 for instance)
Lightweight toolchain
(with libgpiod and libevnet needed by PTC examples application)
poky-atmel-glibc-x86_64-microchip-headless-image-cortexa5t2hf-neon-vfpv4-sama5d2-xplained-sd-toolchain-3.1.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Arm Cortex-A5 Hard float with EGT
Lightweight toolchain
(like sama5d3)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-vfp-sama5d3-xplained-sd-toolchain-3.1.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) with EGT - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-3.1.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-3.1.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Yocto Project 2.7.X - warrior (Linux4SAM 2020.04)
Arm Cortex-A5 Hard float NEON with EGT & QT 5
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d2-xplained-sd-toolchain-2.7.1.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
Arm Cortex-A5 Hard float NEON
(like sama5d2 or sama5d4 for instance)
Lightweight toolchain
(with libgpiod and libevnet needed by PTC examples application)
poky-atmel-glibc-x86_64-microchip-headless-image-cortexa5t2hf-neon-vfpv4-sama5d2-xplained-sd-toolchain-2.7.2.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Arm Cortex-A5 Hard float with EGT & QT 5
Lightweight toolchain
(like sama5d3)
poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-vfp-sama5d3-xplained-sd-toolchain-2.7.2.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) with EGT & QT 5 - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-graphics-image-armv5e-sam9x60ek-sd-toolchain-2.7.1.shbitbake -c populate_sdk microchip-graphics-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x60 for instance)
poky-atmel-glibc-x86_64-microchip-headless-image-armv5e-sam9x60ek-sd-toolchain-2.7.2.shbitbake -c populate_sdk microchip-headless-imagepoky-atmel
Yocto Project 2.6.2 - thud (Linux4SAM 6.2)
Arm Cortex-A5 Hard float NEON with QT 5
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5t2hf-neon-toolchain-2.6.2.shbitbake -c populate_sdk atmel-qt5-demo-imagepoky-atmel
Arm Cortex-A5 Hard float NEON
(like sama5d2 or sama5d4 for instance)
Lightweight toolchain
(with libgpiod and libevnet needed by PTC examples application)
poky-atmel-glibc-x86_64-atmel-xplained-lcd-demo-image-cortexa5t2hf-neon-toolchain-2.6.2.shbitbake -c populate_sdk atmel-xplained-lcd-demo-imagepoky-atmel
Arm Cortex-A5 Hard float with QT 5
(like sama5d3)
poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5t2hf-vfp-toolchain-2.6.2.shbitbake -c populate_sdk atmel-qt5-demo-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x5 for instance)
poky-atmel-glibc-x86_64-atmel-xplained-lcd-demo-image-armv5e-toolchain-2.6.2.shbitbake -c populate_sdk atmel-xplained-lcd-demo-imagepoky-atmel

Yocto Project 2.5.1 - sumo (Linux4SAM 6.1)

Arm Cortex-A5 Hard float NEON with QT 5
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5hf-neon-toolchain-2.5.1.shbitbake -c populate_sdk atmel-qt5-demo-imagepoky-atmel
Arm Cortex-A5 Hard float NEON
(like sama5d2 or sama5d4 for instance)
Lightweight toolchain
(with libgpiod and libevnet needed by PTC examples application)
poky-atmel-glibc-x86_64-atmel-xplained-lcd-demo-image-cortexa5hf-neon-toolchain-2.5.1.shbitbake -c populate_sdk atmel-xplained-lcd-demo-imagepoky-atmel
Arm Cortex-A5 Hard float with QT 5
(like sama5d3)
poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5hf-vfp-toolchain-2.5.1.shbitbake -c populate_sdk atmel-qt5-demo-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x5 for instance)
poky-atmel-glibc-x86_64-atmel-xplained-lcd-demo-image-armv5e-toolchain-2.5.1.shbitbake -c populate_sdk atmel-xplained-lcd-demo-imagepoky-atmel
Yocto Project 2.4.2 - rocko (Linux4SAM 6.0)
Arm Cortex-A5 Hard float NEON with QT 5
(like sama5d2 or sama5d4 for instance)
poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5hf-neon-toolchain-2.4.2.shbitbake -c populate_sdk atmel-qt5-demo-imagepoky-atmel
Arm Cortex-A5 Hard float NEON
(like sama5d2 or sama5d4 for instance)
Lightweight toolchain
(with libgpiod and libevnet needed by PTC examples application)
poky-atmel-glibc-x86_64-atmel-xplained-demo-image-cortexa5hf-neon-toolchain-2.4.2.shbitbake -c populate_sdk atmel-xplained-lcd-demo-imagepoky-atmel
Arm Cortex-A5 Hard float with QT 5
(like sama5d3)
poky-atmel-glibc-x86_64-atmel-qt5-demo-image-cortexa5hf-vfp-toolchain-2.4.2.shbitbake -c populate_sdk atmel-qt5-demo-imagepoky-atmel
ARMv5 (for ARM926) - sam9 family
(like at91sam9x5 for instance)
poky-atmel-glibc-x86_64-atmel-xplained-lcd-demo-image-armv5e-toolchain-2.4.2.shbitbake -c populate_sdk atmel-xplained-lcd-demo-imagepoky-atmel
Information

All toolchains listed above are compiled to run in a x86_64 environment. You can re-build them if you need to run them on another architecture (for example, i686, the x86 32bits variant).

For other examples of original Yocto Project toolchains, you can browse the toolchain directory of each Yocto Project release (here 2.4.2 as an example).

In addition to the OeBuild#Atmel_Poky_SDK chapter, you can use the comprehensive Yocto Project documentation that gives details on how to set up a Yocto Project SDK.

Back to Top

Buildroot SDK

To simplify software development on top of the root filesystems we provide, we have created a Buildroot SDK that you can use to cross-compile your C/C++ projects.

Common specifications for each toolchain include:

  • Built for the Linux x86 64-bit architecture (x86_64)
  • Compiled from source and can be rebuilt by running the make sdk command in your Buildroot directory after building your image
  • Packaged as an archive generated from a specific board defconfig, including all the necessary toolchains for building and libraries for linking
BoardsBuildroot SDK - 2025.02 (Linux4SAM 2025.04)
SAM9X75 CuriositySAM9X60 EKSAM9X60 Curiositylinux4sam-buildroot-ARMv5-sdk-2025.04.tar.gz
SAMA5D29 CuriositySAMA5D2-ICPSAMA5D27 SOM1 EKSAMA5D27 WLSOM1 EKlinux4sam-buildroot-Cortex-A5-sdk-2025.04.tar.gz
SAMA7G5-EKlinux4sam-buildroot-Cortex-A7-sdk-2025.04.tar.gz
BoardsBuildroot SDK - 2024.02.6 (Linux4SAM 2024.10)
SAM9X75 CuriositySAM9X60 EKSAM9X60 Curiositylinux4sam-buildroot-ARMv5-sdk-2024.10.tar.gz
SAMA5D29 CuriositySAMA5D2-ICPSAMA5D27 SOM1 EKSAMA5D27 WLSOM1 EKlinux4sam-buildroot-Cortex-A5-sdk-2024.10.tar.gz
SAMA7G5-EKlinux4sam-buildroot-Cortex-A7-sdk-2024.10.tar.gz
DescriptionBinary
Buildroot SDK - 2024.02.1 (Linux4SAM 2024.04)
SAM9X75 Curiositylinux4sam-buildroot-sam9x75_curiosity-graphics-sdk-2024.04.tar.gz
SAMA5D29 Curiositylinux4sam-buildroot-sama5d29_curiosity-graphics-sdk-2024.04.tar.gz
SAM9X60 EKlinux4sam-buildroot-sam9x60_curiosity-graphics-sdk-2024.04.tar.gz
SAM9X60 Curiositylinux4sam-buildroot-sam9x60ek-graphics-sdk-2024.04.tar.gz
SAMA7G5-EKlinux4sam-buildroot-sama7g5ek-headless-sdk-2024.04.tar.gz
SAMA5D2-ICPlinux4sam-buildroot-sama5d2_icp-headless-sdk-2024.04.tar.gz
SAMA5D27 SOM1 EKlinux4sam-buildroot-sama5d27_som1_ek-optee-graphics-sdk-2024.04.tar.gz
SAMA5D27 WLSOM1 EKlinux4sam-buildroot-sama5d27_wlsom1_ek-graphics-sdk-2024.04.tar.gz
DescriptionBinary
BUILDROOT SDK - 2023.02.5 (Linux4SAM 2023.10)
SAMA5D29 Curiositylinux4sam-buildroot-sama5d29_curiosity-graphics-sdk-2023.10.tar.gz
SAM9X60 EKlinux4sam-buildroot-sam9x60_curiosity-graphics-sdk-2023.10.tar.gz
SAM9X60 Curiositylinux4sam-buildroot-sam9x60ek-graphics-sdk-2023.10.tar.gz
SAMA7G5-EKlinux4sam-buildroot-sama7g5ek-headless-sdk-2023.10.tar.gz
SAMA5D2-ICPlinux4sam-buildroot-sama5d2_icp-headless-sdk-2023.10.tar.gz
SAMA5D27 SOM1 EKlinux4sam-buildroot-sama5d27_som1_ek-optee-graphics-sdk-2023.10.tar.gz
SAMA5D27 WLSOM1 EKlinux4sam-buildroot-sama5d27_wlsom1_ek-graphics-sdk-2023.10.tar.gz
DescriptionBinary
BUILDROOT SDK - 2022.02.5 (Linux4SAM 2023.04)
SAM9X60 EKlinux4sam-buildroot-sam9x60_curiosity-graphics-sdk-2023.04.tar.gz
SAM9X60 Curiositylinux4sam-buildroot-sam9x60ek-graphics-sdk-2023.04.tar.gz
SAMA7G5-EKlinux4sam-buildroot-sama7g5ek-headless-sdk-2023.04.tar.gz
SAMA5D2-ICPlinux4sam-buildroot-sama5d2_icp-headless-sdk-2023.04.tar.gz
SAMA5D27 SOM1 EKlinux4sam-buildroot-sama5d27_som1_ek-optee-graphics-sdk-2023.04.tar.gz
SAMA5D27 WLSOM1 EKlinux4sam-buildroot-sama5d27_wlsom1_ek-graphics-sdk-2023.04.tar.gz
DescriptionBinary
BUILDROOT SDK - 2022.02.5 (Linux4SAM 2022.10)
SAM9X60 EKlinux4sam-buildroot-sam9x60_curiosity-graphics-sdk-2022.10.tar.gz
SAM9X60 Curiositylinux4sam-buildroot-sam9x60ek-graphics-sdk-2022.10.tar.gz
SAMA7G5-EKlinux4sam-buildroot-sama7g5ek-headless-sdk-2022.10.tar.gz
SAMA5D2-ICPlinux4sam-buildroot-sama5d2_icp-headless-sdk-2022.10.tar.gz
SAMA5D27 SOM1 EKlinux4sam-buildroot-sama5d27_som1_ek-optee-graphics-sdk-2022.10.tar.gz
SAMA5D27 WLSOM1 EKlinux4sam-buildroot-sama5d27_wlsom1_ek-graphics-sdk-2022.10.tar.gz

Back to Top

Other Ready-Made Cross-Compilation Toolchains

These other ready-made cross-compilation toolchains for Linux x86 64-bit architecture (x86_64) are built using BuildRoot and also address several architectures.

Target ArchitectureCross-Compilation Toolchain to Choose
ARMv5 (for ARM926) - sam9 family
(like at91sam9x5 for instance)
armv5-eabi
Arm Cortex-A Hard float - sama5 family
(like sama5d3 or sama5d2 for instance)
armv7-eabihf

Toolchains can be selected and downloaded from Bootlin (formerly Free Electrons).

Back to Top

Device or Resource Busy: '/dev/ttyACM0'

When using the serial CDC interface for SAM-BA software or a terminal console on certain Linux hosts, you may occasionally experience long delays when attempting to connect. You might also encounter the following error message:

could not open port /dev/ttyACM0: [Errno 16] Device or resource busy: '/dev/ttyACM0'

This issue typically occurs immediately after rebooting the board or performing a reset.

In fact, a USB modem detector process—modem-manager—is taking control of the device as soon as it appears. You can identify this using the lsof command:

> sudo lsof /dev/ttyACM0
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
modem-man 10256 root   28u   CHR  166,0      0t0 190530 /dev/ttyACM0
>
> ps aux | grep modem
root     10256  0.1  0.0  83408  3420 ?        S    11:57   0:00 /usr/sbin/modem-manager

Solutions

You have several options to resolve this issue:

  1. Stop the modem-manager process before connecting the USB cable:

    > sudo killall modem-manager
  2. Search the corresponding package installed with your distribution's packet management tool and remove this "modem management" application:
    For example, on Ubuntu distributions:

      > sudo dpkg-query -S /usr/sbin/modem-manager modemmanager: /usr/sbin/modem-manager

    or on more recent Ubuntu® distributions:

      > sudo dpkg-query -S /usr/sbin/ModemManager modemmanager: /usr/sbin/ModemManager

    then run:

    > sudo apt-get remove modemmanager
  3. Edit the udev rules to exclude the serial CDC interfaces from Modem Manager handling:

    Information

    It is the preferred solution.

    For example, on Ubuntu distributions:

    > sudoedit /lib/udev/rules.d/10-microchip-usb-device-blacklist.rules

    Then insert the following lines:

    # Microchip boards CDC interfaces: Not handled by ModemManager
    # SAM-BA CDC interface with SAM-BA monitor
    ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{ID_MM_DEVICE_IGNORE}="1"
    # EDBG CDC interface
    ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2111", ENV{ID_MM_DEVICE_IGNORE}="1"
    # SEGGER console interface ATTRS{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"

    Finally, restart udev:

      > sudo service udev restart
      udev stop/waiting
      udev start/running, process 9299
    Warning

    Warning: On newer revisions of ModemManager, the blacklist udev rules as modified above are not supported anymore if the daemon is configured in Strict mode. The discussion is still ongoing on the ModemManager project, but for now, you can change the mode to Paranoid.

    This is done by editing the file /lib/systemd/system/ModemManager.service as shown:

      > sudoedit /lib/systemd/system/ModemManager.service
     [..]
     ExecStart=/usr/sbin/ModemManager --filter-policy=paranoid
     [..]
      > sudo systemctl daemon-reload
      > sudo systemctl restart ModemManager

More information on this can be found on a bug entry in ModemManager.
 

Back to Top