Back to Zephyr

Overview

boards/beagle/beagley_ai/doc/index.rst

4.4.04.4 KB
Original Source

.. zephyr:board:: beagley_ai

Overview


BeagleY-AI is a computational platform powered by TI AM67A (J722S) SoC, which is targeted for automotive applications.

Hardware


BeagleY-AI is powered by TI AM67A (J722S) SoC, which has two domains (Main, MCU). This document gives overview of Zephyr running on both Cortex R5.

L1 Memory System

BeagleY-AI defaults to single-core mode for the R5 subsystem. Changes in that will impact the L1 memory system configuration.

  • 32KB instruction cache
  • 32KB data cache
  • 64KB tightly-coupled memory (TCM)
    • 32KB TCMA
    • 32KB TCMB

Region Address Translation

The RAT module performs a region based address translation. It translates a 32-bit input address into a 36-bit output address. Any input transaction that starts inside of a programmed region will have its address translated, if the region is enabled.

VIM Interrupt Controller

The VIM aggregates device interrupts and sends them to the R5F CPU(s). The VIM module supports 512 interrupt inputs per R5F core. Each interrupt can be either a level or a pulse (both active-high). The VIM has two interrupt outputs per core IRQ and FIQ.

Supported Features


The board configuration supports a console UART via the HAT header pins. Future versions will also support a console over RPmsg.

.. zephyr:board-supported-hw::

Running Zephyr


The AM67A does not have a separate flash for the R5 core. Because of this an A53 core has to load the program for the R5 core to the right memory address, set the PC and start the processor. This can be done from Linux on the A53 core via remoteproc.

This is the memory mapping from A53 to the memory usable by the R5. Note that the R5 core always sees its local TCMA at address 0x00000000 and its TCMB0 at address 0x41010000.

The A53 Linux configuration allocates a region in DDR that is shared with the R5. The amount of the allocation can be changed in the Linux device tree. Note that BeagleY-AI has 4GB of DDR.

+-------------------+---------------+--------------+--------+ | Region | Addr from A53 | MAIN R5F | Size | +===================+===============+==============+========+ | ATCM | 0x0078400000 | 0x0000000000 | 32KB | +-------------------+---------------+--------------+--------+ | BTCM | 0x0078500000 | 0x0041010000 | 32KB | +-------------------+---------------+--------------+--------+ | DDR Shared Region | 0x00A2000000 | 0x00A2000000 | 16MB | +-------------------+---------------+--------------+--------+

+-------------------+---------------+--------------+--------+ | Region | Addr from A53 | MCU R5F | Size | +===================+===============+==============+========+ | ATCM | 0x0079000000 | 0x0000000000 | 32KB | +-------------------+---------------+--------------+--------+ | BTCM | 0x0079020000 | 0x0041010000 | 32KB | +-------------------+---------------+--------------+--------+ | DDR Shared Region | 0x00A1000000 | 0x00A1000000 | 16MB | +-------------------+---------------+--------------+--------+

Steps to run the image

Here is an example for the :zephyr:code-sample:hello_world application targeting the MAIN domain Cortex R5F on BeagleY-AI:

.. zephyr-app-commands:: :zephyr-app: samples/hello_world :board: beagley_ai/j722s/main_r5f0_0 :goals: build

For the MCU domain Cortex R5F on BeagleY-AI:

.. zephyr-app-commands:: :zephyr-app: samples/hello_world :board: beagley_ai/j722s/mcu_r5f0_0 :goals: build

To load the image:

| Copy Zephyr image to the /lib/firmware/ directory. | cp build/zephyr/zephyr.elf /lib/firmware/ | | Ensure the Core is not running. | echo stop > /dev/remoteproc/am67a-{main,mcu}-r5f0_0/state | | Configuring the image name to the remoteproc module. | echo zephyr.elf > /dev/remoteproc/am67a-{main,mcu}-r5f0_0/firmware | | Once the image name is configured, send the start command. | echo start > /dev/remoteproc/am67a-{main,mcu}-r5f0_0/state

Console

The Zephyr on BeagleY-AI Cortex-R5F uses UART 1 (HAT pins 8-TX, 10-RX) as console.

References


  • BeagleY-AI Homepage <https://beagley.ai>_
  • AM67A TRM <https://www.ti.com/lit/zip/sprujb3>_
  • Pinout guide <https://pinout.beagley.ai/>_
  • Documentation <https://docs.beagleboard.org/latest/boards/beagley/ai>_