Appendix C. Setting VME Addresses

This appendix contains instructions on resetting the VME address for your Multi-Channel Option board, for example, if you install new operating system software. Resetting the board's VME address is required because system software replaces the memory mapping file with a default file. The instructions are dependent on the type of system you have (Crimson, POWER Series, SkyWriter, or Onyx), as well as the software release on your system (4.0.5H, 5.0.1, or 5.1).


Note: IRIX version 5.2 and later do not require setting VME addresses in software; the gfxinit program finds the address of the MCO board automatically.

This appendix explains:

Setting VME Addresses for Crimson, POWER Series, or SkyWriter With IRIX 4.0.5H

Table C-1 shows the default VME base addresses for the Multi-Channel Option board in a in a Crimson deskside (pipe 0 only), POWER Series deskside or rack (pipe 0 only), or two-pipe SkyWriter rack running 4.0.5H software.

Table C-1. Default VME Addresses for Crimson, POWER Series, or SkyWriter Running IRIX 4.0.5H

Pipe

Value

Default VME Base Address

0

VIDEO_VS2_A24_NP_BASE_PIPE0

0xb2800000

1

VIDEO_VS2_A24_NP_BASE_PIPE1

0xb2810000

To set the address, follow these steps:


Note: Before installing new system software, determine the VME address at which the board should be set.


  1. As root, for each pipe, type /usr/gfx/setmon -x 60 to bring the DG2 EEPROM up to date. For example:

    setenv DISPLAY :0.0 
    /usr/gfx/setmon -x 60 
    setenv DISPLAY :0.1 
    /usr/gfx/setmon -x 60 
    setenv DISPLAY :0.2 
    /usr/gfx/setmon -x 60
    

  2. Set the MCO board address pointer(s) by writing DG2 EEPROM(s):

    • On a deskside system, type as root

      /usr/gfx/ucode/RE/vs2/vs2addrset -d -v
      

    • On a multipipe system, type as root

      /usr/gfx/ucode/RE/vs2/vs2addrset -p pipe# -a address -v verbose
      

    for each pipe.

    The pipe# is the pipe number (0 or 1) and address is the address given in Table C-1 . For example, on a two-pipe SkyWriter, type

    /usr/gfx/ucode/RE/vs2/vs2addrset -p 0 -a 0xb2800000 -v
    /usr/gfx/ucode/RE/vs2/vs2addrset -p 1 -a 0xb2810000 -v
    

  3. If you are not using the default addresses given in Table C-1, you must edit /usr/sysgen/master.d/mem. The file looks like:

    #include <sys/cpu.h> 
    #include <sys/videoaddr.h>
    
     /*
     * This array defines the device addresses
     * that may be mapped by /dev/mmem
     * Note: addresses MUST BE kernel virtual addresses,
     * not physical addresses.
     */ 
    struct map mmmap_addrs[] = { 
    #if IP4 || IP5 || IP17
            { NBPP, SOUND_DAT_ADDR }, /* sound chip and friends */ 
    #endif 
    #if IP12 || IP20
            { 0x20000, PHYS_TO_K1(HPC1MEMORY) }, /* DSP, etc. */ 
            /* HPC registers, in particular HPC1MISCSR */ 
            { NBPP, PHYS_TO_K1(HPC_0_ID_ADDR ) }, 
    #endif 
    #if IP20 || IP22 
            { NBPP, (PHYS_TO_K1(RPSS_CTR)&~0xfff) }, 
    #endif 
    #if IP5 || IP17 
            { 0x80000, LOGRAM_ADDR }, /* ECC logging RAM */ 
            { NBPP, IOTIMER_ADDR }, /* free running timer on IO3 */ 
            { 0x10000, VIDEO_VS2_A24_NP_BASE_PIPE0 }, /* Video Splitter 2 Pipe 0 */ 
            { 0x10000, VIDEO_VS2_A24_NP_BASE_PIPE1 }, /* Video Splitter 2 Pipe 1 */ 
            { 0x10000, VIDEO_VS2_A24_NP_BASE_PIPE2 }, /* Video Splitter 2 Pipe 2 */ 
    #endif 
    #if IP5 || IP9 || IP17 
            { 0x800000, 0xda000000, }, /* VME Vigra space for 2 boards */ 
    #endif 
            { 0, 0 } , /* NULL ENTRY TERMINATES THIS LIST! */ 
    };
    

    In /usr/sysgen/master.d/mem, change

    VIDEO_VS2_A24_NP_BASE_PIPE0
    

    or

    VIDEO_VS2_A24_NP_BASE_PIPE1
    

    to the virtual VME address you have set for the appropriate pipe.

  4. Reconfigure the kernel; as root, type

    autoconfig -f
    

  5. Reboot the system to use the newly configured kernel; as root, type

    init 6
    

Setting VME Addresses for Crimson, POWER Series, or SkyWriter With IRIX 5.1

Table C-2 shows the default VME base addresses for the Multi-Channel Option board in a Crimson deskside (pipe 0 only), in a POWER Series deskside or rack (pipe 0 only), or in a two-pipe SkyWriter rack running 5.1 software.

Table C-2. Default VME Addresses for Crimson, POWER Series, or SkyWriter Running IRIX 5.1

Pipe

Value

Default VME Base Address

0

VIDEO_VS2_A24_NP_BASE_PIPE0

0x800000

1

VIDEO_VS2_A24_NP_BASE_PIPE1

0x810000

To set the address, follow these steps:


Note: Before installing new system software, determine the VME address to which the board should be set.


  1. As root, for each pipe, type /usr/gfx/setmon -x 60 to ensure the DG2 EEPROM is up to date. For example:

    setenv DISPLAY :0.0 
    /usr/gfx/setmon -x 60 
    setenv DISPLAY :0.1 
    /usr/gfx/setmon -x 60 
    setenv DISPLAY :0.2 
    /usr/gfx/setmon -x 60
    

  2. Set the MCO board address pointer(s) by writing DG2 EEPROM(s):

    • On a deskside system, type as root

      /usr/gfx/ucode/RE/vs2/vs2addrset -d -v
      

    • On a multipipe system, type as root:

      /usr/gfx/ucode/RE/vs2/vs2addrset -p pipe# -a address -v verbose
      

      for each pipe.

    The pipe# is the pipe number (0 or 1) and address is the address given in the previous table. For example, on a two-pipe SkyWriter, type:

    /usr/gfx/ucode/RE/vs2/vs2addrset -p 0 -a 0x800000 -v 
    /usr/gfx/ucode/RE/vs2/vs2addrset -p 1 -a 0x810000 -v
    

  3. If you are not using the default addresses given in Table C-2 , you must edit /var/sysgen/master.d/mem. The file looks like:

    *#ident “@(#)kern-port:master.d/mem 10.2” 
    *#ident “$Revision: 1.2 $” 
    * 
    * MEM 
    * 
    *FLAG PREFIX SOFT #DEV DEPENDENCIES 
    orcs mm 1
     
    $$$
     
    #include <sys/cpu.h>
    #if IP5 || IP17 
    #include <sys/videoaddr.h> 
    #endif
     
    /*
     * This array defines the device addresses
     * that may be mapped by /dev/mmem.
     * Note: addresses MUST BE kernel virtual addresses,
     * not physical addresses.
     */ 
    struct map mmmap_addrs[] = { 
    #if IP4 || IP5 || IP17
     { NBPP, SOUND_DAT_ADDR, }, /* sound chip and friends */ 
    #endif 
    #if IP12 || IP20
     { 0x20000, PHYS_TO_K1(HPC1MEMORY), }, /* DSP, etc. */
     /* HPC registers, in particular HPC1MISCSR */
     { NBPP, PHYS_TO_K1(HPC_0_ID_ADDR ), }, 
    #endif #if IP20 || IP22
     { NBPP, (PHYS_TO_K1(RPSS_CTR)&~0xfff) }, 
    #endif 
    #if IP5 || IP17
     { 0x80000, LOGRAM_ADDR, }, /* ECC logging RAM */
     { NBPP, IOTIMER_ADDR, }, /* free running timer on IO3 */
     
    /* Sirius Video */
     { 0x1000, 0xb7c03000 },
     
    /* Video Splitter 2 (aka Multi Channel Option) Pipe 0 */
     { 0x10000, VIDEO_MP_VME_A24NPBASE +
    VIDEO_VS2_A24_NP_BASE_PIPE0 }, 
    /* Video Splitter 2 (aka Multi Channel Option) Pipe 1 */
     { 0x10000, VIDEO_MP_VME_A24NPBASE + 
    VIDEO_VS2_A24_NP_BASE_PIPE1 }, 
    /* Video Splitter 2 (aka Multi Channel Option) Pipe 2 */
     { 0x10000, VIDEO_MP_VME_A24NPBASE + 
    VIDEO_VS2_A24_NP_BASE_PIPE2 }, 
    #endif 
    #if IP19
     { NBPP, EV_RTC, }, /* free running timer on Everest */ 
    #if DEBUG
     { 0x1000, 0xa0000000 }, /* Allow user to map page for HW 
    trigger */ 
    #endif 
    #endif { 0, 0 } , /* NULL ENTRY TERMINATES THIS LIST! */ 
    };
    

    In /var/sysgen/master.d/mem, change:

    VIDEO_VS2_A24_NP_BASE_PIPE0
    

    or

    VIDEO_VS2_A24_NP_BASE_PIPE1
    

    to the physical VME address you have set for the appropriate pipe.

  4. Reconfigure the kernel; as root, type

    autoconfig -f
    

  5. Reboot the system to use the newly configured kernel; as root, type

    init 6

Setting VME Addresses for Onyx With IRIX 5.0.1 or 5.1

Table C-3 shows the default VME base addresses for the Multi-Channel Option board in a three-pipe Onyx rack or in a deskside Onyx system (pipe 0 only) running 5.0.1 software, 5.1 software.

Table C-3. Default VME Addresses and Adapter Numbers for Onyx Deskside or Rack Running IRIX 5.0.1 or 5.1

Pipe

Default VME Base Address

Default VME Bus Adapter Number

0

0x800000

0

1

0x800000

36

2

0x800000

37

Before installing new system software, determine the VME address to which the board should be set. Run hinv to display the bus adapters needed for each MCO. For example, a single-pipe system requires adapter 0, a two-pipe system requires adapters 0 and 36, and a three-pipe system requires adapters 0, 36, and 37.

To set the address, follow these steps:


Caution: Do not attempt to operate an MCO in a system that does not report the correct adapter number for the pipe it is associated with (for example, pipe_0 to adapter_0, pipe_1 to adapter_36, and pipe_2 to adapter_37).


  1. As root, type

    cd /dev
    MAKEDEV usrvme
    

  2. As root, for each pipe, type /usr/gfx/setmon -x 60 to bring the DG2 EEPROM up to date. For example:

    setenv DISPLAY :0.0 
    /usr/gfx/setmon -x 60 
    setenv DISPLAY :0.1 
    /usr/gfx/setmon -x 60 
    setenv DISPLAY :0.2 
    /usr/gfx/setmon -x 60
    

  3. Set the MCO board address pointer(s) by writing DG2 EEPROM(s):

    • On a deskside system, type as root

      /usr/gfx/ucode/RE/vs2/vs2addrset -d -v
      

    • On a multipipe system, type as root

      /usr/gfx/ucode/RE/vs2/vs2addrset -p pipe# -a address -b bus_adapter# -v verbose
      

      for each pipe.

    The pipe# is the pipe number (0, 1, or 2) and address is the address given in Table C-3 . For example, on a three-pipe Onyx rack, type

    /usr/gfx/ucode/RE/vs2/vs2addrset -p 0 -a 0x800000 -b 0 -v /usr/gfx/ucode/RE/vs2/vs2addrset -p 1 -a 0x800000 -b 36 -v /usr/gfx/ucode/RE/vs2/vs2addrset -p 2 -a 0x800000 -b 37 -v
    

  4. Reconfigure the kernel; as root, type

    autoconfig -f
    

  5. Reboot the system to use the newly configured kernel; as root, type

    init 6
    

Testing VME Addresses

After you finish setting addresses, running hinv should report

Multi-Channel Option board installed

for each MCO installed.


Caution: Do not attempt to run setmon -S on a pipe where the above command does not report properly.

Running vs2prom -p pipe# -r /dev/null on each pipe indicates the health of each MCO VME connection by attempting to read the contents of the MCO EEPROM. If the command is successful, a prompt with no message appears. Test for each pipe with an installed MCO.

For example, as root, type

/usr/gfx/ucode/RE/vs2/vs2prom -p 0 -r /dev/null /usr/gfx/ucode/RE/vs2/vs2prom -p 1 -r /dev/null /usr/gfx/ucode/RE/vs2/vs2prom -p 2 -r /dev/null


Caution: Do not attempt to run setmon -S on a pipe where the above command does not succeed without complaint.