boards/beagle/beagleplay/doc/index.rst
.. zephyr:board:: beagleplay
Overview
BeagleBoard.org BeaglePlay is an open hardware single board computer based on a TI Sitara AM6254 quad-core ARM Cortex-A53 SoC with an external TI SimpleLink multi-standard CC1352P7 wireless MCU providing long-range, low-power connectivity.
Hardware
Processors
TI Sitara AM6252 SoC
TI SimpleLink CC1352P7 Wireless MCU
Memory
Wired connectivity
Wireless connectivity
Expansion
BeaglePlay ARM Cortex-A53 CPUs typically run Linux, while the CC1352P7 Cortex-M4 typically runs Zephyr.
.. zephyr:board-supported-hw::
CC1352 reset is connected to AM62 GPIO0_14.
+-------+--------------+-------------------------------------+ | Pin | Function | Usage | +=======+==============+=====================================+ | DIO5 | N/C | | +-------+--------------+-------------------------------------+ | DIO6 | N/C | | +-------+--------------+-------------------------------------+ | DIO7 | N/C | | +-------+--------------+-------------------------------------+ | DIO8 | N/C | | +-------+--------------+-------------------------------------+ | DIO9 | N/C | | +-------+--------------+-------------------------------------+ | DIO10 | N/C | | +-------+--------------+-------------------------------------+ | DIO11 | N/C | | +-------+--------------+-------------------------------------+ | DIO12 | CC1352_RX | AM62 UART6_TXD | +-------+--------------+-------------------------------------+ | DIO13 | CC1352_TX | AM62 UART6_RXD | +-------+--------------+-------------------------------------+ | DIO14 | N/C | | +-------+--------------+-------------------------------------+ | DIO15 | CC1352_BOOT | AM62 GPIO0_13 | +-------+--------------+-------------------------------------+ | DIO16 | CC1352_TDO | TAG-CONNECT TDO | +-------+--------------+-------------------------------------+ | DIO17 | CC1352_TDI | TAG-CONNECT TDI | +-------+--------------+-------------------------------------+ | DIO18 | N/C | | +-------+--------------+-------------------------------------+ | DIO19 | N/C | | +-------+--------------+-------------------------------------+ | DIO20 | N/C | | +-------+--------------+-------------------------------------+ | DIO21 | N/C | | +-------+--------------+-------------------------------------+ | DIO22 | N/C | | +-------+--------------+-------------------------------------+ | DIO23 | N/C | | +-------+--------------+-------------------------------------+ | DIO24 | N/C | | +-------+--------------+-------------------------------------+ | DIO25 | N/C | | +-------+--------------+-------------------------------------+ | DIO26 | N/C | | +-------+--------------+-------------------------------------+ | DIO27 | LED1 | CC1352_LED1 yellow LED9 | +-------+--------------+-------------------------------------+ | DIO28 | LED2 | CC1352_LED2 yellow LED8 | +-------+--------------+-------------------------------------+ | DIO29 | RF_PA | SubG/PA Antenna mux PA enable | +-------+--------------+-------------------------------------+ | DIO30 | RF_SUB1G | SubG/PA Antenna mux SubG enable | +-------+--------------+-------------------------------------+
Programming and Debugging
.. zephyr:board-supported-runners::
To flash, disable the existing driver that ties up the serial port and use the customized BSL Python script.
Ensure the bcfserial or gb-beagleplay driver isn’t blocking the serial port. This can be done by
loading :file: /overlays/k3-am625-beagleplay-bcfserial-no-firmware.dtbo or selecting uboot
entry which disables bcfserial/gb-beagleplay.
Now reboot the board.
.. code-block:: console
sudo shutdown -r now
Install CC1352-flasher if not already installed
.. code-block:: console
if ! command -v cc1352_flasher &> /dev/null; then pip install cc1352-flasher; fi
Flash the CC1352P7
.. code-block:: console
west flash
The board supports remoteproc using the OpenAMP resource table.
The testing requires the binary to be copied to the SD card to allow the A53 cores to load it while booting using remoteproc.
To test the M4F core, we build the :zephyr:code-sample:hello_world sample with the following command.
.. zephyr-app-commands:: :board: pocketbeagle_2/am6254/m4 :zephyr-app: samples/hello_world :goals: build
This builds the program and the binary is present in the :file:build/zephyr directory as
:file:zephyr.elf.
We now copy this binary onto the SD card in the :file:/lib/firmware directory and name it as
:file:am62-mcu-m4f0_0-fw.
.. code-block:: console
sudo mount /dev/sdX sdcard
sudo cp --remove-destination zephyr.elf sdcard/lib/firmware/am62-mcu-m4f0_0-fw
The SD card can now be used for booting. The binary will now be loaded onto the M4F core on boot.
The binary will run and print Hello world to the MCU_UART0 port.
For debugging, you can use the serial port or JTAG. You can use OpenOCD over the Tag-Connect header on the board.
The board supports debugging M4 core from the A53 cores running Linux. Since the target needs superuser privilege, OpenOCD needs to be launched separately for now:
.. code-block:: console
sudo openocd -f board/ti_am625_swd_native.cfg
Start debugging
.. zephyr-app-commands:: :board: pocketbeagle_2/am6254/m4 :goals: debug
References
BeagleBoard.org BeaglePlay_Documentation <https://docs.beagleboard.org/boards/beagleplay/index.html>_.. target-notes::
.. _BeagleBoard.org BeaglePlay: https://beagleplay.org .. _Tagconnect JTAG: https://docs.beagleboard.org/latest/accessories/cables.html#tagconnect-jtag