Package: u-boot-sunxi
Version: 2018.01+dfsg1-2
Severity: normal

Hi,

the system in question is a Banana Pi, booting off an sd card. /boot is
already on the SATA disk, and was an ext4 file system when the issue
appeared.

According to the availability of the ext4* commands, this u-boot should
be able to handle an ext4fs, I therefore used it as /boot. This has
worked until recently, when I installed the 4.15.6 kernel. Booting this
kernel failed with "file not found" for the dtb file laoded from
/dtbs/4.15.6/sun7i-a20-bananapi.dtb. Setting fk_kvers to 4.15.5 made the
system boot 4.15.5 just fine.

Examining /boot from the running system didn't show any visible
difference while u-boot still complained that there was no dtb for
4.15.6.

I then noticed that ls -l /boot/dtbs | wc -l returned 64. This made me
suspicious, and I cleaned up /boot/dtbs a bit, with the behavior
unchanged.

I then renamed /boot/dtbs to /boot/dtbs-old and did mkdir /boot/dtbs, cp
-a /boot/dtbs-old/* /boot/dtbs/. Starting with this, u-boot started
claiming that /dtbs was completely empty.

I finally solved the issue by reformatting /boot as ext2, which made the
system immediately boot even 4.15.6.

I therefore conclude that:

  - u-boot has some weird issues regarding directories in /boot
  - these can either be triggered by having /boot/dtbs grow over 64
    entries or by
  - re-creating /boot/dtbs anew from a recent kernel

The (now gone) ext4fs had the following attributes:
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype 
needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink 
extra_isize metadata_csum

Is is possible that u-boot won't handle some of the advanced ext4
features?

Greetings
Marc


-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: armhf (armv7l)

Kernel: Linux 4.15.6-zgbpi-armmp-lpae (SMP w/2 CPU cores)
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8), LANGUAGE=en 
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- no debconf information

Reply via email to