Re: [PATCH] ARM: keystone: add a work around to handle asynchronous external abort

From: Murali Karicheri
Date: Tue Aug 18 2015 - 16:26:23 EST


Russell,

On 08/18/2015 04:13 AM, Russell King - ARM Linux wrote:
On Mon, Aug 17, 2015 at 08:09:17PM -0700, santosh.shilimkar@xxxxxxxxxx wrote:
From the logs this seems to be mostly clock related issue for some
peripheral. If the bootloader clock enable all hack still exists,
may be you can try that out.

Another way to debug this is to start disabling peripheral drivers
from the kernel 1 by 1 and see if the issue goes away.

Highly unlikely to make any difference. As the failure happens soo early
with the patch applied, the kernel hasn't had much of a chance to touch
the hardware - about the only things are the decompressor and the kernel
touching the early console. As they seem to be working, it suggests
that's not the cause.

It seems to be pointing towards something in the boot loader...

Normally, uboot will hook itself into the vectors to report errors, but
I wonder whether uboot enables asynchronous aborts while it's running.
Don't forget to make sure that the aborts are disabled again prior to
calling the kernel.

Thanks for your input.

The patch works now once I move the local_abort_enable() to later just before calling reserve_crashkernel() in setup_arch(). The abort handler gets called right after enabling it which means it has happened even before reaching here.

I have added the abort handler to u-boot code and I get the same abort which means the root cause is u-boot or ROM boot loader. I would try to debug if root cause is u-boot. If it is ROM boot loader, I will have to add a work around in u-boot or Linux. Is there a preference of one over the other? The exception handling in u-boot is premature and will require more work to add a work around. Is there still a possibility of adding the work around in Linux?

--
Murali Karicheri
Linux Kernel, Keystone
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/