Skip to content

Commit 6faa29d

Browse files
Ayush1325kartben
authored andcommitted
boards: beagle: pocketbeagle_2: Add support for A53s
- Add support to run Zephyr on A53 with U-boot for rev A0. - Only UART support for now Signed-off-by: Ayush Singh <[email protected]>
1 parent fb79cbd commit 6faa29d

File tree

6 files changed

+160
-2
lines changed

6 files changed

+160
-2
lines changed

boards/beagle/pocketbeagle_2/Kconfig.pocketbeagle_2

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@
55
# SPDX-License-Identifier: Apache-2.0
66

77
config BOARD_POCKETBEAGLE_2
8+
select SOC_AM6232_A53 if BOARD_POCKETBEAGLE_2_AM6232_A53
89
select SOC_AM6232_M4 if BOARD_POCKETBEAGLE_2_AM6232_M4

boards/beagle/pocketbeagle_2/doc/index.rst

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ cluster with an Arm Cortex-M4F microcontroller, Imagination Technologies AXE-1-1
1717
graphics processor (from revision A1) and TI programmable real-time unit subsystem
1818
microcontroller cluster coprocessors.
1919

20-
Zephyr is ported to run on the M4F core and the following listed hardware
21-
specifications are used:
20+
Zephyr is ported to run on the both A53 cores and/or M4F core.
2221

22+
The following listed hardware specifications are used:
23+
24+
- Dual ARM Cortex-A53 cores
2325
- Low-power ARM Cortex-M4F
2426
- Memory
2527

@@ -51,19 +53,67 @@ allocates Zephyr 4kB of RAM (only for resource table: 0x9CC00000 to 0x9CC00400).
5153
Serial Port
5254
-----------
5355

56+
A53 Cores
57+
^^^^^^^^^
58+
59+
This board configuration uses single serial communication channel with the MAIN domain UART
60+
(MAIN_UART6, i.e. debug port).
61+
62+
M4F Core
63+
^^^^^^^^
64+
5465
This board configuration uses a single serial communication channel with the
5566
MCU domain UART (MCU_UART0, i.e. P2.05 as RX and P2.07 as TX).
5667

5768
SD Card
5869
*******
5970

71+
A53 Cores
72+
=========
73+
74+
Download BeagleBoard.org's official `BeagleBoard Imaging Utility`_ to create bootable
75+
SD-card with the Zephyr image. Optionally, the Zephyr SD Card images can be downloaded from
76+
`bb-zephyr-images`_.
77+
78+
M4F Core
79+
========
80+
6081
Download BeagleBoard.org's official `BeagleBoard Imaging Utility`_ to create bootable
6182
SD-card with the Linux distro image. This will boot Linux on the A53 application
6283
cores. These cores will then load the Zephyr binary on the M4 core using remoteproc.
6384

6485
Flashing
6586
********
6687

88+
A53 Core
89+
========
90+
91+
The testing requires the binary to be copied to the BOOT partition in SD card.
92+
93+
To test the A53 core, we build the :zephyr:code-sample:`hello_world` sample with the following command.
94+
95+
.. zephyr-app-commands::
96+
:board: pocketbeagle_2/am6232/a53
97+
:zephyr-app: samples/hello_world
98+
:goals: build
99+
100+
We now copy this binary onto the SD card in the :file:`/boot/` directory and name it as
101+
:file:`zephyr.bin`.
102+
103+
.. code-block:: console
104+
105+
# Mount the SD card at sdcard for example
106+
sudo mount /dev/sdX sdcard
107+
# copy the bin to the /boot/
108+
sudo cp --remove-destination zephyr.bin sdcard/boot/zephyr.bin
109+
110+
The SD card can now be used for booting.
111+
112+
The binary will run and print Hello world to the debug port.
113+
114+
M4F Core
115+
========
116+
67117
The board supports remoteproc using the OpenAMP resource table.
68118

69119
The testing requires the binary to be copied to the SD card to allow the A53 cores to load it while booting using remoteproc.
@@ -95,6 +145,9 @@ The binary will run and print Hello world to the MCU_UART0 port.
95145
Debugging
96146
*********
97147

148+
M4F Core
149+
========
150+
98151
The board supports debugging M4 core from the A53 cores running Linux. Since the target needs
99152
superuser privilege, openocd needs to be launched separately for now:
100153

@@ -119,3 +172,6 @@ References
119172

120173
.. _BeagleBoard Imaging Utility:
121174
https://github.com/beagleboard/bb-imager-rs/releases
175+
176+
.. _bb-zephyr-images:
177+
https://github.com/beagleboard/bb-zephyr-images/releases
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* Copyright (c) 2025 Ayush Singh, BeagleBoard.org Foundation
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <zephyr/dt-bindings/pinctrl/ti-k3-pinctrl.h>
8+
9+
&pinctrl {
10+
main_uart6_rx_default: main_uart6_rx_default {
11+
pinmux = <K3_PINMUX(0x001c, PIN_INPUT, MUX_MODE_3)>;
12+
};
13+
14+
main_uart6_tx_default: main_uart6_tx_default {
15+
pinmux = <K3_PINMUX(0x0020, PIN_OUTPUT, MUX_MODE_3)>;
16+
};
17+
};
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright (c) 2025 Ayush Singh, BeagleBoard.org Foundation
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
9+
#include <ti/ti_am6232_a53.dtsi>
10+
#include "pocketbeagle_2_am6232_a53-pinctrl.dtsi"
11+
12+
/ {
13+
model = "BeagleBoard.org PocketBeagle 2";
14+
compatible = "beagle,pocketbeagle_2_a53";
15+
16+
chosen {
17+
zephyr,console = &uart6;
18+
zephyr,shell-uart = &uart6;
19+
zephyr,sram = &ddr0;
20+
};
21+
22+
cpus {
23+
cpu@0 {
24+
status = "okay";
25+
};
26+
27+
cpu@1 {
28+
status = "okay";
29+
};
30+
};
31+
32+
ddr0: memory@80000000 {
33+
reg = <0x80000000 DT_SIZE_M(512)>;
34+
};
35+
};
36+
37+
&uart6 {
38+
pinctrl-0 = <&main_uart6_rx_default &main_uart6_tx_default>;
39+
pinctrl-names = "default";
40+
status = "okay";
41+
};
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
identifier: pocketbeagle_2/am6232/a53
2+
name: BeagleBoard.org PocketBeagle 2
3+
type: mcu
4+
arch: arm64
5+
toolchain:
6+
- zephyr
7+
- cross-compile
8+
ram: 524288
9+
vendor: beagle
10+
supported:
11+
- uart
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# BeagleBoard.org PocketBeagle 2
2+
#
3+
# Copyright (c) 2025 Ayush Singh, BeagleBoard.org Foundation
4+
#
5+
# SPDX-License-Identifier: Apache-2.0
6+
7+
# ARM Options
8+
CONFIG_AARCH64_IMAGE_HEADER=y
9+
CONFIG_ARMV8_A_NS=y
10+
CONFIG_ARM64_VA_BITS_36=y
11+
CONFIG_ARM64_PA_BITS_36=y
12+
13+
# Cache Options
14+
CONFIG_CACHE_MANAGEMENT=y
15+
CONFIG_DCACHE_LINE_SIZE_DETECT=y
16+
CONFIG_ICACHE_LINE_SIZE_DETECT=y
17+
18+
# Platform Configuration
19+
20+
# Zephyr Kernel Configuration
21+
CONFIG_XIP=n
22+
23+
# Serial Drivers
24+
CONFIG_SERIAL=y
25+
CONFIG_UART_INTERRUPT_DRIVEN=y
26+
27+
# Enable Console
28+
CONFIG_CONSOLE=y
29+
CONFIG_UART_CONSOLE=y
30+
31+
# Multicore Support
32+
CONFIG_SMP=y

0 commit comments

Comments
 (0)