Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ xmem(7) — GL2 W2.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

netload(1M)

XMEM(7)  —  Silicon Graphics

NAME

xmem − EXOS ethernet front-end processor board memory

SYNOPSIS

#include <ex_ioctl.h>
#include <sys/init.h>
 
ioctl(xmem, EXIOCRESET, 0);
ioctl(xmem, EXIOCSTART, &startaddr);
ioctl(xmem, EXIOCGCONF, &confmsg);

DESCRIPTION

xmem is a special file that is an image of the EXOS board’s memory.  lseek(2) can be used to set the on-board address.  Any user can read(2), but only the super user can write(2).  xmem also provides privileged ioctl(2) operations that configure the board and startup on-board code.  netload(1M) uses this device to download TCP/IP code to the board and start it up.  Subsequent to startup, xmem provides access to on-board data memory for utilities like adb(1). 

EXIOCRESET resets the board and puts it through self-diagnostics, then configures it for downloading and front-end mode operation. 

EXIOCSTART starts up downloaded code at the given segmented address. 

EXIOCGCONF returns the configuration message (see init.h).  Typically, it is used to obtain information that the EXOS returns in the configuration reply message.  This includes NX firmware release and available on-board RAM locations.  EXIOCGCONF should not be used before EXIOCRESET is called. 

Before startup, byte addresses in xmem are interpreted as 8086-style segmented physical memory addresses.  After startup, byte addresses are interpreted as 8086-style offsets relative to the current data segment value (0x1000 for TCP/IP) of the on-board code. 

DIAGNOSTICS

EXIOCRESET
Returns EIO if the self-test or configuration failed

EXIOCSTART
Returns EIO if the starting address is invalid; reading or writing a nonexistent memory address on the EXOS board returns EIO or ENXIO

SEE ALSO

netload(1M)

FILES

/dev/EXOS/xmem

BUGS

Before startup, read is not implemented. 

Before startup, a write that advances the offset part of the segmented file pointer past 64K cause it to spill over into the segment part of the file pointer, with unexpected results. 

After startup, reads and writes past 64K “wrap around” to 0.  EOF never occurs. 

Version 2.4  —  May 08, 1986

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