Disabling internal RTC ends up in hang

Johnny Sorocil jsorocil at gmail.com
Fri Aug 21 10:25:19 UTC 2020


On Wed, Aug 19, 2020 at 7:55 PM Ian Lepore <ian at freebsd.org> wrote:

> I think you may be running into a problem Andriy (avg@) described on
> irc the other day:  the allwinner RTC hardware has no way to detect
> whether it lost power, so it always supplies the time, even if it's
> incorrect.  When there are multiple RTCs in the system, the kernel asks
> them in the order they registered until one provides the time.
>
> I suspect the panic is happening because the internal RTC also provides
> the system 32khz clock, which is needed by other devices.
>
> He cooked up this patch: http://paste.ubuntu.com/p/6hhtQbJC85/
>
> With that patch in place, the 32khz clock would be available, but the
> RTC would not supply the time unless it was correct.
>

 Attempt #1:
Booting GENERIC kernel and loading patched "aw_rtc.ko"
- already present in kernel
- system date not correct

Attempt #2:
Booting custom kernel with option "nodevice aw_rtc" and loading patched
"aw_rtc.ko"
- same panic & hang as in previous message

Attempt #3:
Booting GENERIC kernel which has builtin patched "aw_rtc":

mmc0: No compatible cards found on bus
aw_mmc1: Spurious interrupt - no active request, rint: 0x00000004

mmc1: <MMC/SD bus> on aw_mmc0
Cannot set frequency for clk: mmc0, error: 34
aw_mmc0: failed to set frequency to 50000000 Hz: 34
uhub2: 1 port with 1 removable, self powered
uhub0: 1 port with 1 removable, self powered
ugen2.2: <Realtek 802.11n NIC> at usbus2
mountroot: waiting for device /dev/ufs/rootfs...
Mounting from ufs:/dev/ufs/rootfs failed with error 19.

Loader variables:
  vfs.root.mountfrom=ufs:/dev/ufs/rootfs
  vfs.root.mountfrom.options=rw

Manual root filesystem specification:
  <fstype>:<device> [options]
      Mount <device> using filesystem <fstype>
      and with the specified (optional) option list.

    eg. ufs:/dev/da0s1a
        zfs:zroot/ROOT/default
        cd9660:/dev/cd0 ro
          (which is equivalent to: mount -t cd9660 -o ro /dev/cd0 /)

  ?               List valid disk boot devices
  .               Yield 1 second (for background tasks)
  <empty line>    Abort manual input

mountroot> aw_mmc0: controller timeout
aw_mmc0: timeout resetting DMA/FIFO
aw_mmc0: timeout updating clock
aw_mmc0: controller timeout
aw_mmc0: timeout resetting DMA/FIFO
aw_mmc0: timeout updating clock
aw_mmc0: controller timeout
aw_mmc0: timeout resetting DMA/FIFO


More information about the freebsd-arm mailing list