nvram-wakeup.conf   (5) manpage
nvram-wakeup.conf
5
Jun 17 2004
Linux
NVRAM WakeUp
  • 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.

      Anyting 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  one board,  which stores a weekday vector
      (ASUS_SP98_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.

      (datasheet at http://www.viatech.com/pdf/productinfo/686a.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
Current Users: 19 © 1999-2006 Linux.com.hk PenguinSoft
All trademarks and copyrights on this page are owned by their respective companies. Linux is a trademark of Linus Torvalds.