FW: zc706 bsp does not work with maximum processors as 2
Chris Johns
chrisj at rtems.org
Thu Apr 2 22:19:34 UTC 2020
On 2020-04-02 18:45, Fernando Domínguez Pousa wrote:
> Hi again,
>
> Finally I could continue my tests on zc706 and the second processor start.
>
> I could add two breakpoints one at _CPU_SMP_Start_processor (0x0041e7b0) and other at _Per_CPU_State_wait_for_non_initial_state (0x0041e7d4) at the end of the function _CPU_SMP_Start_processor. Execution stops and continues in both breakpoints, but I still need to need to start the second processor from xsdb. I attach you a capture of the objdump done at the end of the mail.
The way the process is started is by a write to an address
(0xfffffff0UL). The second core is parked in code in the ROM monitor
that is in zynq and when kicked it jumps to the address held in the
special location. At power up the address points to a ROM loop that just
loops and power downs. I wonder if xsdb is doing something with the core
that is effecting what happens?
>> Yes I believe so. I tested the m2003 version.
> Can you share me the compilation flags you use for your tests executables?
I use the ones RTEMS uses to build the BSP with some changes in the
warning flags. You need to do this to maintain the ABI ...
https://docs.rtems.org/branches/master/user/exe/executables.html#machine-flags-and-abi
> And sorry for this answer, but where can I find the m2003 version? Is it a git tag, branch.. ? I don't see anything similar on GitHub repos.
Please try the m2004 snapshot. You should have received an email about it.
>> I wonder if xsdb is doing something. Are you able to set a break point
>> in the code I provided to the link to in zynq_start_bspsmp.c
> Maybe the JTAG hardware could cause this...
It is not the hardware rather the xsdb software. You may need to tell it
to use the second core and what it needs to do. I know with OpenOCD you
need to tell it you have both cores running.
Chris
More information about the users
mailing list