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!

cancel
Showing results for 
Search instead for 
Did you mean: 
512 Views
Registered: ‎11-15-2018

RPU hangs when petalinux has started on APU

Jump to solution

hi,

 

I have setup a simple system on the zynq ultrascale+ zcu102 board the following way:

a53 running petalinux, all default options

r5 runnning printing hello world with freertos every second. r5 is running in lockstep mode

im using sd-boot and the boot process utilizes u-boot with the default options, u-boot is build by the petalinux process. the linux and freertos each print to their own uart to be able to distinguish themselves The fsbl is on the r5 lockstep cores

 

my problem is that the r5 stops printing after linux has booted. It seems that when linux reaches INIT the r5 stops printing to uart.

 

anybody know what is going wrong and how I can debug this further?

 

EDIT: after attaching a debugger to running target it seems that the r5 hangs in a while (XUartPs_IsTransmitFull(BaseAddress). so in other words the uart is no longer available. this is strange as linux and the r5 application use different uarts

 

EDIT2: it seems that if I put the fsbl in the a53 instead the debugger reports that freertos hangs in the idle timer and goes to the undefined handler in the assembly. that would suggest that the timer is getting ripped by the a53

 

EDIT3: the problem starts after petalinux reports INIT: Entering runlevel: 5

0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
439 Views
Registered: ‎10-06-2016

Re: RPU hangs when petalinux has started on APU

Jump to solution

Hi @frankboermanprodrive,

The default ZCU102 device-tree files enables both UART ports even though the console is output in one of them. That means that the UART driver will initialize the port on the Linux boot process so it might overwrite/conflict with your FreeRTOS application in the RPU.

To solve your issue you just need to disable the usage of UART1 on the APU (Linux). To do so just use the system-user.dtsi file in the meta-user directory (project-spec/meta-user/recipes-devicetree/files) to overwrite the status property.

/include/ "system-conf.dtsi"
/ {
};

&uart1 {
	status="disabled";
};

Regards


Ibai
Don’t forget to reply, kudo, and accept as solution.
0 Kudos
1 Reply
Moderator
Moderator
440 Views
Registered: ‎10-06-2016

Re: RPU hangs when petalinux has started on APU

Jump to solution

Hi @frankboermanprodrive,

The default ZCU102 device-tree files enables both UART ports even though the console is output in one of them. That means that the UART driver will initialize the port on the Linux boot process so it might overwrite/conflict with your FreeRTOS application in the RPU.

To solve your issue you just need to disable the usage of UART1 on the APU (Linux). To do so just use the system-user.dtsi file in the meta-user directory (project-spec/meta-user/recipes-devicetree/files) to overwrite the status property.

/include/ "system-conf.dtsi"
/ {
};

&uart1 {
	status="disabled";
};

Regards


Ibai
Don’t forget to reply, kudo, and accept as solution.
0 Kudos