PocketBeagle 2

Overview

PocketBeagle 2 is a computational platform powered by TI AM62x SoC (there are two revisions, AM6232 and AM6254).

The board configuration provides support for the ARM Cortex-M4F MCU core.

See the PocketBeagle 2 Product Page for details.

Hardware

PocketBeagle 2 features the TI AM62x SoC based around an Arm Cortex-A53 multicore cluster with an Arm Cortex-M4F microcontroller, Imagination Technologies AXE-1-16 graphics processor (from revision A1) and TI programmable real-time unit subsystem microcontroller cluster coprocessors.

Zephyr is ported to run on the both A53 cores and/or M4F core.

The following listed hardware specifications are used:

  • Dual ARM Cortex-A53 cores

  • Low-power ARM Cortex-M4F

  • Memory

    • 256KB of SRAM

    • 512MB of DDR4

Currently supported PocketBeagle 2 revisions:

  • A0: Comes wth SOC AM6232

Supported Features

The pocketbeagle_2 board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
pocketbeagle_2
@
/

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-A53 CPU2

arm,cortex-a53

GPIO & Headers

on-chip

GPIO Controller for Davinci and Keystone devices1 1

ti,davinci-gpio

I2C

on-chip

TI OMAP I2C Controller1 3

ti,omap-i2c

Interrupt controller

on-chip

ARM Generic Interrupt Controller v31

arm,gic-v3

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

Mailbox

on-chip

TI OMAP MAILBOX1

ti,omap-mailbox

Pin control

on-chip

TI K3 Pin Controller1

ti,k3-pinctrl

Serial controller

on-chip

ns16550 UART1 6

ns16550

Timer

on-chip

per-core ARM architected timer1

arm,armv8-timer

Devices

System Clock

This board configuration uses a system clock frequency of 400 MHz.

DDR RAM

The board has 512MB of DDR RAM available. This board configuration allocates Zephyr 4kB of RAM (only for resource table: 0x9CC00000 to 0x9CC00400).

Serial Port

A53 Cores

This board configuration uses single serial communication channel with the MAIN domain UART (MAIN_UART6, i.e. debug port).

M4F Core

This board configuration uses a single serial communication channel with the MCU domain UART (MCU_UART0, i.e. P2.05 as RX and P2.07 as TX).

SD Card

A53 Cores

Download BeagleBoard.org’s official BeagleBoard Imaging Utility to create bootable SD-card with the Zephyr image. Optionally, the Zephyr SD Card images can be downloaded from bb-zephyr-images.

M4F Core

Download BeagleBoard.org’s official BeagleBoard Imaging Utility to create bootable SD-card with the Linux distro image. This will boot Linux on the A53 application cores. These cores will then load the Zephyr binary on the M4 core using remoteproc.

Flashing

A53 Core

The testing requires the binary to be copied to the BOOT partition in SD card.

To test the A53 core, we build the Hello World sample with the following command.

# From the root of the zephyr repository
west build -b pocketbeagle_2/am6232/a53 samples/hello_world

We now copy this binary onto the SD card in the /boot/ directory and name it as zephyr.bin.

# Mount the SD card at sdcard for example
sudo mount /dev/sdX sdcard
# copy the bin to the /boot/
sudo cp --remove-destination zephyr.bin sdcard/boot/zephyr.bin

The SD card can now be used for booting.

The binary will run and print Hello world to the debug port.

M4F Core

The board supports remoteproc using the OpenAMP resource table.

The testing requires the binary to be copied to the SD card to allow the A53 cores to load it while booting using remoteproc.

To test the M4F core, we build the Hello World sample with the following command.

# From the root of the zephyr repository
west build -b pocketbeagle_2/am6232/m4 samples/hello_world

This builds the program and the binary is present in the build/zephyr directory as zephyr.elf.

We now copy this binary onto the SD card in the /lib/firmware directory and name it as am62-mcu-m4f0_0-fw.

# Mount the SD card at sdcard for example
sudo mount /dev/sdX sdcard
# copy the elf to the /lib/firmware directory
sudo cp --remove-destination zephyr.elf sdcard/lib/firmware/am62-mcu-m4f0_0-fw

The SD card can now be used for booting. The binary will now be loaded onto the M4F core on boot.

The binary will run and print Hello world to the MCU_UART0 port.

Debugging

M4F Core

The board supports debugging M4 core from the A53 cores running Linux. Since the target needs superuser privilege, openocd needs to be launched separately for now:

sudo openocd -f board/ti_am625_swd_native.cfg

Start debugging

west build -b None
west debug

References