LongRun support driver for FreeBSD

You are the   th Crusoe user(?).

2001.6.27 First version

Japanese version is here.


 

Here is the page of driver supporting longrun,
which is Transmeta Crusoe's power management feature, on FreeBSD.

With this driver, the followings become possible.
Configuring operation mode of LongRun
Getting current operating frequency and voltage

You can use sysctl(8) utility to utilize them.

Development goes on FreeBSD 4.3-RC1 and 4.3-STABLE.
However, I am afraid that this driver works normally
even on earlier version of FreeBSD without major change (unconfirmed).
Also it probably works on 5.0-CURRENT(Not tested after May, 2001).

ALi M5451 audio device support driver is here!


CAUTION!

You can use this driver only under the BSD license.
Please read the BSD license carefully.

Currently, this driver is tentativeness version.
So, please inform me when redistributing this driver.



This driver adds following 4 MIBs and can utilize it.
  
hw.crusoe.longrun Mode of LongRun
    0: Operating in minimum frequency
    1: Operating in variable frequency (power-saving oriented)
    2: Operating in variable frequency (performance oriented)
    3: Operating in maximum frequency
hw.crusoe.frequency Current operating frequency [MHz]
hw.crusoe.voltage Current operating voltage [mV]
hw.crusoe.percentage Processing performance [%]
    Operating at maximum frequency: 100
    Operating at minimum frequency: 0

If you want to get current status, type sysctl hw.crusoe.
When you want to set LongRun mode, type sysctl -w hw.crusoe.longrun=2.
(in this case, LongRun mode is set to performance oriented variable frequency mode).
I also provides configuring tool(see below).



Distributions

kernel module: longrun-ports-2001.06.22.tar.gz
configuring tool: longrunctl-ports-2001.06.22.tar.gz



How to install kernel module?

  1. cd /usr/ports/sysutils
  2. tar zxvf SOMEWHERE/longrun-ports-YYYY.MM.DD.tar.gz
  3. cd longrun
  4. make install

*With procedure mentioned above, "longrun.ko" is installed in /usr/local/modules.
In addition, "longrun.h" is installed in /usr/local/include.
"longrun.sh" is copied to /usr/local/etc/rc.d.
Accordingly, "longrun.ko" will load automatically from the next start up time.



How to install configuration tool?

  1. cd /usr/ports/sysutils
  2. tar zxvf SOMEWHERE/longrunctl-ports-YYYY.MM.DD.tar.gz
  3. cd longrunctl
  4. make install

*With procedure mentioned above, "longrunctl" is installed in /usr/local/sbin.



How to use configuration tool?


usage: longrunctl [-i interval] [-c count] keyword [mode]

Because I made this tool for testing, options are the cutting corners....
About semantics of argument keyword as follows.

getmode Get current LongRun mode
getstat Get current operating frequency and voltage
setmode Configuring LongRun mode
    0: minimum frequency
    1: variable frequency (power-saving oriented)
    2: variable frequency (performance oriented)
    3: maximum frequency
monitor Monitoring operating frequency and voltage
  Can appoint time interval to monitor with '-i' option with second unit.
  Can appoint number of times to monitor with '-c' option.
  If '-c' option is not specified, it monitoring eternally.


For example, in order to set LongRun mode in "minimum frequency", type

longrunctl setmode 0.



Digression

In case of Cassiopeia FIVA MPC-206, LongRun mode in power-on is
"variable frequency (power-saving oriented)".
LongRun feature works automatically without supports by OSes,
so it is the purpose of this driver and configuration tool
that configuring LongRun mode and monitoring current operating frequency.
Perhaps most usage will be the following:
"setting LongRun mode to minimum frequency mode
in order to keep battery for a long time".

Acknowledgement

I referred to Mr.Iizuka's work, "LongRun Setting Utility for C1VJ".
In addition, this tool made possible using Windows2000
on Cassiopeia FIVA MPC-206 comfortably.

I am grateful for the following people,
Mr.Iwasaki (for his idea that use 'sysctl'),
Mr.Shimokawa (for his patches related to attach/detach),
Mr.Tominaga (for his patches for longrunctl.c).
I thank their opinion and trial,
Mr.Kon'no, Mr.Nishizawa, Mr.Teramoto, Mr.Tokuda, Mr.Tsutikama,
and all members of BSD-nomads ML.

I thank the editing team of the magazine "FreeBSD PRESS" (publishing by
MAINICHI Communications) that introduced this driver, too.

Of course, I thank you who use this software.
Thank you.



Copyright(c) 2001 Tamotsu HATTORI