PowerMac G5 running 11-current kernel fails to read temperature sensors

Andreas Tobler andreast-list at fgznet.ch
Wed Nov 4 16:46:58 UTC 2015


On 04.11.15 08:32, Jukka Ukkonen wrote:
>
> Hello all,
>
> Just a quick question... Has anyone else tried to build
> a ppc64 (GENERIC64) kernel locally on a PowerMac G5
> during the last month or so?
>
> When booting the CD snapshot kernel of Oct 2nd there
> are no worries. Then again when I try to use a locally built
> kernel using the latest sources from head, the system starts
> complaining about I2C read errors and errors when trying to
> read max6690 sensors. Those complaints repeat about
> 5 times after which the system powers down automatically.
> There is no genuine risk of overheating, though.
> When running the snapshot kernel of Oct 2nd the CPU
> sensors show temperatures around 45-50 C. All of the
> other sensors including the two max6690 sensors show
> values in the range of 25-45 C.
>
> When using the older snapshot kernel all of the temperature
> sensors are visible in "sysctl dev" output.
> When using the latest and greatest locally built kernel trying
> the same sysctl only hangs when it triggers reading of those
> sensors while I get to watch the complaints about I2C read
> failures.
>
> With the older snapshot kernel the fans keep operating at
> relatively slow speeds. With the locally built latest and greatest
> kernel the fans keep adding rpms step by step to plain crazy
> speeds until the system powers down.
>
> Does this ring any bells? Have there been any changes to
> the I2C drivers or temperature sensor drivers during the last
> month or so? Is there something I should try to inspect the
> issue further?
>

Use this for now, I prepare a patch which distinguishes between 7-bit 
and 8-bit addresses.

Hth,

Andreas

Index: sys/dev/ofw/ofw_iicbus.c
===================================================================
--- sys/dev/ofw/ofw_iicbus.c	(revision 290233)
+++ sys/dev/ofw/ofw_iicbus.c	(working copy)
@@ -151,7 +151,7 @@
  		 * OFW uses 7-bit I2C address format (see ePAPR),
  		 * but system expect 8-bit.
  		 */
-		dinfo->opd_dinfo.addr = paddr << 1;
+		dinfo->opd_dinfo.addr = paddr;
  		if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, child) !=
  		    0) {
  			free(dinfo, M_DEVBUF);





More information about the freebsd-ppc mailing list