mirror of
https://github.com/apache/nuttx.git
synced 2026-09-22 22:45:44 +08:00
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:
@@ -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/*/*
|
||||
Reference in New Issue
Block a user