[Bug 278352] Post-12.4 updates to DTB break Banana Pi M3

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 13 Apr 2024 23:28:38 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278352

            Bug ID: 278352
           Summary: Post-12.4 updates to DTB break Banana Pi M3
           Product: Base System
           Version: 15.0-CURRENT
          Hardware: arm
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: arm
          Assignee: freebsd-arm@FreeBSD.org
          Reporter: jfc@mit.edu

FreeBSD 12.4 runs on a Banana Pi M3 (Allwinner A83T).  13.3, 14.0, and 15.0
have some device tree and interrupt related errors and shut down in 30 seconds
to a few minutes allegedly due to overheating.  I don't believe the chip is
really overheating.  There is no load, the CPUs are running at 400 MHz, and the
chip doesn't feel hot.

The difference in behavior is driven by the version of
dtb/sun8i-a83t-bananapi-m3.dtb on the MSDOS boot partition, not the kernel
version or the UFS /boot directory.  I booted 14.0 with the old DTB and it
worked.  With the newer DTB it failed.  While this DTB depends on several
files, the culprit for the thermal shutdown looks like extra nodes in the
"thermal-zones" section of sun8i-a83t.dtsi added in commit
c66ec88fed842fbaad62c30d510644ceb7bd2d71 in 2021.  See also commit
937eaf8bbdcf7e2cd3231b71940f9221e6857210 "Import DTS files from Linux 5.6".

Some of the messages with the newer DTB:

Nov 10 09:58:53 generic kernel: axp8xx_pmu0: <X-Powers AXP813 Power Management
Unit> at addr 0x746 irq 45 on iicbus0
Nov 10 09:58:53 generic kernel: gic0: unsupported trigger/polarity
configuration 0x08
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: regulator_parse_ofw_stdparam:
Missing regulator name
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: cannot attach regulator dldo2
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: regulator_parse_ofw_stdparam:
Missing regulator name
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: cannot attach regulator dldo4
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: regulator_parse_ofw_stdparam:
Missing regulator name
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: cannot attach regulator eldo1
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: regulator_parse_ofw_stdparam:
Missing regulator name
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: cannot attach regulator eldo2
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: regulator_parse_ofw_stdparam:
Missing regulator name
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: cannot attach regulator eldo3
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: regulator_parse_ofw_stdparam:
Missing regulator name
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: cannot attach regulator ldo-io0
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: regulator_parse_ofw_stdparam:
Missing regulator name
Nov 10 09:58:53 generic kernel: axp8xx_pmu0: cannot attach regulator ldo-io1
Nov 10 09:58:53 generic kernel: gic0: unsupported trigger/polarity
configuration 0x08
Nov 10 09:58:53 generic kernel: gpiobus2: <OFW GPIO bus> on axp8xx_pmu0
Nov 10 09:58:53 generic kernel: mmc_pwrseq0: <MMC Simple Power sequence> on
ofwbus0
Nov 10 09:58:53 generic kernel: mmc_pwrseq0: Node have a clocks property but no
clocks named "ext_clock"
Nov 10 09:58:53 generic kernel: device_attach: mmc_pwrseq0 attach returned 6
Nov 10 09:58:53 generic kernel: mmc_pwrseq0: <MMC Simple Power sequence> on
ofwbus0
Nov 10 09:58:53 generic kernel: mmc_pwrseq0: Node have a clocks property but no
clocks named "ext_clock"
Nov 10 09:58:53 generic kernel: device_attach: mmc_pwrseq0 attach returned 6

and finally, hundreds of

aw_thermal0: WARNING - current temperature exceeds safe limits

before the system powers itself off.

Sometimes the aw_thermal0 message alternates with

gic0: Spurious interrupt detected: last irq: 32 on CPU1

The interrupt number varies.

-- 
You are receiving this mail because:
You are the assignee for the bug.