how is u-boot-initial-env created?

I’m building with yocto. I’m not sure how u-boot-initial-env gets created and how to modify it.

been a few years, but,
in your yocto directory, do "find . -name “uEnv
posted results do not have the ‘*’ on each end of uEnv
it should return a .bb file that handles this.
Or, do a “grep -r uEnv.txt .”
the results should be under the ti meta data directory

It does not appear the uEnv.txt file exists. I’m assuming I need to create it. Within the poky/meta/classes/uboot-config.bbclass file I see the following.

# Additional environment variables or a script can be installed alongside
# u-boot to be used automatically on boot.  This file, typically 'uEnv.txt'
# or 'boot.scr', should be packaged along with u-boot as well as placed in the
# deploy directory.  Machine configurations needing one of these files should
# include it in the SRC_URI and set the UBOOT_ENV parameter.
UBOOT_ENV_SUFFIX ?= "txt"
UBOOT_ENV ?= ""
UBOOT_ENV_SRC_SUFFIX ?= "cmd"
UBOOT_ENV_SRC ?= "${UBOOT_ENV}.${UBOOT_ENV_SRC_SUFFIX}"
UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}"
UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${PV}-${PR}.${UBOOT_ENV_SUFFIX}"
UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}"

so it’s my understanding if I create the uEnv.txt file and add it to my uboot recipe, any variables that I add to my uEnv.txt file will be added to the environment variables of my u-boot. So if myubootenvvariable=1 is included in my uEnv.txt file, the myubootenvvariable=1 will be added to my uboot env variables when start uboot on my beaglebone black board… is that an accurate statement or am I misunderstanding the uEnv.txt file.

just looking at yocto gatesgarth, i have a meta-bbb (got it from git://github.com/jumpnow/meta-bbb) in the scripts directory (meta-bbb/scripts) there is a uEnv.txt-example file
same thing for yocto dunfell,

not sure about that, been a while since i have worked with uEnv.txt.
seems ever yocto version has changes how things are done.

I have a very simple uEnv.txt file already. It just includes 1 custom/new variable that I made up. Which I think is ok. So it’s not an example uEnv.txt file I need. It’s an understanding of how uboot uses the uEnvtxt file.

I think I need to append the uboot recipe. I created the following u-boot bbappend file.

FILESEXTRAPATHS:prepend := “${THISDIR}/:”
SRC_URI:append = " file://uEnv.txt"
UBOOT_ENV = “uEnv”
UBOOT_ENV_SUFFIX = “txt”
IMAGE_BOOT_FILES:append = " uEnv.txt"

Now when I boot my beaglebone black i see my uEnv.txt file

      => fatls mmc 0:1
         107932   MLO
          90469   am335x-bone.dtb
          94748   am335x-boneblack.dtb
          90832   am335x-bonegreen.dtb
                  extlinux/
            431   pinmux-overlay.dtbo
        1224900   u-boot.img
             **12   uEnv.txt**
        7919928   zImage
      
      8 file(s), 1 dir(s)

But… I don’t think my uEnv.txt is actually being loaded.

my uEnv.txt file is simply this:

testvar=“1”
~
~
~

I’m expecting to see the testvar variable as one of the uboot environment variables. but I do not see it.

with a serial console, the first part of the boot should indicate if uEnv.txt is being loaded

mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt …
Checking for: /boot/uEnv.txt …
gpio: pin 55 (gpio 55) value is 1
1713 bytes read in 3 ms (557.6 KiB/s)
Loaded environment from /boot/uEnv.txt
Checking if uname_r is set in /boot/uEnv.txt…

looks like your using extlinux.conf this replaces uEnv.txt, add your var to extlinux.conf

where does the extlinux.conf file come from?

look at the first part of the serial boot, see if it’s loading uEnv.txt or extlinux.conf
also which yocto version are you using (if you didn’t indicate above)

Uboot

U-Boot 2019.04-00002-g31a8ae0206 (May 13 2020 - 09:26:17 -0500), Build: jenkins-github_Bootloader-Builder-139

CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 512 MiB
No match for driver ‘omap_hsmmc’
No match for driver ‘omap_hsmmc’
Some drivers were not found
Reset Source: Global external warm reset has occurred.
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4…
** Unable to use mmc 0:1 for loading the env **
Board: BeagleBone Black
not set. Validating first E-fuse MAC
BeagleBone Black:
BeagleBone: cape eeprom: i2c_probe: 0x54:
BeagleBone: cape eeprom: i2c_probe: 0x55:
BeagleBone: cape eeprom: i2c_probe: 0x56:
BeagleBone: cape eeprom: i2c_probe: 0x57:
Net: eth0: MII MODE
cpsw, usb_ether
Press SPACE to abort autoboot in 0 seconds
=>

Kernel

U-Boot 2019.04-00002-g31a8ae0206 (May 13 2020 - 09:26:17 -0500), Build: jenkins-github_Bootloader-Builder-139

CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 512 MiB
No match for driver ‘omap_hsmmc’
No match for driver ‘omap_hsmmc’
Some drivers were not found
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4…
** Unable to use mmc 0:1 for loading the env **
Board: BeagleBone Black
not set. Validating first E-fuse MAC
BeagleBone Black:
BeagleBone: cape eeprom: i2c_probe: 0x54:
BeagleBone: cape eeprom: i2c_probe: 0x55:
BeagleBone: cape eeprom: i2c_probe: 0x56:
BeagleBone: cape eeprom: i2c_probe: 0x57:
Net: eth0: MII MODE
cpsw, usb_ether
Press SPACE to abort autoboot in 0 seconds
board_name=[A335BNLT] …
board_rev=[00C0] …
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1…
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
129 bytes read in 4 ms (31.3 KiB/s)
1: Yocto
Retrieving file: /zImage
7919928 bytes read in 498 ms (15.2 MiB/s)
append: root=PARTUUID=2d2288c6-02 rootwait console=ttyS0,115200 test123=1
Retrieving file: /am335x-boneblack.dtb
94748 bytes read in 10 ms (9 MiB/s)

Flattened Device Tree blob at 88000000

Booting using the fdt blob at 0x88000000
Loading Device Tree to 8ffe5000, end 8ffff21b … OK

Starting kernel …

Booting Linux on physical CPU 0x0
Linux version 5.15.150-yocto-standard (oe-user@oe-host) (arm-poky-linux-gnueabi-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 PREEMPT Mon Mar 11 14:54:41 UTC 2024
CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: TI AM335x BeagleBone Black
Memory policy: Data cache writeback
cma: Reserved 16 MiB at 0x9e800000
Zone ranges:
Normal [mem 0x0000000080000000-0x000000009fefffff]
HighMem empty
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x0000000080000000-0x000000009fefffff]
Initmem setup node 0 [mem 0x0000000080000000-0x000000009fefffff]
CPU: All CPU(s) started in SVC mode.
AM335X ES2.1 (sgx neon)
Built 1 zonelists, mobility grouping on. Total pages: 129666
Kernel command line: root=PARTUUID=2d2288c6-02 rootwait console=ttyS0,115200 test123=1
Unknown kernel command line parameters “test123=1”, will be passed to user space.
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
mem auto-init: stack:off, heap alloc:off, heap free:off
Memory: 482172K/523264K available (11264K kernel code, 1560K rwdata, 4116K rodata, 1024K init, 331K bss, 24708K reserved, 16384K cma-reserved, 0K highmem)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
ftrace: allocating 42276 entries in 124 pages
ftrace: allocated 124 pages with 5 groups
trace event string verifier disabled
rcu: Preemptible hierarchical RCU implementation.
rcu: RCU event tracing is enabled.
Trampoline variant of Tasks RCU enabled.
Rude variant of Tasks RCU enabled.
Tracing variant of Tasks RCU enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
IRQ: Found an INTC at 0x(ptrval) (revision 5.0) with 128 interrupts
TI gptimer clocksource: always-on /ocp/interconnect@44c00000/segment@200000/target-module@31000
sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
clocksource: dmtimer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
TI gptimer clockevent: 24000000 Hz at /ocp/interconnect@48000000/segment@0/target-module@40000
Console: colour dummy device 80x30
Calibrating delay loop… 996.14 BogoMIPS (lpj=4980736)
CPU: Testing write buffer coherency: ok
CPU0: Spectre v2: using BPIALL workaround
pid_max: default: 32768 minimum: 301
LSM: Security Framework initializing
landlock: Up and running.
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
Setting up static identity map for 0x80100000 - 0x80100060
rcu: Hierarchical SRCU implementation.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 256 (order: -1, 3072 bytes, linear)
pinctrl core: initialized pinctrl subsystem
NET: Registered PF_NETLINK/PF_ROUTE protocol family
DMA: preallocated 256 KiB pool for atomic coherent allocations
thermal_sys: Registered thermal governor ‘step_wise’
cpuidle: using governor ladder
cpuidle: using governor menu
hw-breakpoint: debug architecture 0x4 unsupported.
Serial: AMBA PL011 UART driver
kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.
raid6: int32x8 gen() 170 MB/s
raid6: int32x8 xor() 105 MB/s
raid6: int32x4 gen() 199 MB/s
raid6: int32x4 xor() 117 MB/s
raid6: int32x2 gen() 367 MB/s
raid6: int32x2 xor() 202 MB/s
raid6: int32x1 gen() 367 MB/s
raid6: int32x1 xor() 173 MB/s
raid6: using algorithm int32x1 gen() 367 MB/s
raid6: … xor() 173 MB/s, rmw enabled
raid6: using intx1 recovery algorithm
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti giometti@linux.it
PTP clock support registered
clocksource: Switched to clocksource dmtimer
NET: Registered PF_INET protocol family
IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes, linear)
TCP: Hash tables configured (established 4096 bind 4096)
UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
NET: Registered PF_UNIX/PF_LOCAL protocol family
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Initialise system trusted keyrings
workingset: timestamp_bits=14 max_order=17 bucket_order=3
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
Key type cifs.idmap registered
xor: measuring software checksum speed
arm4regs : 1274 MB/sec
8regs : 939 MB/sec
32regs : 1273 MB/sec
xor: using function: arm4regs (1274 MB/sec)
Key type asymmetric registered
Asymmetric key parser ‘x509’ registered
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
io scheduler mq-deadline registered
io scheduler kyber registered
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
brd: module loaded
mtdoops: mtd device (mtddev=name/number) must be supplied
ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
ehci-omap: OMAP-EHCI Host Controller driver
usbcore: registered new interface driver usb-storage
SPI driver ads7846 has no spi_device_id for ti,tsc2046
SPI driver ads7846 has no spi_device_id for ti,ads7843
SPI driver ads7846 has no spi_device_id for ti,ads7845
SPI driver ads7846 has no spi_device_id for ti,ads7873
i2c_dev: i2c /dev entries driver
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
u32 classifier
input device check on
Actions configured
NET: Registered PF_INET6 protocol family
Segment Routing with IPv6
In-situ OAM (IOAM) with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered PF_PACKET protocol family
Bridge firewalling registered
Key type dns_resolver registered
NET: Registered PF_VSOCK protocol family
ThumbEE CPU extension supported.
omap_voltage_late_init: Voltage driver support not added
Loading compiled-in X.509 certificates
Key type .fscrypt registered
Key type fscrypt-provisioning registered
Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no
Key type encrypted registered
pinctrl-single 44e10800.pinmux: 142 pins, size 568
ti-sysc: probe of 44e31000.target-module failed with error -16
omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
omap_rtc 44e3e000.rtc: registered as rtc0
omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01T00:00:00 UTC (946684800)
ti-sysc: probe of 48040000.target-module failed with error -16
OMAP GPIO hardware version 0.1
omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
sdhci-omap 481d8000.mmc: supply vqmmc not found, using dummy regulator
omap_rng 48310000.rng: Random Number Generator ver. 20
random: crng init done
davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
cpsw-switch 4a100000.switch: initialized cpsw ale version 1.4
cpsw-switch 4a100000.switch: ALE Table size 1024
cpsw-switch 4a100000.switch: Detected MACID = b4:ac:9d:fb:13:42
cpsw-switch 4a100000.switch: initialized (regs 0x4a100000, pool size 256) hw_ver:0019010C 1.12 (0)
debugfs: Directory ‘49000000.dma’ with parent ‘dmaengine’ already present!
edma 49000000.dma: TI EDMA DMA engine driver
am335x-phy-driver 47401300.usb-phy: supply vcc not found, using dummy regulator
am335x-phy-driver 47401300.usb-phy: dummy supplies not allowed for exclusive requests
am335x-phy-driver 47401b00.usb-phy: supply vcc not found, using dummy regulator
am335x-phy-driver 47401b00.usb-phy: dummy supplies not allowed for exclusive requests
hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
l3-aon-clkctrl:0000:0: failed to disable
printk: console [ttyS0] disabled
44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 18, base_baud = 3000000) is a 8250
printk: console [ttyS0] enabled
tps65217-pmic: Failed to locate of_node [id: -1]
tps65217-bl: Failed to locate of_node [id: -1]
tps65217 0-0024: TPS65217 ID 0xe version 1.2
i2c 0-0070: Fixing up cyclic dependency with 4830e000.lcdc
tda998x 0-0070: found TDA19988
omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
omap_gpio 44e07000.gpio: Could not set line 6 debounce to 200000 microseconds (-22)
tilcdc 4830e000.lcdc: bound 0-0070 (ops tda998x_ops)
sdhci-omap 48060000.mmc: Got CD GPIO
[drm] Initialized tilcdc 1.0.0 20121205 for 4830e000.lcdc on minor 0
sdhci-omap 48060000.mmc: supply vqmmc not found, using dummy regulator
tilcdc 4830e000.lcdc: [drm] Cannot find any crtc or sizes
sdhci-omap 481d8000.mmc: supply vqmmc not found, using dummy regulator
musb-hdrc musb-hdrc.1: MUSB HDRC host driver
musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
mmc0: SDHCI controller on 48060000.mmc [48060000.mmc] using External DMA
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
printk: console [netcon0] enabled
netconsole: network logging started
of_cfs_init
of_cfs_init: OK
cfg80211: Loading compiled-in X.509 certificates for regulatory database
cfg80211: Loaded X.509 cert ‘sforshee: 00b28ddf47aef9cea7’
cfg80211: Loaded X.509 cert ‘wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600’
mmc1: SDHCI controller on 481d8000.mmc [481d8000.mmc] using External DMA
platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
Waiting for root device PARTUUID=2d2288c6-02…
cfg80211: failed to load regulatory.db
mmc0: new high speed SDXC card at address aaaa
mmcblk0: mmc0:aaaa SD128 119 GiB
mmcblk0: p1 p2
mmc1: new high speed MMC card at address 0001
mmcblk1: mmc1:0001 MK2704 3.53 GiB
mmcblk1: p1
EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
mmcblk1boot0: mmc1:0001 MK2704 2.00 MiB
EXT4-fs (mmcblk0p2): write access will be enabled during recovery
mmcblk1boot1: mmc1:0001 MK2704 2.00 MiB
mmcblk1rpmb: mmc1:0001 MK2704 512 KiB, chardev (246:0)
EXT4-fs (mmcblk0p2): recovery complete
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: disabled.
VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
devtmpfs: mounted
Freeing unused kernel image (initmem) memory: 1024K
Run /sbin/init as init process
INIT: version 3.01 booting
FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Starting udev
udevd[130]: starting version 3.2.10
udevd[131]: starting eudev-3.2.10
EXT4-fs (mmcblk0p2): re-mounted. Opts: (null). Quota mode: disabled.
Fri Mar 9 12:34:56 UTC 2018
INIT: Entering runlevel: 5
Configuring network interfaces… cpsw-switch 4a100000.switch: starting ndev. mode: dual_mac
SMSC LAN8710/LAN8720 4a101000.mdio:00: attached PHY driver (mii_bus:phy_addr=4a101000.mdio:00, irq=POLL)
udhcpc: started, v1.35.0
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: no lease, forking to background
done.
Starting OpenBSD Secure Shell server: sshd
done.
Starting rpcbind daemon…done.
starting statd: done
Starting atd: OK
NFS daemon support not enabled in kernel
Starting system log daemon…0
Starting crond: OK

Poky (Yocto Project Reference Distro) 4.0.21 beaglebone-yocto ttyS0

beaglebone-yocto login:

Version

root@beaglebone-yocto:/# uname -r
5.15.150-yocto-standard

Yocto Version from poky.conf file

DISTRO = “poky”
DISTRO_NAME = “Poky (Yocto Project Reference Distro)”
#DISTRO_VERSION = “3.4+snapshot-${METADATA_REVISION}”
DISTRO_VERSION = “4.0.21”
DISTRO_CODENAME = “kirkstone”
SDK_VENDOR = “-pokysdk”
SDK_VERSION = “${@d.getVar(‘DISTRO_VERSION’).replace(‘snapshot-${METADATA_REVISION}’, ‘snapshot’)}”
SDK_VERSION[vardepvalue] = “${SDK_VERSION}”

MAINTAINER = “Poky poky@lists.yoctoproject.org

TARGET_VENDOR = “-poky”

LOCALCONF_VERSION = “2”

Override these in poky based distros

POKY_DEFAULT_DISTRO_FEATURES = “largefile opengl ptest multiarch wayland vulkan”
POKY_DEFAULT_EXTRA_RDEPENDS = “packagegroup-core-boot”
POKY_DEFAULT_EXTRA_RRECOMMENDS = “kernel-module-af-packet”

DISTRO_FEATURES ?= “${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}”

PREFERRED_VERSION_linux-yocto ?= “5.15%”
PREFERRED_VERSION_linux-yocto-rt ?= “5.15%”

SDK_NAME = “${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}”
SDKPATHINSTALL = “/opt/${DISTRO}/${SDK_VERSION}”

DISTRO_EXTRA_RDEPENDS += “${POKY_DEFAULT_EXTRA_RDEPENDS}”
DISTRO_EXTRA_RRECOMMENDS += “${POKY_DEFAULT_EXTRA_RRECOMMENDS}”

TCLIBCAPPEND = “”
“…/meta-poky/conf/distro/poky.conf” 61L, 1998C

ok, your using extlinux.conf and yocto version kirkstone (i have this)
based on some BeagleV work, which uses extlinux.conf, the extlinux.conf is part of u-boot
so look in the meta that’s providing u-boot, the u-boot defconfig would need extlunux enabled

Does that mean I need to modify my (am35x_evm_defconfig) file? configs/am335x_evm_defconfig · master · U-Boot / U-Boot · GitLab

so I’m using

bitbake virtual/bootloader -c menuconfig
bitbake virtual/bootloader -c diffconfig

to create a fragment.cfg file then I will add the fragment to u-boot via a u-boot append… now I just need to figure out what changes to make within menuconfig.

1 Like

from BeagleV meta (Yocto-4.2.4)
/poky/meta/classes-recipe/uboot-extlinux-config.bbclass:UBOOT_EXTLINUX_CONFIG = “${B}/extlinux.conf”

and from yocto kirkstone, looks like the file is generated vs being downloaded
./meta-ti/meta-ti-bsp/conf/machine/include/ti33x.inc:# Generate an extlinux.conf file

Generate an extlinux.conf file

UBOOT_EXTLINUX = “1”
UBOOT_EXTLINUX_ROOT = “root=PARTUUID=${uuid}”
UBOOT_EXTLINUX_KERNEL_ARGS = “rootwait rw earlycon”
UBOOT_EXTLINUX_BOOT_FILES = "
extlinux.conf;extlinux/extlinux.conf
${KERNEL_IMAGETYPE}
${KERNEL_DEVICETREE}
"

what step would bitbake/u-boot generate the extlinux.conf file?

I checked the location of UBOOT_EXTLINUX_CONFIG

$ bitbake -e virtual/bootloader | grep ^UBOOT_EXTLINUX_CONFIG= /usr/lib/python3/dist-packages/html5lib/_trie/_base.py:3: DeprecationWarning: Using or importing the ABCs from ‘collections’ instead of from ‘collections.abc’ is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Mapping
UBOOT_EXTLINUX_CONFIG=…tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/1_2022.01-r0/build/extlinux.conf"
$

So that looks sensible. my extlinux.conf should be in the temporary build directory. Which aligns with what you said. The extlinux.conf file is generated.

I then compiled my u-boot.

$ bitbake -c compile virtual/bootloader
/usr/lib/python3/dist-packages/html5lib/_trie/_base.py:3: DeprecationWarning: Using or importing the ABCs from ‘collections’ instead of from ‘collections.abc’ is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Mapping
Loading cache: 100% |##############################################################################################################| Time: 0:00:00
Loaded 1645 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION = “2.0.0”
BUILD_SYS = “x86_64-linux”
NATIVELSBSTRING = “universal”
TARGET_SYS = “arm-poky-linux-gnueabi”
MACHINE = “beaglebone-yocto”
DISTRO = “poky”
DISTRO_VERSION = “4.0.21”
TUNE_FEATURES = “arm vfp cortexa8 neon callconvention-hard”
TARGET_FPU = “hard”
meta
meta-poky
meta-yocto-bsp
meta-yoctotraining
workspace = “kirkstone:47ffa50db25a5ceeb73a3a0600dd9e68274d184f”

WARNING: /home/tn70742/Projects/YoctoTutorial_DeviceTree2/poky/meta/recipes-bsp/u-boot/u-boot_2022.01.bb:do_compile is tainted from a forced run00
Initialising tasks: 100% |#########################################################################################################| Time: 0:00:00
Sstate summary: Wanted 0 Local 0 Mirrors 0 Missed 0 Current 124 (0% match, 100% complete)
NOTE: Executing Tasks
NOTE: Tasks Summary: Attempted 551 tasks of which 551 didn’t need to be rerun and all succeeded.

Summary: There was 1 WARNING message.
$ ls tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/1_2022.01-r0/build/ -ll
total 12984
drwxr-xr-x 3 tn70742 tn70742 4096 Jan 8 09:41 arch
drwxr-xr-x 3 tn70742 tn70742 4096 Jan 8 09:42 board
drwxr-xr-x 2 tn70742 tn70742 4096 Jan 8 09:42 boot
drwxr-xr-x 4 tn70742 tn70742 4096 Jan 8 09:42 cmd
drwxr-xr-x 3 tn70742 tn70742 4096 Jan 8 09:42 common
drwxr-xr-x 2 tn70742 tn70742 4096 Jan 8 09:42 disk
drwxr-xr-x 41 tn70742 tn70742 4096 Jan 8 09:42 drivers
drwxr-xr-x 2 tn70742 tn70742 4096 Jan 8 09:42 dts
drwxr-xr-x 2 tn70742 tn70742 4096 Jan 8 09:42 env
drwxr-xr-x 2 tn70742 tn70742 4096 Jan 8 09:42 examples
drwxr-xr-x 4 tn70742 tn70742 4096 Jan 8 09:42 fs
drwxr-xr-x 5 tn70742 tn70742 4096 Jan 8 09:41 include
drwxr-xr-x 9 tn70742 tn70742 4096 Jan 8 09:42 lib
-rw-r–r-- 1 tn70742 tn70742 599 Jan 8 09:42 Makefile
-rw-r–r-- 1 tn70742 tn70742 107940 Jan 8 09:42 MLO
-rw-r–r-- 1 tn70742 tn70742 107940 Jan 8 09:42 MLO.byteswap
drwxr-xr-x 2 tn70742 tn70742 4096 Jan 8 09:42 net
drwxr-xr-x 5 tn70742 tn70742 4096 Jan 8 09:41 scripts
lrwxrwxrwx 1 tn70742 tn70742 128 Jan 8 09:42 source → /home/tn70742/Projects/YoctoTutorial_DeviceTree2/poky/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/1_2022.01-r0/git
drwxr-xr-x 15 tn70742 tn70742 4096 Jan 8 09:42 spl
-rw-r–r-- 1 tn70742 tn70742 106430 Jan 8 09:42 System.map
drwxr-xr-x 6 tn70742 tn70742 4096 Jan 8 09:42 tools
-rwxr-xr-x 1 tn70742 tn70742 5484220 Jan 8 09:42 u-boot
-rw-r–r-- 1 tn70742 tn70742 638952 Jan 8 09:42 u-boot.bin
-rw-r–r-- 1 tn70742 tn70742 21770 Jan 8 09:41 u-boot.cfg
-rw-r–r-- 1 tn70742 tn70742 12132 Jan 8 09:41 u-boot.cfg.configs
-rw-r–r-- 1 tn70742 tn70742 88024 Jan 8 09:42 u-boot.dtb
-rw-r–r-- 1 tn70742 tn70742 638952 Jan 8 09:42 u-boot-dtb.bin
-rw-r–r-- 1 tn70742 tn70742 1224916 Jan 8 09:42 u-boot-dtb.img
-rw-r–r-- 1 tn70742 tn70742 1224916 Jan 8 09:42 u-boot.img
-rw-r–r-- 1 tn70742 tn70742 7790 Jan 8 09:42 u-boot-initial-env
-rw-r–r-- 1 tn70742 tn70742 1722 Jan 8 09:41 u-boot.lds
-rw-r–r-- 1 tn70742 tn70742 1207690 Jan 8 09:42 u-boot.map
-rwxr-xr-x 1 tn70742 tn70742 550928 Jan 8 09:42 u-boot-nodtb.bin
-rwxr-xr-x 1 tn70742 tn70742 1652930 Jan 8 09:42 u-boot.srec
-rw-r–r-- 1 tn70742 tn70742 216977 Jan 8 09:42 u-boot.sym
tn70742@wdx24n1rn3:~/Projects/YoctoTutorial_DeviceTree2/poky/build$

I see the u-boot-initial-env file and a couple .cfg files. But no extlinux.conf file