AnsweredAssumed Answered

Using U-boot as MQX bootloader

Question asked by Thomas Fredriksen on May 19, 2015
Latest reply on Jun 9, 2015 by Thomas Fredriksen

I am attempting to boot MQX using U-boot, and I was hoping it would be something as straightforward as using the "go" command in U-boot. Unfornunately that is not the case. Here's my output:

 

U-Boot 2015.04-dirty (May 19 2015 - 13:00:05)  CPU:   Freescale Vybrid VF610 at 396 MHz Reset cause: EXTERNAL RESET Board: vf610twr I2C:   ready DRAM:  128 MiB WARNING: Caches not enabled NAND:  256 MiB MMC:   FSL_SDHC: 0 In:    serial Out:   serial Err:   serial Net:   FEC Error: FEC address not set.  Hit any key to stop autoboot:  0  switch to partitions #0, OK mmc0 is current device 91608 bytes read in 67 ms (1.3 MiB/s) ## Starting application at 0x80000000 ...

And then it just hangs.

 

Following is the boot procedure:

baudrate=115200 => load mmc 0:1 $loadaddr /mqxapp.bin 91608 bytes read in 68 ms (1.3 MiB/s) => echo $loadaddr 0x80000000 => go $loadaddr ## Starting application at 0x80000000 ...

 

"mqxapp.bin" is produced using fromelf and is based the "hello2" example project found in "[MQX_ROOT]/mqx/examples":

fromelf --bincombined --fpu=vfpv4 --output=mqxapp.bin hello2_twrvf65gs10_a5.axf

 

The build target is "DDR Release" using "ddr.scf" provided with the VF610twr BSP:

#define CODE_BASE_ADDR_START    0x80000000 #define CODE_BASE_ADDR_END      0x800ffff0 #define CODE_SIZE               (CODE_BASE_ADDR_END - CODE_BASE_ADDR_START)  #define DATA_BASE_ADDR_START    0x80100000 #define DATA_BASE_ADDR_END      0x87fffff0 #define DATA_SIZE               (DATA_BASE_ADDR_END - DATA_BASE_ADDR_START)

 

I imagine that the provided scatter file ("ddr.scf") is not suitable to be used with U-boot, and I cannot seem to find any relevant documentation that explain this process in detail. Does anyone have some pointers on how to boot MQX using U-boot on Vybrid?

 

EDIT: Formatting and spelling.

Outcomes