Provided by: linuxcnc-uspace_2.9.0~pre1+git20230208.f1270d6ed7-1_amd64 bug

NAME

       setsserial - a utility for setting Smart Serial NVRAM parameters.

       NOTE:  This rather clunky utility is no longer needed except for flashing new smart-serial
       remote firmware. Smart-serial remote parameters can now be set in  the  HAL  file  in  the
       normal way.

SYNOPSIS

       loadrt setsserial cmd="set hm2_8i20.001f.nvmaxcurrent 750"

FUNCTIONS

       None

PINS

       None

USAGE

       loadrt setsserial cmd="{command} {parameter/device} {value/filename}"

       Commands available are set and flash.

       This utility should be used under halcmd, without LinuxCNC running or any realtime threads
       running.

       A typical command sequence would be:

        halrun
        loadrt hostmot2 use_serial_numbers=1
        loadrt hm2_pci config="firmware=hm2/5i23/svss8_8.bit"
        show param
        loadrt setsserial cmd="set hm2_8i20.001f.nvmaxcurrent 750"
        exit

       This example uses the option to have the HAL pins and parameters labelled  by  the  serial
       number  of  the remote. This is not necessary but can reduce the scope for confusion. (The
       serial number is normally on a sticker on the device.)

       The next line loads the hm2_pci driver in the normal way. The hm2_7i43 driver should  work
       equally  well,  as  should any future 7i80 driver.  If the card has already been strted up
       and a firmware has been loaded, then the config string may be omitted.

       "show param" is optional, but provides a handy list of all the devices and parameters.  It
       also  shows  the  current  values  of  the  parameters which can be useful for determining
       scaling. u32 pin values are always shown in hex, but new values can be entered in  decimal
       or hex. Use the Ox123ABC format to enter a hex value.

       The  next  line invokes setsserial. This is run in a slightly strange way in order to have
       kernel-level access to a live Hostmot2 config. It is basically a HAL  module  that  always
       fails  to  load.  This  may  lead to error messages being printed to the `halcmd:` prompt.
       These can often be ignored.  All the real  feedback  is  via  the  dmesg  command.  It  is
       suggested to have a second terminal window open to run dmesg after each command.

       On  exiting  there will typically be a further error message related to the driver failing
       to unload setsserial. This can be ignored.

       The parameter changes will not show up until the drivers are  reloaded.   //TODO//  Add  a
       "get" command to avoid this problem.

       Flashing  Firmware  To  flash  new  firmware  to an FPGA card such as the 5i25 or 5i20 the
       "mesaflash" utility should be used. Setsserial is only useful  for  changing/updating  the
       firmware on smart-serial remote such as the 8i20.  The firmware should be placed somewhere
       in the /lib/firmware/hm2 tree, where the Linux firmware loading macros can find it.

       The flashing routine operates in a realtime thread, and can only send prompts to the  user
       through  the  kernel  log (dmesg). It is most convenient to open two terminal windows, one
       for command entry and one to monitor progress.

       In the first terminal enter

       tail -f /var/log/kern.log

       This terminal will now display status information.

       The second window will be used to enter the commands. It is important that LinuxCNC and/or
       HAL  are  not  already  loaded  when  the process is started.  To flash new firmware it is
       necessary to move a jumper on the smart-serial remote drive  and  to  switch  smart-serial
       communication to a slower baudrate.

       A typical command sequence is then
        halrun
        loadrt hostmot2 sserial_baudrate=115200
        loadrt hm2_pci config="firmware=hm2/5i23/svss8_8.bit"
        loadrt setsserial cmd="flash hm2_5i23.0.8i20.0.1 hm2/8i20/8i20T.BIN"
        exit

       It  is  not necessary (or useful) to specify a config string in a system using the 5i25 or
       6i25 cards.

       Note that it is necessary to exit  halrun  and  unload  the  realtime  environment  before
       flashing the next card (exit)

       The  correct  sserial  channel name to use can be seen in the dmesg output in the feedback
       terminal after the loadrt hm2_pci step of the sequence.

LICENSE

       GPL