Provided by: plc-utils-extra_0.0.6+git20230504.1ba7d5a0-1_amd64 bug

NAME

       chknvm - Qualcomm Atheros PLC Image File Validator

SYNOPSIS

       chknvm [options] file [file] [...]

DESCRIPTION

       Validate the image chain found inside a Qualcomm Atheros PLC firmware or parameter file by
       checking file structure, file size, image header sizes and checksums and image  sizes  and
       checksums.  Optionally, display internal image header information or information extracted
       from selected image types, when present.  Use this program to detect corrupted firmware or
       parameter files or inspect image files to determine content.

       This  program  handles  both the older Thunderbolt and Lightning and the newer Panther and
       Lynx firmware file formats.  It validates files directly from disk and  so  it  is  slower
       than program chknvm2 but needs less memory at runtime.

       This  program is part of the Qualcomm Atheros Powerline Toolkit.  See the AMP man page for
       an overview and installation instructions.

OPTIONS

       -i     Print revision string identity fields  in  fixed-width  columns.   This  option  is
              useful when searching .nvm folders for a specific build.

       -m     Display  manifest  content, if present.  The manifest is a special module, included
              in some image chains, that contains  useful  information  about  the  chain.   This
              option suppresses the summary 'looks good' message.

       -r     Print  firmware  revision  string  on  stdout.   This option suppresses the summary
              'looks good' message.

       -s     Print SDRAM configuration block on stdout.  This  option  automatically  suppresses
              the summary 'looks good' message.

       -q     Suppresses  printing  of routine messages.  Specifically, it suppresses the summary
              'looks good' message.

       -v     Print additional information such as the image header  for  each  image  processed.
              This  information can be used to distinguish one firmware file from another, if you
              know what to look for.

       -?,--help
              Print program help summary on stdout.  This  option  takes  precedence  over  other
              options on the command line.

       -!,--version
              Print  program  version  information  on stdout.  This option takes precedence over
              other options on the command line.  Use this option when sending  screen  dumps  to
              Atheros  Technical  Support  so  that  they know exactly which version of the Linux
              Toolkit you are using.

ARGUMENTS

       file   The name of an Atheros image file.  By convention, Atheros Image files have a  .nvm
              file extension but this program does not enforce this convention.

DISCLAIMER

       Qualcomm  Atheros  firmware file structure and content is proprietary to Qualcomm Atheros,
       Ocala FL USA.  Consequently,  public  information  is  not  available.   Qualcomm  Atheros
       reserves  the  right  to  change  firmware file structure or content or change the name or
       behavior of any program that inspects  or  changes  firmware  files,  in  future  software
       releases without any obligation to notify or compensate users of such programs.

EXAMPLES

       This  example  reads  file abc.nvm and validates it.  The message shown indicates that the
       file is the correct length, image headers and images have the correct length and  checksum
       and there are no read errors.  The file can be have either the newer or older format.

           # chknvm abc.nvm
           abc.nvm looks good

       The  following  example  reads three files in succession and reports on each one.  You can
       suppress good news with the -q option.

          # chknvm INT6400.nvm AR7400.nvm AR7420.nvm
          INT6400.nvm looks good
          AR7400.nvm looks good
          AR7420.nvm looks good

       This next example displays the SDRAM parameter block found  in  the  named  files.   SDRAM
       parameter  blocks  are a legacy feature.  They were to configure memory.  Powerline device
       now run a configuration applet, instead.  Observe that file AR6400.nvm  us  the  only  one
       that contains SDRAM parameters.

          # chknvm -s INT6400.nvm AR7400.nvm AR7420.nvm
          ------- INT6400.nvm (0) -------
                  SIZE=0x04000000 (64mb)
                  CONF=0x00143188
                  TIM0=0x01E1D491
                  TIM1=0x000883D6
                  CNTRL=0x00003089
                  REF=0x00000366
                  CLOCK=0x00000001

       This next example prints the firmware revision string found inside older image files.  The
       option can be used to identify the actual firmware image present  when  the  filename  has
       been  changed.   Newer image files have a manifest, instead.  Observe that file AR7420.nvm
       shows no firmware revision string because it has the newer image file format.

          # chknvm -r INT6400.nvm AR7400.nvm AR7420.nvm
          INT6400.nvm (3) INT6000-MAC-4-1-4122-01-4020-20100219-FINAL
          AR7400.nvm (5) INT7400-MAC-7-0-7011-01-52-20110811-FINAL

       This example prints the manifest found inside newer firmware files.  This can be  used  to
       distinguish  firmware  files  from  parameter files, determine exact firmware or parameter
       file revisions and so forth.  Observe that we specified several files on the command  line
       but only one file, AR7420.nvm, contained a mainfest.

          # chknvm -m INT6400.nvm AR7400.nvm AR7420.nvm
          ------- AR7420.nvm (0) -------
                  Signature: 1234ABCD
                  Hardware Compatibility: AR74200
                  Chain Major Version: 0
                  Chain Minor Version: 1
                  Chain Type: Firmware
                  Build Major Version: 0
                  Build Minor Version: 0
                  Build Type: Special
                  Manifest Version: 1
                  Build Number: 0
                  Build Date: 20110811
                  Build Time: 203853
                  Device Type: 29728
                  Build Hostname: TOR-SW-SIM04
                  Build Username: buildbot
                  Build Description: Custom
                  Build   Version   String:   AR-7420-FW-0_0-0_2-20110811:203853-buildbot:TOR-SW-
       SIM04-1-0_1

SEE ALSO

       chknvm2(1), chkpib(1), chkpib2(1), int6ktest(7), nvmmerge(1), nvmsplit(1), plctest(1)

CREDITS

        Charles Maier