|
| 1 | +########################### |
| 2 | +BeagleBadge Getting Started |
| 3 | +########################### |
| 4 | + |
| 5 | +******** |
| 6 | +Overview |
| 7 | +******** |
| 8 | + |
| 9 | +The BeagleBadge is a compact development platform from `BeagleBoard <https://www.beagleboard.org/>`__ powered |
| 10 | +by the `TI AM62L SoC <https://www.ti.com/product/AM62L/>`__. Designed for portable and low-power applications, |
| 11 | +it features a built-in CC33xx chip supporting WI-FI and Bluetooth applications, multiple low power modes, and |
| 12 | +an integrated fuel gauge for battery power monitoring. The board provides a rich interface including an e-paper |
| 13 | +connector, DSI connector, Grove expansion, seven-segment displays, and an RGB LED. Fully supported in TI sources, |
| 14 | +the BeagleBadge offers flexible boot options (OSPI, UART, SD, USB-DFU). It supports Zephyr or Linux (with Armbian |
| 15 | +or Arago distributions), making it an ideal open source solution for modern IoT and HMI projects. |
| 16 | + |
| 17 | +********* |
| 18 | +Boot Flow |
| 19 | +********* |
| 20 | + |
| 21 | +BeagleBadge has a `TI AM62L SoC <https://www.ti.com/product/AM62L/>`__, refer to :ref:`AM62Lx Boot Flow <Boot-Flow-label>` |
| 22 | +for more details on AM62L boot flow. |
| 23 | + |
| 24 | +************ |
| 25 | +Applications |
| 26 | +************ |
| 27 | + |
| 28 | +- Deep Sleep Low Power mode as low as 350mW power draw |
| 29 | +- RTC only mode with 3-5mW power draw |
| 30 | +- E-Paper display support with tinyDRM |
| 31 | +- Battery-powered with fuel gauge monitoring |
| 32 | + |
| 33 | +***************** |
| 34 | +Low level sources |
| 35 | +***************** |
| 36 | + |
| 37 | +.. list-table:: |
| 38 | + :header-rows: 1 |
| 39 | + :widths: 15, 15, 15 |
| 40 | + |
| 41 | + * - Component |
| 42 | + - Branch |
| 43 | + - Source File |
| 44 | + * - U-Boot |
| 45 | + - `ti-u-boot-2025.01 <https://git.ti.com/cgit/ti-u-boot/ti-u-boot/log/?h=ti-u-boot-2025.01>`__ |
| 46 | + - :file:`configs/am62lx_beaglebadge_defconfig` |
| 47 | + * - Linux Kernel |
| 48 | + - `ti-linux-6.12.y <https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-linux-6.12.y>`__ |
| 49 | + - :file:`arch/arm64/boot/dts/ti/k3-am62l3-beaglebadge.dts` |
| 50 | + |
| 51 | +*********************** |
| 52 | +Supported Distributions |
| 53 | +*********************** |
| 54 | + |
| 55 | +.. list-table:: |
| 56 | + :header-rows: 1 |
| 57 | + :widths: 15, 15 |
| 58 | + |
| 59 | + * - Component |
| 60 | + - Branch |
| 61 | + * - Armbian |
| 62 | + - `2025.12-beaglebadge <https://github.com/TexasInstruments/armbian-build/tree/2025.12-beaglebadge>`__ |
| 63 | + * - Arago |
| 64 | + - `Scarthgap <https://github.com/TexasInstruments/meta-tisdk/tree/scarthgap>`__ |
| 65 | + |
| 66 | +************************ |
| 67 | +Building for BeagleBadge |
| 68 | +************************ |
| 69 | + |
| 70 | +.. code-block:: console |
| 71 | +
|
| 72 | + $ git clone https://git.ti.com/git/arago-project/oe-layersetup.git tisdk |
| 73 | + $ cd tisdk |
| 74 | + $ ./oe-layertool-setup.sh -f configs/arago-scarthgap-config.txt |
| 75 | + $ cd build |
| 76 | + $ . conf/setenv |
| 77 | + $ export MACHINE=beaglebadge-ti |
| 78 | + $ ARAGO_SYSVINIT=1 bitbake -k tisdk-tiny-image |
| 79 | +
|
| 80 | +For more information on building Arago for BeagleBadge, go :ref:`here <building-the-sdk-with-yocto>`. |
| 81 | + |
| 82 | +.. note:: |
| 83 | + |
| 84 | + Yocto: Due to the 256MB size of LPDDR on BeagleBadge, there may be limited free memory (about 17-20MB) |
| 85 | + for developing applications with the **default**, TI-provided Arago distribution image. Switching to |
| 86 | + sysVinit for init system instead of systemd can help reduce the memory footprint further. Please go |
| 87 | + `here <https://www.linuxjournal.com/content/embracing-future-transition-sysvinit-systemd-linux>`__ |
| 88 | + for a comparison of both init systems. |
| 89 | + |
| 90 | +To build Armbian for BeagleBadge, refer to **Debian SDK user manual** found `here <https://www.ti.com/tool/download/AM62L-LINUX-SDK>`__. |
| 91 | + |
| 92 | +******************* |
| 93 | +Booting BeagleBadge |
| 94 | +******************* |
| 95 | + |
| 96 | +BeagleBadge supports four boot modes with the following configuration: |
| 97 | + |
| 98 | ++-------------------------+-------------------+------------------+ |
| 99 | +| Button *Select* Pressed | Primary boot mode | Backup boot mode | |
| 100 | ++=========================+===================+==================+ |
| 101 | +| Yes | SD boot | USB-DFU boot | |
| 102 | ++-------------------------+-------------------+------------------+ |
| 103 | +| No | OSPI boot | UART boot | |
| 104 | ++-------------------------+-------------------+------------------+ |
| 105 | + |
| 106 | +In the following instructions, assume /dev/ttyUSB0 is the serial port enumerated |
| 107 | +on host machine from BeagleBadge USB C connection. |
| 108 | + |
| 109 | +SD boot |
| 110 | +======= |
| 111 | + |
| 112 | + 1. Flash SD card with Debian or Arago image |
| 113 | + 2. Insert Micro SD card |
| 114 | + 3. Press & hold **Select** until step 5 |
| 115 | + 4. Connect USB C cable |
| 116 | + 5. Connect to /dev/ttyUSB0 on host machine |
| 117 | + |
| 118 | +OSPI boot |
| 119 | +========= |
| 120 | + |
| 121 | + 1. Boot via SD boot and stop at u-boot prompt |
| 122 | + 2. Flash OSPI |
| 123 | + |
| 124 | + .. code-block:: console |
| 125 | +
|
| 126 | + => sf probe |
| 127 | + SF: Detected is25wx256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB |
| 128 | + => fatload mmc 1 ${loadaddr} tiboot3.bin |
| 129 | + 221296 bytes read in 11 ms (19.2 MiB/s) |
| 130 | + => sf update ${loadaddr} 0 ${filesize} |
| 131 | + device 0 offset 0x0, size 0x36070 |
| 132 | + SF: 221296 bytes @ 0x0 Written: OK |
| 133 | + => fatload mmc 1 ${loadaddr} tispl.bin |
| 134 | + 1464080 bytes read in 62 ms (22.5 MiB/s) |
| 135 | + => sf update ${loadaddr} 0x80000 ${filesize} |
| 136 | + device 0 offset 0x80000, size 0x165710 |
| 137 | + SF: 1464080 bytes @ 0x80000 Written: OK |
| 138 | + => fatload mmc 1 ${loadaddr} u-boot.img |
| 139 | + 1314747 bytes read in 57 ms (22 MiB/s) |
| 140 | + => sf update ${loadaddr} 0x280000 ${filesize} |
| 141 | + device 0 offset 0x280000, size 0x140fbb |
| 142 | + SF: 1314747 bytes @ 0x280000 Written: OK |
| 143 | +
|
| 144 | + 3. Cold reset the board by disconnecting and reconnecting USB C cable. |
| 145 | + 4. Reconnect to /dev/ttyUSB0 on host machine |
| 146 | + |
| 147 | +UART boot |
| 148 | +========= |
| 149 | + |
| 150 | + 1. Connect USB C cable |
| 151 | + 2. Connect to /dev/ttyUSB0 on host machine |
| 152 | + 3. Run the following instructions on host machine: |
| 153 | + |
| 154 | + .. code-block:: console |
| 155 | +
|
| 156 | + $ sb --xmodem tiboot3.bin > /dev/ttyUSB0 < /dev/ttyUSB0 |
| 157 | + $ sb --xmodem tispl.bin > /dev/ttyUSB0 < /dev/ttyUSB0 |
| 158 | + $ sb --ymodem u-boot.img > /dev/ttyUSB0 < /dev/ttyUSB0 |
| 159 | +
|
| 160 | +USB-DFU boot |
| 161 | +============ |
| 162 | + |
| 163 | + 1. Press & hold **Select** until step 4 |
| 164 | + 2. Connect USB C cable |
| 165 | + 3. Connect to /dev/ttyUSB0 on host machine |
| 166 | + 4. Send boot loader binaries from host MACHINE |
| 167 | + |
| 168 | + .. code-block:: console |
| 169 | +
|
| 170 | + $ sudo -E -S dfu-util -R -a bootloader -D tiboot3.bin |
| 171 | + $ sudo -E -S dfu-util -R -a bootloader -D tispl.bin |
| 172 | + $ sudo -E -S dfu-util -R -a u-boot.img -D u-boot.img |
| 173 | +
|
| 174 | +Any of the above boot methods can be used to boot to u-boot prompt, |
| 175 | +from here, loading the rootfs is generic and can be loaded from SD |
| 176 | +card, OSPI flash, or USB DFU as is discussed in other sections of this |
| 177 | +documentation. |
0 commit comments