C H A P T E R 4 |
Configuring and Using the Netra CP2500 Board Firmware |
The Netra CP2500 board contains a modular firmware architecture that enables you to customize the initialization, test the firmware, and enable the installation of an operating system.
This platform also employs the system management controller (SMC), which controls the system management and hot-swap control, and some board hardware. The SMC configuration is controlled by separate firmware.
This chapter contains the following sections:
Control flow at board startup is shown in FIGURE 4-1. Execution begins in the OpenBoot PROM. If you set the diag-switch? environmental variable to true (see Section 4.2, Firmware Configuration Variables for more information), power-on self-tests (POST) will be run at startup.
The OpenBoot PROM probes for devices and builds the device tree, which is a table that contains entries for how drivers communicate with connected hardware. Each line, or entry, of the device tree is a reference for the node entry for the peripheral in the /dev directory. The device tree is inherited by Solaris software as it is booted. The device tree can be seen by directory in the / directory. The device tree can be seen by typing show-devs at the ok prompt. CODE EXAMPLE 4-1 shows an example of a device tree.
The OpenBoot PROM also contains aliases for some of the devices shown in the device tree. These aliases can simplify hardware access at the ok prompt. CODE EXAMPLE 4-2 shows how the OpenBoot devalias command lists the available device tree aliases.
This section provides information on the firmware configuration variables, which are saved in the 8 Kbyte SEEPROM. The SEEPROM's contents are preserved across board power-cycles.
TABLE 4-1 describes the OpenBoot PROM configuration variables stored in the NVRAM and displayed by the OpenBoot PROM printenv command. Use the setenv OpenBoot command to modify the environment variables. The boot process is controlled by several variables. For the values of each variable, refer to the OpenBoot 4.x Command Reference Manual, which is included with the Solaris documentation.
Note - The diag-switch? and diag-level variables listed in TABLE 4-1 affect the path through the various embedded tests. |
The node board boots from the 2 Mbyte system flash PROM device, which contains the POST code and OpenBoot PROM. The contents map of this PROM is shown in FIGURE 4-2.
The Netra CP2500 board has an intelligent fault detection environmental monitoring system to increase uptime and manageability at OpenBoot PROM. The system management controller (SMC) module on the Netra CP2500 board supports the temperature monitoring functions. Environmental monitoring tracks the following at regular intervals at the ok prompt:
Note - Refer to the Netra CP2500 Board Programming Guide (817-1331) for additional information about the environmental monitoring features of the Netra CP2500 board. |
At the OpenBoot PROM level, when an overtemperature condition occurs, corresponding messages are displayed on the console. The OpenBoot PROM displays the warning messages as soon as the board temperature reaches the warning temperature and is still below the critical temperature. The critical messages are displayed as soon as the board temperature reaches the critical temperature. Finally, the shutdown messages are displayed when the board temperature reaches the shutdown temperature.
Use the show-sensors command at OpenBoot PROM ok prompt to display the readings of all the temperature sensors on the board.
When the CPU temperature reaches the warning temperature limit, the following message is displayed at the ok prompt at regular intervals:
<<< !!! ALERT!!! Upper Non-critical - going high >>> The current threshold setting is: value The current temperature is : value |
When the CPU temperature reaches the critical temperature limit, the following message is displayed at the ok prompt at regular intervals:
<<< !!! ALERT!!! Upper Critical - going high >>> The current threshold setting is: value The current temperature is : value |
The warning, critical, and shutdown temperature values are set by the SMC. You cannot configure them at the OpenBoot PROM prompt. However, you can set these temperature values on a board running the Solaris Operating System. Refer to the Netra CP2500 Board Programming Guide (819-1749) for instructions.
You can access the CPU temperature sensor current readings and environmental monitoring settings from the Solaris prompt by using the prtpicl and prtdiag commands. Sample output is listed after each command.
TABLE 4-2 shows which Solaris commands and values correspond to the environmental monitoring warning that runs when the CPU temperature exceeds the set limit.
The CPU shutdown message is displayed and the CPU is shut off. |
The field upgradeable SMC firmware supports features such as Netra CP2500 resources, temperature monitoring, control of the power subsystem, IPMI communication with other boards, configurable reset handling, hot-swap capability, and watchdog timer heartbeat mechanism. The SMC firmware also has its own built-in self-test at power up. The SMC consists of DS80CH11, which is an 8051-compatible chip, and the PSD833F2 memory chip. Inside the PSD833F2 chip are the main flash and the boot flash and SRAM for data storage. The host CPU sends commands and data to the SMC by way of the serial bus.
The SMC architecture enables you to update the SMC firmware from a Solaris command prompt. You should update the SMC firmware to modify the firmware during a field upgrade, for fixing bugs, adding enhancements or new features, or providing special code for a specific OEM customer.
The SMC is capable of performing a flash update on its main and boot flash memory. The main flash can flash update the boot flash, and the boot flash can flash update the main flash. The boot code contains the minimum code to enable the system to boot to the ok prompt if the main flash fails, and to switch from boot flash to main flash for execution. Therefore, any attempt to perform a flash update of the boot flash would be considered risky and should not be done often.
The SMC power-on behavior and other attributes are stored in a 16-byte configuration block. This configuration block is stored in an accessible SEEPROM. In the absence of this configuration block, SMC boots up in a default mode. At the OpenBoot PROM level, the setsmcenv and printsmcenv commands in the SMC node are used to set parameters in the configuration block of SMC. The printsmcenv command prints the value of the parameters in the SMC configuration block.
To view the settings on the configuration block, read the block using the printsmcenv command. If you want to change the settings, use the setsmcenv command to change the SEEPROM configuration block. The following code example shows an example of the printsmcenv output.
On the Netra CP2500 board, both the system (boot) flash and the user flash memory reside on the same physical device. By default the system flash uses 2 MBytes of flash memory while the user flash uses 14 MBytes of flash memory.
The main OpenBoot PROM image and a backup copy of the image are stored in the system flash memory (see Section 4.3, System Flash PROM Memory Map). If the OpenBoot PROM becomes corrupted, you can boot the board using the backup copy of the OpenBoot PROM. Booting this backup OpenBoot PROM will enable you to flash update and repair the main OpenBoot PROM image.
To boot the board from a backup image of the OpenBoot PROM in order to update the main OpenBoot PROM image:
1. Power down the board and remove it from the server or chassis.
2. Retrieve the wrist strap from the adapter's shipping kit.
3. Attach the antistatic wrist strap:
a. Attach the adhesive copper strip of the wrist strap to the metal chassis.
b. Wrap the other end twice around your wrist, with the adhesive side against your skin.
4. Place the board on a static-free work area and locate the SW3301 switch on the board.
The SW3301 DIP switch bank is located on the component side of the board between the front panel and heat sink (see FIGURE 4-4).
5. Using a needle, metal pick, scribe tool, or small screwdriver, set switch 1 from open to closed.
The closed setting is in the same direction of the arrow located on the SW3301 DIP switch bank (see FIGURE 4-4). For more information about the SW3301 DIP switch settings, see Section B.4, DIP Switch Settings.
6. Install the Netra CP2500 board back in the chassis or server.
Enable the board to boot using the backup OpenBoot PROM and then start the Solaris OS.
7. At a Solaris terminal prompt, update the main OpenBoot PROM firmware.
See Section 2.8.4, Upgrading the OpenBoot PROM and SMC Firmware, for the firmware upgrade procedure.
8. After repairing the main OpenBoot PROM, power down the board and remove it from the chassis or server.
9. Place the board on a static-free work area.
10. Using a needle, metal pick, scribe tool, or small screwdriver, set switch 1 from closed to open.
The open setting is in the reverse direction of the arrow located on the SW3301 DIP switch bank (the open setting is also the default setting).
11. Install the Netra CP2500 board back in the chassis or server.
Enable the board to boot using the main OpenBoot PROM and start the Solaris OS.
See Section 2.8.4, Upgrading the OpenBoot PROM and SMC Firmware, for the firmware upgrade procedure.
The firmware contains a comprehensive set of hardware diagnostic modules that provide tests for most situations. FIGURE 4-1 shows the control flow relationship of the diagnostic modules with the system firmware. SunVTS can be executed from within the Solaris software if more tests are required. For more information, see Section 3.3, Downloading and Installing SunVTS.
The firmware diagnostic modules are:
The firmware diagnostics cover address and data bits on all system buses and exercise the function of the major hardware resources on the board.
Diagnostics can be performed at OpenBoot PROM level by using the obdiag command, or by typing individual test commands at the ok prompt. These test suites are similar to those in earlier OpenBoot PROM versions but they are comprised of drop-ins that can be placed by the user. Refer to the OpenBoot 4.x Command Reference Manual for additional information.
The user interface for running POST at minimum or maximum remains the same. POST is executed when the diag-switch? environmental variable is set to true.
The OpenBoot PROM on-board diagnostics reside in the OpenBoot PROM drop-in. These diagnostics are described fully in the OpenBoot 4.x Command Reference Manual.
To execute the OpenBoot PROM on-board diagnostics, the system must be at the ok prompt. The OpenBoot PROM on-board diagnostics include:
The OpenBoot Diagnostics are an enhancement of the traditional system tests. They reside in Forth script in a drop-in and are invoked with an interactive tool that is started from the ok prompt by typing obdiag.
When you start the OpenBoot Diagnostics, you should see the following menu:
At the obdiag prompt, type test 1 to display a printout similar to the following:
Copyright © 2007, Sun Microsystems, Inc. All Rights Reserved.