cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
phdwong
Explorer
Explorer
711 Views
Registered: ‎09-15-2011

xapp1078 cpu0 run linux and cpu1 run standalone

Hi, everyone 

in Xapp1078,the CPU0 run Linux OS,and CPU1 run standalone application

if the cpu0 run standalone and cpu1 run linux os, how to change the project ?

0 Kudos
3 Replies
savula
Moderator
Moderator
673 Views
Registered: ‎10-30-2017

Hi @phdwong ,

Please select the target cpu while building project and follow the procedure same xapp.

Best Regards,
Srikanth
----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.

0 Kudos
phdwong
Explorer
Explorer
669 Views
Registered: ‎09-15-2011

hi savlua

i follow it same ,but the stand alone app not running

i have some question

1 in the fsbl,we select cpu1 or cpu0

2 if cpu0 run stand alone ,cpu1 run linux ,how to config the start address 

0 Kudos
sabankocal
Voyager
Voyager
544 Views
Registered: ‎08-02-2019

Hi @phdwong ,

I think, this lines in application note answers your questions.

After the PS powers up and the internal boot ROM completes execution, CPU1 will have been redirected to a small piece of code in OCM at 0xFFFFFE00. This piece of code is a continuous loop that waits for an event, checks address location 0xFFFFFFF0 for a non-zero value and then continues the loop. If 0xFFFFFFF0 contains a non-zero value, CPU1 will jump to the fetched address.

CPU0 (running Linux) starts CPU1 (running bare-metal) by writing the value of 0x30000000 to address 0xFFFFFFF0 using the included rwmem application. Normally, CPU0 would need to run a set event (SEV) command to wake up CPU1. Because Linux, running on CPU0, is constantly servicing interrupts (another source of events), an SEV command is not necessary. When CPU1 wakes up, it reads the value 0x30000000 from address 0xFFFFFFF0 (written using the rwmem command) and then jumps to address 0x30000000. Note that the FSBL placed CPU1’s ELF at 0x30000000.

Regards,

Saban

<--- If reply is helpful, please feel free to give Kudos, and close if it answers your question --->
0 Kudos