[meta-xilinx] Linux/bare-metal AMP interrupt routing

Edward Wingate edwingate8 at gmail.com
Thu Jun 11 13:38:07 PDT 2015


On Thu, Jun 11, 2015 at 2:59 AM, Nathan Rossi <nathan at nathanrossi.com> wrote:
> The vmlinux file should be able to give you the symbols etc. You will
> have to dive down into the
> tmp/work/<machine>/linux.../image/boot/vmlinux to get it though.

I loaded vmlinux to the debugger and got symbols, but not source code,
which is an improvement.

When the Linux serial console is locked up after modprobe
zynq_remoteproc, it seems to be spinning in this loop in
ktime_get_ts():
http://lxr.free-electrons.com/source/kernel/time/timekeeping.c?v=3.14#L377

called by copy_process() (do_posix_clock_monotonic_gettime is a macro
for ktime_get_ts):
http://lxr.free-electrons.com/source/kernel/fork.c?v=3.14#L1261

called by do_fork():
http://lxr.free-electrons.com/source/kernel/fork.c?v=3.14#L1599

After this, the stack trace gets murky, but related symbols in the
disassembly are ret_fast_syscall and fast_working_pending, which I
can't find in the 3.14 kernel source, but is here:
http://lxr.free-electrons.com/source/arch/arm/kernel/entry-common.S#L32
(What does it mean that it's not in 3.14 source but I'm using kernel
3.14.2-xilinx?):

And after this, the stack trace shows code at 0x459x_xxxx and
0x003_xxxx with no symbols. (Up until now, the addresses have been in
0x800x_xxxx.)

> It allocates the irq to the remoteproc device, but configures it to
> only trigger on the second CPU. So one thing to keep in mind there is
> that if the uart driver grabs the interrupt for the uart it might be
> whats causing you issues.

The Linux serial console is using UART1 (INT 82).  I am only
forwarding UART0 (INT 59) to CPU1, not UART1, so I don't know why
UART1 would lock up.  But the above doesn't seem to suggest it has to
do with the UART interrupts, does it?  I guess it depends on what is
in the murky part of the stack trace.

Other pieces of the puzzle that may be relevant:
- There is no real time clock yet on the board, but everything seems
to be fine up until the modprobe.
- I have nginx running and while the serial console is locked up,
nginx can still serve up webpages.
- The console does come back after ~5 minutes.



More information about the meta-xilinx mailing list