Date: Mon, 6 Jul 2020 08:51:40 +0300 From: Daniel Braniss <danny@cs.huji.ac.il> To: Emmanuel Vadot <manu@bidouilliste.com> Cc: =?utf-8?Q?Manuel_St=C3=BChn?= <freebsdnewbie@freenet.de>, "freebsd-arm@freebsd.org" <arm@freebsd.org> Subject: Re: allwinner/i2c interrupt storm detected Message-ID: <6CEF2B3D-FDC1-4EBC-80A8-42C5E9A356FC@cs.huji.ac.il> In-Reply-To: <20200705191435.c9c65caf64026ee881020f3a@bidouilliste.com> References: <10ACCB56-E18D-4102-B4E2-094157854AB7@cs.huji.ac.il> <20200704122944.64723bbb606d6e73128d2568@freenet.de> <E315DAED-3BDB-44CB-83D8-B8400BD4951F@cs.huji.ac.il> <20200705191435.c9c65caf64026ee881020f3a@bidouilliste.com>
index | next in thread | previous in thread | raw e-mail
> On 5 Jul 2020, at 20:14, Emmanuel Vadot <manu@bidouilliste.com> wrote: > > > Hi Daniel, Manuel, > > On Sat, 4 Jul 2020 13:45:50 +0300 > Daniel Braniss <danny@cs.huji.ac.il <mailto:danny@cs.huji.ac.il>> wrote: > >> >> >>> On 4 Jul 2020, at 13:29, Manuel Stühn <freebsdnewbie@freenet.de> wrote: >>> >>> On Tue, 30 Jun 2020 16:01:41 +0300 >>> Daniel Braniss <danny@cs.huji.ac.il <mailto:danny@cs.huji.ac.il>> wrote: >>> >>>> Hi, >>>> >>>> after a long time I decided to try and upgrade to stable 12.1 r362793 since I saw some changes where done >>>> with respect to the DTS and twsi.c, >>>> >>>> if nothing is connected to the i2c, i2c -s just hangs, >>>> >>>> if something is connected this is what i get on the console after typing ?i2c -s? >>>> >>>> >>>> Hardware may not support START/STOP scanning; trinterrupt storm detected on "gic0,s6:"; throttling interrupt source >>>> ying less-reliable read method. >>>> interrupt storm detected on "gic0,s6:"; throttling interrupt source >>>> interrupt storm detected on "gic0,s6:"; throttling interrupt source >>>> ? >>>> >>>> and >>>> neo-04> vmstat -i >>>> interrupt total rate >>>> gic0,p13:-ic_timer0 16052 164 >>>> gic0,s0: uart2 318 3 >>>> gic0,s6: iichb0 13034 133 >>>> gic0,s60: aw_mmc0 1293 13 >>>> gic0,s82: awg0 334 3 >>>> gic0,s120: pmu0 49725 509 >>>> cpu0:rendezvous 18 0 >>>> cpu1:rendezvous 50 1 >>>> cpu2:rendezvous 51 1 >>>> cpu3:rendezvous 40 0 >>>> cpu0:preempt 2691 28 >>>> cpu1:preempt 3165 32 >>>> cpu2:preempt 2778 28 >>>> cpu3:preempt 2986 31 >>>> cpu0:hardclock 15 0 >>>> Total 92550 946 >>>> >>>> >>>> the hardware is an NanoPi Neo >>>> ---<<BOOT>>--- >>>> KDB: debugger backends: ddb >>>> KDB: current backend: ddb >>>> Copyright (c) 1992-2020 The FreeBSD Project. >>>> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 >>>> The Regents of the University of California. All rights reserved. >>>> FreeBSD is a registered trademark of The FreeBSD Foundation. >>>> FreeBSD 12.1-STABLE #0 r362793M: Tue Jun 30 11:39:11 IDT 2020 >>>> danny@nrnd:/home/obj/nrnd/arm/neo/vol/rnd/stable/12/arm.armv7/sys/AWGEN arm >>>> FreeBSD clang version 10.0.0 (git@github.com <mailto:git@github.com>:llvm/llvm-project.git llvmorg-10.0.0-0-gd32170dbd5b) >>>> VT: init without driver. >>>> No PSCI/SMCCC call function found >>>> CPU: ARM Cortex-A7 r0p5 (ECO: 0x00000000) >>>> ? >>>> >>> >>> I do not have a IRQ-Storm on my NanoPI NEO2, but a "i2s -s" does never return. Commit v356609 broke i2c-support on my hardware (reverting this single commit fixed it, bugreport filed: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247576 <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247576>). >>> >>> Perhaps it is worth a try for you also to revert this commit and test again... >>> >> >> before the latest changes it works fine, and if you add my patch to it, i2s -s will not hang: >> >>> -- twsi.c (revision 346538) >>> +++ twsi.c (working copy) >>> @@ -458,8 +458,15 @@ >>> if (sc->msg->len == 1) >>> sc->control_val &= ~TWSI_CONTROL_ACK; >>> TWSI_WRITE(sc, sc->reg_control, sc->control_val | TWSI_CONTROL_START); >>> - while (sc->error == 0 && sc->transfer != 0) { >>> - pause_sbt("twsi", SBT_1MS * 30, SBT_1MS, 0); >>> + { >>> + int count = 10; >>> + while (sc->error == 0 && sc->transfer != 0) { >>> + pause_sbt("twsi", SBT_1MS * 30, SBT_1MS, 0); >>> + if(count-- == 0) { >>> + sc->error = EDEADLK; >>> + break; >>> + } >>> + } >>> } >>> >>> debugf(dev, "Done with msg[%d]\n", i); >> >> >> cheers, >> danny >> >>> >>> BR >>> Manuel > > Could you test the patch I've just attached to > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247576 <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247576> please ? > > It doesn't fix everything and I'm still working on doing test on a lot > of different boards but this is clearly needed. > > -- > Emmanuel Vadot <manu@bidouilliste.com <mailto:manu@bidouilliste.com>> <manu@freebsd.org <mailto:manu@freebsd.org>> short version: it works! longer version: first tried with debugging on - worked next tried with no debugging- worked the next test will take some time, trying my app. if I feel up to it, i can try on a neopi neo2 - but that will take longer. thanks Manu!!!! dannyhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6CEF2B3D-FDC1-4EBC-80A8-42C5E9A356FC>
