Provided by: nvram-wakeup_1.1-1_amd64 bug

NAME

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

DESCRIPTION

       This   file  can be passed to the program NVRAM WakeUp (see nvram-wakeup(8) for more information) via the
       --configfile option.

       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 and is ignored.

       The options must have the form NAME = VALUE with or without spaces before NAME, after VALUE or 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 this notation the decimal numbers 0..99 are stored  using
              four bits for  every digit,  e.g. 24 would be stored as 0x24  (the  4 is stored in  the lower four
              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  are stored in the nvram.

              addr_chk_h,  addr_chk_l and addr_stat must be defined. All other may stay undefined.  That  means,
              the board  doesn't store them (e.g.  because it stores 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 to addr_mon/addr_day, but   stored  in  BCD and  not  affecting  the  checksum.  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).

              If rtc_day is >= 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 of rtc_mon resp. rtc_day to 0 when 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, weekday vector,    hour,    minute
              and   second.    These  values  are a priori motherboard independent 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  the byte, e.g.  the  value of
              the day (5 bits)  could be stored in the bits marked 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 multiple ON_XXX values.

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

              OFF    means, the board never needs it

              ON_ANY_CHANGE
                     means, the board needs it after _any_ change on nvram.

              ON_STAT
                     means, reboot only if the status bit is changed

              ON_STAT|ON_SEC
                     means, reboot whenever the status or the second are changed.

              The  idea  behind  this is  if nvram-wakeup decides that we need to reboot, it will exit with exit
              status 1 (instead of 0).  So the script which runs nvram-wakeup could  react  on  this.   We  also
              print it to stderr, so if nvram-wakeup is run directly on the command line, the user  could  react
              appropriately.

       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 parameter is specified.  Possible values:

              OFF    upper nvram disabled (default)

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

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

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

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

              VT82Cxxx
                     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)

              VT8235_37
                     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:

              undefined
                     Majority of mainboards use the same algorithm (just addition of values).  This algorithm is
                     used if no chk_method option is specified.

              DELL   This method is used by many Dell mainboards (addition of negative values).

              FSC    Fujitsu-Siemens  uses   yet  another  algorithm.  I don't know it and they consider it as a
                     company secret. Thus this method is not implemented.

OBSCURE OPTIONS

       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 value 0xC0 instead of 0 in rtc_mon resp. rtc_day.  If you use
              one of this two options, don't forget to set nr_rtc_mon resp. nr_rtc_day to 8.

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

              on some boards the value of addr_day is split over the day and the status byte. In those cases the
              lower day_hack bits of the day value are stored in the highest bits of the  status  byte  and  the
              rest is stored in the day byte.

       day_no_bcd        = (ON|OFF), default: OFF
              on  some  boards  the  value  of addr_day is not stored in BCD, although everything else is.  This
              option has no effect is the option bcd is not enabled.

SEE ALSO

       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  list   nvram-wakeup-
       devel@lists.sourceforge.net

COPYRIGHT

       Copyright © 2001-2004 Sergei Haller.

       This  program  is  free  software;  you  can  redistribute it and/or modify it under the terms of the GNU
       General Public License as published by the 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 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General  Public
       License for more details.

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