Environment variables

The U-Boot environment is a block of memory in persistent storage. It is used to store variables in the form name=value.

Where is the U-Boot environment?

The ConnectCore 6UL reads the U-Boot environment (including the MAC addresses) from a partition called environment in the NAND flash. If it does not find a valid environment on the NAND, U-Boot uses a hard-coded default environment:

Access U-Boot environment from Linux

You can access the U-Boot environment from a Linux application. In the U-Boot source tree, you can find the environment tools in the directory tools/env, which you can build with the following command:

make env

Digi Embedded Yocto also compiles this tool by default and installs it on your target's root file system as two executable files:

The tools work with the configuration file /etc/fw_env.config, which must contain one or two entries in the form: Device name, offset, size. The first entry must point to the U-Boot environment location. The second (if present) must point to its redundant copy, for example:

/etc/fw_env.config
1	# Configuration file for fw_(printenv/setenv) utility.
2	# Up to two entries are valid, in this case the redundant
3	# environment sector is assumed present.
4	# Device name        Offset      Size
5	/dev/mtd1            0x0         0x20000
6	/dev/mtd1            0x20000     0x20000

Append boot arguments to the kernel command line

You can use the extra_bootargs variables to append commands to the default kernel command line.

Important U-Boot environment variables on the ConnectCore 6UL

The following U-Boot environment variables are worth mentioning:

MAC addresses

Variable Description Flags
ethaddr MAC address of the first wired Ethernet interface change-default
eth1addr MAC address of the second wired Ethernet interface change-default
wlanaddr MAC address of the Wi-Fi interface change-default
btaddr MAC address of the Bluetooth interface change-default

Note About flags

  • Variables with read-only flag are protected and will not be overwritten by setenv or env default commands (unless manually forced with -f option).
  • Variables with change-default flag can only be written once using setenv command (unless manually forced with -f option).

Digi programs the MAC addresses of the ConnectCore 6UL during manufacturing and saves them in the U-Boot environment on the NAND.

Note You can find the Digi-assigned MAC address on the ConnectCore 6UL module label. See Determine Digi MAC addresses for more information.

Wireless virtual MAC addresses

The wireless interface on the ConnectCore 6UL module allows you to define up to three optional virtual interfaces so that the platform can run concurrently as station, p2p, and SoftAP.

Digi neither reserves nor programs unique MAC addresses for these virtual interfaces. A user who wishes to assign unique MAC addresses to such virtual interfaces can use the following U-Boot environment variables:

Variable Description Flags
wlan1addr MAC address of virtual wireless interface 1 change-default
wlan2addr MAC address of virtual wireless interface 2 change-default
wlan3addr MAC address of virtual wireless interface 3 change-default

Module variant

Variable Description Flags
module_variant Variant ID code for the ConnectCore 6UL System-On-Chip write-once

During start-up, U-Boot automatically sets this variable to the ConnectCore 6UL System-On-Chip variant ID number (a hexadecimal code programmed in the SOM one-time programmable bits).

Carrier board version and ID

Variable Description Flags
board_version Version number of the carrier board write-once
board_id ID number of the carrier board write-once

During start-up, U-Boot automatically sets these variables to the carrier board's version and ID numbers (decimal numbers programmed in the SOM one-time programmable bits).