ARM-software / tf-issues

Issue tracking for the ARM Trusted Firmware project
37 stars 16 forks source link

UEFI fails to boot on Foundation model #238

Closed ardbiesheuvel closed 10 years ago

ardbiesheuvel commented 10 years ago

On Foundation model version 0.8.5206, using the Linaro-EDK2 2014.08 release, the model fails to boot into UEFI without any feedback in the console.

git bisect reveals a1b6db6c62aa ("fvp: Reuse BL1 and BL2 memory through image overlaying") to be the culprit: after reverting just this commit (on top of c1efc4c0666), the model boots UEFI just fine.

danh-arm commented 10 years ago

That sounds strange. The commit you refer to should only affect the secure world memory layout and have no effect on the operation of the normal world bootloader.

I had a look for the Linaro-EDK2 release you referred to but could only find a 14.07 release, not a 14.08: http://releases.linaro.org/14.07/components/kernel/uefi-linaro

Could you provide a link to try and reproduce this? Also, any other environmental info would help (e.g. host OS version and toolchain version).

danh-arm commented 10 years ago

By the way, I just tried the following combination and it worked OK for me:

ardbiesheuvel commented 10 years ago

On 14 August 2014 17:57, danh-arm notifications@github.com wrote:

By the way, I just tried the following combination and it worked OK for me:

  • Foundation FVP version 0.8.5206
  • Tip of the TF integration branch (commit 245ae76d99275046a).
  • EDK2 version quoted in the user guide (commit 129ff94661bd3a6c75).

​2014.08 is at -rc1 currently, so it is not released yet. ​ ​Could you share the exact command line that you used to start the Foundation model? ​

danh-arm commented 10 years ago

Sure, it's:

./Foundation_v8                   \
--cores=4                                 \
--no-secure-memory                        \
--visualization                           \
--gicv3                                   \
--data="<path/to>/bl1.bin"@0x0       \
--data="<path/to>/fip.bin"@0x8000000

I'm using Linaro toolchain 14.06, although we are moving up to 14.07 soon.

ardbiesheuvel commented 10 years ago

On 14 August 2014 18:36, danh-arm notifications@github.com wrote:

Sure, it's:

./Foundation_v8 \ --cores=4 \ --no-secure-memory \ --visualization \ --gicv3 \ --data="<path/to>/bl1.bin"@0x0 \ --data="<path/to>/fip.bin"@0x8000000

I'm using Linaro toolchain 14.06, although we are moving up to 14.07 soon.

​I am using the same command line​, but with --block-device and --network-xxxx arguments added.

Working:

Booting trusted firmware boot loader stage 1 Built : 14:23:59, Jun 6 2014 Booting trusted firmware boot loader stage 2 BL2 v0.4(release):ccf191b810a7 BL2 Built : 07:41:25, Aug 15 2014 Booting trusted firmware boot loader stage 3 BL31 v0.4(release):ccf191b810a7 BL31 Built : 07:41:26, Aug 15 2014 UEFI firmware (version built at 07:39:15 on Aug 15 2014 ​(and the I get the countdown)

Failing:

Booting trusted firmware boot loader stage 1 Built : 14:23:59, Jun 6 2014 Booting trusted firmware boot loader stage 2

So changing UEFI versions is not going to make a world of difference, I suspect, as BL2 does not even start.

I was building with gcc 4.9, but 4.8 does not make a difference either.

Ard.

ardbiesheuvel commented 10 years ago

Never mind, it looks like I had some stale object files in my tree, whose dependencies on updated .c files are not tracked correctly. After make distclean and rebuilding, everything works fine.