Package: u-boot-rockchip Version: 2020.10+dfsg-1 Severity: important Tags: upstream X-Debbugs-Cc: hxmul...@gmail.com
Dear Vagrant Cascadian, This report is specific to the RockPro64 but the Pinebook Pro is also affected as its <board>_defconfig is similar. This report is generated on a Raspberry PI 3 model B v1.2 so take the automatically included System Information below with a grain of salt. When booting u-boot v2020.10 using the default configuration for the RockPro64 (rockpro64-rk3399_defconfig) it is expected that it boot successfully everytime. But what happens whether u-boot is installed to micro SD card or SPI NOR flash, is that most of the time it will fail to boot and hang at "Booting using the fdt blob at 0x01f00000". If you press and hold the power button down until the board is powered down and restart it, and repeat, it will eventually boot the kernel and the system. It am unsure where the actual problem lies although I strongly suspect that the SPI configuration for the rk3399 u-boot port is the culprit. I am too new to the u-boot code base, device tree, etc., to be sure. A workaround that satisfactorily allows the board to boot _everytime_ is to change environment storage location from SPI to FAT. After running `make rockpro64-rk3399_defconfig` I ran `make menuconfig` and made the following changes: [ ] Enable overwriting environment [ ] Environment is not stored [ ] Environment in EEPROM [*] Environment is in a FAT filesystem [ ] Environment is in a EXT4 filesystem [ ] Environment in flash memory [ ] Environment in an MMC device [ ] Environment in a NAND device [ ] Environment in a non-volatile RAM [ ] Environment is in OneNAND [ ] Environment is in remote memory space [ ] Environment is in SPI flash (mmc) Name of the block device for the environment (1:1) Device and partition for where to store the environemt in FAT (uboot.env) Name of the FAT file to use for the environment (0x8000) Environment Size [*] Relocate gd->env_addr (1) mmc device number (1) mmc partition number [ ] Create default environment from file [ ] Add run-time information to the environment [ ] Always append the environment with new data [ ] Permit write access only to listed variables [ ] Block forced environment operations [ ] Add a 'ver' environment variable with the U-Boot version Note that the above is specific to storing the environment on a micro SD card. The device and partition information would necessarily have to be modified to use eMMC. The workaround is a good temporary solution until the real problem can be corrected, but it would be nice to store the environment in SPI if one wished to. I am able to boot reliably whether u-boot is installed to SPI or micro SD card using this workaround. I have not tested this on my Pinebook Pro yet, but I suspect it will resolve the issues I have been having with it also (stock u-boot v2020.10). Best, H -- System Information: Debian Release: bullseye/sid APT prefers testing APT policy: (500, 'testing') Architecture: arm64 (aarch64) Kernel: Linux 5.8.0-2-arm64 (SMP w/4 CPU threads) Kernel taint flags: TAINT_CRAP Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled u-boot-rockchip depends on no packages. Versions of packages u-boot-rockchip recommends: ii arm-trusted-firmware 2.3+dfsg-3 ii python3 3.8.2-3 ii u-boot-tools 2020.10+dfsg-1 u-boot-rockchip suggests no packages. -- no debconf information