AM3358: eMMC flasher is not working on a custom board based on beaglebone black

Hi,

Our custom board does not have EEPROM but we are setting the right variables in u-boot. Also, i see that the eMMC is not being detected in kernel. The kernel is build using this guide : Debian: Getting Started with the BeagleBone Black

Kernel version is 4.14.108-ti-r127.

RFS is debian 10

I commented out the flasher script in /boot/uEnv.txt to flash eMMC and rebooted. The following error is seen

Regards,
Kiran

Hi @kiranbv odd, why is your system booting from u-boot with no “/proc/cmdline” the flasher script uses /proc/cmdline to determine the source media… (/dev/mmcblk0 or /dev/mmcblk1)

Regards,

Hi @RobertCNelson,

I am not sure what is the problem. Is there something we can do about it?

Regards,
Kiran B V

Please log the full bootup with the flasher script. I need to see what u-boot does and what it boots as…

Regards,

Hi,

Please find the boot log below :slight_smile:

U-Boot SPL 2019.04-00006-g0dc256c-dirty (Apr 21 2021 - 17:20:49 +0530)
Trying to boot from MMC1
Loading Environment from EXT4... ** File not found /boot/uboot.env **

** Unable to read "/boot/uboot.env" from mmc0:1 **


U-Boot 2019.04-00006-g0dc256c-dirty (Apr 21 2021 - 17:20:49 +0530)

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... ** File not found /boot/uboot.env **

** Unable to read "/boot/uboot.env" from mmc0:1 **
Board: BeagleBone Black
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x54
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x55
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x56
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x57
Net:   eth0: MII MODE
Could not get PHY for cpsw: addr 0
cpsw, usb_ether
Press SPACE to abort autoboot in 5 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...
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt ...
Checking for: /boot.scr ...
Checking for: /boot/boot.scr ...
Checking for: /boot/uEnv.txt ...
gpio: pin 55 (gpio 55) value is 1
2228 bytes read in 16 ms (135.7 KiB/s)
Loaded environment from /boot/uEnv.txt
Checking if uname_r is set in /boot/uEnv.txt...
gpio: pin 56 (gpio 56) value is 1
Running uname_boot ...
loading /boot/vmlinuz-4.14.108-ti-r127 ...
10043904 bytes read in 650 ms (14.7 MiB/s)
debug: [enable_uboot_overlays=1] ...
debug: [enable_uboot_cape_universal=1] ...
debug: [uboot_base_dtb_univ=am335x-boneblack-uboot-univ.dtb] ...
uboot_overlays: [uboot_base_dtb=am335x-boneblack-uboot-univ.dtb] ...
uboot_overlays: Switching too: dtb=am335x-boneblack-uboot-univ.dtb ...
loading /boot/dtbs/4.14.108-ti-r127/am335x-boneblack-uboot-univ.dtb ...
163345 bytes read in 56 ms (2.8 MiB/s)
uboot_overlays: [fdt_buffer=0x60000] ...
uboot_overlays: unable to find [mmc 0:1 BB-BONE-eMMC1-01-00A0.dtbo]...
uboot_overlays: uboot loading of [BB-HDMI-TDA998x-00A0.dtbo] disabled by /boot/uEnv.txt [disable_uboot_overlay_video=1]...
uboot_overlays: loading /lib/firmware/BB-ADC-00A0.dtbo ...
867 bytes read in 499 ms (1000 Bytes/s)
uboot_overlays: loading /lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo ...
3645 bytes read in 427 ms (7.8 KiB/s)
debug: [console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet] ...
debug: [bootz 0x82000000 - 88000000] ...
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8ff74000, end 8fffffff ... OK

Starting kernel ...

[    0.002067] timer_probe: no matching timers found
[    0.708373] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[    0.730012] omap8250 481a8000.serial: unable to register 8250 port
[    0.737028] omap8250 481aa000.serial: unable to register 8250 port
[    1.027041] omap_voltage_late_init: Voltage driver support not added
[    1.034415] PM: Cannot get wkup_m3_ipc handle
[    1.537060] musb-hdrc musb-hdrc.1: VBUS_ERROR in a_wait_vrise (80, <SessEnd), retry #3, port1 0008010c
[   10.704498] libphy: PHY 4a101000.mdio:00 not found
[   10.734025] net eth0: phy "4a101000.mdio:00" not found on slave 0, err -19
[  OK  ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
[  OK  ] Started Helper to synchronize boot up for ifupdown.
         Starting Raise network interfaces...
[ TIME ] Timed out waiting for device /dev/ttyGS0.
[DEPEND] Dependency failed for Serial Getty on ttyGS0.
[  OK  ] Started Raise network interfaces.
[  OK  ] Reached target Network.
         Starting Generic Board Startup...
         Starting A high performanc… and a reverse proxy server...
         Starting Permit User Sessions...
         Starting OpenBSD Secure Shell server...
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Serial Getty on ttyS0.
[  OK  ] Started Getty on tty1.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started OpenBSD Secure Shell server.
[  OK  ] Started A high performance…er and a reverse proxy server.
         Starting dnsmasq - A light…DHCP and caching DNS server...
[  OK  ] Started dnsmasq - A lightw…t DHCP and caching DNS server.
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Started Serial Getty on ttyGS0.
[  OK  ] Started Generic Board Startup.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
         Starting Update UTMP about System Runlevel Changes...
[  OK  ] Started Update UTMP about System Runlevel Changes.

Debian GNU/Linux 10 arm ttyS0

default username:password is [debian:temppwd]

arm login: debian
Password:
Last login: Mon Jun 28 23:52:39 UTC 2021 on ttyS0

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
debian@arm:~$

Regards,

Missing initramfs, which the flashing script needs…

Just run, on your target…

sudo update-initramfs -ck `uname -r`

Regards,

Hi,

I ran this

debian@arm:~$ sudo update-initramfs -ck `uname -r`
[sudo] password for debian:
update-initramfs: Generating /boot/initrd.img-4.14.108-ti-r127
debian@arm:~$ ls

It continued to next step with following log

[ ***  ] (2 of 2) A start job is running for /dev/ttyGS0 (43s / 1min 30s)

U-Boot SPL 2019.04-00006-g0dc256c-dirty (Apr 21 2021 - 17:20:49 +0530)
Trying to boot from MMC1
Loading Environment from EXT4... ** File not found /boot/uboot.env **

** Unable to read "/boot/uboot.env" from mmc0:1 **


U-Boot 2019.04-00006-g0dc256c-dirty (Apr 21 2021 - 17:20:49 +0530)

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... ** File not found /boot/uboot.env **

** Unable to read "/boot/uboot.env" from mmc0:1 **
Board: BeagleBone Black
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x54
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x55
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x56
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x57
Net:   eth0: MII MODE
Could not get PHY for cpsw: addr 0
cpsw, usb_ether
Press SPACE to abort autoboot in 5 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...
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt ...
Checking for: /boot.scr ...
Checking for: /boot/boot.scr ...
Checking for: /boot/uEnv.txt ...
gpio: pin 55 (gpio 55) value is 1
2228 bytes read in 16 ms (135.7 KiB/s)
Loaded environment from /boot/uEnv.txt
Checking if uname_r is set in /boot/uEnv.txt...
gpio: pin 56 (gpio 56) value is 1
Running uname_boot ...
loading /boot/vmlinuz-4.14.108-ti-r127 ...
10043904 bytes read in 650 ms (14.7 MiB/s)
debug: [enable_uboot_overlays=1] ...
debug: [enable_uboot_cape_universal=1] ...
debug: [uboot_base_dtb_univ=am335x-boneblack-uboot-univ.dtb] ...
uboot_overlays: [uboot_base_dtb=am335x-boneblack-uboot-univ.dtb] ...
uboot_overlays: Switching too: dtb=am335x-boneblack-uboot-univ.dtb ...
loading /boot/dtbs/4.14.108-ti-r127/am335x-boneblack-uboot-univ.dtb ...
163345 bytes read in 56 ms (2.8 MiB/s)
uboot_overlays: [fdt_buffer=0x60000] ...
uboot_overlays: unable to find [mmc 0:1 BB-BONE-eMMC1-01-00A0.dtbo]...
uboot_overlays: uboot loading of [BB-HDMI-TDA998x-00A0.dtbo] disabled by /boot/uEnv.txt [disable_uboot_overlay_video=1]...
uboot_overlays: loading /lib/firmware/BB-ADC-00A0.dtbo ...
867 bytes read in 499 ms (1000 Bytes/s)
uboot_overlays: loading /lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo ...
3645 bytes read in 427 ms (7.8 KiB/s)
debug: [console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet] ...
debug: [bootz 0x82000000 - 88000000] ...
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8ff74000, end 8fffffff ... OK

Starting kernel ...

[    0.002067] timer_probe: no matching timers found
[    0.708373] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[    0.730012] omap8250 481a8000.serial: unable to register 8250 port
[    0.737028] omap8250 481aa000.serial: unable to register 8250 port
[    1.027041] omap_voltage_late_init: Voltage driver support not added
[    1.034415] PM: Cannot get wkup_m3_ipc handle
[    1.537060] musb-hdrc musb-hdrc.1: VBUS_ERROR in a_wait_vrise (80, <SessEnd), retry #3, port1 0008010c
[   10.704498] libphy: PHY 4a101000.mdio:00 not found
[   10.734025] net eth0: phy "4a101000.mdio:00" not found on slave 0, err -19
[  OK  ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
[  OK  ] Started Helper to synchronize boot up for ifupdown.
         Starting Raise network interfaces...
[ TIME ] Timed out waiting for device /dev/ttyGS0.
[DEPEND] Dependency failed for Serial Getty on ttyGS0.
[  OK  ] Started Raise network interfaces.
[  OK  ] Reached target Network.
         Starting Generic Board Startup...
         Starting A high performanc… and a reverse proxy server...
         Starting Permit User Sessions...
         Starting OpenBSD Secure Shell server...
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Serial Getty on ttyS0.
[  OK  ] Started Getty on tty1.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started OpenBSD Secure Shell server.
[  OK  ] Started A high performance…er and a reverse proxy server.
         Starting dnsmasq - A light…DHCP and caching DNS server...
[  OK  ] Started dnsmasq - A lightw…t DHCP and caching DNS server.
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Started Serial Getty on ttyGS0.
[  OK  ] Started Generic Board Startup.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
         Starting Update UTMP about System Runlevel Changes...
[  OK  ] Started Update UTMP about System Runlevel Changes.

Debian GNU/Linux 10 arm ttyS0

default username:password is [debian:temppwd]

arm login: debian
Password:
Last login: Mon Jun 28 23:52:39 UTC 2021 on ttyS0

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by a^C
debian@arm:~$ ^C
debian@arm:~$ sudo update-initramfs -ck `uname -r`
[sudo] password for debian:
update-initramfs: Generating /boot/initrd.img-4.14.108-ti-r127
debian@arm:~$ ls
AdditionalFiles  bin  Programs
debian@arm:~$ debian@arm:~$ sudo update-initramfs -ck `uname -r`
arm:~$ ls
AdditionalFiles  bin  Programs
debian@arm:~$
-bash: debian@arm:~$: command not found
debian@arm:~$ [sudo] password for debian:
-bash: [sudo]: command not found
debian@arm:~$ update-initramfs: Generating /boot/initrd.img-4.14.108-ti-r127
-bash: update-initramfs:: command not found
debian@arm:~$ debian@arm:~$ ls
-bash: debian@arm:~$: command not found
debian@arm:~$ AdditionalFiles  bin  Programs
-bash: AdditionalFiles: command not found
debian@arm:~$ debian@arm:~$
-bash: debian@arm:~$: command not found
debian@arm:~$ debian@arm:~$ sudo update-initramfs -ck `uname -r`
rm:~$ ls
AdditionalFiles  bin  Programs
debian@arm:~$
-bash: debian@arm:~$: command not found
debian@arm:~$ [sudo] password for debian:
-bash: [sudo]: command not found
debian@arm:~$ update-initramfs: Generating /boot/initrd.img-4.14.108-ti-r127
-bash: update-initramfs:: command not found
debian@arm:~$ debian@arm:~$ ls
-bash: debian@arm:~$: command not found
debian@arm:~$ AdditionalFiles  bin  Programs
-bash: AdditionalFiles: command not found
debian@arm:~$ debian@arm:~$
-bash: debian@arm:~$: command not found
debian@arm:~$ ^C
debian@arm:~$ cd ..
debian@arm:/home$ cd ..
debian@arm:/$ cd ..
debian@arm:/$ cd ..
debian@arm:/$ ls
bin   dev  home  lost+found  mnt  proc  run   srv  tmp  var
boot  etc  lib   media       opt  root  sbin  sys  usr
debian@arm:/$ cd boot/
debian@arm:/boot$ ls
dtbs  initrd.img-4.14.108-ti-r127  uboot  uEnv.txt  vmlinuz-4.14.108-ti-r127
debian@arm:/boot$ cd uE
-bash: cd: uE: No such file or directory
debian@arm:/boot$ sudo nano uEnv.txt
  GNU nano 3.2                        uEnv.txt

###U-Boot fdt tweaks... (60000 = 384KB)
#uboot_fdt_buffer=0x60000
###U-Boot Overlays###

cmdline=coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet

#In the event of edid real failures, uncomment this next line:
#cmdline=coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet vide$

#Use an overlayfs on top of a read-only root filesystem:
#cmdline=coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet over$

##enable Generic eMMC Flasher:
##make sure, these tools are installed: dosfstools rsync
cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh






debian@arm:/boot$ sudo reboot
debian@arm:/boot$ [  510.276845] watchdog: watchdog0: watchdog did not stop!
[  510.597118] reboot: Restarting system

U-Boot SPL 2019.04-00006-g0dc256c-dirty (Apr 21 2021 - 17:20:49 +0530)
Trying to boot from MMC1
Loading Environment from EXT4... ** File not found /boot/uboot.env **

** Unable to read "/boot/uboot.env" from mmc0:1 **


U-Boot 2019.04-00006-g0dc256c-dirty (Apr 21 2021 - 17:20:49 +0530)

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 warm SW 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... ** File not found /boot/uboot.env **

** Unable to read "/boot/uboot.env" from mmc0:1 **
Board: BeagleBone Black
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x54
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x55
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x56
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone Cape EEPROM: no EEPROM at address: 0x57
Net:   eth0: MII MODE
Could not get PHY for cpsw: addr 0
cpsw, usb_ether
Press SPACE to abort autoboot in 5 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...
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt ...
Checking for: /boot.scr ...
Checking for: /boot/boot.scr ...
Checking for: /boot/uEnv.txt ...
gpio: pin 55 (gpio 55) value is 1
2227 bytes read in 16 ms (135.7 KiB/s)
Loaded environment from /boot/uEnv.txt
Checking if uname_r is set in /boot/uEnv.txt...
gpio: pin 56 (gpio 56) value is 1
Running uname_boot ...
loading /boot/vmlinuz-4.14.108-ti-r127 ...
10043904 bytes read in 650 ms (14.7 MiB/s)
debug: [enable_uboot_overlays=1] ...
debug: [enable_uboot_cape_universal=1] ...
debug: [uboot_base_dtb_univ=am335x-boneblack-uboot-univ.dtb] ...
uboot_overlays: [uboot_base_dtb=am335x-boneblack-uboot-univ.dtb] ...
uboot_overlays: Switching too: dtb=am335x-boneblack-uboot-univ.dtb ...
loading /boot/dtbs/4.14.108-ti-r127/am335x-boneblack-uboot-univ.dtb ...
163345 bytes read in 55 ms (2.8 MiB/s)
uboot_overlays: [fdt_buffer=0x60000] ...
uboot_overlays: unable to find [mmc 0:1 BB-BONE-eMMC1-01-00A0.dtbo]...
uboot_overlays: uboot loading of [BB-HDMI-TDA998x-00A0.dtbo] disabled by /boot/uEnv.txt [disable_uboot_overlay_video=1]...
uboot_overlays: loading /lib/firmware/BB-ADC-00A0.dtbo ...
867 bytes read in 499 ms (1000 Bytes/s)
uboot_overlays: loading /lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo ...
3645 bytes read in 427 ms (7.8 KiB/s)
loading /boot/initrd.img-4.14.108-ti-r127 ...
7387572 bytes read in 484 ms (14.6 MiB/s)
debug: [console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh] ...
debug: [bootz 0x82000000 0x88080000:70b9b4 88000000] ...
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Ramdisk to 8f8f4000, end 8ffff9b4 ... OK
   Loading Device Tree to 8f868000, end 8f8f3fff ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.108-ti-r127 (kiranbv@BLRKAPT4233PC) (gcc version 7.5.0 (Linaro GCC 7.5-2019.12)) #1 SMP PREEMPT Fri Jun 25 23:09:15 IST 2021
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: TI AM335x BeagleBone Black
[    0.000000] Memory policy: Data cache writeback
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 48 MiB at 0x9c800000
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.1 (sgx neon)
[    0.000000] random: get_random_bytes called from start_kernel+0xac/0x454 with crng_init=0
[    0.000000] percpu: Embedded 18 pages/cpu @df8e7000 s41548 r8192 d23988 u73728
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129412
[    0.000000] Kernel command line: console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 437552K/522240K available (13312K kernel code, 1088K rwdata, 4260K rodata, 1024K init, 369K bss, 35536K reserved, 49152K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0000000 - 0xff800000   ( 504 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xdfe00000   ( 510 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0e00000   (14304 kB)
[    0.000000]       .init : 0xc1400000 - 0xc1500000   (1024 kB)
[    0.000000]       .data : 0xc1500000 - 0xc16101a0   (1089 kB)
[    0.000000]        .bss : 0xc161a9dc - 0xc1677100   ( 370 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] ftrace: allocating 41130 entries in 121 pages
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[    0.000000]  Tasks RCU enabled.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000026] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000057] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000071] OMAP clocksource: timer1 at 24000000 Hz
[    0.002105] timer_probe: no matching timers found
[    0.002449] Console: colour dummy device 80x30
[    0.002485] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[    0.002494] This ensures that you still see kernel messages. Please
[    0.002501] update your kernel commandline.
[    0.002531] Calibrating delay loop... 995.32 BogoMIPS (lpj=1990656)
[    0.021111] pid_max: default: 32768 minimum: 301
[    0.021389] Security Framework initialized
[    0.021410] Yama: becoming mindful.
[    0.021452] AppArmor: AppArmor disabled by boot time parameter
[    0.021529] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.021545] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.022577] CPU: Testing write buffer coherency: ok
[    0.022656] CPU0: Spectre v2: using BPIALL workaround
[    0.023124] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[    0.037197] Setting up static identity map for 0x80100000 - 0x80100060
[    0.045106] Hierarchical SRCU implementation.
[    0.056314] EFI services will not be available.
[    0.061114] smp: Bringing up secondary CPUs ...
[    0.061136] smp: Brought up 1 node, 1 CPU
[    0.061148] SMP: Total of 1 processors activated (995.32 BogoMIPS).
[    0.061158] CPU: All CPU(s) started in SVC mode.
[    0.062823] devtmpfs: initialized
[    0.101382] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.101864] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.101894] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.105813] xor: measuring software checksum speed
[    0.145088]    arm4regs  :  1209.000 MB/sec
[    0.185082]    8regs     :   956.000 MB/sec
[    0.225080]    32regs    :  1051.000 MB/sec
[    0.265081]    neon      :  1663.000 MB/sec
[    0.265092] xor: using function: neon (1663.000 MB/sec)
[    0.265112] pinctrl core: initialized pinctrl subsystem
[    0.266348] NET: Registered protocol family 16
[    0.269371] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.357567] omap_hwmod: debugss: _wait_target_disable failed
[    0.398335] cpuidle: using governor menu
[    0.404418] OMAP GPIO hardware version 0.1
[    0.433736] No ATAGs?
[    0.433758] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.435276] omap4_sram_init:Unable to allocate sram needed to handle errata I688
[    0.435299] omap4_sram_init:Unable to get sram pool needed to handle errata I688
[    0.461243] raid6: using algorithm neonx8 gen() 0 MB/s
[    0.461267] raid6: .... xor() 0 MB/s, rmw enabled
[    0.461277] raid6: using neon recovery algorithm
[    0.469516] edma 49000000.edma: TI EDMA DMA engine driver
[    0.476774] SCSI subsystem initialized
[    0.481527] usbcore: registered new interface driver usbfs
[    0.481596] usbcore: registered new interface driver hub
[    0.481724] usbcore: registered new device driver usb
[    0.482782] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
[    0.483794] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz
[    0.485235] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[    0.485788] media: Linux media interface: v0.10
[    0.485846] Linux video capture interface: v2.00
[    0.486005] pps_core: LinuxPPS API ver. 1 registered
[    0.486016] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.486040] PTP clock support registered
[    0.486683] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    0.489412] FPGA manager framework
[    0.489510] Advanced Linux Sound Architecture Driver Initialized.
[    0.490215] NetLabel: Initializing
[    0.490232] NetLabel:  domain hash size = 128
[    0.490240] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    0.490340] NetLabel:  unlabeled traffic allowed by default
[    0.493538] clocksource: Switched to clocksource timer1
[    0.631763] VFS: Disk quotas dquot_6.6.0
[    0.631888] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.644748] NET: Registered protocol family 2
[    0.645808] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.645861] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    0.645922] TCP: Hash tables configured (established 4096 bind 4096)
[    0.646044] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.646069] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.646279] NET: Registered protocol family 1
[    0.655200] RPC: Registered named UNIX socket transport module.
[    0.655221] RPC: Registered udp transport module.
[    0.655230] RPC: Registered tcp transport module.
[    0.655238] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.656103] Unpacking initramfs...
[    1.017600] random: fast init done
[    1.076266] Freeing initrd memory: 7216K
[    1.076835] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    1.077074] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    1.079581] audit: initializing netlink subsys (disabled)
[    1.080845] audit: type=2000 audit(1.080:1): state=initialized audit_enabled=0 res=1
[    1.080987] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    1.087144] zbud: loaded
[    1.098933] NFS: Registering the id_resolver key type
[    1.098988] Key type id_resolver registered
[    1.098998] Key type id_legacy registered
[    1.099020] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.099361] fuse init (API version 7.26)
[    1.109065] Key type asymmetric registered
[    1.109091] Asymmetric key parser 'x509' registered
[    1.109237] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    1.113849] io scheduler noop registered
[    1.113867] io scheduler deadline registered
[    1.114143] io scheduler cfq registered (default)
[    1.114159] io scheduler mq-deadline registered
[    1.116864] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[    1.129753] gpio-of-helper ocp:cape-universal: ready
[    1.141371] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[    1.144203] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.147354] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
[    1.990059] console [ttyS0] enabled
[    1.994774] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 31, base_baud = 3000000) is a 8250
[    2.004673] 48024000.serial: ttyS2 at MMIO 0x48024000 (irq = 32, base_baud = 3000000) is a 8250
[    2.014540] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 33, base_baud = 3000000) is a 8250
[    2.024057] omap8250 481a8000.serial: unable to register 8250 port
[    2.030437] omap8250: probe of 481a8000.serial failed with error -28
[    2.036987] ------------[ cut here ]------------
[    2.041648] WARNING: CPU: 0 PID: 1 at lib/list_debug.c:28 __list_add_valid+0x9c/0xcc
[    2.049425] list_add corruption. prev->next should be next (c152bc10), but was db79bf40. (prev=db79bf40).
[    2.059031] Modules linked in:
[    2.062110] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.108-ti-r127 #1
[    2.068925] Hardware name: Generic AM33XX (Flattened Device Tree)
[    2.075080] [<c011343c>] (unwind_backtrace) from [<c010d7e0>] (show_stack+0x20/0x24)
[    2.082868] [<c010d7e0>] (show_stack) from [<c0cf9068>] (dump_stack+0x80/0x94)
[    2.090130] [<c0cf9068>] (dump_stack) from [<c0140938>] (__warn+0xf8/0x110)
[    2.097128] [<c0140938>] (__warn) from [<c01409a8>] (warn_slowpath_fmt+0x58/0x74)
[    2.104647] [<c01409a8>] (warn_slowpath_fmt) from [<c06f585c>] (__list_add_valid+0x9c/0xcc)
[    2.113049] [<c06f585c>] (__list_add_valid) from [<c0cffa84>] (plist_add+0xe4/0x124)
[    2.120836] [<c0cffa84>] (plist_add) from [<c019bc9c>] (pm_qos_update_target+0x130/0x280)
[    2.129055] [<c019bc9c>] (pm_qos_update_target) from [<c019be88>] (pm_qos_add_request+0x9c/0x16c)
[    2.137981] [<c019be88>] (pm_qos_add_request) from [<c07e5c3c>] (omap8250_probe+0x210/0x418)
[    2.146465] [<c07e5c3c>] (omap8250_probe) from [<c08891b4>] (platform_drv_probe+0x60/0xbc)
[    2.154779] [<c08891b4>] (platform_drv_probe) from [<c0886ce4>] (driver_probe_device+0x2e0/0x43c)
[    2.163696] [<c0886ce4>] (driver_probe_device) from [<c0886f10>] (__driver_attach+0xd0/0x110)
[    2.172264] [<c0886f10>] (__driver_attach) from [<c08847a8>] (bus_for_each_dev+0x70/0xd0)
[    2.180483] [<c08847a8>] (bus_for_each_dev) from [<c0886468>] (driver_attach+0x2c/0x30)
[    2.188528] [<c0886468>] (driver_attach) from [<c0885e08>] (bus_add_driver+0x1b8/0x260)
[    2.196571] [<c0885e08>] (bus_add_driver) from [<c0887d24>] (driver_register+0x88/0x104)
[    2.204702] [<c0887d24>] (driver_register) from [<c08890fc>] (__platform_driver_register+0x50/0x58)
[    2.213801] [<c08890fc>] (__platform_driver_register) from [<c144a42c>] (omap8250_platform_driver_init+0x24/0x28)
[    2.224117] [<c144a42c>] (omap8250_platform_driver_init) from [<c0101d7c>] (do_one_initcall+0x64/0x19c)
[    2.233565] [<c0101d7c>] (do_one_initcall) from [<c14010a8>] (kernel_init_freeable+0x1dc/0x27c)
[    2.242315] [<c14010a8>] (kernel_init_freeable) from [<c0d0dc38>] (kernel_init+0x18/0x120)
[    2.250626] [<c0d0dc38>] (kernel_init) from [<c0108f88>] (ret_from_fork+0x14/0x2c)
[    2.258240] ---[ end trace aa413d12c808c6f3 ]---
[    2.263023] omap8250 481aa000.serial: unable to register 8250 port
[    2.269310] omap8250: probe of 481aa000.serial failed with error -28
[    2.277820] omap_uart 481a8000.serial: no wakeirq for uart4
[    2.283491] ------------[ cut here ]------------
[    2.288142] WARNING: CPU: 0 PID: 1 at lib/list_debug.c:28 __list_add_valid+0x9c/0xcc
[    2.295918] list_add corruption. prev->next should be next (c152bc10), but was db79bf40. (prev=db79bf40).
[    2.305524] Modules linked in:
[    2.308601] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W       4.14.108-ti-r127 #1
[    2.316637] Hardware name: Generic AM33XX (Flattened Device Tree)
[    2.322777] [<c011343c>] (unwind_backtrace) from [<c010d7e0>] (show_stack+0x20/0x24)
[    2.330563] [<c010d7e0>] (show_stack) from [<c0cf9068>] (dump_stack+0x80/0x94)
[    2.337824] [<c0cf9068>] (dump_stack) from [<c0140938>] (__warn+0xf8/0x110)
[    2.344819] [<c0140938>] (__warn) from [<c01409a8>] (warn_slowpath_fmt+0x58/0x74)
[    2.352340] [<c01409a8>] (warn_slowpath_fmt) from [<c06f585c>] (__list_add_valid+0x9c/0xcc)
[    2.360740] [<c06f585c>] (__list_add_valid) from [<c0cffa84>] (plist_add+0xe4/0x124)
[    2.368524] [<c0cffa84>] (plist_add) from [<c019bc9c>] (pm_qos_update_target+0x130/0x280)
[    2.376743] [<c019bc9c>] (pm_qos_update_target) from [<c019be88>] (pm_qos_add_request+0x9c/0x16c)
[    2.385665] [<c019be88>] (pm_qos_add_request) from [<c07e8b4c>] (serial_omap_probe+0x2f0/0x620)
[    2.394410] [<c07e8b4c>] (serial_omap_probe) from [<c08891b4>] (platform_drv_probe+0x60/0xbc)
[    2.402981] [<c08891b4>] (platform_drv_probe) from [<c0886ce4>] (driver_probe_device+0x2e0/0x43c)
[    2.411899] [<c0886ce4>] (driver_probe_device) from [<c0886f10>] (__driver_attach+0xd0/0x110)
[    2.420467] [<c0886f10>] (__driver_attach) from [<c08847a8>] (bus_for_each_dev+0x70/0xd0)
[    2.428685] [<c08847a8>] (bus_for_each_dev) from [<c0886468>] (driver_attach+0x2c/0x30)
[    2.436728] [<c0886468>] (driver_attach) from [<c0885e08>] (bus_add_driver+0x1b8/0x260)
[    2.444772] [<c0885e08>] (bus_add_driver) from [<c0887d24>] (driver_register+0x88/0x104)
[    2.452902] [<c0887d24>] (driver_register) from [<c08890fc>] (__platform_driver_register+0x50/0x58)
[    2.461996] [<c08890fc>] (__platform_driver_register) from [<c144a65c>] (serial_omap_init+0x34/0x50)
[    2.471175] [<c144a65c>] (serial_omap_init) from [<c0101d7c>] (do_one_initcall+0x64/0x19c)
[    2.479486] [<c0101d7c>] (do_one_initcall) from [<c14010a8>] (kernel_init_freeable+0x1dc/0x27c)
[    2.488233] [<c14010a8>] (kernel_init_freeable) from [<c0d0dc38>] (kernel_init+0x18/0x120)
[    2.496544] [<c0d0dc38>] (kernel_init) from [<c0108f88>] (ret_from_fork+0x14/0x2c)
[    2.504146] ---[ end trace aa413d12c808c6f4 ]---
[    2.509059] 481a8000.serial: ttyO4 at MMIO 0x481a8000 (irq = 34, base_baud = 3000000) is a OMAP UART4
[    2.519214] omap_uart 481aa000.serial: no wakeirq for uart5
[    2.524904] ------------[ cut here ]------------
[    2.529555] WARNING: CPU: 0 PID: 1 at lib/list_debug.c:28 __list_add_valid+0x9c/0xcc
[    2.537332] list_add corruption. prev->next should be next (c152bc10), but was db79bf40. (prev=db79bf40).
[    2.546937] Modules linked in:
[    2.550012] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W       4.14.108-ti-r127 #1
[    2.558048] Hardware name: Generic AM33XX (Flattened Device Tree)
[    2.564186] [<c011343c>] (unwind_backtrace) from [<c010d7e0>] (show_stack+0x20/0x24)
[    2.571971] [<c010d7e0>] (show_stack) from [<c0cf9068>] (dump_stack+0x80/0x94)
[    2.579229] [<c0cf9068>] (dump_stack) from [<c0140938>] (__warn+0xf8/0x110)
[    2.586226] [<c0140938>] (__warn) from [<c01409a8>] (warn_slowpath_fmt+0x58/0x74)
[    2.593746] [<c01409a8>] (warn_slowpath_fmt) from [<c06f585c>] (__list_add_valid+0x9c/0xcc)
[    2.602144] [<c06f585c>] (__list_add_valid) from [<c0cffa84>] (plist_add+0xe4/0x124)
[    2.609931] [<c0cffa84>] (plist_add) from [<c019bc9c>] (pm_qos_update_target+0x130/0x280)
[    2.618150] [<c019bc9c>] (pm_qos_update_target) from [<c019be88>] (pm_qos_add_request+0x9c/0x16c)
[    2.627072] [<c019be88>] (pm_qos_add_request) from [<c07e8b4c>] (serial_omap_probe+0x2f0/0x620)
[    2.635815] [<c07e8b4c>] (serial_omap_probe) from [<c08891b4>] (platform_drv_probe+0x60/0xbc)
[    2.644386] [<c08891b4>] (platform_drv_probe) from [<c0886ce4>] (driver_probe_device+0x2e0/0x43c)
[    2.653302] [<c0886ce4>] (driver_probe_device) from [<c0886f10>] (__driver_attach+0xd0/0x110)
[    2.661869] [<c0886f10>] (__driver_attach) from [<c08847a8>] (bus_for_each_dev+0x70/0xd0)
[    2.670088] [<c08847a8>] (bus_for_each_dev) from [<c0886468>] (driver_attach+0x2c/0x30)
[    2.678131] [<c0886468>] (driver_attach) from [<c0885e08>] (bus_add_driver+0x1b8/0x260)
[    2.686175] [<c0885e08>] (bus_add_driver) from [<c0887d24>] (driver_register+0x88/0x104)
[    2.694304] [<c0887d24>] (driver_register) from [<c08890fc>] (__platform_driver_register+0x50/0x58)
[    2.703399] [<c08890fc>] (__platform_driver_register) from [<c144a65c>] (serial_omap_init+0x34/0x50)
[    2.712580] [<c144a65c>] (serial_omap_init) from [<c0101d7c>] (do_one_initcall+0x64/0x19c)
[    2.720889] [<c0101d7c>] (do_one_initcall) from [<c14010a8>] (kernel_init_freeable+0x1dc/0x27c)
[    2.729636] [<c14010a8>] (kernel_init_freeable) from [<c0d0dc38>] (kernel_init+0x18/0x120)
[    2.737944] [<c0d0dc38>] (kernel_init) from [<c0108f88>] (ret_from_fork+0x14/0x2c)
[    2.745545] ---[ end trace aa413d12c808c6f5 ]---
[    2.750399] 481aa000.serial: ttyO5 at MMIO 0x481aa000 (irq = 35, base_baud = 3000000) is a OMAP UART5
[    2.762317] omap_rng 48310000.rng: Random Number Generator ver. 20
[    2.770058] [drm] Initialized vgem 1.0.0 20120112 for vgem on minor 0
[    2.776757] usbcore: registered new interface driver udl
[    2.791310] at24 2-0054: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    2.798614] at24 2-0055: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    2.805818] at24 2-0056: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    2.812982] at24 2-0057: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    2.820592] eqep 48300180.eqep: ver. 1.0
[    2.824786] eqep 48300180.eqep: count_mode:0
[    2.829123] eqep 48300180.eqep: invert_qa:1
[    2.833351] eqep 48300180.eqep: invert_qb:1
[    2.837579] eqep 48300180.eqep: invert_qi:0
[    2.841806] eqep 48300180.eqep: invert_qs:0
[    2.846101] eqep 48300180.eqep: swap_inputs:0
[    2.850510] eqep 48300180.eqep: QDECCTL:0x0180
[    2.854998] eqep 48300180.eqep: QPOSINIT:0x00000000
[    2.859920] eqep 48300180.eqep: QPOSMAX:0xffffffff
[    2.864755] eqep 48300180.eqep: QPOSCNT:0x00000000
[    2.869592] eqep 48300180.eqep: omit_interrupt:0
[    2.874251] eqep 48300180.eqep: QEINT:0x0800
[    2.878564] eqep 48300180.eqep: QUPRD:0x05f5e100
[    2.883224] eqep 48300180.eqep: QEPCTL:0x009e write
[    2.888146] eqep 48300180.eqep: QEPCTL:0x009e read
[    2.893000] eqep 48300180.eqep: irq:133, clk_rate:100000000
[    2.898844] eqep 48302180.eqep: ver. 1.0
[    2.902950] eqep 48302180.eqep: count_mode:0
[    2.907279] eqep 48302180.eqep: invert_qa:1
[    2.911507] eqep 48302180.eqep: invert_qb:1
[    2.915733] eqep 48302180.eqep: invert_qi:0
[    2.919959] eqep 48302180.eqep: invert_qs:0
[    2.924186] eqep 48302180.eqep: swap_inputs:0
[    2.928584] eqep 48302180.eqep: QDECCTL:0x0180
[    2.933069] eqep 48302180.eqep: QPOSINIT:0x00000000
[    2.937992] eqep 48302180.eqep: QPOSMAX:0xffffffff
[    2.942826] eqep 48302180.eqep: QPOSCNT:0x00000000
[    2.947662] eqep 48302180.eqep: omit_interrupt:0
[    2.952322] eqep 48302180.eqep: QEINT:0x0800
[    2.956634] eqep 48302180.eqep: QUPRD:0x05f5e100
[    2.961294] eqep 48302180.eqep: QEPCTL:0x009e write
[    2.966217] eqep 48302180.eqep: QEPCTL:0x009e read
[    2.971065] eqep 48302180.eqep: irq:135, clk_rate:100000000
[    2.976883] eqep 48304180.eqep: ver. 1.0
[    2.980984] eqep 48304180.eqep: count_mode:0
[    2.985311] eqep 48304180.eqep: invert_qa:1
[    2.989539] eqep 48304180.eqep: invert_qb:1
[    2.993765] eqep 48304180.eqep: invert_qi:0
[    2.997994] eqep 48304180.eqep: invert_qs:0
[    3.002219] eqep 48304180.eqep: swap_inputs:0
[    3.006617] eqep 48304180.eqep: QDECCTL:0x0180
[    3.011104] eqep 48304180.eqep: QPOSINIT:0x00000000
[    3.016026] eqep 48304180.eqep: QPOSMAX:0xffffffff
[    3.020860] eqep 48304180.eqep: QPOSCNT:0x00000000
[    3.025696] eqep 48304180.eqep: omit_interrupt:0
[    3.030357] eqep 48304180.eqep: QEINT:0x0800
[    3.034667] eqep 48304180.eqep: QUPRD:0x05f5e100
[    3.039327] eqep 48304180.eqep: QEPCTL:0x009e write
[    3.044248] eqep 48304180.eqep: QEPCTL:0x009e read
[    3.049096] eqep 48304180.eqep: irq:137, clk_rate:100000000
[    3.132348] libphy: Fixed MDIO Bus: probed
[    3.137554] CAN device driver interface
[    3.142912] c_can_platform 481cc000.can: c_can_platform device registered (regs=fa1cc000, irq=41)
[    3.153095] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=42)
[    3.217669] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    3.225423] davinci_mdio 4a101000.mdio: no live phy, scanning all
[    3.232172] davinci_mdio: probe of 4a101000.mdio failed with error -5
[    3.239759] cpsw 4a100000.ethernet: Detected MACID = 44:ea:d8:9c:2f:ca
[    3.246548] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[    3.252981] cpsw 4a100000.ethernet: ALE Table size 1024
[    3.258290] cpsw 4a100000.ethernet: cpts: overflow check period 1250 (jiffies)
[    3.267872] usbcore: registered new interface driver smsc95xx
[    3.275775] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.282462] ehci-platform: EHCI generic platform driver
[    3.288215] ehci-omap: OMAP-EHCI Host Controller driver
[    3.294764] usbcore: registered new interface driver usb-storage
[    3.304311] am335x-phy-driver 47401300.usb-phy: 47401300.usb-phy supply vcc not found, using dummy regulator
[    3.317865] am335x-phy-driver 47401b00.usb-phy: 47401b00.usb-phy supply vcc not found, using dummy regulator
[    3.332348] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[    3.337819] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[    3.345643] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    3.352496] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.359777] usb usb1: Product: MUSB HDRC host driver
[    3.364786] usb usb1: Manufacturer: Linux 4.14.108-ti-r127 musb-hcd
[    3.371105] usb usb1: SerialNumber: musb-hdrc.1
[    3.376704] hub 1-0:1.0: USB hub found
[    3.380694] hub 1-0:1.0: 1 port detected
[    3.396644] omap_rtc 44e3e000.rtc: already running
[    3.402372] omap_rtc 44e3e000.rtc: registered as rtc0
[    3.409198] i2c /dev entries driver
[    3.414230] Driver for 1-wire Dallas network protocol.
[    3.423441] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    3.431174] softdog: initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0)
[    3.441729] cpuidle: enable-method property 'ti,am3352' found operations
[    3.449649] sdhci: Secure Digital Host Controller Interface driver
[    3.455901] sdhci: Copyright(c) Pierre Ossman
[    3.461608] omap_hsmmc 48060000.mmc: Got CD GPIO
[    3.508126] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.522439] ledtrig-cpu: registered to indicate activity on CPUs
[    3.529214] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[    3.535352] omap-aes 53500000.aes: will run requests pump with realtime priority
[    3.545952] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[    3.555942] hidraw: raw HID events driver (C) Jiri Kosina
[    3.562441] usbcore: registered new interface driver usbhid
[    3.568338] usbhid: USB HID core driver
[    3.572869] remoteproc remoteproc0: wkup_m3 is available
[    3.588714] wireguard: WireGuard 0.0.20191219 loaded. See www.wireguard.com for information.
[    3.597486] mmc0: host does not support reading read-only switch, assuming write-enable
[    3.605626] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[    3.616297] NET: Registered protocol family 10
[    3.621570] mmc0: new high speed SDHC card at address aaaa
[    3.628753] mmcblk0: mmc0:aaaa SS08G 7.40 GiB
[    3.633991] Segment Routing with IPv6
[    3.637881] mip6: Mobile IPv6
[    3.640875] NET: Registered protocol family 17
[    3.646415] can: controller area network core (rev 20170425 abi 9)
[    3.652884]  mmcblk0: p1
[    3.656528] NET: Registered protocol family 29
[    3.661298] Key type dns_resolver registered
[    3.665682] mpls_gso: MPLS GSO support
[    3.669754] omap_voltage_late_init: Voltage driver support not added
[    3.676744] PM: Cannot get wkup_m3_ipc handle
[    3.681409] ThumbEE CPU extension supported.
[    3.685793] Registering SWP/SWPB emulation handler
[    3.691697] registered taskstats version 1
[    3.696026] zswap: loaded using pool lzo/zbud
[    3.702998] Btrfs loaded, crc32c=crc32c-generic
[    3.707728] ima: No TPM chip found, activating TPM-bypass! (rc=-19)
[    3.714149] ima: Allocated hash algorithm: sha256
[    3.763819] input: tps65217_pwr_but as /devices/platform/ocp/44e0b000.i2c/i2c-0/0-0024/tps65217-pwrbutton/input/input0
[    3.775279] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[    3.781176] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    3.788257] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    3.795618] remoteproc remoteproc0: powering up wkup_m3
[    3.801075] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217168
[    3.813768] remoteproc remoteproc0: remote processor wkup_m3 is now up
[    3.813787] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x193
[    3.830253] PM: bootloader does not support rtc-only!
[    3.836913] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:08:45 UTC (946685325)
[    3.845937] of_cfs_init
[    3.848559] of_cfs_init: OK
[    3.852919] ALSA device list:
[    3.856147]   No soundcards found.
[    3.865495] Freeing unused kernel memory: 1024K
Loading, please wait...
[    3.994729] musb-hdrc musb-hdrc.1: VBUS_ERROR in a_wait_vrise (80, <SessEnd), retry #3, port1 0008010c
Starting version 241

But, i see some error again

================================================================================
Starting eMMC Flasher from microSD media
Version: [1.20180412: all ssh regneration override...]
================================================================================

================================================================================
Prepare environment for flashing
Starting at Sat Jan  1 00:09:03 UTC 2000
----------------------------------------
==> Giving system time to stablize...
5 4 3 2 1
==> Preparing /tmp
==> Preparing sysctl
==> sysctl: vm.min_free_kbytes=[2645]
==> sysctl: setting: [sysctl -w vm.min_free_kbytes=16384]
vm.min_free_kbytes = 16384
----------------------------------------
==> Determining root drive
==> console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
----------------------------------------
==> root_drive=[/dev/mmcblk0p1]
====> Root drive identified at [/dev/mmcblk0p1]
==> Boot Drive [/dev/mmcblk0p1]
==> Figuring out Source and Destination devices
====> Source identified: [/dev/mmcblk0]
====> Destination identified: [/dev/mmcblk1]
==> Figuring out machine
====> Machine is TI_AM335x_BeagleBone_Black
====> Machine is compatible with BeagleBone Black
================================================================================
5 4 3 2 1

========================================
Checking for Valid bbb-eeprom header
hexdump: /sys/bus/i2c/devices/0-0050/eeprom: Connection timed out
==> Invalid EEPROM header detected
===> Writing header to EEPROM
dd: error writing '/sys/devices/platform/ocp/44e0b000.i2c/i2c-0/0-0050/eeprom': Connection timed out
0+1 records in
0+0 records out
0 bytes copied, 0.0290847 s, 0.0 kB/s
Traceback (last called is first):
     check_am335x_eeprom() in /opt/scripts/tools/eMMC/functions.sh:512
     check_eeprom() in /opt/scripts/tools/eMMC/functions.sh:535
     main() in /opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh:46
The command dd if=/opt/scripts/device/bone/${device_eeprom}.dump of=${eeprom_location} exited with exit code 1.
================================================================================
Tearing Down script environment
==> Unmounting /tmp
blockdev: cannot open /dev/mmcblk1: No such file or directory
==> Stopping Cylon LEDs ...
==> Setting LEDs to
[   32.610015] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[   32.610015]
[   32.619218] CPU: 0 PID: 1 Comm: init-eMMC-flash Tainted: G        W       4.14.108-ti-r127 #1
[   32.627778] Hardware name: Generic AM33XX (Flattened Device Tree)
[   32.633940] [<c011343c>] (unwind_backtrace) from [<c010d7e0>] (show_stack+0x20/0x24)
[   32.641728] [<c010d7e0>] (show_stack) from [<c0cf9068>] (dump_stack+0x80/0x94)
[   32.648991] [<c0cf9068>] (dump_stack) from [<c0140b70>] (panic+0x100/0x28c)
[   32.655994] [<c0140b70>] (panic) from [<c0146b08>] (complete_and_exit+0x0/0x2c)
[   32.663341] [<c0146b08>] (complete_and_exit) from [<c0146ba4>] (do_group_exit+0x50/0xd0)
[   32.671471] [<c0146ba4>] (do_group_exit) from [<c0146c44>] (__wake_up_parent+0x0/0x30)
[   32.679434] [<c0146c44>] (__wake_up_parent) from [<c0108ea0>] (ret_fast_syscall+0x0/0x54)
[   32.687672] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[   32.687672]
[   53.389563] random: crng init done

Actually this custom board do not have a board ID EEPROM. So we have used "ti_i2c_eeprom_am_set(“A335BNLT”, “00C0”) " function to set the required variables.

Regards,
Kiran B V

odd, this should now be:

Running uname_boot ...
loading /boot/vmlinuz-4.14.108-ti-r127 ...
loading /boot/initrd.img-4.14.108-ti-r127 ....
debug: [bootz 0x82000000 - 88000000] ...

and

debug: [bootz 0x82000000 88xxxxxx 88000000] ...

copy initrd.img-4.14.108-ti-r127 … to the same directory as vmlinuz-4.14.108-ti-r127 is under …

Regards,

Hi,

Its in the same directory

debian@arm:/home$ ls
debian
debian@arm:/home$ cd ..
debian@arm:/$ cd ..
debian@arm:/$ ls
bin   dev  home  lost+found  mnt  proc  run   srv  tmp  var
boot  etc  lib   media       opt  root  sbin  sys  usr
debian@arm:/$ cd boot/
debian@arm:/boot$ ls
dtbs  initrd.img-4.14.108-ti-r127  uboot  uEnv.txt  vmlinuz-4.14.108-ti-r127
debian@arm:/boot$

Regards,

Okay, it should load, did you change anything here:

link isn’t perfect, looking at this section:

#define EEWIKI_UNAME_BOOT \
	"uname_boot="\
		"setenv bootdir /boot; " \
		"setenv bootfile vmlinuz-${uname_r}; " \
		"if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile}; then " \
			"echo loading ${bootdir}/${bootfile} ...; "\
			"run loadimage;" \
			"setenv fdtdir /boot/dtbs/${uname_r}; " \
			"if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
				"run loadfdt;" \
			"else " \
				"setenv fdtdir /usr/lib/linux-image-${uname_r}; " \
				"if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
					"run loadfdt;" \
<snip>
				"fi;" \
			"fi; " \
			"setenv rdfile initrd.img-${uname_r}; " \
			"if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile}; then " \
				"echo loading ${bootdir}/${rdfile} ...; "\
				"run loadrd;" \

Regards,

Hi,

Posting u-boot config below :

#define EEWIKI_UNAME_BOOT \
	"uname_boot="\
		"setenv bootdir /boot;" \
		"setenv bootfile vmlinuz-${uname_r};" \
		"if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile};"  \
		"then echo loading ${bootdir}/${bootfile} ...;"  \
		"run loadimage;"  \
		"setenv fdtdir /boot/dtbs/${uname_r};"  \
		"echo debug: [enable_uboot_overlays=${enable_uboot_overlays}] ... ;"  \
		"if test -n ${enable_uboot_overlays};"  \
		"then if test -n ${dtb};"  \
		"then echo uboot_overlays: dtb=${dtb} is set in /boot/uEnv.txt, unable to use [${uboot_base_dtb_univ} or ${uboot_base_dtb}] ... ;"  \
		"if test -n ${enable_uboot_overlays};"  \
		"then env delete -f enable_uboot_overlays;"  \
		"echo uboot_overlays: disabling [enable_uboot_overlays=1] as dtb=${dtb} is set in /boot/uEnv.txt ... ;"  \
		"fi;"  \
		"else echo debug: [enable_uboot_cape_universal=${enable_uboot_cape_universal}] ... ;"  \
		"if test -n ${enable_uboot_cape_universal};"  \
		"then echo debug: [uboot_base_dtb_univ=${uboot_base_dtb_univ}] ... ;"  \
		"if test -n ${uboot_base_dtb_univ};"  \
		"then echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb_univ}] ... ;"  \
		"if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb_univ};" \
		"then setenv fdtfile ${uboot_base_dtb_univ};"  \
		"echo uboot_overlays: Switching too: dtb=${fdtfile} ...;"  \
	    "if test -n ${uboot_try_cape_universal};"  \
	    "then env delete -f uboot_try_cape_universal;"  \
	    "fi;"  \
	    "setenv cape_uboot bone_capemgr.uboot_capemgr_enabled=1;"  \
	    "else echo debug: unable to find [${uboot_base_dtb_univ}] using [${uboot_base_dtb}] instead ... ;"  \
	    "echo debug: [uboot_base_dtb_univ=${uboot_base_dtb}] ... ;"  \
	    "if test -n ${uboot_base_dtb};"  \
	    "then echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb}] ... ;"  \
	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb};"  \
	    "then setenv fdtfile ${uboot_base_dtb};"  \
	    "echo uboot_overlays: Switching too: dtb=${fdtfile} ...;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "else echo debug: [uboot_base_dtb_univ=${uboot_base_dtb}] ... ;"  \
	    "if test -n ${uboot_base_dtb};"  \
	    "then echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb}] ... ;"  \
	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb};"  \
	    "then setenv fdtfile ${uboot_base_dtb};"  \
	    "echo uboot_overlays: Switching too: dtb=${fdtfile} ...;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
	    "then run loadfdt;"  \
	    "else setenv fdtdir /usr/lib/linux-image-${uname_r};"  \
	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
	    "then run loadfdt;"  \
	    "else setenv fdtdir /lib/firmware/${uname_r}/device-tree;"  \
	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
	    "then run loadfdt;"  \
	    "else setenv fdtdir /boot/dtb-${uname_r};"  \
	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
	    "then run loadfdt;"  \
		"else setenv fdtdir /boot/dtbs;"  \
	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
	    "then run loadfdt;"  \
	    "else setenv fdtdir /boot/dtb;"  \
	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
	    "then run loadfdt;"  \
	    "else setenv fdtdir /boot;"  \
	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
	    "then run loadfdt;"  \
	    "else if test -e ${devtype} ${bootpart} ${fdtfile};"  \
	    "then run loadfdt;"  \
	    "else echo;"  \
	    "echo unable to find [dtb=${fdtfile}] did you name it correctly? ...;"  \
	    "run failumsboot;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "if test -n ${enable_uboot_overlays};"  \
	    "then setenv fdt_buffer 0x60000;"  \
	    "if test -n ${uboot_fdt_buffer};"  \
	    "then setenv fdt_buffer ${uboot_fdt_buffer};"  \
	    "fi;"  \
	    "echo uboot_overlays: [fdt_buffer=${fdt_buffer}] ... ;"  \
		"if test -n ${uboot_silicon};"  \
	    "then setenv uboot_overlay ${uboot_silicon};"  \
	    "run virtualloadoverlay;"  \
	    "fi;"  \
	    "if test -n ${uboot_model};"  \
	    "then setenv uboot_overlay ${uboot_model};"  \
	    "run virtualloadoverlay;"  \
		"fi;"  \
	    "if test -n ${uboot_overlay_addr0};"  \
	    "then if test -n ${disable_uboot_overlay_addr0};"  \
	    "then echo uboot_overlays: uboot loading of [${uboot_overlay_addr0}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr0=1]...;"  \
	    "else setenv uboot_overlay ${uboot_overlay_addr0};"  \
	    "run capeloadoverlay;"  \
	    "fi;"  \
	    "fi;"  \
	    "if test -n ${uboot_overlay_addr1};"  \
	    "then if test -n ${disable_uboot_overlay_addr1};"  \
	    "then echo uboot_overlays: uboot loading of [${uboot_overlay_addr1}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr1=1]...;"  \
	    "else setenv uboot_overlay ${uboot_overlay_addr1};"  \
	    "run capeloadoverlay;"  \
	    "fi;"  \
	    "fi;"  \
	    "if test -n ${uboot_overlay_addr2};"  \
	    "then if test -n ${disable_uboot_overlay_addr2};"  \
	    "then echo uboot_overlays: uboot loading of [${uboot_overlay_addr2}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr2=1]...;"  \
	    "else setenv uboot_overlay ${uboot_overlay_addr2};"  \
	    "run capeloadoverlay;"  \
	    "fi;"  \
	    "fi;"  \
	    "if test -n ${uboot_overlay_addr3};"  \
	    "then if test -n ${disable_uboot_overlay_addr3};"  \
	    "then echo uboot_overlays: uboot loading of [${uboot_overlay_addr3}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr3=1]...;"  \
	    "else setenv uboot_overlay ${uboot_overlay_addr3};"  \
	    "run capeloadoverlay;"  \
	    "fi;"  \
	    "fi;"  \
	    "if test -n ${uboot_overlay_addr4};"  \
	    "then setenv uboot_overlay ${uboot_overlay_addr4};"  \
	    "run capeloadoverlay;"  \
	    "fi;"  \
	    "if test -n ${uboot_overlay_addr5};"  \
	    "then setenv uboot_overlay ${uboot_overlay_addr5};"  \
	    "run capeloadoverlay;"  \
		"fi;"  \
		"if test -n ${uboot_overlay_addr6};"  \
	    "then setenv uboot_overlay ${uboot_overlay_addr6};"  \
		"run capeloadoverlay;"  \
	    "fi;"  \
	    "if test -n ${uboot_overlay_addr7};"  \
	    "then setenv uboot_overlay ${uboot_overlay_addr7};"  \
	    "run capeloadoverlay;"  \
	    "fi;"  \
	    "if test -n ${uboot_emmc};"  \
	    "then if test -n ${disable_uboot_overlay_emmc};"  \
	    "then echo uboot_overlays: uboot loading of [${uboot_emmc}] disabled by /boot/uEnv.txt [disable_uboot_overlay_emmc=1]...;"  \
	    "else setenv uboot_overlay ${uboot_emmc};"  \
	    "run virtualloadoverlay;"  \
	    "fi;"  \
	    "fi;"  \
	    "if test -n ${uboot_video};"  \
	    "then if test -n ${disable_uboot_overlay_video};"  \
	    "then echo uboot_overlays: uboot loading of [${uboot_video}] disabled by /boot/uEnv.txt [disable_uboot_overlay_video=1]...;"  \
	    "else if test -n ${disable_uboot_overlay_audio};"  \
	    "then echo uboot_overlays: uboot loading of [${uboot_video}] disabled by /boot/uEnv.txt [disable_uboot_overlay_audio=1]...;"  \
	    "setenv uboot_overlay ${uboot_video_naudio};"  \
	    "run virtualloadoverlay;"  \
	    "else setenv uboot_overlay ${uboot_video};"  \
	    "run virtualloadoverlay;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "if test -n ${uboot_wireless};"  \
	    "then if test -n ${disable_uboot_overlay_wireless};"  \
	    "then echo uboot_overlays: uboot loading of [${uboot_wireless}] disabled by /boot/uEnv.txt [disable_uboot_overlay_wireless=1]...;"  \
	    "else setenv uboot_overlay ${uboot_wireless};"  \
	    "run virtualloadoverlay;"  \
	    "fi;"  \
	    "fi;"  \
	    "if test -n ${uboot_adc};"  \
	    "then if test -n ${disable_uboot_overlay_adc};"  \
	    "then echo uboot_overlays: uboot loading of [${uboot_adc}] disabled by /boot/uEnv.txt [disable_uboot_overlay_adc=1]...;"  \
	    "else setenv uboot_overlay ${uboot_adc};"  \
	    "run virtualloadoverlay;"  \
	    "fi;"  \
	    "fi;"  \
	    "if test -n ${uboot_overlay_pru};"  \
	    "then setenv uboot_overlay ${uboot_overlay_pru};"  \
	    "run virtualloadoverlay;"  \
		"fi;"  \
		"if test -n ${dtb_overlay};"  \
	    "then setenv uboot_overlay ${dtb_overlay};"  \
	    "echo uboot_overlays: [dtb_overlay=${uboot_overlay}] ... ;"  \
	    "run capeloadoverlay;"  \
	    "fi;"  \
	    "if test -n ${uboot_detected_capes};"  \
	    "then echo uboot_overlays: [uboot_detected_capes=${uboot_detected_capes_addr0}${uboot_detected_capes_addr1}${uboot_detected_capes_addr2}${uboot_detected_capes_addr3}] ... ;"  \
	    "setenv uboot_detected_capes uboot_detected_capes=${uboot_detected_capes_addr0}${uboot_detected_capes_addr1}${uboot_detected_capes_addr2}${uboot_detected_capes_addr3};"  \
	    "fi;"  \
	    "if test -n ${uboot_try_cape_universal};"  \
	    "then if test -n ${enable_uboot_cape_universal};"  \
	    "then if test -n ${cape_uboot};"  \
	    "then echo uboot_overlays: cape universal disabled, external cape enabled or detected...;"  \
	    "else if test -n ${uboot_cape_universal_bbb};"  \
	    "then if test -n ${disable_uboot_overlay_emmc};"  \
	    "then if test -n ${disable_uboot_overlay_video};"  \
	    "then setenv uboot_overlay /lib/firmware/univ-bbb-xxx-00A0.dtbo;"  \
	    "else if test -n ${disable_uboot_overlay_audio};"  \
	    "then setenv uboot_overlay /lib/firmware/univ-bbb-xVx-00A0.dtbo;"  \
	    "else setenv uboot_overlay /lib/firmware/univ-bbb-xVA-00A0.dtbo;"  \
	    "fi;"  \
	    "fi;"  \
	    "else if test -n ${disable_uboot_overlay_video};"  \
	    "then setenv uboot_overlay /lib/firmware/univ-bbb-Exx-00A0.dtbo;"  \
	    "else if test -n ${disable_uboot_overlay_audio};"  \
	    "then setenv uboot_overlay /lib/firmware/univ-bbb-EVx-00A0.dtbo;"  \
	    "else setenv uboot_overlay /lib/firmware/univ-bbb-EVA-00A0.dtbo;"  \
	    "fi;"  \
	    "fi;"  \
	    "fi;"  \
	    "run capeloadoverlay;"  \
	    "fi;"  \
	    "if test -n ${uboot_cape_universal_bbg};"  \
	    "then if test -n ${disable_uboot_overlay_emmc};"  \
	    "then setenv uboot_overlay /lib/firmware/univ-bbb-xxx-00A0.dtbo;"  \
	    "else setenv uboot_overlay /lib/firmware/univ-bbb-Exx-00A0.dtbo;"  \
	    "fi;"  \
	    "run capeloadoverlay;"  \
		"fi;"  \
		"if test -n ${uboot_cape_universal_bbgw};"  \
	    "then if test -n ${disable_uboot_overlay_emmc};"  \
	    "then if test -n ${disable_uboot_overlay_wireless};"  \
	    "then setenv uboot_overlay /lib/firmware/univ-bbgw-xx-00A0.dtbo;"  \
	    "else setenv uboot_overlay /lib/firmware/univ-bbgw-xW-00A0.dtbo;"  \
	    "fi;"  \
	    "else if test -n ${disable_uboot_overlay_wireless};"  \
	    "then setenv uboot_overlay /lib/firmware/univ-bbgw-Ex-00A0.dtbo;"  \
	    "else setenv uboot_overlay /lib/firmware/univ-bbgw-EW-00A0.dtbo;"  \
	    "fi;"  \
	    "fi;"  \
	    "run capeloadoverlay;"  \
	    "fi;"  \
	    "fi;"  \
	    "else echo uboot_overlays: add [enable_uboot_cape_universal=1] to /boot/uEnv.txt to enable...;"  \
	    "fi;"  \
	    "fi;"  \
	    "else echo uboot_overlays: add [enable_uboot_overlays=1] to /boot/uEnv.txt to enable...;"  \
	    "fi;"  \
	    "setenv rdfile initrd.img-${uname_r};"  \
	    "if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile};"  \
	    "then echo loading ${bootdir}/${rdfile} ...;"  \
	    "run loadrd;"  \
	    "if test -n ${netinstall_enable};"  \
	    "then run args_netinstall;"  \
	    "run message;"  \
	    "echo debug: [${bootargs}] ... ;"  \
	    "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;"  \
	    "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};"  \
	    "fi;"  \
	    "if test -n ${uenv_root};"  \
	    "then run args_uenv_root;"  \
	    "echo debug: [${bootargs}] ... ;"  \
	    "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;"  \
	    "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};"  \
	    "fi;"  \
	    "if test -n ${uuid};"  \
		"then run args_mmc_uuid;"  \
	    "echo debug: [${bootargs}] ... ;"  \
	    "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;"  \
	    "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};"  \
	    "fi;"  \
	    "run args_mmc_old;"  \
		"echo debug: [${bootargs}] ... ;"  \
	    "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;"  \
	    "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};"  \
	    "else if test -n ${uenv_root};"  \
	    "then run args_uenv_root;"  \
	    "echo debug: [${bootargs}] ... ;"  \
	    "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;"  \
	    "bootz ${loadaddr} - ${fdtaddr};"  \
	    "fi;"  \
	    "run args_mmc_old;"  \
		"echo debug: [${bootargs}] ... ;"  \
	    "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;"  \
	    "bootz ${loadaddr} - ${fdtaddr};"  \
	    "fi;"  \
	    "fi;\0" \

Only following changes is done to u-boot :

diff --git a/arch/arm/include/asm/arch-am33xx/ddr_defs.h b/arch/arm/include/asm/arch-am33xx/ddr_defs.h
index d8ddecc..9df01f8 100644
--- a/arch/arm/include/asm/arch-am33xx/ddr_defs.h
+++ b/arch/arm/include/asm/arch-am33xx/ddr_defs.h
@@ -122,6 +122,24 @@
 #define MT41K256M16HA125E_PHY_FIFO_WE		0x94
 #define MT41K256M16HA125E_IOCTRL_VALUE		0x18B
 
+/* The register values are obtained from AM335X EMIF Tool
+DDR3 : MT41K256M16TW-107 IT:P
+*/
+#define MT41K256M16TW107ITP_EMIF_READ_LATENCY	0x100208
+#define MT41K256M16TW107ITP_EMIF_TIM1		0x0888A39B
+#define MT41K256M16TW107ITP_EMIF_TIM2		0x24517FDA
+#define MT41K256M16TW107ITP_EMIF_TIM3		0x50FFE4EF
+#define MT41K256M16TW107ITP_EMIF_SDCFG		0x61A05332
+#define MT41K256M16TW107ITP_EMIF_SDREF		0x93B
+#define MT41K256M16TW107ITP_ZQ_CFG		0x50074BE1
+#define MT41K256M16TW107ITP_RATIO			0x100
+#define MT41K256M16TW107ITP_INVERT_CLKOUT		0x1
+#define MT41K256M16TW107ITP_RD_DQS		0x40
+#define MT41K256M16TW107ITP_WR_DQS		0x80
+#define MT41K256M16TW107ITP_PHY_WR_DATA		0xC0
+#define MT41K256M16TW107ITP_PHY_FIFO_WE		0xE6
+#define MT41K256M16TW107ITP_IOCTRL_VALUE		0x18B
+
 /* Micron MT41J512M8RH-125 on EVM v1.5 */
 #define MT41J512M8RH125_EMIF_READ_LATENCY	0x100006
 #define MT41J512M8RH125_EMIF_TIM1		0x0888A39B
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index 876fc57..1f76f90 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -681,6 +681,44 @@ static struct emif_regs ddr3_icev2_emif_reg_data = {
 				PHY_EN_DYN_PWRDN,
 };
 
+#ifdef CONFIG_CUSTOM
+static const struct ddr_data	ddr3_Verificator_GW_ddr_data	= {
+	.datardsratio0 = MT41K256M16TW107ITP_RD_DQS,
+	.datawdsratio0 = MT41K256M16TW107ITP_WR_DQS,
+	.datafwsratio0 = MT41K256M16TW107ITP_PHY_FIFO_WE,
+	.datawrsratio0 = MT41K256M16TW107ITP_PHY_WR_DATA,
+};		
+		
+static const struct cmd_control 	ddr3_Verificator_GW_cmd_ctrl_data	= {
+	.cmd0csratio = MT41K256M16TW107ITP_RATIO,
+	.cmd0iclkout = MT41K256M16TW107ITP_INVERT_CLKOUT,
+	.cmd1csratio = MT41K256M16TW107ITP_RATIO,
+	.cmd1iclkout = MT41K256M16TW107ITP_INVERT_CLKOUT,
+	.cmd2csratio = MT41K256M16TW107ITP_RATIO,
+	.cmd2iclkout = MT41K256M16TW107ITP_INVERT_CLKOUT,
+};		
+		
+static struct emif_regs 	ddr3_Verificator_GW_emif_reg_data	= {
+	.sdram_config = MT41K256M16TW107ITP_EMIF_SDCFG,
+	.ref_ctrl = MT41K256M16TW107ITP_EMIF_SDREF,
+	.sdram_tim1 = MT41K256M16TW107ITP_EMIF_TIM1,
+	.sdram_tim2 = MT41K256M16TW107ITP_EMIF_TIM2,
+	.sdram_tim3 = MT41K256M16TW107ITP_EMIF_TIM3,
+	// This register is not defined in  provided excel sheet. Hence commenting out
+	// .ocp_config = EMIF_OCP_CONFIG_BEAGLEBONE_BLACK,
+	.zq_config = MT41K256M16TW107ITP_ZQ_CFG,
+	.emif_ddr_phy_ctlr_1 = MT41K256M16TW107ITP_EMIF_READ_LATENCY,
+};		
+		
+const struct ctrl_ioregs 	ddr3_Verificator_GW_ioregs_data	= {
+	.cm0ioctl =	MT41K256M16TW107ITP_IOCTRL_VALUE,
+	.cm1ioctl = MT41K256M16TW107ITP_IOCTRL_VALUE,
+	.cm2ioctl = MT41K256M16TW107ITP_IOCTRL_VALUE,
+	.dt0ioctl = MT41K256M16TW107ITP_IOCTRL_VALUE,
+	.dt1ioctl = MT41K256M16TW107ITP_IOCTRL_VALUE,
+};	
+#endif
+
 #ifdef CONFIG_SPL_OS_BOOT
 int spl_start_uboot(void)
 {
@@ -705,6 +743,9 @@ const struct dpll_params *get_dpll_ddr_params(void)
 {
 	int ind = get_sys_clk_index();
 
+#ifdef CONFIG_CUSTOM
+	return &dpll_ddr3_303MHz[ind];
+#else
 	if (board_is_evm_sk())
 		return &dpll_ddr3_303MHz[ind];
 	else if (board_is_pb() || board_is_bone_lt() || board_is_icev2() || board_is_beaglelogic())
@@ -713,6 +754,7 @@ const struct dpll_params *get_dpll_ddr_params(void)
 		return &dpll_ddr3_303MHz[ind];
 	else
 		return &dpll_ddr2_266MHz[ind];
+#endif
 }
 
 static u8 bone_not_connected_to_ac_power(void)
@@ -1002,10 +1044,17 @@ void sdram_init(void)
 		config_ddr(303, &ioregs_evmsk, &ddr3_data,
 			   &ddr3_cmd_ctrl_data, &ddr3_emif_reg_data, 0);
 	else if (board_is_pb() || board_is_bone_lt() || board_is_beaglelogic())
+	#ifdef CONFIG_CUSTOM
+		config_ddr(303	, &ddr3_Verificator_GW_ioregs_data,
+				&ddr3_Verificator_GW_ddr_data,
+				&ddr3_Verificator_GW_cmd_ctrl_data,
+				&ddr3_Verificator_GW_emif_reg_data, 0);
+	#else	
 		config_ddr(400, &ioregs_bonelt,
 			   &ddr3_beagleblack_data,
 			   &ddr3_beagleblack_cmd_ctrl_data,
 			   &ddr3_beagleblack_emif_reg_data, 0);
+	#endif
 	else if (board_is_evm_15_or_later())
 		config_ddr(303, &ioregs_evm15, &ddr3_evm_data,
 			   &ddr3_evm_cmd_ctrl_data, &ddr3_evm_emif_reg_data, 0);
diff --git a/board/ti/am335x/board.h b/board/ti/am335x/board.h
index ba8286d..0f26108 100644
--- a/board/ti/am335x/board.h
+++ b/board/ti/am335x/board.h
@@ -10,6 +10,8 @@
 #ifndef _BOARD_H_
 #define _BOARD_H_
 
+#define CONFIG_CUSTOM
+
 struct am335x_cape_eeprom_id {
 	unsigned int header;
 	char eeprom_rev[2];
@@ -51,7 +53,12 @@ static inline int board_is_bone(void)
 
 static inline int board_is_bone_lt(void)
 {
+#ifdef CONFIG_CUSTOM
+	// Return true always since CUSTOM is based on this board
+	return true;
+#else
 	return board_ti_is("A335BNLT");
+#endif
 }
 
 static inline int board_is_pb(void)
diff --git a/board/ti/common/board_detect.c b/board/ti/common/board_detect.c
index e258e22..ae77f2f 100644
--- a/board/ti/common/board_detect.c
+++ b/board/ti/common/board_detect.c
@@ -14,6 +14,8 @@
 
 #include "board_detect.h"
 
+#define CONFIG_CUSTOM
+
 #if !defined(CONFIG_DM_I2C)
 /**
  * ti_i2c_eeprom_init - Initialize an i2c bus and probe for a device
@@ -194,6 +196,12 @@ already_set:
 
 int __maybe_unused ti_i2c_eeprom_am_get(int bus_addr, int dev_addr)
 {
+#ifdef CONFIG_CUSTOM
+	// Board detect EEPROM is not used CUSTOM
+	// However, the configuration details are defined using ti_i2c_eeprom_am_set
+	ti_i2c_eeprom_am_set("A335BNLT", "00C0");
+	return 0;
+#else
 	int rc;
 	struct ti_am_eeprom am_ep;
 	struct ti_common_eeprom *ep;
@@ -236,6 +244,7 @@ int __maybe_unused ti_i2c_eeprom_am_get(int bus_addr, int dev_addr)
 	       TI_EEPROM_HDR_NO_OF_MAC_ADDR * TI_EEPROM_HDR_ETH_ALEN);
 
 	return 0;
+#endif
 }
 
 int __maybe_unused ti_i2c_eeprom_dra7_get(int bus_addr, int dev_addr)
diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
index 41aa4f2..149399b 100644
--- a/configs/am335x_evm_defconfig
+++ b/configs/am335x_evm_defconfig
@@ -4,7 +4,7 @@ CONFIG_TI_COMMON_CMD_OPTIONS=y
 CONFIG_AM33XX=y
 CONFIG_SPL=y
 CONFIG_DISTRO_DEFAULTS=y
-CONFIG_BOOTDELAY=0
+CONFIG_BOOTDELAY=5
 CONFIG_BOOTCOMMAND="if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run distro_bootcmd"
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
 CONFIG_VERSION_VARIABLE=y
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index 71d12dd..2fb94ba 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -155,6 +155,25 @@
 		"setenv stderr serial,nc; " \
 		"version\0" \
 	"preboot=run if_netconsole start_netconsole\0"\
+	"capeloadoverlay=" \
+		"if test -e ${devtype} ${bootpart} ${uboot_overlay}; then " \
+			"run loadoverlay;" \
+			"setenv cape_uboot bone_capemgr.uboot_capemgr_enabled=1; " \
+			"else echo uboot_overlays: unable to find [${devtype} ${bootpart} ${uboot_overlay}]...;" \
+		"fi;\0" \
+	"uboot_adc=/lib/firmware/BB-ADC-00A0.dtbo\0" \
+	"uboot_base_dtb=am335x-boneblack-uboot.dtb\0" \
+	"uboot_base_dtb_univ=am335x-boneblack-uboot-univ.dtb\0" \
+	"uboot_cape_universal_bbb=1\0" \
+	"uboot_emmc=/lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo\0" \
+	"uboot_try_cape_universal=1\0" \
+	"uboot_video=/lib/firmware/BB-HDMI-TDA998x-00A0.dtbo\0" \
+	"uboot_video_naudio=/lib/firmware/BB-NHDMI-TDA998x-00A0.dtbo\0" \
+	"virtualloadoverlay=" \
+		"if test -e ${devtype} ${bootpart} ${uboot_overlay}; " \
+		"then run loadoverlay;" \
+		"else echo uboot_overlays: unable to find [${devtype} ${bootpart} ${uboot_overlay}]...;" \
+		"fi;\0" \
 	"eeprom_program="\
 		"if test $board_eeprom_header = bbb_blank; then " \
 			"run eeprom_dump; run eeprom_blank; run eeprom_bbb_header; run eeprom_dump; reset; fi; " \
@@ -172,62 +191,77 @@
 		"run ramargs; " \
 		"bootz ${loadaddr} ${rdaddr} ${fdtaddr}\0" \
 	"findfdt="\
-		"echo board_name=[$board_name] ...; " \
-		"if test $board_name = A335BLGC; then " \
-			"setenv fdtfile am335x-beaglelogic.dtb; fi; " \
-		"if test $board_name = A335BONE; then " \
-			"setenv fdtfile am335x-bone.dtb; fi; " \
-		"if test $board_name = A335BNLT; then " \
-			"echo board_rev=[$board_rev] ...; " \
-			"if test $board_rev = GH01; then " \
-				"setenv fdtfile am335x-boneblack.dtb; " \
-			"elif test $board_rev = BBG1; then " \
-				"setenv fdtfile am335x-bonegreen.dtb; " \
-			"elif test $board_rev = BP00; then " \
-				"setenv fdtfile am335x-pocketbone.dtb; " \
-			"elif test $board_rev = GW1A; then " \
-				"setenv fdtfile am335x-bonegreen-wireless.dtb; " \
-			"elif test $board_rev = GG1A; then " \
-				"setenv fdtfile am335x-bonegreen-gateway.dtb; " \
-			"elif test $board_rev = AIA0; then " \
-				"setenv fdtfile am335x-abbbi.dtb; " \
-			"elif test $board_rev = EIA0; then " \
-				"setenv fdtfile am335x-boneblack.dtb; " \
-			"elif test $board_rev = ME06; then " \
-				"setenv fdtfile am335x-bonegreen.dtb; " \
-			"elif test $board_rev = OS00; then " \
-				"setenv fdtfile am335x-osd3358-sm-red.dtb; " \
-			"else " \
-				"setenv fdtfile am335x-boneblack.dtb; " \
-			"fi; " \
-		"fi; " \
-		"if test $board_name = A335PBGL; then " \
-			"setenv fdtfile am335x-pocketbeagle.dtb; fi; " \
-		"if test $board_name = BBBW; then " \
-			"setenv fdtfile am335x-boneblack-wireless.dtb; fi; " \
-		"if test $board_name = BBG1; then " \
-			"setenv fdtfile am335x-bonegreen.dtb; fi; " \
-		"if test $board_name = BBGW; then " \
-			"setenv fdtfile am335x-bonegreen-wireless.dtb; fi; " \
-		"if test $board_name = BBGG; then " \
-			"setenv fdtfile am335x-bonegreen-gateway.dtb; fi; " \
-		"if test $board_name = BBBL; then " \
-			"setenv fdtfile am335x-boneblue.dtb; fi; " \
-		"if test $board_name = BBEN; then " \
-			"setenv fdtfile am335x-sancloud-bbe.dtb; fi; " \
-		"if test $board_name = OS00; then " \
-			"setenv fdtfile am335x-osd3358-sm-red.dtb; fi; " \
-		"if test $board_name = A33515BB; then " \
-			"setenv fdtfile am335x-evm.dtb; fi; " \
-		"if test $board_name = A335X_SK; then " \
-			"setenv fdtfile am335x-evmsk.dtb; fi; " \
-		"if test $board_name = A335_ICE; then " \
-			"setenv fdtfile am335x-icev2.dtb; fi; " \
-		"if test $fdtfile = undefined; then " \
-			"setenv board_name A335BNLT; " \
-			"setenv board_rev EMMC; " \
-			"setenv fdtfile am335x-bonegreen.dtb; " \
-		"fi; \0" \
+		"echo board_name=[$board_name] ...; "\
+		"if test $board_name = A335BLGC; "\
+			"then setenv fdtfile am335x-beaglelogic.dtb; "\
+			"fi; "\
+			"if test $board_name = A335BONE; "\
+			"then setenv fdtfile am335x-bone.dtb; "\
+			"fi; "\
+			"if test $board_name = A335BNLT; "\
+			"then echo board_rev=[$board_rev] ...; "\
+			"if test $board_rev = GH01; "\
+			"then setenv fdtfile am335x-boneblack.dtb; "\
+			"elif test $board_rev = BBG1; "\
+			"then setenv fdtfile am335x-bonegreen.dtb; "\
+			"elif test $board_rev = BP00; "\
+			"then setenv fdtfile am335x-pocketbone.dtb; "\
+			"elif test $board_rev = GW1A; "\
+			"then setenv fdtfile am335x-bonegreen-wireless.dtb; "\
+			"elif test $board_rev = AIA0; "\
+			"then setenv fdtfile am335x-abbbi.dtb; "\
+			"elif test $board_rev = EIA0; "\
+			"then setenv fdtfile am335x-boneblack.dtb; "\
+			"elif test $board_rev = ME06; "\
+			"then setenv fdtfile am335x-bonegreen.dtb; "\
+			"elif test $board_rev = M10A; "\
+			"then setenv fdtfile am335x-vsc8531bbb.dtb; "\
+			"elif test $board_rev = OS00; "\
+			"then setenv fdtfile am335x-osd3358-sm-red.dtb; "\
+			"else setenv fdtfile am335x-boneblack.dtb; "\
+			"fi; "\
+			"fi; "\
+			"if test $board_name = A335PBGL; "\
+			"then setenv fdtfile am335x-pocketbeagle.dtb; "\
+			"fi; "\
+			"if test $board_name = BBBW; "\
+			"then setenv fdtfile am335x-boneblack-wireless.dtb; "\
+			"fi; "\
+			"if test $board_name = BBG1; "\
+			"then setenv fdtfile am335x-bonegreen.dtb; "\
+			"fi; if test $board_name = BBGW; "\
+			"then setenv fdtfile am335x-bonegreen-wireless.dtb; "\
+			"fi; "\
+			"if test $board_name = BBBL; "\
+			"then setenv fdtfile am335x-boneblue.dtb; "\
+			"fi; "\
+			"if test $board_name = BBEN; "\
+			"then setenv fdtfile am335x-sancloud-bbe.dtb; "\
+			"fi; "\
+			"if test $board_name = OS00; "\
+			"then setenv fdtfile am335x-osd3358-sm-red.dtb; "\
+			"fi; "\
+			"if test $board_name = A33515BB; "\
+			"then setenv fdtfile am335x-evm.dtb; "\
+			"fi; "\
+			"if test $board_name = A335X_SK; "\
+			"then setenv fdtfile am335x-evmsk.dtb; "\
+			"fi; "\
+			"if test $board_name = A335_ICE; "\
+			"then setenv fdtfile am335x-icev2.dtb; "\
+			"fi; "\
+			"if test $fdtfile = undefined; "\
+			"then setenv board_name A335BNLT; "\
+			"setenv board_rev EMMC; "\
+			"setenv fdtfile am335x-boneblack-emmc-overlay.dtb; "\
+		"fi;\0"\
+	"loadoverlay="\
+		"echo uboot_overlays: loading ${uboot_overlay} ...; "\
+		"load ${devtype} ${bootpart} ${rdaddr} ${uboot_overlay}; "\
+		"fdt addr ${fdtaddr}; "\
+		"fdt resize ${fdt_buffer}; "\
+		"fdt apply ${rdaddr}; "\
+		"fdt resize ${fdt_buffer};\0"\
 	"init_console=" \
 		"if test $board_name = A335_ICE; then "\
 			"setenv console ttyO3,115200n8;" \
diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
index 7de6619..eb1579f 100644
--- a/include/configs/ti_armv7_common.h
+++ b/include/configs/ti_armv7_common.h
@@ -172,6 +172,12 @@
 		"i2c mw 0x50 0x0e.2 31; " \
 		"i2c mw 0x50 0x0f.2 41; " \
 		"\0" \
+	"eeprom_os00_footer= " \
+		"i2c mw 0x50 0x0c.2 4F; " \
+		"i2c mw 0x50 0x0d.2 53; " \
+		"i2c mw 0x50 0x0e.2 30; " \
+		"i2c mw 0x50 0x0f.2 30; " \
+		"\0" \
 	"eeprom_pocketbeagle= " \
 		"i2c mw 0x50 0x00.2 aa; " \
 		"i2c mw 0x50 0x01.2 55; " \
@@ -223,6 +229,8 @@
 	"nfsrootfstype=ext4 rootwait fixrtc\0" \
 	"nfsargs=setenv bootargs console=${console} " \
 		"${optargs} " \
+		"${cape_disable} " \
+		"${cape_enable} " \
 		"${cape_uboot} " \
 		"root=/dev/nfs rw " \
 		"rootfstype=${nfsrootfstype} " \
@@ -331,243 +339,279 @@
 
 #define EEWIKI_UNAME_BOOT \
 	"uname_boot="\
-		"setenv bootdir /boot; " \
-		"setenv bootfile vmlinuz-${uname_r}; " \
-		"if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile}; then " \
-			"echo loading ${bootdir}/${bootfile} ...; "\
-			"run loadimage;" \
-			"setenv fdtdir /boot/dtbs/${uname_r}; " \
-			"echo debug: [enable_uboot_overlays=${enable_uboot_overlays}] ... ;" \
-			"if test -n ${enable_uboot_overlays}; then " \
-				"echo debug: [enable_uboot_cape_universal=${enable_uboot_cape_universal}] ... ;" \
-				"if test -n ${enable_uboot_cape_universal}; then " \
-					"echo debug: [uboot_base_dtb_univ=${uboot_base_dtb_univ}] ... ;" \
-					"if test -n ${uboot_base_dtb_univ}; then " \
-						"echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb_univ}] ... ;" \
-						"if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb_univ}; then " \
-							"setenv fdtfile ${uboot_base_dtb_univ};" \
-							"echo uboot_overlays: Switching too: dtb=${fdtfile} ...;" \
-							"setenv cape_uboot bone_capemgr.uboot_capemgr_enabled=1; " \
-						"else " \
-							"echo debug: unable to find [${uboot_base_dtb_univ}] using [${uboot_base_dtb}] instead ... ;" \
-							"echo debug: [uboot_base_dtb_univ=${uboot_base_dtb}] ... ;" \
-							"if test -n ${uboot_base_dtb}; then " \
-								"echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb}] ... ;" \
-								"if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb}; then " \
-									"setenv fdtfile ${uboot_base_dtb};" \
-									"echo uboot_overlays: Switching too: dtb=${fdtfile} ...;" \
-								"fi;" \
-							"fi;" \
-						"fi;" \
-					"fi;" \
-				"else " \
-					"echo debug: [uboot_base_dtb_univ=${uboot_base_dtb}] ... ;" \
-					"if test -n ${uboot_base_dtb}; then " \
-						"echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb}] ... ;" \
-						"if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb}; then " \
-							"setenv fdtfile ${uboot_base_dtb};" \
-							"echo uboot_overlays: Switching too: dtb=${fdtfile} ...;" \
-						"fi;" \
-					"fi;" \
-				"fi;" \
-			"fi;" \
-			"if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
-				"run loadfdt;" \
-			"else " \
-				"setenv fdtdir /usr/lib/linux-image-${uname_r}; " \
-				"if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
-					"run loadfdt;" \
-				"else " \
-					"setenv fdtdir /lib/firmware/${uname_r}/device-tree; " \
-					"if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
-						"run loadfdt;" \
-					"else " \
-						"setenv fdtdir /boot/dtb-${uname_r}; " \
-						"if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
-							"run loadfdt;" \
-						"else " \
-							"setenv fdtdir /boot/dtbs; " \
-							"if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
-								"run loadfdt;" \
-							"else " \
-								"setenv fdtdir /boot/dtb; " \
-								"if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
-									"run loadfdt;" \
-								"else " \
-									"setenv fdtdir /boot; " \
-									"if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
-										"run loadfdt;" \
-									"else " \
-										"if test -e ${devtype} ${bootpart} ${fdtfile}; then " \
-											"run loadfdt;" \
-										"else " \
-											"echo; echo unable to find [dtb=${fdtfile}] did you name it correctly? ...; " \
-											"run failumsboot;" \
-										"fi;" \
-									"fi;" \
-								"fi;" \
-							"fi;" \
-						"fi;" \
-					"fi;" \
-				"fi;" \
-			"fi; " \
-			"if test -n ${enable_uboot_overlays}; then " \
-				"setenv fdt_buffer 0x60000;" \
-				"if test -n ${uboot_fdt_buffer}; then " \
-					"setenv fdt_buffer ${uboot_fdt_buffer};" \
-				"fi;" \
-				"echo uboot_overlays: [fdt_buffer=${fdt_buffer}] ... ;" \
-				"if test -n ${uboot_silicon}; then " \
-					"setenv uboot_overlay ${uboot_silicon}; " \
-					"run virtualloadoverlay;" \
-				"fi;" \
-				"if test -n ${uboot_model}; then " \
-					"setenv uboot_overlay ${uboot_model}; " \
-					"run virtualloadoverlay;" \
-				"fi;" \
-				"if test -n ${disable_uboot_overlay_adc}; then " \
-					"echo uboot_overlays: uboot loading of [BB-ADC-00A0.dtbo] disabled by /boot/uEnv.txt [disable_uboot_overlay_adc=1]...;" \
-				"else " \
-					"setenv uboot_overlay BB-ADC-00A0.dtbo; " \
-					"run virtualloadoverlay;" \
-				"fi;" \
-				"if test -n ${uboot_overlay_addr0}; then " \
-					"if test -n ${disable_uboot_overlay_addr0}; then " \
-						"echo uboot_overlays: uboot loading of [${uboot_overlay_addr0}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr0=1]...;" \
-					"else " \
-						"setenv uboot_overlay ${uboot_overlay_addr0}; " \
-						"run virtualloadoverlay;" \
-					"fi;" \
-				"fi;" \
-				"if test -n ${uboot_overlay_addr1}; then " \
-					"if test -n ${disable_uboot_overlay_addr1}; then " \
-						"echo uboot_overlays: uboot loading of [${uboot_overlay_addr1}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr1=1]...;" \
-					"else " \
-						"setenv uboot_overlay ${uboot_overlay_addr1}; " \
-						"run virtualloadoverlay;" \
-					"fi;" \
-				"fi;" \
-				"if test -n ${uboot_overlay_addr2}; then " \
-					"if test -n ${disable_uboot_overlay_addr2}; then " \
-						"echo uboot_overlays: uboot loading of [${uboot_overlay_addr2}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr2=1]...;" \
-					"else " \
-						"setenv uboot_overlay ${uboot_overlay_addr2}; " \
-						"run virtualloadoverlay;" \
-					"fi;" \
-				"fi;" \
-				"if test -n ${uboot_overlay_addr3}; then " \
-					"if test -n ${disable_uboot_overlay_addr3}; then " \
-						"echo uboot_overlays: uboot loading of [${uboot_overlay_addr3}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr3=1]...;" \
-					"else " \
-						"setenv uboot_overlay ${uboot_overlay_addr3}; " \
-						"run virtualloadoverlay;" \
-					"fi;" \
-				"fi;" \
-				"if test -n ${uboot_overlay_addr4}; then " \
-					"setenv uboot_overlay ${uboot_overlay_addr4}; " \
-					"run virtualloadoverlay;" \
-				"fi;" \
-				"if test -n ${uboot_overlay_addr5}; then " \
-					"setenv uboot_overlay ${uboot_overlay_addr5}; " \
-					"run virtualloadoverlay;" \
-				"fi;" \
-				"if test -n ${uboot_overlay_addr6}; then " \
-					"setenv uboot_overlay ${uboot_overlay_addr6}; " \
-					"run virtualloadoverlay;" \
-				"fi;" \
-				"if test -n ${uboot_overlay_addr7}; then " \
-					"setenv uboot_overlay ${uboot_overlay_addr7}; " \
-					"run virtualloadoverlay;" \
-				"fi;" \
-				"if test -n ${uboot_emmc}; then " \
-					"if test -n ${disable_uboot_overlay_emmc}; then " \
-						"echo uboot_overlays: uboot loading of [${uboot_emmc}] disabled by /boot/uEnv.txt [disable_uboot_overlay_emmc=1]...;" \
-					"else " \
-						"setenv uboot_overlay ${uboot_emmc}; " \
-						"run virtualloadoverlay;" \
-					"fi;" \
-				"fi;" \
-				"if test -n ${uboot_video}; then " \
-					"if test -n ${disable_uboot_overlay_video}; then " \
-						"echo uboot_overlays: uboot loading of [${uboot_video}] disabled by /boot/uEnv.txt [disable_uboot_overlay_video=1]...;" \
-					"else " \
-						"if test -n ${disable_uboot_overlay_audio}; then " \
-							"echo uboot_overlays: uboot loading of [${uboot_video}] disabled by /boot/uEnv.txt [disable_uboot_overlay_audio=1]...;" \
-							"setenv uboot_overlay ${uboot_video_naudio}; " \
-							"run virtualloadoverlay;" \
-						"else " \
-							"setenv uboot_overlay ${uboot_video}; " \
-							"run virtualloadoverlay;" \
-						"fi;" \
-					"fi;" \
-				"fi;" \
-				"if test -n ${uboot_wireless}; then " \
-					"if test -n ${disable_uboot_overlay_wireless}; then " \
-						"echo uboot_overlays: uboot loading of [${uboot_wireless}] disabled by /boot/uEnv.txt [disable_uboot_overlay_wireless=1]...;" \
-					"else " \
-						"setenv uboot_overlay ${uboot_wireless}; " \
-						"run virtualloadoverlay;" \
-					"fi;" \
-				"fi;" \
-				"if test -n ${uboot_overlay_pru}; then " \
-					"setenv uboot_overlay ${uboot_overlay_pru}; " \
-					"run virtualloadoverlay;" \
-				"fi;" \
-				"if test -n ${uboot_overlay_pru_add}; then " \
-					"setenv uboot_overlay ${uboot_overlay_pru_add}; " \
-					"run virtualloadoverlay;" \
-				"fi;" \
-				"if test -n ${dtb_overlay}; then " \
-					"setenv uboot_overlay ${dtb_overlay}; " \
-					"echo uboot_overlays: [dtb_overlay=${uboot_overlay}] ... ;" \
-					"run virtualloadoverlay;" \
-				"fi;" \
-				"if test -n ${uboot_detected_capes}; then " \
-					"echo uboot_overlays: [uboot_detected_capes=${uboot_detected_capes_addr0}${uboot_detected_capes_addr1}${uboot_detected_capes_addr2}${uboot_detected_capes_addr3}] ... ;" \
-					"setenv uboot_detected_capes uboot_detected_capes=${uboot_detected_capes_addr0}${uboot_detected_capes_addr1}${uboot_detected_capes_addr2}${uboot_detected_capes_addr3}; " \
-				"fi;" \
-			"else " \
-				"echo uboot_overlays: add [enable_uboot_overlays=1] to /boot/uEnv.txt to enable...;" \
-			"fi;" \
-			"setenv rdfile initrd.img-${uname_r}; " \
-			"if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile}; then " \
-				"echo loading ${bootdir}/${rdfile} ...; "\
-				"run loadrd;" \
-				"if test -n ${netinstall_enable}; then " \
-					"run args_netinstall; run message;" \
-					"echo debug: [${bootargs}] ... ;" \
-					"echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
-					"bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
-				"fi;" \
-				"if test -n ${uenv_root}; then " \
-					"run args_uenv_root;" \
-					"echo debug: [${bootargs}] ... ;" \
-					"echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
-					"bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
-				"fi;" \
-				"if test -n ${uuid}; then " \
-					"run args_mmc_uuid;" \
-					"echo debug: [${bootargs}] ... ;" \
-					"echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
-					"bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
-				"fi;" \
-				"run args_mmc_old;" \
-				"echo debug: [${bootargs}] ... ;" \
-				"echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
-				"bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
-			"else " \
-				"if test -n ${uenv_root}; then " \
-					"run args_uenv_root;" \
-					"echo debug: [${bootargs}] ... ;" \
-					"echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \
-					"bootz ${loadaddr} - ${fdtaddr}; " \
-				"fi;" \
-				"run args_mmc_old;" \
-				"echo debug: [${bootargs}] ... ;" \
-				"echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \
-				"bootz ${loadaddr} - ${fdtaddr}; " \
-			"fi;" \
-		"fi;\0" \
+		"setenv bootdir /boot;" \
+		"setenv bootfile vmlinuz-${uname_r};" \
+		"if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile};"  \
+		"then echo loading ${bootdir}/${bootfile} ...;"  \
+		"run loadimage;"  \
+		"setenv fdtdir /boot/dtbs/${uname_r};"  \
+		"echo debug: [enable_uboot_overlays=${enable_uboot_overlays}] ... ;"  \
+		"if test -n ${enable_uboot_overlays};"  \
+		"then if test -n ${dtb};"  \
+		"then echo uboot_overlays: dtb=${dtb} is set in /boot/uEnv.txt, unable to use [${uboot_base_dtb_univ} or ${uboot_base_dtb}] ... ;"  \
+		"if test -n ${enable_uboot_overlays};"  \
+		"then env delete -f enable_uboot_overlays;"  \
+		"echo uboot_overlays: disabling [enable_uboot_overlays=1] as dtb=${dtb} is set in /boot/uEnv.txt ... ;"  \
+		"fi;"  \
+		"else echo debug: [enable_uboot_cape_universal=${enable_uboot_cape_universal}] ... ;"  \
+		"if test -n ${enable_uboot_cape_universal};"  \
+		"then echo debug: [uboot_base_dtb_univ=${uboot_base_dtb_univ}] ... ;"  \
+		"if test -n ${uboot_base_dtb_univ};"  \
+		"then echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb_univ}] ... ;"  \
+		"if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb_univ};" \
+		"then setenv fdtfile ${uboot_base_dtb_univ};"  \
+		"echo uboot_overlays: Switching too: dtb=${fdtfile} ...;"  \
+	    "if test -n ${uboot_try_cape_universal};"  \
+	    "then env delete -f uboot_try_cape_universal;"  \
+	    "fi;"  \
+	    "setenv cape_uboot bone_capemgr.uboot_capemgr_enabled=1;"  \
+	    "else echo debug: unable to find [${uboot_base_dtb_univ}] using [${uboot_base_dtb}] instead ... ;"  \
+	    "echo debug: [uboot_base_dtb_univ=${uboot_base_dtb}] ... ;"  \
+	    "if test -n ${uboot_base_dtb};"  \
+	    "then echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb}] ... ;"  \
+	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb};"  \
+	    "then setenv fdtfile ${uboot_base_dtb};"  \
+	    "echo uboot_overlays: Switching too: dtb=${fdtfile} ...;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "else echo debug: [uboot_base_dtb_univ=${uboot_base_dtb}] ... ;"  \
+	    "if test -n ${uboot_base_dtb};"  \
+	    "then echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb}] ... ;"  \
+	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb};"  \
+	    "then setenv fdtfile ${uboot_base_dtb};"  \
+	    "echo uboot_overlays: Switching too: dtb=${fdtfile} ...;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
+	    "then run loadfdt;"  \
+	    "else setenv fdtdir /usr/lib/linux-image-${uname_r};"  \
+	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
+	    "then run loadfdt;"  \
+	    "else setenv fdtdir /lib/firmware/${uname_r}/device-tree;"  \
+	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
+	    "then run loadfdt;"  \
+	    "else setenv fdtdir /boot/dtb-${uname_r};"  \
+	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
+	    "then run loadfdt;"  \
+		"else setenv fdtdir /boot/dtbs;"  \
+	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
+	    "then run loadfdt;"  \
+	    "else setenv fdtdir /boot/dtb;"  \
+	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
+	    "then run loadfdt;"  \
+	    "else setenv fdtdir /boot;"  \
+	    "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile};"  \
+	    "then run loadfdt;"  \
+	    "else if test -e ${devtype} ${bootpart} ${fdtfile};"  \
+	    "then run loadfdt;"  \
+	    "else echo;"  \
+	    "echo unable to find [dtb=${fdtfile}] did you name it correctly? ...;"  \
+	    "run failumsboot;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "if test -n ${enable_uboot_overlays};"  \
+	    "then setenv fdt_buffer 0x60000;"  \
+	    "if test -n ${uboot_fdt_buffer};"  \
+	    "then setenv fdt_buffer ${uboot_fdt_buffer};"  \
+	    "fi;"  \
+	    "echo uboot_overlays: [fdt_buffer=${fdt_buffer}] ... ;"  \
+		"if test -n ${uboot_silicon};"  \
+	    "then setenv uboot_overlay ${uboot_silicon};"  \
+	    "run virtualloadoverlay;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_model};"  \
+	    "then setenv uboot_overlay ${uboot_model};"  \
+	    "run virtualloadoverlay;"  \
+		"fi;"  \
+	    "if test -n ${uboot_overlay_addr0};"  \
+	    "then if test -n ${disable_uboot_overlay_addr0};"  \
+	    "then echo uboot_overlays: uboot loading of [${uboot_overlay_addr0}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr0=1]...;"  \
+	    "else setenv uboot_overlay ${uboot_overlay_addr0};"  \
+	    "run capeloadoverlay;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_overlay_addr1};"  \
+	    "then if test -n ${disable_uboot_overlay_addr1};"  \
+	    "then echo uboot_overlays: uboot loading of [${uboot_overlay_addr1}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr1=1]...;"  \
+	    "else setenv uboot_overlay ${uboot_overlay_addr1};"  \
+	    "run capeloadoverlay;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_overlay_addr2};"  \
+	    "then if test -n ${disable_uboot_overlay_addr2};"  \
+	    "then echo uboot_overlays: uboot loading of [${uboot_overlay_addr2}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr2=1]...;"  \
+	    "else setenv uboot_overlay ${uboot_overlay_addr2};"  \
+	    "run capeloadoverlay;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_overlay_addr3};"  \
+	    "then if test -n ${disable_uboot_overlay_addr3};"  \
+	    "then echo uboot_overlays: uboot loading of [${uboot_overlay_addr3}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr3=1]...;"  \
+	    "else setenv uboot_overlay ${uboot_overlay_addr3};"  \
+	    "run capeloadoverlay;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_overlay_addr4};"  \
+	    "then setenv uboot_overlay ${uboot_overlay_addr4};"  \
+	    "run capeloadoverlay;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_overlay_addr5};"  \
+	    "then setenv uboot_overlay ${uboot_overlay_addr5};"  \
+	    "run capeloadoverlay;"  \
+		"fi;"  \
+		"if test -n ${uboot_overlay_addr6};"  \
+	    "then setenv uboot_overlay ${uboot_overlay_addr6};"  \
+		"run capeloadoverlay;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_overlay_addr7};"  \
+	    "then setenv uboot_overlay ${uboot_overlay_addr7};"  \
+	    "run capeloadoverlay;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_emmc};"  \
+	    "then if test -n ${disable_uboot_overlay_emmc};"  \
+	    "then echo uboot_overlays: uboot loading of [${uboot_emmc}] disabled by /boot/uEnv.txt [disable_uboot_overlay_emmc=1]...;"  \
+	    "else setenv uboot_overlay ${uboot_emmc};"  \
+	    "run virtualloadoverlay;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_video};"  \
+	    "then if test -n ${disable_uboot_overlay_video};"  \
+	    "then echo uboot_overlays: uboot loading of [${uboot_video}] disabled by /boot/uEnv.txt [disable_uboot_overlay_video=1]...;"  \
+	    "else if test -n ${disable_uboot_overlay_audio};"  \
+	    "then echo uboot_overlays: uboot loading of [${uboot_video}] disabled by /boot/uEnv.txt [disable_uboot_overlay_audio=1]...;"  \
+	    "setenv uboot_overlay ${uboot_video_naudio};"  \
+	    "run virtualloadoverlay;"  \
+	    "else setenv uboot_overlay ${uboot_video};"  \
+	    "run virtualloadoverlay;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_wireless};"  \
+	    "then if test -n ${disable_uboot_overlay_wireless};"  \
+	    "then echo uboot_overlays: uboot loading of [${uboot_wireless}] disabled by /boot/uEnv.txt [disable_uboot_overlay_wireless=1]...;"  \
+	    "else setenv uboot_overlay ${uboot_wireless};"  \
+	    "run virtualloadoverlay;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_adc};"  \
+	    "then if test -n ${disable_uboot_overlay_adc};"  \
+	    "then echo uboot_overlays: uboot loading of [${uboot_adc}] disabled by /boot/uEnv.txt [disable_uboot_overlay_adc=1]...;"  \
+	    "else setenv uboot_overlay ${uboot_adc};"  \
+	    "run virtualloadoverlay;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_overlay_pru};"  \
+	    "then setenv uboot_overlay ${uboot_overlay_pru};"  \
+	    "run virtualloadoverlay;"  \
+		"fi;"  \
+		"if test -n ${dtb_overlay};"  \
+	    "then setenv uboot_overlay ${dtb_overlay};"  \
+	    "echo uboot_overlays: [dtb_overlay=${uboot_overlay}] ... ;"  \
+	    "run capeloadoverlay;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_detected_capes};"  \
+	    "then echo uboot_overlays: [uboot_detected_capes=${uboot_detected_capes_addr0}${uboot_detected_capes_addr1}${uboot_detected_capes_addr2}${uboot_detected_capes_addr3}] ... ;"  \
+	    "setenv uboot_detected_capes uboot_detected_capes=${uboot_detected_capes_addr0}${uboot_detected_capes_addr1}${uboot_detected_capes_addr2}${uboot_detected_capes_addr3};"  \
+	    "fi;"  \
+	    "if test -n ${uboot_try_cape_universal};"  \
+	    "then if test -n ${enable_uboot_cape_universal};"  \
+	    "then if test -n ${cape_uboot};"  \
+	    "then echo uboot_overlays: cape universal disabled, external cape enabled or detected...;"  \
+	    "else if test -n ${uboot_cape_universal_bbb};"  \
+	    "then if test -n ${disable_uboot_overlay_emmc};"  \
+	    "then if test -n ${disable_uboot_overlay_video};"  \
+	    "then setenv uboot_overlay /lib/firmware/univ-bbb-xxx-00A0.dtbo;"  \
+	    "else if test -n ${disable_uboot_overlay_audio};"  \
+	    "then setenv uboot_overlay /lib/firmware/univ-bbb-xVx-00A0.dtbo;"  \
+	    "else setenv uboot_overlay /lib/firmware/univ-bbb-xVA-00A0.dtbo;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "else if test -n ${disable_uboot_overlay_video};"  \
+	    "then setenv uboot_overlay /lib/firmware/univ-bbb-Exx-00A0.dtbo;"  \
+	    "else if test -n ${disable_uboot_overlay_audio};"  \
+	    "then setenv uboot_overlay /lib/firmware/univ-bbb-EVx-00A0.dtbo;"  \
+	    "else setenv uboot_overlay /lib/firmware/univ-bbb-EVA-00A0.dtbo;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "run capeloadoverlay;"  \
+	    "fi;"  \
+	    "if test -n ${uboot_cape_universal_bbg};"  \
+	    "then if test -n ${disable_uboot_overlay_emmc};"  \
+	    "then setenv uboot_overlay /lib/firmware/univ-bbb-xxx-00A0.dtbo;"  \
+	    "else setenv uboot_overlay /lib/firmware/univ-bbb-Exx-00A0.dtbo;"  \
+	    "fi;"  \
+	    "run capeloadoverlay;"  \
+		"fi;"  \
+		"if test -n ${uboot_cape_universal_bbgw};"  \
+	    "then if test -n ${disable_uboot_overlay_emmc};"  \
+	    "then if test -n ${disable_uboot_overlay_wireless};"  \
+	    "then setenv uboot_overlay /lib/firmware/univ-bbgw-xx-00A0.dtbo;"  \
+	    "else setenv uboot_overlay /lib/firmware/univ-bbgw-xW-00A0.dtbo;"  \
+	    "fi;"  \
+	    "else if test -n ${disable_uboot_overlay_wireless};"  \
+	    "then setenv uboot_overlay /lib/firmware/univ-bbgw-Ex-00A0.dtbo;"  \
+	    "else setenv uboot_overlay /lib/firmware/univ-bbgw-EW-00A0.dtbo;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "run capeloadoverlay;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "else echo uboot_overlays: add [enable_uboot_cape_universal=1] to /boot/uEnv.txt to enable...;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "else echo uboot_overlays: add [enable_uboot_overlays=1] to /boot/uEnv.txt to enable...;"  \
+	    "fi;"  \
+	    "setenv rdfile initrd.img-${uname_r};"  \
+	    "if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile};"  \
+	    "then echo loading ${bootdir}/${rdfile} ...;"  \
+	    "run loadrd;"  \
+	    "if test -n ${netinstall_enable};"  \
+	    "then run args_netinstall;"  \
+	    "run message;"  \
+	    "echo debug: [${bootargs}] ... ;"  \
+	    "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;"  \
+	    "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};"  \
+	    "fi;"  \
+	    "if test -n ${uenv_root};"  \
+	    "then run args_uenv_root;"  \
+	    "echo debug: [${bootargs}] ... ;"  \
+	    "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;"  \
+	    "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};"  \
+	    "fi;"  \
+	    "if test -n ${uuid};"  \
+		"then run args_mmc_uuid;"  \
+	    "echo debug: [${bootargs}] ... ;"  \
+	    "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;"  \
+	    "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};"  \
+	    "fi;"  \
+	    "run args_mmc_old;"  \
+		"echo debug: [${bootargs}] ... ;"  \
+	    "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;"  \
+	    "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};"  \
+	    "else if test -n ${uenv_root};"  \
+	    "then run args_uenv_root;"  \
+	    "echo debug: [${bootargs}] ... ;"  \
+	    "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;"  \
+	    "bootz ${loadaddr} - ${fdtaddr};"  \
+	    "fi;"  \
+	    "run args_mmc_old;"  \
+		"echo debug: [${bootargs}] ... ;"  \
+	    "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;"  \
+	    "bootz ${loadaddr} - ${fdtaddr};"  \
+	    "fi;"  \
+	    "fi;\0" \
 
 /*
  * When we have SPI, NOR or NAND flash we expect to be making use of

Regards,

There you go, you patched out loading of initrd.img-${uname_r};, feel free to add it back…

When you do add it back, you need to pass it’s loaded address and size thru bootz:

Right now, bootz is passed:

bootz ${loadaddr} - ${fdtaddr};

But with an initrd you’ll need:

bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};

the loadrd command, will set rdsize

"loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}; setenv rdsize ${filesize}\0" \

you should conditionally bootz based on the status of the initrd.img… For example…

				"if test -n ${uname_r}; then " \
					"bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
				"else " \
					"bootz ${loadaddr} - ${fdtaddr}; " \
				"fi; "

Regards,

Hi,

If i understand right, i should make the following changes in u-boot\include\configs\ti_armv7_common.h?

Regards,
Kiran B V

With my original patch diff, i would do the check and then loadrd right after loadimage here ^…

-			"setenv rdfile initrd.img-${uname_r}; " \
-			"if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile}; then " \
-				"echo loading ${bootdir}/${rdfile} ...; "\
-				"run loadrd;" \

uname_r is defined, so it would always use the initrd path… Set and use a variable that is created when you verify a valid initrd.img-${uname_r} was found on the drive…

Regards,

Hi,

In the patched file, the loadrd still exists. Its actually deleted and added back but its not clear from git diff. Please check below


+	    "fi;"  \
+	    "fi;"  \
+	    "else echo uboot_overlays: add [enable_uboot_cape_universal=1] to /boot/uEnv.txt to enable...;"  \
+	    "fi;"  \
+	    "fi;"  \
+	    "else echo uboot_overlays: add [enable_uboot_overlays=1] to /boot/uEnv.txt to enable...;"  \
+	    "fi;"  \
+	    "setenv rdfile initrd.img-${uname_r};"  \
+	    "if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile};"  \
+	    "then echo loading ${bootdir}/${rdfile} ...;"  \
+	    "run loadrd;"  \
+	    "if test -n ${netinstall_enable};"  \
+	    "then run args_netinstall;"  \
+	    "run message;"  \
+	    "echo debug: [${bootargs}] ... ;"  \
+	    "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;"  \
+	    "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};"  \
+	    "fi;"  \
+	    "if test -n ${uenv_root};"  \
+	    "then run args_uenv_root;"  \
+	    "echo debug: [${bootargs}] ... ;"  \
+	    "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;"  \
+	    "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};"  \
+	    "fi;"  \
+	    "if test -n ${uuid};"  \
+		"then run args_mmc_uuid;"  \
+	    "echo debug: [${bootargs}] ... ;"  \

Sorry, i am working on this for the first time. I am not familiar with u-boot syntax, etc. I think since ‘rdsize’ variable is set, we can use the same variable. Please confirm

Regards,
Kiran B V

Hi @kiranbv , that’s not going to work… Please attach your complete git diff, that way i can post it on github’s gist to make the appropriate changes…

Regards,