AR# 37240


12.1 EDK - MicroBlaze Linux image does not boot from SystemACE


I created a MicroBlaze embedded system so that Linux or Petalinux can boot from the SystemACE card. I created the ACE file using the genace.tcl file but the Linux image fails to boot. What is the problem?


The root of the problem has not been discovered, but the suspect is how the MicroBlaze core is interacting with the start up process of the ACE file. There is a very simple workaround to get the Linux image up and running. You will need a small amount of Block RAM space to store the bootstrap software application. This application must be marked to be initialized into the Block RAM. The software application will take on the following code form:

#include "xparameters.h"

/* The START_ADDRESS is the location where the image (or main()
function) will reside. In this example, it is the address of the DDR3
memory on the SP605 board, but the START_ADDRESS may vary
depending on your linker script (.ld file) definitions and should be
adjusted according to your design code specifications. */


/* Function pointer that is used at the end of the program
to jump to the address location stated by START_ADDRESS */

int (*func_ptr) ();

int main()
func_ptr = (void *)START_ADDRESS;

return 0;

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
34609 12.x EDK - Master Answer Record List N/A N/A
AR# 37240
Date 12/15/2012
Status Active
Type General Article
Boards & Kits
People Also Viewed