Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 120 additions & 0 deletions Documentation/platforms/arm64/am62x/boards/beagleplay/index.rst
Comment thread
xiaoxiang781216 marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -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``.
110 changes: 110 additions & 0 deletions Documentation/platforms/arm64/am62x/boards/pocketbeagle2/index.rst
Comment thread
xiaoxiang781216 marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -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``.
21 changes: 21 additions & 0 deletions Documentation/platforms/arm64/am62x/index.rst
Original file line number Diff line number Diff line change
@@ -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/*/*
22 changes: 22 additions & 0 deletions arch/arm64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,23 @@ choice
prompt "ARM64 chip selection"
default ARCH_CHIP_QEMU

config ARCH_CHIP_AM62X
bool "TI AM62x"
select ARCH_CORTEX_A53
select ARCH_HAVE_ADDRENV
select ARCH_HAVE_RESET
select ARCH_HAVE_IRQTRIGGER
select ARCH_NEED_ADDRENV_MAPPING
select ARCH_USE_MMU
select ARMV8A_HAVE_GICv3
select ARM64_HAVE_PSCI
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_LOWPUTC
---help---
Texas Instruments AM62x family (AM6232, AM6252, AM6254).
Quad Cortex-A53 @ up to 1.4 GHz. Supported boards:
PocketBeagle 2, BeaglePlay.

config ARCH_CHIP_A64
bool "Allwinner A64"
select ARCH_CORTEX_A53
Expand Down Expand Up @@ -362,6 +379,7 @@ config ARCH_FAMILY

config ARCH_CHIP
string
default "am62x" if ARCH_CHIP_AM62X
default "a64" if ARCH_CHIP_A64
default "a527" if ARCH_CHIP_SUNXI_A527
default "rk3399" if ARCH_CHIP_RK3399
Expand Down Expand Up @@ -502,6 +520,10 @@ config ARM64_PA_BITS

The choice could be: 32, 36, 42, 48

if ARCH_CHIP_AM62X
source "arch/arm64/src/am62x/Kconfig"
endif

if ARCH_CHIP_A64
source "arch/arm64/src/a64/Kconfig"
endif
Expand Down
Loading
Loading