AR# 37240: 12.1 EDK - MicroBlaze Linux image does not boot from SystemACE
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. */
#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();