Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ hrmconfig(1M) — CX/UX 6.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

hrm(7)

shmconfig(1M)

shmdefine(1)

brc(1M)

shmget(2)

shmbind(2)

hrmconfig(1M)  —  CX/UX

NAME

hrmconfig − configure HVME Reflective Memory Board

SYNOPSIS

/etc/hrmconfig hrm[0-1] [options]

DESCRIPTION

hrmconfig is used to configure HVME Reflective Memory (HRM) boards, where hrm0 or hrm1 specifies one of two possible HRM boards.  This utility is usually placed in the /etc/rc.local or /etc/rc file (see brc(1M)) for configuring the HRM board(s). 
 
After system boot, the node_id parameter must be set up on the HRM board before it will be enabled.  This parameter can be set up by using the -n option shown below. 
 
The first time hrmconfig is executed after a system boot will cause the HRM board’s memory to be cleared/initialized.  The HRM memory must be initialized before processes can successfully read and write to this memory. 

OPTIONS

−p phys_addr
specifies the starting physical address, phys_addr, for the memory residing on the HRM board.  After system boot, the start address defaults to 0xE2000000 for the /dev/hrm0 board, and to 0xE3000000 for the /dev/hrm1 board.  Therefore, this option is not required after a system boot.  However, these defaults may be overridden by this parameter.  HRM boards may contain either 4 mbytes or 16 mbytes of DRAM memory. As a result, the 4 mbyte HRM board have eight possible starting physical address values, but the 16 mbyte HRM boards have only two possible starting physical address values. The valid values for phys_addr are shown below:

For 4 mbyte boards:
E2000000E2400000E2800000E2C00000
E3000000E3400000E3800000E3C00000
For 16 mbyte boards:
E2000000E3000000

If two HRM boards are configured in on system, then the address ranges of the two boards must NOT overlap.

−n node_id
specifies the node identification number for this HRM board, where node_id is a number from 0 to 7.  The node_id provides the HRM board with a identification number that is used within the reflective memory configuration.  All HRM boards that are connected via the same set of reflective memory cables must have unique node_id values.  After system boot, the node_id must be specified for a HRM board before it will be placed into an enabled and running state. 

−c long|short
specifies the total cable length of the entire reflective memory configuration. If short is specified, then the entire cable length must be less than 80 ft.  If long is specified, then the entire cable length is greater than 80 ft. but less than 180 ft.  By default, after system boot, the HRM board will be placed into a long cable configuration.  Therefore, this option is not required after a system boot. 
 
Although the short parameter will provide shorter arbitration times in the reflective memory configuration which may result in higher performance, if the cable length is actually greater than 80 ft., the HRM system will not function properly.  If the short parameter is specified, then all nodes in the configuration must also be configured with the short cable length option. 

−s specifies the status option.  When this option is specified, /etc/hrmconfig will output to stdout the current configuration information on the specified HRM board.  The information displayed is the information contained in the hrm_info structure (see <sys/hrm.h>).  If this option is specified with any of the other options, then the information returned will reflect the configuration of the board after the other options have been processed.  This option is not required after a system boot. 

DIAGNOSTICS

If /etc/hrmconfig encounters an error, it will output a message indicating which system call failed and the reason for the failure. 

NOTES

The HVME Reflective Memory system is intended to be used with shared memory regions.  The shmconfig(1M) program can be used to define shared memory region(s) in the HRM board’s memory (see shmconfig(1M)).  Applications may then attach to regions within a HRM board’s memory using the normal shared memory utilities and system services. 

WARNING

Although the read/modify/write type of instructions may be executed on data within HRM memory, it cannot be guaranteed that the data will remain unchanged between the read and write operations.  Since the HRM memory does not support read/modify/write instructions, the use of binary semaphores (or any similar construct) will not be supported in HRM memory.  It is up to the applications using the HRM memory to use some other method of synchronization. 

EXAMPLES

The following examples show HRM configuration on a system that contains two HRM boards.  The first board contains 4 mbytes of memory, and belongs to a configuration of nodes on a short cabled system.  The second board contains 16 mbytes of memory. 

/etc/hrmconfig hrm0 -p E2C00000 -c short -n 4
/etc/hrmconfig hrm1 -p E3000000 -c long -n 1

SEE ALSO

hrm(7), shmconfig(1M), shmdefine(1), brc(1M), shmget(2), shmbind(2). 

CX/UX Administrator’s Reference

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026