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: 
Highlighted
Contributor
Contributor
2,218 Views
Registered: ‎01-18-2018

Zynq AMP - CPU1 baremetal access to gem0

Jump to solution

Hi all,

 

the following issue I am facing concerns the Ethernet access from the baremetal core. The setup is as follows:

- PicoZed 7015 module (Zynq7000)

- CPU0 boots with Linux 4.9 (xilinx repo) while CPU1 runs baremetal.

- device tree is modified for single CPU (maxcpu=1) and reserved memory for CPU1. Configuration for gem0 has been removed from the toplevel DTS.

- clk_ignore_unused bootargs to activate gem0 and gem0_aper clock from Linux.

- cadence GEM and MACB drivers have been disabled in Linux kernel.

- CPU1 runs baremetal with USE_AMP=1.

 

The system correctly boots with both CPU up and running. The issue appears when CPU1 (baremetal) tries to setup and use the gem0 peripheral. Although the setup is successfully completed, packets are not sent nor received through the Ethernet (using wireshark).

 

In case I disable the USE_AMP=1 option (and enable back the ps7_init script), the baremetal application runs as expected with Ethernet while CPU0 obviously freezes.

 

Have you any clue about this issue?

 

Thank you all,

Luca

Tags (3)
0 Kudos
1 Solution

Accepted Solutions
Contributor
Contributor
2,498 Views
Registered: ‎01-18-2018

Re: Zynq AMP - CPU1 baremetal access to gem0

Jump to solution

Hi all,

 

I got a solution for the Linux-Baremetal case, following other threads in this forum.

 

https://forums.xilinx.com/t5/OpenAMP/Re-AMP-Direct-firmware-load-issue/td-p/842186

 

https://forums.xilinx.com/t5/Embedded-Linux/Petalinux-CPU0-LWIP-CPU1/m-p/847072

 

https://forums.xilinx.com/t5/OpenAMP/OpenAMP-CPU0-with-LInux-and-CPU-1-with-baremetal-Interrupt-not/m-p/823493/highlight/true#M360

 

However, the same setup does not work with a Batemetal-Baremetal configuration...

 

Hope it will help,

Luca

0 Kudos
3 Replies
Contributor
Contributor
2,160 Views
Registered: ‎01-18-2018

Re: Zynq AMP - CPU1 baremetal access to gem0

Jump to solution

Just a small update

 

CPU0 --> Linux

CPU1 --> Baremetal with gem0 (with USE_AMP=1)

 

Linux does not reveal the gem0 interface (without kernel modules and by commenting out the device tree code blob). The CPU1 does initialize correctly the gem0 and pass the auto-negotiation procedure (detecting whenever the ETH cable is connected).

 

However, ETH does not communicate when connected (nor ARP, LLC messages are exchanged).

0 Kudos
Contributor
Contributor
2,141 Views
Registered: ‎01-18-2018

Re: Zynq AMP - CPU1 baremetal access to gem0

Jump to solution

Update v2 in case someone follow-up. I tried to ease the system configuration, in order to be easily repeatable.

 

System configuration: Vivado 2016.3

 

CPU0  -> baremetal "Hello World" application

CPU1  -> baremetal "lwIP echo server" with lwIP library to use gem0

 

CPU0 is run as master CPU (and launching the ps7_init methods), while CPU1 is started by the first one.

 

Whenever USE_AMP flag is turned on on CPU1, the "LwIP echo server" did not send packages over Ethernet. In the other case, when USE_AMP is deactivated, the ethernet works as expected. In CPU1 ps7_init is never executed.

 

Edit: CPU1 firmware is now the standard LwIP echo server template. Nothing changes...

 

Anyone face the same issue?

 

Best,
Luca

0 Kudos
Contributor
Contributor
2,499 Views
Registered: ‎01-18-2018

Re: Zynq AMP - CPU1 baremetal access to gem0

Jump to solution

Hi all,

 

I got a solution for the Linux-Baremetal case, following other threads in this forum.

 

https://forums.xilinx.com/t5/OpenAMP/Re-AMP-Direct-firmware-load-issue/td-p/842186

 

https://forums.xilinx.com/t5/Embedded-Linux/Petalinux-CPU0-LWIP-CPU1/m-p/847072

 

https://forums.xilinx.com/t5/OpenAMP/OpenAMP-CPU0-with-LInux-and-CPU-1-with-baremetal-Interrupt-not/m-p/823493/highlight/true#M360

 

However, the same setup does not work with a Batemetal-Baremetal configuration...

 

Hope it will help,

Luca

0 Kudos