EXPIRED E12EBD (SAS3 Controller module) for Xyratex enclosures $78 shipped

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Rootless

Thank you
Aug 9, 2021
17
7
3
Just to make certain I'm not confused about any of this. The smarts for this shelf are in the controller. Buy two of these controllers and that shelf, 3D print some caddies, and you will have a 12GB SAS shelf? What is the cable type that is used to connect these to an LSI SAS2308? It is hard to tell from the picture.

I've been waiting to upgrade my SAS2 backplanes and this seems like a great price to make it happen. Thank you for sharing and for the discussion.
 
  • Like
Reactions: Samir and itronin

itronin

Well-Known Member
Nov 24, 2018
1,243
804
113
Denver, Colorado
Just to make certain I'm not confused about any of this. The smarts for this shelf are in the controller. Buy two of these controllers and that shelf, 3D print some caddies, and you will have a 12GB SAS shelf? What is the cable type that is used to connect these to an LSI SAS2308? It is hard to tell from the picture.

I've been waiting to upgrade my SAS2 backplanes and this seems like a great price to make it happen. Thank you for sharing and for the discussion.
SFF-8644 on the controller, if you have an lsi 2308 w/external ports then in all likelihood its got SFF-8088. If your 2308 is internal then you'll have SFF-8087 and need to bring that out either via a long cable or a bullkhead with the appropriate connectors.

Thing is, your LSI 2308 will only do 6GB/s SAS 2. If your existing shelf or the shelf you're buying already has the sas2 controller then why upgrade to SAS 3?

Regarding two controllers. If you are using single port drives (SAS or SATA) and not using interposers then two controllers doesn't buy you very much except extra watts consumed by the shelf and connections going to nowhere.
 
  • Like
Reactions: Samir

stewie0056

New Member
Dec 3, 2020
10
1
3
Hey, so I bought a Flextronics 0989198-06 (E12EBD) for cheap but I'm not able to get it to work with my DS424(3). The first post here suggests that it should be compatible but I'm not able to find much info except this thread.

When comparing my working E6EBD Compellent module to the E12EBD Flextronics module with info from the GEM CLI, i see a few potential issues. First is that it's running in slave mode while no other module is inserted and secondly the Midplane CPLD is either not the correct version or recognized.

I'm wondering if there is a configuration or a firmware update that i need to apply to the E12EBD to get it working? I know there are undocumented commands but I don't know of a complete list anywhere. Seeing that it's booting from Image B, I want to try switching to see what's on image A.
I've already read through the "Xyratex SBB enclosures and compatible controllers" thread but it looks like that firmware is only for the E6EBD. The pdf linked there says E12EBD but is only for instruction reference

Here is some of the info I've collected from the GEM CLI. Let me know if you need see anything else from it, the dumps are quite lengthy.
Code:
GEM Bootloader
Version 1.02, Arch 13
Image B active
Image available
Stored CRC  : 7225D93D
Computed CRC: 7225D93D
Image valid
Booting image: Offset=BF800000
Mapping image: Virtual Base=C0000000: OK


#*****************************************************#

*             Generic Enclosure Management            *

*                                                     *

* Copyright(C) 2007-2016 Seagate Systems (UK) Limited *

*                  All Rights Reserved                *

#*****************************************************#

Canister CPLD Test: Version 0x0A [t1], [t2]: PASSED
Startup type: Power-on reset
16bit AMD command set flash device detected
Region 0: count=4, block size=65536
Region 1: count=62, block size=262144
Region 2: count=4, block size=65536
Heap Allocator 0x9c0802a8, size 433496 free 431768
System Memory Size 2097152 bytes.
Reserving 131072 bytes for NV logging
Heap Allocator 0x9804e800, size 1775616 free 1773888
Starting fresh SRAM log 57344 bytes
Starting fresh nv temporary log 61440 bytes
Canister VPD Lock enabled
Canister CPLD Update enabled
Midplane VPD: Failed to parse VPD image on bus 1
Midplane VPD: Failed to parse VPD image on bus 2
Midplane VPD: Use defaults
Canister Isolated
Canister VPD Structure: 0x06

Product ID: DS424-E12EBD    , Firmware Version: 4.0.0.124
Canister expander index 0
Initialise success
Enclosure ID: 45303031
Enclosure Interface: OneStor
Enabling SGPIO: Isolated

Start HA Services...
HA            : Deferred

Start Enclosure Management Services...
Discovery     : OK
HID           : OK
EnvCtrl       : OK
PwrMgr        : OK
SledMgr       : OK
DrvMgr        : OK
CanMgr        : OK
CblMgr        : OK
FlashUpdate   : OK
BattMgr       : OK
Statistics    : OK

Start Transport Services...
ExpMgr        : OK
SES           : OK

All subsytems started...
Start HA Service: OK

Startup complete
Xyratex Command Interface.  Type 'help' for list of commands.
Code:
Xyratex GEM Bootloader
Version 5.01, Arch 3
Image A active
Image available
Stored CRC  : 26AEBA2F
Computed CRC: 26AEBA2F
Image valid
Booting image: Offset=BF900000


#***********************************************#

*          Generic Enclosure Management         *

*                                               *

* Copyright(C) 2007-2012 Xyratex Technology Ltd *

*               All Rights Reserved             *

#***********************************************#

Canister CPLD Test: Version 0x13 [t1], [t2]: PASSED
Startup type: Power-on reset

External SRAM Test
- Walking 1s Test
- Walking 0s Test
- Own Address Test
Tests Completed - OK
16bit AMD command set flash device detected
Region 0: count=8, block size=8192
Region 1: count=126, block size=65536
Region 2: count=8, block size=8192
System Memory Size 2097152 bytes.
Reserving 131072 bytes for NV logging
Starting fresh SRAM log 65536 bytes
Starting fresh nv temporary log 65536 bytes
Canister VPD Lock enabled
Canister CPLD Update enabled
Canister Power CPLD Version: 00176CF8
Midplane VPD: Failed to parse VPD image on bus 1
Midplane VPD: Failed to parse VPD image on bus 2
Midplane VPD: Use defaults
Canister Isolated
Canister VPD Structure: 0x06
Initialise success
numcmd=5, initiators=8, maxq=64, maxtarg=30,itlqsh=6,itlqres=1
Enclosure ID: 45303031
Enclosure Interface: OneStor
Enabling SGPIO: OK
Midplane CPLD Test: Version 0x0E: PASSED
Midplane VPD Lock enabled
PCM VPD Lock enabled

Start Services...
Discovery  : OK
HID        : OK
EnvCtrl    : OK
PwrMgr     : OK
DrvMgr     : OK
General    : OK
FlashUpdate: OK
BattMgr    : OK
Statistics : OK
SES        : OK
HA         : OK
Startup complete
Xyratex Command Interface.  Type 'help' for list of commands.
Code:
S0 GEM> getboardid
Board ID: 0, Mode: slave

S0 GEM> getvpd
Battery 1: Not Present

Battery 2: Not Present

Battery 3: Not Present

Battery 4: Not Present

Enclosure:
Vendor        : NETAPP 
PID           : DS424-E12EBD   
WWN           : 50050CC10203DE6E
SN            : SHX0979751H2JC5
PN            : 0979751-30

Canister 0: Present
Version       : 06
Vendor        : XYRATEX
PID           : -E12EBD
SN            : IMS0989198G28W6
PN            : 0989198-06

Canister 1: Not Present

Midplane:
Version       : 00
PID           : DS424  
SN            : BPS0961627G25MD
PN            : 0961627-04 

Expander 0: Present
SMP Target    : 50050CC1132AA83F
SSP Target    : 50050CC1132AA83E

Expander 1: Not Present

PCM 1: Not Present
PCM 2: Not Present
PCM 3: Not Present
PCM 4: Not Present
Code:
M0 GEM> getboardid
Board ID: 0, Mode: master

M0 GEM> getvpd
Enclosure:
Vendor      : NETAPP 
PID         : DS424-E6EBD    
WWN         : 50050CC10203DE6E
SN          : SHX0979751H2JC5
PN          : 0979751-30


Canister:
[00] (local):
  Version    : 06
  Vendor     : XYRATEX
  PID        : -E6EBD 
  Exp 00 WWN : 50050CC10B07E8BF
  SN         : IMS0944239G1PDW
  PN         : 0952913-07

[01] (remote): Not present


Midplane:
Version     : 00
PID         : DS424  
SN          : BPS0961627G25MD
PN          : 0961627-04 


PCM:
[01]:
  Version    : 03
  Vendor     : POWERONE
  PID        : HB-PCM-01-580AC
  SN         : PMW825620024E60
  PN         : 0082562-11

[02]:
  Version    : 03
  Vendor     : POWERONE
  PID        : HB-PCM-01-580AC
  SN         : PMW82562002E239
  PN         : 0082562-11

[03]:
  Version    : 03
  Vendor     : POWERONE
  PID        : HB-PCM-01-580AC
  SN         : PMW82562003CF5F
  PN         : 0082562-11

[04]:
  Version    : 03
  Vendor     : POWERONE
  PID        : HB-PCM-01-580AC
  SN         : PMW825620019322
  PN         : 0082562-11

Battery:
[01]:
  Error: Battery 1 is not present

[02]:
  Error: Battery 2 is not present

[03]:
  Error: Battery 3 is not present

[04]:
  Error: Battery 4 is not present
Code:
S0 GEM> ver
Canister firmware         : 4.0.0.124
Canister firmware date    : Dec 16 2016 11:35:17
Revision control hash     : 74a61d02676f097d14a7851e5786b36bea886d30
Product build type        : sbb_sas
Canister bootloader       : 1.02
Canister config CRC       : 0x550345A7
Canister VPD structure    : 0x06
Canister VPD CRC          : 0x8EB959A1
Canister CPLD             : 0x0A
Canister Power CPLD       : Not present
Canister chip             : 0x80540002
Canister SDK              : 4.08.02-B82
Midplane VPD structure    : 0x00
Midplane VPD CRC          : Not present
Midplane CPLD             : Not present
PCM 1 firmware            : Not present
PCM 2 firmware            : Not present
PCM 3 firmware            : Not present
PCM 4 firmware            : Not present
PCM 1 VPD structure       : Not present
PCM 2 VPD structure       : Not present
PCM 3 VPD structure       : Not present
PCM 4 VPD structure       : Not present
PCM 1 VPD CRC             : Not present
PCM 2 VPD CRC             : Not present
PCM 3 VPD CRC             : Not present
PCM 4 VPD CRC             : Not present
Battery 1 firmware        : Not present
Battery 2 firmware        : Not present
Battery 3 firmware        : Not present
Battery 4 firmware        : Not present
Code:
M0 GEM> ver
Canister firmware         : 2.2.26
Canister firmware date    : Feb  5 2013 20:54:00
Canister bootloader       : 5.01
Canister config CRC       : 0x50172004
Canister VPD structure    : 0x06
Canister VPD CRC          : 0xCFA80F08
Canister CPLD             : 0x13
Canister Power CPLD       : 0x00176CF8
Canister chip             : 0x80050002
Canister SDK              : 3.06.01-B028
Midplane VPD structure    : 0x00
Midplane VPD CRC          : Not present
Midplane CPLD             : 0x0E
PCM 1 firmware            : 3.05
PCM 2 firmware            : 3.05
PCM 3 firmware            : 3.05
PCM 4 firmware            : 3.05
PCM 1 VPD structure       : 0x03
PCM 2 VPD structure       : 0x03
PCM 3 VPD structure       : 0x03
PCM 4 VPD structure       : 0x03
PCM 1 VPD CRC             : 0x14DA43AA
PCM 2 VPD CRC             : 0x14DA43AA
PCM 3 VPD CRC             : 0x14DA43AA
PCM 4 VPD CRC             : 0x14DA43AA
Battery 1 firmware        : Not present
Battery 2 firmware        : Not present
Battery 3 firmware        : Not present
Battery 4 firmware        : Not present
Thanks if anyone can help here!

EDIT:
I downloaded the E6EBD 3.38 firmware from the other thread then ran it through strings and discovered some hidden commands. Actually they are not really hidden, you just need to type "help all" to get a full list.

For reference here are all the commands from my modules
Code:
S0 GEM> help all

Note: Not all commands are supported, 'help' lists supported commands.

acfail_sim            Simulate AC Fail condition
auto_iic_recovery     Enable/disable the automatic bus recovery.
batt_cell_balance     Override auto cell balancing by individually turning on/off the balance FETs
batt_clear_cell_fault_poh  Clear the Power On Hours stored as a result of a >500mV cell imbalance fault
batt_clear_eol_capacity  Clear the maximum derived capacity stored in the selected battery
batt_diag_mode        Switch battery into diagnostic mode (battery manager on/off)
batt_dump_regs        Diagnostic dump of the battery registers
batt_faults           Issue battery faults
batt_reset            Reset a battery.  (default=soft)  (fg=Fuel Gauge)
batt_set_capacity     Fake a battery capacity to a specific value
batt_shutdown         Cause an unexpected shutdown fault in the selected battery
batt_voltage          Display voltages for each battery
battheartbeat         Report the battery heartbeat data
battmgr_getvpd        Display battery manager controlled FRU data
battstats             Report the battery statistics for a given battery
canmgr_faults         Canister Manager faults
canmgr_getvpd         Display canister manager controlled FRU data
cblmgr_faults         Cable Manager faults
cblmgr_setPowerState  Sets the CblMgr power states for Vact and Vman.
cblmgr_setportled     Sets host port indicator states
cblmgr_setrates       Sets the specified CblMgr's tx and rx rate values.
cblmgr_setthreshold   Sets the specified ports threshold values.
clear_iic_bus         Clear locked I2C bus
clearbatterrors       Clear the battery errors for a given battery
cleardrivefault       Clears drive fault set by CLI
cleardriveindicator   Clears the drive indicator LED
clearpsufault         Clears a CLI-set PSU fault
clearsilentfail       Clear the silent fail test
clearswapbit          Clears multi-initiator swap bits
core_set              Set a core throttle level
cpld                  R/W operations to the canister CPLD.
custvpd_stats         Dumps customer vpd region read/write stats
ddump                 System-wide diagnostic dump
ddump_battery         Diagnostic dump for the Battery Manager service
ddump_bufcli          Diagnostic dump for the buffered CLI service
ddump_canmgr          Diagnostic dump for the Canister Manager service
ddump_caps            Diagnostic dump for the global capabilities tree
ddump_cblmgr          Diagnostic dump for the Cable Manager service
ddump_cli             Diagnostic dump for the CLI service
ddump_discovery       Diagnostic dump for the Discovery service.
ddump_drvmgr          Diagnostic dump for the Drive Manager service
ddump_envctrl         Diagnostic dump for the Environmental Control service
ddump_events          Diagnostic dump for the Event service
ddump_expmgr          Diagnostic dump for the Expander Manager service
ddump_fail_log        Dump crash log from SRAM
ddump_flashup         Flash update diagnostic dump
ddump_frulog          Diagnostic dump of FRU Logging information
ddump_ha              Do a diagnostic dump of all HA Service data
ddump_hid             HID service diags
ddump_i2cdev          Dumps the i2c Bus Manager device state and device access statistics
ddump_ipc             Diagnostic dump for IPC
ddump_jobs            Diagnostic dump for the background jobs.
ddump_log             Logging service diags
ddump_ndr             Diagnostic dump for the NDR service
ddump_nvlog           Non-Vol logging service diags
ddump_phycounters     Dumps the PHY Counters
ddump_pwrmgr          Diagnostic dump for the Power Manager service
ddump_remotebufcli    Diagnostic dump for the remote buffered CLI service
ddump_ses_caps        Diagnostic dump of all SES service capabilities data
ddump_ses_counts      Diagnostic dump of all SES page counters
ddump_ses_hosts       Diagnostic dump of all SES hosts
ddump_ses_mem         Diagnostic dump of all SES services internal data
ddump_ses_pages       Diagnostic dump of all SES pages
ddump_smp             Diagnostic dump for smp storage service
ddump_statesave       Diagnostic dump of StateSave information
ddump_statistics      Diagnostic dump for the Statistics service
ddump_timetracker     Diagnostic dump for the Time Tracker service
ddumpo                Ordered system-wide diagnostic dump
disc_clear_stats      Clears the Discovery Service's runtime statistics.
disconnected_mode     Display mode to use in case of HA IPC link failure
drivebypass           Drive Manager drive bypass
drivelinkdown         Move drive to link down state
drivelinkup           Move drive to link up state
drivepresence         Simulates the presence or removal of a drive
drvmgr_faults         Drive Manager faults
dump_alarm_list       Command to dump the alarm list in ,order of priority.
dumpdrives            Quick view of all drives
dumpnexuslist         Dumps the initiator's nexus list
dumptasklist          Dumps the current SCSI target task list.
energystar            Energy Star diagnostics
envctrl_coeff         Environmental Control coefficient modifier
envctrl_fan           Environmental Control fan diagnostics
envctrl_faults        Environmental Control faults
envctrl_freq          Environmental Control frequency modifier
envctrl_getvpd        Display envctrl service controlled FRU data
envctrl_setpoints     Environmental Control setpoints modifier
envctrl_stats         Environmental Control internal statistics
envctrl_zone          Environmental Control temperature zones
event_clr_stats       Clears the Event service statistics
event_test            Generate fake events
exit                  Exit from a telnet session
expmgr_faults         Expander Manager faults
expmgr_getvpd         Display expander manager controlled FRU data
fan_fault             Simulate fan faults.
fan_set               Set a fan speed
frulog_clear          Clear all FRU Logs from pcm and battery
frulog_status         Display current FRU Log status
frulog_test           FRU Log test
fwstatus              Reports status of GEM firmware images.
fwtest                Activates test code in the firmware download subsystem.
getbattstatus         Report the battery status for a given battery
getboardid            Get this board ID and mode
getdrivebaycount      Get number of drive bays
getdrivestatus        Get drive bay status
getenclosuresn        Get the enclosure serial number
getenclvpds           Report general enclosure and canister VPDs
getenclwwn            Get the enclosure WWN
getmetischarge        Report the Metis charge for a single or dual controller system
getmetisstatus        Report the Metis status for the enclosure
getpsustatus          Get status of power supply
getsepwwn             Reports embedded expander's SSP port WWN.
getvpd                List all VPD information
gncli                 Run CLI command on remote GEMNet node
gncomponent           Display GEMNet discovered components
gnconnect             Make a GEMNet IPC connection to another component
gndisconnect          Disconnect a previously created IPC connection
gnipctest             Send some test data over the current IPC connection
gnlink                Display GEMNet link information
gnlinkfaults          Display GEMNet link fault statistics
gnlinkstat            Display GEMNet link statistics
gnping                Send a frame to another GEMNet node
gnroute               Display GEMNet routing table
gpio_read             Reads the status of a GPIO pin.
gpio_set_dir          Configures a GPIO pin as either input or output.
gpio_write            Set a GPIO pin's output data.
ha_readdata           Reads data from local canister
ha_senddata           Sends data across the HA link
heapdump              Dumps memory heap
help                  Displays command information
hid_activity_state    Command to dump the drive activity state.
hid_clear_alarm       Clear a system alarm (see ddump_hid for index)
hid_disp              Command to set the HID display
hid_dump_phy_map      Dumps HIDs Activity LED PHY map
hid_faults            Human Interface Device faults
hid_get_switch        Get switch status
hid_hex_id            Set enclosure ID display mode to hexadecimal
hid_kill_buzzer       Disable/enable enclosure buzzers
hid_report_pcm        Report HID related PCM info
hid_set_activity      Turn activity leds on.
hid_set_alarm         Set a system alarm
hid_set_buzzer        Control buzzer rate
hid_set_ident         Set/clear enclosure identify mode.
hid_set_led           Set LED state
hid_set_switch        Simulates the switch status.
hid_test_mode         Control hid test mode
hspower               Hotswap Channel Power control
iclearstats           Clears the SCSI initiator stats
iic                   Perform I2C read/write
iic_eeprom_erase      Erase I2C EEPROM (CAUTION!)
iic_eeprom_read       Read I2C EEPROM
iic_eeprom_write      Write to I2C EEPROM
iicfault              Force/clear a fault condition on the specified bus. Running the command with no arguments reports the current forced fault status for each bus.
iicstat               Get I2C bus stats. Default=All buses
iicstatclear          Clear I2C bus stats. Default=All buses.
induce_crash          Deliberately induces a processor crash.
induce_watchdog       Deliberately induces a watchdog reboot.
injectelecfault       Inject/clear electronics fault
ipconfig              Set IP Configuration in VPD
istats                Reports the SCSI initiator stats
itest                 Performs an initiator test by sending repetedated writebuffer commands
logclear              Clear logged msgs
logcmt                Insert comment in logdump
logcounters           Display log counters
logcounterszero       Clears log counters
logdump               Display logged msgs
logdumpnv             Display Non-Vol logged msgs
logdumpsc             Dumps the self configuration log
loglevel              Control which msgs to log
lognv                 Non-Vol logging service
logstream             Stream logged msgs to console
logtest               Creates test message of each severity level in the logs or fills log with a number of critical messages
logtest_len           Test cmd to produce long log messages
memdump               Dumps a block of memory to the console
meminfo               Displays information about the currently allocated memory.
phy_edgeconf          Display PHY Edge buffering settings.
phy_txconf            Set PHY TX Analogue settings.
phy_zone              Dumps a phy's zone information
phydump               Reports status of SAS PHYs on the expander.
phystate              Enable/Disable PHY or PHY group
phytest               Configure/Control PHY test pattern/stats
pmbus                 Perform pmbus read/write operations
poweroffdrive         Powers off a drive  (includes spin-down)
powerondrive          Powers on a drive  (includes spin up)
poweronidle           Powers on a drive  (no spin up)
psmi_detect           Detect PSMI PCM, display info
psmi_display_brownout  Display PSMI PCM brownout count
psmi_dump_regs        Dump PCM's PSMI registers
psmi_read_sensors     Read PSMI PCM's sensors
psmi_reg              Read/write PSMI register
psmi_set_fan_speed    Set PSMI PCM's fan speed
psmi_set_led          Set PSMI PCM's LED state
psmi_twi              Read/Write battery registers
psmi_watchdog         Enable/disable PSMI PCM watchdog pings
pwrmgr_faults         Power Manager faults
pwrmgr_getvpd         Display power manager controlled FRU data
pwrmgr_ignore_pwok    Ignore Power Supply PWOK Signal
r16                   Reads a 16bit register.
r32                   Reads a 32bit register.
r8                    Reads an 8bit register.
reboot                Reboot the expander.
report_faults         Reports all system-wide faults
reset_counter         Reset specified counter(s)
reset_saved_zone_info  Erases saved zone information from flash and resets the context with default values
reset_timetracker     Reset the statistics that have been collected about Time Tracker clients
resetdrive            Reset a drive  (power off; power on; spin up)
routetable            Dumps the expander direct & hashed route tables
scsi_rqst_limit       Sets the operational parameters of the SCSI request limiter.
ses_reportpage        Display SES status pages in human-readable form
ses_set_bcast_filter  Sets broadcast filter
ses_set_bcast_rate    Sets broadcast rate
ses_simulate_event    ses_simulate_event
ses_statuspage        Display SES status pages in hexadecimal form
set_battvpd           set battery vpd fields
set_custvpd           set cust_vpd fields
set_ebodvpd           set ebod_vpd fields
set_encl_id           Set enclosure ID
set_fanvpd            set fan vpd fields
set_midplanevpd       set midplane vpd fields
set_pcmvpd            set pcm_vpd fields
set_startup_flag      Modifies a startup flag state to test the boot recovery mode.
set_swaptimeout       Sets the timeout for clearing the canister swap bits. The timeout starts after the first host read of page 02h. When the timeout has expired, new hosts .
setbattremoval        Prepare a battery for removal from Metis
setcanisterfault      Set/Clear the local canister fault status
setcanisterhealth     Set/Clear the local canister health status
setcanisterindicator  Set/Clear the local canister indicator status
setcanisterstr        Set/Clear the local canister safe-to-remove status
setdischarge          Start a manufacturing or learning discharge for a given battery
setdrivefault         Fakes drive fault
setdriveindicator     Set the drive indicator LED
setmaxpowerreq        Simulates the value for the maximum power requirement
setmetischarge        Set the Metis charge for a single/dual controller
setmetisprotect       Set the Metis protection mode
setpsufault           Fakes a PSU fault
setpsuload            Sets a pcms 12V rail load
setswap               Set the swap bit for a particular FRU.
settime               Sets unit time
setup_exc_recov       Configure exception recovery behaviour.
sgpio_get_status      Retrieves the status of the SGPIO port.
sgpio_set_bit         Directly sets an SGPIO bit.
sgpio_set_sload       Sets the SGPIO port SLOAD bits.
sgpio_sim_failure     Simulates an SGPIO device failure.
show_ddump_order      Show the order in which the 'ddumpo' commands are executed
shutdown              Enclosure shutdown request
silentfailinfo        Get status information about the silent fail timer
smp_test              SMP Test command
smplog                Reports logged SMP messages.
spindowndrive         Spin down a drive
spinupdrive           Spin up a drive
statesave             Initiate a StateSave to flash
statesave_clear       Clear all StateSaves from flash
statesave_status      Display current StateSave status
temp_fault            Simulate temperature sensor faults.
temp_set              Set a temperature sensor reading
temp_threshold        Set a temperature threshold for a zone
test_ac_fail          Calls the AC_Fail IRQ handler to test write to flash and event recovery to log on reboot
test_fail_log         Primes SRAM crash log with test data.
test_hold             Update hold state for the statistics CLI hold buffer
test_hpc              Test the high-precision counter
test_tick_rollover    Set up a timer-tick rollover test.
testsilentfail        Test the silent fail solution - one rail per PCM at a time
update_counter        Update specified counter(s)
uptime                Uptime meter
ver                   Version information
vpd                   Read entire VPD EEPROM
vpd_recov             Request VPD recover
w16                   Writes a 16bit register.
w32                   Writes a 32bit register.
w8                    Writes an 8bit register.
zone_perms            Dumps the zone permissions table
Code:
M0 GEM> help all

Note: Not all commands are supported, 'help' lists supported commands.

auto_iic_recovery     Enable/disable the automatic bus recovery.
batt_cell_balance     Override auto cell balancing by individually turning on/off the balance FETs
batt_clear_cell_fault_poh  Clear the Power On Hours stored as a result of a >500mV cell imbalance fault
batt_clear_eol_capacity  Clear the maximum derived capacity stored in the selected battery
batt_diag_mode        Switch battery into diagnostic mode (battery manager on/off)
batt_dump_regs        Diagnostic dump of the battery registers
batt_fault            Cause a fuel gauge fault in the selected battery
batt_faults           Issue battery faults
batt_reset            Reset a battery.  (default=soft)  (fg=Fuel Gauge)
batt_set_capacity     Fake a battery capacity to a specific value
batt_voltage          Display voltages for each battery
battstats             Report the battery statistics for a given battery
clear_iic_bus         Clear locked I2C bus
clearbatterrors       Clear the battery errors for a given battery
cleardrivefault       Clears drive fault set by CLI
cleardriveindicator   Clears the drive indicator LED
clearelecfault        Request to clear electronics fault
clearpsufault         Clears a CLI-set PSU fault
clearswapbit          Clears multi-initiator swap bits
core_set              Set a core throttle level
cpld                  R/W operations to the canister CPLD.
custvpd_stats         Dumps customer vpd region read/write stats
ddump                 System-wide diagnostic dump
ddump_battery         Diagnostic dump for the Battery Manager service
ddump_bufcli          Diagnostic dump for the buffered CLI service
ddump_caps            Diagnostic dump for the global capabilities tree
ddump_cli             Diagnostic dump for the CLI service
ddump_discovery       Diagnostic dump for the Discovery service.
ddump_drvmgr          Diagnostic dump for the Drive Manager service
ddump_envctrl         Diagnostic dump for the Environmental Control service
ddump_events          Diagnostic dump for the Event service
ddump_fail_log        Dump crash log from SRAM
ddump_flashup         Flash update diagnostic dump
ddump_general         Diagnostic dump for the General service.
ddump_ha              Do a diagnostic dump of all HA Service data
ddump_hid             HID service diags
ddump_i2cdev          Dumps the i2c Bus Manager device state and device access statistics
ddump_ipc             Diagnostic dump for IPC
ddump_jobs            Diagnostic dump for the background jobs.
ddump_log             Logging service diags
ddump_ndr             Diagnostic dump for the NDR service
ddump_nvlog           Non-Vol logging service diags
ddump_phycounters     Dumps the PHY Counters
ddump_pwrmgr          Diagnostic dump for the Power Manager service
ddump_remotebufcli    Diagnostic dump for the remote buffered CLI service
ddump_ses_caps        Diagnostic dump of all SES service capabilities data
ddump_ses_counts      Diagnostic dump of all SES page counters
ddump_ses_hosts       Diagnostic dump of all SES hosts
ddump_ses_mem         Diagnostic dump of all SES services internal data
ddump_ses_pages       Diagnostic dump of all SES pages
ddump_smp             Diagnostic dump for smp storage service
ddump_statesave       Diagnostic dump of StateSave information
ddump_statistics      Diagnostic dump for the Statistics service
ddumpo                Ordered system-wide diagnostic dump
disc_clear_stats      Clears the Discovery Service's runtime statistics.
disconnected_mode     Display mode to use in case of i2c failure
drivebypass           Drive Manager drive bypass
drivelinkdown         Move drive to link down state
drivelinkup           Move drive to link up state
drivepresence         Simulates the presence or removal of a drive
drvmgr_faults         Drive Manager faults
dump_alarm_list       Command to dump the alarm list in ,order of priority.
dumpdrives            Quick view of all drives
dumpnexuslist         Dumps the initiator's nexus list
dumptasklist          Dumps the current SCSI target task list.
envctrl_coeff         Environmental Control coefficient modifier
envctrl_fan           Environmental Control temperature zones
envctrl_faults        Environmental Control faults
envctrl_freq          Environmental Control frequency modifier
envctrl_setpoints     Environmental Control setpoints modifier
envctrl_stats         Environmental Control internal statistics
envctrl_zone          Environmental Control temperature zones
event_clr_stats       Clears the Event service statistics
fan_fault             Simulate fan faults.
fan_set               Set a fan speed
fwstatus              Reports status of GEM firmware images.
fwtest                Activates test code in the firmware download subsystem.
general_faults        General Service faults
getbattstatus         Report the battery status for a given battery
getboardid            Get this board ID and mode
getdrivebaycount      Get number of drive bays
getdrivestatus        Get drive bay status
getenclosuresn        Get the enclosure serial number
getenclosurewwn       Get the enclosure WWN
getenclvpds           Report general enclosure and canister VPDs
getmetischarge        Report the Metis charge for a single or dual controller system
getmetisstatus        Report the Metis status for the enclosure
getpsustatus          Get status of power supply
getsepwwn             Reports embedded expander's SSP port WWN.
getvpd                List all VPD information
gpio_read             Reads the status of a GPIO pin.
gpio_set_dir          Configures a GPIO pin as either input or output.
gpio_write            Set a GPIO pin's output data.
ha_senddata           Sends data across the HA link
help                  Displays command information
hid_activity_state    Command to dump the drive activity state.
hid_clear_alarm       Clear a system alarm (see ddump_hid for index)
hid_disp              Command to set the HID display
hid_dump_phy_map      Dumps HIDs Activity LED PHY map
hid_faults            Human Interface Device faults
hid_get_switch        Get switch status
hid_kill_buzzer       Disable/enable enclosure buzzers
hid_report_pcm        Report HID related PCM info
hid_set_activity      Turn activity leds on.
hid_set_alarm         Set a system alarm
hid_set_buzzer        Control buzzer rate
hid_set_ident         Set/clear enclosure identify mode.
hid_set_led           Set LED state
hid_set_switch        Simulates the switch status.
hid_test_mode         Control hid test mode
hscontrol             Manual override of a hot swap controller channel
iclearstats           Clears the SCSI initiator stats
iic                   Perform I2C read/write
iic_eeprom_erase      Erase I2C EEPROM (CAUTION!)
iic_eeprom_read       Read I2C EEPROM
iic_eeprom_write      Write to I2C EEPROM
iic_fault_clear       Clear the fault bits on an iic bus
iicfault              Force/clear a fault condition on the specified bus. Running the command with no arguments reports the current forced fault status for each bus.
iicstat               Get I2C bus stats. Default=All buses
iicstatclear          Clear I2C bus stats. Default=All buses.
induce_crash          Deliberately induces a processor crash.
induce_watchdog       Deliberately induces a watchdog reboot.
injectelecfault       Inject/clear electronics fault
istats                Reports the SCSI initiator stats
itest                 Performs an initiator test by sending repetedated writebuffer commands
logclear              Clear logged msgs
logcmt                Insert comment in logdump
logcounters           Display log counters
logcounterszero       Clears log counters
logdump               Display logged msgs
logdumpnv             Display Non-Vol logged msgs
logdumpsc             Dumps the self configuration log
loglevel              Control which msgs to log
lognv                 Non-Vol logging service
logstream             Stream logged msgs to console
logtest               Creates test message of each severity level in the logs or fills log with a number of critical messages
phy_txconf            Set PHY TX Analogue settings.
phydump               Reports status of SAS PHYs on the expander.
phystate              Enable/Disable PHY or PHY group
phytest               Configure/Control PHY test pattern/stats
pmbus                 Perform pmbus read/write operations
poweroffdrive         Powers off a drive  (includes spin-down)
powerondrive          Powers on a drive  (includes spin up)
poweronidle           Powers on a drive  (no spin up)
psmi_detect           Detect PSMI PCM, display info
psmi_display_brownout  Display PSMI PCM brownout count
psmi_dump_regs        Dump PCM's PSMI registers
psmi_read_sensors     Read PSMI PCM's sensors
psmi_reg              Read/write PSMI register
psmi_set_fan_speed    Set PSMI PCM's fan speed
psmi_set_led          Set PSMI PCM's LED state
psmi_twi              Read/Write battery registers
psmi_watchdog         Enable/disable PSMI PCM watchdog pings
pwrmgr_faults         Power Manager faults
pwrmgr_ignore_pwok    Ignore Power Supply PWOK Signal
r16                   Reads a 16bit register.
r32                   Reads a 32bit register.
r8                    Reads an 8bit register.
reboot                Reboot the expander.
report_faults         Reports all system-wide faults
reset_counter         Reset specified counter(s)
resetdrive            Reset a drive  (power off; power on; spin up)
scsi_rqst_limit       Sets the operational parameters of the SCSI request limiter.
ses_reportpage        Display SES status pages in human-readable form
ses_statuspage        Display SES status pages in hexadecimal form
set_battvpd           set battery vpd fields
set_custvpd           set cust_vpd fields
set_ebodvpd           set ebod_vpd fields
set_encl_id           Set enclosure ID
set_midplanevpd       set midplane vpd fields
set_pcmvpd            set pcm_vpd fields
set_startup_flag      Modifies a startup flag state to test the boot recovery mode.
set_swaptimeout       Sets the timeout for clearing the canister swap bits. The timeout starts after the first host read of page 02h. When the timeout has expired, new hosts .
setbattremoval        Prepare a battery for removal from Metis
setcanisterfault      Set/Clear the local canister fault status
setcanisterhealth     Set/Clear the local canister health status
setcanisterindicator  Set/Clear the local canister indicator status
setcanisterstr        Set/Clear the local canister safe-to-remove status
setdischarge          Start a manufacturing or learning discharge for a given battery
setdrivefault         Fakes drive fault
setdriveindicator     Set the drive indicator LED
setmetischarge        Set the Metis charge for a single/dual controller
setmetisprotect       Set the Metis protection mode
setpsufault           Fakes a PSU fault
settime               Sets unit time
sgpio_get_status      Retrieves the status of the SGPIO port.
sgpio_set_bit         Directly sets an SGPIO bit.
sgpio_set_sload       Sets the SGPIO port SLOAD bits.
sgpio_sim_failure     Simulates an SGPIO device failure.
show_ddump_order      Show the order in which the 'ddumpo' commands are executed
shutdown              Enclosure shutdown request
smp_test              SMP Test command
spindowndrive         Spin down a drive
spinupdrive           Spin up a drive
statesave             Initiate a StateSave to flash
statesave_clear       Clear all StateSaves from flash
statesave_status      Display current StateSave status
temp_fault            Simulate temperature sensor faults.
temp_set              Set a temperature sensor reading
temp_threshold        Set a temperature threshold for a zone
test_ac_fail          Calls the AC_Fail IRQ handler to test write to flash and event recovery to log on reboot
test_fail_log         Primes SRAM crash log with test data.
test_hold             Update hold state for the statistics CLI hold buffer
test_tick_rollover    Set up a timer-tick rollover test.
ucd9012x              Test UCD9012x fan controller/monitor
update_counter        Update specified counter(s)
uptime                Uptime meter
ver                   Version information
vpd                   Read entire VPD EEPROM
w16                   Writes a 16bit register.
w32                   Writes a 32bit register.
w8                    Writes an 8bit register.

I'm still trying to figure out how to switch the boot image but i did come across this in strings...
Code:
  0 0      :
  0 1      : soft reset (not implemented)
  0 2      : hard reset
  0 4      : NDSR reset (or RF trigger)
  0 5      : show RF/NDSR state
  1 0 0    : set image 0 active
  1 0 1    : set image 1 active
  1 0 t    : toggle active images between 0 and 1
I just need to figure out what command takes it as input. "set_startup_flag" maybe?
 
Last edited:
  • Like
Reactions: Samir

BeTeP

Well-Known Member
Mar 23, 2019
657
434
63
I've already read through the "Xyratex SBB enclosures and compatible controllers" thread
you should have asked in that thread. Personally I did not have any issues with using E12EBD in any of my DS4243. Also you did not specify what exactly was not working for you so it is hard to suggest any troubleshooting steps.
 

stewie0056

New Member
Dec 3, 2020
10
1
3
you should have asked in that thread. Personally I did not have any issues with using E12EBD in any of my DS4243. Also you did not specify what exactly was not working for you so it is hard to suggest any troubleshooting steps.
Yeah, I didn't mean to post this in the deals thread.
So after applying power it boots like normal, but a few seconds after it's finished booting the fans go to 100%, the middle front panel led goes to a solid amber light, and the E12EBD has a solid red light (the one next to the red X by the console port).

I see "Fault", "Failure", "Not present", and "UNKNOWN" listed for multiple things in the ddump which do not have the same status when using my E6EBD so it's not clear to me what the actual root cause of it is. I don't know if it's an incompatible firmware version or if it's just a few settings that need reconfigured.

Code:
report_faults
Reports all system-wide faults

----------------------------------------------------------------------
Canister Manager faults

 Canister 0 Faults:

 15 component(s) registered with fault tracker
  0: I2C 0: No faults
  1: I2C 1: No faults
  2: I2C 2: No faults
  3: I2C 3: No faults
  4: I2C 4: No faults
  5: I2C 5: No faults
  6: I2C 6: No faults
  7: Midplane VPD 0: FAILED
  8: PCM VPD 0: No faults
  9: PCM VPD 1: No faults
  10: PCM VPD 2: No faults
  11: PCM VPD 3: No faults
  12: Canister VPD 0: No faults
  13: SGPIO 0: No faults
  14: Canister CPLD 0: No faults

----------------------------------------------------------------------

----------------------------------------------------------------------
Cable Manager faults

Overall cable status
-----------------------------------------------------------------------
Index | Fault Severity | Fault LED State | Ident LED State
-----------------------------------------------------------------------
Local
-----------------------------------------------------------------------
    0 |             OK |                   OFF |                   OFF
    1 |  Cable Removed |                   OFF |                   OFF
    2 |  Cable Removed |                   OFF |                   OFF
-----------------------------------------------------------------------
Remote
-----------------------------------------------------------------------

No cables found

-----------------------------------------------------------------------


Detected local fault conditions
------------------------------
Cable 0 faults:
    No faults detected
Cable 1 faults:
    No faults detected
Cable 2 faults:
    No faults detected

Detected remote fault conditions
------------------------------

----------------------------------------------------------------------

----------------------------------------------------------------------
Drive Manager faults
No faults

----------------------------------------------------------------------

----------------------------------------------------------------------
Environmental Control faults
zone  0 - awaiting IO module sync
zone  1 - awaiting IO module sync
zone 10 - awaiting IO module sync
fan  0  - failing to report status
fan  1  - failing to report status
fan  2  - failing to report status
fan  3  - failing to report status
fan  4  - failing to report status
fan  5  - failing to report status
fan  6  - failing to report status
fan  7  - failing to report status
System airflow is compromised; fans set to maximum to compensate

----------------------------------------------------------------------

----------------------------------------------------------------------
Expander Manager faults

----------------------------------------------------------------------

----------------------------------------------------------------------
Human Interface Device faults

Ops Panel status:

Unit Identifier LED  : UNKNOWN
Logic Fault LED      : UNKNOWN
Module Fault LED     : UNKNOWN

Warning:                     Local:  Remote:
    ****No HID warnings to report****

Reporting Current Alarms(Highest priority first):

Type          : VPD comms failure
Current State : CRITICAL
Status        : UNKNOWN
Buzzer        : UNKNOWN

Type          : Host enabled IO Module fault
Current State : FAULT
Status        : UNKNOWN

RemoteSync Client faults
No faults

----------------------------------------------------------------------

----------------------------------------------------------------------
Power Manager faults
Running in non-redundant mode!

----------------------------------------------------------------------