id: @(#)scf-interface.txt 1.9 08/02/15 purpose: SCF Interface for OPL Project copyright: Copyright 2008 Sun Microsystems, Inc. All Rights Reserved copyright: Use is subject to license terms. Title: SCF Communication Interface for OPL systems. o PURPOSE Olympus Product Line (OPL) systems are being jointly developed by Sun & Fujitsu. The product line will include Olympus-C Processor (SPARC64-VI) and Jupiter processor (SPARC64-VII) based Data Center (DC), Form Factor (FF) and single socketed Ikkaku platforms. This document defines the software interfaces between the SCF (System Control Facility a.k.a. Service Processor) and the domain software (POST, OBP, Solaris) for the OPL platforms. The intent of this document is to document the interface communication protocol between and SCF & domain software, and also to list the commands exchanged between the SCF & domain software. TASK GROUP MEMBERS: The following individuals are the members of the task group that produced this document. Sunit Jain (CSW/OPL OBP) - Sun Microsystems, Inc. 1. OVERVIEW & REFERENCE This document describes the software interface between the SCF and domain software (OBP, POST, Solaris) for the OPL systems including the list of commands that can be exchanged between the SCF and domain software. The communication interface includes the commands sent from domain software to SCF and the SCF interrupt asynchronous notification from SCF to domain software. 1.1 REFERENCES [1] Columbus2 Logical Specification Rev. 1.1 Due to Sun/Fujitsu confidentiality agreement this document cannot be posted in public domain. Please contact Susan Hamwi (x40045, susan.hamwi@sun.com) to get access to the document. [2] SCF Interface Sepcification Rev 1.1 Due to Sun/Fujitsu confidentiality agreement this document cannot be posted in public domain. Please contact Susan Hamwi (x40045, susan.hamwi@sun.com) to get access to the document. [3] Hardware Descriptor Structure (FWARC/2005/261) [4] Jupiter Bus Bindings (FWARC/2005/076, FWARC/2006/012) 1.2 DEFINITION OF TERMS CMU CPU & Memory Unit. Board with 4x CPUs, memory, SCs, CMU-CH, TOD, NVRAM, SCF interface, PROM. CMU-CH CPU Memory Unit Channel. PCI bus that supports Boot PROM, TOD/NVRAM, ESCF interface, Serial console. Part of SC. FMEMA Floating Memory Address. HW feature for the memory copy rename operation. Sometime also referred as FMA which is not to be confused with Sun's FMA - Fault Management Architecture. HWD Hardware Descriptor Structure. Defines the hardware configuration, device status and other system information for a domain. IOC IO Controller (Oberon). Host-IO bridge. Provides PCI Express interface to the Jupiter system bus. LSB Logical System Board. An LSB could be a PSB or XSB. MBC Maintenance Bus Controller OPL Olympus Product Line PCI-CH An Oberon channel. Each channel has 2 PCIE leaves. PSB Physical System Board (a.k.a. SB) RCI Remote Cabinate Interface. Maintenance interconnect between the system cabinets. SB System Board - consists of 4x processors, 2x Oberon ASICs, 4x Memory controllers (each with upto 32 DIMMs) SCF System Controller Facility. Service processor for OPL machines. SCFI SCF Communication Interface SP Service Processor SRAM Static Random Access Memory XSB Extended System Board. A PSB can be logically partitioned into 4 XSBs. XSCF eXtended System Controller Facility. Terms SCF & XSCF are used interchangeably. 2. COMMUNICATION INTERFACE HARDWARE This section defines the minumum hardware required to support the SCF interface: i. Maintenance Bus Controller (MBC) ii. Control registers in SCF/CMU [1] iii. SRAM mounted on the CMU [1][2] 2.1 COMMUNICATION INTERFACE REGISTERS The minimum set of registers required to implement the SCF Interface are as follows [1]: SCFI Command Register (SCR) 2 bytes SCFI Status Register (SSR) 2 bytes SCFI Tx Data Register 16 bytes SCFI Rx Data Register 16 bytes SCFI Command Extended Register (SCExR) 1 byte SCFI Status Extended Register (SSExR) 4 bytes SCFI Interrupt Status Register (SISR) 2 bytes Firmware Request Register 0 & 1 1 byte Alive Check Register (ALVR) 1 byte Alive Timer Register (ALVT) 1 byte 2.2 COMMUNICATION INTERFACE INTERRUPTS 2.2.1 DOMAIN TO SCF o Notification of Command Issuance When a command is issued from Domain to SCF, an interrupt is generated on SCF that notifies the SCF software of a new incoming command. 2.2.2. SCF TO DOMAIN o Notification of Command Complete When SCF completes the execution of command that it received from domain, it would interrupt the domain SW indicating command completion event. Domain can collect the response data after this interrupt is received. o Asynchoronous Interrupt Notification SCF can interrupt domain software asynchoronously to indicate certain events. The minimum set of asynchronous interrupt notifications from SCF to the domain are as follows [1][2]: Priority Interrupt ---------- --------------- 1 SCF READY 2 SHUTDOWN 3 POWER FAILURE 4 POFF 5 EVENT 6 ALIVE 7 PATH CHANGE 8 MODE CHANGE 3. COMMUNICATION INTERFACE PROTOCOL In this document the term "SCF Driver" refers to Solaris SCF driver. OBP or POST drivers are simply referred as OBP or POST. 3.1 DOMAIN SOFTWARE TO SCF Domain to SCF communication protocol is implemented using three different protocols depending upon the payload (data exchanged between the domain & SCF) and the usage of registers and/or SRAM to exchange the data. The command payload is dependent upon the command code (and sub-command code). So, the protocol used for a particular command is based on the command code. Three command protocols used for domain to SCF communication are: a. Short Buffer to Short Buffer (SS) SS protocol is used when the data payload to and from SCF is small enough to be passed in SCFI Tx/Rx Data Register. b. Large Buffer to Short Buffer (LS) LS protocol is used when the data payload to SCF cannot fit in SCFI Tx Data register. SRAM Tx Buffer (or other SRAM area) is used to pass the payload data to SCF. The data received in response is small enough to fit in SCFI Rx Data Register. c. Short Buffer to Large Buffer (SL) SL protocol is used when the data payload to SCF is small enough to fit in SCFI Tx Data Register but the data received in response from SCF cannot fit in SCFI Rx Data register. SRAM Rx Buffer (or other SRAM area) is used to pass data to domain in this case. Note : Large Buffer to Large Buffer (LL) protocol does not exists. These protocols are defined in detail in the following sections. 3.1.1 SS TYPE COMMAND (Short Buffer to Short Buffer) SCF commands that involve only few bytes of data exchanged between the Domain and the SCF should use the following sequence. The data is transferred via SCFI Tx/Rx Data Registers. o SCFI Tx Data Register (bytes 0-15) is used as command parameter send buffer (if any) for data sent from domain to SCF. o SCFI Rx Data Register (bytes 0-15) is used as response data receive buffer (if any) for data received from SCF to domain. o Byte 15 of SCFI Tx/Rx Register contains the a checksum (1-byte checksum, see 3.1.4.1) SS type command protocol is as follows: ----------------------------------------------------------------------- SCF Driver/OBP SCF --------------------------------- ------------------------------- 1. Write SCFI Tx Data Register (*) 2. Write SCFI Command Register | +----------------------> 1. Recognize the requesting SB (*1) 2. Recognize the command request from the trigger 3. Read SCFI Command Status Register 4. Read SCFI Tx Data Register (*) 5. Execute the command ... 6. Set SCFI Rx Data Register (+) 7. Set SCFI Status Register (SSR.Command_Complete ON) (*2) | +--------------------------------------+ | V 3. Read SCFI Status Register (SSR.Command_Complete ON) 4. Check Return Code (SSR.COM_RETURN_CODE) 5. Read SCFI Rx Data Register (+) ----------------------------------------------------------------------- (*) This can be omitted if command has no data to send. SCFI Tx Data Register must be cleared with all 0s and appropriate checksum must be set in byte 15 of SCFI Tx Data Register. (+) This can be omitted if command has no data to receive. SCFI Rx Data Register must be cleared with all 0s and appropriate checksum must be set in byte 15 of SCFI Rx Data Register (*1) Notification of command issuance (interrupt) (*2) Notification of command completion (interrupt) 3.1.2 LS TYPE COMMAND (Large Buffer to Short Buffer) SCF commands that involve large amout of data sent from Domain to SCF should use the following sequence. The domain to SCF data is transferred via SRAM Tx buffer or other SRAM area. o SCFI Tx Data Register (bytes 0-15) is used as the header for the data sent in SRAM Tx Buffer (or other SRAM area): ------------------------------------------------------------------- Bytes Field Contents --------- ----------------------- ------------------------ 0-3 Send Size Data size to be send 4-7 Send data Offset Offset in SRAM where data is located. Must be 4-byte aligned. 8-11 Checksum Checksum for SRAM Tx buffer (4-byte checksum, see 3.1.4.2) 12 Command code Command code for the machine madm through administration through command 13 Command sub-code Command sub-code for the machine madm through administration through command 14 Reserved Reserved 15 SCFI Tx Data Register Checksum of the contents of checksum SCFI Tx Data Register (1-byte checksum, see 3.1.4.1) ------------------------------------------------------------------- o SRAM Tx Buffer in SRAM is used to send data to SCF (upto 64KB). o SCFI Rx Data Register (bytes 0-15) is used as response data receive buffer (if any). o Byte 15 of SCFI Rx Register contains the a checksum (1-byte checksum, see 3.1.4.1) LS type command protocol is as follows: ----------------------------------------------------------------------- SCF Driver/OBP SCF --------------------------------- ------------------------------- 1. Write SCFI Tx Data Register and SRAM Tx Buffer (or other SRAM area) 2. Write SCFI Command Register | +----------------------> 1. Recognize the requesting SB (*1) 2. Recognize the command request from the trigger 3. Read SCFI Command Status Register 4. Read SCFI Tx Data Register DMA READ ====>> 5. Read SRAM Tx Buffer (or other FROM SCF SRAM area) 6. Execute the command ... 7. Set SCFI Rx Data Register (+) 8. Set SCFI Status Register (SSR.Command_Complete ON) | +--------------------------------------+ | (*2) V 3. Read SCFI Status Register (SSR.Command_Complete ON) 4. Check Return Code (SSR.COM_RETURN_CODE) 5. Read SCFI Rx Data Register (+) ----------------------------------------------------------------------- (+) This can be omitted if command has no data to receive. SCFI Rx Data Register must be cleared with all 0s and appropriate checksum must be set in byte 15 of SCFI Rx Data Register (*1) Notification of command issuance (interrupt) (*2) Notification of command completion (interrupt) 3.1.3 SL TYPE COMMAND (Short Buffer to Large Buffer) SCF commands that involve large amout of data sent from SCF to Domain should use the following sequence. The data is transferred via Rx SRAM buffer or other SRAM area. o SCFI Tx Data Register (bytes 0-15) is used as command parameter send buffer (if any). o Byte 15 of SCFI Tx Register contains the a checksum (1-byte checksum, see 3.1.4.1) o SRAM Rx Buffer in SRAM is used to receive data from SCF (upto 64KB). o SCFI Rx Data Register (bytes 0-15) is used as the header for the data received in SRAM Rx Buffer (or other SRAM area): ------------------------------------------------------------------- Bytes Field Contents --------- ----------------------- ------------------------ 0-3 Receive Size Data size received 4-7 Receive Offset Offset in SRAM where data is located. Must be 4-byte aligned. 8-11 Checksum Checksum for SRAM Rx buffer (4-byte checksum, see 3.1.4.2) 12 Command code Command code for the machine madm through administration through command 13 Command sub-code Command sub-code for the machine madm through administration through command 14 Reserved Reserved 15 SCFI Rx Data Register Checksum of the contents of checksum SCFI Rx Data Register (1-byte checksum, see 3.1.4.1) ------------------------------------------------------------------- SL type command protocol is as follows: ----------------------------------------------------------------------- SCF Driver/OBP SCF --------------------------------- ------------------------------- 1. Write SCFI Tx Data Register (*) 2. Write SCFI Command Register | +----------------------> 1. Recognize the requesting SB (*1) 2. Recognize the command request from the trigger 3. Read SCFI Status Register 4. Read SCFI Tx Data Register (*) 5. Execute the command ... <===== DMA WRITE 6. Set SRAM Rx Buffer (or other FROM SCF SRAM area) 7. Set SCFI Rx Data Register 8. Set SCFI Status Register (SSR.Command_Complete ON) | +--------------------------------------+ | (*2) V 3. Read SCFI Status Register (SSR.Command_Complete ON) 4. Check Return Code (SSR.COM_RETURN_CODE) 5. Read SCFI Rx Data Register and SRAM Rx Buffer (or other SRAM area) ----------------------------------------------------------------------- (*) This can be omitted if command has no data to send. SCFI Tx Data Register must be cleared with all 0s and appropriate checksum must be set in byte 15 of SCFI Tx Data Register. (*1) Notification of command issuance (interrupt) (*2) Notification of command completion (interrupt) 3.1.4 CHECKSUM CALCULATION 3.1.4.1 Short Checksum 1-byte checksum is used for the data in SCFI Tx/Rx Data Register. The checksum is maintained in byte 15 of the SCFI Tx/Rx Data Register and calculated as follows: Calculate the SUM of bytes 0-14 in SCFI Tx/Rx Data Register. Add magic number 0xAA to the SUM of bytes 0-14. Final checksum is (SUM & 0xff) where '&' is logical AND 3.1.4.2. Long Checksum 4-byte checksum is used for the data in SRAM Tx/RX Buffer. The checksum is maintained in bytes 8-11 of the SCFI Tx/Rx Data Register and calculated as follows: Calculate the SUM of all the 4-byte units in the valid SRAM Tx/Rx buffer. Add the magic number 0xAAAAAAAA to the above SUM. Final checksum is (SUM & 0xffffffff) where '&' is logical AND 3.1.5 SCF INTERFACE VERSIONING The 'Device Option Display' command defined in section 4.2.8.3 allows the domain software to exchange the interface version information with SCF software. The SCF Interface version is controlled by a set of major and minor version numbers. Both major and minor version numbers are 8-bit quantity. The minor version number is incremented for backward compatible changes in the interface. Such changes retain the command/sub-comamnd codes and field offsets in the send/receive packets, as defined by previous minor version number, within the same major version number. Thus, a software that understands can work reliably with the interface with version , where x is greater than 0. The consumer can function reliably without needing any software upgrades for any minor version number change. The major version number is incremented for the changes to the interface that are incompatible with the previous version. Any change that cause a shift in the field offsets of send/receive packets; change in command/ sub-command code of an existing command, makes the interface incompatible with the previous version. When the major number changes the minor number will reset to 0. The offset of version fields in send/receive packet of Device Option Display command (4.2.8.3) should not be changed. Other packet fields can be changed in backward compatible manner. Command described in section 4.2.8.3 allows the domain software to negotiate interface version with the SCF. This process allows the two side to pick the best suitable interface version that would allow the system to function reliably without any software updates. Domain software initiates the negotiation process by sending the major and minor version number that it can support (requested version: RMAJ, RMIN). If SCF can support the requested version number, it would return the requested version as the supported version (SMAJ, SMIN). If SCF cannot support the requested version, then it would return the closest version that it could support. Domain will then determine if the supported version, as returned by SCF, is suitable for its function. If domain cannot function with the supported version, then the interface cannot be used and it is upto the domain software to either terminate the domain or keep running without using the interface. If domain can work with the supported version, then it needs to send another 'device option display' command to SCF indicating that supported version, as earlier returned by SCF, is the requested version. 3.2 SCF TO DOMAIN ASYNCHRONOUS INTERRUPT NOTIFICATION SCF to domain communication is initiated via an asynchronous interrupt notification to domain. Once domain receives an interrupt, it will then take necessary actions that may involve sending an SCF interface command to SCF. Following is the minimal set of asynchronous interrupt notifications that need to be supported by SCF interface: ----------------------------------------------------------------------- Async Notification Description -------------------- ----------------------------------------------- SCF READY SCF status now READY notification to domain SHUTDOWN System shutdown notification to domain POWER FAILURE Power Failure notification to domain POFF Power OFF notification to domain EVENT System event notification to domain ALIVE Alive check notification to domain PATH CHANGE SCF command path change notification to domain MODE CHANGE Key switch change notification to domain ----------------------------------------------------------------------- The following sections describe the sequence when an asynchronous interrupt occurs from SCF to Domain. 3.2.1 SCF READY NOTIFICATION SCF Ready notification is sent to all the LSBs in a domain indicating that SCF status has changed from "Offline" to "Ready". SCF in "Offline" means either SCF is in "failed" or in "reset" state. When SCF READY notification is received (SSR.SCF_READY), domain must perform the following actions: . Restart Alive monitoring (section 4.2.2) . Re-issue the command if domain had issued a command before SCF turned "offline" and was waiting for completion. . Report command "System Running" (SCF driver only) ----------------------------------------------------------------------- SCF Driver/OBP SCF --------------------------------- ------------------------------- <------------- SCF Offline (SSExR.SCF_STATUS off) Domain cannot issue a command SCF reset when SCF offline . . READY & SCF_STATUS on SCF READY | +------------------------------+ | V Steps after SCF READY (Alive monitoring etc.) ----------> SCF Interface ready for commands ----------------------------------------------------------------------- 3.2.2 SHUTDOWN NOTIFICATION (Error Disconnection) Shutdown notification is sent to the domain when it is necessary to shutdown the system urgently due to a system error or environmental error. The domain may request error information from SCF if needed. The domain will then initiate the shutdown sequence and would send Disconnection command to SCF. Upon receiving the disconnection command, the SCF would disconnect the domain. Any hang that may happen between the time of shutdown notification and the disconnection command can be handled by Alive monitoring (section 4.2.2). IMPLEMENTATION NOTES: The following table shows the suggested sequence of events that may take place during shutdown notification. ----------------------------------------------------------------------- SCF Driver/OBP SCF --------------------------------- ------------------------------- 1. Set SCFI Status Register (SSR.SHUTDOWN ON) Shutdown Notification | +-------------------------------------+ | V 1. Read SCFI Status Register (SSR.SHUTDOWN ON) 2. Send a command to SCF to display event contents (*) | +-------------------------------------+ | V <------------------------ 2. Display the event contents 3. Start shutdown sequenc . . 4. Disconnection command --------------------------+ | V 3. Disconnect domain ----------------------------------------------------------------------- (*) May be omitted 3.2.3 POWER FAILURE NOTIFICATION Power Failure notification is sent to the domain when a power failure requires shutdown of the system. When domain receives this notification (SSR.POWER_FAILURE) the domain may request error information from SCF if needed. The process follows Error Disconnection process as explained in section 3.2.2. 3.2.4 POFF NOTIFICATION (Normal Disconnection) POFF notification is sent to the domain when power switch is pressed or a normal disconnection request is generated via SCF. After SCF issues the POFF notification (SCExR.POFF), if domain fails to issue disconnection command or disconnection trigger display command within certain time, SCF would disconnect the domain. The process follows Error Disconnection process as explained in section 3.2.2. 3.2.5 EVENT NOTIFICATION (Regular event) Event notification is sent to indicate events that do not affect the system behaviour directly. Environmental change, alarm on device, status change or error on other systems are some such events. Domain can issue a command to SCF to get details on the event. IMPLEMENTATION NOTES: The following table shows the suggested sequence of events that may take place during the event notification. ----------------------------------------------------------------------- SCF Driver/OBP SCF --------------------------------- ------------------------------- 1. Set SCFI Status Register (SSR.EVENT ON) Event Notification | +-------------------------------------+ | V 1. Read SCFI Status Register (SSR.EVENT ON) 2. Send a command to SCF to display event contents (*) | +-------------------------------------+ | V <------------------------ 2. Display the event contents ----------------------------------------------------------------------- (*) May be omitted 3.2.6 ALIVE NOTIFICATION Alive notification is described in section 4.2.2 3.2.7 MODE CHANGE NOTIFICATION Key switch change notification is sent to indicate that the key/mode switch status has changed. SSR.MODE_CHANGED is set to indicate the notification. The status of key switch is also available in SSR.MODE_SWITCH. Mode Switch can be one of the four states: Maintenance mode - 0x00 Unlock mode - 0x01 Lock mode - 0x02 Undefined - 0x03 4. DOMAIN TO SCF - INTERFACE COMMAND REFERENCE The SCF Communication Interface identifies each command by combining "command code" which indicates the command category and the "sub-command code" which identifies each command in the category. Each of these commands can be sent to SCF by using either of SS, LS or SL format as discussed in sections 3.1.1 - 3.1.3. Following is the minimal set of SCF commands that need to be supported by SCF interface: ------------------------------------------------------------------------- Command description Command code Subcommand code ----------------------- -------------------------- --------------------- Category - SCF Path Control: SCF command path switch CMD_SCFI_PATH(0x10) SUB_CMD_PATH(0x00) SCF console path switch CMD_SCFI_PATH(0x10) SUB_CSL_PATH(0x11) ------------------------------------------------------------------------- Category - System Status: Start alive check CMD_ALIVE_CHECK(0x20) SUB_ALIVE_START(0x30) Stop alive check CMD_ALIVE_CHECK(0x20) SUB_ALIVE_STOP(0x50) System status report CMD_REPORT(0x21) SUB_SYS_STAT_RPT(0x40) System status report2 CMD_REPORT(0x21) SUB_SYS_STAT_RPT_NOPATH (No SCFI path check) (0x51) Domain phase notification CMD_PHASE(0x22) SUB_PHASE_PRINT(0x10) ------------------------------------------------------------------------- Category - Power Supply Control: Domain reset CMD_PART_RCI_POW_CTR(0x30) SUB_RESET(0x04) Domain poweroff CMD_PART_RCI_POW_CTR(0x30) SUB_POFF(0x13) Domain poweroff trigger CMD_PART_RCI_POW_CTR(0x30) SUB_POFFID(0x19) ------------------------------------------------------------------------- Category - Calender Control: Get time of the day CMD_GETTIMEOFDAY(0x60) SUB_GETTIMEOFDAY(0x02) ------------------------------------------------------------------------- POST/OBP Information: OBP Operation mode delete CMD_POST_MODE(0x70) SUB_OBPMODE_DEL(0x03) OBP environment variable CMD_OBPENV_VARIABLE(0x72) SUB_OBPENV_SET(0x02) control ------------------------------------------------------------------------- Category - File Transfer: File download ready CMD_FILE_DOWNLOAD(0x74) SUB_FILEDL_READY(0x01) File download request CMD_FILE_DOWNLOAD(0x74) SUB_FILEDL_REQ(0x02) File upload ready CMD_FILE_DOWNLOAD(0x74) SUB_FILEUP_READY(0x10) File upload request CMD_FILE_DOWNLOAD(0x74) SUB_FILEUP_SET(0x20) File transfer stop CMD_FILE_DOWNLOAD(0x74) SUB_TRANSFER_STOP(0x40) ------------------------------------------------------------------------- Category - Domain Information: SB degradation notify CMD_DOMAIN_INFO(0x81) SUB_SB_DEGR(0x01) CPU degradation notify CMD_DOMAIN_INFO(0x81) SUB_CPU_DEGR(0x02) Device option info CMD_DOMAIN_INFO(0x81) SUB_OPTION_DISP(0x04) Get CPU degradation info CMD_DOMAIN_INFO(0x81) SUB_CPU_DEGR_INF(0x08) PCICH degradation notify CMD_DOMAIN_INFO(0x81) SUB_PCICH_DEGR(0x10) Memory reconfiguration CMD_DOMAIN_INFO(0x81) SUB_MEMSTR_INF(0x20) HWD collection request CMD_DOMAIN_INFO(0x81) SUB_HWD_INF(0x40) OBP completion notify CMD_DOMAIN_INFO(0x81) SUB_OBP_COMP(0x43) OBP PCI Config info CMD_DOMAIN_INFO(0x81) SUB_PCI_OBP_CONFIG(0x51) notification Solaris PCI Config info CMD_DOMAIN_INFO(0x81) SUB_PCI_HP_CONFIG(0x52) notification PCI Config Info display CMD_DOMAIN_INFO(0x81) SUB_PCI_DISP(0x54) PCI Hotplug reset CMD_DOMAIN_INFO(0x81) SUB_PHP_RESET(0x61) Disk LED display CMD_DOMAIN_INFO(0x81) SUB_DISK_LED_DISP(0x70) Disk LED control (ON) CMD_DOMAIN_INFO(0x81) SUB_DISK_LED_ON(0x73) Disk LED control (Blink) CMD_DOMAIN_INFO(0x81) SUB_DISK_LED_BLINK(0x75) Disk LED control (Off) CMD_DOMAIN_INFO(0x81) SUB_DISK_LED_OFF(0x76) ------------------------------------------------------------------------- Category - SCF Diagnostics: MBC interrupt test CMD_SCF_DIAG(0x90) SUB_MBC_SCFI_IF(0x03) TTY loopback mode CMD_SCF_DIAG(0x90) SUB_TTY_LOOPBACK(0x05) ------------------------------------------------------------------------- Category - Dynamic Reconfiguration: SB Status display CMD_DR(0xA2) SUB_SB_SENSE(0x00) All SB status display CMD_DR(0xA2) SUB_SB_SENSE_ALL(0x18) SB reconfiguration CMD_DR(0xA2) SUB_SB_CONF_CHG(0x11) SB build complete CMD_DR(0xA2) SUB_SB_BUILD_COMP(0x12) Waiting Notification CMD_DR(0xA2) SUB_SB_WAITING(0x03) FMEMA control CMD_FMEMA_CTL(0xA6) SUB_PA_SWAP(0x10) ------------------------------------------------------------------------- Category - Logging Information/ Fault information control: Log registration(OBP) CMD_ERRLOG(0xB0) SUB_ERRLOG_SET(0x22) Log registration(MADM) CMD_ERRLOG(0xB0) SUB_ERRLOG_SET(0x26) Watchdog log notification CMD_ERRLOG(0xB0) SUB_WDLOG_NOTICE(0x24) ------------------------------------------------------------------------- Category - OS-SCF Data Control OS send command CMD_OS_XSCF_CTL(0xC5) SUB_OS_SEND(0x00-0x7f) OS receive command CMD_OS_XSCF_CTL(0xC5) SUB_OS_RECEIVE(0x80-0xff) ------------------------------------------------------------------------- 4.1 RETURN VALUES Each command can terminate with one of the following return value. The return status is available in SSR.COM_RETURN_CODE. ------------------------------------------------------------------------- Return Value Description --------------------- ------------------------------------------------- NORMAL_END (0x0) Command executed normally. BUF_FULL (0x1) Indicates that the buffer in use in SCF is full. Command should be retried upto 10 times at 500 ms interval. RCI_BUSY (0x2) Indicates RCI network is busy. Command should be retried upto 15 times at 3 seconds interval. INTERFACE (0x3) Indicates that an Interface error occured during the communication. Error such as data destroyed in data tx, register access failed, or data tx failed. Reissue the command, no delay needed before reissue. E_NOT_SUPPORTED (0x8) Indicates that the command or sub-command is not supported. E_PARAM (0x9) Indicates that an incorrect parameter has been specified with the command. E_SCFI_NOPATH (0xA) SCFI path voilation. Indicates that the command has been issued using a SCFI path that is not selected by SCF. It is necessary to issue the command using the SCFI path specified in "SCFI path switching" command. E_RCI_ACCESS (0xB) Indicates that the device corresponding to specified address is not on RCI network or is inactive. E_HARD (0xC) Indicates that the error occured in the Hardware (TOD, NVRAM, FMEM)operation on SCF. No need to retry. RCI_NS (0xF) Indicates that the RCI is not supported. Other Values Usually value other then above never returned. If returned with invalid value, handle in same manner as E_NOT_SUPPORTED. ------------------------------------------------------------------------- 4.2 SCF INTERFACE COMMAND DETAILES Following is a detailed description of all the SCF interface commands along with the command format and payload information. 4.2.1 SCFI PATH CONTROL 4.2.1.1 SCFI Command Path Switching This command is used to specify the CMU-CH which communicates with SCF (SCFI path) among many CMU-CH in the domain. The CMU-CH that is used to issues the SCFI Command Path Switching command indicates the CMU-CH that will be used as the SCFI path for that domain. In case the domain has only one CMU-CH, it is still necessary to issue this command to select the SCFI path. Command Code : CMD_SCFI_PATH (0x10) Sub Command Code : SUB_CMD_PATH (0x00) Tx Data : None Rx Data : None Protocol used : SS (3.1.1) IMPLEMENTATION NOTES: The following table shows the suggested sequence of events that may take place during SCFI command path switching. --------------------------------------------------------------------------- Event SCF POST/OBP SCF driver ---------------- ----------------- -------------------- ------------------- Domain power-on Generate SCFI path event information in all LSBs of the domain Domain power-on Domain power-on ---+ | V POST starts. Refers to SCFI path info & registers the valid path to SCF via SCFI <----- COMMAND PATH SWITCHING command Register the current path to SCFI path information Send SCFI commands using selected SCFI <------ path OS Starts Take over SCFI path Send SCFI commands using selected SCFI <--------------------------- path POST/OBP/SCF driver POST/OBP/SCF driver refers to the SCFI need to switch SCFI path information and registers a valid path SCFI path via COMMAND PATH SWITCHING <------ command <------------------------------ Register the current path to SCFI path information Send SCFI commands using selected SCFI <------ path <------------------------------ SCF needs to Update SCFI path info switch SCFI about the SCFI path path degrade. Interrupt the domain to indicate SCFI path change -------> PATH CHANGE INT ------------------------------> Refer to SCFI path info and register a new valid path to SCF via COMMAND PATH SWITCHING command <------ <------------------------------ --------------------------------------------------------------------------- 4.2.1.2 SCFI Console Path Switching This is a POST/OBP dedicated command that specify the TTY line (console path) that is selected as a console among many TTY ports in a domain. Console path switching at OS level is done by exchanging XON/XOFF control codes. Command Code : CMD_SCFI_PATH (0x10) Sub Command Code : SUB_CSL_PATH (0x11) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB#| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB# : specifies the LSB where the TTY used as console is located. If invalid LSB# is specified, command terminates with E_PARAM. CSUM : is the checksum of SCFI Tx Data Register bytes 0-14. Rx Data : None Protocol used : SS (3.1.1) IMPLEMENTATION NOTES: The following table shows the suggested sequence of events that may take place during SCFI console path switching. --------------------------------------------------------------------------- Event SCF POST/OBP SU driver(OS) ---------------- ----------------- -------------------- ------------------- Domain power-on Generate console event path info in SRAM of all LSBs of the domain Domain power-on Domain power-on ----+ | V POST starts. Refers to console path info and specifies the valid path to SCF via CONSOLE <------ PATH SWITCHING command Register the current path to console path info Starts Character output <------ on the console Outputs characters from SCF-LAN console OS Starts OS boots. Takes over the console path selected by OBP Output characters from the console <-------------------------- path taken from OBP Order console path <------------------ Orders switching by switching by using ------------------> using XON/XOFF XON/XOFF control control code code. Update the console path --------------------------------------------------------------------------- 4.2.2 SYSTEM STATUS CONTROL 4.2.2.1 Alive Check Control/Start Alive Check Alive check is a periodic monitoring command for SCF to detect the domain hang-up. Alive check function generates interrupts from SCF to each partition at specified intervals (ALIVE interrupt) and checks whether the normal response is returned to that interrupt or not. Command Code : CMD_ALIVE_CHECK (0x20) Sub Command Code : SUB_ALIVE_START (0x30) Tx Data : In SCFI Tx Data Register Tx Data Size : 8 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |MTID|PHCD|INTR| TO | PM | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 MTID - Monitoring Target ID Code indicates the component of monitoring target. POST:0x01, OBP:0x02, SCF driver:0x10 PHCD - Phase Code to monitor progress. Indicates the phase of the monitored component (indicated by MTID). A different code must be used every time Alive check start is issued for the same component. If SCF detects that a monitored component has issued the same phase code in series, it is treated as monitoring error. INTR - Interrupt interval. Specifies the Alive interrupt notification interval. Value is configurable in the unit of 10 seconds with the maximum interval of 30 min. 1 <= INTR <= 0xB4. INTR value outside the range is regarded as parameter error. SCF sends ALIVE interrupt notification after every N seconds as specified by interrupt interval. Interrupt interval can be less than or equal to the monitoring timeout value (INTR <= TO). TO - Monitoring timeout period. If the Alive Start command is not issued before the monitoring timeout period expires, domain may be restarted. Value is configurable in the unit of 10 sec with the minimum interval of 3 min to a max interval of 30 minutes. 0x18 <= TO <= 0xB4 'TO' value outside the range is regarded as parameter error. The value of 'TO' can be greater than or equal to the interrupt interval value (TO >= INTR) PM - Panic monitoring timeout period. Monitors the status after panic has occured until the domain is restarted. Timeout can be upto 360 minutes. Rx Data : None Protocol used : SS (3.1.1) 4.2.2.2 Alive Check Control/Stop Alive Check Stop Alive check is issued when domain wants to stop the alive check monitoring. Command Code : CMD_ALIVE_CHECK (0x20) Sub Command Code : SUB_ALIVE_STOP (0x50) Tx Data : None Rx Data : None Protocol used : SS (3.1.1) IMPLEMENTATION NOTES: The following tables shows the suggested sequence of events that may take place for Alive check. Based on whether a particular module (software module on domain - POST, OBP, OS) handles interrupts or not, Alive check may be handled differently in Firmware (POST/OBP) than in OS although the command format remains same for all. O Alive check in firmware (POST/OBP) - without Alive interrupts POST/OBP periodically issues ALIVE START command to SCF. When SCF receives ALIVE START, it starts the timer to perform monitoring. When timeout occurs because there is no new ALIVE START command from OBP, SCF may reboot or disconnect the domain. --------------------------------------------------------------------------- POST/OBP SCF ------------------------------------ ------------------------------------ ALIVE START Command . Monitoring target POST/OBP . Phase code (X) . Interval (time=A) . Timeout (time=B, A>=B) | +-------------------------> Command received * -- . Timer starts | || . Record parameters |A ||B | || <------------------------- Command returns | || | || ALIVE START Command | || . Monitoring target POST/OBP | || . Phase code (Y) | || . Interval (time=A) | || . Timeout (time=B) | || | | || +-------------------------> - -- Timer A & B restart * || | || |A ||B <-------------------------- Command returns | || | || | || [ DOMAIN HANG ] | || | || | || | || | || | || <-------------------------- Interval A expires - || (Alive Interrupt) . || .A || . || . || . || Timeout B expires . -- <-------------------------- SCF Command Path Switch || Restart timers . || .A ||B . || ~ ~~ . || . || . -- Timeout B expires <-------------------------- Collect HW Info & OBP trace. Issue BPOR. Alive monitoring error detected before OBP is completed. <-------------------------- Force domain disconnect. POFF. --------------------------------------------------------------------------- O Alive check in OS - with Alive interrupts OS issues ALIVE START command to start the Alive monitoring. After Alive monitoring is started, SCF issues Alive interrupt at regular intervals. SCF driver writes to Alive Check Register and sends a response interrupt to SCF. It also write a 'phase' value which must be different from the previous 'phase' value. When a timeout occurs because there is no response from the domain, SCF may reboot or disconnect the domain. --------------------------------------------------------------------------- SCF driver SCF ------------------------------------ ------------------------------------ ALIVE START Command . Monitoring target POST/OBP . Phase code (X) . Interval (time=A) . Timeout (time=B, A*2 < B) | +-------------------------> Command received * -- . Timer starts | || . Record parameters |A ||B | || <------------------------- Command returns | || | || | || | || | || | || <------------------------- Timer A expires - || (Alive Interrupt) * || |A || Send a response to SCF by writing | || to Alive Check Register -----------> - -- Timer A & B restart *A ||B | || [DOMAIN HANG] | || | || | || | || <------------------------- Timer A expires - || |A || | || | || | || | || | || | || . || Timeout B expires . -- <-------------------------- SCF Command Path . ||B switch and restart . || the timers . || . || <------------------------- Timer A expires . || . || . || . || . || Timeout B expires - -- <-------------------------- Send panel request to generate panic Start timer E after panel request -- [PANIC] ||E || System Status Report || Command (panic 0x01) ---------------> Start timer D - || |D || | || | || Character output ---------------> Timer D stops - || || Character output ---------------> || || Reboot ---------------> Timer E stops -- & start reboot process Timeout D or E expires <-------------------------- XIR -- "ctrace" collected by OBP Timer C starts to ||C monitor activity from || domain || || Character output ---------------> Timer C stops -- ||C || Character output ---------------> -- ||C || Reboot ---------------> -- Timeout C expiers <-------------------------- Collect HW Info & OBP trace. Issue BPOR. Alive monitoring error detected before OBP is completed. <-------------------------- Force domain disconnect. POFF. --------------------------------------------------------------------------- 4.2.2.3 System Status Reporting Functions 4.2.2.3.1 System Status Notification A Domain notifies its status to SCF using System Status Reporting function. SCF driver (OS) uses this command to notify panic, start of shutdown or system running state. OBP uses this command when OS boot is started and also when the OBP prompt is entered from OS. When this command is issued during Alive Check, Alive Check would be stopped. Command Code : CMD_REPORT (0x21) Sub Command Code : SUB_SYSTEM_STATUS_RPT (0x40) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |CODE| AINFO | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 CODE - Status Notification Code. -------------------------------------------- Code Status Issuing Component --------- ---------------- ----------------- 0x00 Power Off SCF(*) 0x01 Panic SCF driver 0x02 Shutdown start SCF driver 0x03-0x07 Reserved 0x08 Initialize Phase SCF(*) 0x09 Boot process OBP 0x0A System running SCF driver 0x0B PROM Monitor OBP 0x0C-0xEF Reserved 0xF0-0xFF Reserved for cluster control -------------------------------------------- (*) Internal notification in SCF. No command issued from domain. AINFO - Additional Information is used when the notification code is Shutdown start (0x02). 0x000000 : Normal Power-off (POFF) 0x010000 : Abnormal Power-off (Shutdown) Rx Data : None Protocol used : SS (3.1.1) 4.2.2.3.2 System Status Notification II (with no SCFI path check) System Status Notification II command usage and function is same as System Status Notification command defined in 4.2.2.3.1. The only difference is that SCFI path checking is not done when this command is issued. 4.2.2.4 Domain Phase Notification Domain Phase Notification command is used to send the details of the phase in which the domain is currently in. Phase indicates the state in which the domain is currently executing. SCF displays the message string on the SCF monitoring message screen along with other info like time, domain number, host name, etc. Command Code : CMD_PHASE (0x22) Sub Command Code : SUB_PHASE_PRINT (0x10) Tx Data : In SRAM Tx Buffer Tx Data Size : 33 bytes (32 characters + null character) Tx Data Contents : Null terminated ASCII string that contains details on the domain phase. Rx Data : None Protocol used : LS (3.1.2) IMPLEMENTATION NOTES: Following are some examples of the "phase" strings that an implementation may chose to use: "OBP:Resetting" - System Reset by OBP "OBP:Booting" - OS Boot initiated by OBP "OBP:POST Started" - Control transferred to POST "OBP:POST Finished" - Control returned from POST 4.2.3 POWER SUPPLY CONTROL 4.2.3.1 Domain Reset Domain reset command causes the reset of the domain that issues this command. Command Code : CMD_PART_RCI_POW_CTR (0x30) Sub Command Code : SUB_RESET (0x04) Tx Data : None Rx Data : None Protocol used : SS (3.1.1) 4.2.3.2 Domain Power-off Domain power-off command causes power-off of the domain that issued this command. Command Code : CMD_PART_RCI_POW_CTR (0x30) Sub Command Code : SUB_POFF (0x13) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |POFF| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 POFF - Power off type (0: normal, 0x20: power failure) Rx Data : None Protocol used : SS (3.1.1) 4.2.3.3 Power-off Trigger Power-off Trigger command is used to obtain the information on the last power-off in the partition. Indicates the reason that triggered last power-off. Command Code : CMD_PART_RCI_POW_CTR (0x30) Sub Command Code : SUB_POFFID (0x19) Tx Data : None Rx Data : In SCFI Rx Data Register Rx Data Size : 4 bytes Rx Data Contents : byte0 byte7 +---------------------------------------+ |TRIG| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 TRIG - Info on the last poweroff trigger. 0x23 XSCF operation (command from XSCF shell/BUI) 0x0c Power failure 0x0d Error (temperature, power supply, cooling etc.) Protocol used : SS (3.1.1) 4.2.4 CALENDER CONTROL System time is maintained by the TOD facility on the SCF. Calender control command is used to obtain the current date & time. This command also returns the difference between the domain time and the system time. SCF also maintains the time difference between a domain and the system time. Note: Domain time and system time may be different in case a domain selects a different time zone. Command Code : CMD_GETTIMEOFDAY (0x60) Sub Command Code : SUB_GETTIMEOFDAY (0x02) Tx Data : None Rx Data : In SRAM Rx Buffer Rx Data Size : 16 bytes Rx Data Contents : byte0 byte7 +---------------------------------------+ | Time (8 bytes) | +---------------------------------------+ | Time Variance (8 bytes) | +---------------------------------------+ byte8 byte15 Time : Accumulated time in seconds since 1/1/1970 00:00:00 Time Variance : Difference between system time and domain time in seconds. Protocol used : SL (3.1.3) IMPLEMENTATION NOTES: The following table shows the suggested sequence of events to manage date and time. --------------------------------------------------------------------------- SCF OBP OS ------------------------ --------------------- ------------------------- Domain power-on ---------> OBP starts executing Issue GETTIMEOFDAY cmd +----------------- to get the date and time | from SCF V Send 'time' & time variance (diff_A) -------> OS boot start ------------> +-------------- Get time of the day | V Send 'time' + diff_A ------> Domain time is sum of 'time' and 'diff_A' Date/time changed using 'date' command Notify time difference +--------------- (diff_B) to OBP & SCF | V Update diff_A+diff_B in SRAM. Issue time modification +----------------- command (section 5) | V Backup SRAM time difference in non volatile memory <------- Shutdown <---------- power off command Backup SRAM time difference in non volatile memory --------------------------------------------------------------------------- 4.2.5 POST/OBP INFORMATION 4.2.5.1 OBP Operational Mode OBP Operational mode command is used to modify the operational mode info that resides on the SCF. OBP obtains the operational mode info in Hardware Descriptor table at the domain start time. The operational mode specifies the parameters like diag-level and boot-mode that can override the NVRAM configuration variable settings. Using the OBP Operational mode command the specified operational mode settings can be deleted. Command Code : CMD_POST_MODE (0x70) Sub Command Code : SUB_OBPMODE_DEL (0x03) Tx Data : In SCFI Tx Data Register Tx Data Size : 8 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ | TOOM | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 TOOM - Target OBP Operational Mode bitmap. Each bit specifies an operational mode. To delete an operational mode set the corresponding bit as "1". To delete all, set all 0xf. Rx Data : None Protocol use : SS (3.1.1) NOTE: Operational mode can only be set from SCF user interface. 4.2.5.2 OBP Environment Variable Control OBP Environment Variable Control command is used to transfer the OBP configuration variables from the NVRAM, on the specified LSB, to the SCF. When SCF receives this command, SCF transfers the OBP configuration variables to SCF. If multiple LSBs are specified, SCF randomly selects one LSB. If there is an error while transferring the contents, SCF selects another LSB specified in the command. Command Code : CMD_OBPENV_VARIABLE (0x72) Sub Command Code : SUB_OBPENV_SET (0x02) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ | LSB Bitmap | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB Bitmap - 32 bit bitmap. Bit N specifies LSB N. SCF selects one of the LSBs indicated in the bitmap to transfer the NVRAM contents. Rx Data : None Protocol use : SS (3.1.1) 4.2.6 FILE TRANSFER File Transfer commands are used to transfer data files between SCF and the domain SRAM. 4.2.6.1 Download Ready Command Download Ready command prepares the SCF to locate the specified file on the NFS-mounted directories on SCF. This file is prepared to be downloaded from SCF to the domain SRAM buffer. Download Request Command (4.2.6.2) must be issued to download the file after Download Ready Command is executed successfully. Command Code : CMD_FILE_DOWNLOAD (0x74) Sub Command Code : SUB_FILEDL_READY (0x01) Tx Data : In SRAM Tx Buffer Tx Data Size : Upto 264 bytes Tx Data Contents : Bytes 0-7 : Reserved (0) Bytes 8-263 : File name (null terminated, upto 256 bytes) Rx Data : In SCFI Rx Data Register Rx Data Size : 4 bytes Rx Data Contents : byte0 byte7 +---------------------------------------+ | File size | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 File size : File size in bytes. 0xffffffff if file not found. Protocol used : LS (3.1.2) 4.2.6.2 Download Request Command Download Request command initiates the data transfer of file on SCF to the domain SRAM Rx Buffer. Download Ready Command (4.2.6.1) must be executed successfully before the first Download Request can be issued. This command can download upto 64KB data at one time. To transfer bigger files, multiple commands need to be issues. Command Code : CMD_FILE_DOWNLOAD (0x74) Sub Command Code : SUB_FILEDL_REQ (0x02) Tx Data : None Rx Data : In SRAM Rx Buffer Rx Data Size : Upto 64KB Rx Data Contents : File Data contents Protocol used : SL (3.1.3) 4.2.6.3 Upload Ready Command Upload Ready command prepares the SCF to open a new file at the specified file-path on the NFS-mounted directories. The contents of this file can then be uploaded from domain SRAM buffer to the SCF. Upload Request Command (4.2.6.4) must be issued to upload the file contents after Upload Ready Command is executed successfully. Command Code : CMD_FILE_DOWNLOAD (0x74) Sub Command Code : SUB_FILEUP_READY (0x10) Tx Data : In SRAM Tx Buffer Tx Data Size : Upto 264 bytes Tx Data Contents : Bytes 0-7 : Size of the file to be uploaded Bytes 8-263 : File name (null terminated, upto 256 bytes) Rx Data : In SCFI Rx Data Register Rx Data Size : 1 byte Rx Data Contents : byte0 byte7 +---------------------------------------+ | RSP| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 RSP : Response code to indicate if SCF is able to setup area for the requested file. 0x00 : ok, 0xff : failed Protocol used : LS (3.1.2) 4.2.6.4 Upload Request Command Upload Request Command transfers the data from the domain Tx SRAM buffer to the specified offset in the file that was setup using Upload Ready Command. This command can upload upto 64KB data at one time. To transfer larger data, multiple commands need to be issued. Upload Ready commmand must be issued successfully before the first upload request can be issued. Command Code : CMD_FILE_DOWNLOAD (0x74) Sub Command Code : SUB_FILEUP_REQ (0x20) Tx Data : In SRAM Tx Buffer Tx Data Size : Upto 64K Tx Data Contents : File data contents Rx Data : None Protocol used : LS (3.1.2) 4.2.6.5 Transfer Stop Command Transfer Stop command is issued to stop file transfer (upload/download) that was initiated by Download Ready or Upload Ready command. Command Code : CMD_FILE_DOWNLOAD (0x74) Sub Command Code : SUB_TRANSFER_STOP (0x40) Tx Data : None Rx Data : None Protocol use : SS (3.1.1) 4.2.8 DOMAIN INFORMATION Domain Information commands are used to send or receive device related information between SCF and the domain. 4.2.8.1 SB Degradation Notification SB Degradation Notification command notifies the SCF of a system board degradation and thus requests SCF to start the SB degradation process. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_SB_DEGR (0x01) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB#| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB# : Logical System Board number Rx Data : None Protocol used : SS (3.1.1) 4.2.8.2 CPU Degradation Notification CPU Degradation Notification command notifies the SCF of a CPU degradation and thus requests SCF to start the CPU degradation process. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_CPU_DEGR (0x02) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ | CPU# | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 CPU# : Logical CPU number Rx Data : None Protocol used : SS (3.1.1) 4.2.8.3 Device Option Display Device Option Command is used to exchange the information about the capabililty and features supported by the Domain software and the SCF software. Domain initiates the command by sending the information about its capability and interface version information to SCF. SCF in turn returns its own capability and interface version information. If both the sides support a specific capability, then that feature/capability is enabled in the software. Refer to section 3.1.5 for interface version handling. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_OPTION_DISP (0x04) Tx Data : In SCFI Tx Data Register Tx Data Size : 16 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 |DID | OP | 00 | +---------------------------------------+ | DR |PHP |XPAR|PPAR|FMMA|RMAJ|RMIN|CSUM| +---------------------------------------+ byte8 byte15 Rx Data : In SCFI Rx Data Register Rx Data Size : 16 bytes Rx Data Contents : byte0 byte7 +---------------------------------------+ | CHID |MAX |DID | OP | 00 | +---------------------------------------+ | DR |PHP |XPAR|PPAR|FMMA|SMAJ|SMIN|CSUM| +---------------------------------------+ byte8 byte15 CHID : Chassis identification information 1:FF1, 2:FF2, 3:DC1, 4:DC2, 5:DC3, 6:Ikkaku MAX : Maximum number of CMUs (and IOUs) supported by the system For FF1 model = 0x01 CMU For FF2 model = 0x02 CMUs For DC1 model = 0x04 CMUs For DC2 model = 0x08 CMUs For DC3 model = 0x10 CMUs For Ikkaku model = 0x01 CMU DID : Domain ID (0x0 - 0xF) OP : Option info. Option function used in XSCF-Domain DR : DR Supported? (0: not supported, 1: supported) PHP : PCI Hotplug supported ? (0: not supported, 1: supported) XPAR : XPAR (eXtended PARtitioning of a system board into four partitions) supported? (0: not supported, 1: supported) PPAR : Physical partitioning supported? (0: not supported, 1: supported) FMMA : Floating Memory Addressing supported? Indicates if DR operation of a system board with kernel memory (cage) supported or not. (0: not supported, 1: supported) RMAJ : Requested Major Version number RMIN : Requested Minor Version number SMAJ : Supported Major Version number SMIN : Supported Minor Version number Protocol used : SS (3.1.1) 4.2.8.4 Get CPU Degradation Information Get CPU degradation Information command is used to get the list of CPUs that have been degraded on a specified LSB since the time POST started. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_CPUDEGR_INF (0x08) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB#| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB# : Logical System Board number Rx Data : In SCFI Rx Data Register Rx Data Size : 4 bytes Rx Data Contents : byte0 byte7 +---------------------------------------+ | Error_CPU_Bitmap | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 Error_CPU_Bitmap : 32-bit bit map of degraded CPUs. Bit N = CPU N Protocol used : SS (3.1.1) 4.2.8.5 PCI-CH Degradation Notification PCI-CH Degradation Notification command notifies the SCF of a PCI-CH degradation and thus requests SCF to start the PCI-CH degradation process. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_PCICH_DEGR (0x10) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ | CH#|Leaf|LSB#| 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 CH# : Logical PCI-CH number Leaf : Indicates whether a specific leaf failed or the entire channel failed. 0: PCI-CH (entire channel) 1: Leaf A 2: Leaf B LSB# : Logical System Board number Rx Data : None Protocol used : SS (3.1.1) 4.2.8.6 Memory Reconfiguration Memory Reconfiguration command requests the SCF to change the memory configuration as per the degradation status noted by the SCF. SCF will attempt to reconfigure the memory to get a usable configuration and return the new configuration information to the domain. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_MEMSTR_INF (0x20) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB#| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 Rx Data : In SCFI Rx Data Register Rx Data Size : 4 bytes Rx Data Contents : byte0 byte7 +---------------------------------------+ |DIVM|PNUM|INTL| 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 DIVM : Division Mode. Number of memory segments after the change (1, 2 or 4) PNUM : Memory piece number alotted to the LSB after the change (0-3) INTL : Interleave factor after the change (2, 4, 8 or 16) Protocol used : SS (3.1.1) 4.2.8.7 Hardware Descriptor Information Collection Request Hardware Descriptor Collection command instructs the SCF to copy the hardware descriptors from the SRAMs of all the LSBs in a domain, to the SCF's storage. This way SCF makes a backup copy of all the HWDs from all the LSBs in the domain. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_HWD_INF (0x40) Tx Data : None Rx Data : None Protocol used : SS (3.1.1) 4.2.8.8 OBP Complete Notification OBP Complete Notification command is used by the OBP to notify the domain status, to the SCF, upon OBP completion. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_OBP_COMP (0x43) Tx Data : In SCFI Tx Data Register Tx Data Size : 1 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |flag| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 flag : Domain status at OBP completion 0x00: Normal. Continuous operation available 0x80: Error. Continuous operation not available Rx Data : None Protocol used : SS (3.1.1) 4.2.8.9 OBP PCI Configuration Information Notification OBP PCI Configuration Information Notification command is used by OBP to send information about all the PCI slots in a specific LSB. Multiple commands are needed if domain contains more than one LSB. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_PCI_OBP_CONFIG (0x51) Tx Data : In SRAM Tx Buffer Tx Data Size : 0xF880 bytes (0x470 bytes * 56 slots) Tx Data Contents : Information on all the PCI slots in an LSB. PCI Slot information layout (per slot): +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |00|01|02|03|04|05|06|07|08|09|0A|0B|0C|0D|0E|0F| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0x000 | ATTACHMENT POINT (1054 bytes) | +-----------------------------------------------+ . | . . . | +-----------------------------------------+--+--+ . | . . . |RV|V | +-----------+-----------+-----------------+--+--+ 0x420 | CONNECT | CONFIG | TIME STAMP | +-----------+-----------+-----------------------+ 0x430 | NAME (32 bytes) | +-----------------------------------------------+ | . . . | +-----------------------------------------------+ 0x450 | MODEL (32 bytes) | +-----------------------------------------------+ | . . . | +-----------------------------------------------+ 0x470 ATTACHMENT : ASCII string to indicate the logical position in the POINT domain. Also see 4.2.8.10 e.g. (in OS) /devices/pci@0,600000:PCI#00 e.g. (in OBP) /pci@0,600000: String after ':' is called APID (Attach Point ID). APID is not created by OBP. SCF is responsible of creating the APID in this case. RV : Reserved V : Valid/invalid state of the record 0x00 : Invalid 0x80 : Valid CONNECT : Connect State of the slot when this command was issued. CFGA_STAT_EMPTY = 1 CFGA_STAT_DISCONNECTED = 2 CFGA_STAT_CONNECTED = 3 CONFIG : Configuration status of the slot when command was issued. CFGA_STAT_UNCONFIGURED = 4 CFGA_STAT_CONFIGURED = 5 TIME STAMP : Accumulated time in seconds since Jan. 1st, 1970 NAME : ASCII string name of the device. Valid when a device is connected to the slot. For a multi function device, only the name of function 0 device is available. MODEL : ASCII string model of the device. Valid when a device is connected to the slot. For a multi function device, only the name of function 0 device is available. Rx Data : None Protocol used : LS (3.1.2) 4.2.8.10 Solaris PCI Configuration Information Notification Solaris PCI Configuration Information Notification command is used by Solaris to send information about the PCI device in the PCI slot at PCI hotplug time. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_PCI_HP_CONFIG (0x52) Tx Data : In SRAM Tx Buffer Tx Data Size : 0x470 bytes Tx Data Contents : Information on the PCI device at Hotplug event. PCI slot information format defined in 4.2.8.9 Rx Data : None Protocol used : LS (3.1.2) 4.2.8.11 PCI Configuration Information Display PCI Configuration Information Display command is used to obtain the information on the PCI devices in the PCI slots in specified LSB. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_PCI_DISP (0x54) Tx Data : In SCFI Tx Data Register Tx Data Size : 1 byte Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB#| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB# : Logical System Board number Rx Data : In SRAM Rx Buffer Rx Data Size : 0xF880 bytes (0x470 bytes * 56 slots) Rx Data Contents : Information on all the PCI slots in an LSB. PCI Slot information layout defined in 4.2.8.9 Protocol used : SL (3.1.3) 4.2.8.12 PCI Hotplug Reset PCI Hotplug Reset command is issued when a PCI device is hotplugged into the domain. Domain detects the hotplug operation and issues PCI hotplug reset command to SCF. If the hotplug operation is performed on the slot directly under the Host IO bridge (Oberon), then SCF performs the leaf reset. For other slots (under switches/bridges/IOBox), reset is not performed, just success is returned. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_PHP_RESET (0x61) Tx Data : In SRAM Tx Buffer Tx Data Size : Upto 0x1054 bytes Tx Data Contents : PCI device attachment point string upto 0x1054 bytes. ASCII string to indicate the logical position in the domain. e.g. iou#1-pci#2 e.g. iou#1-pci#2/iob345.slot1 Rx Data : In SCFI Rx Data Register Rx Data Size : 1 byte Rx Data Contents : byte0 byte7 +---------------------------------------+ |COMP| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 COMP : Completion Code 0 : Success Other : Error Protocol used : LS (3.1.2) 4.2.8.13 Disk LED Status Display Disk LED Status Display command is used to obtain the LED status of the internal disk. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_DISK_LED_DISP (0x70) Tx Data : In SRAM Tx Buffer Tx Data Size : Upto 0x200 bytes Tx Data Contents : Disk device attach point string upto 0x200 bytes. ASCII string to indicate the logical position on the domain. e.g. /devices/pci@0,600000:1 The string after ':' is the port number. Rx Data : In SCFI Rx Data Register Rx Data Size : 1 byte Rx Data Contents : byte0 byte7 +---------------------------------------+ |STAT| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 STAT : Disk LED Status 1 : ON 2 : BLINKING 4 : OFF Protocol used : LS (3.1.2) 4.2.8.14 Disk LED Control - LED ON LED ON Command is used to turn ON the internal disk LED. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_DISK_LED_ON (0x73) Tx Data : In SRAM Tx Buffer Tx Data Size : Upto 0x200 bytes Tx Data Contents : Disk device attach point string upto 0x200 bytes. ASCII string to indicate the logical position on the domain. e.g. /devices/pci@0,600000:1 The string after ':' is the port number. Rx Data : None Protocol used : LS (3.1.2) 4.2.8.15 Disk LED Control - LED BLINK LED BLINK Command is used to set the internal disk LED to blink. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_DISK_LED_BLINK (0x75) Tx Data : In SRAM Tx Buffer Tx Data Size : Upto 0x200 bytes Tx Data Contents : Disk device attach point string upto 0x200 bytes. ASCII string to indicate the logical position on the domain. e.g. /devices/pci@0,600000:1 The string after ':' is the port number. Rx Data : None Protocol used : LS (3.1.2) 4.2.8.16 Disk LED Control - LED OFF LED OFF Command is used to turn OFF the internal disk LED. Command Code : CMD_DOMAIN_INFO (0x81) Sub Command Code : SUB_DISK_LED_OFF (0x76) Tx Data : In SRAM Tx Buffer Tx Data Size : Upto 0x200 bytes Tx Data Contents : Disk device attach point string upto 0x200 bytes. ASCII string to indicate the logical position on the domain. e.g. /devices/pci@0,600000:1 The string after ':' is the port number. Rx Data : None Protocol used : LS (3.1.2) 4.2.9 SCF DIAGNOSIS FUNCTION SCF Diagnosis command is used to diagnose the SCF Communication interface. 4.2.9.1 MBC Interrupt Test MBC Interrupt Test command diagnoses the function to control the interrupt between MBC & SCFI. The interrupt control function between MBC & SCFI can be diagnosed by checking whether the Command Complete is normally notified or not, after the command is issued. Command Code : CMD_SCF_DIAG (0x90) Sub Command Code : SUB_MBC_SCFI_IF (0x03) Tx Data : None Rx Data : None Protocol used : SS (3.1.1) 4.2.9.2 TTY Loopback Mode Setting TTY Loopback Mode setting command is used to change the TTY loopback mode to execute the TTY loopback test. At power-on/reset, SCF sets the loopback mode to 0 (no loopback) Command Code : CMD_SCF_DIAG (0x90) Sub Command Code : SUB_TTY_LOOPBACK (0x05) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB#|LPBK| 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB# : LSB number LPBK : Loopback setting 0: No loopback (default) 1: Loopback mode Rx Data : None Protocol used : SS (3.1.1) 4.2.10 DYNAMIC RECONFIGURATION (DR) 4.2.10.1 DR Control DR related commands are used to assist in the DR operation during the system operation. 4.2.10.1.1 SB Configuration Change SB Configuration Change command is used to instruct SCF to reconfigure a specifid system boards. SCF may execute the change request immediately or at domain disconnect or at domain restart depending upon the command parameters. Command Code : CMD_DR (0xA2) Sub Command Code : SUB_SB_CONF_CHG (0x11) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB#|STAT|NPID|OPFL| 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB# : Logical System Board# STAT : SB state. 0x10 - KEEP - SB active replacement function which automatically mounts the detached SB into the same partition again. 0x20 - RELEASE - Detach SB and mark its status as not belonging to any partition i.e. partition id = 0xff 0x40 - CHANGE - Detach the SB from its partition & mount it into other partition. NPID : Next partition ID. It specifies the partition where the SB is to be mounted in case of STAT=CHANGE. OPFL : Operation Flag. The flag indicates the trigger when the the configuration change is to be initiated. 0x00 - Initiate the config change when this command is issued 0x80 - Initiate the detach after the original partition (PID) disconnects or at the power-on reset. SB is attached to the next partition (NPID) at the destination partition executes power-on reset. Rx Data : In SCFI Rx Data Register Rx Data Size : 4 bytes Rx Data Contents : byte0 byte7 +---------------------------------------+ | Error Detail Code | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 Error Code : Error detail code shows the cause of error when SB configuration change command terminates abnormally. +---------------+---------------------------+ | Err Code Bytes| | +---------------+ Description | | 0 | 1 | 2 | 3 | | +---------------+---------------------------+ |0x1|0x0|0x0|0x0| Parameter error | +---------------+---------------------------+ |0x2|0x1|0x0|0x0| Execution condition error | | | | | | - state transition | | | | | | constraint violation | +---------------+---------------------------+ |0x2|0x2|0x0|0x0| Execution condition error | | | | | | - specified command | | | | | | path SB | +---------------+---------------------------+ Protocol used : SS (3.1.1) 4.2.10.1.2 SB Status Display SB Status Display command is used to obtain the status information of the specified system board from SCF. Command Code : CMD_DR (0xA2) Sub Command Code : SUB_SB_SENSE (0x00) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB#| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB# : Logical system board# Rx Data : In SCFI Rx Data Register Rx Data Size : 12 bytes Rx Data Contents : byte0 byte7 +---------------------------------------+ | VF | SB#| SBS|SBSD| PID|NPID|SBTY|OPMD| +---------------------------------------+ |CPU clk | XSB# | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 VF : Valid flag. If VF=0, then the data corresponding to the requested LSB# is not valid. Other values of VF indicate valid data. SB# : Physical system board number of the requested LSB. SBS : System board status. 0x00 : Unconfigured - Unable to start SB configuration change. Includes the case when an error occured in the SB in test partition and also when SB is not mounted in the slot as specified by SB#. 0x80 : Configured - SB is operational in a working partition. Can be a target of detachment by SB configuration change command. 0x84 : Waiting - system board is waiting to be added to operational resources in a partition. 0x10 : Disconnected - SB does not belongs to any operational partition. Mounting to an operational partition can be started by SB configuration command. 0xff : NotSetDID - Status not determined SBSD : System board status detail. Additional detail on SBS. +------+------+--------------------------------+ | SBS | SBSD | Description | +------+------+--------------------------------+ | 0x00 | 0x00 | SB Normal | +------+------+--------------------------------+ | 0x00 | 0x81 | SB Error - JTAG Diag error | +------+------+--------------------------------+ | 0x00 | 0x82 | SB Error - sequence error | +------+------+--------------------------------+ | 0x00 | 0x83 | SB Error - board config error | +------+------+--------------------------------+ | 0x00 | 0x84 | SB Error - Fatal error | +------+------+--------------------------------+ | 0x00 | 0x85 | SB Error - Other SB errors | +------+------+--------------------------------+ | 0x00 | 0x91 | SB Error - SCFI diag error | +------+------+--------------------------------+ | 0x00 | 0x92 | SB Error - POST monitoring | | | | error +------+------+--------------------------------+ | 0x00 | 0x93 | SB Error - Alive check error | +------+------+--------------------------------+ | 0x00 | 0x94 | SB Error - OBP/POST complete | | | | error | +------+------+--------------------------------+ | 0x00 | 0x95 | SB Error - SCFI access error | +------+------+--------------------------------+ | 0x00 | 0x96 | SB Error - DR Sequence error | +------+------+--------------------------------+ | 0x80 | 0x00 Fixed | +------+---------------------------------------+ | 0x84 | 0x00 Fixed | +------+---------------------------------------+ | 0x10 | 0x00 Fixed | +------+---------------------------------------+ PID : Partition ID. PArtition to which the SB currently belongs. 0xFF is it does not belongs to any operational partition. NPID : Next Partition ID. Destination PID or the partition which expects to mount this SB. SBTY : SB type (1-byte). Bits 7-4 : System board type Bits 3-0 : Division mode OPMD : Operational mode CPU clk : CPU Clock frequency value. XSB# : XSB number Bits 15-8 : System board number Bits 07-0 : Offset in the system board Protocol used : SS (3.1.1) 4.2.10.1.3 All SB Status Display All SB Status Display command is used to obtain the status information of all the system board in a domain/partition, from SCF. Command Code : CMD_DR (0xA2) Sub Command Code : SUB_SB_SENSE_ALL (0x18) Tx Data : None Rx Data : In SRAM Rx Buffer Rx Data Size : 0x400 bytes Rx Data Contents : SB status information for all the possible LSBs in a partition. For SB status information see 4.2.10.1.2. Protocol use : SL (3.1.3) 4.2.10.1.4 SB Build Complete SB Build complete command is used to notify the SCF of the status of the system board reconfiguration operation. Command Code : CMD_DR (0xA2) Sub Command Code : SUB_SB_BUILD_COMP (0x12) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB#|Type| 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB# : Logical System board number Type : Type of mount operation 0x00 - OS mount complete 0x01 - OS mount start Rx Data : None Protocol used : SS (3.1.1) 4.2.10.1.5 POST Wait Notification POST Wait Notification command is used to notify the SCF that the POST execution on the system board in the test/temporary partition is completed and the board is now in wait status to be added to an operational partition. Command Code : CMD_DR (0xA2) Sub Command Code : SUB_SB_WAITING (0x03) Tx Data : None Rx Data : None Protocol used : SS (3.1.1) 4.2.10.2 FMEMA Control FMEMA Control command is used to control the Floating Memory Address function. This feature is to support Copy Rename or Physical address swapping between the two boards. Command Code : CMD_FMEMA_CTL (0xA6) Sub Command Code : SUB_PA_SWAP (0x10) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB1|LSB2| 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB1, LSB2 - Logical system board numbers of the boards that are to swap the physical address space. Rx Data : None Protocol used : SS (3.1.1) 4.2.11 ERROR LOG CONTROL/ FAULT INFO CONTROL Error Log Control commands are used to register the error log information to SCF. 4.2.11.1 Error Log Registeration (OBP/POST) This command registers the error event detected by POST/OBP to the SCF. SCF collects the error log from the specified LSB, via a buffer which is identified by the command. Command Code : CMD_ERRLOG (0xB0) Sub Command Code : SUB_POSTOBP_SET (0x22) Tx Data : In SCFI Tx Data Register & SRAM Tx Buffer Tx Data Size : Error log buffer information in SCFI Tx Data Register (data size 12 bytes) Error log in SRAM as speficied by data in SCFI Tx Data Register (data size specified by SCFI Tx Data Register, max 64K) Tx Data Contents : byte0 byte7 +---------------------------------------+ | Error Log Size | SRAM offset | +---------------------------------------+ | SRAM Buffer CSUM | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 Error Log Size : Size of SRAM buffer where error log is saved SRAM offset : Offset in SRAM where error log is saved SRAM Buffer CSUM: Checksum of error log in SRAM Rx Data : None Protocol used : LS (3.1.2) 4.2.11.2 Error Log Registeration (Machine Administration) Error log registeration command for machine administration purposes. Command Code : CMD_ERRLOG (0xB0) Sub Command Code : SUB_POSTOBP_SET_MADMIN (0x26) Tx Data : In SCFI Tx Data Register & SRAM Tx Buffer Tx Data Size : Error log buffer information in SCFI Tx Data Register (data size 12 bytes) Error log in SRAM as speficied by data in SCFI Tx Data Register (data size specified by SCFI Tx Data Register, max 64K) Tx Data Contents : byte0 byte7 +---------------------------------------+ | Error Log Size | 00000000 | +---------------------------------------+ | SRAM Buffer CSUM | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 Predefined offset in SRAM is used for this command See 4.2.11.1 for details on other paramaters. Rx Data : None Protocol used : LS (3.1.2) 4.2.11.3 Watchdog Log Notification This command registers the error log event detected by POSt/OBP to SCF. SCF collects the error log saved in the "RED State Log" area in SRAM of all the LSBs that belong to the domain. Command Code : CMD_ERRLOG (0xB0) Sub Command Code : SUB_WDLOG_NOTICE (0x24) Tx Data : In SCFI Tx Data Register & SRAM Tx Buffer Tx Data Size : Error log buffer information in SCFI Tx Data Register (data size 12 bytes) Error log in SRAM as speficied by data in SCFI Tx Data Register (data size specified by SCFI Tx Data Register, max 64K) Tx Data Contents : byte0 byte7 +---------------------------------------+ |Error Log Size | SRAM offset | +---------------------------------------+ | SRAM Buffer CSUM | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 See 4.2.11.1 for details on the parameters. Rx Data : None Protocol used : LS (3.1.2) 4.2.12 OS-SCF DATA CONTROL OS-SCF Data Control command is used to exchange information between the SCF & OS via the SCF driver. The format of information and the destination address depends upon the sub-command code. 4.2.12.1 OS Send Command This command can be used to send upto 64K of data from OS to SCF. Upto 128 sub-commands (0x00 - 0x7f) can be specified under this command category. The data payload depends upon the sub-command. Command Code : CMD_OS_XSCF_CTL (0xC5) Sub Command Code : SUB_OS_SEND_00 (0x00) - SUB_OS_SEND_7f (0x7f) Tx Data : In SRAM Tx Buffer Tx Data Size : Upto 64 KB Tx Data Contents : Varies as per the sub-command code Rx Data : None Protocol used : LS (3.1.2) 4.2.12.1.1 OS Send Command - Send Node Name This command is used to send the system node name information to the SCF. This command is issued at OS start time or at node name change. Command Code : CMD_OS_XSCF_CTL (0xC5) Sub Command Code : SUB_OS_SEND_NODE_NAME (0x01) Tx Data : In SRAM Tx Buffer Tx Data Size : 0x505 bytes Tx Data Contents : #define _SYS_NMLN 257 struct utsname { char sysname [_SYS_NMLN]; char node name [_SYS_NMLN]; char release [_SYS_NMLN]; char version [_SYS_NMLN]; char machine [_SYS_NMLN]; }; Rx Data : None Protocol used : LS (3.1.2) 4.2.12.1.2 OS Send Command - FMEMA Pre Notice This command is used to issue a pre-notice for a FMEMA control command. If FMEMA control command (4.2.10.2) or FMEM cancel command (4.2.12.1.3) or FMEM complete command (4.2.12.2.2) is issued before FMEMA pre-notice command, it is considered an error. Command Code : CMD_OS_XSCF_CTL (0xC5) Sub Command Code : SUB_OS_SEND_PRE_FMEMA (0x10) Tx Data : In SRAM Tx Buffer Tx Data Size : 0x10 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB1|LSB2| 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 LSB1, LSB2 - LSBs that will swap their physical addresses. Rx Data : None Protocol used : LS (3.1.2) 4.2.12.1.3 OS Send Command - FMEMA Cancel FMEMA cancel command is issued to cancel the FMEMA operation that started with FMEMA pre-notice command. Command Code : CMD_OS_XSCF_CTL (0xC5) Sub Command Code : SUB_OS_SEND_PRE_FMEMA (0x10) Tx Data : None Rx Data : None Protocol used : LS (3.1.2) 4.2.12.2 OS Receive Command This command can be used to receive upto 64K of data from SCF to OS. Upto 128 sub-commands (0x80 - 0xff) can be specified under this command category. The data payload depends upon the sub-command. Command Code : CMD_OS_XSCF_CTL (0xC5) Sub Command Code : SUB_OS_RECEIVE_80 (0x80) - SUB_OS_RECEIVE_ff (0xff) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ | TID | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 TID : Transanciton ID. Identifies the received data. The value is dependent on the specific sub-command code. Rx Data : In SRAM Rx Buffer Rx Data Size : Upto 64 KB Rx Data Contents : Varies as per the sub-command code Protocol used : SL (3.1.3) 4.2.12.2.1 OS Receive Command - Get HWD Info This command is sent to SCF to obtain the Hardware Descriptor information for a specified LSB from the SCF. Hardware Descriptor format is defined by FWARC/2005/261. Command Code : CMD_OS_XSCF_CTL (0xC5) Sub Command Code : SUB_OS_RECEIVE_HWD (0x80) Tx Data : In SCFI Tx Data Register Tx Data Size : 4 bytes Tx Data Contents : byte0 byte7 +---------------------------------------+ |LSB#| 00 | 00 | 00 | 00 | 00 | 00 | 00 | +---------------------------------------+ | 00 | 00 | 00 | 00 | 00 | 00 | 00 |CSUM| +---------------------------------------+ byte8 byte15 Rx Data : In SRAM Rx Buffer Rx Data Size : 36KB Rx Data Contents : Hardware Descriptor table (FWARC/2005/261) Protocol used : SL (3.1.3) 4.2.12.2.2 OS Receive Command - FMEMA Complete This command is sent to SCF to obtain the result of FMEMA operation that was initiated earlier using FMEMA pre-notice and FMEMA control commands. Command Code : CMD_OS_XSCF_CTL (0xC5) Sub Command Code : SUB_OS_RECEIVE_COMPLETE_FMEMA (0x83) Tx Data : None Rx Data : In SRAM Rx Buffer Rx Data Size : 0x10 bytes Rx Data Contents : FMEMA completion code 0 : Success <0 : FMEMA error Protocol used : SL (3.1.3) 5. FIRMWARE REQUEST COMMAND There are times when Firmware (OBP) may need to communicate with SCF after Solaris has been booted. Communicating with SCF using the regular SCF interface, after OS has been booted, can cause interface state conflict between the firmware and the Solaris. OBP/POST can use the Firmware Request Command implemented via Firmware Request Register and Firmware Request Buffers. Firmware can also use this interface when the SCF interface is not available. Following commands are supported by Firmware Request: +------------------+-----------------------------------------+ | Request Keycode | Description | +------------------+-----------------------------------------+ | 0x25 | Request SCF to issue XIR reset to the | | | domain. No input parameters. | +------------------+-----------------------------------------+ | 0x15 | Request SCF to update domain time | | | difference. Input parameter - time_diff | | | in seconds is in the Firmware Buffer | | | (8 bytes). | +------------------+-----------------------------------------+ | 0x35 | Request SCF to backup OBP configuration | | | variables from the SRAM. No input | | | parameter. | +------------------+-----------------------------------------+ | 0x05 | Firmware Request interface diagnostics | | | to test if Firmware Request command can | | | be issued normally. No input parameter. | +------------------+-----------------------------------------+ Following protocol is used to issue a Firmware Request command to SCF. REQP (Request Pending) and REQKEY (Request Keycode) are the fields in Firmware Request Register. --------------------------------------------------------------------------- SCF OBP ----------------------------------- ------------------------------------- Set command parameters, if any, in Firmware buffer <----- Set REQKEY=Request_Keycode & REQP=1 in Firmware Request Registers . Check the cmd_keycode. If invalid . set REQKEY to non zero value (error). . Set REQP = 0 (command complete) ------+ . | . If valid cmd_keycode, execute the | . command. Set REQKEY=0x00 (normal) | . and REQP = 0 (command complete) ----+ | . | | . | +-> . +---> V Wait until REQP=0 (command complete) Check REQKEY for return status. If REQKEY=error, SCFI path switch and reissue the command. If REQKEY=0, command is completed successfully. --------------------------------------------------------------------------- 6. INTERFACE ERROR HANDLING Following type of errors might be detected while sending/receiving the SCF interface commands: 6.1 Command timeout Command timeout error happen when command issued from domain fails to complete within an implementation defined time. NOTE: Handling of this error is implementation specific. Depending on the implementation, it may chose to ignore the error, choose another interface path or disconnect the domain. IMPLEMENTATION NOTES: Following is one such implementation to handle this interface error: When a command issued from domain (OBP/SCF driver) fails to complete within a certain time, it needs to be handled as command timeout error case. Domain would switch the SCF Interface path and retry the command using the new interface path. The process is repeated until all the SCFI paths have been tried after which the SCF is declared as unresponsive. ----------------------------------------------------------------------- SCF Driver/OBP SCF --------------------------------- ------------------------------- Issue a command --------------------> No response Monitoring timeout SCFI Path Switching -------------------> Reissue the command -------------------> <------------------ SCF response ----------------------------------------------------------------------- 6.2 SRAM ECC Correctable Error Correctable ECC errors might be generated while reading/writing the SRAM during the LS or SL command protocol. NOTE: Handling of this error is implementation specific. Depending on the implementation, it may chose to ignore the error, choose another interface path or disconnect the domain. IMPLEMENTATION NOTES: Following is one such implementation to handle this interface error: LS and SL type of commands involve reading/writing of SRAM send/receive buffers. If a correctable error occurs while reading/writing the SRAM, hardware generates an interrupt to the SCF so that SCF may collect the error log. This error is not visible to domain and domain continues normal operation. ----------------------------------------------------------------------- SCF Driver/OBP SRAM Hardware SCF ----------------------- ---------------------- -------------------- Read/Write to SRAM generated an ECC CE error | +-------------> Interrupt SCF SCF Collects the error log. Error corrected without notification or intervention from Domain. Domain operation continues as if no error had occured ----------------------------------------------------------------------- 6.3 SRAM ECC Uncorrectable Error Uncorrectable ECC errors might be generated while reading/writing the SRAM during the LS or SL command protocol. NOTE: Handling of this error is implementation specific. Depending on the implementation, it may chose to ignore the error, choose another interface path or disconnect the domain. IMPLEMENTATION NOTES: Following is one such implementation to handle this interface error: When an ECC UE error occurs during the SRAM access, both domain as well as the SCF are needed to take some action to handle this error. SCF collects the error log and sends MBC Error interrupt to domain. As a result of this interrupt, OBP/SCF driver would requests for a change in SCFI interface path. The command that created this error is retried using the newly selected SCFI path. ----------------------------------------------------------------------- SCF Driver/OBP SRAM Hardware SCF ----------------------- ---------------------- -------------------- Read/Write to SRAM generated an ECC UE error | +-------------> Interrupt SCF SCF Collects the error log. MBC Error interrupt to domain | <----------------------------------+ SCF Interface Path switching ---------------------> to select a new interface path ----------------------------------------------------------------------- NOTE: If Domain software tries to switch the SCF Interface path but there is no new SCF path available to switch to, then the error can be handled in an implementation specific manner. An implementation may allow to chose between Domain panic, Domain shutdown or no action.