History log of /openbsd-current/sys/arch/macppc/dev/smu.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.35 13-Mar-2022 mpi

Constify struct cfattach.

ok miod@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.34 08-Oct-2019 cheloha

macppc: mediabay(4), smu(4), xlights(4): tsleep(9) -> tsleep_nsec(9)

This diff completely converts sys/arch/macppc to *sleep_nsec(9).

Also convert dev/thermal.c while we're down here. Unsure what that
file's driver's name is, if any.

ok kn@ visa@


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.33 29-May-2016 mglocker

Add support for new smu-firmware fan commands. This fixes wrong sysctl
hw.sensors fan values seen on macppc models with a new smu-firmware.

Help and ok kettenis


# 1.32 20-May-2016 mglocker

Hook up smu(4) to the thermal management framework.

ok kettenis


# 1.31 14-May-2016 mglocker

Move rpm read to a own function analog pwm read. No functional change.

ok kettenis


# 1.30 14-May-2016 mglocker

Add support for pwm fans.

ok kettenis


# 1.29 14-May-2016 mglocker

Return correct rpm values for all fans.

ok kettenis


# 1.28 04-May-2016 mpi

Fall back to "safe-value" when "unmanage-value" is not evailable to
configure fan speeds.

from mglocker@, ok kettenis@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.27 04-Jun-2015 kettenis

The (no quite so) new kernel perfpolicy code calls cpu_setperf() from a
timeout. Unfortunately the smu(4) CPU voltage slewing code sleeps, which
causes a kernel panic. Prevent this by delegating the CPU frequency switching
and voltage slewing to a task.

ok mpi@


Revision tags: OPENBSD_5_7_BASE
# 1.26 08-Oct-2014 deraadt

#ifdef SMALL_KERNEL some sensor blocks; ok miod


# 1.25 30-Aug-2014 mpi

Bump the fan limit and avoid a panic on my quad G5.


Revision tags: OPENBSD_5_6_BASE
# 1.24 29-Mar-2014 guenther

It's been a quarter century: we can assume volatile is present with that name.

ok dlg@ mpi@ deraadt@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.23 15-May-2011 mpi

Unify various gpio access using methods that take an offset relative to the
mac-io bus base address. Needed by upcoming dfs(4) support.

On some Apple machines, the openfirmware returns a gpio offset relative to
the gpio controller (generaly at 0x50). These offsets should be corrected
to be relative to the bus base address.

looks fine to kettenis@, ok miod@


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.22 12-Aug-2009 kettenis

Apple is hopelessly inconsistent with their firmware, so some machines have
an extra smu-i2c-control node where others don't. Handle the difference.
Makes the PowerMac9,1 actually find some i2c devices.


# 1.21 12-Aug-2009 kettenis

Add support for the "Slots Power" sensor on the PowerMac9,1.


# 1.20 11-Aug-2009 kettenis

The PowerMac9,1 has 4 sensors on its smu(4), so increase the maximum number.
Also add a check for the maximum number of sensors like we already have for
the number of fans such that we avoid mysterious hangs on machines with
more than 4 sensors.


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.19 20-May-2007 thib

lockmgr -> rwlock for piic(4), kiic(4) and smu(4);
smu(4) tested by kettenis@, ok krw@


# 1.18 22-Apr-2007 deraadt

better interrupt names for vmstat -iz; ok miod gwk


# 1.17 22-Mar-2007 deraadt

split userland & kernel struct sensor/sensordev so that the addition
of new fields in the future is less disruptive. This is done similar
to how struct proc is handled for ps(1). ok jmc (man page changes)
tested fkr simon, and more suggestions from millert


# 1.16 14-Mar-2007 kettenis

Make SMU sensors and fan control work on PowerMac8,1.

tested by Alastair Poole.


Revision tags: OPENBSD_4_1_BASE
# 1.15 01-Mar-2007 kettenis

On the first generation iMac G5 (PowerMac8,1) the fans node is called
rpm-fans.


# 1.14 01-Mar-2007 kettenis

Don't attach sensors and iic(4) if we didn't find any fans.
Tickling the SMU when we don't set the fans running is bad since this
prevents the fans to spin up automatically causing the machine to overheat.


# 1.13 23-Dec-2006 deraadt

adapt to new two-level sensor api; Constantine A. Murenin


Revision tags: OPENBSD_4_0_BASE
# 1.12 20-Mar-2006 kettenis

Don't forget to unlock of reading the RTC fails.
Should fix panic on iMac G5 (iSight).


Revision tags: OPENBSD_3_9_BASE
# 1.11 19-Jan-2006 grange

Replace SENSOR_ADD() macro with a pair of functions
sensor_add()/sensor_del() so that sensors can be attached
and detached dynamicaly.

ok kettenis@ deraadt@ dlg@


# 1.10 01-Jan-2006 deraadt

switch from macppc-specific maciic(4) driver to the generic iic(4),
after teaching it to use a function pointer to get back to the OFW
scan.. this will also help the sparc64 later; ok kettenis


# 1.9 09-Dec-2005 kettenis

Add support for cpu voltage slewing.


# 1.8 19-Nov-2005 pedro

Remove unnecessary lockmgr() archaism that was costing too much in terms
of panics and bugfixes. Access curproc directly, do not expect a process
pointer as an argument. Should fix many "process context required" bugs.
Incentive and okay millert@, okay marc@. Various testing, thanks.


# 1.7 15-Nov-2005 dlg

turn if else if else if into a switch statement.

tested and ok kettenis@


# 1.6 13-Nov-2005 kettenis

Use name of device driver as wmesg for lock.


# 1.5 11-Nov-2005 kettenis

Add i2c controller support.


# 1.4 11-Nov-2005 kettenis

Switch to sensors thread.


# 1.3 23-Oct-2005 kettenis

Preliminary sensors support for iMac G5.


# 1.2 21-Oct-2005 kettenis

Clean up RTC code.
ok drahn@


# 1.1 19-Oct-2005 kettenis

Add smu(4).
ok drahn@


# 1.34 08-Oct-2019 cheloha

macppc: mediabay(4), smu(4), xlights(4): tsleep(9) -> tsleep_nsec(9)

This diff completely converts sys/arch/macppc to *sleep_nsec(9).

Also convert dev/thermal.c while we're down here. Unsure what that
file's driver's name is, if any.

ok kn@ visa@


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.33 29-May-2016 mglocker

Add support for new smu-firmware fan commands. This fixes wrong sysctl
hw.sensors fan values seen on macppc models with a new smu-firmware.

Help and ok kettenis


# 1.32 20-May-2016 mglocker

Hook up smu(4) to the thermal management framework.

ok kettenis


# 1.31 14-May-2016 mglocker

Move rpm read to a own function analog pwm read. No functional change.

ok kettenis


# 1.30 14-May-2016 mglocker

Add support for pwm fans.

ok kettenis


# 1.29 14-May-2016 mglocker

Return correct rpm values for all fans.

ok kettenis


# 1.28 04-May-2016 mpi

Fall back to "safe-value" when "unmanage-value" is not evailable to
configure fan speeds.

from mglocker@, ok kettenis@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.27 04-Jun-2015 kettenis

The (no quite so) new kernel perfpolicy code calls cpu_setperf() from a
timeout. Unfortunately the smu(4) CPU voltage slewing code sleeps, which
causes a kernel panic. Prevent this by delegating the CPU frequency switching
and voltage slewing to a task.

ok mpi@


Revision tags: OPENBSD_5_7_BASE
# 1.26 08-Oct-2014 deraadt

#ifdef SMALL_KERNEL some sensor blocks; ok miod


# 1.25 30-Aug-2014 mpi

Bump the fan limit and avoid a panic on my quad G5.


Revision tags: OPENBSD_5_6_BASE
# 1.24 29-Mar-2014 guenther

It's been a quarter century: we can assume volatile is present with that name.

ok dlg@ mpi@ deraadt@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.23 15-May-2011 mpi

Unify various gpio access using methods that take an offset relative to the
mac-io bus base address. Needed by upcoming dfs(4) support.

On some Apple machines, the openfirmware returns a gpio offset relative to
the gpio controller (generaly at 0x50). These offsets should be corrected
to be relative to the bus base address.

looks fine to kettenis@, ok miod@


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.22 12-Aug-2009 kettenis

Apple is hopelessly inconsistent with their firmware, so some machines have
an extra smu-i2c-control node where others don't. Handle the difference.
Makes the PowerMac9,1 actually find some i2c devices.


# 1.21 12-Aug-2009 kettenis

Add support for the "Slots Power" sensor on the PowerMac9,1.


# 1.20 11-Aug-2009 kettenis

The PowerMac9,1 has 4 sensors on its smu(4), so increase the maximum number.
Also add a check for the maximum number of sensors like we already have for
the number of fans such that we avoid mysterious hangs on machines with
more than 4 sensors.


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.19 20-May-2007 thib

lockmgr -> rwlock for piic(4), kiic(4) and smu(4);
smu(4) tested by kettenis@, ok krw@


# 1.18 22-Apr-2007 deraadt

better interrupt names for vmstat -iz; ok miod gwk


# 1.17 22-Mar-2007 deraadt

split userland & kernel struct sensor/sensordev so that the addition
of new fields in the future is less disruptive. This is done similar
to how struct proc is handled for ps(1). ok jmc (man page changes)
tested fkr simon, and more suggestions from millert


# 1.16 14-Mar-2007 kettenis

Make SMU sensors and fan control work on PowerMac8,1.

tested by Alastair Poole.


Revision tags: OPENBSD_4_1_BASE
# 1.15 01-Mar-2007 kettenis

On the first generation iMac G5 (PowerMac8,1) the fans node is called
rpm-fans.


# 1.14 01-Mar-2007 kettenis

Don't attach sensors and iic(4) if we didn't find any fans.
Tickling the SMU when we don't set the fans running is bad since this
prevents the fans to spin up automatically causing the machine to overheat.


# 1.13 23-Dec-2006 deraadt

adapt to new two-level sensor api; Constantine A. Murenin


Revision tags: OPENBSD_4_0_BASE
# 1.12 20-Mar-2006 kettenis

Don't forget to unlock of reading the RTC fails.
Should fix panic on iMac G5 (iSight).


Revision tags: OPENBSD_3_9_BASE
# 1.11 19-Jan-2006 grange

Replace SENSOR_ADD() macro with a pair of functions
sensor_add()/sensor_del() so that sensors can be attached
and detached dynamicaly.

ok kettenis@ deraadt@ dlg@


# 1.10 01-Jan-2006 deraadt

switch from macppc-specific maciic(4) driver to the generic iic(4),
after teaching it to use a function pointer to get back to the OFW
scan.. this will also help the sparc64 later; ok kettenis


# 1.9 09-Dec-2005 kettenis

Add support for cpu voltage slewing.


# 1.8 19-Nov-2005 pedro

Remove unnecessary lockmgr() archaism that was costing too much in terms
of panics and bugfixes. Access curproc directly, do not expect a process
pointer as an argument. Should fix many "process context required" bugs.
Incentive and okay millert@, okay marc@. Various testing, thanks.


# 1.7 15-Nov-2005 dlg

turn if else if else if into a switch statement.

tested and ok kettenis@


# 1.6 13-Nov-2005 kettenis

Use name of device driver as wmesg for lock.


# 1.5 11-Nov-2005 kettenis

Add i2c controller support.


# 1.4 11-Nov-2005 kettenis

Switch to sensors thread.


# 1.3 23-Oct-2005 kettenis

Preliminary sensors support for iMac G5.


# 1.2 21-Oct-2005 kettenis

Clean up RTC code.
ok drahn@


# 1.1 19-Oct-2005 kettenis

Add smu(4).
ok drahn@


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.33 29-May-2016 mglocker

Add support for new smu-firmware fan commands. This fixes wrong sysctl
hw.sensors fan values seen on macppc models with a new smu-firmware.

Help and ok kettenis


# 1.32 20-May-2016 mglocker

Hook up smu(4) to the thermal management framework.

ok kettenis


# 1.31 14-May-2016 mglocker

Move rpm read to a own function analog pwm read. No functional change.

ok kettenis


# 1.30 14-May-2016 mglocker

Add support for pwm fans.

ok kettenis


# 1.29 14-May-2016 mglocker

Return correct rpm values for all fans.

ok kettenis


# 1.28 04-May-2016 mpi

Fall back to "safe-value" when "unmanage-value" is not evailable to
configure fan speeds.

from mglocker@, ok kettenis@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.27 04-Jun-2015 kettenis

The (no quite so) new kernel perfpolicy code calls cpu_setperf() from a
timeout. Unfortunately the smu(4) CPU voltage slewing code sleeps, which
causes a kernel panic. Prevent this by delegating the CPU frequency switching
and voltage slewing to a task.

ok mpi@


Revision tags: OPENBSD_5_7_BASE
# 1.26 08-Oct-2014 deraadt

#ifdef SMALL_KERNEL some sensor blocks; ok miod


# 1.25 30-Aug-2014 mpi

Bump the fan limit and avoid a panic on my quad G5.


Revision tags: OPENBSD_5_6_BASE
# 1.24 29-Mar-2014 guenther

It's been a quarter century: we can assume volatile is present with that name.

ok dlg@ mpi@ deraadt@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.23 15-May-2011 mpi

Unify various gpio access using methods that take an offset relative to the
mac-io bus base address. Needed by upcoming dfs(4) support.

On some Apple machines, the openfirmware returns a gpio offset relative to
the gpio controller (generaly at 0x50). These offsets should be corrected
to be relative to the bus base address.

looks fine to kettenis@, ok miod@


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.22 12-Aug-2009 kettenis

Apple is hopelessly inconsistent with their firmware, so some machines have
an extra smu-i2c-control node where others don't. Handle the difference.
Makes the PowerMac9,1 actually find some i2c devices.


# 1.21 12-Aug-2009 kettenis

Add support for the "Slots Power" sensor on the PowerMac9,1.


# 1.20 11-Aug-2009 kettenis

The PowerMac9,1 has 4 sensors on its smu(4), so increase the maximum number.
Also add a check for the maximum number of sensors like we already have for
the number of fans such that we avoid mysterious hangs on machines with
more than 4 sensors.


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.19 20-May-2007 thib

lockmgr -> rwlock for piic(4), kiic(4) and smu(4);
smu(4) tested by kettenis@, ok krw@


# 1.18 22-Apr-2007 deraadt

better interrupt names for vmstat -iz; ok miod gwk


# 1.17 22-Mar-2007 deraadt

split userland & kernel struct sensor/sensordev so that the addition
of new fields in the future is less disruptive. This is done similar
to how struct proc is handled for ps(1). ok jmc (man page changes)
tested fkr simon, and more suggestions from millert


# 1.16 14-Mar-2007 kettenis

Make SMU sensors and fan control work on PowerMac8,1.

tested by Alastair Poole.


Revision tags: OPENBSD_4_1_BASE
# 1.15 01-Mar-2007 kettenis

On the first generation iMac G5 (PowerMac8,1) the fans node is called
rpm-fans.


# 1.14 01-Mar-2007 kettenis

Don't attach sensors and iic(4) if we didn't find any fans.
Tickling the SMU when we don't set the fans running is bad since this
prevents the fans to spin up automatically causing the machine to overheat.


# 1.13 23-Dec-2006 deraadt

adapt to new two-level sensor api; Constantine A. Murenin


Revision tags: OPENBSD_4_0_BASE
# 1.12 20-Mar-2006 kettenis

Don't forget to unlock of reading the RTC fails.
Should fix panic on iMac G5 (iSight).


Revision tags: OPENBSD_3_9_BASE
# 1.11 19-Jan-2006 grange

Replace SENSOR_ADD() macro with a pair of functions
sensor_add()/sensor_del() so that sensors can be attached
and detached dynamicaly.

ok kettenis@ deraadt@ dlg@


# 1.10 01-Jan-2006 deraadt

switch from macppc-specific maciic(4) driver to the generic iic(4),
after teaching it to use a function pointer to get back to the OFW
scan.. this will also help the sparc64 later; ok kettenis


# 1.9 09-Dec-2005 kettenis

Add support for cpu voltage slewing.


# 1.8 19-Nov-2005 pedro

Remove unnecessary lockmgr() archaism that was costing too much in terms
of panics and bugfixes. Access curproc directly, do not expect a process
pointer as an argument. Should fix many "process context required" bugs.
Incentive and okay millert@, okay marc@. Various testing, thanks.


# 1.7 15-Nov-2005 dlg

turn if else if else if into a switch statement.

tested and ok kettenis@


# 1.6 13-Nov-2005 kettenis

Use name of device driver as wmesg for lock.


# 1.5 11-Nov-2005 kettenis

Add i2c controller support.


# 1.4 11-Nov-2005 kettenis

Switch to sensors thread.


# 1.3 23-Oct-2005 kettenis

Preliminary sensors support for iMac G5.


# 1.2 21-Oct-2005 kettenis

Clean up RTC code.
ok drahn@


# 1.1 19-Oct-2005 kettenis

Add smu(4).
ok drahn@