Difference between revisions of "SNI Monitor"

From LinuxMIPS
Jump to: navigation, search
(DVH on hdd)
(reorder)
Line 1: Line 1:
 
The '''SNI Monitor''' is a big-endian [[firmware]] for MIPS-based Siemens-Nixdorf systems.  It's a close relative to the firmware used in pre-[[ARC]] systems by [[SGI]] and [[wikipedia:MIPS Computer Systems|MIPS Computer Systems]] Magnum.
 
The '''SNI Monitor''' is a big-endian [[firmware]] for MIPS-based Siemens-Nixdorf systems.  It's a close relative to the firmware used in pre-[[ARC]] systems by [[SGI]] and [[wikipedia:MIPS Computer Systems|MIPS Computer Systems]] Magnum.
 +
 +
== API ==
 +
 +
SNI Monitor maintains a call vector at 0xbfc00000. This calls are similar to the API calls used in the MIPS [[wikipedia:MIPS_Magnum|Magnum 3000]] (a.k.a mipsco) monitor (see [http://www.linux-mips.org/git?p=linux.git;a=blob;f=include/asm-mips/mipsprom.h 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.
  
 
== Boot process ==
 
== Boot process ==
Line 62: Line 70:
 
   5: miniroot  sector63320 size 6291456
 
   5: miniroot  sector63320 size 6291456
 
   6: systest    sector79304 size 1916032
 
   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 [[wikipedia:MIPS_Magnum|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 ==
 
== Bootlog ==

Revision as of 08:19, 27 March 2006

The SNI Monitor is a big-endian firmware for MIPS-based Siemens-Nixdorf systems. It's a close relative to the firmware used in pre-ARC systems by SGI and MIPS Computer Systems Magnum.

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.

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 Disk Volume Header partition table, but partition nubers are different from the IRIX:

  • Slice 1 - root file system
  • Slice 2 - swap
  • ...
  • Slice 8 - entire Volume
  • Slice 10 - boot slice with BFS (Boot File System)
  • Slice 11 - Volume Header (sector 0)

http://penguin.cz/~mhi/fs/bfs/

Bootable CD-ROMs

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

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