VME6U6 / VME9U12 Software Release Notes
Version 3.1.0

New Software Directory Hierarchy in Version 3.0.0


February, 1996

In order to provide a more integrated filing system for the software and files used with the various Unix based products the following restructure of the CAC software directories will be used for future releases. The purpose of this document is desribe the new hierarchy and provide information about migrating from the old hierachy.

The new hierarchy uses separate directories for the source files, device drivers, diagnostics and demos for each product line while integrating certain common directories.

The basic directory hierarchy is shown below. This does not show a complete list of all the subdirectories but illustrations the major branches.


$CAC            - top level directory for all Unix based
  |               products.  The environment variable, CAC,
  |               specifies the name of the top level.
  |               For example, /usr/cac.
  |
  |- /bin       - support programs used by all products such
  |               as dspinit, pciinit, sbdspinit, tdmc, etc.
  |               and the host servers and ushell for the
  |               MIPS kernel.
  |
  |- /include   - header files for host application programs
  |     |         written for all products (dsputil.h,
  |     |         sbdsputil.h, pciutil.h, etc.)
  |     |
  |     |-- /sys    - symbolic link to the include directory.  
  |
  |- /lib       - library files for all products.  These
  |               include the host application libraries
  |               such as libdsp.a and libpci.a as well as
  |               DSP32C startup and map files, special MIPS
  |               code, run time initialization files such
  |               as SB32C2 mezzanine FPGA config files, VME
  |               memory map for V6M6 MIPS Kernel, etc.
  |
  |
  |- /dsp       - source files, diags and demos for the
  |    |          VME6U6 and VME9U12 products.
  |    |
  |    |-- /src     - Source for host library, DSP32C startup
  |    |              and memory maps, host support programs.
  |    |
  |    |-- /dsp*dev - Various directories for host-dependent
  |    |              device driver source and other files.
  |    |
  |    |-- /diag    - VME6U6/VME9U12 diagnostic programs
  |    |
  |    |-- /demos   - VME6U6/VME9U12 demonstration programs
  |
  |
  |- /sbdsp     - source files, diags and demos for the
  |    |          SB32C2 products.
  |    |
  |    |-- /src     - Source for host library, DSP32C startup
  |    |              and memory maps, host support programs.
  |    |
  |    |-- /sbdsp*dev - Various directories for host-dependent
  |    |                device driver source and other files.
  |    |
  |    |-- /diag    - SB32C2 diagnostic programs
  |    |
  |    |-- /demos   - SB32C2 demonstration programs
  |
  |
  |- /pci       - source files and diags for the V6M6 and V9M12
  |    |          products excluding the MIPS Kernel, libraries
  |    |          and server.
  |    |
  |    |-- /libsrc  - Source for host library.
  |    |
  |    |-- /binsrc  - Source for host support programs.
  |    |
  |    |-- /pci*dev - Various directories for host-dependent
  |    |              device driver source and other files.
  |    |
  |    |-- /diag    - V6M6/V9M12 diagnostic programs
  |    |
  |    |-- /flash   - FPGA configuration and microcontroller
  |    |              code files that are loaded into flash.
  |    |
  |    |-- /mipsgcc - Gnu libraries and header files and source
  |                   for R3081 and R4600 programs.
  |
  |
  |- /mips      - the MIPS kernel and server source for
  |    |          the VME6U6/R3081 mezzanine combination
  |    |          and the V6M6 MIPs processor modules.
  |    |          The directory also contains the MIPS
  |    |          application libraries.
  |    |
  |    |-- /server  - Source for host servers.
  |    |
  |    |-- /bin     - MIPS binaries (Kernels, examples, etc.)
  |    |
  |    |-- /lib     - MIPS libraries for applications to be
  |    |              run with the Kernel
  |    |
  |    |-- /include - Header files for MIPS libraries.
  |
  |
  |- /man       - on-line manual pages
  |
  |- /misc      - a place for user created files such as macros
  |               for the dsptest and pmtest diagnostics, or
  |               special special test programs.


What will be required to migrate to this new structure?

There are some settings in the .login and/or .cshrc files to be changed. For those using the Bourne Shell (sh) the changes in the .profile file are similar. Examples here assume the C-Shell.

  1. There is a new environment variable that every user, developer and system administrator must set called CAC.

        setenv CAC /usr/cac

    This variable names the top level directory for all of the CAC software for Unix-based products. The example, above, uses the directory /usr/cac, for the top level. This is only an example. Users of Solris 2.x may opt for naming it /opt/cac but, really, any place you want to have it is alright. Note that the CACDSP, CACPCI and CACMIPS variables are no longer used.

  2. Modify your program search path. Delete the entries that use the old CACDSP and CACPCI variables and replace them with:

        $CAC/bin $CAC/dsp/diag $CAC/sbdsp/diag $CAC/pci/diag

    Most customers will just use $CAC/bin but if you run diagnostics often you should include the appropriate diag directories so the programs may be run without having to cd to the directory.

  3. If you have a MANPATH environment variable replace the $CACDSP/man component with $CAC/man. This variable should be set in ~/.login for example:

        setenv MANPATH /usr/man:/usr/local/man:$CAC/man

  4. If you compile host application programs you need to specify the paths for include files and libraries. For example:

      gcc -I$CAC/include -L$CAC/lib prog.c -o prog -ldsp

    Note that the ioctl header files (dspioctl.h, sbdspioctl.h, etc.) are kept in the $CAC)/include directory. The symbolic link, $CAC/include/sys, is provided so that your source files and Makefiles that reference those headers as being in the sys subdiectory will still find them.

    You still need to include the -D flag where is one of SUNOS, SOLARIS, DGUX or HKLYNX, depending on the operating system. For the VME6U6/VME9U12 boards, the -DVMEMEZZ is no longer required.

    You should modify any macros in your Makefiles that used the old CACDSP or CACPCI environment variables. For example:

         old macro                      new macro
       LIBPATH = $(CACDSP)/lib        LIBPATH = $(CAC)/lib
       INCPATH = $(CACDSP)/include    INCPATH = $(CAC)/include
       INCPATH = $(CACPCI)/include    INCPATH = $(CAC)/include
       DSPDIAG = $(CACDSP)/diag       DSPDIAG = $(CAC)/dsp/diag
    

    Note that for programs using both the pci and dsp libraries you need only include one library and one include search path. But you need to link with both libraries. For example:

      gcc -I$CAC/lib  -L$CAC/lib  prog.c -o prog -ldsp -lpci

    For programs using only the V6M6 board with TDM functions the pci TDM library needs to be linked. For example:

      gcc -I$CAC/lib  -L$CAC/lib  prog.c -o prog -lpcitdm -lpci

    Many customers may only be using the old $(CACDSP)/{bin,lib,include} directories. In this case, simply resetting the CACDSP environment variable to the new top level directory might be all that is necessary to use existing Makefiles and scripts with the new directory hierarchy.

  5. For SunOS 4.1.x devicer driver installations, if the directories /usr/kvm/sys/dspdev and/or /usr/kvm/sys/pcidev are setup as symbolic links to CAC dspsundev and pcisundev directories, these links will have to be removed and recreated.

  6. System boot up scripts such as /etc/rc.local on SunOS 4.1.x or the dspinit.sh in the Solaris 2.x driver directory will need to be modified to specify the new path (/usr/cac/bin) for the dspinit, sbdspinit, and pciinit programs.