1 BeagleBone Black

Contents

1.1 Board Overview

BeagleBone Black is a low-cost, community-supported development platform for developers and hobbyists.

../../../../_images/am335x-bbb.jpg

Fig. 1.51 BeagleBone Black Top and Bottom Views

1.1.1 Block Diagram

../../../../_images/am335x-bbb-block-diagram.jpg

Fig. 1.52 BeagleBone Black Block Diagram

1.1.2 Specification

Table 1.27 BeagleBone Black Specification

Model

BeagleBone Black

Processor

Texas Instruments AM3358 (Sitara AM3358BZCZ100)
1 x ARM Cortex-A8
frequency up to 1.0 GHz
3D graphics accelerator
NEON floating-point accelerator
2 × PRU 32-bit microcontrollers

GPU

SGX530 3D, 20M Polygons/s

PMIC

TPS65217C PMIC regulator and one additional LDO

Memory

512 MiB DDR3L SDRAM

Storage

4 GB, 8-bit Embedded MMC (eMMC)
microSD card

Debug

Optional Onboard 20-pin CTI JTAG, Serial Header

USB

1 × Type A USB 2.0 Host LS/FS/HS
1 × miniUSB (client mode)

Video

1 × HDMI interface (microHDMI)
16b HDMI, 1280x1024 (MAX)
1024x768, 1280x720, 1440x900, 1920x1080@24Hz w/EDID Support

Audio

Via HDMI Interface, Stereo

Ethernet

1 × 10/100 RJ45 Ethernet (SMSC PHY)

Expansion Connectors (3.3V I/O on all signals)

5V, 3.3V, VDD_ADC(1.8V)
1 × McASP
1 × SPI
1 × I2C
69 × GPIO
1 × LCD
1 × GPMC
2 × MMC
7 × AIN (1.8V max),
4 × Timers
4 × Serial Ports
1 × CAN
2 × EHRPWM
DMA Interrupt
Power button
Expansion Board ID (up to 4 can be stacked)

Power Source

miniUSB USB or DC Jack

Power

5V/1A DC input jack

1.2 Build Targets

1.2.1 Machines

Table 1.28 Supported Machines

Board[1]

Target YAML[2]

Machine[3]

Target Recipe(s)[4]

Running Media[5]

Installation Media[6]

BeagleBone Black

am335x-bbb-sd.yml

am335x-bbb-sd

tanowrt-image-full-swu

microSD card

am335x-bbb-emmc.yml

am335x-bbb-emmc

tanowrt-image-full-swu-factory

internal eMMC

microSD card

1.2.2 Images

Table 1.29 Supported Images

Read-Only Root Filesystem Image

Recipe[7]

Supported by Target(s)

Description

tanowrt-image-full

tanowrt-image-full

All

Standard TanoWrt image.

tanowrt-image-full-swu

All

Standard TanoWrt image and firmware upgrade image. When building this image, tanowrt-image-full will also be built as dependency.

tanowrt-image-full-swu-factory

am335x-bbb-emmc.yml

Factory installation image for standard TanoWrt image. When building this image, tanowrt-image-full and tanowrt-image-full-swu will also be built as dependencies.

1.3 Build

Please read the common information on how to perform a TanoWrt images build and preparing the build environment in section “Building TanoWrt”.

See also

  • See section Section 1.2.1 to select the required target YAML file (<target-yml>).

  • See section Section 1.2.2 to select the required root filesystem image recipe (<target-recipe>).

  • See section Section 1.5 for detailed information about the produced build artifacts.

1.3.1 Examples

1.3.1.1 Build Default Images for BeagleBone Black Board

For SD Card

$ kas build targets/kas/am335x-bbb-sd.yml

Default images will be produced to boot and run from the SD card on the BeagleBone Black target board.

For Internal eMMC Flash

$ kas build targets/kas/am335x-bbb-emmc.yml

An initial factory installation image will be generated, intended to run from the SD card. The installer image will install the default image to the internal eMMC flash memory and further the BeagleBone Black board will boot and run from the eMMC flash memory.

1.4 Partitioning Layouts

1.4.1 microSD

The partitioning and data layout of the microSD card image for the BeagleBone Black board are shown in the figure below.

../../../../_images/am335x-bbb-layout-sd.svg

Fig. 1.53 BeagleBone Black Partitions Layout for microSD Card

1.4.2 eMMC

The partitioning and data layout of the eMMC image for the BeagleBone Black board are shown in the figure below.

../../../../_images/am335x-bbb-layout-emmc.svg

Fig. 1.54 BeagleBone Black Partitions Layout for eMMC

The ROM2 (Boot Partition 1, /dev/mmcblk1boot0) and ROM3 (Boot Partition 2, /dev/mmcblk1boot1) eMMC hardware partitions are currently not used. TI AM335x devices does not support booting from eMMC boot partitions. Only boot from user area is supported.

In the future, it is planned to use SPL (MLO) to select the partition depending on the Boot Partition [179] register value from the EXTCSD area. On boot partitions it is planned to store redundant U-Boot and startup script images.

1.5 Produced Build Artifacts

All produced build artifacts are stored in the ~/tanowrt/build/tanowrt-glibc/deploy/images/<MACHINE> directory. Refer to table Produced Build Artifacts for a description of some common (not all) build artifacts.

Table 1.30 Produced Build Artifacts

Artifact

Target(s)

Description

Bootloader (SPL)

MLO-sdcard-defconfig

All

MLO binary blob for microSD card images.

MLO-emmc-defconfig

am335x-bbb-emmc.yml

MLO binary blob for eMMC images.

Bootloader (U-Boot)

startup-<MACHINE>.img

All

U-Boot startup script.

startup-factory-<MACHINE>.img

am335x-bbb-emmc.yml

U-Boot startup script for factory installation image.

u-boot-initial-env-<MACHINE>-sdcard-defconfig

All

U-Boot initial environment image for microSD card image.

u-boot-initial-env-<MACHINE>-emmc-defconfig

am335x-bbb-emmc.yml

U-Boot initial environment image for internal eMMC flash.

u-boot-<MACHINE>.bin-sdcard-defconfig

All

U-Boot binary image for booting from microSD card.

u-boot-<MACHINE>.bin-emmc-defconfig

am335x-bbb-emmc.yml

U-Boot binary image for booting from internal eMMC flash.

Linux Kernel and DTB

fitImage-<MACHINE>.bin

All

Flattened Image Tree (FIT) image with Linux kernel and Device Tree Blobs (DTB).

fitImage-<MACHINE>.ext4

All

FIT image packed into an ext4 file system image.

am335x-boneblack.dtb

All

Target Device Tree Blob (DTB).

fitImage-tanowrt-image-initramfs-swu-factory-<MACHINE>.ext4

am335x-bbb-emmc.yml

FIT image for SWU factory installation image with initramfs image.

Images

<rootfs-image>-<MACHINE>.sdcard.img

am335x-bbb-sd.yml

SD card image including all required partitions for booting and running the system. This image is ready to be written to the SD card using the dd utility or similar (see Writing Images).

<rootfs-image>-swu-factory-<MACHINE>.sdcard.img

am335x-bbb-emmc.yml

SD card factory installation image. This image is ready to be written to the SD card using the dd utility or similar (see Writing Images).

tanowrt-image-initramfs-swu-factory-<MACHINE>.cpio.gz

am335x-bbb-emmc.yml

Root filesystem initramfs image for factory installtion image. This image is included in fitImage-tanowrt-image-initramfs-swu-factory-<MACHINE>.ext4.

<rootfs-image>-<MACHINE>.squashfs-lzo

All

Root filesystem image (squashfs with LZO compression).

<rootfs-image>-swu-<MACHINE>.swu

All

Firmware upgrade image.

Note

<MACHINE> in the artifacts path and artifact file names are replaced by the actual value of the MACHINE BitBake variable for the chosen target. <rootfs-image> is replaced by the actual read-only root filesystem image name.

For example, below is the lists of artifacts produced by the am335x-bbb-emmc.yml and am335x-bbb-sd.yml target builds. There are two types of listings here — a complete listing, and a reduced listing without the symbolic links display.

1.5.1 Build Artifacts Listings for am335x-bbb-sd.yml Target

[~/tanowrt/build/tanowrt-glibc/deploy/images/am335x-bbb-sd]$ ls -gGh | grep -v -e "^l"
total 164M
-rw-r--r-- 2  60K Jul 25 04:22 am335x-boneblack--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-sd-20220725011807.dtb
-rw-r--r-- 2 4.5M Jul 25 04:22 fitImage--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-sd-20220725011807.bin
-rw-r--r-- 2 6.4M Jul 25 04:22 fitImage-5.4.106+gitAUTOINC+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-sd.ext4
-rw-r--r-- 2 6.4M Jul 25 04:22 fitImage-am335x-bbb-sd.ext4
-rw-r--r-- 2 1.6K Jul 25 04:22 fitImage-its--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-sd-20220725011807.its
-rw-r--r-- 2 4.4M Jul 25 04:22 fitImage-linux.bin--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-sd-20220725011807.bin
-rw-r--r-- 2  42K Jul 25 04:19 MLO-am335x-bbb-sd-2020.01+gitAUTOINC+6b5b982e98-r36.tano2-sdcard-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2
-rw-r--r-- 2 384K Jul 25 04:19 MLO-am335x-bbb-sd-sdcard-defconfig-x3
-rw-r--r-- 2 4.7M Jul 25 04:22 modules--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-sd-20220725011807.tgz
-rw-r--r-- 2 2.4K Jul 25 04:19 startup.img
-rw-r--r-- 2   16 Jul 25 04:19 startup.img.version
-rw-r--r-- 2  92K Jul 25 04:23 tanowrt-image-full-am335x-bbb-sd-20220725011807.rootfs.manifest
-rw-r--r-- 2 932M Jul 25 04:24 tanowrt-image-full-am335x-bbb-sd-20220725011807.rootfs.sdcard.img
-rw-r--r-- 2  30M Jul 25 04:24 tanowrt-image-full-am335x-bbb-sd-20220725011807.rootfs.squashfs-lzo
-rw-r--r-- 2   24 Jul 25 04:24 tanowrt-image-full-am335x-bbb-sd-20220725011807.rootfs.version
-rw-r--r-- 2 356K Jul 25 04:23 tanowrt-image-full-am335x-bbb-sd-20220725011807.testdata.json
-rw-r--r-- 2 5.4K Jul 25 04:24 tanowrt-image-full.env
-rw-r--r-- 2 3.0K Jul 25 04:24 tanowrt-image-full-sdimage-ti-swu-a-b.wks
-rw-r--r-- 2  38M Jul 25 04:24 tanowrt-image-full-swu-am335x-bbb-sd-20220725011807.swu
-rw-r--r-- 2  411 Jul 25 04:19 u-boot-initial-env-am335x-bbb-sd-sdcard-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2
-rw-r--r-- 2 128K Jul 25 04:19 u-boot-initial-env-am335x-bbb-sd-sdcard-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2.bin
-rw-r--r-- 2 675K Jul 25 04:19 u-boot-sdcard-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2.img
-rwxr-xr-x 2  41K Jul 25 04:19 u-boot-spl.bin-am335x-bbb-sd-2020.01+gitAUTOINC+6b5b982e98-r36.tano2-sdcard-defconfig

1.5.2 Build Artifacts Listings for am335x-bbb-emmc.yml Target

[~/tanowrt/build/tanowrt-glibc/deploy/images/am335x-bbb-emmc]$ ls -gGh | grep -v -e "^l"
total 186M
-rw-r--r-- 2  60K Jul 25 04:13 am335x-boneblack--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-emmc-20220725005407.dtb
-rw-r--r-- 2 4.5M Jul 25 04:13 fitImage--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-emmc-20220725005407.bin
-rw-r--r-- 2 6.4M Jul 25 04:13 fitImage-5.4.106+gitAUTOINC+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-emmc.ext4
-rw-r--r-- 2 6.4M Jul 25 04:13 fitImage-am335x-bbb-emmc.ext4
-rw-r--r-- 2 1.6K Jul 25 04:13 fitImage-its--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-emmc-20220725005407.its
-rw-r--r-- 2 2.3K Jul 25 04:13 fitImage-its-tanowrt-image-initramfs-swu-factory-am335x-bbb-emmc--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-emmc-20220725005407.its
-rw-r--r-- 2 4.4M Jul 25 04:13 fitImage-linux.bin--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-emmc-20220725005407.bin
-rw-r--r-- 2  15M Jul 25 04:13 fitImage-tanowrt-image-initramfs-swu-factory-5.4.106+gitAUTOINC+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-emmc.ext4
-rw-r--r-- 2  12M Jul 25 04:13 fitImage-tanowrt-image-initramfs-swu-factory-am335x-bbb-emmc--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-emmc-20220725005407.bin
-rw-r--r-- 2  15M Jul 25 04:13 fitImage-tanowrt-image-initramfs-swu-factory-am335x-bbb-emmc.ext4
-rw-r--r-- 2  47K Jul 25 04:13 MLO-am335x-bbb-emmc-2020.01+gitAUTOINC+6b5b982e98-r36.tano2-emmc-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2
-rw-r--r-- 2  42K Jul 25 04:13 MLO-am335x-bbb-emmc-2020.01+gitAUTOINC+6b5b982e98-r36.tano2-sdcard-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2
-rw-r--r-- 2 384K Jul 25 04:13 MLO-am335x-bbb-emmc-emmc-defconfig-x3
-rw-r--r-- 2 384K Jul 25 04:13 MLO-am335x-bbb-emmc-sdcard-defconfig-x3
-rw-r--r-- 2 4.7M Jul 25 04:13 modules--5.4.106+git0+519667b0d8-tano0.2.12.20.8.2-am335x-bbb-emmc-20220725005407.tgz
-rw-r--r-- 2 1.3K Jul 25 04:14 startup-factory.img
-rw-r--r-- 2   16 Jul 25 04:14 startup-factory.img.version
-rw-r--r-- 2 2.4K Jul 25 04:14 startup.img
-rw-r--r-- 2   16 Jul 25 04:14 startup.img.version
-rw-r--r-- 2  93K Jul 25 04:17 tanowrt-image-full-am335x-bbb-emmc-20220725005407.rootfs.manifest
-rw-r--r-- 2  30M Jul 25 04:17 tanowrt-image-full-am335x-bbb-emmc-20220725005407.rootfs.squashfs-lzo
-rw-r--r-- 2   24 Jul 25 04:17 tanowrt-image-full-am335x-bbb-emmc-20220725005407.rootfs.version
-rw-r--r-- 2 356K Jul 25 04:17 tanowrt-image-full-am335x-bbb-emmc-20220725005407.testdata.json
-rw-r--r-- 2  37M Jul 25 04:17 tanowrt-image-full-swu-am335x-bbb-emmc-20220725005407.swu
-rw-r--r-- 2  56M Jul 25 04:17 tanowrt-image-full-swu-factory-am335x-bbb-emmc-20220725005407.sdcard.img
-rw-r--r-- 2 6.0K Jul 25 04:14 tanowrt-image-full-swu-factory.env
-rw-r--r-- 2 2.2K Jul 25 04:14 tanowrt-image-full-swu-factory-sdimage-ti-swu-factory.wks
-rw-r--r-- 2 7.1M Jul 25 04:13 tanowrt-image-initramfs-swu-factory-am335x-bbb-emmc-20220725005407.rootfs.cpio.gz
-rw-r--r-- 2 3.6K Jul 25 04:13 tanowrt-image-initramfs-swu-factory-am335x-bbb-emmc-20220725005407.rootfs.manifest
-rw-r--r-- 2   24 Jul 25 04:13 tanowrt-image-initramfs-swu-factory-am335x-bbb-emmc-20220725005407.rootfs.version
-rw-r--r-- 2 362K Jul 25 04:13 tanowrt-image-initramfs-swu-factory-am335x-bbb-emmc-20220725005407.testdata.json
-rw-r--r-- 2 675K Jul 25 04:13 u-boot-emmc-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2.img
-rw-r--r-- 2  411 Jul 25 04:13 u-boot-initial-env-am335x-bbb-emmc-emmc-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2
-rw-r--r-- 2 128K Jul 25 04:13 u-boot-initial-env-am335x-bbb-emmc-emmc-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2.bin
-rw-r--r-- 2  411 Jul 25 04:13 u-boot-initial-env-am335x-bbb-emmc-sdcard-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2
-rw-r--r-- 2 128K Jul 25 04:13 u-boot-initial-env-am335x-bbb-emmc-sdcard-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2.bin
-rw-r--r-- 2 675K Jul 25 04:13 u-boot-sdcard-defconfig-2020.01+gitAUTOINC+6b5b982e98-r36.tano2.img
-rwxr-xr-x 2  46K Jul 25 04:13 u-boot-spl.bin-am335x-bbb-emmc-2020.01+gitAUTOINC+6b5b982e98-r36.tano2-emmc-defconfig
-rwxr-xr-x 2  41K Jul 25 04:13 u-boot-spl.bin-am335x-bbb-emmc-2020.01+gitAUTOINC+6b5b982e98-r36.tano2-sdcard-defconfig

1.6 Writing Images

1.6.1 Writing Image to SD Card

No special information about writing images to microSD card for BeagleBone Black board. See common instructions in Writing Images to SD Card or USB Flash Drive section.

Examples

Writing factory installation image for the am335x-bbb-emmc.yml target to the microSD card /dev/mmcblk1:

$ dd if=tanowrt-image-full-swu-factory-am335x-bbb-emmc.sdcard.img of=/dev/mmcblk1

Writing bootable card image for the am335x-bbb-sd.yml target to the microSD card /dev/mmcblk1:

$ dd if=tanowrt-image-full-am335x-bbb-sd.sdcard.img of=/dev/mmcblk1

1.6.2 Writing Image to eMMC Flash

For the initial flashing of the internal eMMC memory it is recommended to use the special image of the initial factory installation. If you choose a build target (see Build Targets for details) that assumes using the factory installation image for the initial flashing of the device, a factory installation image (<rootfs-image>-swu-factory-<MACHINE>.sdcard.img) will be automatically generated during the build process (see Build). To write the factory installation image to a SD card, follow the instructions from Writing Images to SD Card or USB Flash Drive section.

When you boot device from the prepaired SD card with factory installation image the installation of TanoWrt to the internal eMMC flash memory will be done automatically. The detailed installation log is available on the debug UART. After the installation is complete, the board will reboots automatically. When the device is rebooted, the installed system will be booted from the internal eMMC flash memory.

Caution

Be aware that during the installation all existing data on the internal eMMC flash memory will be permanently lost.

1.7 Booting and Running

1.7.1 Booting from microSD Card

  1. Insert the microSD card into the slot on the BeagleBone Black board (power is off).

  2. Press and hold the S2 button.

  3. Power on board.

  4. Wait 1–3 seconds and release S2 button.

  5. TanoWrt will be booting from microSD card.

  6. Log in to system using default credentials.

The procedure described above is only required if the internal eMMC drive contains a working firmware, because when the board is powered on, it first attempts to boot from the internal eMMC. If you want to always boot from the microSD card, you need to erase the eMMC flash boot area. For example, this can be done by using the U-Boot command:

=> mmc dev 1; mmc erase 0 400

or with a command in the Linux terminal:

$ dd if=/dev/zero of=/dev/mmcblk1 bs=1k count=512

Caution

Be aware that these commands will make the existing firmware on the eMMC flash memory INOPERABLE.

1.7.2 Booting from Internal eMMC Flash

The board by default tries to boot from the internal eMMC flash memory first. Therefore, if the internal eMMC flash memory has a working firmware, you don’t need to perform any additional actions to boot from it.

1.8 Serial Console

Establishing a serial communication between host computer and BeagleBone Black board requires a USB-to-TTL serial cable. Connect the USB-to-TTL serial cable as described below. Don’t connect the VCC wire, connect only TX, RX and GND wires.

Signal

BeagleBone Black

J1 6-pin connector

GND

Pin 1

TX

Pin 4

RX

Pin 5

The default serial console settings for BeagleBone Black for U-Boot and kernel are described in the table below.

Parameter

Value

Baudrate

115200

Data bits

8

Stop bits

1

Parity

none

Flow control

none

1.9 Default Network Configuration

By default Ethernet port (eth0 interface) are joined into a bridge (br-lan interface). Bridge (br-lan) configured with static IP address 192.168.0.1/24 with enabled DHCP server.

Also you can connect to the board using USB RNDIS connection (usb0 interface). RNDIS interface configured with static IP address 172.16.0.1/24 with enabled DHCP server.

The Ethernet port (eth0) has enabled LLDP by default.

1.10 Web User Interface

The WebUI can be accessed via Ethernet port or USB network connection through HTTP(s) protocol. You must see something like this in browser after you logged in:

../../../../_images/page-login.png

Fig. 1.55 LuCI WebUI Login Page

../../../../_images/am335x-bbb-luci-status.png

Fig. 1.56 LuCI WebUI Overview Page

1.11 Firmware Upgrade

No special information about firmware upgrade. Use produced .swu artifact for upgrading running system.

See also

See common instructions in Firmware Upgrade section.

1.12 References

  1. https://beagleboard.org/black