[U-Boot] U-Boot bootefi MVPP2 Bug

Sven Auhagen sven.auhagen at voleatech.de
Thu May 2 09:25:39 UTC 2019


Hi everyone,

I discovered a problem when using upstream U-Boot with Kernel 5.0 and MVPP2 when booting with the bootefi command on the Macchiatobin.
The Macchiatobin runs ARM64 based Armada 8040.

How to reproduce this:


  1.  Compile and flush upstream U-Boot:
UBOOT_VERSION=v2019.04
BINARIES_VERSION=binaries-marvell-armada-18.12
ATF_VERSION=atf-v1.5-armada-18.12
MV_DDR_VERSION=mv_ddr-armada-18.12


  1.  Compile Upstream Kernel 5.0 with MVPP2 builtin.

  2.  Boot Kernel with boot efi from UBoot (either builtin the efi stub or install grub2)
  3.  Enable the eth2 network interface: ip link set dev eth2 up
  4.  Connect a USB Stick with files ~1GB to the mcbin and mount it: mount /dev/sda1 /mnt
  5.  Copy files to eMMC
  6.  Error message is:


[  225.587186] BUG: Bad page state in process cp  pfn:7fc40
[  225.592541] page:ffff7e0001ff1000 count:-1 mapcount:0 mapping:0000000000000000 index:0x1
[  225.592548] flags: 0xffff00000000000()
[  225.592557] raw: 0ffff00000000000 dead000000000100 dead000000000200 0000000000000000
[  225.592563] raw: 0000000000000001 0000000000000000 ffffffffffffffff 0000000000000000
[  225.592567] page dumped because: nonzero _count
[  225.592570] Modules linked in: overlay sd_mod sg uas usb_storage bonding xfrm_user xfrm4_tunnel tunnel4 ipcomp xfrm_ipcomp esp4 ah4 af_key xfrm_algo cpufreq_conservative cpufreq_powersave cpufreq_userspace cpufreq_ondemand cfg80211 rfkill 8021q garp mrp nls_ascii nls_cp437 vfat fat aes_ce_blk crypto_simd cryptd ofpart aes_ce_cipher m25p80 ghash_ce gf128mul spi_nor mtd sha2_ce sha256_arm64 sha1_ce spi_orion efi_pstore efivars armada_thermal br_netfilter bridge stp llc efivarfs autofs4 ext4 crc16 mbcache jbd2 fscrypto aes_arm64 ahci_platform libahci_platform libahci xhci_plat_hcd xhci_hcd libata phy_generic fixed scsi_mod i2c_mux_pca954x i2c_mux usbcore usb_common
[  225.592658] CPU: 0 PID: 1383 Comm: cp Not tainted 5.0.0-3-vtair-arm64 #1 Debian 5.0.9-2~vtair
[  225.592662] Hardware name: Marvell mvebu_armada-8k/mvebu_armada-8k, BIOS 2019.04 05/02/2019
[  225.592665] Call trace:
[  225.592676]  dump_backtrace+0x0/0x1a0
[  225.592681]  show_stack+0x24/0x30
[  225.592690]  dump_stack+0x8c/0xac
[  225.592696]  bad_page+0xec/0x148
[  225.592700]  check_new_page_bad+0x80/0xb8
[  225.592706]  get_page_from_freelist+0x9e8/0x1710
[  225.592710]  __alloc_pages_nodemask+0x158/0xe40
[  225.592717]  alloc_pages_current+0x88/0xf0
[  225.592723]  __page_cache_alloc+0xac/0xc0
[  225.592730]  __do_page_cache_readahead+0xe4/0x1f8
[  225.592735]  ondemand_readahead+0x164/0x2f0
[  225.592741]  page_cache_async_readahead+0xd4/0xd8
[  225.592746]  generic_file_read_iter+0x590/0x808
[  225.592752]  new_sync_read+0xf8/0x178
[  225.592758]  __vfs_read+0x74/0x90
[  225.592763]  vfs_read+0x94/0x150
[  225.592768]  ksys_read+0x6c/0xd8
[  225.592773]  __arm64_sys_read+0x24/0x30
[  225.592780]  el0_svc_common+0xd0/0x130
[  225.592786]  el0_svc_handler+0x38/0x78
[  225.592791]  el0_svc+0x8/0xc
[  225.592795] Disabling lock debugging due to kernel taint

The copy is actually just a way of triggering the problem.
It will happen eventually with another process.
When all mvpp2 interfaces are down, the error is not happening.
When booting the kernel via booti the error also does not happen.
I added an intel NIC on the PCIe slot and tested it with that and the error does not happen with the Intel NIC up.

Best
Sven


Beste Grüße/Best regards

Sven Auhagen
Dipl. Math. oec., M.Sc.

Voleatech GmbH
HRB: B 754643
USTID: DE303643180
Grathwohlstr. 5
72762 Reutlingen
Tel: +49 7121539550
Fax: +49 7121539551
E-Mail: sven.auhagen at voleatech.de

www.voleatech.de<https://www.voleatech.de>
Diese Information ist ausschließlich für den Adressaten bestimmt und kann vertraulich oder gesetzlich geschützte Informationen enthalten. Wenn Sie nicht der bestimmungsgemäße Adressat sind, unterrichten Sie bitte den Absender und vernichten Sie diese Mail. Anderen als dem bestimmungsgemäßen Adressaten ist es untersagt, diese E-Mail zu lesen, zu speichern, weiterzuleiten oder ihren Inhalt auf welche Weise auch immer zu verwenden. Für den Adressaten sind die Informationen in dieser Mail nur zum persönlichen Gebrauch. Eine Weiterleitung darf nur nach Rücksprache mit dem Absender erfolgen. Wir verwenden aktuelle Virenschutzprogramme. Für Schäden, die dem Empfänger gleichwohl durch von uns zugesandte mit Viren befallene E-Mails entstehen, schließen wir jede Haftung aus.



More information about the U-Boot mailing list