Re: [PATCH v3 5/5] arm64: dts: qcom: add initial support for qcom sa8775p-ride

From: Bartosz Golaszewski
Date: Thu Feb 09 2023 - 14:52:29 EST


On Thu, 9 Feb 2023 at 19:05, Eric Chanudet <echanude@xxxxxxxxxx> wrote:
>
> On Wed, Feb 01, 2023 at 04:20:38PM +0100, Bartosz Golaszewski wrote:
> > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
> >
> > This adds basic support for the Qualcomm sa8775p platform and the
> > reference board: sa8775p-ride. The dt files describe the basics of the
> > SoC and enable booting to shell.
> >
> > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
> > Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
> > ---

[...]

> > +
> > + watchdog@17c10000 {
> > + compatible = "qcom,apss-wdt-sa8775p", "qcom,kpss-wdt";
> > + reg = <0x0 0x17c10000 0x0 0x1000>;
> > + clocks = <&sleep_clk>;
> > + interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
> > + };
>
> Trying this DTS on sa8775p-ride with next-20230209, I get this splat
> with the qcom_wdt:
>
> [ 2.667479] Internal error: synchronous external abort: 0000000096000010 [#1] PREEMPT SMP
> [ 2.675911] Modules linked in: qcom_wdt(+) crct10dif_ce socinfo fuse ipv6
> [ 2.675931] CPU: 5 PID: 155 Comm: systemd-udevd Not tainted 6.2.0-rc7-next-20230209-00011-g897899f9de9e #80
> [ 2.675936] Hardware name: Qualcomm SA8775P Ride (DT)
> [ 2.675938] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [ 2.675942] pc : qcom_wdt_probe+0x20c/0x388 [qcom_wdt]
> [ 2.675964] lr : qcom_wdt_probe+0x308/0x388 [qcom_wdt]
> [ 2.675970] sp : ffff80000a4db8e0
> [ 2.675971] x29: ffff80000a4db8e0 x28: 0000000000000000 x27: ffff80000a4dbd50
> [ 2.675975] x26: 0000000000000000 x25: ffff80000a4dbcd0 x24: ffff060041723680
> [ 2.675978] x23: ffff060040c2b400 x22: ffffdc111597c560 x21: ffff060040c2b410
> [ 2.675981] x20: ffff060040959e80 x19: 0000000000000000 x18: ffffffffffffffff
> [ 2.675984] x17: 0000000000000000 x16: ffffdc116777c59c x15: ffff80000a4db670
> [ 2.675987] x14: ffff80008a4db7cd x13: 007473696c5f7974 x12: 0000000000000001
> [ 2.675990] x11: 0000000000000040 x10: ffffdc1169893790 x9 : 0000000000000000
> [ 2.675994] x8 : ffff0600414ffd80 x7 : 0000000000000000 x6 : 0000000000000000
> [ 2.675997] x5 : ffff0600414ffc88 x4 : ffff060040c2b610 x3 : 0000000000007ffc
> [ 2.676001] x2 : 0000000000000001 x1 : 000000000000000c x0 : ffff800008f5d00c
> [ 2.676004] Call trace:
> [ 2.676006] qcom_wdt_probe+0x20c/0x388 [qcom_wdt]
> [ 2.676013] platform_probe+0x68/0xc4
> [ 2.676026] really_probe+0x148/0x2ac
> [ 2.676038] __driver_probe_device+0x78/0xe0
> [ 2.676042] driver_probe_device+0x3c/0x15c
> [ 2.676045] __driver_attach+0x94/0x19c
> [ 2.676048] bus_for_each_dev+0x74/0xcc
> [ 2.676052] driver_attach+0x24/0x30
> [ 2.676055] bus_add_driver+0x104/0x204
> [ 2.676059] driver_register+0x68/0x12c
> [ 2.676063] __platform_driver_register+0x28/0x34
> [ 2.676065] qcom_watchdog_driver_init+0x20/0x1000 [qcom_wdt]
> [ 2.676072] do_one_initcall+0x80/0x1c4
> [ 2.676081] do_init_module+0x58/0x1e8
> [ 2.676088] load_module+0x19d4/0x1a18
> [ 2.676091] __do_sys_finit_module+0xa8/0xfc
> [ 2.676095] __arm64_sys_finit_module+0x20/0x2c
> [ 2.676098] invoke_syscall+0x48/0x114
> [ 2.676107] el0_svc_common.constprop.0+0xcc/0xec
> [ 2.676110] do_el0_svc+0x38/0x98
> [ 2.676113] el0_svc+0x2c/0x84
> [ 2.676121] el0t_64_sync_handler+0xf4/0x120
> [ 2.676123] el0t_64_sync+0x190/0x194
> [ 2.676129] Code: f94002c1 f9006a81 b9400821 8b010000 (b9400000)
> [ 2.676135] ---[ end trace 0000000000000000 ]---
>
> I most likely did not see it before as I either had qcom_wdt configured
> out or disabled on the kernel cmdline.
>

On Bjorn's board I can probe the watchdog and even trigger it from
user-space (although it doesn't seem to reset the board, it just
freezes - not sure if that's not Bjorn's setup as rebooting the board
from console doesn't work either).

Can this be the hypervisor's doing?

Bart

[...]