Tag Archives: SMD

Arraid AEM-1 setup

The Arraid AEM-1 is a professional SMD hard drive emulator, which is usually quite expensive, but I managed to acquire a pair from work when they were ready to be scrapped. I subsequently traded one for two Sun 2/120 CPU cards and kept one intending to use it with my Sun 2/120, but until now I didn’t have time to figure out how to set it up, which turned out to be a bit tricky because there was only a small “cheat sheet” describing only a few commands (DFD, CT, CD, CV, CW, CLEAN) in the shortest of terms, so some detective work was necessary, but fortunately the majority of commands don’t appear to be essential.

Serial connection

In order to configure the AEM-1, it is necessary to connect a serial cable and null modem to the serial port on the back of the unit. It is configured as a DTE and the DSUB-9 port is male. There is also another DSUB-9 port, female, which I think is for connecting to an UPS (but don’t quote me on that!)

The factory settings are 9600bps 8N1. If these don’t seem to work, it is possible that someone has altered the settings from within the serial console. It should be possible to reset the unit to system defaults by holding down “WRITE PROTECT” and “FAULT” buttons while powering on.

Prerequisites

It’s important to note that the drive bay must be locked with the key or else the SCSI drive will not be accessible! Took me awhile to figure this one out…

Power on

After connecting to the unit, and powering on, one will be presented with something like this:

 AEM-1 SMD DRIVE EMULATION SYSTEM –
(c)1995-1997 by ARRAID Inc.  Revision 2.03 1-Sept-1997
ARRAID Technical Support TEL: 602-582-4592

Configuration is: CDC1.2GB_55S_HSDP
RDY>

The “RDY>” is the ready prompt, meaning that it’s waiting for commands. Invalid commands will give an “INV>” prompt, failed commands will give a “FAIL>” prompt, and rejected commands will give a “REJ>” prompt.

Configuration

The “cheat sheet” I got with the AEM-1 unit basically just said:

“Configuration of Arraid AEM-1 SMD disk drive

1) Connect a terminal to the disk. Enable power.
Disk will respond eg: CONFIGURATION IS 7_CDC300MB_40S_UDP
RDY>
2) Type DFD [*]
This brings up a table with available disks and interfaces to choose from.
3) Type CT X
where X is a number between 0-15 that identifies the disk and interface to choose.
4) Cycle power
5) Type CD
This brings up a list of the chosen configuration.
To change eg the unit address:
6) Type CV UNIT_ADDR=0
7) Type CW
This saves the configuration.
8) Cycle power
9) Type CLEAN
The disk will spin up and be erased.
10) Cycle power
11) The disk will spin up and formatting can be performed.”

[*] DFD appears to be the incorrect command, DIR is probably what’s intended.

This is enough if there happens to be a suitable configuration in one of the 16 available tables. Mine only had various CDC drives though and I want to emulate the Fujitsu M2322 drive. Fortunately the tables are just shorthands for configurations and it’s possible to make your own.

Commands

Here follows a short description of commands and parameters that I’ve figured out.

BACK

Probably to make a backup copy, if the unit is supplied with such an option.
Not investigated further.

CC

Configuration Check: check if the currently chosen configuration is okay.

CCS

Configuration Check System: check if the current system configuration is okay.

CD

Configuration Display: display the variables of the currently chosen configuration. Ex:

RDY>cd
MAX_CYL          1634       PRI_SEL_MD          0
MAX_HD               14       UNIT_ADD             0
TRACK_LEN    50400        ONL_SAVE            0
NUM_SCTRS         55        WP_SAVE             0
SCTR_LEN         1818       UNIT_ID               0
SMD_MODE            3       HOLD_ONC          0
AM_MODE              0       SET_SIZE             32
BLOCK                   1        XLAT_TBL             0
FREEZE                  0        SEL_MODE           0
JAMB                    0         SCSI_PARAM0   208
CLOCK                  0        SCSI_PARAM1   208
NONC_BLOCK       0        SCSI_PARAM4   208
RD_AHD                0        SCSI_PARAM6   208
WB_MODE            1                                   0
RTZ_TICKS           20                                  0
REL_TICKS           50                                  0

CDS

Configuration Display System: display the variables of the current system configuration. Ex:

MEM_SIZE                  1
MEM_SIMMS              4
NUM_TB                 128
DP_SIZE                1024
OP_TYPE                    0
REMOV                      1
REMOVB                    0
AEM_SCSI_ID              7
BACKUP_ID                0
COPY_ID                    0
MIRROR_ID                0
UPS_DELAY            500
UPS_FLAGS                0
COMM1_BAUD     9600
COMM1_FLAGS        52
0

CLEAN

Initialize the SCSI disk with proper block structure according to current configuration.

COPY

Probably to make a copy, if the unit is supplied with such an option.
Not investigated further.

CS <NAME>

Configuration Set, give a name to the current configuration.

CSS <NAME>

Configuration Set System: give a name to the current system configuration.

CT <0-15>

Configuration Table: choose the currently active configuration.

CV <VAR>=<VAL> ..

Configuration Variable: set the currently active configuration’s variable VAR to VAL.

HELP

Displays the available commands (and nothing else! But still somewhat helpful…)
On older firmware (such as in my other unit) HELP didn’t even seem to be available.

CW

Configuration Write: write the current configuration to flash.

CWS

Configuration Write System: write the current system configuration to flash.

DIR

Display the available configurations. Ex:

RDY> dir
TABLE  DESCRIPTION
00    CDC80MB_40S_UDP
01    CDC160MB_40S_UDP
02    CDC300MB_40S_UDP
03    CDC340MB_40S_UDP
04    CDC675MB_40S_UDP
05    CDC300MB_40S_IOP
06    CDC300MB_32S_UDP
07    CDC675MB_32S_UDP
08    CDC340MB_32S_UDP
09    CDC40MB_23S_9010
10    CDC80MB_23S_9010
11    CDC160MB_23S_9010
12    CDC300MB_23S_9010
CUR13    CDC1.2GB_55S_HSDP
14    CDC858MB_54S_HSDP
15    FACTORY_TST
SYS        AEM1_B_RMV_OP0

 F

Display SMD fault status.

MM

Maintenance Mode: enables extra debug commands (CHMOD, DFD, FW, FR, MT, SCAP, SDB, SFB, SFIFO, SINQ, SMSN, SRBLK, SRST, SRTRK, SSNS, SSTOP, SSTRT, STEST, STMSL, STMSN, STRBK, STRTK, STRW, STUR, STWBK, STWH, STWTK, SWBLK, SWTRK, T, TBD, TBDIR, TBF, TD, TS, TX, WF, WO.)

P

Print statistics, such as accesses and misses.

POFF

Power off SCSI drive.

PON

Power on SCSI drive.

R

Toggles between three states (0, 1, 2). Might be “read ahead” mode (RD_AHD).

REST

Probably to restore a backup copy made with BACK.
Not investigated further.

RS

Unknown, just prints RS=0.

S

Display status.

SDODW

Secure DOD Wipe: securely erase the SCSI drive.

SFMT

Unknown. Probably something with format?

SS

Display system status.

SVFY

Unknown.

US

Display UPS status.

VCOPY

Volume Copy.
Not investigated further.

VER

Display the firmware version.

W

Toggle write-back mode.

Z

Reset statistics.

Debug commands

These are available if enabled by the MM command.

CHMOD

Unknown.

DFD

Display Flash Data: displays data stored in the flashrom. Includes the configuration tables (see DIR).

FW

Unknown. Might be flash write for firmware updates?

FR <ARG1> <ARG2>

Unknown. Might be flash read for firmware downloads?

MT

Unknown.

SCAP

Probe for SCSI drive capacity.

SDB

SCSI Dump Buffer: display SCSI buffer?

SFB

Unknown.

SFIFO

SCSI FIFO test.

SINQ

SCSI Inquiry.

SMSN

Unknown.

SRBLK

Unknown.

SRST

SCSI Reset?

SRTRK

SCSI Read Track?

SSNS

Unknown.

SSTOP

SCSI stop?

SSTRT

SCSI start?

STEST

SCSI test. Performs a CLEAN and then several read/write tests.

STMSL

Unknown.

STMSN

Unknown.

STRBK

Unknown.

STRTK

Unknown.

STRW

Unknown.

STUR

Unknown

STWBK

Unknown.

STWH

Unknown.

STWTK

Unknown.

SWBLK

Unknown.

SWTRK

Unknown.

T

Print status.

TBD

Track Buffer Display: display the track buffer contents.

TBDIR

Track Buffer Directory?

TBF

Track Buffer Fill?

TD

Unknown.

TS

Unknown.

TX

Unknown.

WF

Unknown.

WO

Toggle write-only mode.

Setup Fujitsu M2322

Here I will describe the steps I took to set up a configuration for the Fujitsu M2322 SMD drive.

Drive specifications

  • Capacity (unformatted): 168,550,400 bytes
  • Number of cylinders: 823
  • Tracks per cylinder (heads): 10
  • Cylinder capacity: 204,800 bytes
  • Track capacity: 20,480 bytes
  • Number of sectors: 128 (max)

The M2322 can work in either fixed or variable sectors mode. To be honest, I’m not sure exactly what use this is, so I decided to just go with fixed mode. This requires calculating the number of sectors and the sector size according to:

Track capacity / Number of sectors = Number of bytes per sector

For no particular reason I decided to go with 512 bytes sectors which means the number of sectors per track becomes 40.

Configuring the AEM-1

For starters, I decided to clean the existing configurations.

First changing the system configuration name from AEM1_B_N_RMV_OP0 to SUN_2_120:

RDY>css SUN_2_120

Then clearing out all the configuration names to SPARE:

RDY>ct 1
Configuration is: CDC160MB_40S_UDP
RDY>cs SPARE
RDY>ct 2
Configuration is: CDC300MB_40S_UDP
RDY>cs SPARE
etc…

Then deciding to use configuration 0 as the one for the Fujitsu drive:

RDY>ct 0
Configuration is: CDC80MB_40S_UDP
RDY>cs FUJITSU_M2322_168MB

Note: so far only the names have been changed, now it’s time to adjust the parameters for the Fujitsu drive (I leave the rest unchanged.) First list the old variables:

RDY>cd
MAX_CYL             822      PRI_SEL_MD          0
MAX_HD                 4       UNIT_ADD             0
TRACK_LEN    20160        ONL_SAVE            0
NUM_SCTRS         40        WP_SAVE             0
SCTR_LEN         1008       UNIT_ID               0
SMD_MODE           0        HOLD_ONC          0
AM_MODE             1        SET_SIZE             32
BLOCK                   1        XLAT_TBL             0
FREEZE                  0        SEL_MODE           0
JAMB                    0         SCSI_PARAM0   208
CLOCK                  0        SCSI_PARAM1   208
NONC_BLOCK       0        SCSI_PARAM4   208
RD_AHD                2        SCSI_PARAM6   208
WB_MODE            1                                   0
RTZ_TICKS           20                                  0
REL_TICKS           50                                  0

Then change the affected variables according to the drive specifications:

RDY>cv MAX_CYL=822 MAX_HD=9 TRACK_LEN=20480 SCTR_LEN=1024 RD_AHD=0

MAX_CYL             822      PRI_SEL_MD          0
MAX_HD                 9       UNIT_ADD             0
TRACK_LEN    20480        ONL_SAVE            0
NUM_SCTRS         40        WP_SAVE             0
SCTR_LEN         1024       UNIT_ID               0
SMD_MODE           0        HOLD_ONC          0
AM_MODE             1        SET_SIZE             32
BLOCK                   1        XLAT_TBL             0
FREEZE                  0        SEL_MODE           0
JAMB                    0         SCSI_PARAM0   208
CLOCK                  0        SCSI_PARAM1   208
NONC_BLOCK       0        SCSI_PARAM4   208
RD_AHD                0        SCSI_PARAM6   208
WB_MODE            1                                   0
RTZ_TICKS           20                                  0
REL_TICKS           50                                  0
OK to write config flash (y/n) – y

After entering the command, I answered yes to the question about writing to flash. If instead answering no here, one can still save the config later via the cw command.

A couple of notes: the MAX_CYL and the MAX_HD should be one less than the actual number. NUM_SCTRS is automatically calculated and is ignored if entered. SCTR_LEN appears to be in nybbles, not bytes, hence me entering twice the sector size according to the specification. Finally, I’ve disabled the RD_AHD (read-ahead) variable by setting it to 0. This has nothing to do with the Fujitsu drive but is only an emulator parameter.

Next it’s time to cycle power to get the emulator to use the new configuration.

Setting up the SCSI disk

After setting a new configuration, the SCSI disk must be initialized accordingly, which is done with the CLEAN command:

 AEM-1 SMD DRIVE EMULATION SYSTEM –
(c)1995-1997 by ARRAID Inc.  Revision 2.03 1-Sept-1997
ARRAID Technical Support TEL: 602-582-4592

Configuration is: FUJITSU_M2322_168MB
RDY>clean
Clean SCSI drive? (y/n) – y
Volume = 0
Number of tracks = 8230
Heads = 10, Cylinders = 823
Tracks= 8230

And hopefully that’s it!