-
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
Open
PiyushPatle26
wants to merge
6
commits into
apache:master
Choose a base branch
from
PiyushPatle26:am62x-beagleplay-bringup
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
3ab6d5b
arm64/common: enable EL1 GICv3 sysreg access from EL2
PiyushPatle26 9cbcddb
drivers/serial/16550: fix AM62x console bring-up
PiyushPatle26 cd7ad3d
arm64/am62x: add core boot and serial support
PiyushPatle26 284685d
boards/arm64/am62x: add BeaglePlay and PocketBeagle2
PiyushPatle26 5e9c960
Documentation/arm64: add AM62x board bring-up guides
PiyushPatle26 cc74e93
boards/arm64/am62x: normalize defconfigs
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
111 changes: 111 additions & 0 deletions
111
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,111 @@ | ||
| ==================== | ||
| BeaglePlay (AM62x) | ||
| ==================== | ||
|
|
||
| .. tags:: chip:am62x, arch:arm64 | ||
|
|
||
| Overview | ||
| ======== | ||
|
|
||
| The `BeaglePlay <https://www.beagleboard.org/boards/beagleplay>`_ is an | ||
| open-source single-board computer from BeagleBoard.org based on the | ||
| Texas Instruments **AM6254** SoC (Sitara AM62x family). | ||
|
|
||
| Relevant AM6254 SoC features include: | ||
|
|
||
| - 4x Arm Cortex-A53 cores @ up to 1.4 GHz | ||
| - 2 GiB DDR4 RAM | ||
| - TI K3 interrupt architecture (GICv3 + TI-SCI firmware) | ||
| - Main domain UARTs compatible with 16550 | ||
|
|
||
| NuttX currently supports **basic bring-up** on BeaglePlay: | ||
|
|
||
| - serial console on the DEBUG USB-C port | ||
| - interactive NSH shell | ||
| - ``procfs`` mounting as part of board bring-up | ||
|
|
||
| Many peripherals are not yet enabled in this port. | ||
|
|
||
| Serial Console | ||
| ============== | ||
|
|
||
| Use the BeaglePlay **DEBUG** USB-C port and a host serial terminal at | ||
| **115200 8N1**. | ||
|
|
||
| Supported Features | ||
| ================== | ||
|
|
||
| The current BeaglePlay port provides: | ||
|
|
||
| - early serial output during boot | ||
| - 16550-based runtime serial console | ||
| - interactive NSH | ||
| - ``procfs`` mounted at ``/proc`` | ||
|
|
||
| Not yet supported: | ||
|
|
||
| - eMMC / SDMMC block driver support in NuttX | ||
| - Ethernet | ||
| - Wi-Fi / Bluetooth | ||
| - USB host/device | ||
| - GPIO / LEDs | ||
| - I2C / SPI peripherals | ||
|
|
||
| Building | ||
| ======== | ||
|
|
||
| Configure and build with the GNU AArch64 bare-metal toolchain: | ||
|
|
||
| .. code:: console | ||
|
|
||
| $ ./tools/configure.sh beagleplay:nsh | ||
| $ make -j$(nproc) CROSS_COMPILE=aarch64-none-elf- | ||
|
|
||
| A successful build produces ``nuttx`` (ELF) and ``nuttx.bin`` (raw binary). | ||
|
|
||
| Booting NuttX from a microSD card | ||
| ================================== | ||
|
|
||
| BeaglePlay ships with BeagleBoard.org U-Boot on the onboard eMMC. | ||
| The currently validated BeaglePlay bring-up path uses manual U-Boot commands | ||
| to load the raw ``nuttx.bin`` image from the first FAT partition on the | ||
| microSD card and jump to it directly. | ||
|
|
||
| 1. **Format** a microSD card with a single FAT32 partition. | ||
|
|
||
| 2. **Copy** ``nuttx.bin`` to the card root. | ||
|
|
||
| 3. **Insert** the microSD card and connect the USB-C **DEBUG** cable. | ||
|
|
||
| 4. **Open** a serial terminal at 115200 baud on the host. | ||
|
|
||
| 5. **Stop** at the U-Boot prompt and run: | ||
|
|
||
| .. code:: | ||
|
|
||
| mmc dev 1 0 | ||
| fatload mmc 1:1 0x82000000 nuttx.bin | ||
| go 0x82000000 | ||
|
|
||
| These commands select the BeaglePlay microSD user area, load ``nuttx.bin`` | ||
| to ``0x8200_0000``, and jump to it directly. Expected output: | ||
|
|
||
| .. code:: | ||
|
|
||
| NuttShell (NSH) NuttX-12.x | ||
| nsh> | ||
|
|
||
| .. note:: | ||
|
|
||
| BeaglePlay has two USB-C ports. Use the one labelled **DEBUG** (next | ||
| to the Ethernet jack) for the serial console. The other USB-C port is | ||
| for USB host/device only. | ||
|
|
||
| Configurations | ||
| ============== | ||
|
|
||
| ``beagleplay:nsh`` | ||
| Default interactive shell configuration. | ||
|
|
||
| ``beagleplay:ostest`` | ||
| Dedicated hardware validation image that boots directly into ``ostest_main``. |
129 changes: 129 additions & 0 deletions
129
Documentation/platforms/arm64/am62x/boards/pocketbeagle2/index.rst
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please follow the template in
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Have done the same for pocket beagle 2 as well |
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,129 @@ | ||
| ========================== | ||
| BeagleBoard PocketBeagle 2 | ||
| ========================== | ||
|
|
||
| .. tags:: chip:am62x | ||
|
|
||
| `PocketBeagle 2 <https://docs.beagleboard.org/boards/pocketbeagle-2/>`_ is a | ||
| low-cost, open-hardware single-board computer from BeagleBoard.org based on | ||
| the TI AM6254 SoC. | ||
|
|
||
| Features | ||
| ======== | ||
|
|
||
| - **SoC:** TI AM6254 | ||
| - **CPU:** Quad-Core ARM Cortex-A53 @ 1.4 GHz | ||
| - **Interrupt Controller:** ARM GIC-600 (GICv3) | ||
| - **RAM:** 512 MB DDR4 | ||
| - **Storage:** microSD, 512 MB onboard QSPI flash | ||
| - **USB:** USB-C (power + debug UART), USB 2.0 host | ||
| - **Expansion:** 2 × 36-pin headers (GPIO, I2C, SPI, UART, PWM, ADC) | ||
| - **LEDs:** 4 × user LEDs (USR0–USR3) | ||
|
|
||
| Serial Console | ||
| ============== | ||
|
|
||
| UART6 is brought out on the **USB-C debug port** via an onboard | ||
| USB-to-serial bridge. Connect the USB-C cable to your host PC and open | ||
| the enumerated serial port at **115200 8N1**: | ||
|
|
||
| .. code:: console | ||
|
|
||
| $ picocom -b 115200 /dev/ttyUSB0 | ||
| # or | ||
| $ screen /dev/ttyUSB0 115200 | ||
|
|
||
| If UART0 pins are needed on the expansion header instead: | ||
|
|
||
| ====== ======== ========= | ||
| Signal Header Pin | ||
| ====== ======== ========= | ||
| TX P1 Pin 11 | ||
| RX P1 Pin 13 | ||
| GND P1 Pin 1 | ||
| ====== ======== ========= | ||
|
|
||
| LEDs | ||
| ==== | ||
|
|
||
| The four user LEDs are driven by GPIO: | ||
|
|
||
| ====== ======== ======= | ||
| LED GPIO Default | ||
| ====== ======== ======= | ||
| USR0 GPIO0_10 Heartbeat (CONFIG_ARCH_LEDS) | ||
| USR1 GPIO0_11 Off | ||
| USR2 GPIO0_12 Off | ||
| USR3 GPIO0_13 Off | ||
| ====== ======== ======= | ||
|
|
||
| ARM64 Toolchain | ||
| =============== | ||
|
|
||
| Download the **AArch64 Bare-Metal** toolchain (``aarch64-none-elf``) from | ||
| `Arm GNU Toolchain Downloads <https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads>`_ | ||
| and add its ``bin/`` directory to your ``PATH``. | ||
|
|
||
| Verify: | ||
|
|
||
| .. code:: console | ||
|
|
||
| $ aarch64-none-elf-gcc -v | ||
|
|
||
| Building | ||
| ======== | ||
|
|
||
| .. code:: console | ||
|
|
||
| $ cd nuttx | ||
| $ ./tools/configure.sh pocketbeagle2:nsh | ||
| $ make -j$(nproc) CROSS_COMPILE=aarch64-none-elf- | ||
|
|
||
| A successful build produces ``nuttx`` (ELF) and ``nuttx.bin`` (raw binary). | ||
|
|
||
| Booting NuttX from a microSD card | ||
| ================================== | ||
|
|
||
| PocketBeagle 2 ships with BeagleBoard.org U-Boot on the onboard QSPI flash. | ||
| U-Boot automatically reads a ``uEnv.txt`` file from the first FAT partition | ||
| of the microSD card, so **no manual U-Boot commands are needed** — just copy | ||
| two files onto the card. | ||
|
|
||
| 1. **Format** a microSD card with a single FAT32 partition. | ||
|
|
||
| 2. **Copy** ``nuttx.bin`` and a ``uEnv.txt`` file to the card root. | ||
|
|
||
| Create ``uEnv.txt`` with the following content: | ||
|
|
||
| .. code:: | ||
|
|
||
| uenvcmd=fatload mmc 1:1 0x82000000 nuttx.bin; go 0x82000000 | ||
|
|
||
| 3. **Insert** the microSD card and connect the USB-C debug cable. | ||
|
|
||
| 4. **Open** a serial terminal at 115200 baud on the host. | ||
|
|
||
| 5. **Power on** the board. U-Boot reads ``uEnv.txt``, loads ``nuttx.bin`` | ||
| to ``0x8200_0000``, and jumps to it automatically. Expected output: | ||
|
|
||
| .. code:: | ||
|
|
||
| NuttShell (NSH) NuttX-12.x | ||
| nsh> | ||
|
|
||
| If you see the U-Boot countdown instead (``Hit any key to stop autoboot``), | ||
| check that ``uEnv.txt`` is in the root of the FAT partition and that the | ||
| spelling and address are exact. | ||
|
|
||
| Configurations | ||
| ============== | ||
|
|
||
| nsh | ||
| --- | ||
|
|
||
| Minimal NuttShell (NSH) configuration. Provides an interactive shell over | ||
| UART6. All debug options are enabled for initial bring-up. | ||
|
|
||
| .. code:: console | ||
|
|
||
| $ ./tools/configure.sh pocketbeagle2:nsh |
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please follow the template in
Documentation/contributing/doc_templates/board.rstThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reworked the page to follow the board documentation template more closely: features, buttons/LEDs, serial console, pin mapping, power, installation, build, flashing, and configurations.