boards: beagley_ai: Add BeagleY-AI MCU domain R5 support

Add initial support for the BeagleY-AI MCU domain Cortex-R5F core.

BeagleY-AI: https://www.beagleboard.org/boards/beagley-ai

Signed-off-by: Andrew Davis <afd@ti.com>
This commit is contained in:
Andrew Davis 2024-06-05 13:09:17 -05:00 committed by Benjamin Cabé
parent 87a5410584
commit ed343078c1
6 changed files with 129 additions and 5 deletions

View file

@ -5,3 +5,4 @@
config BOARD_BEAGLEY_AI
select SOC_J722S_MAIN_R5F0_0 if BOARD_BEAGLEY_AI_J722S_MAIN_R5F0_0
select SOC_J722S_MCU_R5F0_0 if BOARD_BEAGLEY_AI_J722S_MCU_R5F0_0

View file

@ -0,0 +1,20 @@
/*
* Copyright (c) 2024 Texas Instruments Incorporated
* Andrew Davis <afd@ti.com>
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/dt-bindings/pinctrl/ti-k3-pinctrl.h>
&pinctrl {
uart1_rx_default: uart1_rx_default {
/* (C27) MCASP0_AFSR.UART1_RXD */
pinmux = <K3_PINMUX(0x01ac, PIN_INPUT, MUX_MODE_2)>;
};
uart1_tx_default: uart1_tx_default {
/* (F24) MCASP0_ACLKR.UART1_TXD */
pinmux = <K3_PINMUX(0x01b0, PIN_OUTPUT, MUX_MODE_2)>;
};
};

View file

@ -0,0 +1,56 @@
/*
* Copyright (c) 2024 Texas Instruments Incorporated
* Andrew Davis <afd@ti.com>
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <ti/j722s_mcu_r5.dtsi>
#include "beagley_ai_j722s_mcu_r5f0_0-pinctrl.dtsi"
#include <freq.h>
/ {
model = "BeagleBoard.org BeagleY-AI";
compatible = "beagle,beagley-ai";
chosen {
zephyr,sram = &atcm;
zephyr,console = &uart1;
};
cpus {
cpu@0 {
status = "okay";
};
};
ddr0: memory@a1000000 {
compatible = "mmio-sram";
reg = <0xa1000000 DT_SIZE_M(1)>;
};
rsc_table: memory@a1100000 {
compatible = "zephyr,memory-region", "mmio-sram";
reg = <0xa1100000 DT_SIZE_M(1)>;
zephyr,memory-region = "RSC_TABLE";
};
ddr1: memory@a1200000 {
compatible = "zephyr,memory-region", "mmio-sram";
reg = <0xa1200000 DT_SIZE_M(14)>;
zephyr,memory-region = "DRAM";
};
};
&uart1 {
status = "okay";
pinctrl-0 = <&uart1_tx_default &uart1_rx_default>;
pinctrl-names = "default";
current-speed = <115200>;
};
&systick_timer {
status = "okay";
};

View file

@ -0,0 +1,16 @@
# Copyright (c) 2024 Texas Instruments Incorporated
# Andrew Davis <afd@ti.com>
#
# SPDX-License-Identifier: Apache-2.0
identifier: beagley_ai/j722s/mcu_r5f0_0
name: BeagleY-AI MCU domain R5F Core 0
type: mcu
arch: arm
ram: 32
toolchain:
- zephyr
- gnuarmemb
supported:
- uart
vendor: beagle

View file

@ -0,0 +1,15 @@
# Copyright (c) 2024 Texas Instruments Incorporated
# Andrew Davis <afd@ti.com>
#
# SPDX-License-Identifier: Apache-2.0
# Zephyr Kernel Configuration
CONFIG_XIP=n
# Serial Driver
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y
# Enable Console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

View file

@ -9,8 +9,7 @@ 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 Cortex R5 in the
Main domain.
MCU). This document gives overview of Zephyr running on both Cortex R5.
L1 Memory System
----------------
@ -81,6 +80,16 @@ Note that BeagleY-AI has 4GB of DDR.
| 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
@ -91,19 +100,26 @@ targeting the MAIN domain Cortex R5F on BeagleY-AI:
: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-r5f0_0/state``
| ``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-r5f0_0/firmware``
| ``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-r5f0_0/state``
| ``echo start > /dev/remoteproc/am67a-{main,mcu}-r5f0_0/state``
Console
-------