From 173ac962c496bff46b8d27b10286d0d031eef4dd Mon Sep 17 00:00:00 2001 From: Prashanth S Date: Wed, 31 May 2023 12:42:50 +0530 Subject: [PATCH] boards: beaglebone_ai64: Add BeagleBone AI-64 Add minimal BeagleBone AI-64 support Signed-off-by: Prashanth S --- boards/arm/bbai_64/Kconfig.board | 9 +++ boards/arm/bbai_64/Kconfig.defconfig | 11 ++++ boards/arm/bbai_64/bbai_64.dts | 25 +++++++ boards/arm/bbai_64/bbai_64.yaml | 16 +++++ boards/arm/bbai_64/bbai_64_defconfig | 25 +++++++ boards/arm/bbai_64/board.cmake | 4 ++ boards/arm/bbai_64/doc/assets/bbai_64.png | Bin 0 -> 31296 bytes boards/arm/bbai_64/doc/index.rst | 77 ++++++++++++++++++++++ 8 files changed, 167 insertions(+) create mode 100644 boards/arm/bbai_64/Kconfig.board create mode 100644 boards/arm/bbai_64/Kconfig.defconfig create mode 100644 boards/arm/bbai_64/bbai_64.dts create mode 100644 boards/arm/bbai_64/bbai_64.yaml create mode 100644 boards/arm/bbai_64/bbai_64_defconfig create mode 100644 boards/arm/bbai_64/board.cmake create mode 100644 boards/arm/bbai_64/doc/assets/bbai_64.png create mode 100644 boards/arm/bbai_64/doc/index.rst diff --git a/boards/arm/bbai_64/Kconfig.board b/boards/arm/bbai_64/Kconfig.board new file mode 100644 index 000000000000000..598746de7de5319 --- /dev/null +++ b/boards/arm/bbai_64/Kconfig.board @@ -0,0 +1,9 @@ +# Copyright (C) 2023 BeagleBoard.org Foundation +# Copyright (C) 2023 S Prashanth +# +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_TI_BBAI64 + bool "TI Beaglebone AI-64" + depends on SOC_TI_J721E_R5 + select CPU_CORTEX_R5 diff --git a/boards/arm/bbai_64/Kconfig.defconfig b/boards/arm/bbai_64/Kconfig.defconfig new file mode 100644 index 000000000000000..e207bfabb1a4717 --- /dev/null +++ b/boards/arm/bbai_64/Kconfig.defconfig @@ -0,0 +1,11 @@ +# Copyright (C) 2023 BeagleBoard.org Foundation +# Copyright (C) 2023 S Prashanth +# +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_TI_BBAI64 + +config BOARD + default "bbai_64" + +endif # BOARD_TI_BBAI64 diff --git a/boards/arm/bbai_64/bbai_64.dts b/boards/arm/bbai_64/bbai_64.dts new file mode 100644 index 000000000000000..4f97527039da989 --- /dev/null +++ b/boards/arm/bbai_64/bbai_64.dts @@ -0,0 +1,25 @@ +/* Copyright (C) 2023 BeagleBoard.org Foundation + * Copyright (C) 2023 S Prashanth + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include +#include + +/ { + chosen { + zephyr,sram = &atcm; + zephyr,console = &uart2; + }; +}; + +&uart2 { + current-speed = <115200>; + status = "okay"; + pinctrl-0 = <&uart2_tx_default &uart2_rx_default>; + pinctrl-names = "default"; +}; diff --git a/boards/arm/bbai_64/bbai_64.yaml b/boards/arm/bbai_64/bbai_64.yaml new file mode 100644 index 000000000000000..362cad21262a8f3 --- /dev/null +++ b/boards/arm/bbai_64/bbai_64.yaml @@ -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 diff --git a/boards/arm/bbai_64/bbai_64_defconfig b/boards/arm/bbai_64/bbai_64_defconfig new file mode 100644 index 000000000000000..9512ffcd5294f07 --- /dev/null +++ b/boards/arm/bbai_64/bbai_64_defconfig @@ -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 diff --git a/boards/arm/bbai_64/board.cmake b/boards/arm/bbai_64/board.cmake new file mode 100644 index 000000000000000..93a2269f30fa18f --- /dev/null +++ b/boards/arm/bbai_64/board.cmake @@ -0,0 +1,4 @@ +# Copyright (C) 2023 BeagleBoard.org Foundation +# Copyright (C) 2023 S Prashanth +# +# SPDX-License-Identifier: Apache-2.0 diff --git a/boards/arm/bbai_64/doc/assets/bbai_64.png b/boards/arm/bbai_64/doc/assets/bbai_64.png new file mode 100644 index 0000000000000000000000000000000000000000..9aef8072be7b729d88a4e69601174c3d898bd903 GIT binary patch literal 31296 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 Hu0mjf#|1_= literal 0 HcmV?d00001 diff --git a/boards/arm/bbai_64/doc/index.rst b/boards/arm/bbai_64/doc/index.rst new file mode 100644 index 000000000000000..9c49a4793a998b1 --- /dev/null +++ b/boards/arm/bbai_64/doc/index.rst @@ -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