UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 37240

12.1 EDK - MicroBlaze Linux image does not boot from SystemACE

Description

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?

Solution

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. */

#define START_ADDRESS XPAR_MCB_DDR3_MPMC_BASEADDR

/* 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;
func_ptr();

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 Created 08/04/2010
Last Updated 12/15/2012
Status Active
Type General Article
Tools
  • EDK - 12.1
Boards & Kits
  • Spartan-6 FPGA SP605 Evaluation Kit