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!
11-13-2017 05:10 AM
Hi, i have a full functional dual core Bare.metal project using jtag, now i want to programm the flash with the same project so y create FSBL file on cpu0 and create the image adding all .elf for each core and a microblaze. Then i program the qspi flash and only the cpu0 works. I find XAPP1079 talking about changing the FSBL then i find how in 'AR# 51956 Zynq-7000 Example Design - Modify the 14.2 FSBL to load multiple executable partitions' but im useing the new vivado and sdk software an they claim me to change the ' image_mover.c' with i´ve got but i cant find the secction 'update_status_reg:' where the new functions must be inserted. Any helps? Thanks.
11-29-2017 07:13 AM
I have developed a similar project using Vivado 2017.1 and SDK 2017.1.
If you use recent SDK (example 2017.x) you don't have to modify FSBL. It automatically loads
multiple source/bitmap from bin file.
To start core#1 from core#0 use the following instruction:
#define sev() __asm__("sev")
#define CPU1STARTADR 0xfffffff0
void startSecondCore(void)
{
Xil_Out32(CPU1STARTADR, 0x00200000); // 0x200000 is my base code area for CORE#1
dmb(); //waits until write has finished
Xil_DCacheFlushLine(CPU1STARTADR);
sev();
}
On my application this work fine.
11-29-2017 07:13 AM
I have developed a similar project using Vivado 2017.1 and SDK 2017.1.
If you use recent SDK (example 2017.x) you don't have to modify FSBL. It automatically loads
multiple source/bitmap from bin file.
To start core#1 from core#0 use the following instruction:
#define sev() __asm__("sev")
#define CPU1STARTADR 0xfffffff0
void startSecondCore(void)
{
Xil_Out32(CPU1STARTADR, 0x00200000); // 0x200000 is my base code area for CORE#1
dmb(); //waits until write has finished
Xil_DCacheFlushLine(CPU1STARTADR);
sev();
}
On my application this work fine.
12-02-2017 08:32 AM