Scroll to navigation

nvram-wakeup.conf(5) NVRAM WakeUp nvram-wakeup.conf(5)

NAME

nvram-wakeup.conf - the configuration file for NVRAM WakeUp.

DESCRIPTION

This file can be passed to the program NVRAM WakeUp (seenvram-wakeup(8)for more information) via the--configfileoption.

It might look as follows:

# nvram-wakeup.conf
#
#  This is an example configuration for MSI MS-6351
need_reboot = ON_ANY_CHANGE # All changes take effect 
                            # after a reboot
addr_chk_h  = 0x30          # These are adresses of 
addr_chk_l  = 0x31          # the checksum bytes
addr_stat   = 0x55          # Status byte
shift_stat  = 3             # The position of the 
                            # status bit in the byte
addr_day    = 0x56          # Day and time
addr_hour   = 0x57
addr_min    = 0x58
addr_sec    = 0x59

SYNTAX

Any empty line or a line containing only space characters is ignored.

Anything after and including a#character is treated as a comment andis ignored.

The options must have the formNAME = VALUEwith or without spacesbeforeNAME, after VALUEor around the equal sign.Valid options are described below.

The options may appear in any order. The same option must not appear twice.

OPTIONS

bcd = (ON|OFF), default OFF

indicates if the board uses BCD notation for storing values.

BCD is the so called Binary Coded Decimal notation (actually, it is`packed BCD', in the plain BCD they waste whole byte per digit.) in thisnotation the decimal numbers 0..99 are stored using four bits for everydigit, e.g. 24 would be stored as 0x24 (the 4 is stored in the lowerfour bits and the 2 is stored in the upper four bits).

addr_chk_h = (0x00|...|0x71), default: undefined
addr_chk_l = (0x00|...|0x71), default: undefined
addr_stat = (0x00|...|0x71), default: undefined
addr_mon = (0x00|...|0x71), default: undefined
addr_day = (0x00|...|0x71), default: undefined
addr_hour = (0x00|...|0x71), default: undefined
addr_min = (0x00|...|0x71), default: undefined
addr_sec = (0x00|...|0x71), default: undefined

Addresses of the bytes where the checksum (lower resp. higher bytes),status (enabled/disabled), month, day, hour, minute and second arestored in the nvram.

addr_chk_h, addr_chk_l and addr_statmust be defined. All other may stayundefined. That means, the board doesn't store them (e.g. because itstores that value in RTC alarm registers)

addr_chk_h2= (0x00|...|0x71), default: undefined
addr_chk_l2= (0x00|...|0x71), default: undefined

There are some boards which have two checksums.Since I haven't seen many of them yet,I don't know if they need special handling

addr_wdays = (0x00|...|0x71 ), default: undefined

The address of the byte containing a weekday vector.Currently, I know of only two boards, which store a weekday vector(Asus SP98-X and SP97-X).

rtc_time = (ON|OFF), default: OFF

indicates if we have to set the the RTC alarm time accordingly.

rtc_mon = (0x00|...|0x71|0x7F), default: undefined
rtc_day = (0x00|...|0x71|0x7F), default: undefined

similar toaddr_mon/addr_day,but stored in BCD and not affecting thechecksum. In most cases, the day is stored in the RTC register D(0x7F),but there are also some boards, which store it somewhere in the nvram(address <=0x71).

Ifrtc_dayis >=0x72,you will need a kernel patch:in <kernel-src>/drivers/char/nvram.c change the line

#define NVRAM_BYTES 128-RTC_FIRST_BYTE
to
#define NVRAM_BYTES 128
in newer kernels (beginning with 2.4.20) it is the line
#define NVRAM_BYTES (128-NVRAM_FIRST_BYTE)
which must be changed to
#define NVRAM_BYTES 128

reset_mon = (ON|OFF), default: OFF
reset_day = (ON|OFF), default: OFF

on some boards we have to set the value ofrtc_mon resp. rtc_dayto0when disabling the wakeup feature.

nr_stat = 1 (just on/off)
nr_mon = 4 ( 0..12 )
nr_day = 5 ( 0..31 )
nr_rtc_mon = 5 (0x00...0x12)
nr_rtc_day = 6 (0x00...0x31)
nr_wdays = 7 ( 1 per day )
nr_hour = 5 ( 0..23 )
nr_min = 6 ( 0..59 )
nr_sec = 6 ( 0..59 )

Number of bits needed for the status, month, day, rtc_day, weekdayvector, hour, minute and second. These values area priori motherboardindependent but depend on the BCD/non-BCD notation.

shift_stat = (0|...|7), default: 0
shift_mon = (0|...|4), default: 0
shift_day = (0|...|3), default: 0
shift_wdays= (0|...|1), default: 0
shift_hour = (0|...|3), default: 0
shift_min = (0|...|2), default: 0
shift_sec = (0|...|2), default: 0

Indicates, by how many bits the value is shifted to the left in thebyte, e.g. the value of the day (5 bits) could be stored in the bitsmarked with an "x" of a byte:
000xxxxx ->shift_day=0
00xxxxx0 ->shift_day=1
0xxxxx00 ->shift_day=2
xxxxx000 ->shift_day=3

need_reboot = (OFF|ON_STAT|ON_SEC|ON_MIN|ON_HOUR
|ON_DAY|ON_MON|ON_WDAYS|ON_ANY_CHANGE|...),
default: OFF

Here "..." means any or-ed combination of multipleON_XXXvalues.

Some boards need a reboot for changes in nvram to take effect. Some ofthem need a reboot after _any_ change, some of them only after thestatus bit was changed. Anyway, now we are able to define when a boardneeds a reboot:

means, the board never needs it
means, the board needs it after _any_ change on nvram.
means, reboot only if the status bit is changed
means, reboot whenever the status or the second are changed.

The idea behind this is ifnvram-wakeupdecides that we need to reboot,it will exit with exit status1(instead of0).So the script which runsnvram-wakeupcould react on this. We also print it tostderr,so ifnvram-wakeupis run directly on the command line, the user could reactappropriately.

upper_method = (OFF|INTEL|DS1685|VT82Cxxx|VT8235_37), default: OFF

indicates if upper nvram must be used and if yes,which method to use to access it.Note that upper nvram can only be read if --directisa parameteris specified.Possible values:

upper nvram disabled (default)
access upper nvram by a method used by most (if not all) Intel chipsets withICH, ICH2, C-ICH, ...

(datasheets at http://intel.com/design/chipsets/datashts/)

access upper nvram by a method used by the Dallas Semiconductor DS1685/DS1687chips.

(datasheet at http://www.farnell.com/datasheets/4182.pdf)

access upper nvram by a method used by VIA's VT82C686A "Super South" South Bridge.Reported to work with VT82C686A, VT82C686B, VT82C596, nVidia nForce2,ATI RADEON 9100 IGP (= RS300), AMD-8111.

(datasheet at http://www.viatech.com/pdf/productinfo/686a.pdf)
(datasheet at http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24674.pdf)

access upper nvram by a method used by VIA's VT8235/37 South Bridges.Reported to work with VT8233 as well.

(no official source)

chk_method = (DELL|FSC), default: undefined

indicates which algorithm for calculation of the checksum must be used.Possible values:

Majority of mainboards use the same algorithm (just addition of values).This algorithm is used if nochk_methodoption is specified.
This method is used by many Dell mainboards (addition of negative values).
Fujitsu-Siemens uses yet another algorithm. I don't know it and theyconsider it as a company secret. Thus this method is not implemented.

OBSCUREOPTIONS

rtc_mon_0_is_c0 = (ON|OFF), default: OFF
rtc_day_0_is_c0 = (ON|OFF), default: OFF

on some boards we have to store the value0xC0instead of0inrtc_mon resp. rtc_day.If you use one of this two options, don't forget to setnr_rtc_mon resp. nr_rtc_dayto8.

day_hack = (1|...|4), default: undefined

on some boards the value ofaddr_dayis split over the day and the status byte. In those cases the lowerday_hackbits of the day value are stored in the highest bits of the status byteand the rest is stored in the day byte.

day_no_bcd = (ON|OFF), default: OFF

on some boards the value ofaddr_dayis not stored in BCD, although everything else is.This option has no effect is the optionbcdis not enabled.

SEEALSO

nvram-wakeup(8)

HOMEPAGE

http://sf.net/projects/nvram-wakeup/

AUTHOR

Written by Sergei Haller <Sergei.Haller@math.uni-giessen.de>.

REPORTING BUGS

Report bugs at the bug tracking system (see HOMEPAGE) or on the mailing listnvram-wakeup-devel@lists.sourceforge.net

COPYRIGHT

Copyright © 2001-2004 Sergei Haller.

This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.

You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Jan 16 2004 Linux