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-4592Configuration 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-4592Configuration 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!