AnsweredAssumed Answered

Help with serial boot on 54455EVB (loading U-boot from SPI flash)

Question asked by lmhdoms on Mar 25, 2010
Latest reply on Apr 14, 2010 by Wolfgang Wegner

Hello All,

 

I am trying to boot the 54455EVB from the SPI flash, but I am having some problems. Problem description and my setup:

 

54455EVB board

Freescale BSP: MCFV4M_20090729_ltib

Application note: AN3514, Rev 0

 

First I build a preloader based on AN3514, programmed the SPI flash using the tools included in the U-Boot and booted. This worked without problems.

 

Next exercise is to place U-Boot in SPI flash, and let the boot loader copy it to SDRAM and execute it from there. So I extracted the U-Boot source code from the BSP. Then I build U-Boot using the configuration: M54455EVB_stm33_config. This configuration is provided on the BSP and should support serial boot. The serial boot flash header is however not provided on the BSP for 54455EVB so I made it myself based on the AN3514. Basically I set the length of the bootloader code to 0x312. This is the size of the code needed to boot, init SDRAM, copy U-Boot to SDRAM and transfer execution.

 

When the system is booted, the process stops at different times. Sometimes nothing happens, other times I can boot U-Boot until:

 

U-Boot 2008.10 (Mar 19 2010 - 14:05:58)

 

CPU:   Freescale MCF54455 (Mask:48 Version:1)

       CPU CLK 116 Mhz BUS CLK 58 Mhz FLB CLK 29 Mhz

       INP CLK 33 Mhz VCO CLK 233 Mhz

Board: Freescale M54455 EVB

I2C:      ready

SPI:   ready

DRAM:  256 MB

 

Then the system halts and I don’t know why. I notice two things. First the CPU clocks are much lower than when the board is booted normally (from NOR flash). Could this cause the system to hang? How to change the clocks? Second, using CF Flasher utility I can read the on-chip SRAM. It shows that much more than 0x312 bytes are loaded from the SPI flash. I would expect only 0x312 to be loaded according to the CPU reference manual. Loading two much should however not be a problem, as execution is transferred to SDRAM. I expect that the above dump comes from booting from SDRAM, but I can not check it as the CF Flasher util does not support reading SDRAM.

 

I can attach source code, hex dumps.. whatever could be usefull, just let me know.

 

Any comments or help on how to complete the boot is much appreciated.

Outcomes