[U-Boot] [BUG] efi_loader: GetNextVariableName() fails on qemu-x86_64

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Jan 23 01:16:20 UTC 2019


Hello Simon, hello Bin,

on qemu-x86_64 (and not any other architecture) we received an error in
a unit test.

Once I undefined __HAVE_ARCH_MEMMOVE the error disappeared. Same happens
if I use my own memmove() code in lib/slre.c.

The memmove() that fails is in function relocate() in lib/slre.c.

Should I remove x86 memmove() or can you fix it?

We definitively need a unit test for memmove().


The result of the bug is as follows:

On qemu-x86_64 srle_compile() produces (using slre_dump() for printing)
when testing efi_get_next_variable_name() via bootefi selftest.

  0 OPEN  0
  2 EXACT "efi_"
  5 STAR 7
  7 EXACT "-"
 10 STAR 12
 12 EXACT "-"
 15 STAR 17
 17 EXACT "-"
 20 STAR 22
 22 EXACT "-"
 25 STAR 27
 27 EXACT "_"
 30 STAR 32
 32 CLOSE 0
 34 END

On qemu_arm64 it produces

  0 OPEN  0
  2 EXACT "efi_"
  5 STAR 9
  7 ANY
  8 END
  9 EXACT "-"
 12 STAR 16
 14 ANY
 15 END
 16 EXACT "-"
 19 STAR 23
 21 ANY
 22 END
 23 EXACT "-"
 26 STAR 30
 28 ANY
 29 END
 30 EXACT "-"
 33 STAR 37
 35 ANY
 36 END
 37 EXACT "_"
 40 STAR 44
 42 ANY
 43 END
 44 CLOSE 0
 46 END

Best regards

Heinrich


More information about the U-Boot mailing list