Documentation/arm64: add AM62x board bring-up guides

Document the AM62x platform and add board guides for BeaglePlay and
PocketBeagle2. The BeaglePlay guide includes the validated manual
U-Boot boot flow used for hardware testing.

Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
This commit is contained in:
Piyush Patle
2026-05-28 22:21:38 +08:00
committed by Xiang Xiao
parent fe718b397d
commit 90219df0ec
3 changed files with 251 additions and 0 deletions
@@ -0,0 +1,120 @@
==========
BeaglePlay
==========
.. tags:: chip:am62x, arch:arm64, vendor:beagleboard
`BeaglePlay <https://www.beagleboard.org/boards/beagleplay>`_ is an
open-hardware single-board computer from BeagleBoard.org based on the
TI AM6254 SoC.
Features
========
* TI AM6254 quad-core Arm Cortex-A53 SoC
* 2 GiB DDR4
* microSD and on-board eMMC boot options
* USB-C debug port with serial console access
* Four user LEDs
* Gigabit Ethernet, USB, Wi-Fi, and Bluetooth hardware on the board
Current NuttX support is limited to early boot, the 16550 serial console,
interactive NSH, and ``procfs`` mount during board bring-up. GPIO, LEDs,
I2C, SPI, MMC/SD, Ethernet, Wi-Fi, Bluetooth, and USB runtime support are
not implemented yet.
Buttons and LEDs
================
BeaglePlay exposes four user LEDs connected to the AM62x main GPIO block:
====== ======== ==================
LED GPIO Notes
====== ======== ==================
USR0 GPIO1_22 Green user LED
USR1 GPIO1_23 Yellow user LED
USR2 GPIO1_24 Red user LED
USR3 GPIO1_25 Blue user LED
====== ======== ==================
The current NuttX port does not yet provide functional GPIO-backed LED
control. The ``CONFIG_ARCH_LEDS`` hooks are present as placeholders only.
Serial Console
==============
Use the BeaglePlay **DEBUG** USB-C port and a host serial terminal at
**115200 8N1**.
Pin Mapping
===========
The current bring-up uses the on-board debug interfaces rather than the
expansion headers:
=========== ====================== =======================================
Interface SoC signal Notes
=========== ====================== =======================================
DEBUG USB-C UART0 Default NuttX serial console
microSD MMC1 Validated boot media for ``nuttx.bin``
USR0-3 GPIO1_22 through 1_25 User LEDs, not yet driven by NuttX
=========== ====================== =======================================
Power Supply
============
Follow the BeagleBoard.org board documentation for the supported USB-C power
inputs and peripherals. For NuttX bring-up, use the dedicated **DEBUG**
USB-C port for the serial console and the normal power path for board power.
Installation
============
Install an ``aarch64-none-elf`` bare-metal toolchain and make sure its
``bin`` directory is on your ``PATH``.
One option is the
`Arm GNU Toolchain <https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads>`_.
Building NuttX
==============
.. code:: console
$ ./tools/configure.sh beagleplay:nsh
$ make -j$(nproc) CROSS_COMPILE=aarch64-none-elf-
A successful build produces ``nuttx`` and ``nuttx.bin``.
Flashing
========
The currently validated boot path loads ``nuttx.bin`` from a FAT partition on
microSD using the BeaglePlay U-Boot prompt.
1. Format a microSD card with a single FAT32 partition.
2. Copy ``nuttx.bin`` to the root of the card.
3. Insert the card and connect the **DEBUG** USB-C serial cable.
4. Stop at the U-Boot prompt and run:
.. code:: console
=> mmc dev 1 0
=> fatload mmc 1:1 0x82000000 nuttx.bin
=> go 0x82000000
5. Confirm the board reaches the NuttX prompt:
.. code:: text
NuttShell (NSH) NuttX-12.x
nsh>
Configurations
==============
``beagleplay:nsh``
Interactive NSH configuration for serial bring-up and shell access.
``beagleplay:ostest``
Hardware validation configuration that boots directly into ``ostest_main``.
@@ -0,0 +1,110 @@
==============
PocketBeagle 2
==============
.. tags:: chip:am62x, arch:arm64, vendor:beagleboard
`PocketBeagle 2 <https://docs.beagleboard.org/boards/pocketbeagle-2/>`_ is a
compact open-hardware board from BeagleBoard.org based on the TI AM6254 SoC.
Features
========
* TI AM6254 quad-core Arm Cortex-A53 SoC
* 512 MiB DDR4
* microSD boot with on-board QSPI boot firmware
* USB-C debug/power connection with serial console access
* Expansion headers for GPIO, I2C, SPI, UART, PWM, and ADC
* User LEDs exposed by the board port
Current NuttX support is limited to early boot, the 16550 serial console,
interactive NSH, and ``procfs`` mount during board bring-up. GPIO, functional
LED control, I2C, SPI, MMC/SD runtime support, Ethernet, and USB runtime
support are not implemented yet.
Buttons and LEDs
================
The current NuttX board port defines three logical user LEDs:
====== ======== =====================
LED Colour Notes
====== ======== =====================
USR0 Green ``CONFIG_ARCH_LEDS`` placeholder
USR1 Amber ``CONFIG_ARCH_LEDS`` placeholder
USR2 Red ``CONFIG_ARCH_LEDS`` placeholder
====== ======== =====================
These LEDs are not driven yet because AM62x GPIO support has not been added.
Serial Console
==============
AM62x UART6 is routed to the USB-C debug interface. In the current NuttX
configuration it is exposed as the first 16550 console device. Connect the
USB-C cable to your host and open the enumerated serial port at **115200 8N1**.
Pin Mapping
===========
The current bring-up primarily relies on the on-board debug path:
=========== ====================== =======================================
Interface SoC signal Notes
=========== ====================== =======================================
USB-C debug UART6 Default NuttX serial console
microSD MMC1 Validated boot media for ``nuttx.bin``
USR0-2 Board user LEDs Not yet driven by NuttX GPIO support
=========== ====================== =======================================
Power Supply
============
PocketBeagle 2 can be powered through its USB-C connector. Follow the vendor
documentation for external peripherals and header power limits during bring-up.
Installation
============
Install an ``aarch64-none-elf`` bare-metal toolchain and make sure its
``bin`` directory is on your ``PATH``.
One option is the
`Arm GNU Toolchain <https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads>`_.
Building NuttX
==============
.. code:: console
$ ./tools/configure.sh pocketbeagle2:nsh
$ make -j$(nproc) CROSS_COMPILE=aarch64-none-elf-
A successful build produces ``nuttx`` and ``nuttx.bin``.
Flashing
========
PocketBeagle 2 boots NuttX from microSD using the U-Boot firmware already
present in on-board flash.
1. Format a microSD card with a single FAT32 partition.
2. Copy ``nuttx.bin`` and ``boards/arm64/am62x/pocketbeagle2/scripts/uEnv.txt``
to the root of the card.
3. Insert the card and connect the USB-C debug cable.
4. Power on the board and let U-Boot load the image automatically.
5. Confirm the board reaches the NuttX prompt:
.. code:: text
NuttShell (NSH) NuttX-12.x
nsh>
Configurations
==============
``pocketbeagle2:nsh``
Interactive NSH configuration for serial bring-up and shell access.
``pocketbeagle2:ostest``
Hardware validation configuration that boots directly into ``ostest_main``.
@@ -0,0 +1,21 @@
============
TI AM62x
============
`TI AM62x <https://www.ti.com/product/AM6254>`_ is a family of ARM64 SoCs from
Texas Instruments featuring:
- **CPU:** Quad-Core ARM Cortex-A53 (up to 1.4 GHz)
- **Interrupt Controller:** ARM GIC-600 (GICv3), 480 SPIs
- **Boot:** ROM → R5 SYSFW (TIFS) → U-Boot SPL → U-Boot → NuttX
- **Memory:** External DDR4/LPDDR4 (512 MB 2 GB depending on board)
- **UART:** Seven 16550-compatible UARTs (48 MHz clock)
Supported Boards
================
.. toctree::
:glob:
:maxdepth: 1
boards/*/*