View Issue Details

IDProjectCategoryView StatusLast Update
0002574NBootiMX6NBootpublic2015-12-16 16:06
ReporterKeller Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
Product VersionV25 
Target VersionV26Fixed in VersionV27 
Summary0002574: Relocating and starting of U-Boot does not work correctly
DescriptionWhen U-Boot is compiled to run from an address different to DOWNLOAD_ADDRESS (0x10100000), NBoot should copy the code there and start it. This does not work reliably. Further investigations showed that there are some memory regions that do not hold the correct U-Boot image data.

When U-Boot is compiled for 0x10100000, everything works fine. This indicates that there is some problem in function imx6_loader.c:RelocRunBootloader(), most probably in function DCacheFunc(CLEAN_AND_INVALIDATE).
Steps To ReproduceInstall nbootIMX6_25 on armStoneA9. Download the attached U-Boot file and execute it. U-Boot will start but will fail at some point. The code is compiled for address 0x27800000. It will show the following output:

27802004,FFFFFFFF,27802004,FFFFFFFF

This is the address 0x27802004 of function board_init_f() and the first word on this address (shown twice, once at the beginning of U-Boot, once immediately before the call of the function). This should be 0xE59F5031 (see offset 0x2004 in the attached file), which represents the assembler instruction

   ldr r3, [pc, 0000336]

But in fact it shows 0xFFFFFFFF (or some other value). This means the data is not correctly available at this address.

Activities

There are no notes attached to this issue.