AnsweredAssumed Answered

Custom BF518F Boot Problem

Question asked by JFisher on Aug 13, 2012
Latest reply on Aug 26, 2012 by Prashant

I am having trouble with the boot process on our custom BF518F board.


We are booting from external serial flash (via SPI0).  I am able to flash the board with our LDR file properly using the BF518 EZKit external serial flash driver, using the "Verify" to ensure that everything is programmed correctly.  The BMODE pins are set to 0x3, which corresponds to booting from external serial flash.


The problem is that the board only boots approximately 50% of the time.  When it fails, I can connect using the ADSP-HPUSB ICE (with no-reset) to see where the hang happens.  The hang is in the boot rom area (specific address is 0xEF000682), in the assert function (when I load symbols from the BF518 V2 boot rom DXE).  I have stepped through the code from the beginning of the boot rom and it seems to be an error in the checksum.


I have followed the solution found here: to no avail (setting the max block size to 0x8000).  This was disappointing, since it definitely seems that the anomaly (#05-00-0490) would apply in this case.


Doing a little bit of debugging, I looked at the DMA7 registers and see that the START_ADDR register is pointing at 0xC0C9942F, which is pointing off into the weeds someplace (it's not a valid memory location).  I put a line of code in the initcode to pull PF0 high just as a test, but it never gets run when the board hangs.  So not even the initcode runs when the board fails to boot.


I checked the OTP voltage and it is safely within the expected range (it is right at 2.4V I believe).  The especially odd part is that if I sit here and power the board on 10 times, it will boot successfully approximately 5 times.


The board is a BF518F silicon rev 0.2.  The flash part is the M25P16 (our design was based on similar parts to the BF518 EZKIT).  The project is built using Visual DSP++ Update 10.


Any thoughts?