SNI Monitor
SNI Monitor is a big-endian firmware for the Siemens Nixdorf RM-400 server (and others).
Contents |
Boot process
SNI Monitor loads a secondary bootloader dkncr(0,0,10)sash which loads SINIX's dkncr(0,0,0)unix file.
$ file sash sash: MIPSEB ECOFF executable (impure) stripped - version 2.11
SINIX uses System V slices :
- Slice 1 - root file system
- Slice 2 - swap
- ...
- Slice 10 - boot slice with BFS (Boot File System)
http://penguin.cz/~mhi/fs/bfs/
Boot CD-ROM
SINIX bootable CD-ROM contains ISO-9660 filesystem and Disk Volume Header. Note! There is only one record in the DVH partition table pointing to itself (sector 0). The DVH resides in the CR-ROM System Area and doesn't overlap with ISO-9660 Primary Volume Descriptor starting at logical sector 16 (0x8000). DVH directory entries are pointing to the first sector of the apprpriate files in the ISO-9660 area (in the /BOOT directory).
# dvhtool --device /dev/hdc --print-all ----- partitions ----- Part# 10, start 0, blks 76800, type Volume Header ----- bootinfo ----- Root partition: 0 Swap partition: 0 Bootfile: "" ----- directory entries ----- Entry #0, name "unix_410", start 49492, bytes 6639233 Entry #1, name "sash_410", start 62460, bytes 439296 Entry #2, name "sash_pci", start 78304, bytes 511869 Entry #3, name "upde_410", start 75608, bytes 509856 Entry #4, name "upde_pci", start 76604, bytes 869061 Entry #5, name "miniroot", start 63320, bytes 6291456 Entry #6, name "systest", start 79304, bytes 1916032
# fdisk /dev/hdc You will not be able to write the partition table. Note: sector size is 2048 (not 512) Command (m for help): p Disk /dev/hdc (SGI disk label): 255 heads, 63 sectors, 15 cylinders Units = cylinders of 16065 * 512 bytes ----- partitions ----- Pt# Device Info Start End Sectors Id System 11: /dev/hdc1 0 4 76800 0 SGI volhdr ----- Bootinfo ----- Bootfile: ----- Directory Entries ----- 0: unix_410 sector49492 size 6639233 1: sash_410 sector62460 size 439296 2: sash_pci sector78304 size 511869 3: upde_410 sector75608 size 509856 4: upde_pci sector76604 size 869061 5: miniroot sector63320 size 6291456 6: systest sector79304 size 1916032
API
SNI Monitor maintains a call vector at 0xbfc00000. This calls are similar to the API calls used in the MIPS Magnum 3000 (a.k.a mipsco) monitor (see include/asm/mipsprom.h for details).
IdProm recovery
Some old SNI RM-x00 machines comes with broken IdProm backup battery. There is a hidden command init_e2prom which allows to recover IdProm content.
Bootlog
SNI Monitor Version 2.0018 SNI_R4000 OPT Wed May 25 11:39:36 WET 1994 liva20r Memory size: 128 MBytes (0x8000000 bytes) Bank #0: 64 MBytes Bank #1: 64 MBytes Bank #2: 0 MBytes Bank #3: 0 MBytes CPU : R4400 SC, Revision 5.0 Primary I-cache size: 16384 (0x4000) bytes Primary D-cache size: 16384 (0x4000) bytes Secondary cache size: 128 Kbytes (0x20000 bytes) >> dkncr(0,0,10)sash 297872+130048+628272 entry: 0xa0600000 SNI Standalone Shell Version 3.0003 SNI_R4000 OPT Thu Jun 23 13:30:39 WET 1994 livsa542 Loading dkncr(0,0,0)unix 2128236+873536+557808 entry: 0x80021000 SNI RM400 UNIX(R) SINIX-N Release 5.42 Version A0007