Confusing U-Boot/MLO Messages

Can someone help me understand the output of U-Boot? Please see my questions inline in green below. Also is there a sort Theory of Ops for U-Boot? I found a User Manual at the DENX site but nothing about the details of the boot sequence and how/where it searches for things. Thanks.

U-Boot SPL 2017.01 (Jun 28 2017 - 23:47:37)
Trying to boot from MMC1MMC partition switch failed

I know what a partition is. What is a partition switch?

*** Warning - MMC partition switch failed, using default environment

Was it trying to read the environment from a partition or boot? We haven’t launched U-Boot yet so what environment is this? Loaded to memory? Where?

reading u-boot.img
reading u-boot.img

Why is U-Boot being read twice?

U-Boot 2017.01 (Jun 28 2017 - 23:47:37 +0000)
CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 512 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
** First descriptor is NOT a primary desc on 1:1 **

Does this mean a bootable partition? Looks to be MMC 1 partition 1 which would be true as I erased it. Why is it so upset about this? It’s no unheard of to boot from an SD card (and lots of other methods).

*** Warning - bad CRC, using default environment

Found the answer to this on the DENX site: It’s trying to read an environment from uninitialized flash.

not set. Validating first E-fuse MAC
Net: cpsw, usb_ether
Press SPACE to abort autoboot in 2 seconds
switch to partitions #0, OK

Partitions are referred to as 1-4 (at least with MBR). What is zero?

mmc0 is current device
SD/MMC found on device 0
reading boot.scr
** Unable to read file boot.scr **
reading uEnv.txt
411 bytes read in 3 ms (133.8 KiB/s)
Loaded env from uEnv.txt

I do have a uEnv.txt on a partition 1 (FAT) of MMC0 (SD card). I’ve added an echo statement but I’m not seeing anything from it. Should I? I was expecting it to execute it like script in the hush shell. Maybe it only assigns variables? With the above it looks to be using MMC0 (SD card). Does it only look at the bootable partition (FAT in my case) or will it also attempt to find this file elsewhere?

Importing environment from mmc0 …
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1…
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
5655304 bytes read in 389 ms (13.9 MiB/s)
34643 bytes read in 43 ms (786.1 KiB/s)I## Flattened Device Tree blob at 88000000

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

What is going on here? The DT was at 8800.0000 is it being moved?

Can someone help me understand the output of U-Boot? Please see my questions
inline in green below. Also is there a sort Theory of Ops for U-Boot? I
found a User Manual at the DENX site but nothing about the details of the
boot sequence and how/where it searches for things. Thanks.

best details:

https://lists.denx.de/listinfo/u-boot

U-Boot SPL 2017.01 (Jun 28 2017 - 23:47:37)
Trying to boot from MMC1MMC partition switch failed

I know what a partition is. What is a partition switch?

*** Warning - MMC partition switch failed, using default environment

Was it trying to read the environment from a partition or boot? We haven't
launched U-Boot yet so what environment is this? Loaded to memory? Where?

reading u-boot.img
reading u-boot.img

Why is U-Boot being read twice?

it tried to raw read u-boot.img but switch to the 1st partition in the
second read.

U-Boot 2017.01 (Jun 28 2017 - 23:47:37 +0000)
CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 512 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
** First descriptor is NOT a primary desc on 1:1 **

Does this mean a bootable partition? Looks to be MMC 1 partition 1 which
would be true as I erased it. Why is it so upset about this? It's no unheard
of to boot from an SD card (and lots of other methods).

*** Warning - bad CRC, using default environment

Found the answer to this on the DENX site: It's trying to read an
environment from uninitialized flash.

<ethaddr> not set. Validating first E-fuse MAC
Net: cpsw, usb_ether
Press SPACE to abort autoboot in 2 seconds
switch to partitions #0, OK

Partitions are referred to as 1-4 (at least with MBR). What is zero?

mmc0 is current device
SD/MMC found on device 0
reading boot.scr
** Unable to read file boot.scr **
reading uEnv.txt
411 bytes read in 3 ms (133.8 KiB/s)
Loaded env from uEnv.txt

I do have a uEnv.txt on a partition 1 (FAT) of MMC0 (SD card). I've added an
echo statement but I'm not seeing anything from it. Should I? I was
expecting it to execute it like script in the hush shell. Maybe it only
assigns variables? With the above it looks to be using MMC0 (SD card). Does
it only look at the bootable partition (FAT in my case) or will it also
attempt to find this file elsewhere?

the function called is:

env import -t -r $loadaddr $filesize

nothing get's echoed..

Importing environment from mmc0 ...
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
5655304 bytes read in 389 ms (13.9 MiB/s)
34643 bytes read in 43 ms (786.1 KiB/s)I## Flattened Device Tree blob at
88000000

  Booting using the fdt blob at 0x88000000
  Loading Device Tree to 8fff4000, end 8ffff752 ... OK

What is going on here? The DT was at 8800.0000 is it being moved?

u-boot's relocating things..

raw mode is much cleaner:

https://gist.github.com/RobertCNelson/a61e391168cdd4485a641097cc780aec

Regards,