Improving aarch64-image booting (+ ESPRESSObin network setup)

Thanks @gandalf and @arne_f for the initial findings and recomendations to boot IPFire on expressobin hardware.

I have an 1GHz espressobin board (the regular, not the ultra version) which is confirmed to “only” come with one internal 1Gb duplex connection to an internal 3x1Gb ethernet switch, but it also has one separate mPCIe slot for an additional ethernet, Wifi, or SATA-controller. Unfortunately, the slot does not directly support mSATA cards. And there does not seem to be a (battery buffered?) real-time clock.

I hope for QoS to decently manage an (occasional) 900Mbit speed (backup/restore) between green<->orange, while routing the consumer grade VDSL home internet of red.

Not all my attempts to boot from sdcard and to follow your recommendations did work out.
But I could reproduce @gandalf’s boot method.

EDIT:

What I could not find out is how to manually (re)run the initial network gui (wiki.ipfire.org - Step 5: Network Setup), or to properly configure the 3 interfaces manually.
How were you able to configure the MACs etc. gandalf?

See solution below: Post #4 - “0). Booting)



Trying the recommended .scr loading:
(not sure how this method works, I’ve set up armbian’s u-boot and environment):

(with addr from openwrt 18.xx example)
load mmc 0:1 0x4d00000 boot.scr; source 0x4d00000
→ this just rebooted u-boot

(with addr from armbian uboot example)
load mmc 0:1 0x6d00000 boot.scr; source 0x6d00000
→ Unknown command ‘bootz’ - try ‘help’
→ Bad Linux ARM64 Image magic!

Trying fatload from sdcard:

fatload mmc 0:1 ${fdt_addr} /dtb-4.14.212-ipfire/marvell/armada-3720-espressobin.dtb
fatload mmc 0:1 $kernel_addr vmlinuz-4.14.212-ipfire
setenv bootargs $console root=/dev/mmcblk0p3 rw rootwait
booti $kernel_addr - $fdt_addr

→ boots only until a message saying to wait for /dev/mmcblk0p3 (forever)
(kernel missing the driver?)


Trying fatload from usb 2.0 port:

fatload usb 0:1 ${fdt_addr} /dtb-4.14.212-ipfire/marvell/armada-3720-espressobin.dtb
fatload usb 0:1 $kernel_addr vmlinuz-4.14.212-ipfire
setenv bootargs $console root=/dev/sda3 rw rootwait
booti $kernel_addr - $fdt_addr

→ works :blush:


But now I’d need an idea how to redo and fix the network config.

Looks like I got the espressobin network working.

1.) IPFire Network Settings

Found the basic configuration can be re-done by executing setup, but for this workaround I still had to edit /var/ipfire/ethernet/settings manually, and take care to:

  • Only specify the mv88e6085 driver in this file (and for all switch ports), to avoid that some early boot process sets up the internal mvneta network controller as an ipfire device.

  • Not configure any MAC addresses for switch ports. They should first be set up by an /etc/init.d/swconfig.user, and can then be selected afterwards using the NIC assignments in the web-config under Network -> Zone Configuration.

Example/var/ipfire/ethernet/settings:

CONFIG_TYPE=2
RED_DEV=eth1 
RED_MACADDR=
RED_DESCRIPTION='"of: mv88e6085"'
RED_DRIVER=mv88e6085
RED_DHCP_HOSTNAME=localhost
RED_DHCP_FORCE_MTU=
RED_ADDRESS=0.0.0.0
RED_NETMASK=0.0.0.0
RED_TYPE=DHCP
RED_NETADDRESS=0.0.0.0
ORANGE_DEV=eth2
ORANGE_MACADDR=
ORANGE_DESCRIPTION='"of: mv88e6085"'
ORANGE_DRIVER=mv88e6085
ORANGE_ADDRESS=192.168.2.1
GREEN_DEV=eth3 
GREEN_MACADDR=
GREEN_DESCRIPTION='"of: mv88e6085"'
GREEN_DRIVER=mv88e6085
GREEN_ADDRESS=192.168.3.1
GREEN_NETMASK=255.255.255.0
GREEN_NETADDRESS=192.168.3.0

2.) swconfig Additions

Added a custom /etc/init.d/swconfig.user, but devs could instead integrate this board’s case into /etc/init.d/swconfig.

Note that instead of using the proper MAC addresses from the u-boot environment, my swconfig.user script always falls back to generating a random address range and saving these to the ipfire config.

#!/bin/sh
########################################################################
# Begin $rc_base/init.d/swconfig.user
#
# Description : Workaround script to fix lan switch.
########################################################################

. /etc/sysconfig/rc
. ${rc_functions}

if [ -e /var/ipfire/ethernet/swconfig_mac ]; then
	SWMAC=`cat /var/ipfire/ethernet/swconfig_mac`
else
	# Generate a random local administrated mac address for vlan swconfig.
	SWMAC=`printf "%1x2:%02x:%02x:%02x:%02x" $[RANDOM%16] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]`
	echo $SWMAC > /var/ipfire/ethernet/swconfig_mac
fi



case "${1}" in
	start)
		case `cat /proc/device-tree/model 2>/dev/null` in
			"Globalscale Marvell ESPRESSOBin Board")
				# 
				# configure the internal nic
				ip link set eth0 address $SWMAC:00
				ip link set eth0 up
 
				# set up the switch child ports with names 
				# as shown in the web interface
				ip link set wan address $SWMAC:01
				ip link set wan name eth1
				ip link set eth1 up

				ip link set lan0 address $SWMAC:02
				ip link set lan0 name eth2
				ip link set eth2 up

				ip link set lan1 address $SWMAC:03
				ip link set lan1 name eth3
				ip link set eth3 up
			;;
		esac
		exit 0
	;;

	*)
		echo "Usage: ${0} {start}"
		exit 1
	;;
esac

# End $rc_base/init.d/swconfig.user

3.) Zone Configuration

Reconfigure the NIC assignments in the web-config under Network -> Zone Configuration, and reboot.

@gandalf Could you try to reproduce?
@arne_f Would you consider merging the espressobin case into /etc/init.d/swconfig? Just by being in place on the first boot it should already make the manual config workarounds unnecessary.

Here is an edited version of the booting problems, now including workarounds:
(This forum software prevents properly adding it to the first post.)



0.) Booting


The default and recommended boot.scr loading did not work out of the box. (Armbian’s u-boot and environment installed, here.)

(Manual attempt with memory address from old openwrt 18.xx example)
load mmc 0:1 0x4d00000 boot.scr; source 0x4d00000
-> this just rebooted u-boot

(Manual attempt with address from uboot)
load mmc 0:1 ${scriptaddr} boot.scr; source ${scriptaddr}
-> Unknown command ‘bootz’ - try ‘help’
-> Bad Linux ARM64 Image magic!

So, currently booting still needs a number of workarounds, until the boot.scr itself gets fixed.

a) uEnv.txt

See these additions to put into the uEnv.txt in the image:

### Manual uEnv.txt customizations to be loaded by boot.scr (compiled version of boot.cmd). ###

## board type
fdtfile=marvell/armada-3720-espressobin.dtb


## Workaround
## boot.scr currently depends on $boot_dev to be properly set from u-boot environment,
## to be able to load from devices other than mmc.
## If not set by u-boot, it is requireded to specify it here.
##
## If the boot environment (e.g. armbian) sets $boot_interface to the
## probed device, assigning that here may also be a workaround,
## until boot.scr can properly check and work with either one.

# But this did not seem to get evaluated here.
# Had to add "setenv boot_dev $boot_interface;" to bootcmd_${target} variables.
#boot_dev=${boot_interface}


## Workaround
## for UUIDs in $root_dev (as above), as long as they do not to work if ramdisk loading fails.
## So until boot.scr can properly fall back the $root_dev when ramdisk loading fails,
## it is required to specify a $root_dev path here in uEnv.txt.
##
## Currently even for booting from mmc when $boot_dev is properly set,
## because then $root_dev isn't initialized.

root_dev=/dev/mmcblk0p3
#root_dev=/dev/sda3


## Workaround
## to avoid kernel loading crashes with boot.scr (at least on espressobin).
## Maybe due to boot.scr using $fdt_addr_r, ramdisk loading, console=$console, ...?

uenvcmd=fatload $boot_dev 0:1 $fdt_addr /dtb-${KVER}-ipfire${kernel_type}/${fdtfile}; fatload $boot_dev 0:1 $kernel_addr vmlinuz-${KVER}-ipfire${kernel_type}; setenv bootargs $console root=$root_dev rw rootwait; booti $kernel_addr - $fdt_addr;

# including this last line comment ensures the previous line gets executed

It’s a little strange why boot.scr can not boot with the commands it uses, and it only works by providing a uenvcmd in uEnv.txt. I did some tests but to no avail:

# boot.scr testing:
load mmc 0:1 ${scriptaddr} boot.scr; source ${scriptaddr}


#with the current boot.scr commands kernel boot crashes:

fatload mmc 0:1 ${fdt_addr_r} /dtb-4.14.212-ipfire/marvell/armada-3720-espressobin.dtb
fatload mmc 0:1 ${kernel_addr_r} vmlinuz-4.14.212-ipfire
fatload mmc 0:1 ${ramdisk_addr_r} uInit-4.14.212-ipfire

# this line crashes, but works after setting bootargs as below
booti ${kernel_addr_r} - ${fdt_addr_r};


# try same without using _r address?:

fatload mmc 0:1 ${fdt_addr} /dtb-4.14.212-ipfire/marvell/armada-3720-espressobin.dtb
fatload mmc 0:1 ${kernel_addr_r} vmlinuz-4.14.212-ipfire
fatload mmc 0:1 ${ramdisk_addr_r} uInit-4.14.212-ipfire (works if replaced by set bootargs)
booti ${kernel_addr_r} - ${fdt_addr}

#works:
fatload mmc 0:1 ${fdt_addr} /dtb-4.14.212-ipfire/marvell/armada-3720-espressobin.dtb
fatload mmc 0:1 $kernel_addr vmlinuz-4.14.212-ipfire
setenv bootargs $console root=/dev/mmcblk0p3 rw rootwait

# and all these alternatives are also working:
setenv bootargs root=/dev/mmcblk0p3 rw rootwait
setenv bootargs root=/dev/mmcblk0p3 rootwait
setenv bootargs rootwait
setenv bootargs console=$console root=/dev/mmcblk0p3 rw rootwait

booti $kernel_addr - $fdt_addr

b) u-boot environment

  • It needs to support loading from a FAT formatted filesystem, if not already.
    For example, in the armbian environment, prepend the boot_a_script variable to first try "load... ; " before its usual "ext4load...;"

  • And it needs to set the variable $boot_dev properly.
    For example, in the armbian environment, check the current environment and insert an additional “setenv boot_dev $boot_interface; ” to the bootcmd_${target} variables:

    printenv

    setenv bootcmd_mmc0 ‘setenv devnum 0; setenv boot_interface mmc; setenv boot_dev $boot_interface; run scan_dev_for_boot;’

    setenv bootcmd_mmc1 ‘setenv devnum 1; setenv boot_interface mmc; setenv boot_dev $boot_interface; run scan_dev_for_boot;’

    setenv bootcmd_sata ‘setenv devnum 0; scsi scan; scsi dev 0; setenv boot_interface scsi; setenv boot_dev $boot_interface; run scan_dev_for_boot;’

    setenv bootcmd_usb ‘setenv devnum 0; usb start;setenv boot_interface usb; setenv boot_dev $boot_interface; run scan_dev_for_boot;’

    saveenv

The aarch64 boot script workarounds are more general, so I wanted to adjust the topic, but this is also not possible (anymore).

First, thanks to the mods for adjusting the title and text.

Concerning the espressobin / u-boot serial console I recently I noticed a problem:

Sometimes commands on the u-boot prompt only falsely return “command not found”. Especially when using quotes in the commands like the adjustments in 0b) u-boot environment. What helped was using screen /dev/ttyUSB0 115200 and using the reset button of the board.

Update: The custom swconfig.user (and a proper swconfig integration) needs to create the red0, orange0 and green0 device names to allow things like QoS to work.

#!/bin/sh
########################################################################
# Begin $rc_base/init.d/swconfig.user
#
# Description : Workaround script to fix lan switch.
########################################################################

. /etc/sysconfig/rc
. ${rc_functions}

if [ -e /var/ipfire/ethernet/swconfig_mac ]; then
	SWMAC=`cat /var/ipfire/ethernet/swconfig_mac`
else
	# Generate a random local administrated mac address for vlan swconfig.
	SWMAC=`printf "%1x2:%02x:%02x:%02x:%02x" $[RANDOM%16] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]`
	echo $SWMAC > /var/ipfire/ethernet/swconfig_mac
fi



case "${1}" in
	start)
		case `cat /proc/device-tree/model 2>/dev/null` in
			"Globalscale Marvell ESPRESSOBin Board")
				# 
				# configure the internal nic
				ip link set eth0 address $SWMAC:00
				ip link set eth0 up
 
				# set up the switch child ports with names 
				# as shown in the web interface
				ip link set wan address $SWMAC:01
				ip link set wan name red0
				ip link set red0 up

				ip link set lan0 address $SWMAC:02
				ip link set lan0 name orange0
				ip link set orange0 up

				ip link set lan1 address $SWMAC:03
				ip link set lan1 name green0
				ip link set green0 up
			;;
		esac
		exit 0
	;;

	*)
		echo "Usage: ${0} {start}"
		exit 1
	;;
esac

# End $rc_base/init.d/swconfig.user

and /var/ipfire/ethernet/settings also:

CONFIG_TYPE=2
RED_DEV=red0
RED_MACADDR=
RED_DESCRIPTION='"of: mv88e6085"'
RED_DRIVER=mv88e6085
RED_DHCP_HOSTNAME=localhost
RED_DHCP_FORCE_MTU=
RED_ADDRESS=0.0.0.0
RED_NETMASK=0.0.0.0
RED_TYPE=DHCP
RED_NETADDRESS=0.0.0.0
ORANGE_DEV=orange0
ORANGE_MACADDR=
ORANGE_DESCRIPTION='"of: mv88e6085"'
ORANGE_DRIVER=mv88e6085
ORANGE_ADDRESS=192.168.2.1
GREEN_DEV=green0
GREEN_MACADDR=
GREEN_DESCRIPTION='"of: mv88e6085"'
GREEN_DRIVER=mv88e6085
GREEN_ADDRESS=192.168.3.1
GREEN_NETMASK=255.255.255.0
GREEN_NETADDRESS=192.168.3.0

Another finding:
I got command not found errors with the u-boot commands, and it seemed related to using the single quote “ticks” in the commands listed above.

In the end, it worked after connecting to the serial console not with gtkterm, but with screen /dev/ttyUSB0 115200 in an xterm window.

Hey
I have an espressobin v5 card with a 16 Gb sandisk sd card
I installed ipfire-2.25.2gb-ext4.aarch64-full-core158.img.xz on the sd card with balena etcher

Here are the commands I use to boot on the sd card (without error):
load mmc 0:1 0x6d00000 boot.scr; source 0x6d00000
fatload mmc 0:1 ${fdt_addr} /dtb-4.14.198-ipfire/marvell/armada-3720-espressobin.dtb
fatload mmc 0:1 $kernel_addr vmlinuz-4.14.198-ipfire
setenv bootargs $console root=/dev/mmcblk0p3 rw rootwait
booti $kernel_addr - $fdt_addr

Boots only until a message saying to wait for /dev/mmcblk0p3 forever

What should I do please?

Please do not post the same question in multiple threads. Forum rules say not to do it. You end up with different bits of answers in multiple threads which makes searching by people in future really difficult because a complete story is not in one place.

The approach that worked for me was to look at and use the current boot files in the ipfire image, and adjust or workaround problems where necessary. (I did not get any further than you with just manual uboot commands.)

The steps are not a step-by-step guide in this thread, they were posted in the order I found out about them.

As far as I remember first would be to make the uboot update as shown on the armbian page, then prepare the customized uEnv.txt on the boot media, and then adjust the uboot config as documented above to get it to boot from a FAT filesystem with the environment variables set which are necessary for the current ipfire boot scripts to work.

Looks like the mmc device in kernel is not enabled.
It may disabled or compiled as module. If it is a module you need to load the initrd.

There is a feature disabled in you u-boot. IPFire try bootz and booti because i had this als on an other board.

this is an u-boot bug or ${kernel_addr_r} are not set to ram. Both is not IPFire related.

Done with
https://nightly.ipfire.org/next/latest/aarch64/ipfire-2.25.2gb-ext4.aarch64-full-core159.img.xz
OK !

thanks for theses tweaks…

used these files (OK) with a modification of the /proc/model cat in script swconfig.user (it will be better to use / test /proc/model/compatible !?)

here mines :
/var/ipfire/network/settings

CONFIG_TYPE=2
RED_DEV=red0
RED_MACADDR=
RED_DESCRIPTION='"of: mv88e6085"'
RED_DRIVER=mv88e6085
RED_DHCP_HOSTNAME=localhost
RED_DHCP_FORCE_MTU=
RED_ADDRESS=0.0.0.0
RED_NETMASK=0.0.0.0
RED_TYPE=DHCP
RED_NETADDRESS=0.0.0.0
ORANGE_DEV=orange0
ORANGE_MACADDR=
ORANGE_DESCRIPTION='"of: mv88e6085"'
ORANGE_DRIVER=mv88e6085
ORANGE_ADDRESS=192.168.2.1
GREEN_DEV=green0
GREEN_MACADDR=
GREEN_DESCRIPTION='"of: mv88e6085"'
GREEN_DRIVER=mv88e6085
GREEN_ADDRESS=192.168.3.1
GREEN_NETMASK=255.255.255.0
GREEN_NETADDRESS=192.168.3.0

/etc/init.d/swconfig.user

#!/bin/sh
########################################################################
# Begin $rc_base/init.d/swconfig.user
#
# Description : Workaround script to fix lan switch.
########################################################################

. /etc/sysconfig/rc
. ${rc_functions}

if [ -e /var/ipfire/ethernet/swconfig_mac ]; then
	SWMAC=`cat /var/ipfire/ethernet/swconfig_mac`
else
	# Generate a random local administrated mac address for vlan swconfig.
	SWMAC=`printf "%1x2:%02x:%02x:%02x:%02x" $[RANDOM%16] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]`
	echo $SWMAC > /var/ipfire/ethernet/swconfig_mac
fi



case "${1}" in
	start)
		case `cat /proc/device-tree/model 2>/dev/null` in
			"Globalscale Marvell ESPRESSOBin Board V7 (eMMC)")
				# 
				# configure the internal nic
				ip link set eth0 address $SWMAC:00
				ip link set eth0 up
 
				# set up the switch child ports with names 
				# as shown in the web interface
				ip link set wan address $SWMAC:01
				ip link set wan name red0
				ip link set red0 up

				ip link set lan0 address $SWMAC:02
				ip link set lan0 name orange0
				ip link set orange0 up

				ip link set lan1 address $SWMAC:03
				ip link set lan1 name green0
				ip link set green0 up
			;;
		esac
		exit 0
	;;

	*)
		echo "Usage: ${0} {start}"
		exit 1
	;;
esac

# End $rc_base/init.d/swconfig.user

On USB (USB2 ONLY !! USB3 hang on waiting for root message…)

boot from uboot with :

usb reset
fatload usb 0:1 ${fdt_addr} /dtb-5.10.50-ipfire/marvell/armada-3720-espressobin-v7-emmc.dtb
fatload usb 0:1 $kernel_addr vmlinuz-5.10.50-ipfire
setenv bootargs $console root=/dev/sda3 rw rootwait
booti $kernel_addr - $fdt_addr

https://192.168.3.1:444 on the GREEN (LAN1) of espressobin v7 emmc :

Note: first boot works with default uefi and GRUB, but root was not found…
Then a refresh of the USB (taking full size of the ROOT available and regeneration of boot cmd or script) make it unbootable again by UEFI and standard/default autoboot (strange)… still working with the command given upper !
https://github.com/u-boot/u-boot/blob/master/doc/README.distro

done, but still get an error at bootup :

/etc/init.d/swconfig.user: line 23: warning: command substitution: ignored null byte in input

we need to test espressobin with a compatible and/or more generic solution !
we can take from this :

and this :

[root@ipfire ~]# echo “$(strings /proc/device-tree/compatible | head -1)”
globalscale,espressobin-v7-emmc

which will give us this :

#!/bin/sh
########################################################################
# Begin $rc_base/init.d/swconfig.user
#
# Description : Workaround script to fix lan switch.
########################################################################

. /etc/sysconfig/rc
. ${rc_functions}

if [ -e /var/ipfire/ethernet/swconfig_mac ]; then
	SWMAC=`cat /var/ipfire/ethernet/swconfig_mac`
else
	# Generate a random local administrated mac address for vlan swconfig.
	SWMAC=`printf "%1x2:%02x:%02x:%02x:%02x" $[RANDOM%16] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]`
	echo $SWMAC > /var/ipfire/ethernet/swconfig_mac
fi

case "${1}" in
	start)
		case "$(strings /proc/device-tree/compatible | head -1)" in
glinet,gl-mv1000|\
globalscale,espressobin|\
globalscale,espressobin-emmc|\
globalscale,espressobin-v7|\
globalscale,espressobin-v7-emmc)
				# 
				# configure the internal nic
				ip link set eth0 address $SWMAC:00
				ip link set eth0 up
 
				# set up the switch child ports with names 
				# as shown in the web interface
				ip link set wan address $SWMAC:01
				ip link set wan name red0
				ip link set red0 up

				ip link set lan0 address $SWMAC:02
				ip link set lan0 name orange0
				ip link set orange0 up

				ip link set lan1 address $SWMAC:03
				ip link set lan1 name green0
				ip link set green0 up
			;;
		esac
		exit 0
	;;

	*)
		echo "Usage: ${0} {start}"
		exit 1
	;;
esac

# End $rc_base/init.d/swconfig.user

still some errors at boot :

[  OK  ]hostname to ipfire.localdomain...                                                                                                                                                   
Setting up firewall                                                                                                                                                                         
iptables v1.8.7 (legacy): invalid mask `' specified                                                                                                                                         
Try `iptables -h' or 'iptables --help' for more information.                                                                                                                                
iptables v1.8.7 (legacy): invalid mask `' specified                                                                                                                                         
Try `iptables -h' or 'iptables --help' for more information.                                                                                                                                
iptables v1.8.7 (legacy): invalid mask `' specified                                                                                                                                         
[  OK  ]ables -h' or 'iptables --help' for more information.                                                                                                                                
INIT: Entering runlevel: 3                                                                                                                                                                  
stty: 'standard input': unable to perform all requested operations                                                                                                                          
[  OK  ] vnstat ramdisk...                                                                                                                                                                  
[  OK  ] vnstatd...                                                                                                                                                                         
[  OK  ] kernel log daemon...                                                                                                                                                               
[  OK  ] system log daemon...                                                                                                                                                               
[  OK  ]ootlog...                                                                                                                                                                           
[  OK  ] Unbound DNS Proxy...                                                                                                                                                               
[  OK  ] ACPI daemon...                                                                                                                                                                     
[  OK  ] S.M.A.R.T.: sda                                                                                                                                                                    
Bringing up the green0 interface...                                                                                                                                                         
[  OK  ]Pv4 address 192.168.3.1 to the green0 interface...                                                                                                                                  
[ FAIL ]and/or NETMASK variable missing from input, cannot continue.                                                                                                                        
Bringing up the red0 interface...                                                                                                                                                           
Starting dhcpcd on the red0 interface...

<USB2> - [ WAN ] - [ DMZ ][LAN] - <USB3>

UEFI BOOT ERROR :
UEFI BOOT

  • from USB2 = KO
  • from USB3 = OK

BUT

IPFIRE … BOOT

  • from USB2 ONLY
  • from USB3 KO
usb reset
load usb 0:2 $kernel_addr_r /efi/boot/bootaa64.efi
load usb 0:1 $fdt_addr_r /dtb-5.10.50-ipfire/marvell/armada-3720-espressobin-v7-emmc.dtb
bootefi $kernel_addr_r $fdt_addr_r
TIM-1.0                                                                                                                                                                                     
WTMI-devel-18.12.1-5598e150                                                                                                                                                                 
WTMI: system early-init                                                                                                                                                                     
SVC REV: 4, CPU VDD voltage: 1.120V                                                                                                                                                         
NOTICE:  Booting Trusted Firmware                                                                                                                                                           
NOTICE:  BL1: v2.4(release):OpenWrt v2.4-1 (espressobin-v7-1gb) (Marvell-devel-18.12.0)                                                                                                     
NOTICE:  BL1: Built : 19:39:30, Jul 15 2021                                                                                                                                                 
NOTICE:  BL1: Booting BL2                                                                                                                                                                   
NOTICE:  BL2: v2.4(release):OpenWrt v2.4-1 (espressobin-v7-1gb) (Marvell-devel-18.12.0)                                                                                                     
NOTICE:  BL2: Built : 19:39:30, Jul 15 2021                                                                                                                                                 
NOTICE:  BL1: Booting BL31                                                                                                                                                                  
NOTICE:  BL31: v2.4(release):OpenWrt v2.4-1 (espressobin-v7-1gb) (Marvell-devel-18.12.0)                                                                                                    
NOTICE:  BL31: Built : 19:3                                                                                                                                                                 
                                                                                                                                                                                            
U-Boot 2021.01 (Jul 15 2021 - 19:39:30 +0000)                                                                                                                                               
                                                                                                                                                                                            
DRAM:  1 GiB                                                                                                                                                                                
Comphy-0: USB3_HOST0    5 Gbps                                                                                                                                                              
Comphy-1: PEX0          2.5 Gbps                                                                                                                                                            
Comphy-2: SATA0         5 Gbps                                                                                                                                                              
SATA link 0 timeout.                                                                                                                                                                        
AHCI 0001.0300 32 slots 1 ports 6 Gbps 0x1 impl SATA mode                                                                                                                                   
flags: ncq led only pmp fbss pio slum part sxs                                                                                                                                              
PCIE-0: Link down                                                                                                                                                                           
MMC:   sdhci@d0000: 0, sdhci@d8000: 1                                                                                                                                                       
Loading Environment from SPIFlash... SF: Detected mx25u3235f with page size 256 Bytes, erase size 4 KiB, total 4 MiB                                                                        
OK                                                                                                                                                                                          
Model: Globalscale Marvell ESPRESSOBin Board                                                                                                                                                
Net:   eth0: neta@30000                                                                                                                                                                     
Hit any key to stop autoboot:  0                                                                                                                                                            
=>                                                                                                                                                                                          
=> usb reset                                                                                                                                                                                
resetting USB...                                                                                                                                                                            
Bus usb@58000: Register 2000104 NbrPorts 2                                                                                                                                                  
Starting the controller                                                                                                                                                                     
USB XHCI 1.00                                                                                                                                                                               
Bus usb@5e000: USB EHCI 1.00                                                                                                                                                                
scanning bus usb@58000 for devices... Device not responding to set address.                                                                                                                 
                                                                                                                                                                                            
	  USB device not accepting new address (error=80000000)                                                                                                                                 
2 USB Device(s) found                                                                                                                                                                       
scanning bus usb@5e000 for devices... 1 USB Device(s) found                                                                                                                                 
	   scanning usb for storage devices... 1 Storage Device(s) found                                                                                                                        
=> load usb 0:2 $kernel_addr_r /efi/boot/bootaa64.efi                                                                                                                                       
151552 bytes read in 3 ms (48.2 MiB/s)                                                                                                                                                      
=> load usb 0:1 r<INTERRUPT>                                                                                                                                                                
=> load usb 0:2 $kernel_addr_r /efi/boot/bootaa64.efi                                                                                                                                       
151552 bytes read in 3 ms (48.2 MiB/s)                                                                                                                                                      
=> load usb 0:1 $fdt_addr_r /dtb-5.10.50-ipfire/marvell/armada-3720-espressobin-v7-emmc.dtb                                                                                                 
11365 bytes read in 2 ms (5.4 MiB/s)                                                                                                                                                        
=> bootefi $kernel_addr_r $fdt_addr_r                                                                                                                                                       
MMC: no card present                                                                                                                                                                        
Scanning disk sdhci@d0000.blk...                                                                                                                                                            
Disk sdhci@d0000.blk not ready                                                                                                                                                              
Scanning disk sdhci@d8000.blk...                                                                                                                                                            
Scanning disk usb_mass_storage.lun0...                                                                                                                                                      
Found 7 disks                                                                                                                                                                               
 Unable to read file ubootefi.var                                                                                                                                                       
Failed to load EFI variables                                                                                                                                                                
Booting /\dtb-5.10.50-ipfire\marvell\arm                                                                                                                                                    
Welcome to GRUB!                                                                                                                                                                            
                                                                                                                                                                                            
error: no suitable video mode found.                                                                                                                                                        
error: no video mode activated.                                                                                                                                                             


																				   GNU GRUB  version 2.06

 ┌─────────────────────────────────────────────────────────────�                                                                                                                           �
 │*IPFire 2.25 (aarch64) - core159 Development Build: next/93f83a3f GNU/Linux                                                                                                             � 
 │ Advanced options for IPFire 2.25 (aarch64) - core159 Development Build: next/93f83a3f GNU/Linux                                                                                        ��
 │                                                                                                                                                                                        ��
 │                                                                                                                                                                                        ��
 │                                                                                                                                                                                        ��
 │                                                                                                                                                                                        ��
 │                                                                                                                                                                                        ��
 │                                                                                                                                                                                        ��
 │                                                                                                                                                                                        ��
 │                                                                                                                                                                                        ��
 │                                                                                                                                                                                        ��
 │                                                                                                                                                                                        ��
 │                                                                                                                                                                                        � 
 └─────────────────────────────────────────────────────────────�                                                                                                                           �

	  Use the ▲ and ▼ keys to select which entry is highlighted.                                                                                                                      
	  Press enter to boot the selected OS, `e' to edit the commands before booting or `c' for a command-line.                                                                         
   The highlighted entry will be executed automatically in 0s.                                                                                                                             


  Booting `IPFire 2.25 (aarch64) - core159 Development Build: next/93f83a3f GNU/Linux'

Loading Linux 5.10.50-ipfire ...
Loading initial ramdisk ...
EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services and installing virtual address map...
Booting Linux on physical CPU 0x0000000000 [0x410fd034]
Linux version 5.10.50-ipfire (root@arm64-01.dub.ipfire.org) (gcc (GCC) 11.1.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP Thu Jul 15 21:48:59 GMT 2021
Machine model: Globalscale Marvell ESPRESSOBin Board V7 (eMMC)
efi: EFI v2.80 by Das U-Boot
efi: RTPROP=0x3eb08040 SMBIOS=0x3eb04000 MEMRESERVE=0x2b921040 
Zone ranges:
  DMA      [mem 0x0000000000000000-0x000000003fffffff]
  DMA32    empty
  Normal   empty
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x0000000000000000-0x0000000003ffffff]
  node   0: [mem 0x0000000004000000-0x00000000041fffff]
  node   0: [mem 0x0000000004200000-0x000000002d184fff]
  node   0: [mem 0x000000002d185000-0x000000002d186fff]
  node   0: [mem 0x000000002d187000-0x000000003eafefff]
  node   0: [mem 0x000000003eaff000-0x000000003eb02fff]                                                                                                                                     
  node   0: [mem 0x000000003eb03000-0x000000003eb03fff]                                                                                                                                     
  node   0: [mem 0x000000003eb04000-0x000000003eb04fff]                                                                                                                                     
  node   0: [mem 0x000000003eb05000-0x000000003eb06fff]                                                                                                                                     
  node   0: [mem 0x000000003eb07000-0x000000003eb0afff]                                                                                                                                     
  node   0: [mem 0x000000003eb0b000-0x000000003eb0bfff]                                                                                                                                     
  node   0: [mem 0x000000003eb0c000-0x000000003eb10fff]                                                                                                                                     
  node   0: [mem 0x000000003eb11000-0x000000003eb11fff]                                                                                                                                     
  node   0: [mem 0x000000003eb12000-0x000000003eb12fff]                                                                                                                                     
  node   0: [mem 0x000000003eb13000-0x000000003eb13fff]                                                                                                                                     
  node   0: [mem 0x000000003eb14000-0x000000003eb14fff]                                                                                                                                     
  node   0: [mem 0x000000003eb15000-0x000000003eb16fff]                                                                                                                                     
  node   0: [mem 0x000000003eb17000-0x000000003eb18fff]                                                                                                                                     
  node   0: [mem 0x000000003eb19000-0x000000003eb19fff]                                                                                                                                     
  node   0: [mem 0x000000003eb1a000-0x000000003eb1afff]                                                                                                                                     
  node   0: [mem 0x000000003eb1b000-0x000000003eb1cfff]                                                                                                                                     
  node   0: [mem 0x000000003eb1d000-0x000000003eb1dfff]                                                                                                                                     
  node   0: [mem 0x000000003eb1e000-0x000000003eb1efff]                                                                                                                                     
  node   0: [mem 0x000000003eb1f000-0x000000003eb22fff]                                                                                                                                     
  node   0: [mem 0x000000003eb23000-0x000000003eb23fff]                                                                                                                                     
  node   0: [mem 0x000000003eb24000-0x000000003eb24fff]                                                                                                                                     
  node   0: [mem 0x000000003eb25000-0x000000003ff2ffff]                                                                                                                                     
  node   0: [mem 0x000000003ff30000-0x000000003ff3ffff]                                                                                                                                     
  node   0: [mem 0x000000003ff40000-0x000000003fffffff]                                                                                                                                     
Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]                                                                                                                            
cma: Reserved 8 MiB at 0x000000003f400000                                                                                                                                                   
psci: probing for conduit method from DT.                                                                                                                                                   
psci: PSCIv1.1 detected in firmware.                                                                                                                                                        
psci: Using standard PSCI v0.2 function IDs                                                                                                                                                 
psci: MIGRATE_INFO_TYPE not supported.                                                                                                                                                      
psci: SMC Calling Convention v1.2                                                                                                                                                           
percpu: Embedded 30 pages/cpu s82712 r8192 d31976 u122880                                                                                                                                   
Detected VIPT I-cache on CPU0                                                                                                                                                               
CPU features: detected: ARM erratum 845719                                                                                                                                                  
CPU features: detected: GIC system register CPU interface                                                                                                                                   
Built 1 zonelists, mobility grouping on.  Total pages: 258048                                                                                                                               
Kernel command line: BOOT_IMAGE=/vmlinuz-5.10.50-ipfire root=UUID=e66bea99-b483-4253-be92-a3600bd51ac5 ro panic=10                                                                          
Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)                                                                                                                   
Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)                                                                                                                      
mem auto-init: stack:byref_all(zero), heap alloc:off, heap free:off                                                                                                                         
Memory: 985448K/1048576K available (11648K kernel code, 2590K rwdata, 4916K rodata, 5120K init, 515K bss, 54936K reserved, 8192K cma-reserved)                                              
random: get_random_u64 called from __kmem_cache_create+0x34/0x480 with crng_init=0                                                                                                          
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1                                                                                                                                  
---8<---                                                                                                                                                                                 
dracut Warning: Could not boot.                                                                                                                                                             
dracut Warning: Could not boot.                                                                                                                                                             
dracut Warning: /dev/disk/by-uuid/e66bea99-b483-4253-be92-a3600bd51ac5 does not exist                                                                                                       
dracut Warning: /dev/disk/by-uuid/e66bea99-b483-4253-be92-a3600bd51ac5 does not exist                                                                                                       
                                                                                                                                                                                            
                                                                                                                                                                                            
Generating "/run/initramfs/rdsosreport.txt"                                                                                                                                                 
You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot                                                                                                             
after mounting them and attach it to a bug report.                                                                                                                                          
                                                                                                                                                                                            
To get more debug information in the report,                                                                                                                                                
reboot with "rd.debug" added to the kernel corandom: fast init done                                                                                                                         
mmand line.                                                                                                                                                                                 
                                                                                                                                                                                            
Dropping to debug shell.                                                                                                                                                                    
                                                                                                                                                                                            
dracut:/# 

edited :
The USB2 KO for UEFI is UBOOT BUG :

EHCI timed out on TD - token=0x1f8c80                                                                                                                                                       
EHCI timed out on TD - token=0x8c008d80                                                                                                                                                     
EHCI timed out on TD - token=0xd8d80                                                                                                                                                        
EHCI timed out on TD - token=0x80008d80                                                                                                                                                     
EHCI timed out on TD - token=0x80008d80                                                                                                                                                     
EHCI timed out on TD - token=0x80008d80                                                                                                                                                     

may works some times…

I am using version U-Boot 2021.01 (Jul 15 2021 - 19:39:30 +0000) from OpenWrt snapshot :
https://downloads.openwrt.org/snapshots/targets/mvebu/cortexa53/trusted-firmware-a-espressobin-v7-1gb/