diff --git a/boards/arm/beagle_bbai_64/Kconfig.board b/boards/arm/beagle_bbai_64/Kconfig.board new file mode 100644 index 000000000000000..70851a8b48d0681 --- /dev/null +++ b/boards/arm/beagle_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_BBAI64 + bool "Beaglebone AI-64" + depends on SOC_TI_J721E_R5 + select CPU_CORTEX_R5 diff --git a/boards/arm/beagle_bbai_64/Kconfig.defconfig b/boards/arm/beagle_bbai_64/Kconfig.defconfig new file mode 100644 index 000000000000000..4c35d2510d4b49c --- /dev/null +++ b/boards/arm/beagle_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_BBAI64 + +config BOARD + default "bbai_64" + +endif # BOARD_BBAI64 diff --git a/boards/arm/beagle_bbai_64/bbai_64.dts b/boards/arm/beagle_bbai_64/bbai_64.dts new file mode 100644 index 000000000000000..4f97527039da989 --- /dev/null +++ b/boards/arm/beagle_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/beagle_bbai_64/bbai_64.yaml b/boards/arm/beagle_bbai_64/bbai_64.yaml new file mode 100644 index 000000000000000..b8cc5b6cbd225fd --- /dev/null +++ b/boards/arm/beagle_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/beagle_bbai_64/bbai_64_defconfig b/boards/arm/beagle_bbai_64/bbai_64_defconfig new file mode 100644 index 000000000000000..9512ffcd5294f07 --- /dev/null +++ b/boards/arm/beagle_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/beagle_bbai_64/board.cmake b/boards/arm/beagle_bbai_64/board.cmake new file mode 100644 index 000000000000000..93a2269f30fa18f --- /dev/null +++ b/boards/arm/beagle_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/beagle_bbai_64/doc/assets/bbai_64.png b/boards/arm/beagle_bbai_64/doc/assets/bbai_64.png new file mode 100644 index 000000000000000..9aef8072be7b729 Binary files /dev/null and b/boards/arm/beagle_bbai_64/doc/assets/bbai_64.png differ diff --git a/boards/arm/beagle_bbai_64/doc/index.rst b/boards/arm/beagle_bbai_64/doc/index.rst new file mode 100644 index 000000000000000..9c49a4793a998b1 --- /dev/null +++ b/boards/arm/beagle_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