From Ronetix's Wiki
Jump to navigation Jump to search

SAMA5D3X-CM is a System-on-module (SoM) board in SODIMM204 format designed for embedded applications.

SAMA5D3X-CM is using the Microchip (ATMEL) ATSAMA5D3X CPU with a CORTEX-A5 CPU running at 536MHz

Product Info:

Information about at91bootstrap, U-BOOT, Linux can be found here:

Building at91bootstrap - second level bootloader for SAMA5D3X-CM

This bootloader is based on, branch at91bootstrap-3.x

Setup the cross-compiler and CPU architecture

$ export ARCH=arm
$ export CROSS_COMPILE=/opt/cross/arm-ronetix-eabi-8.3.0/bin/arm-ronetix-eabi-

Clone the latest revision of the repo

$ git clone -b at91bootstrap-3.10.4_rnx
$ cd at91bootstrap

Configure and build

$ make sama5d3x_cm_nf_uboot_defconfig
$ make

Build Results

File Name Description
binaries/at91bootstrap.bin BIN image, should be programmed at address 0x0
binaries/at91bootstrap.elf ELF image used for JTAG debugging

Building Buildroot - a simple Linux System for SAMA5D3X-CM

Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.
The home page of Buildroot is:
The Buildroot user manual can help you better understand how Buildroot works:
The Buildroot for SAMA5D3x is maintained by Microchip:

Buildroot can build:

  • at91bootstrap
  • u-boot-at91
  • linux-at91
  • A cross-compiler
  • Root filesystems of different types


Host build system should be a Linux system with necessary software installed:
In addition to these required packages, you should also install libssl-dev:

$ sudo apt-get install libssl1.0-dev

or, depending on your host distribution:

$ sudo apt-get install libssl-dev

Get sources

$ git clone
$ git clone
$ cd buildroot-external-microchip/
$ git checkout linux4microchip-2022.10 -b buildroot-external-microchip-linux4microchip-2022.10
$ cd ../buildroot-at91/
$ git checkout linux4sam-2022.10 -b buildroot-at91-linux4sam-2022.10


$ make atmel_sama5d3xek_defconfig
$ make

Once compilation is done, the images have been generated in: ./output/image:

  • at91bootstrap.bin
  • rootfs.tar
  • u-boot.bin
  • u-boot-spl.bin
  • zImage
  • sama5d31ek.dtb
  • sama5d33ek.dtb
  • sama5d34ek.dtb
  • sama5d35ek.dtb
  • sama5d36ek.dtb
  • rootfs.ubi
  • rootfs.ubifs

Customizing Buildroot

$ BR2_EXTERNAL=../buildroot-external-microchip/ at91bootstrap3-menuconfig
$ BR2_EXTERNAL=../buildroot-external-microchip/ make uboot-menuconfig
Linux Kernel
$ BR2_EXTERNAL=../buildroot-external-microchip/ make linux-menuconfig
$ BR2_EXTERNAL=../buildroot-external-microchip/ make menuconfig

NAND Boot: Programming images

SAM-BA tool or PEEDI JTAG Flash Programmer can be used for programming the images into the NAND Flash.
All images should be programmed with 4-bit ECC.

Address Image Note
0x00000000 boot.bin at91bootstrap, programmed with header 0xc0902405
0x00040000 u-boot.bin U-BOOT, third level bootloader
0x00180000 sama5d35ek.dtb Device tree for Linux Kernel
0x00200000 zImage Linux Kernel
0x00F80000 rootfs.ubi Root file system