Post Go back to editing

why BF706 do not boot from SPI ???

Hi,

I just wanted to know when does SPI boot fails...?

My BF706 boots properly for certain working firmware. But when I add certain extra code, generate LDR and load it into flash, then up on power ON the BF706 does NOT boot at all....?

What could be the reason.... One difference between the correct working LDR and the NON-Working LDR is size. The non-working LDR is of bigger size...

Just wanted to know in what conditions does a BF fail to boot from SPI flash...?

Thanks & Regards,

  • Hi Sri,

    There can two problems here and we need to isolate it:

    1. The application might be booting properly. But the extra code that you added might be failing to run when booted. This would happen, if you have added printf like code in extra code.

    2. There could be some problem in booting.

    To isolate this, you can add a asm("JUMP 0;"); instruction at the start of main application. Build the code, generate ldr and boot it. After booting, connect target in DND emulator mode. If you see core stuck at this JUMP.0 instruction in main, the application is booted properly. Then you need to concentrate on what code in extra software is failing to run.

    Let me know if you need more details.

    Thanks,

    Prashant

  • Hi Sri,

    Thanks for testing this. It looks like, it indeed failed to boot. The address 0x40026DA is Boot ROM location.

    Do you enable instruction cache for your application? When you connect target in DND mode, please check following things:

    REG_L1IM_ICTL

    - Status registers of DMA16, 17, 18, 19, 20, 21. Let me know if you see any errors.

    Thanks,

    Prashant 

  • Thanks Prashanth.

    I shall try this and get back to you..

    Ragards,

  • Hi Prashanth,

    Thanks for the reply.

    I tried DND mode. What I observed is that code is stuck at JUMP.S -0x02 (NOT JUMP.0) . I do not know what does that mean. When I observed the stack, core is stuck at the following instruction:

    <heaps_and_stack_in_L1_data_a_length + 0x3fff94a> () at 0x40026da.

    I have no clue what does that mean.... Any thing to you???

    Please let me know.

  • I have the same problem on BF707 (The specified item was not found. ), can you please help me?

  • Hello Chiara,

    Please let me know the details of same questions :

    1. Are you enabling cache? And what content in L1IM_ICTL and L1_DCTL registers do you see when connected in DND mode?

    2. Send the screenshots of MDMA registers (DMA16 to DMA21) when connected in DND mode after failure.

    Could you also try the JUMP 0 technique to understand whether it is boot failure or application running failure?

    Thanks,

    Prashant

  • I'm not sure what caused the problem because in the end I started the project from scratch.

    However I think that probably it was settings related.

    One thing I think i'm sure, is that in Build Settings > Tool Setting tab > Linker section, I un-checked "Individually map functions and data items" for General and "Eliminate unused object" for Elimination.

    These were the things I did differently the second time

    I hope it's also your case!

    Chiara

  • Hello Chiara, Prashant & Sri,

    how was your problem solved? We have the same issue here with an BF707.

    After connecting in DND Emulator mode we end up at same adress 0x40026da in Boot-ROM.

    Thank you very much for your help.

    Best,

    Stefan

  • Thank you so much!  I followed the steps exactly and the "un-checking" of the "Eliminate unused object" for Elimination was what made it work for me.

  • This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

    Thank you,
    EZ Admin