Skip to content

Commit

Permalink
boards: beaglebone_ai64: Add BeagleBone AI-64
Browse files Browse the repository at this point in the history
Add minimal BeagleBone AI-64 support

Signed-off-by: Prashanth S <[email protected]>
  • Loading branch information
slpp95prashanth committed Jun 29, 2023
1 parent 9e7bd5d commit fcb42f6
Show file tree
Hide file tree
Showing 8 changed files with 167 additions and 0 deletions.
9 changes: 9 additions & 0 deletions boards/arm/beagle_bbai_64/Kconfig.board
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Copyright (C) 2023 BeagleBoard.org Foundation
# Copyright (C) 2023 S Prashanth
#
# SPDX-License-Identifier: Apache-2.0

config BOARD_BBAI64
bool "Beaglebone AI-64"
depends on SOC_TI_J721E_R5
select CPU_CORTEX_R5
11 changes: 11 additions & 0 deletions boards/arm/beagle_bbai_64/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Copyright (C) 2023 BeagleBoard.org Foundation
# Copyright (C) 2023 S Prashanth
#
# SPDX-License-Identifier: Apache-2.0

if BOARD_BBAI64

config BOARD
default "bbai_64"

endif # BOARD_BBAI64
25 changes: 25 additions & 0 deletions boards/arm/beagle_bbai_64/bbai_64.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/* Copyright (C) 2023 BeagleBoard.org Foundation
* Copyright (C) 2023 S Prashanth
*
* SPDX-License-Identifier: Apache-2.0
*/

/dts-v1/;

#include <ti/j721e_r5.dtsi>
#include <arm/ti/j721e-pinctrl.dtsi>
#include <freq.h>

/ {
chosen {
zephyr,sram = &atcm;
zephyr,console = &uart2;
};
};

&uart2 {
current-speed = <115200>;
status = "okay";
pinctrl-0 = <&uart2_tx_default &uart2_rx_default>;
pinctrl-names = "default";
};
16 changes: 16 additions & 0 deletions boards/arm/beagle_bbai_64/bbai_64.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright (C) 2023 BeagleBoard.org Foundation
# Copyright (C) 2023 S Prashanth
#
# SPDX-License-Identifier: Apache-2.0

identifier: bbai_64
name: BeagleBone-AI64
type: mcu
arch: arm
ram: 32
toolchain:
- zephyr
- gnuarmemb
- xtools
supported:
- uart
25 changes: 25 additions & 0 deletions boards/arm/beagle_bbai_64/bbai_64_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright (C) 2023 BeagleBoard.org Foundation
# Copyright (C) 2023 S Prashanth
#
# SPDX-License-Identifier: Apache-2.0

CONFIG_SOC_SERIES_TI_J721E=y
CONFIG_SOC_TI_J721E_R5=y

# enable uart
CONFIG_SERIAL=y

# enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

CONFIG_BUILD_OUTPUT_UF2=n
CONFIG_BUILD_OUTPUT_HEX=y

CONFIG_XIP=n
CONFIG_FLASH_SIZE=0
CONFIG_FLASH_BASE_ADDRESS=0

CONFIG_BOOTLOADER_SRAM_SIZE=0

CONFIG_PRINTK=y
4 changes: 4 additions & 0 deletions boards/arm/beagle_bbai_64/board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Copyright (C) 2023 BeagleBoard.org Foundation
# Copyright (C) 2023 S Prashanth
#
# SPDX-License-Identifier: Apache-2.0
Binary file added boards/arm/beagle_bbai_64/doc/assets/bbai_64.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
77 changes: 77 additions & 0 deletions boards/arm/beagle_bbai_64/doc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
.. _beaglebone_ai64:

BeagleBone AI-64
################

Overview
********
BeagleBone AI-64 is a computational platform powered by TI J721E Soc, which is
targeted for automotive applications.

.. figure:: assets/bbai_64.png
:align: center
:width: 500px
:alt: BeagleBoard.org BeagleBone AI-64

Hardware
********
The BeagleBone AI-64 is powered by TI J721E Soc, which has three domains (Main,
MCU, WKUP). This document gives overview of Zephyr running on Cortex R5 in the
Main domain.

L1 Memory System
----------------
* 16 KB instruction cache.
* 16 KB data cache.
* 64 KB TCM.

Region Address Translation
--------------------------
The RAT module performs a region based address translation. It translates a
32-bit input address into a 48-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,

+-----------+------------+----------------------+
| Interface | Controller | Driver/Component |
+===========+============+======================+
| UART | on-chip | serial |
+-----------+------------+----------------------+

Other hardwares features are currently not supported.

The default configuration can be found in the defconfig file:
> boards/arm/beaglebone-ai64/bbai_64_defconfig

Flashing
********
The Zephyr image can be flashed to J721E Cortex R5 through remoteproc from
Linux (Running on A72).

Steps to flash the image
------------------------
#. cp build/zephyr/zephyr.elf /lib/firmware/
#. echo stop > /sys/class/remoteproc/remoteproc18/state
#. echo zephyr.elf > /sys/class/remoteproc/remoteproc18/firmware
#. echo start > /sys/class/remoteproc/remoteproc18/state

Note:
-----
As the image is loaded through remoteproc, which is running on Linux. To flash
Linux image on A72, please refer https://beagleboard.org/latest-images

References
**********
* https://beagleboard.org/ai-64
* J721E TRM

0 comments on commit fcb42f6

Please sign in to comment.