BlackS Posted 22 hours ago Posted 22 hours ago (edited) Hi all, sorry for a kiddy queston but it the first time when I'm using Armbian. I need to enter to u-boot menu/enviroment/shell and I can't I try to press any button when I'm rebooting but nothing happened and i've just have a booted system I have only UART to my system. In other devices I have some time to press any key to enter to u-boot shell but there I don't have time. U-boot exec bootcmd immediately I need to enter to u-boot shell and reconfigure some env for my work. I use Armbian 25.8.2 noble Edited 22 hours ago by BlackS 0 Quote
Werner Posted 20 hours ago Posted 20 hours ago I'm not sure bit IIRC there should be a 1 second delay which would allow interaction but again, not sure... 0 Quote
eselarm Posted 17 hours ago Posted 17 hours ago 4 hours ago, BlackS said: first time when I'm using Armbian If you have used RadxaOS before there might be an older U-Boot variant in SPI-flash and at least on ROCK3A SPI take preference over SD-cards, so the Armbian U-Boot from SD-card is not use. AFAIR Radxa OS ROCK5 U-Boot does not have the 1 sec autoboot timeout and also uses extlinux script and not bootcmd. But I might mix-up versions and platforms. So rewrite SPI-flash from Armbian is option to fix it. 0 Quote
BlackS Posted 5 hours ago Author Posted 5 hours ago (edited) Thanks for answer I will try. Right now just waiting support from remote side. And maybe it can be helpful. I can see on my UART console only this [58160.278303] reboot: Restarting system ]DDR 9fa84341ce typ 24/09/06-09:51:11,fwver: v1.18 ch0 ttot10 ch1 ttot10 ch2 ttot10 ch3 ttot10 ch0 ttot16 LPDDR4X, 2112MHz channel[0] BW=16 Col=10 Bk=8 CS0 Row=17 CS1 Row=17 CS=2 Die BW=16 Size=4096MB ch1 ttot16 channel[1] BW=16 Col=10 Bk=8 CS0 Row=17 CS1 Row=17 CS=2 Die BW=16 Size=4096MB ch2 ttot16 channel[2] BW=16 Col=10 Bk=8 CS0 Row=17 CS1 Row=17 CS=2 Die BW=16 Size=4096MB ch3 ttot16 channel[3] BW=16 Col=10 Bk=8 CS0 Row=17 CS1 Row=17 CS=2 Die BW=16 Size=4096MB Manufacturer ID:0xff DQS rds:l0,h1 CH0 RX Vref:28.5%, TX Vref:23.8%,22.8% DQ rds:h4 h7 h1 h5 h5 l4 h6 h2, h6 h1 h6 h3 h3 h1 h2 h3 DQS rds:l0,l0 CH1 RX Vref:28.5%, TX Vref:23.8%,23.8% DQ rds:h4 h2 l0 h1 h1 h3 h1 h1, h3 h1 h6 h1 h1 l0 l0 h2 DQS rds:l0,l0 CH2 RX Vref:29.3%, TX Vref:23.8%,21.8% DQ rds:h2 h5 h7 h7 h6 l0 h3 h2, h1 h5 l0 h6 l0 h3 h7 h1 DQS rds:l1,h1 CH3 RX Vref:28.5%, TX Vref:24.8%,23.8% DQ rds:l0 h3 h7 l0 h3 h1 h2 h4, h1 h7 h7 h7 h2 h6 l0 h1 stride=0x2, ddr_config=0x4 hash ch_mask0-1 0x20 0x40, bank_mask0-3 0xa00 0x1400 0x2800 0x0, rank_mask0 0x401000 change to F1: 528MHz ch0 ttot10 ch1 ttot10 ch2 ttot10 ch3 ttot10 change to F2: 1068MHz 1;-1fdone. Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done. Begin: Running /scripts/local-premount ... Scanning for Btrfs filesystems done. Begin: Will now check root file system ... fsck from util-linux 2.39.3 [/usr/sbin/fsck.ext4 (1) -- /dev/mmcblk1p1] fsck.ext4 -a -C0 /dev/mmcblk1p1 armbi_root: clean, 46692/7448320 files, 1142106/30126080 blocks done. done. Begin: Running /scripts/local-bottom ... done. Begin: Running /scripts/init-bottom ... done. Welcome to Armbian 25.8.2 noble! [ OK ] Created slice system-modprobe.slice - Slice /system/modprobe. # CTRL-A Z for help | 1500000 8N1 | NOR | Minicom 2.8 And in addition, I've tried to use fw_printenv -c /tmp/fw_env.config from u-boot-tools package. Just to print current u-boot config but it doesn't work for rock5b. Maybe I've prepared a wrong config $ cat /proc/partitions major minor #blocks name 179 0 121753600 mmcblk1 179 1 120504320 mmcblk1p1 31 0 16384 mtdblock0 252 0 8174096 zram0 252 1 51200 zram1 $ cat /tmp/fw_env.config /dev/mmcblk1p1 0xE5D800000 0x4000 # Where E5D800000 i've get by such way for mmcblk1p1 # echo "obase=16; 120504320*512"| bc -l # E5D800000 $ fw_printenv -c /tmp/fw_env.config Cannot read environment, using default Cannot read default environment from file $ fw_printenv -V 0.3.5 773 Sorry for mixing all the stuff to one topic but it seems a bit relevant with this topic. Edited 5 hours ago by BlackS add additional info 0 Quote
usual user Posted 4 hours ago Posted 4 hours ago 53 minutes ago, BlackS said: And maybe it can be helpful. I can see on my UART console only this And since it contains no firmware payload output, no one can tell what you are running. 0 Quote
eselarm Posted 3 hours ago Posted 3 hours ago I usually fight a bit the default 80x25 serial terminal sizing (KDE konsole) via 'screen /dev/ttyUSB0 1500000', but tools like MidnightCommander can be used. Certainly all standard CLI stuff and copy-paste. So just some commands: apt list --installed linux-u-boot-rock-5b* dpkg -L linux-u-boot-rock-5b-edge cat /usr/lib/u-boot/platform_install.sh cat /dev/mtdblock0 > /tmp/spidump strings /tmp/spidump | grep -i U-Boot 1 Quote
BlackS Posted 3 hours ago Author Posted 3 hours ago $ apt list -a --installed linux-u-boot-rock-5b* Listing... Done linux-u-boot-rock-5b-current/now 25.8.2 arm64 [installed,local] linux-u-boot-rock-5b-current/noble 25.8.1 arm64 linux-u-boot-rock-5b-current/noble 25.5.1 arm64 linux-u-boot-rock-5b-current/noble 25.2.3 arm64 linux-u-boot-rock-5b-current/noble 25.2.2 arm64 linux-u-boot-rock-5b-current/noble 24.11.3 arm64 linux-u-boot-rock-5b-current/noble 24.11.1 arm64 linux-u-boot-rock-5b-current/noble 24.8.2 arm64 $ dpkg -L linux-u-boot-rock-5b-current /. /usr /usr/lib /usr/lib/linux-u-boot-current-rock-5b /usr/lib/linux-u-boot-current-rock-5b/idbloader.img /usr/lib/linux-u-boot-current-rock-5b/rkspi_loader.img /usr/lib/linux-u-boot-current-rock-5b/u-boot-config-target-1 /usr/lib/linux-u-boot-current-rock-5b/u-boot-defconfig-target-1 /usr/lib/linux-u-boot-current-rock-5b/u-boot-metadata-target-1.sh /usr/lib/linux-u-boot-current-rock-5b/u-boot-metadata.sh /usr/lib/linux-u-boot-current-rock-5b/u-boot.itb /usr/lib/u-boot /usr/lib/u-boot/LICENSE /usr/lib/u-boot/platform_install.sh /usr/lib/u-boot/rock-5b-rk3588_defconfig /usr/share /usr/share/doc /usr/share/doc/linux-u-boot-rock-5b-current /usr/share/doc/linux-u-boot-rock-5b-current/changelog.gz $ cat /usr/lib/u-boot/platform_install.sh # Armbian u-boot install script for linux-u-boot-rock-5b-current 2017.09-Sa317-Pedb0-H5208-Vc393-Bb703-R448a # This file provides functions for deploying u-boot to a block device. DIR=/usr/lib/linux-u-boot-current-rock-5b write_uboot_platform () { local logging_prelude=""; [[ $(type -t run_host_command_logged) == function ]] && logging_prelude="run_host_command_logged"; if [ -f $1/u-boot-rockchip.bin ]; then ${logging_prelude} dd if=$1/u-boot-rockchip.bin of=$2 bs=32k seek=1 conv=notrunc status=none; else if [ -f $1/rksd_loader.img ]; then ${logging_prelude} dd if=$1/rksd_loader.img of=$2 seek=64 conv=notrunc status=none; else if [[ -f $1/u-boot.itb ]]; then ${logging_prelude} dd if=$1/idbloader.img of=$2 seek=64 conv=notrunc status=none; ${logging_prelude} dd if=$1/u-boot.itb of=$2 seek=16384 conv=notrunc status=none; else if [[ -f $1/uboot.img ]]; then ${logging_prelude} dd if=$1/idbloader.bin of=$2 seek=64 conv=notrunc status=none; ${logging_prelude} dd if=$1/uboot.img of=$2 seek=16384 conv=notrunc status=none; ${logging_prelude} dd if=$1/trust.bin of=$2 seek=24576 conv=notrunc status=none; else echo "Unsupported u-boot processing configuration!"; exit 1; fi; fi; fi; fi } write_uboot_platform_mtd () { FILES=$(find "$1" -maxdepth 1 -type f -name "rkspi_loader*.img"); if [ -z "$FILES" ]; then echo "No SPI image found."; exit 1; fi; MENU_ITEMS=(); i=1; while IFS= read -r file; do filename=$(basename "$file"); MENU_ITEMS+=("$i" "$filename" ""); ((i++)); done <<< "$FILES"; if [[ $i -eq 2 ]]; then dd if=$1/${MENU_ITEMS[1]} of=$2 conv=notrunc status=none > /dev/null 2>&1; return; fi; [[ -f /etc/armbian-release ]] && source /etc/armbian-release; backtitle="Armbian for $BOARD_NAME install script, https://www.armbian.com"; CHOICE=$(dialog --no-collapse --title "armbian-install" --backtitle "$backtitle" --radiolist "Choose SPI image:" 0 56 4 "${MENU_ITEMS[@]}" 3>&1 1 >&2 2>&3); if [ $? -eq 0 ]; then dd if=$1/${MENU_ITEMS[($CHOICE*3)-2]} of=$2 conv=notrunc status=none > /dev/null 2>&1; else echo "No SPI image chosen."; exit 1; fi } setup_write_uboot_platform () { if grep -q "ubootpart" /proc/cmdline; then local tmp part dev; tmp=$(cat /proc/cmdline); tmp="${tmp##*ubootpart=}"; tmp="${tmp%% *}"; [[ -n $tmp ]] && part=$(findfs PARTUUID=$tmp 2> /dev/null); [[ -n $part ]] && dev=$(lsblk -n -o PKNAME $part 2> /dev/null); [[ -n $dev ]] && DEVICE="/dev/$dev"; fi } $ cat /dev/mtdblock0 > /tmp/spidump $ strings /tmp/spidump | grep -i U.*Boot nothing $ du -h /tmp/spidump 16M /tmp/spidump It seems something installed and configured but for -current not for -edge I thought that -current version more stable. Am I wrong and I need to install -edge ? 0 Quote
eselarm Posted 2 hours ago Posted 2 hours ago (edited) 31 minutes ago, BlackS said: Am I wrong and I need to install -edge ? OK, it seems your SPI-flash is empty, so not used and skipped. I start to remember I think; ROCK5B -current is quite old and not from denx.de (or 'mainline') so I picked -edge, but I think I never wrote it to SPI, instead I have this in SPI: https://github.com/edk2-porting/edk2-rk3588?tab=readme-ov-file You need grub-efi or other efi capable and configured bootloader (hide boot.scr, add ESP partition) root@rock5b:~# strings /usr/lib/linux-u-boot-edge-rock-5b/u-boot-rockchip-spi.bin | grep "U-Boot SPL" U-Boot SPL 2024.04-armbian-2024.04-S830c-P0000-H1056-Vdfa5-Bb703-R448a (Jun 08 2025 - 03:38:17 +0000) My ROCK5B is 24/7 server, I won't reboot and do checks now, up to yourself to dig deeper and see how various versions are build. I remember there is a config option w.r.t. this 1 sec timeout, that I saw when building qemu arm64 u-boot a year ago. I currently have blocked u-boot and armbian packages, but will maybe configure/build for ROCK3A 2025.10, but that is completely other topic/issue. Edited 2 hours ago by eselarm 0 Quote
BlackS Posted 2 hours ago Author Posted 2 hours ago Sigh ... Yeah I could see https://github.com/edk2-porting/edk2-rk3588?tab=readme-ov-file but for some reason I need exactly u-boot with enabled eth interface. So, it looks like I need to check -edge version too. However, you've mentioned qemu arm64 u-boot. So, It can be the way for me to check on my side all of these distributives before deploy it on a real hardware. 0 Quote
Solution eselarm Posted 1 hour ago Solution Posted 1 hour ago (edited) What is easiest depends on the situation. If you feel comfortable enough to use dd to write bootloader, I just downloaded the -edge package from the beta apt package pool, extracted the .bin file and wrote it to correct location on SD-card, after saving the first 32k sectors also with dd to a backupfile. Then reboot and you know it. The qemu experiment was to boot directly from U-Boot to Btrfs raid1 filesystem, it took a lot of time browing through U-Boot config/compile options. Better/formal method is to install -edge package, it will remove -current package, then use armbian-config to write the bootloader explicitly. Edited 1 hour ago by eselarm 0 Quote
BlackS Posted 55 minutes ago Author Posted 55 minutes ago Hip hip hooray !!! Yep, this way worked. Will provide the all steps for people who have the same issue. $ apt install linux-u-boot-rock-5b-edge $ armbian-install # Just in case I've installed to the all partitions. I mean to 5th and 7th. > 5 Install/Update the bootloader on SD card (/dev/mmcblk1) > 7 Install/Update the bootloader on MTD Flash $ reboot And now I can enter to uboot shell change to F2: 1068MHz ch0 ttot12 ch1 ttot12 ch2 ttot12 ch3 ttot12 change to F3: 1560MHz ch0 ttot14 ch1 ttot14 ch2 ttot14 ch3 ttot14 change to F0: 2112MHz ch0 ttot16 ch1 ttot16 ch2 ttot16 ch3 ttot16 out U-Boot SPL 2024.04-armbian-2024.04-S830c-P0000-Hd72c-Vdfa5-Bb703-R448a (Oct 24 2025 - 02:33:30 +0000) Trying to boot from SPI ## Checking hash(es) for config config-1 ... OK ## Checking hash(es) for Image atf-1 ... sha256+ OK ## Checking hash(es) for Image u-boot ... sha256+ OK ## Checking hash(es) for Image fdt-1 ... sha256+ OK ## Checking hash(es) for Image atf-2 ... sha256+ OK ## Checking hash(es) for Image atf-3 ... sha256+ OK INFO: Preloader serial: 2 NOTICE: BL31: v2.3():v2.3-868-g040d2de11:derrick.huang, fwver: v1.48 NOTICE: BL31: Built : 15:02:44, Dec 19 2024 INFO: spec: 0x1 INFO: code: 0x88 INFO: ext 32k is not valid INFO: ddr: stride-en 4CH INFO: GICv3 without legacy support detected. INFO: ARM GICv3 driver initialized in EL3 INFO: valid_cpu_msk=0xff bcore0_rst = 0x0, bcore1_rst = 0x0 INFO: l3 cache partition cfg-0 INFO: system boots from cpu-hwid-0 INFO: disable memory repair INFO: idle_st=0x21fff, pd_st=0x11fff9, repair_st=0xfff70001 INFO: dfs DDR fsp_params[0].freq_mhz= 2112MHz INFO: dfs DDR fsp_params[1].freq_mhz= 528MHz INFO: dfs DDR fsp_params[2].freq_mhz= 1068MHz INFO: dfs DDR fsp_params[3].freq_mhz= 1560MHz INFO: BL31: Initialising Exception Handling Framework INFO: BL31: Initializing runtime services WARNING: No OPTEE provided by BL2 boot loader, Booting device without OPTEE initialization. SMC`s destined for OPTEE will return SMC_UNK ERROR: Error initializing runtime service opteed_fast INFO: BL31: Preparing for EL3 exit to normal world INFO: Entry point address = 0xa00000 INFO: SPSR = 0x3c9 ns16550_serial serial@feb50000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19 U-Boot 2024.04-armbian-2024.04-S830c-P0000-Hd72c-Vdfa5-Bb703-R448a (Oct 24 2025 - 02:33:30 +0000) Model: Radxa ROCK 5 Model B DRAM: 16 GiB Core: 353 devices, 32 uclasses, devicetree: separate MMC: mmc@fe2c0000: 1, mmc@fe2d0000: 2, mmc@fe2e0000: 0 Loading Environment from SPIFlash... SF: Detected xt25f128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB *** Warning - bad CRC, using default environment In: serial@feb50000 Out: serial@feb50000 Err: serial@feb50000 Model: Radxa ROCK 5 Model B rockchip_dnl_key_pressed: no saradc device found Net: No ethernet found. Hit any key to stop autoboot: 0 => Great Thanks a lot 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.