-
Notifications
You must be signed in to change notification settings - Fork 1.6k
arm64/am62x: add initial BeaglePlay and PocketBeagle2 bring-up #18907
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
xiaoxiang781216
merged 5 commits into
apache:master
from
PiyushPatle26:am62x-beagleplay-bringup
May 28, 2026
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
238e9ab
arm64/common: enable EL1 GICv3 sysreg access from EL2
PiyushPatle26 291ea80
drivers/serial/16550: fix AM62x console bring-up
PiyushPatle26 833ecce
arm64/am62x: add core boot and serial support
PiyushPatle26 b95f4ea
boards/arm64/am62x: add BeaglePlay and PocketBeagle2
PiyushPatle26 f3ce813
Documentation/arm64: add AM62x board bring-up guides
PiyushPatle26 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
120 changes: 120 additions & 0 deletions
120
Documentation/platforms/arm64/am62x/boards/beagleplay/index.rst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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
110
Documentation/platforms/arm64/am62x/boards/pocketbeagle2/index.rst
|
xiaoxiang781216 marked this conversation as resolved.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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``. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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/*/* |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.