Problem with regulator_shutdown() introduced in r331989
Emmanuel Vadot
manu at bidouilliste.com
Fri Apr 20 21:45:30 UTC 2018
On Sat, 7 Apr 2018 21:34:13 +0200
Milan Obuch <freebsd-arm at dino.sk> wrote:
> Hi,
>
> after some time with running slightly older sources based kernel I
> decided to upgrade, but current sources based kernel does not boot on
> Orange Pi Zero, maybe on other Allwinner based boards too, I did not
> test them. Problem manifests itself on console with following:
>
> Release APs
> CPU(3) applied BP hardening: not necessary
> CPU(1) applied BP hardening: not necessary
> CPU(2) applied BP hardening: not necessary
> WARNING: WITNESS option enabled, expect reduced performance.
> regulator: shuting down vcc3v0
> Trying to mount root from ufs:/dev/mmcsd0s2a [rw]...
> GEOM: new disk mmcsd0
> regulator: shuting down vcc5v0
> regulator: shuting down vcc-wifi
> mmc0: panic: Invalid enable count
> cpuid = 0
> time = 1
> KDB: stack backtrace:
> db_trace_self() at db_trace_self
> pc = 0xc03be8dc lr = 0xc00bba1c (db_trace_self_wrapper+0x30)
> sp = 0xc0713c90 fp = 0xc0713da8
> db_trace_self_wrapper() at db_trace_self_wrapper+0x30
> pc = 0xc00bba1c lr = 0xc01ea0d8 (vpanic+0x154)
> sp = 0xc0713db0 fp = 0xc0713dd0
> r4 = 0x00000100 r5 = 0x00000001
> r6 = 0xc0431ec1 r7 = 0xc0553cc8
> vpanic() at vpanic+0x154
> pc = 0xc01ea0d8 lr = 0xc01e9ed0 (doadump)
> sp = 0xc0713dd8 fp = 0xc0713dec
> r4 = 0xc0431ec1 r5 = 0xc0713df4
> r6 = 0x00000000 r7 = 0x00000000
> r8 = 0xc2df0400 r9 = 0xc053b988
> r10 = 0xc1b71e80
> doadump() at doadump
> pc = 0xc01e9ed0 lr = 0xc00cd9e8 (regnode_fixed_enable+0x150)
> sp = 0xc0713df4 fp = 0xc0713e20
> r4 = 0x00000000 r5 = 0xc1b71e80
> regnode_fixed_enable() at regnode_fixed_enable+0x150
> pc = 0xc00cd9e8 lr = 0xc00cbb60 (regnode_stop+0x1d4)
> sp = 0xc0713e28 fp = 0xc0713e48
> r4 = 0x00000000 r5 = 0xc2ded780
> r6 = 0xc2ded7b4 r7 = 0xc0504a00
> r8 = 0xc05cacc8 r9 = 0xc053b988
> r10 = 0xc05cabd0
> regnode_stop() at regnode_stop+0x1d4
> pc = 0xc00cbb60 lr = 0xc00cd2f0 (regulator_shutdown+0x9c)
> sp = 0xc0713e50 fp = 0xc0713e68
> r4 = 0xc0548a54 r5 = 0xc2ded780
> r6 = 0xc0431da6 r7 = 0xc0551c8c
> regulator_shutdown() at regulator_shutdown+0x9c
> pc = 0xc00cd2f0 lr = 0xc0189500 (mi_startup+0x18c)
> sp = 0xc0713e70 fp = 0xc0713e90
> r4 = 0xc05caccc r5 = 0x00000001
> r6 = 0xc053ac6c r7 = 0x00000000
> mi_startup() at mi_startup+0x18c
> pc = 0xc0189500 lr = 0xc0000244 (_start+0x144)
> sp = 0xc0713e98 fp = 0x00000000
> r4 = 0xc0000378 r5 = 0xc05e4000
> r6 = 0x42050680 r7 = 0x00c52078
> r8 = 0xc06dc000 r9 = 0x00000002
> r10 = 0x01c28000
> _start() at _start+0x144
> pc = 0xc0000244 lr = 0xc0000244 (_start+0x144)
> sp = 0xc0713e98 fp = 0x00000000
> KDB: enter: panic
> [ thread pid 0 tid 100000 ]
> Stopped at $d.3: ldrb r15, [r15, r15, ror r15]!
> db>
>
> I can override it with either manually entering
>
> set hw.regulator.disable_unused=0
>
> on loader prompt, or putting line
>
> hw.regulator.disable_unused=0
>
> into /boot/loader.conf file.
>
> Either way, system boots then normally and works as expected. Has
> anybody any explanation what's going on? What purpose does this
> function actually serve? Reading source, disabling unused regulatos
> looks like a way to conserve power, but I am not sure if I think about
> it the right way. Anyway, something is wrong - why has mmc0 invalid
> enable count? Looks strange to me...
>
> Regards,
> Milan
> _______________________________________________
> freebsd-arm at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"
Hi,
r332843 should fix this problem.
Cheers,
--
Emmanuel Vadot <manu at bidouilliste.com> <manu at freebsd.org>
More information about the freebsd-arm
mailing list